From 21586cb793df7ddb524f6ad98c1451cfbbe34f1c Mon Sep 17 00:00:00 2001 From: Lucas Moura Date: Fri, 24 Jul 2026 21:10:53 -0400 Subject: [PATCH] Round-trip the flow editor to microflow MDL - parseFlow keeps each block's original MDL statement; the canvas serializer (flowMdl.ts) walks the graph from Start, re-emitting statements with current @position/@caption and reconstructing if/else/end if from decision branches. New blocks get a valid DECLARE placeholder; disconnected blocks still serialize so nothing silently disappears. - New POST /api/flow wraps the body in CREATE OR MODIFY MICROFLOW/NANOFLOW using the imported signature (params, RETURNS, FOLDER), validates with `mxcli check`, and saves a reviewable draft (flow-plans.json), listed in /api/drafts and the Drafts tab. Draft persistence is now a shared helper. - Save flow button in the flow editor; browser title shortened to Mendix Ruby. --- lib/mendix_bridge/backend_server.rb | 72 ++++++++++++--- test/backend_server_test.rb | 29 ++++++ web/dist/assets/index-B2Ft6dZR.js | 24 +++++ web/dist/assets/index-xDeQxMQR.js | 23 ----- web/dist/index.html | 4 +- web/index.html | 2 +- web/src/components/Drafts.tsx | 9 ++ web/src/components/FlowCanvas.tsx | 13 ++- web/src/model/api.ts | 16 ++++ web/src/model/flow.ts | 11 ++- web/src/model/flowMdl.ts | 137 ++++++++++++++++++++++++++++ 11 files changed, 295 insertions(+), 45 deletions(-) create mode 100644 web/dist/assets/index-B2Ft6dZR.js delete mode 100644 web/dist/assets/index-xDeQxMQR.js create mode 100644 web/src/model/flowMdl.ts diff --git a/lib/mendix_bridge/backend_server.rb b/lib/mendix_bridge/backend_server.rb index 8e8e95e..6b1298c 100644 --- a/lib/mendix_bridge/backend_server.rb +++ b/lib/mendix_bridge/backend_server.rb @@ -78,6 +78,7 @@ def mount_routes end @server.mount_proc("/api/git") { |request, response| git_route(request, response) } @server.mount_proc("/api/page") { |request, response| page_route(request, response) } + @server.mount_proc("/api/flow") { |request, response| flow_route(request, response) } @server.mount_proc("/api/drafts") { |_request, response| drafts(response) } @server.mount_proc("/api/marketplace/install") do |request, response| marketplace_install(request, response) @@ -125,7 +126,8 @@ def health(response) visual_entity_plans: true, marketplace_install: source_project ? true : false, git: git_workflow ? true : false, - page_drafts: true + page_drafts: true, + flow_drafts: true } } ) @@ -371,16 +373,58 @@ def page_route(request, response) json(response, { error: "invalid JSON payload" }, status: 400) end + # Accepts a rebuilt microflow/nanoflow body from the flow editor, wraps it in + # CREATE OR MODIFY MICROFLOW/NANOFLOW using the imported signature, validates + # with `mxcli check`, and saves a reviewable draft — same contract as pages. + def flow_route(request, response) + return json(response, { error: "method not allowed" }, status: 405) unless + request.request_method == "POST" + + payload = JSON.parse(request.body.to_s) + qn = payload.fetch("qn") + body = payload.fetch("body").to_s + detail = page_detail(qn) + return json(response, { error: "unknown flow" }, status: 404) unless detail + + mdl = build_flow_mdl(qn, detail, body) + ok, message = check_mdl(mdl) + persist_draft("flow-plans.json", qn, "body" => body, "mdl" => mdl, "valid" => ok, "message" => message) + json( + response, + { ok:, mdl:, message: ok ? "Flow MDL validated and draft saved." : message }, + status: ok ? 200 : 422 + ) + rescue KeyError => error + json(response, { error: "missing parameter: #{error.key}" }, status: 400) + rescue JSON::ParserError + json(response, { error: "invalid JSON payload" }, status: 400) + end + + def build_flow_mdl(qn, detail, body) + keyword = detail["mdl"].to_s.match?(/\bnanoflow\b/i) ? "NANOFLOW" : "MICROFLOW" + params = Array(detail["parameters"]).map do |parameter| + "$#{parameter['name']}: #{parameter['type']}" + end + header = +"CREATE OR MODIFY #{keyword} #{qn} (#{params.join(', ')})" + header << "\nRETURNS #{detail['return_type']}" if detail["return_type"] + header << "\nFOLDER '#{escape_mdl(detail['folder'])}'" if detail["folder"] + indented = body.strip.empty? ? "" : body.lines.map { |line| line.rstrip }.join("\n") + "#{header}\nBEGIN\n#{indented}\nEND;\n" + end + # Lists the reviewable drafts saved by the visual builders so the viewer can # surface them (they only exist as inventory sidecars otherwise). def drafts(response) - entity_path = File.join(@inventory_dir, "inventory", "visual-plans.json") - page_path = File.join(@inventory_dir, "inventory", "page-plans.json") + read = lambda do |file| + path = File.join(@inventory_dir, "inventory", file) + File.file?(path) ? JSON.parse(File.read(path)) : {} + end json( response, { - entities: File.file?(entity_path) ? JSON.parse(File.read(entity_path)) : {}, - pages: File.file?(page_path) ? JSON.parse(File.read(page_path)) : {} + entities: read.call("visual-plans.json"), + pages: read.call("page-plans.json"), + flows: read.call("flow-plans.json") } ) end @@ -482,16 +526,18 @@ def check_mdl(mdl) end def persist_page_draft(qn, content, mdl, ok, message) - path = File.join(@inventory_dir, "inventory", "page-plans.json") + persist_draft( + "page-plans.json", qn, + "content" => content, "mdl" => mdl, "valid" => ok, "message" => message + ) + end + + # Atomic upsert into a draft sidecar under inventory/ (temp + rename, mutex). + def persist_draft(file, qn, entry) + path = File.join(@inventory_dir, "inventory", file) @layout_mutex.synchronize do plans = File.file?(path) ? JSON.parse(File.read(path)) : {} - plans[qn] = { - "saved_at" => Time.now.iso8601, - "content" => content, - "mdl" => mdl, - "valid" => ok, - "message" => message - }.compact + plans[qn] = { "saved_at" => Time.now.iso8601 }.merge(entry.compact) temporary = "#{path}.tmp" File.write(temporary, "#{JSON.pretty_generate(plans)}\n") File.rename(temporary, path) diff --git a/test/backend_server_test.rb b/test/backend_server_test.rb index c223cc6..8531572 100644 --- a/test/backend_server_test.rb +++ b/test/backend_server_test.rb @@ -47,6 +47,13 @@ def setup "layout" => "Atlas_Core.Default", "parameters" => [], "mdl" => "create or modify page Module.Home (Title: 'Home') {}" + }, + "Module.ACT_Save" => { + "parse_status" => "parsed", + "parameters" => [{ "name" => "Customer", "type" => "Module.Customer" }], + "return_type" => "Boolean", + "folder" => "Actions", + "mdl" => "create or modify microflow Module.ACT_Save ($Customer: Module.Customer) returns Boolean begin return true; end;" } ) write_json("inventory/dependencies.json", "schema_version" => 1, "nodes" => 1, "edges" => []) @@ -168,6 +175,28 @@ def test_lists_saved_drafts assert_includes drafts["pages"].keys, "Module.Home" end + def test_saves_a_rebuilt_flow_draft + response = post_json( + "/api/flow", + qn: "Module.ACT_Save", + body: " @position(10, 20)\n return true;" + ) + + assert_equal "200", response.code + body = JSON.parse(response.body) + assert body["ok"] + assert_includes body["mdl"], "CREATE OR MODIFY MICROFLOW Module.ACT_Save ($Customer: Module.Customer)" + assert_includes body["mdl"], "RETURNS Boolean" + assert_includes body["mdl"], "FOLDER 'Actions'" + assert_includes body["mdl"], "return true;" + + drafts = get_json("/api/drafts") + assert_equal true, drafts.dig("flows", "Module.ACT_Save", "valid") + + unknown = post_json("/api/flow", qn: "Module.Missing", body: "") + assert_equal "404", unknown.code + end + def test_health_reports_page_drafts_capability assert_equal true, get_json("/api/health").dig("capabilities", "page_drafts") end diff --git a/web/dist/assets/index-B2Ft6dZR.js b/web/dist/assets/index-B2Ft6dZR.js new file mode 100644 index 0000000..9da054c --- /dev/null +++ b/web/dist/assets/index-B2Ft6dZR.js @@ -0,0 +1,24 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(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 l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ee(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,ee(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),ee(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(e){var t=`https://react.dev/errors/`+e;if(1ie||(e.current=re[ie],re[ie]=null,ie--)}function R(e,t){ie++,re[ie]=e.current,e.current=t}var ae=I(null),oe=I(null),se=I(null),ce=I(null);function le(e,t){switch(R(se,t),R(oe,e),R(ae,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}L(ae),R(ae,e)}function ue(){L(ae),L(oe),L(se)}function de(e){e.memoizedState!==null&&R(ce,e);var t=ae.current,n=Hd(t,e.type);t!==n&&(R(oe,e),R(ae,n))}function fe(e){oe.current===e&&(L(ae),L(oe)),ce.current===e&&(L(ce),Qf._currentValue=ne)}var pe,me;function he(e){if(pe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);pe=t&&t[1]||``,me=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ge=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?he(n):``}function ve(e,t){switch(e.tag){case 26:case 27:case 5:return he(e.type);case 16:return he(`Lazy`);case 13:return e.child!==t&&t!==null?he(`Suspense Fallback`):he(`Suspense`);case 19:return he(`SuspenseList`);case 0:case 15:return _e(e.type,!1);case 11:return _e(e.type.render,!1);case 1:return _e(e.type,!0);case 31:return he(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,Me=t.log,Ne=t.unstable_setDisableYieldValue,Pe=null,Fe=null;function Ie(e){if(typeof Me==`function`&&Ne(e),Fe&&typeof Fe.setStrictMode==`function`)try{Fe.setStrictMode(Pe,e)}catch{}}var Le=Math.clz32?Math.clz32:Be,Re=Math.log,ze=Math.LN2;function Be(e){return e>>>=0,e===0?32:31-(Re(e)/ze|0)|0}var Ve=256,He=262144,Ue=4194304;function We(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ge(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=We(n))):i=We(o):i=We(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=We(n))):i=We(o)):i=We(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ke(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function qe(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Je(){var e=Ue;return Ue<<=1,!(Ue&62914560)&&(Ue=4194304),e}function Ye(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Xe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ze(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),un=!1;if(ln)try{var dn={};Object.defineProperty(dn,"passive",{get:function(){un=!0}}),window.addEventListener(`test`,dn,dn),window.removeEventListener(`test`,dn,dn)}catch{un=!1}var fn=null,pn=null,mn=null;function hn(){if(mn)return mn;var e,t=pn,n=t.length,r,i=`value`in fn?fn.value:fn.textContent,a=i.length;for(e=0;e=qn),Xn=` `,Zn=!1;function Qn(e,t){switch(e){case`keyup`:return Gn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function $n(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var er=!1;function tr(e,t){switch(e){case`compositionend`:return $n(t);case`keypress`:return t.which===32?(Zn=!0,Xn):null;case`textInput`:return e=t.data,e===Xn&&Zn?null:e;default:return null}}function nr(e,t){if(er)return e===`compositionend`||!Kn&&Qn(e,t)?(e=hn(),mn=pn=fn=null,er=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=wr(n)}}function Er(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Er(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Dr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=It(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=It(e.document)}return t}function Or(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var kr=ln&&`documentMode`in document&&11>=document.documentMode,Ar=null,jr=null,Mr=null,Nr=!1;function Pr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Nr||Ar==null||Ar!==It(r)||(r=Ar,`selectionStart`in r&&Or(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Mr&&Cr(Mr,r)||(Mr=r,r=Ed(jr,`onSelect`),0>=o,i-=o,Ei=1<<32-Le(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),z&&Oi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),z&&Oi(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return z&&Oi(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),z&&Oi(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&Oa(l)===r.type){n(e,r.sibling),c=a(r,o.props),B(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=pi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=fi(o.type,o.key,o.props,null,e.mode,c),B(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=gi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Oa(o),b(e,r,o,c)}if(te(o))return h(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Pa(o),c);if(o.$$typeof===C)return b(e,r,na(e,o),c);Fa(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=mi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Na=0;var i=b(e,t,n,r);return Ma=null,i}catch(t){if(t===Sa||t===wa)throw t;var a=ci(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var La=Ia(!0),Ra=Ia(!1),za=!1;function Ba(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Va(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ha(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ua(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,q&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ai(e),ii(e,null,n),t}return ti(e,r,t,n),ai(e)}function Wa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$e(e,n)}}function Ga(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ka=!1;function qa(){if(Ka){var e=pa;if(e!==null)throw e}}function Ja(e,t,n,r){Ka=!1;var i=e.updateQueue;za=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Y&f)===f:(r&f)===f){f!==0&&f===fa&&(Ka=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:za=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Gl|=o,e.lanes=o,e.memoizedState=d}}function Ya(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Xa(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=P.T,s={};P.T=s,Ns(e,!1,t,n);try{var c=i(),l=P.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ms(e,t,ga(c,r),pu(e)):Ms(e,t,r,pu(e))}catch(n){Ms(e,t,{then:function(){},status:`rejected`,reason:n},pu())}finally{F.p=a,o!==null&&s.types!==null&&(o.types=s.types),P.T=o}}function Ss(){}function Cs(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=ws(e).queue;xs(e,a,t,ne,n===null?Ss:function(){return Ts(e),n(r)})}function ws(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ne,baseState:ne,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Po,lastRenderedState:ne},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Po,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ts(e){var t=ws(e);t.next===null&&(t=e.alternate.memoizedState),Ms(e,t.next.queue,{},pu())}function Es(){return ta(Qf)}function Ds(){return W().memoizedState}function Os(){return W().memoizedState}function ks(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=pu();e=Ha(n);var r=Ua(t,e,n);r!==null&&(hu(r,t,n),Wa(r,t,n)),t={cache:ca()},e.payload=t;return}t=t.return}}function As(e,t,n){var r=pu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ps(e)?Fs(t,n):(n=ni(e,t,n,r),n!==null&&(hu(n,e,r),Is(n,t,r)))}function js(e,t,n){Ms(e,t,n,pu())}function Ms(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ps(e))Fs(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Sr(s,o))return ti(e,t,i,0),Rl===null&&ei(),!1}catch{}if(n=ni(e,t,i,r),n!==null)return hu(n,e,r),Is(n,t,r),!0}return!1}function Ns(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ps(e)){if(t)throw Error(i(479))}else t=ni(e,n,r,2),t!==null&&hu(t,e,2)}function Ps(e){var t=e.alternate;return e===H||t!==null&&t===H}function Fs(e,t){mo=po=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Is(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$e(e,n)}}var Ls={readContext:ta,use:Mo,useCallback:bo,useContext:bo,useEffect:bo,useImperativeHandle:bo,useLayoutEffect:bo,useInsertionEffect:bo,useMemo:bo,useReducer:bo,useRef:bo,useState:bo,useDebugValue:bo,useDeferredValue:bo,useTransition:bo,useSyncExternalStore:bo,useId:bo,useHostTransitionStatus:bo,useFormState:bo,useActionState:bo,useOptimistic:bo,useMemoCache:bo,useCacheRefresh:bo};Ls.useEffectEvent=bo;var Rs={readContext:ta,use:Mo,useCallback:function(e,t){return ko().memoizedState=[e,t===void 0?null:t],e},useContext:ta,useEffect:cs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),os(4194308,4,ms.bind(null,t,e),n)},useLayoutEffect:function(e,t){return os(4194308,4,e,t)},useInsertionEffect:function(e,t){os(4,2,e,t)},useMemo:function(e,t){var n=ko();t=t===void 0?null:t;var r=e();if(ho){Ie(!0);try{e()}finally{Ie(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ko();if(n!==void 0){var i=n(t);if(ho){Ie(!0);try{n(t)}finally{Ie(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=As.bind(null,H,e),[r.memoizedState,e]},useRef:function(e){var t=ko();return e={current:e},t.memoizedState=e},useState:function(e){e=Wo(e);var t=e.queue,n=js.bind(null,H,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:gs,useDeferredValue:function(e,t){return ys(ko(),e,t)},useTransition:function(){var e=Wo(!1);return e=xs.bind(null,H,e.queue,!0,!1),ko().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=H,a=ko();if(z){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Rl===null)throw Error(i(349));Y&127||zo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,cs(Vo.bind(null,r,o,e),[e]),r.flags|=2048,is(9,{destroy:void 0},Bo.bind(null,r,o,n,t),null),n},useId:function(){var e=ko(),t=Rl.identifierPrefix;if(z){var n=Di,r=Ei;n=(r&~(1<<32-Le(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=go++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[ot]=t,o[st]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&jc(t)}}return Ic(t),Mc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&jc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=se.current,Vi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Ni,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[ot]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Ri(t,!0)}else e=Bd(e).createTextNode(r),e[ot]=t,t.stateNode=e}return Ic(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Vi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[ot]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ic(t),e=!1}else n=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(co(t),t):(co(t),null);if(t.flags&128)throw Error(i(558))}return Ic(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Vi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[ot]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ic(t),a=!1}else a=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(co(t),t):(co(t),null)}return co(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Pc(t,t.updateQueue),Ic(t),null);case 4:return ue(),e===null&&Sd(t.stateNode.containerInfo),Ic(t),null;case 10:return Yi(t.type),Ic(t),null;case 19:if(L(V),r=t.memoizedState,r===null)return Ic(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Fc(r,!1);else{if(Wl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=lo(e),o!==null){for(t.flags|=128,Fc(r,!1),e=o.updateQueue,t.updateQueue=e,Pc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)di(n,e),n=n.sibling;return R(V,V.current&1|2),z&&Oi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>tu&&(t.flags|=128,a=!0,Fc(r,!1),t.lanes=4194304)}else{if(!a)if(e=lo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Pc(t,e),Fc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!z)return Ic(t),null}else 2*Te()-r.renderingStartTime>tu&&n!==536870912&&(t.flags|=128,a=!0,Fc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Ic(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=V.current,R(V,a?n&1|2:n&1),z&&Oi(t,r.treeForkCount),e);case 22:case 23:return co(t),to(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Ic(t),t.subtreeFlags&6&&(t.flags|=8192)):Ic(t),n=t.updateQueue,n!==null&&Pc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&L(va),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Yi(sa),Ic(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Rc(e,t){switch(ji(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Yi(sa),ue(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return fe(t),null;case 31:if(t.memoizedState!==null){if(co(t),t.alternate===null)throw Error(i(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(co(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return L(V),null;case 4:return ue(),null;case 10:return Yi(t.type),null;case 22:case 23:return co(t),to(),e!==null&&L(va),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Yi(sa),null;case 25:return null;default:return null}}function zc(e,t){switch(ji(t),t.tag){case 3:Yi(sa),ue();break;case 26:case 27:case 5:fe(t);break;case 4:ue();break;case 31:t.memoizedState!==null&&co(t);break;case 13:co(t);break;case 19:L(V);break;case 10:Yi(t.type);break;case 22:case 23:co(t),to(),e!==null&&L(va);break;case 24:Yi(sa)}}function Bc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function Vc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function Hc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Xa(t,n)}catch(t){Z(e,e.return,t)}}}function Uc(e,t,n){n.props=Gs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Wc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function Gc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}function Kc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Z(e,e.return,t)}}function qc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[st]=t}catch(t){Z(e,e.return,t)}}function Jc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function Yc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Jc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Xc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=$t));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Xc(e,t,n),e=e.sibling;e!==null;)Xc(e,t,n),e=e.sibling}function Zc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Zc(e,t,n),e=e.sibling;e!==null;)Zc(e,t,n),e=e.sibling}function Qc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[ot]=e,t[st]=n}catch(t){Z(e,e.return,t)}}var $c=!1,el=!1,tl=!1,nl=typeof WeakSet==`function`?WeakSet:Set,rl=null;function il(e,t){if(e=e.containerInfo,Rd=sp,e=Dr(e),Or(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,rl=t;rl!==null;)if(t=rl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,rl=e;else for(;rl!==null;){switch(t=rl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Pd(o,r,n),o[ot]=e,yt(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Tr(s,h),v=Tr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,P.T=null,n=lu,lu=null;var o=au,s=su;if(iu=0,ou=au=null,su=0,q&6)throw Error(i(331));var c=q;if(q|=4,Nl(o.current),Tl(o,o.current,s,n),q=c,id(0,!1),Fe&&typeof Fe.onPostCommitFiberRoot==`function`)try{Fe.onPostCommitFiberRoot(Pe,o)}catch{}return!0}finally{F.p=a,P.T=r,Vu(e,t)}}function Wu(e,t,n){t=vi(n,t),t=Zs(e.stateNode,t,2),e=Ua(e,t,2),e!==null&&(Xe(e,2),rd(e))}function Z(e,t,n){if(e.tag===3)Wu(e,e,n);else for(;t!==null;){if(t.tag===3){Wu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ru===null||!ru.has(r))){e=vi(n,e),n=Qs(2),r=Ua(t,n,2),r!==null&&($s(n,r,t,e),Xe(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Ll;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Hl=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Rl===e&&(Y&n)===n&&(Wl===4||Wl===3&&(Y&62914560)===Y&&300>Te()-$l?!(q&2)&&Su(e,0):ql|=n,Yl===Y&&(Yl=0)),rd(e)}function qu(e,t){t===0&&(t=Je()),e=ri(e,t),e!==null&&(Xe(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return xe(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Le(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=Y,a=Ge(r,r===Rl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ke(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Gd()&&(e=nd);for(var t=Te(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}iu!==0&&iu!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Rt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),yt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Rt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Rt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Rt(n.imageSizes)+`"]`)):i+=`[href="`+Rt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),yt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Rt(r)+`"][href="`+Rt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),yt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=vt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);yt(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=vt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),yt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=vt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),yt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var a=(a=se.current)?gf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=vt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=vt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=vt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Af(e){return`href="`+Rt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),yt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Rt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Rt(n.href)+`"]`);if(r)return t.instance=r,yt(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),yt(r),Pd(r,`style`,a),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Af(n.href);var o=e.querySelector(jf(a));if(o)return t.state.loading|=4,t.instance=o,yt(o),o;r=Mf(n),(a=mf.get(a))&&Rf(r,a),o=(e.ownerDocument||e).createElement(`link`),yt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(a=e.querySelector(Ff(o)))?(t.instance=a,yt(a),a):(r=n,(a=mf.get(o))&&(r=h({},n),zf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),yt(a),Pd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,yt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),yt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=c(u(),1),v=g(),y=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),b=o(((e,t)=>{t.exports=y()}))(),x={module:`▣`,folder:`▸`,page:`▤`,entity:`▦`,association:`⤝`,microflow:`⚙`,nanoflow:`⚡`,enumeration:`≔`,layout:`◫`,snippet:`⌗`,domainmodel:`◈`,security:`🔒`,projectsecurity:`🔒`,userrole:`○`,modulerole:`○`,navigation:`◮`,settings:`⚙`,javascriptaction:`𝒋`,javaaction:`𝒋`,buildingblock:`▩`,pagetemplate:`▤`,imagecollection:`◲`,constant:`π`},S=e=>x[e]??`·`;function C(e,t,n){return(!n||e.type===`page`)&&(!t||(e.label||e.qualifiedName||``).toLowerCase().includes(t))||(e.children??[]).some(e=>C(e,t,n))}function w({node:e,sweep:t,...n}){let r=e.children??[],[i,a]=(0,_.useState)(e.type!==`module`&&e.type!==`folder`),o=(n.q||n.pagesOnly)&&r.length>0,s=e.qualifiedName?n.hasDetail(e.qualifiedName):!1,c=e.qualifiedName&&e.qualifiedName===n.selected;return(0,_.useEffect)(()=>{t&&a(t.mode===`expand`)},[t]),(n.q||n.pagesOnly)&&!C(e,n.q,n.pagesOnly)?null:(0,b.jsxs)(`li`,{children:[(0,b.jsxs)(`div`,{className:`node`+(c?` selected`:``),onClick:()=>{s?n.onSelect({qn:e.qualifiedName,type:e.type,label:e.label}):r.length&&a(e=>!e)},children:[r.length?(0,b.jsx)(`span`,{className:`twist box`,onClick:e=>{e.stopPropagation(),a(e=>!e)},children:i||o?`−`:`+`}):(0,b.jsx)(`span`,{className:`twist dot`,children:`○`}),(0,b.jsx)(`span`,{className:`t-ico t-${e.type}`,children:S(e.type)}),(0,b.jsx)(`span`,{className:`label`,children:e.label||e.qualifiedName}),r.length>0&&(0,b.jsx)(`span`,{className:`count`,children:r.length})]}),r.length>0&&(i||o)&&(0,b.jsx)(`ul`,{children:r.map((e,r)=>(0,b.jsx)(w,{...n,node:e,sweep:t},e.qualifiedName??e.label+r))})]})}function T(e){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(),a=t.trim().toLowerCase(),o=(0,_.useMemo)(()=>e.tree,[e.tree]);return(0,b.jsxs)(`div`,{className:`tree-wrap`,children:[(0,b.jsx)(`div`,{className:`tree-title`,children:`App Explorer`}),(0,b.jsxs)(`div`,{className:`tree-controls`,children:[(0,b.jsx)(`span`,{className:`tree-find`,children:`🔍`}),(0,b.jsx)(`input`,{type:`search`,placeholder:`Filter`,value:t,onChange:e=>n(e.target.value)}),(0,b.jsx)(`button`,{className:`tree-sweep`,title:`Expand all`,onClick:()=>i(e=>({mode:`expand`,tick:(e?.tick??0)+1})),children:`⊞`}),(0,b.jsx)(`button`,{className:`tree-sweep`,title:`Collapse all`,onClick:()=>i(e=>({mode:`collapse`,tick:(e?.tick??0)+1})),children:`⊟`})]}),(0,b.jsx)(`ul`,{className:`tree`,children:o.map((t,n)=>(0,b.jsx)(w,{...e,node:t,q:a,pagesOnly:!1,sweep:r},t.qualifiedName??t.label+n))})]})}function E(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n{}};function O(){for(var e=0,t=arguments.length,n={},r;e=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}k.prototype=O.prototype={constructor:k,on:function(e,t){var n=this._,r=A(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a0)for(var n=Array(i),r=0,i,a;r=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),ee.hasOwnProperty(t)?{space:ee[t],local:e}:e}function te(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function P(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function F(e){var t=N(e);return(t.local?P:te)(t)}function ne(){}function re(e){return e==null?ne:function(){return this.querySelector(e)}}function ie(e){typeof e!=`function`&&(e=re(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i=v&&(v=_+1);!(b=g[v])&&++v=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function je(e){e||=Me;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function Ne(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Pe(){return Array.from(this)}function Fe(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?qe:typeof t==`function`?Ye:Je)(e,t,n??``)):Ze(this.node(),e)}function Ze(e,t){return e.style.getPropertyValue(t)||Ke(e).getComputedStyle(e,null).getPropertyValue(t)}function Qe(e){return function(){delete this[e]}}function $e(e,t){return function(){this[e]=t}}function et(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function tt(e,t){return arguments.length>1?this.each((t==null?Qe:typeof t==`function`?et:$e)(e,t)):this.node()[e]}function nt(e){return e.trim().split(/^|\s+/)}function rt(e){return e.classList||new it(e)}function it(e){this._node=e,this._names=nt(e.getAttribute(`class`)||``)}it.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function at(e,t){for(var n=rt(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function Pt(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n()=>e;function nn(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}nn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function rn(e){return!e.ctrlKey&&!e.button}function an(){return this.parentNode}function on(e,t){return t??{x:e.x,y:e.y}}function sn(){return navigator.maxTouchPoints||`ontouchstart`in this}function cn(){var e=rn,t=an,n=on,r=sn,i={},a=O(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,Yt).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(Kt(n.view).on(`mousemove.drag`,m,Xt).on(`mouseup.drag`,h,Xt),$t(n.view),Zt(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(Qt(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Kt(e.view).on(`mousemove.drag mouseup.drag`,null),en(e.view,l),Qt(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?jn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?jn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=vn.exec(e))?new Pn(t[1],t[2],t[3],1):(t=yn.exec(e))?new Pn(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=bn.exec(e))?jn(t[1],t[2],t[3],t[4]):(t=xn.exec(e))?jn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Sn.exec(e))?Vn(t[1],t[2]/100,t[3]/100,1):(t=Cn.exec(e))?Vn(t[1],t[2]/100,t[3]/100,t[4]):wn.hasOwnProperty(e)?An(wn[e]):e===`transparent`?new Pn(NaN,NaN,NaN,0):null}function An(e){return new Pn(e>>16&255,e>>8&255,e&255,1)}function jn(e,t,n,r){return r<=0&&(e=t=n=NaN),new Pn(e,t,n,r)}function Mn(e){return e instanceof dn||(e=kn(e)),e?(e=e.rgb(),new Pn(e.r,e.g,e.b,e.opacity)):new Pn}function Nn(e,t,n,r){return arguments.length===1?Mn(e):new Pn(e,t,n,r??1)}function Pn(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}ln(Pn,Nn,un(dn,{brighter(e){return e=e==null?pn:pn**+e,new Pn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?fn:fn**+e,new Pn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Pn(zn(this.r),zn(this.g),zn(this.b),Rn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fn,formatHex:Fn,formatHex8:In,formatRgb:Ln,toString:Ln}));function Fn(){return`#${Bn(this.r)}${Bn(this.g)}${Bn(this.b)}`}function In(){return`#${Bn(this.r)}${Bn(this.g)}${Bn(this.b)}${Bn((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ln(){let e=Rn(this.opacity);return`${e===1?`rgb(`:`rgba(`}${zn(this.r)}, ${zn(this.g)}, ${zn(this.b)}${e===1?`)`:`, ${e})`}`}function Rn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function zn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Bn(e){return e=zn(e),(e<16?`0`:``)+e.toString(16)}function Vn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Wn(e,t,n,r)}function Hn(e){if(e instanceof Wn)return new Wn(e.h,e.s,e.l,e.opacity);if(e instanceof dn||(e=kn(e)),!e)return new Wn;if(e instanceof Wn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new Wn(o,s,c,e.opacity)}function Un(e,t,n,r){return arguments.length===1?Hn(e):new Wn(e,t,n,r??1)}function Wn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ln(Wn,Un,un(dn,{brighter(e){return e=e==null?pn:pn**+e,new Wn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?fn:fn**+e,new Wn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Pn(qn(e>=240?e-240:e+120,i,r),qn(e,i,r),qn(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Wn(Gn(this.h),Kn(this.s),Kn(this.l),Rn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Rn(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Gn(this.h)}, ${Kn(this.s)*100}%, ${Kn(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Gn(e){return e=(e||0)%360,e<0?e+360:e}function Kn(e){return Math.max(0,Math.min(1,e||0))}function qn(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Jn=e=>()=>e;function Yn(e,t){return function(n){return e+n*t}}function Xn(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Zn(e){return(e=+e)==1?Qn:function(t,n){return n-t?Xn(t,n,e):Jn(isNaN(t)?n:t)}}function Qn(e,t){var n=t-e;return n?Yn(e,n):Jn(isNaN(e)?t:e)}var $n=(function e(t){var n=Zn(t);function r(e,t){var r=n((e=Nn(e)).r,(t=Nn(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Qn(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function er(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:ir(r,i)})),n=sr.lastIndex;return n180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:ir(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:ir(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:ir(e,n)},{i:s-2,x:ir(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t=0&&e._call.call(void 0,t),e=e._next;--Er}function Hr(){Nr=(Mr=Fr.now())+Pr,Er=Dr=0;try{Vr()}finally{Er=0,Wr(),Nr=0}}function Ur(){var e=Fr.now(),t=e-Mr;t>kr&&(Pr-=t,Mr=e)}function Wr(){for(var e,t=Ar,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Ar=n);jr=e,Gr(r)}function Gr(e){Er||(Dr&&=clearTimeout(Dr),e-Nr>24?(e<1/0&&(Dr=setTimeout(Hr,e-Fr.now()-Pr)),Or&&=clearInterval(Or)):(Or||=(Mr=Fr.now(),setInterval(Ur,kr)),Er=1,Ir(Hr)))}function Kr(e,t,n){var r=new zr;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var qr=O(`start`,`end`,`cancel`,`interrupt`),Jr=[];function Yr(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;$r(e,n,{name:t,index:r,group:i,on:qr,tween:Jr,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function Xr(e,t){var n=Qr(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function Zr(e,t){var n=Qr(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function Qr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function $r(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Br(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return Kr(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function ti(e){return this.each(function(){ei(this,e)})}function ni(e,t){var n,r;return function(){var i=Zr(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o=0&&(e=e.slice(0,t)),!e||e===`start`})}function Mi(e,t,n){var r,i,a=ji(t)?Xr:Zr;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Ni(e,t){var n=this._id;return arguments.length<2?Qr(this.node(),n).on.on(e):this.each(Mi(n,e,t))}function Pi(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function z(){return this.on(`end.remove`,Pi(this._id))}function Fi(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=re(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o()=>e;function fa(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function pa(e,t,n){this.k=e,this.x=t,this.y=n}pa.prototype={constructor:pa,scale:function(e){return e===1?this:new pa(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new pa(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var ma=new pa(1,0,0);ha.prototype=pa.prototype;function ha(e){for(;!e.__zoom;)if(!(e=e.parentNode))return ma;return e.__zoom}function ga(e){e.stopImmediatePropagation()}function _a(e){e.preventDefault(),e.stopImmediatePropagation()}function va(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function ya(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function ba(){return this.__zoom||ma}function xa(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Sa(){return navigator.maxTouchPoints||`ontouchstart`in this}function Ca(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function wa(){var e=va,t=ya,n=Ca,r=xa,i=Sa,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=Tr,l=O(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,ba).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,k).on(`touchend.zoom touchcancel.zoom`,A).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,ba),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(ma.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new pa(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new pa(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new pa(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=Kt(this.that).datum();l.call(e,this.that,new fa(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=Jt(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],ei(this),s.start();_a(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=Kt(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Jt(t,i),l=t.clientX,u=t.clientY;$t(t.view),ga(t),a.mouse=[c,this.__zoom.invert(c)],ei(this),a.start();function d(e){if(_a(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=Jt(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),en(e.view,a.moved),_a(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Jt(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);_a(r),s>0?Kt(this).transition().duration(s).call(x,d,c,r):Kt(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(ga(t),s=0;s`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Ea=[[-1/0,-1/0],[1/0,1/0]],Da=[`Enter`,` `,`Escape`],Oa={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},ka;(function(e){e.Strict=`strict`,e.Loose=`loose`})(ka||={});var Aa;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Aa||={});var ja;(function(e){e.Partial=`partial`,e.Full=`full`})(ja||={});var Ma={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Na;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Na||={});var Pa;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Pa||={});var B;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(B||={});var Fa={[B.Left]:B.Right,[B.Right]:B.Left,[B.Top]:B.Bottom,[B.Bottom]:B.Top};function Ia(e){return e===null?null:e?`valid`:`invalid`}var La=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Ra=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),za=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Ba=(e,t=[0,0])=>{let{width:n,height:r}=vo(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Va=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:no(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):za(n)?n:t.nodeLookup.get(n.id)),eo(e,i?io(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),Ha=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=eo(n,io(e)),r=!0)}),r?no(n):{x:0,y:0,width:0,height:0}},Ua=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=oo(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},Wa=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function Ga(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=vo(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function Ka({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=ho(Ha(Ga(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function qa({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,Ta.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&_o(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=_o(d)?Xa(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Ta.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function Ja({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=Wa(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var Ya=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Xa=(e={x:0,y:0},t,n)=>({x:Ya(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Ya(e.y,t[0][1],t[1][1]-(n?.height??0))});function Za(e,t,n){let{width:r,height:i}=vo(n),{x:a,y:o}=n.internals.positionAbsolute;return Xa(e,[[a,o],[a+r,o+i]],t)}var Qa=(e,t,n)=>en?-Ya(Math.abs(e-n),1,t)/t:0,$a=(e,t,n=15,r=40)=>[Qa(e.x,r,t.width-r)*n,Qa(e.y,r,t.height-r)*n],eo=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),to=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),no=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),ro=(e,t=[0,0])=>{let{x:n,y:r}=za(e)?e.internals.positionAbsolute:Ba(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},io=(e,t=[0,0])=>{let{x:n,y:r}=za(e)?e.internals.positionAbsolute:Ba(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},ao=(e,t)=>no(eo(to(e),to(t))),oo=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},so=(e,t)=>oo(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),co=e=>V(e.width)&&V(e.height)&&V(e.x)&&V(e.y),V=e=>!isNaN(e)&&isFinite(e),lo=(e,t)=>(e,t)=>{},uo=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),H=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?uo(s,o):s},U=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function fo(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function po(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=fo(e,n),i=fo(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=fo(e.top??e.y??0,n),i=fo(e.bottom??e.y??0,n),a=fo(e.left??e.x??0,t),o=fo(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function mo(e,t,n,r,i,a){let{x:o,y:s}=U(e,[t,n,r]),{x:c,y:l}=U({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var ho=(e,t,n,r,i,a)=>{let o=po(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=Ya(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=mo(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},go=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function _o(e){return e!=null&&e!==`parent`}function vo(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function yo(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function bo(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function xo(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function So(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Co(e){return{...Oa,...e||{}}}function wo(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=W(e),s=H({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?uo(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var To=e=>({width:e.offsetWidth,height:e.offsetHeight}),Eo=e=>e?.getRootNode?.()||window?.document,Do=[`INPUT`,`SELECT`,`TEXTAREA`];function Oo(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Do.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var ko=e=>`clientX`in e,W=(e,t)=>{let n=ko(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Ao=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...To(t)}})};function jo({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Mo(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function No({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case B.Left:return[t-Mo(t-r,a),n];case B.Right:return[t+Mo(r-t,a),n];case B.Top:return[t,n-Mo(n-i,a)];case B.Bottom:return[t,n+Mo(i-n,a)]}}function Po({sourceX:e,sourceY:t,sourcePosition:n=B.Bottom,targetX:r,targetY:i,targetPosition:a=B.Top,curvature:o=.25}){let[s,c]=No({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=No({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=jo({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Fo({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n0}var Ro=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,zo=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),Bo=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,Ta.error006()),t;let r=n.getEdgeId||Ro,i;return i=La(e)?{...e}:{...e,id:r(e)},zo(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))},Vo=(e,t,n,r={shouldReplaceId:!0})=>{let{id:i,...a}=e;if(!t.source||!t.target)return r.onError?.(`006`,Ta.error006()),n;if(!n.find(t=>t.id===e.id))return r.onError?.(`007`,Ta.error007(i)),n;let o=r.getEdgeId||Ro,s={...a,id:r.shouldReplaceId?o(t):i,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle};return n.filter(e=>e.id!==i).concat(s)};function Ho({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Fo({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Uo={[B.Left]:{x:-1,y:0},[B.Right]:{x:1,y:0},[B.Top]:{x:0,y:-1},[B.Bottom]:{x:0,y:1}},Wo=({source:e,sourcePosition:t=B.Bottom,target:n})=>t===B.Left||t===B.Right?e.xMath.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function Ko({source:e,sourcePosition:t=B.Bottom,target:n,targetPosition:r=B.Top,center:i,offset:a,stepPosition:o}){let s=Uo[t],c=Uo[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=Wo({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Fo({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function qo(e,t,n,r){let i=Math.min(Go(e,t)/2,Go(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.xe.id===t):e[0])||null}function es(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function ts(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=es(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var ns=1e3,rs=10,is={nodeOrigin:[0,0],nodeExtent:Ea,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},as={...is,checkEquality:!0};function os(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function ss(e,t,n){let r=os(is,n);for(let n of e.values())if(n.parentId)fs(n,e,t,r);else{let e=Xa(Ba(n,r.nodeOrigin),_o(n.extent)?n.extent:r.nodeExtent,vo(n));n.internals.positionAbsolute=e}}function cs(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function ls(e){return e===`manual`}function us(e,t,n,r={}){let i=os(as,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!ls(i.zIndexMode)?ns:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=Xa(Ba(u,i.nodeOrigin),_o(u.extent)?u.extent:i.nodeExtent,vo(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:cs(u,e),z:ps(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&fs(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function ds(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function fs(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=os(is,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}ds(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*rs),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=ms(e,u,o,s,a&&!ls(c)?ns:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function ps(e,t,n){let r=V(e.zIndex)?e.zIndex:0;return ls(n)?r:r+(e.selected?t:0)}function ms(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=vo(e),l=Ba(e,n),u=_o(e.extent)?Xa(l,e.extent,c):l,d=Xa({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=Za(d,c,t));let f=ps(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function hs(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=ao(a.get(n.parentId)?.expandedRect??ro(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=vo(a),l=a.origin??r,u=t.x0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width0){let e=hs(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function _s({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function vs(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function ys(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;vs(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),vs(`target`,s,c,e,i,o),t.set(r.id,r)}}function bs(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:bs(n,t):!1}function xs(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Ss(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!bs(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Cs({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function ws({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=uo(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Ts({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=Kt(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?to(Ha(s)):null,x=v&&l?ws({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:uo(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=qa({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Cs({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=$a(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=wo(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Ss(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Cs({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=cn().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=wo(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=W(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=wo(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=W(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=W(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Cs({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!xs(t,`.${g}`,v))&&(!_||xs(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Es(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())so(i,ro(e))>0&&r.push(e);return r}var Ds=250;function Os(e,t,n,r){let i=[],a=1/0,o=Es(e,n,t+Ds);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=Qo(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function ks(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...Qo(o,c,c.position,!0)}:c}function As(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function js(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Ms=()=>!0;function Ns(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Ms,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=Eo(e.target),E=0,D,{x:O,y:k}=W(e),A=As(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let ee=ks(i,A,r,c,t);if(!ee)return;let N=W(e,j),te=!1,P=null,F=!1,ne=null;function re(){if(!u||!j)return;let[e,t]=$a(N,j,S);f({x:e,y:t}),E=requestAnimationFrame(re)}let ie={...ee,nodeId:i,type:A,position:ee.position},I=c.get(i),L={inProgress:!0,isValid:null,from:Qo(I,ie,B.Left,!0),fromHandle:ie,fromPosition:ie.position,fromNode:I,to:N,toHandle:null,toPosition:Fa[ie.position],toNode:null,pointer:N};function R(){M=!0,y(L),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&R();function ae(e){if(!M){let{x:t,y:n}=W(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;R()}if(!x()||!ie){oe(e);return}let a=b();N=W(e,j),D=Os(H(N,a,!1,[1,1]),n,c,ie),te||=(re(),!0);let s=Ps(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});ne=s.handleDomNode,P=s.connection,F=js(!!D,s.isValid);let u=c.get(i),f=u?Qo(u,ie,B.Left,!0):L.from,p={...L,from:f,isValid:F,to:s.toHandle&&F?U({x:s.toHandle.x,y:s.toHandle.y},a):N,toHandle:s.toHandle,toPosition:F&&s.toHandle?s.toHandle.position:Fa[ie.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:N};y(p),L=p}function oe(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||ne)&&P&&F&&h?.(P);let{inProgress:t,...n}=L,r={...n,toPosition:L.toHandle?L.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),te=!1,F=!1,P=null,ne=null,T.removeEventListener(`mousemove`,ae),T.removeEventListener(`mouseup`,oe),T.removeEventListener(`touchmove`,ae),T.removeEventListener(`touchend`,oe)}}T.addEventListener(`mousemove`,ae),T.addEventListener(`mouseup`,oe),T.addEventListener(`touchmove`,ae),T.addEventListener(`touchend`,oe)}function Ps(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Ms,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=W(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=As(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===ka.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=ks(t,e,a,u,n,!0)}return _}var Fs={onPointerDown:Ns,isValid:Ps};function Is({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=Kt(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&go()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=wa().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:Jt}}var Ls=e=>({x:e.x,y:e.y,zoom:e.k}),Rs=({x:e,y:t,zoom:n})=>ma.translate(e,t).scale(n),zs=(e,t)=>e.target.closest(`.${t}`),Bs=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Vs=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Hs=(e,t=0,n=Vs,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Us=e=>{let t=e.ctrlKey&&go()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Ws({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(zs(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=Jt(u),t=d*2**Us(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Aa.Vertical?0:u.deltaX*f,m=i===Aa.Horizontal?0:u.deltaY*f;!go()&&u.shiftKey&&i!==Aa.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Ls(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function Gs({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=zs(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function Ks({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Ls(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function qs({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Bs(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Ls(a.transform))}}function Js({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Bs(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Ls(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function Ys({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(zs(d,`${l}-flow__node`)||zs(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||zs(d,s)&&m||zs(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function Xs({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=wa().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=Kt(e).call(f);y({x:i.x,y:i.y,zoom:Ya(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(Us);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?dr:Tr).transform(Hs(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!l.isZoomingOrPanning&&v();let O=i&&!S&&!r;f.clickDistance(D?1/0:!V(E)||E<0?0:E);let k=O?Ws({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):Gs({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,k,{passive:!1});let A=Ks({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,A);let j=qs({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});f.on(`zoom`,j);let M=Js({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,M);let ee=Ys({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});f.filter(ee),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=Rs(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=Rs(e);return await g(n,t),n}function x(e){if(p){let t=Rs(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?ha(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?dr:Tr).scaleTo(Hs(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?dr:Tr).scaleBy(Hs(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!V(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var Zs;(function(e){e.Line=`line`,e.Handle=`handle`})(Zs||={});function Qs({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function $s(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function ec(e,t){return Math.max(0,t-e)}function tc(e,t){return Math.max(0,e-t)}function nc(e,t,n){return Math.max(0,t-e,e-n)}function rc(e,t){return e?!t:t}function ic(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=nc(E,h,g),j=nc(D,_,v);if(o){let e=0,t=0;c&&w<0?e=ec(y+w+O,o[0][0]):!c&&w>0&&(e=tc(y+E+O,o[1][0])),l&&T<0?t=ec(b+T+k,o[0][1]):!l&&T>0&&(t=tc(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=tc(y+w,s[0][0]):!c&&w<0&&(e=ec(y+E,s[1][0])),l&&T>0?t=tc(b+T,s[0][1]):!l&&T<0&&(t=ec(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=nc(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?tc(b+k+E/C,o[1][1])*C:ec(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?ec(b+E/C,s[1][1])*C:tc(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=nc(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?tc(y+D*C+O,o[1][0])/C:ec(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?ec(y+D*C,s[1][0])/C:tc(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(rc(c,l)?-w:w)/C:w=(rc(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,ee=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+ee}}var ac={width:0,height:0,x:0,y:0},oc={...ac,pointerX:0,pointerY:0,aspectRatio:1};function sc(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function cc({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=Kt(e),o={controlDirection:$s(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...ac},h={...oc};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:$s(e)};let g,_=null,v=[],y,b,x,S=!1,C=cn().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=wo(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=_o(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=sc(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=wo(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=ic(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,ee=k!==u&&j,N=A!==f&&M;if(!ee&&!N&&!j&&!M)return;if((ee||N||E[0]===1||E[1]===1)&&(T.x=ee?k:m.x,T.y=N?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var lc=o((e=>{var t=u();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),uc=o(((e,t)=>{t.exports=lc()})),dc=o((e=>{var t=u(),n=uc();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),fc=c(o(((e,t)=>{t.exports=dc()}))(),1),pc=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},mc=e=>e?pc(e):pc,{useDebugValue:hc}=_.default,{useSyncExternalStoreWithSelector:gc}=fc.default,_c=e=>e;function vc(e,t=_c,n){let r=gc(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return hc(r),r}var yc=(e,t)=>{let n=mc(e),r=(e,r=t)=>vc(n,e,r);return Object.assign(r,n),r},bc=(e,t)=>e?yc(e,t):yc;function xc(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}m();var Sc=(0,_.createContext)(null),Cc=Sc.Provider,wc=Ta.error001(`react`);function G(e,t){let n=(0,_.useContext)(Sc);if(n===null)throw Error(wc);return vc(n,e,t)}function Tc(){let e=(0,_.useContext)(Sc);if(e===null)throw Error(wc);return(0,_.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Ec={display:`none`},Dc={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Oc=`react-flow__node-desc`,kc=`react-flow__edge-desc`,Ac=`react-flow__aria-live`,jc=e=>e.ariaLiveMessage,Mc=e=>e.ariaLabelConfig;function Nc({rfId:e}){let t=G(jc);return(0,b.jsx)(`div`,{id:`${Ac}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Dc,children:t})}function Pc({rfId:e,disableKeyboardA11y:t}){let n=G(Mc);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`div`,{id:`${Oc}-${e}`,style:Ec,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,b.jsx)(`div`,{id:`${kc}-${e}`,style:Ec,children:n[`edge.a11yDescription.default`]}),!t&&(0,b.jsx)(Nc,{rfId:e})]})}var Fc=(0,_.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,b.jsx)(`div`,{className:E([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));Fc.displayName=`Panel`;var Ic=`https://reactflow.dev?utm_source=attribution`;function Lc({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,b.jsx)(Fc,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Ic}`,children:(0,b.jsx)(`a`,{href:Ic,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Rc=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},zc=e=>e.id;function Bc(e,t){return xc(e.selectedNodes.map(zc),t.selectedNodes.map(zc))&&xc(e.selectedEdges.map(zc),t.selectedEdges.map(zc))}function Vc({onSelectionChange:e}){let t=Tc(),{selectedNodes:n,selectedEdges:r}=G(Rc,Bc);return(0,_.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Hc=e=>!!e.onSelectionChangeHandlers;function Uc({onSelectionChange:e}){let t=G(Hc);return e||t?(0,b.jsx)(Vc,{onSelectionChange:e}):null}var Wc=[0,0],Gc={x:0,y:0,zoom:1},Kc=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],qc=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Jc={translateExtent:Ea,nodeOrigin:Wc,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function Yc(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=G(qc,xc),l=Tc();(0,_.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=Jc,s()}),[]);let u=(0,_.useRef)(Jc);return(0,_.useEffect)(()=>{for(let s of Kc){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Co(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},Kc.map(t=>e[t])),null}function Xc(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function Zc(e){let[t,n]=(0,_.useState)(e===`system`?null:e);return(0,_.useEffect)(()=>{if(e!==`system`){n(e);return}let t=Xc(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?Xc()?.matches?`dark`:`light`:t}var Qc=typeof document<`u`?document:null;function $c(e=null,t={target:Qc,actInsideInputWithModifier:!0}){let[n,r]=(0,_.useState)(!1),i=(0,_.useRef)(!1),a=(0,_.useRef)(new Set([])),[o,s]=(0,_.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,` +`).replace(` + +`,` ++`).split(` +`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,_.useEffect)(()=>{let n=t?.target??Qc,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&Oo(e))return!1;let n=tl(e.code,s);if(a.current.add(e[n]),el(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=tl(e.code,s);el(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function el(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function tl(e,t){return t.includes(e)?`code`:`key`}var nl=()=>{let e=Tc();return(0,_.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=ho(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return H(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=U(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function rl(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)il(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function il(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing);break}}function al(e,t){return rl(e,t)}function ol(e,t){return rl(e,t)}function K(e,t){return{id:e,type:`select`,selected:t}}function sl(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(K(a.id,e)))}return r}function cl({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function ll(e){return{id:e.id,type:`remove`}}var ul=lo(`React Flow`,`https://reactflow.dev/`);function dl(e,t,n={}){return Bo(e,t,{...n,onError:n.onError??ul})}function fl(e,t,n,r={shouldReplaceId:!0}){return Vo(e,t,n,{...r,onError:r.onError??ul})}var pl=e=>Ra(e),ml=e=>La(e);function hl(e){return(0,_.forwardRef)(e)}var gl=typeof window<`u`?_.useLayoutEffect:_.useEffect;function _l(e){let[t,n]=(0,_.useState)(BigInt(0)),[r]=(0,_.useState)(()=>vl(()=>n(e=>e+BigInt(1))));return gl(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function vl(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var yl=(0,_.createContext)(null);function bl({children:e}){let t=Tc(),n=_l((0,_.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=cl({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=_l((0,_.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(cl({items:s,lookup:o}))},[])),i=(0,_.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,b.jsx)(yl.Provider,{value:i,children:e})}function xl(){let e=(0,_.useContext)(yl);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Sl=e=>!!e.panZoom;function Cl(){let e=nl(),t=Tc(),n=xl(),r=G(Sl),i=(0,_.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=pl(e)?e:n.get(e.id),a=i.parentId?bo(i.position,i.measured,i.parentId,n,r):i.position;return ro({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&pl(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&ml(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await Ja({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(ll);o?.(f),c(e)}if(m){let e=d.map(ll);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=co(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=ro(s?r:a),l=so(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=co(e)?e:a(e);if(!r)return!1;let i=so(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return Va(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??So();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,_.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var wl=e=>e.selected,Tl=typeof window<`u`?window:void 0;function El({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=Tc(),{deleteElements:r}=Cl(),i=$c(e,{actInsideInputWithModifier:!1}),a=$c(t,{target:Tl});(0,_.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(wl),edges:e.filter(wl)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,_.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Dl(e){let t=Tc();(0,_.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=To(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,Ta.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var Ol={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},kl=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Al({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=Aa.Free,zoomOnDoubleClick:o=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:l,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:m,noWheelClassName:h,noPanClassName:g,onViewportChange:v,isControlledViewport:y,paneClickDistance:x,selectionOnDrag:S}){let C=Tc(),w=(0,_.useRef)(null),{userSelectionActive:T,lib:E,connectionInProgress:D}=G(kl,xc),O=$c(f),k=(0,_.useRef)();Dl(w);let A=(0,_.useCallback)(e=>{v?.({x:e[0],y:e[1],zoom:e[2]}),y||C.setState({transform:e})},[v,y]);return(0,_.useEffect)(()=>{if(w.current){k.current=Xs({domNode:w.current,minZoom:u,maxZoom:d,translateExtent:l,viewport:c,onDraggingChange:e=>C.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=C.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=C.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=C.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=k.current.getViewport();return C.setState({panZoom:k.current,transform:[e,t,n],domNode:w.current.closest(`.react-flow`)}),()=>{k.current?.destroy()}}},[]),(0,_.useEffect)(()=>{k.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:o,panOnDrag:s,zoomActivationKeyPressed:O,preventScrolling:p,noPanClassName:g,userSelectionActive:T,noWheelClassName:h,lib:E,onTransformChange:A,connectionInProgress:D,selectionOnDrag:S,paneClickDistance:x})},[e,t,n,r,i,a,o,s,O,p,g,T,h,E,A,D,S,x]),(0,b.jsx)(`div`,{className:`react-flow__renderer`,ref:w,style:Ol,children:m})}var jl=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Ml(){let{userSelectionActive:e,userSelectionRect:t}=G(jl,xc);return e&&t?(0,b.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var Nl=(e,t)=>n=>{n.target===t.current&&e?.(n)},Pl=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Fl({isSelecting:e,selectionKeyPressed:t,selectionMode:n=ja.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,_.useRef)(0),v=Tc(),{userSelectionActive:y,elementsSelectable:x,dragging:S,panBy:C,autoPanSpeed:w}=G(Pl,xc),T=x&&(e||y),D=(0,_.useRef)(null),O=(0,_.useRef)(),k=(0,_.useRef)(new Set),A=(0,_.useRef)(new Set),j=(0,_.useRef)(!1),M=(0,_.useRef)(!1),ee=(0,_.useRef)({x:0,y:0}),N=(0,_.useRef)(!1),te=e=>{if(M.current||j.current||v.getState().connection.inProgress){M.current=!1,j.current=!1;return}l?.(e),v.getState().resetSelectedElements(),v.setState({nodesSelectionActive:!1})},P=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},F=d?e=>d(e):void 0,ne=e=>{M.current&&=(e.stopPropagation(),!1)},re=n=>{let{domNode:r,transform:i}=v.getState();if(O.current=r?.getBoundingClientRect(),!O.current)return;let a=n.target===D.current;if(!a&&n.target.closest(`.nokey`)||!e||!(o&&a||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),M.current=!1;let{x:s,y:c}=W(n.nativeEvent,O.current),l=H({x:s,y:c},i);v.setState({userSelectionRect:{width:0,height:0,startX:l.x,startY:l.y,x:s,y:c}}),a||(n.stopPropagation(),n.preventDefault())};function ie(e,t){let{userSelectionRect:r}=v.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=v.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=U(d,i),m={startX:d.x,startY:d.y,x:ee.id)),A.current=new Set;let _=u?.selectable??!0;for(let e of k.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??_)&&A.current.add(e)}}xo(h,k.current)||c(sl(a,k.current,!0)),xo(g,A.current)||l(sl(o,A.current)),v.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function I(){if(!i||!O.current)return;let[e,t]=$a(ee.current,O.current,w);C({x:e,y:t}).then(e=>{if(!M.current||!e){g.current=requestAnimationFrame(I);return}let{x:t,y:n}=ee.current;ie(t,n),g.current=requestAnimationFrame(I)})}let L=()=>{cancelAnimationFrame(g.current),g.current=0,N.current=!1};return(0,_.useEffect)(()=>()=>L(),[]),(0,b.jsxs)(`div`,{className:E([`react-flow__pane`,{draggable:r===!0||Array.isArray(r)&&r.includes(0),dragging:S,selection:e}]),onClick:T?void 0:Nl(te,D),onContextMenu:Nl(P,D),onWheel:Nl(F,D),onPointerEnter:T?void 0:f,onPointerMove:T?e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=v.getState();if(!O.current||!n)return;let{x:o,y:c}=W(e.nativeEvent,O.current);ee.current={x:o,y:c};let l=U({x:n.startX,y:n.startY},r);if(!M.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}M.current=!0,N.current||=(I(),!0),ie(o,c)}:p,onPointerUp:e=>{if(!T){e.target===D.current&&v.getState().connection.inProgress&&(j.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!y&&e.target===D.current&&v.getState().userSelectionRect&&te?.(e),v.setState({userSelectionActive:!1,userSelectionRect:null}),M.current&&(c?.(e),v.setState({nodesSelectionActive:k.current.size>0})),L())},onPointerCancel:T?e=>{e.target?.releasePointerCapture?.(e.pointerId),L()}:void 0,onPointerDownCapture:T?re:void 0,onClickCapture:T?ne:void 0,onPointerLeave:m,ref:D,style:Ol,children:[h,(0,b.jsx)(Ml,{})]})}function Il({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,Ta.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Ll({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=Tc(),[c,l]=(0,_.useState)(!1),u=(0,_.useRef)();return(0,_.useEffect)(()=>{if(!t)return u.current=Ts({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Il({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,_.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var q=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function Rl(){let e=Tc();return(0,_.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=q(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=uo(t,i));let{position:a,positionAbsolute:s}=qa({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var J=(0,_.createContext)(null),Y=J.Provider;J.Consumer;var X=()=>(0,_.useContext)(J),zl=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Bl=(0,_.createContext)(null);function Vl({children:e}){let t=G(zl,xc);return(0,b.jsx)(Bl.Provider,{value:t,children:e})}function Hl(){let e=(0,_.useContext)(Bl);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var Ul={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},Wl=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return Ul;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===ka.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function Gl({type:e=`source`,position:t=B.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=Tc(),_=X(),{connectOnClick:v,noPanClassName:y,rfId:x}=Hl(),{connectingFrom:S,connectingTo:C,clickConnecting:w,isPossibleEndHandle:T,connectionInProcess:D,clickConnectionInProcess:O,valid:k}=G(Wl(_,m,e),xc);_||g.getState().onError?.(`010`,Ta.error010());let A=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(dl(i,e,{onError:n}))}n?.(i),s?.(i)},j=e=>{if(!_)return;let t=ko(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Fs.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:A,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,b.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${x}-${_}-${m}-${e}`,className:E([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:w,connectingfrom:S,connectingto:C,valid:k,connectionindicator:r&&(!D||T)&&(D||O?a:i)}]),onMouseDown:j,onTouchStart:j,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=Eo(t.target),h=n||c,{connection:v,isValid:y}=Fs.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&A(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var Kl=(0,_.memo)(hl(Gl));function ql({data:e,isConnectable:t,sourcePosition:n=B.Bottom}){return(0,b.jsxs)(b.Fragment,{children:[e?.label,(0,b.jsx)(Kl,{type:`source`,position:n,isConnectable:t})]})}function Jl({data:e,isConnectable:t,targetPosition:n=B.Top,sourcePosition:r=B.Bottom}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Kl,{type:`target`,position:n,isConnectable:t}),e?.label,(0,b.jsx)(Kl,{type:`source`,position:r,isConnectable:t})]})}function Yl(){return null}function Xl({data:e,isConnectable:t,targetPosition:n=B.Top}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Kl,{type:`target`,position:n,isConnectable:t}),e?.label]})}var Zl={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Ql={input:ql,default:Jl,output:Xl,group:Yl};function $l(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var eu=e=>{let{width:t,height:n,x:r,y:i}=Ha(e.nodeLookup,{filter:e=>!!e.selected});return{width:V(t)?t:null,height:V(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function tu({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=Tc(),{width:i,height:a,transformString:o,userSelectionActive:s}=G(eu,xc),c=Rl(),l=(0,_.useRef)(null);(0,_.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Ll({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,b.jsx)(`div`,{className:E([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,b.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(Zl,e.key)&&(e.preventDefault(),c({direction:Zl[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var nu=typeof window<`u`?window:void 0,ru=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function iu({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:x,panOnScrollSpeed:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:T,autoPanOnSelection:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,onSelectionContextMenu:M,noWheelClassName:ee,noPanClassName:N,disableKeyboardA11y:te,onViewportChange:P,isControlledViewport:F}){let{nodesSelectionActive:ne,userSelectionActive:re}=G(ru,xc),ie=$c(l,{target:nu}),I=$c(h,{target:nu}),L=I||T,R=I||x,ae=u&&L!==!0,oe=ie||re||ae;return El({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,b.jsx)(Al,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:R,panOnScrollSpeed:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:!ie&&L,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,zoomActivationKeyCode:g,preventScrolling:j,noWheelClassName:ee,noPanClassName:N,onViewportChange:P,isControlledViewport:F,paneClickDistance:s,selectionOnDrag:ae,children:(0,b.jsxs)(Fl,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:L,autoPanOnSelection:E,isSelecting:!!oe,selectionMode:d,selectionKeyPressed:ie,paneClickDistance:s,selectionOnDrag:ae,children:[e,ne&&(0,b.jsx)(tu,{onSelectionContextMenu:M,noPanClassName:N,disableKeyboardA11y:te})]})})}iu.displayName=`FlowRenderer`;var au=(0,_.memo)(iu),ou=e=>t=>e?Ua(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function su(e){return G((0,_.useCallback)(ou(e),[e]),xc)}var cu=e=>e.updateNodeInternals;function lu(){let e=G(cu),[t]=(0,_.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,_.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function uu({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=Tc(),a=(0,_.useRef)(null),o=(0,_.useRef)(null),s=(0,_.useRef)(e.sourcePosition),c=(0,_.useRef)(e.targetPosition),l=(0,_.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,_.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,_.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,_.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function du({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:x,isParent:S}=G(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},xc),C=y.type||`default`,w=g?.[C]||Ql[C];w===void 0&&(v?.(`003`,Ta.error003(C)),C=`default`,w=g?.default||Ql.default);let T=!!(y.draggable||s&&y.draggable===void 0),D=!!(y.selectable||c&&y.selectable===void 0),O=!!(y.connectable||l&&y.connectable===void 0),k=!!(y.focusable||u&&y.focusable===void 0),A=Tc(),j=yo(y),M=uu({node:y,nodeType:C,hasDimensions:j,resizeObserver:d}),ee=Ll({nodeRef:M,disabled:y.hidden||!T,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:D,nodeClickDistance:_}),N=Rl();if(y.hidden)return null;let te=vo(y),P=$l(y),F=D||T||t||n||r||i,ne=n?e=>n(e,{...x.userNode}):void 0,re=r?e=>r(e,{...x.userNode}):void 0,ie=i?e=>i(e,{...x.userNode}):void 0,I=a?e=>a(e,{...x.userNode}):void 0,L=o?e=>o(e,{...x.userNode}):void 0,R=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=A.getState();D&&(!r||!T||i>0)&&Il({id:e,store:A,nodeRef:M}),t&&t(n,{...x.userNode})},ae=t=>{if(!(Oo(t.nativeEvent)||m)){if(Da.includes(t.key)&&D){let n=t.key===`Escape`;Il({id:e,store:A,unselect:n,nodeRef:M})}else if(T&&y.selected&&Object.prototype.hasOwnProperty.call(Zl,t.key)){t.preventDefault();let{ariaLabelConfig:e}=A.getState();A.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~x.positionAbsolute.x,y:~~x.positionAbsolute.y})}),N({direction:Zl[t.key],factor:t.shiftKey?4:1})}}},oe=()=>{if(m||!M.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=A.getState();i&&(Ua(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+te.width/2,y.position.y+te.height/2,{zoom:t[2]}))};return(0,b.jsx)(`div`,{className:E([`react-flow__node`,`react-flow__node-${C}`,{[p]:T},y.className,{selected:y.selected,selectable:D,parent:S,draggable:T,dragging:ee}]),ref:M,style:{zIndex:x.z,transform:`translate(${x.positionAbsolute.x}px,${x.positionAbsolute.y}px)`,pointerEvents:F?`all`:`none`,visibility:j?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:ne,onMouseMove:re,onMouseLeave:ie,onContextMenu:I,onClick:R,onDoubleClick:L,onKeyDown:k?ae:void 0,tabIndex:k?0:void 0,onFocus:k?oe:void 0,role:y.ariaRole??(k?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Oc}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,b.jsx)(Y,{value:e,children:(0,b.jsx)(w,{id:e,data:y.data,type:C,positionAbsoluteX:x.positionAbsolute.x,positionAbsoluteY:x.positionAbsolute.y,selected:y.selected??!1,selectable:D,draggable:T,deletable:y.deletable??!0,isConnectable:O,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:ee,dragHandle:y.dragHandle,zIndex:x.z,parentId:y.parentId,...te})})})}var fu=(0,_.memo)(du),pu=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function mu(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=G(pu,xc),a=su(e.onlyRenderVisibleElements),o=lu();return(0,b.jsx)(`div`,{className:`react-flow__nodes`,style:Ol,children:a.map(a=>(0,b.jsx)(fu,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}mu.displayName=`NodeRenderer`;var hu=(0,_.memo)(mu);function gu(e){return G((0,_.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&Lo({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),xc)}var _u=({color:e=`none`,strokeWidth:t=1})=>(0,b.jsx)(`polyline`,{className:`arrow`,style:{strokeWidth:t,...e&&{stroke:e}},strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`}),vu=({color:e=`none`,strokeWidth:t=1})=>(0,b.jsx)(`polyline`,{className:`arrowclosed`,style:{strokeWidth:t,...e&&{stroke:e,fill:e}},strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`}),yu={[Pa.Arrow]:_u,[Pa.ArrowClosed]:vu};function bu(e){let t=Tc();return(0,_.useMemo)(()=>Object.prototype.hasOwnProperty.call(yu,e)?yu[e]:(t.getState().onError?.(`009`,Ta.error009(e)),null),[e])}var xu=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=bu(t);return c?(0,b.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,b.jsx)(c,{color:n,strokeWidth:o})}):null},Su=({defaultColor:e,rfId:t})=>{let n=G(e=>e.edges),r=G(e=>e.defaultEdgeOptions),i=(0,_.useMemo)(()=>ts(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,b.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,b.jsx)(`defs`,{children:i.map(e=>(0,b.jsx)(xu,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};Su.displayName=`MarkerDefinitions`;var Cu=(0,_.memo)(Su);function wu({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,_.useState)({x:1,y:0,width:0,height:0}),p=E([`react-flow__edge-textwrapper`,l]),m=(0,_.useRef)(null);return(0,_.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,b.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,b.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,b.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}wu.displayName=`EdgeText`;var Tu=(0,_.memo)(wu);function Eu({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`path`,{...u,d:e,fill:`none`,className:E([`react-flow__edge-path`,u.className])}),l?(0,b.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&V(t)&&V(n)?(0,b.jsx)(Tu,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Du({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===B.Left||e===B.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Ou({sourceX:e,sourceY:t,sourcePosition:n=B.Bottom,targetX:r,targetY:i,targetPosition:a=B.Top}){let[o,s]=Du({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Du({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=jo({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function ku(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,x]=Ou({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s});return(0,b.jsx)(Eu,{id:e.isInternal?void 0:t,path:v,labelX:y,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var Au=ku({isInternal:!1}),ju=ku({isInternal:!0});Au.displayName=`SimpleBezierEdge`,ju.displayName=`SimpleBezierEdgeInternal`;function Mu(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=B.Bottom,targetPosition:m=B.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,x,S]=Jo({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition});return(0,b.jsx)(Eu,{id:e.isInternal?void 0:t,path:y,labelX:x,labelY:S,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Nu=Mu({isInternal:!1}),Pu=Mu({isInternal:!0});Nu.displayName=`SmoothStepEdge`,Pu.displayName=`SmoothStepEdgeInternal`;function Fu(e){return(0,_.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,b.jsx)(Nu,{...n,id:r,pathOptions:(0,_.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Iu=Fu({isInternal:!1}),Lu=Fu({isInternal:!0});Iu.displayName=`StepEdge`,Lu.displayName=`StepEdgeInternal`;function Ru(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=Ho({sourceX:n,sourceY:r,targetX:i,targetY:a});return(0,b.jsx)(Eu,{id:e.isInternal?void 0:t,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var zu=Ru({isInternal:!1}),Bu=Ru({isInternal:!0});zu.displayName=`StraightEdge`,Bu.displayName=`StraightEdgeInternal`;function Vu(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=B.Bottom,targetPosition:s=B.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,x,S]=Po({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature});return(0,b.jsx)(Eu,{id:e.isInternal?void 0:t,path:y,labelX:x,labelY:S,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var Hu=Vu({isInternal:!1}),Uu=Vu({isInternal:!0});Hu.displayName=`BezierEdge`,Uu.displayName=`BezierEdgeInternal`;var Wu={default:Uu,straight:Bu,step:Lu,smoothstep:Pu,simplebezier:ju},Z={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},Gu=(e,t,n)=>n===B.Left?e-t:n===B.Right?e+t:e,Ku=(e,t,n)=>n===B.Top?e-t:n===B.Bottom?e+t:e,qu=`react-flow__edgeupdater`;function Ju({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,b.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:E([qu,`${qu}-${s}`]),cx:Gu(t,r,e),cy:Ku(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function Yu({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=Tc(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;Fs.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,b.jsxs)(b.Fragment,{children:[(e===!0||e===`source`)&&(0,b.jsx)(Ju,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,b.jsx)(Ju,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function Xu({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:v,disableKeyboardA11y:y}){let x=G(t=>t.edgeLookup.get(e)),S=G(e=>e.defaultEdgeOptions);x=S?{...S,...x}:x;let C=x.type||`default`,w=h?.[C]||Wu[C];w===void 0&&(v?.(`011`,Ta.error011(C)),C=`default`,w=h?.default||Wu.default);let T=!!(x.focusable||t&&x.focusable===void 0),D=d!==void 0&&(x.reconnectable||n&&x.reconnectable===void 0),O=!!(x.selectable||r&&x.selectable===void 0),k=(0,_.useRef)(null),[A,j]=(0,_.useState)(!1),[M,ee]=(0,_.useState)(!1),N=Tc(),{zIndex:te=x.zIndex,sourceX:P,sourceY:F,targetX:ne,targetY:re,sourcePosition:ie,targetPosition:I}=G((0,_.useCallback)(t=>{let n=t.nodeLookup.get(x.source),r=t.nodeLookup.get(x.target);if(!n||!r)return Z;let i=Xo({id:e,sourceNode:n,targetNode:r,sourceHandle:x.sourceHandle||null,targetHandle:x.targetHandle||null,connectionMode:t.connectionMode,onError:v}),a=Io({selected:x.selected,zIndex:x.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||Z,zIndex:a}},[x.source,x.target,x.sourceHandle,x.targetHandle,x.selected,x.zIndex]),xc),L=(0,_.useMemo)(()=>x.markerStart?`url('#${es(x.markerStart,m)}')`:void 0,[x.markerStart,m]),R=(0,_.useMemo)(()=>x.markerEnd?`url('#${es(x.markerEnd,m)}')`:void 0,[x.markerEnd,m]);if(x.hidden||P===null||F===null||ne===null||re===null)return null;let ae=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=N.getState();O&&(N.setState({nodesSelectionActive:!1}),x.selected&&a?(r({nodes:[],edges:[x]}),k.current?.blur()):n([e])),i&&i(t,x)},oe=a?e=>{a(e,{...x})}:void 0,se=o?e=>{o(e,{...x})}:void 0,ce=s?e=>{s(e,{...x})}:void 0,le=c?e=>{c(e,{...x})}:void 0,ue=l?e=>{l(e,{...x})}:void 0;return(0,b.jsx)(`svg`,{style:{zIndex:te},children:(0,b.jsxs)(`g`,{className:E([`react-flow__edge`,`react-flow__edge-${C}`,x.className,g,{selected:x.selected,animated:x.animated,inactive:!O&&!i,updating:A,selectable:O}]),onClick:ae,onDoubleClick:oe,onContextMenu:se,onMouseEnter:ce,onMouseMove:le,onMouseLeave:ue,onKeyDown:T?t=>{if(!y&&Da.includes(t.key)&&O){let{unselectNodesAndEdges:n,addSelectedEdges:r}=N.getState();t.key===`Escape`?(k.current?.blur(),n({edges:[x]})):r([e])}}:void 0,tabIndex:T?0:void 0,role:x.ariaRole??(T?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":x.ariaLabel===null?void 0:x.ariaLabel||`Edge from ${x.source} to ${x.target}`,"aria-describedby":T?`${kc}-${m}`:void 0,ref:k,...x.domAttributes,children:[!M&&(0,b.jsx)(w,{id:e,source:x.source,target:x.target,type:x.type,selected:x.selected,animated:x.animated,selectable:O,deletable:x.deletable??!0,label:x.label,labelStyle:x.labelStyle,labelShowBg:x.labelShowBg,labelBgStyle:x.labelBgStyle,labelBgPadding:x.labelBgPadding,labelBgBorderRadius:x.labelBgBorderRadius,sourceX:P,sourceY:F,targetX:ne,targetY:re,sourcePosition:ie,targetPosition:I,data:x.data,style:x.style,sourceHandleId:x.sourceHandle,targetHandleId:x.targetHandle,markerStart:L,markerEnd:R,pathOptions:`pathOptions`in x?x.pathOptions:void 0,interactionWidth:x.interactionWidth}),D&&(0,b.jsx)(Yu,{edge:x,isReconnectable:D,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:P,sourceY:F,targetX:ne,targetY:re,sourcePosition:ie,targetPosition:I,setUpdateHover:j,setReconnecting:ee})]})})}var Zu=(0,_.memo)(Xu),Qu=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function $u({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=G(Qu,xc),x=gu(t);return(0,b.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,b.jsx)(Cu,{defaultColor:e,rfId:n}),x.map(e=>(0,b.jsx)(Zu,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}$u.displayName=`EdgeRenderer`;var ed=(0,_.memo)($u),td=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function nd({children:e}){let t=Tc(),n=(0,_.useRef)(null),[r]=(0,_.useState)(()=>t.getState().transform);return gl(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=td(r)))};return r(),t.subscribe(r)},[t]),(0,b.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:td(r)},children:e})}function rd(e){let t=Cl(),n=(0,_.useRef)(!1);(0,_.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var id=e=>e.panZoom?.syncViewport;function ad(e){let t=G(id),n=Tc();return(0,_.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function od(e){return e.connection.inProgress?{...e.connection,to:H(e.connection.to,e.transform)}:{...e.connection}}function sd(e){return e?t=>e(od(t)):od}function cd(e){return G(sd(e),xc)}var ld=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function ud({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=G(ld,xc);return a&&i&&c?(0,b.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,b.jsx)(`g`,{className:E([`react-flow__connection`,Ia(s)]),children:(0,b.jsx)(dd,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var dd=({style:e,type:t=Na.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=cd();if(!i)return;if(n)return(0,b.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Ia(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case Na.Bezier:[m]=Po(h);break;case Na.SimpleBezier:[m]=Ou(h);break;case Na.Step:[m]=Jo({...h,borderRadius:0});break;case Na.SmoothStep:[m]=Jo(h);break;default:[m]=Ho(h)}return(0,b.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};dd.displayName=`ConnectionLine`;var fd={};function pd(e=fd){(0,_.useRef)(e),Tc(),(0,_.useEffect)(()=>{},[e])}function md(){Tc(),(0,_.useRef)(!1),(0,_.useEffect)(()=>{},[])}function hd({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:x,multiSelectionKeyCode:S,panActivationKeyCode:C,zoomActivationKeyCode:w,deleteKeyCode:T,onlyRenderVisibleElements:E,elementsSelectable:D,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,preventScrolling:M,defaultMarkerColor:ee,zoomOnScroll:N,zoomOnPinch:te,panOnScroll:P,panOnScrollSpeed:F,panOnScrollMode:ne,zoomOnDoubleClick:re,panOnDrag:ie,autoPanOnSelection:I,onPaneClick:L,onPaneMouseEnter:R,onPaneMouseMove:ae,onPaneMouseLeave:oe,onPaneScroll:se,onPaneContextMenu:ce,paneClickDistance:le,nodeClickDistance:ue,onEdgeContextMenu:de,onEdgeMouseEnter:fe,onEdgeMouseMove:pe,onEdgeMouseLeave:me,reconnectRadius:he,onReconnect:ge,onReconnectStart:_e,onReconnectEnd:ve,noDragClassName:ye,noWheelClassName:be,noPanClassName:xe,disableKeyboardA11y:Se,nodeExtent:Ce,rfId:we,viewport:Te,onViewportChange:Ee,nodesDraggable:De}){return pd(e),pd(t),md(),rd(n),ad(Te),(0,b.jsx)(au,{onPaneClick:L,onPaneMouseEnter:R,onPaneMouseMove:ae,onPaneMouseLeave:oe,onPaneContextMenu:ce,onPaneScroll:se,paneClickDistance:le,deleteKeyCode:T,selectionKeyCode:v,selectionOnDrag:y,selectionMode:x,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:S,panActivationKeyCode:C,zoomActivationKeyCode:w,elementsSelectable:D,zoomOnScroll:N,zoomOnPinch:te,zoomOnDoubleClick:re,panOnScroll:P,panOnScrollSpeed:F,panOnScrollMode:ne,panOnDrag:ie,autoPanOnSelection:I,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,onSelectionContextMenu:d,preventScrolling:M,noDragClassName:ye,noWheelClassName:be,noPanClassName:xe,disableKeyboardA11y:Se,onViewportChange:Ee,isControlledViewport:!!Te,children:(0,b.jsxs)(nd,{children:[(0,b.jsx)(ed,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ge,onReconnectStart:_e,onReconnectEnd:ve,onlyRenderVisibleElements:E,onEdgeContextMenu:de,onEdgeMouseEnter:fe,onEdgeMouseMove:pe,onEdgeMouseLeave:me,reconnectRadius:he,defaultMarkerColor:ee,noPanClassName:xe,disableKeyboardA11y:Se,rfId:we}),(0,b.jsx)(ud,{style:h,type:m,component:g,containerStyle:_}),(0,b.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,b.jsx)(hu,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:ue,onlyRenderVisibleElements:E,noPanClassName:xe,noDragClassName:ye,disableKeyboardA11y:Se,nodeExtent:Ce,rfId:we,nodesDraggable:De}),(0,b.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}hd.displayName=`GraphView`;var gd=(0,_.memo)(hd),_d=lo(`React Flow`,`https://reactflow.dev/`),vd=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??Ea;ys(h,g,_);let{nodesInitialized:x}=us(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=ho(Ha(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:Ea,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:ka.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Ma},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:_d,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:Oa,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},yd=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>bc((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await Ka({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...vd({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:o,nodesSelectionActive:s}=m(),{nodesInitialized:c,hasSelectedNodes:l}=us(e,t,n,{nodeOrigin:r,nodeExtent:d,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:o}),u=s&&l;a&&c?(h(),p({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:u})):p({nodes:e,nodesInitialized:c,nodesSelectionActive:u})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();ys(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=gs(e,n,r,i,a,o,l);d&&(ss(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=Qo(e,o.fromHandle,B.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=hs(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(al(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(ol(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>K(e,!0)));return}i(sl(r,new Set([...e]),!0)),a(sl(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>K(e,!0)));return}a(sl(n,new Set([...e]))),i(sl(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(K(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(K(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,K(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,K(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();e[0][0]===o[0][0]&&e[0][1]===o[0][1]&&e[1][0]===o[1][0]&&e[1][1]===o[1][1]||(us(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return _s({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...Ma}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...vd()})}},Object.is);function Q({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,_.useState)(()=>yd({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,b.jsx)(Cc,{value:m,children:(0,b.jsx)(bl,{children:(0,b.jsx)(Vl,{children:p})})})}function bd({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,_.useContext)(Sc)?(0,b.jsx)(b.Fragment,{children:e}):(0,b.jsx)(Q,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var xd={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function Sd({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:v,onNodeMouseEnter:y,onNodeMouseMove:x,onNodeMouseLeave:S,onNodeContextMenu:C,onNodeDoubleClick:w,onNodeDragStart:T,onNodeDrag:D,onNodeDragStop:O,onNodesDelete:k,onEdgesDelete:A,onDelete:j,onSelectionChange:M,onSelectionDragStart:ee,onSelectionDrag:N,onSelectionDragStop:te,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:ne,onBeforeDelete:re,connectionMode:ie,connectionLineType:I=Na.Bezier,connectionLineStyle:L,connectionLineComponent:R,connectionLineContainerStyle:ae,deleteKeyCode:oe=`Backspace`,selectionKeyCode:se=`Shift`,selectionOnDrag:ce=!1,selectionMode:le=ja.Full,panActivationKeyCode:ue=`Space`,multiSelectionKeyCode:de=go()?`Meta`:`Control`,zoomActivationKeyCode:fe=go()?`Meta`:`Control`,snapToGrid:pe,snapGrid:me,onlyRenderVisibleElements:he=!1,selectNodesOnDrag:ge,nodesDraggable:_e,autoPanOnNodeFocus:ve,nodesConnectable:ye,nodesFocusable:be,nodeOrigin:xe=Wc,edgesFocusable:Se,edgesReconnectable:Ce,elementsSelectable:we=!0,defaultViewport:Te=Gc,minZoom:Ee=.5,maxZoom:De=2,translateExtent:Oe=Ea,preventScrolling:ke=!0,nodeExtent:Ae,defaultMarkerColor:je=`#b1b1b7`,zoomOnScroll:Me=!0,zoomOnPinch:Ne=!0,panOnScroll:Pe=!1,panOnScrollSpeed:Fe=.5,panOnScrollMode:Ie=Aa.Free,zoomOnDoubleClick:Le=!0,panOnDrag:Re=!0,onPaneClick:ze,onPaneMouseEnter:Be,onPaneMouseMove:Ve,onPaneMouseLeave:He,onPaneScroll:Ue,onPaneContextMenu:We,paneClickDistance:Ge=1,nodeClickDistance:Ke=0,children:qe,onReconnect:Je,onReconnectStart:Ye,onReconnectEnd:Xe,onEdgeContextMenu:Ze,onEdgeDoubleClick:Qe,onEdgeMouseEnter:$e,onEdgeMouseMove:et,onEdgeMouseLeave:tt,reconnectRadius:nt=10,onNodesChange:rt,onEdgesChange:it,noDragClassName:at=`nodrag`,noWheelClassName:ot=`nowheel`,noPanClassName:st=`nopan`,fitView:ct,fitViewOptions:lt,connectOnClick:ut,attributionPosition:dt,proOptions:ft,defaultEdgeOptions:pt,elevateNodesOnSelect:mt=!0,elevateEdgesOnSelect:ht=!1,disableKeyboardA11y:gt=!1,autoPanOnConnect:_t,autoPanOnNodeDrag:vt,autoPanOnSelection:yt=!0,autoPanSpeed:bt,connectionRadius:xt,isValidConnection:St,onError:Ct,style:wt,id:Tt,nodeDragThreshold:Et,connectionDragThreshold:Dt,viewport:Ot,onViewportChange:kt,width:At,height:jt,colorMode:Mt=`light`,debug:Nt,onScroll:Pt,ariaLabelConfig:Ft,zIndexMode:It=`basic`,...Lt},Rt){let zt=Tt||`1`,Bt=Zc(Mt),Vt=(0,_.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Pt?.(e)},[Pt]);return(0,b.jsx)(`div`,{"data-testid":`rf__wrapper`,...Lt,onScroll:Vt,style:{...wt,...xd},ref:Rt,className:E([`react-flow`,i,Bt]),id:Tt,role:`application`,children:(0,b.jsxs)(bd,{nodes:e,edges:t,width:At,height:jt,fitView:ct,fitViewOptions:lt,minZoom:Ee,maxZoom:De,nodeOrigin:xe,nodeExtent:Ae,zIndexMode:It,children:[(0,b.jsx)(Yc,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:v,nodesDraggable:_e,autoPanOnNodeFocus:ve,nodesConnectable:ye,nodesFocusable:be,edgesFocusable:Se,edgesReconnectable:Ce,elementsSelectable:we,elevateNodesOnSelect:mt,elevateEdgesOnSelect:ht,minZoom:Ee,maxZoom:De,nodeExtent:Ae,onNodesChange:rt,onEdgesChange:it,snapToGrid:pe,snapGrid:me,connectionMode:ie,translateExtent:Oe,connectOnClick:ut,defaultEdgeOptions:pt,fitView:ct,fitViewOptions:lt,onNodesDelete:k,onEdgesDelete:A,onDelete:j,onNodeDragStart:T,onNodeDrag:D,onNodeDragStop:O,onSelectionDrag:N,onSelectionDragStart:ee,onSelectionDragStop:te,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:st,nodeOrigin:xe,rfId:zt,autoPanOnConnect:_t,autoPanOnNodeDrag:vt,autoPanSpeed:bt,onError:Ct,connectionRadius:xt,isValidConnection:St,selectNodesOnDrag:ge,nodeDragThreshold:Et,connectionDragThreshold:Dt,onBeforeDelete:re,debug:Nt,ariaLabelConfig:Ft,zIndexMode:It}),(0,b.jsx)(gd,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:y,onNodeMouseMove:x,onNodeMouseLeave:S,onNodeContextMenu:C,onNodeDoubleClick:w,nodeTypes:a,edgeTypes:o,connectionLineType:I,connectionLineStyle:L,connectionLineComponent:R,connectionLineContainerStyle:ae,selectionKeyCode:se,selectionOnDrag:ce,selectionMode:le,deleteKeyCode:oe,multiSelectionKeyCode:de,panActivationKeyCode:ue,zoomActivationKeyCode:fe,onlyRenderVisibleElements:he,defaultViewport:Te,translateExtent:Oe,minZoom:Ee,maxZoom:De,preventScrolling:ke,zoomOnScroll:Me,zoomOnPinch:Ne,zoomOnDoubleClick:Le,panOnScroll:Pe,panOnScrollSpeed:Fe,panOnScrollMode:Ie,panOnDrag:Re,autoPanOnSelection:yt,onPaneClick:ze,onPaneMouseEnter:Be,onPaneMouseMove:Ve,onPaneMouseLeave:He,onPaneScroll:Ue,onPaneContextMenu:We,paneClickDistance:Ge,nodeClickDistance:Ke,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:ne,onReconnect:Je,onReconnectStart:Ye,onReconnectEnd:Xe,onEdgeContextMenu:Ze,onEdgeDoubleClick:Qe,onEdgeMouseEnter:$e,onEdgeMouseMove:et,onEdgeMouseLeave:tt,reconnectRadius:nt,defaultMarkerColor:je,noDragClassName:at,noWheelClassName:ot,noPanClassName:st,rfId:zt,disableKeyboardA11y:gt,nodeExtent:Ae,viewport:Ot,onViewportChange:kt,nodesDraggable:_e}),(0,b.jsx)(Uc,{onSelectionChange:M}),qe,(0,b.jsx)(Lc,{proOptions:ft,position:dt}),(0,b.jsx)(Pc,{rfId:zt,disableKeyboardA11y:gt})]})})}var Cd=hl(Sd);function wd(e){let[t,n]=(0,_.useState)(e);return[t,n,(0,_.useCallback)(e=>n(t=>al(e,t)),[])]}function Td(e){let[t,n]=(0,_.useState)(e);return[t,n,(0,_.useCallback)(e=>n(t=>ol(e,t)),[])]}Ta.error014();function Ed({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,b.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:E([`react-flow__background-pattern`,n,r])})}function Dd({radius:e,className:t}){return(0,b.jsx)(`circle`,{cx:e,cy:e,r:e,className:E([`react-flow__background-pattern`,`dots`,t])})}var Od;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(Od||={});var kd={[Od.Dots]:1,[Od.Lines]:1,[Od.Cross]:6},Ad=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function jd({id:e,variant:t=Od.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,_.useRef)(null),{transform:f,patternId:p}=G(Ad,xc),m=r||kd[t],h=t===Od.Dots,g=t===Od.Cross,v=Array.isArray(n)?n:[n,n],y=[v[0]*f[2]||1,v[1]*f[2]||1],x=m*f[2],S=Array.isArray(a)?a:[a,a],C=g?[x,x]:y,w=[S[0]*f[2]||1+C[0]/2,S[1]*f[2]||1+C[1]/2],T=`${p}${e||``}`;return(0,b.jsxs)(`svg`,{className:E([`react-flow__background`,l]),style:{...c,...Ol,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,b.jsx)(`pattern`,{id:T,x:f[0]%y[0],y:f[1]%y[1],width:y[0],height:y[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${w[0]},-${w[1]})`,children:h?(0,b.jsx)(Dd,{radius:x/2,className:u}):(0,b.jsx)(Ed,{dimensions:C,lineWidth:i,variant:t,className:u})}),(0,b.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${T})`})]})}jd.displayName=`Background`;var Md=(0,_.memo)(jd);function $(){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,b.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function Nd(){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,b.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function Pd(){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,b.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function Fd(){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,b.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function Id(){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,b.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function Ld({children:e,className:t,...n}){return(0,b.jsx)(`button`,{type:`button`,className:E([`react-flow__controls-button`,t]),...n,children:e})}var Rd=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function zd({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=Tc(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=G(Rd,xc),{zoomIn:y,zoomOut:x,fitView:S}=Cl();return(0,b.jsxs)(Fc,{className:E([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Ld,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,b.jsx)($,{})}),(0,b.jsx)(Ld,{onClick:()=>{x(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,b.jsx)(Nd,{})})]}),n&&(0,b.jsx)(Ld,{className:`react-flow__controls-fitview`,onClick:()=>{S(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,b.jsx)(Pd,{})}),r&&(0,b.jsx)(Ld,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,b.jsx)(Id,{}):(0,b.jsx)(Fd,{})}),u]})}zd.displayName=`Controls`;var Bd=(0,_.memo)(zd);function Vd({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,b.jsx)(`rect`,{className:E([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var Hd=(0,_.memo)(Vd),Ud=e=>e.nodes.map(e=>e.id),Wd=e=>e instanceof Function?e:()=>e;function Gd({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=Hd,onClick:o}){let s=G(Ud,xc),c=Wd(t),l=Wd(e),u=Wd(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,b.jsx)(b.Fragment,{children:s.map(e=>(0,b.jsx)(qd,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function Kd({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=G(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=vo(r);return{node:r,x:i,y:a,width:o,height:s}},xc);return!l||l.hidden||!yo(l)?null:(0,b.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var qd=(0,_.memo)(Kd),Jd=(0,_.memo)(Gd),Yd=200,Xd=150,Zd=e=>!e.hidden,Qd=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?ao(Ha(e.nodeLookup,{filter:Zd}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},$d=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,ef=(e,t)=>$d(e.viewBB,t.viewBB)&&$d(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,tf=`react-flow__minimap-desc`;function nf({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:v,inversePan:y,zoomStep:x=1,offsetScale:S=5}){let C=Tc(),w=(0,_.useRef)(null),{boundingRect:T,viewBB:D,rfId:O,panZoom:k,translateExtent:A,flowWidth:j,flowHeight:M,ariaLabelConfig:ee}=G(Qd,ef),N=e?.width??Yd,te=e?.height??Xd,P=T.width/N,F=T.height/te,ne=Math.max(P,F),re=ne*N,ie=ne*te,I=S*ne,L=T.x-(re-T.width)/2-I,R=T.y-(ie-T.height)/2-I,ae=re+I*2,oe=ie+I*2,se=`${tf}-${O}`,ce=(0,_.useRef)(0),le=(0,_.useRef)();ce.current=ne,(0,_.useEffect)(()=>{if(w.current&&k)return le.current=Is({domNode:w.current,panZoom:k,getTransform:()=>C.getState().transform,getViewScale:()=>ce.current}),()=>{le.current?.destroy()}},[k]),(0,_.useEffect)(()=>{le.current?.update({translateExtent:A,width:j,height:M,inversePan:y,pannable:h,zoomStep:x,zoomable:g})},[h,g,y,x,A,j,M]);let ue=p?e=>{let[t,n]=le.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,de=m?(0,_.useCallback)((e,t)=>{let n=C.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,fe=v??ee[`minimap.ariaLabel`];return(0,b.jsx)(Fc,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*ne:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:E([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,b.jsxs)(`svg`,{width:N,height:te,viewBox:`${L} ${R} ${ae} ${oe}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":se,ref:w,onClick:ue,children:[fe&&(0,b.jsx)(`title`,{id:se,children:fe}),(0,b.jsx)(Jd,{onClick:de,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,b.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${L-I},${R-I}h${ae+I*2}v${oe+I*2}h${-ae-I*2}z + M${D.x},${D.y}h${D.width}v${D.height}h${-D.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}nf.displayName=`MiniMap`;var rf=(0,_.memo)(nf),af=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,of={[Zs.Line]:`right`,[Zs.Handle]:`bottom-right`};function sf({nodeId:e,position:t,variant:n=Zs.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:v}){let y=X(),x=typeof e==`string`?e:y,S=Tc(),C=(0,_.useRef)(null),w=n===Zs.Handle,T=G((0,_.useCallback)(af(w&&p),[w,p]),xc),D=(0,_.useRef)(null),O=t??of[n];return(0,_.useEffect)(()=>{if(!(!C.current||!x))return D.current||=cc({domNode:C.current,nodeId:x,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=S.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=S.getState(),o=[],s={x:e.x,y:e.y},c=r.get(x);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=hs([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...bo({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:x,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:x,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:x,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};S.getState().triggerNodeChanges([n])}}),D.current.update({controlPosition:O,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:v,shouldResize:m}),()=>{D.current?.destroy()}},[O,s,c,l,u,d,h,g,v,m]),(0,b.jsx)(`div`,{className:E([`react-flow__resize-control`,`nodrag`,...O.split(`-`),n,r]),ref:C,style:{...i,scale:T,...o&&{[w?`backgroundColor`:`borderColor`]:o}},children:a})}(0,_.memo)(sf);function cf(e){return Object.entries(e).filter(([,e])=>e&&e.from&&e.to).map(([e,t])=>({qn:e,from:t.from,to:t.to,type:t.association_type,owner:t.owner}))}function lf(e,t){let n=e.split(`.`).pop()??e,r=Array.isArray(t?.attributes)?t.attributes:[],i=r.slice(0,8),a=i.map(e=>`${e.name}${e.type?` : `+e.type:``}`);return r.length>i.length&&a.push(`+${r.length-i.length} more`),`${n}\n${a.join(` +`)}`}function uf(e,t,n){let r=n.filter(t=>t.from===e||t.to===e),i=[];r.forEach(t=>{let n=t.from===e?t.to:t.from;n!==e&&!i.includes(n)&&i.push(n)});let a=[40,380,720],o={[e]:{col:1,i:0}},s=0,c=0;i.forEach((e,t)=>{o[e]=t%2==0?{col:0,i:s++}:{col:2,i:c++}});let l=n=>{let r=o[n];return{id:n,position:{x:a[r.col],y:30+r.i*170},data:{label:lf(n,t[n])},style:{background:`var(--panel2)`,color:`var(--fg)`,border:n===e?`2px solid var(--accent)`:`1px solid var(--node-line)`,borderRadius:8,fontSize:11,textAlign:`left`,whiteSpace:`pre`,width:210,padding:8}}};return{nodes:[l(e),...i.map(l)],edges:r.map((e,t)=>({id:`a${t}`,source:e.from,target:e.to,label:`${e.type===`ReferenceSet`?`*`:`1`} ${e.qn.split(`.`).pop()}`,style:{stroke:`var(--edge)`},labelStyle:{fill:`var(--muted)`,fontSize:10}}))}}function df(e){let t=e.trim(),n=t.indexOf(`(`),r=(n===-1?t:t.slice(0,n)).trim().split(/\s+/);return{type:r[0]??`widget`,name:r[1],props:n===-1?``:t.slice(n+1,t.lastIndexOf(`)`))}}function ff(e){let t=e.match(/\)\s*\{/);if(!t||t.index==null)return null;let n=t.index+t[0].length,r=e.slice(n),i={type:`page`,props:``,children:[]},a=[i],o=``,s=0,c=!1,l=()=>{let e=o.trim();e&&!e.startsWith(`--`)&&a[a.length-1].children.push(df(e)),o=``};for(let e=0;e0){o+=t;continue}if(t===`{`){let e=df(o);e.children=[],a[a.length-1].children.push(e),a.push(e),o=``}else if(t===`}`)if(l(),a.length>1)a.pop();else break;else t===` +`?l():o+=t}return i}var pf=(e,t)=>{let n=t.match(RegExp(e+`:\\s*'([^']*)'`));return n?n[1]:void 0};function mf(e){return{label:pf(`Label`,e.props)??pf(`Caption`,e.props),attribute:e.props.match(/Attribute:\s*([A-Za-z0-9_./]+)/)?.[1],content:pf(`Content`,e.props),action:e.props.match(/Action:\s*(?:microflow|nanoflow)?\s*([A-Za-z0-9_.]+)/)?.[1],dataSource:e.props.match(/DataSource:\s*([^,)\n]+)/)?.[1]?.trim()}}function hf(e){let t=[],n=0,r=!1,i=``,a=()=>{let e=i.trim();if(i=``,!e)return;let n=e.indexOf(`:`);n===-1?t.push({key:e,value:``}):t.push({key:e.slice(0,n).trim(),value:e.slice(n+1).trim()})};for(let t=0;te.key).map(e=>e.value===``?e.key:`${e.key}: ${e.value}`).join(`, `)}function _f(e,t){return e.find(e=>e.key.toLowerCase()===t.toLowerCase())?.value}function vf(e,t,n){let r=e.filter(e=>e.key.toLowerCase()!==t.toLowerCase()||n!==``),i=r.findIndex(e=>e.key.toLowerCase()===t.toLowerCase());return n===``?r:i===-1?[...r,{key:t,value:n}]:r.map(e=>e.key.toLowerCase()===t.toLowerCase()?{key:t,value:n}:e)}var yf=new Set([`layoutgrid`,`row`,`column`,`container`,`scrollcontainer`,`table`,`dataview`,`groupbox`,`tabcontainer`,`tabpage`,`footer`,`header`,`snippetcall`,`listview`,`templategrid`,`sidebartoggle`]),bf=new Set([`layoutgrid`,`row`,`column`,`container`,`scrollcontainer`,`table`]),xf=e=>yf.has(e.toLowerCase()),Sf=0,Cf=()=>`w${Date.now().toString(36)}${(Sf++).toString(36)}`;function wf(e){return{...e,id:Cf(),children:e.children?.map(wf)}}function Tf(){return{id:Cf(),type:`page`,props:``,children:[]}}var Ef={Container:{type:`container`},"Layout grid":{type:`layoutgrid`},Table:{type:`table`},"Group box":{type:`groupbox`,props:`Caption: 'Group box'`},"Tab container":{type:`tabcontainer`},"Scroll container":{type:`scrollcontainer`},Text:{type:`dynamictext`,props:`Content: 'New text'`},Heading:{type:`dynamictext`,props:`Content: 'Heading'`},Image:{type:`image`},Button:{type:`button`,props:`Caption: 'Button'`},"Link button":{type:`linkbutton`,props:`Caption: 'Link'`},"Action button":{type:`actionbutton`,props:`Caption: 'Action'`},"Text box":{type:`textbox`,props:`Label: 'Text box', Attribute: Attribute`},"Check box":{type:`checkbox`,props:`Label: 'Check box', Attribute: Attribute`},"Combo box":{type:`combobox`,props:`Label: 'Combo box', Attribute: Attribute`},"Radio buttons":{type:`radiobuttons`,props:`Label: 'Radio buttons', Attribute: Attribute`},"Date picker":{type:`datepicker`,props:`Label: 'Date', Attribute: Attribute`},"Drop-down":{type:`dropdown`,props:`Label: 'Drop-down', Attribute: Attribute`},"Data view":{type:`dataview`,props:`DataSource: $object`},"Data grid 2":{type:`datagrid2`,props:`DataSource: $objects`},"List view":{type:`listview`,props:`DataSource: $objects`},Gallery:{type:`gallery`,props:`DataSource: $objects`},"Template grid":{type:`templategrid`,props:`DataSource: $objects`},"Reference selector":{type:`referenceselector`,props:`Label: 'Reference', Attribute: Attribute`},Cards:{type:`container`},Lists:{type:`container`},Headers:{type:`header`}},Df=0;function Of(e){let t=Ef[e]??{type:e.toLowerCase().replace(/[^a-z0-9]+/g,``),props:`Caption: '${e}'`},n={id:Cf(),type:t.type,name:`${t.type}${++Df}_${Date.now().toString(36).slice(-4)}`,props:t.props??``};return xf(t.type)&&(n.children=[]),n}function kf(e,t){if(e.id===t)return e;for(let n of e.children??[]){let e=kf(n,t);if(e)return e}}function Af(e,t,n){let r=kf(e,t);return!!r&&!!kf(r,n)&&t!==n}function jf(e,t){let n,r=e=>{if(!e.children)return e;let i=[];for(let a of e.children)a.id===t?n=a:i.push(r(a));return{...e,children:i}};return{tree:r(e),removed:n}}function Mf(e,t,n,r){let i=e=>{if(e.id===t){let t=[...e.children??[]],i=Math.max(0,Math.min(n,t.length));return t.splice(i,0,r),{...e,children:t}}return e.children?{...e,children:e.children.map(i)}:e};return i(e)}function Nf(e,t,n,r){return Mf(e,t,n,r)}function Pf(e,t){return jf(e,t).tree}function Ff(e,t,n,r){if(t===n||Af(e,t,n))return e;let{tree:i,removed:a}=jf(e,t);return a?Mf(i,n,r,a):e}function If(e,t,n){let r=e.name??(e.props.trim()?`${e.type}${n()}`:void 0),i=[e.type,r].filter(Boolean).join(` `),a=e.props.trim()?` (${e.props.trim()})`:``;if(e.children!==void 0){let r=e.children.map(e=>If(e,t+` `,n)).join(` +`);return`${t}${i}${a} {${r?`\n${r}\n${t}`:``}}`}return`${t}${i}${a}`}function Lf(e){let t=900,n=()=>++t;return(e.children??[]).map(e=>If(e,``,n)).join(` +`)}var Rf=`/api`;async function zf(e,t){try{let t=await fetch(`${Rf}${e}`);if(!t.ok)throw Error(String(t.status));return{data:await t.json(),mocked:!1}}catch{return{data:t(),mocked:!0}}}async function Bf(e,t,n){try{let n=await fetch(`${Rf}${e}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(String(n.status));return{data:await n.json(),mocked:!1}}catch{return{data:n(),mocked:!0}}}function Vf(e,t=20){return zf(`/marketplace/search?q=${encodeURIComponent(e)}&limit=${t}`,()=>Qf(e,t))}async function Hf(e,t,n){try{let r=await fetch(`${Rf}/marketplace/install`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:e,version:t,studio_closed:n})}),i=await r.json().catch(()=>({}));return{ok:i.ok===!0,message:i.message??i.error??`Install failed (${r.status}).`}}catch(e){return{ok:!1,message:String(e instanceof Error?e.message:e)}}}function Uf(e,t){return Bf(`/layout`,{qn:e,positions:t},()=>({ok:!1,message:`Backend unavailable; layout was not saved.`,mdlPreview:t.map(e=>`@position(${Math.round(e.x)}, ${Math.round(e.y)}) ${e.label}`).join(` +`)}))}function Wf(e,t,n){return fetch(`${Rf}/entity-plan`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({qn:e,persistable:t,attributes:n})}).then(async t=>{let n=await t.json();return t.ok?{data:n,mocked:!1}:{data:Gf(e,`error`in n&&n.error||`Backend rejected the plan (${t.status}).`),mocked:!1}}).catch(()=>({data:Gf(e,`Backend unavailable; the visual plan was not saved.`),mocked:!0}))}function Gf(e,t){return{ok:!1,blocked:!0,operation:{action:`blocked`,type:`entity`,name:e,reason:t},mdl:``}}async function Kf(e,t){try{let n=await fetch(`${Rf}/page`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({qn:e,content:t})}),r=await n.json().catch(()=>({}));if(!n.ok&&r.ok===void 0)throw Error(r.error??`Save failed (${n.status}).`);return r}catch(e){return{ok:!1,message:String(e instanceof Error?e.message:e)}}}async function qf(e,t){try{let n=await fetch(`${Rf}/flow`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({qn:e,body:t})}),r=await n.json().catch(()=>({}));if(!n.ok&&r.ok===void 0)throw Error(r.error??`Save failed (${n.status}).`);return r}catch(e){return{ok:!1,message:String(e instanceof Error?e.message:e)}}}async function Jf(e,t){let n=await fetch(`${Rf}/git${e}`,t),r=await n.json().catch(()=>({}));if(!n.ok)throw Error(r.error??`Git request failed (${n.status}).`);return r}function Yf(e,t){return Jf(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}var Xf={status:()=>Jf(`/status`),branches:()=>Jf(`/branches`),stashList:()=>Jf(`/stash`),fetch:()=>Yf(`/fetch`,{}),switch:(e,t)=>Yf(`/switch`,{branch:e,studio_closed:t}),create:(e,t)=>Yf(`/create`,{branch:e,studio_closed:t}),commit:(e,t)=>Yf(`/commit`,{message:e,studio_closed:t}),stashPush:(e,t,n)=>Yf(`/stash`,{message:e||void 0,include_untracked:t,studio_closed:n}),stashApply:(e,t,n)=>Yf(`/stash/apply`,{reference:e,drop:t,studio_closed:n}),stashDrop:e=>Yf(`/stash/drop`,{reference:e})},Zf=[{id:`1866`,name:`Community Commons`,publisher:`Mendix`,latestVersion:`10.0.4`,category:`Utility`,rating:4.6,downloads:24e4,summary:`Widely-used helper functions (Java actions) for strings, dates, files and more.`},{id:`120`,name:`Excel Importer`,publisher:`Mendix`,latestVersion:`11.1.0`,category:`Import/Export`,rating:4.3,downloads:18e4,summary:`Import data from Excel/CSV templates into your domain model.`},{id:`45`,name:`Feedback`,publisher:`Mendix`,latestVersion:`4.0.2`,category:`Collaboration`,rating:4.1,downloads:95e3,summary:`In-app feedback widget that posts to a feedback backend.`},{id:`215`,name:`Database Replication`,publisher:`Mendix`,latestVersion:`7.2.1`,category:`Integration`,rating:4,downloads:6e4,summary:`Sync an external database into Mendix entities.`},{id:`107293`,name:`Data Widgets`,publisher:`Mendix`,latestVersion:`3.5.0`,category:`Widgets`,rating:4.5,downloads:32e4,summary:`Datagrid 2, dropdown filters and other data-bound widgets.`}];function Qf(e,t){let n=e.trim().toLowerCase();return(n?Zf.filter(e=>(e.name+` `+e.category+` `+e.summary).toLowerCase().includes(n)):Zf).slice(0,t)}function $f(e){let t=e.toLowerCase();return t===`statictext`||t===`dynamictext`?[{key:`Content`,label:`Text`,quoted:!0}]:[`textbox`,`textarea`,`datepicker`,`combobox`,`dropdown`,`checkbox`,`radiobuttons`,`referenceselector`,`referencesetselector`].includes(t)?[{key:`Label`,label:`Label`,quoted:!0},{key:`Attribute`,label:`Attribute`,placeholder:`AttributeName`}]:[`button`,`actionbutton`,`linkbutton`,`microflowtrigger`].includes(t)?[{key:`Caption`,label:`Caption`,quoted:!0},{key:`Action`,label:`Action`,placeholder:`MICROFLOW Module.MF`}]:[`dataview`,`datagrid2`,`datagrid`,`listview`,`gallery`,`templategrid`].includes(t)?[{key:`DataSource`,label:`Data source`,placeholder:`$object`}]:t===`groupbox`||t===`footer`||t===`header`?[{key:`Caption`,label:`Caption`,quoted:!0}]:[]}function ep(e){if(!e)return``;let t=e.match(/^'(.*)'$/s);return(t?t[1]:e).replace(/''/g,`'`)}function tp({node:e,onChange:t,onEditingChange:n}){if(!e)return(0,b.jsxs)(`aside`,{className:`wprops`,children:[(0,b.jsx)(`div`,{className:`wprops-title`,children:`Properties`}),(0,b.jsx)(`p`,{className:`empty pad`,children:`Select a widget to edit its properties.`})]});let r=hf(e.props),i=$f(e.type),a=(e,n)=>{let i=e.quoted?n?`'${n.replace(/'/g,`''`)}'`:``:n.trim();t(gf(vf(r,e.key,i)))};return(0,b.jsxs)(`aside`,{className:`wprops`,children:[(0,b.jsxs)(`div`,{className:`wprops-title`,children:[e.type,e.name?` · ${e.name}`:``]}),i.map(e=>{let t=_f(r,e.key),i=e.quoted?ep(t):t??``;return(0,b.jsxs)(`label`,{className:`wprops-field`,children:[(0,b.jsx)(`span`,{children:e.label}),(0,b.jsx)(`input`,{value:i,placeholder:e.placeholder,onFocus:()=>n(!0),onBlur:()=>n(!1),onChange:t=>a(e,t.target.value)})]},e.key)}),(0,b.jsxs)(`details`,{className:`wprops-raw`,children:[(0,b.jsx)(`summary`,{children:`Raw MDL props`}),(0,b.jsx)(`textarea`,{value:e.props,rows:4,onFocus:()=>n(!0),onBlur:()=>n(!1),onChange:e=>t(e.target.value)})]})]})}function np(e){let t=e.dataTransfer.getData(`application/mrb-move`);if(t)return{move:t};let n=e.dataTransfer.getData(`application/mrb-item`);if(n)try{return{label:JSON.parse(n).label}}catch{return{}}return{}}function rp({node:e,onNavigate:t}){let n=mf(e),r=e.type.toLowerCase();return r===`statictext`||r===`dynamictext`?(0,b.jsx)(`div`,{className:`w-text rm-${(e.props.match(/RenderMode:\s*([A-Za-z0-9]+)/i)?.[1]?.toLowerCase()??``)||`text`}`,children:n.content??n.label??`(text)`}):r===`textbox`||r===`textarea`||r===`datepicker`?(0,b.jsxs)(`label`,{className:`w-field`,children:[(0,b.jsx)(`span`,{children:n.label??n.attribute??e.name}),(0,b.jsx)(`span`,{className:`w-input`,children:n.attribute??``})]}):r===`combobox`||r===`referenceselector`||r===`referencesetselector`||r===`dropdown`?(0,b.jsxs)(`label`,{className:`w-field`,children:[(0,b.jsx)(`span`,{children:n.label??n.attribute??e.name}),(0,b.jsx)(`span`,{className:`w-input select`,children:n.attribute??`▾`})]}):r===`checkbox`||r===`radiobuttons`?(0,b.jsxs)(`label`,{className:`w-check`,children:[(0,b.jsx)(`span`,{className:`box`,children:`☑`}),` `,n.label??n.attribute??e.name]}):r===`actionbutton`||r===`button`||r===`microflowtrigger`||r===`linkbutton`?(0,b.jsx)(`button`,{className:`w-btn`,onClick:()=>n.action&&t(n.action),children:n.label??e.name??`Button`}):r===`datagrid`||r===`datagrid2`||r===`gallery`?(0,b.jsxs)(`div`,{className:`w-grid`,children:[`▦ `,e.name??r,` `,n.dataSource?`· ${n.dataSource}`:``]}):r===`image`||r===`staticimage`?(0,b.jsxs)(`div`,{className:`w-img`,children:[`🖼 `,e.name??`image`]}):(0,b.jsxs)(`div`,{className:`w-generic`,children:[e.type,e.name?` · ${e.name}`:``]})}function ip({selection:e,detail:t,onSelect:n}){let[r,i]=(0,_.useState)(()=>wf(ff(t.mdl??``)??Tf())),[a,o]=(0,_.useState)(),[s,c]=(0,_.useState)(),[l,u]=(0,_.useState)(`structure`),[d,f]=(0,_.useState)(!1),[p,m]=(0,_.useState)(),h=(0,_.useRef)(!1),g=(0,_.useCallback)(async()=>{f(!0),m(void 0);let t=await Kf(e.qn,Lf(r));m({ok:t.ok,message:t.message}),f(!1)},[e.qn,r]);(0,_.useEffect)(()=>{i(wf(ff(t.mdl??``)??Tf())),o(void 0)},[t.mdl]);let v=(0,_.useCallback)((e,t,n)=>{e.preventDefault(),e.stopPropagation(),c(void 0);let r=np(e);if(r.move)i(e=>Ff(e,r.move,t,n));else if(r.label){let e=Of(r.label);i(r=>Nf(r,t,n,e)),o(e.id)}},[]),y=(0,_.useCallback)(e=>{i(t=>Pf(t,e)),o(t=>t===e?void 0:t)},[]);(0,_.useEffect)(()=>{let e=e=>{(e.key===`Delete`||e.key===`Backspace`)&&a&&!h.current&&(e.preventDefault(),y(a))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,y]);let x=(e,t)=>{let n=`${e}:${t}`;return(0,b.jsx)(`div`,{className:`w-gap`+(s===n?` on`:``),onDragOver:e=>{ap(e)&&(e.preventDefault(),e.stopPropagation(),c(n))},onDragLeave:()=>c(e=>e===n?void 0:e),onDrop:n=>v(n,e,t)})},S=e=>{let t=e.type.toLowerCase(),r=xf(t)&&e.children!==void 0,i=bf.has(t),s=e.id===a,l=t===`row`?`row`:`column`,u=mf(e),d=r?(0,b.jsxs)(`div`,{className:`w-box-body`,style:{display:`flex`,flexDirection:l,gap:8,flex:1},children:[(e.children??[]).map((t,n)=>(0,b.jsxs)(`div`,{style:{display:`contents`},children:[x(e.id,n),S(t)]},t.id)),x(e.id,e.children?.length??0),!e.children?.length&&(0,b.jsx)(`div`,{className:`w-drop-empty`,onDragOver:t=>{ap(t)&&(t.preventDefault(),c(`${e.id}:0`))},onDrop:t=>v(t,e.id,0),children:`Drop widgets here`})]}):null;return(0,b.jsxs)(`div`,{className:(r?i?`w-struct`:`w-box`:`w-leaf`)+` w-${t}`+(s?` selected`:``),style:r?{display:`flex`,flexDirection:l,flex:t===`column`?1:void 0}:void 0,draggable:!0,onDragStart:t=>{t.stopPropagation(),t.dataTransfer.setData(`application/mrb-move`,e.id),t.dataTransfer.effectAllowed=`move`},onClick:t=>{t.stopPropagation(),o(e.id)},children:[r&&!i&&(0,b.jsxs)(`div`,{className:`w-box-head`,children:[e.type,e.name?` · ${e.name}`:``,u.dataSource?` · ${u.dataSource}`:``]}),r?d:(0,b.jsx)(rp,{node:e,onNavigate:n}),s&&(0,b.jsx)(`button`,{className:`w-del`,title:`Delete widget (Del)`,onClick:t=>{t.stopPropagation(),y(e.id)},children:`✕`})]})},C=!r.children?.length;return(0,b.jsxs)(`div`,{className:`pagebuilder`,children:[(0,b.jsxs)(`div`,{className:`pageview-chrome`,children:[(0,b.jsx)(`span`,{className:`dot`}),(0,b.jsx)(`span`,{className:`dot`}),(0,b.jsx)(`span`,{className:`dot`}),(0,b.jsx)(`span`,{className:`title`,children:t.title??e.label}),t.layout&&(0,b.jsx)(`span`,{className:`layout-tag`,children:t.layout}),(0,b.jsxs)(`span`,{className:`pb-modes`,children:[(0,b.jsx)(`button`,{className:l===`structure`?`on`:``,onClick:()=>u(`structure`),children:`Structure mode`}),(0,b.jsx)(`button`,{className:l===`design`?`on`:``,onClick:()=>u(`design`),children:`Design mode`})]}),(0,b.jsx)(`span`,{className:`spacer`}),p&&(0,b.jsx)(`span`,{className:p.ok?`pb-ok`:`pb-err`,children:p.message}),(0,b.jsx)(`button`,{className:`w-btn`,onClick:g,disabled:d,children:d?`Saving…`:`Save page`})]}),(0,b.jsxs)(`div`,{className:`pb-body`,children:[(0,b.jsx)(`div`,{className:`pageview-canvas`+(l===`design`?` pb-design`:``),onClick:()=>o(void 0),children:C?(0,b.jsx)(`div`,{className:`w-drop-empty large`,onDragOver:e=>{ap(e)&&(e.preventDefault(),c(`root:0`))},onDrop:e=>v(e,r.id,0),children:`Drag widgets from the Toolbox to build this page.`}):(0,b.jsxs)(b.Fragment,{children:[x(r.id,0),(r.children??[]).map((e,t)=>(0,b.jsxs)(`div`,{style:{display:`contents`},children:[t>0&&x(r.id,t),S(e)]},e.id)),x(r.id,r.children?.length??0)]})}),(0,b.jsx)(tp,{node:a?op(r,a):void 0,onChange:e=>a&&i(t=>sp(t,a,e)),onEditingChange:e=>h.current=e})]})]})}function ap(e){return e.dataTransfer.types.includes(`application/mrb-item`)||e.dataTransfer.types.includes(`application/mrb-move`)}function op(e,t){if(e.id===t)return e;for(let n of e.children??[]){let e=op(n,t);if(e)return e}}function sp(e,t,n){return e.id===t?{...e,props:n}:e.children?{...e,children:e.children.map(e=>sp(e,t,n))}:e}var cp=(e,t)=>e&&e.length>t?e.slice(0,t-1)+`…`:e||``;function lp(e){let t=e.indexOf(` +begin`);if(t===-1)return null;let n=e.slice(t+6).replace(/\nend;\s*$/,` +`),r=[],i=[],a=0,o=(e,t,n,i=null)=>{let o=a++;return r.push({id:o,kind:e,label:cp(t,46),stmt:i,x:n?n.x:null,y:n?n.y:null}),o},s=[{id:o(`terminal`,`Start`,null),label:null}],c=[],l=null,u=null,d=e=>s.forEach(t=>i.push({from:t.id,to:e,label:t.label})),f=e=>/^return\b/.test(e)?`terminal`:/^validation\b/.test(e)?`validation`:/\bcall\b/.test(e)?`action`:/^(declare|set)\b/.test(e)?`assign`:`action`,p=``,m=e=>{let t=e.trim();if(t){if(/^if\b/.test(t)){let e=t.replace(/^if\s+/,``).replace(/\s+then$/,``),n=o(`decision`,u||e,l,e);d(n),l=null,u=null,c.push({id:n,inElse:!1,trueTails:[]}),s=[{id:n,label:`true`}]}else if(/^else$/.test(t)){let e=c[c.length-1];e.trueTails=s,e.inElse=!0,s=[{id:e.id,label:`false`}]}else if(/^end if;?$/.test(t)){let e=c.pop(),t=e.inElse?s:[{id:e.id,label:`false`}];s=(e.inElse?e.trueTails:s).concat(t)}else if(!(/^(begin|end)\b/.test(t)||t.startsWith(`@`))){let e=o(f(t),u||t,l,t);d(e),l=null,u=null,s=[{id:e,label:null}]}}};return n.split(` +`).forEach(e=>{let t=e.trim(),n=t.match(/@position\((-?\d+),\s*(-?\d+)\)/);if(n){l={x:+n[1],y:+n[2]};return}let r=t.match(/@caption\s+'([^']*)'/);if(r){u=r[1];return}t.startsWith(`@`)||(p+=(p?` `:``)+t,(/;$/.test(t)||/\bthen$/.test(t)||/^else$/.test(t)||/^end if;?$/.test(t)||/^if\b.*\bthen$/.test(p))&&(m(p),p=``))}),p.trim()&&m(p),{nodes:r,edges:i}}var up=e=>e.kind===`decision`?`decision`:e.kind===`terminal`?e.label===`Start`?`start`:`end`:`activity`;function dp(e){let t=lp(e);if(!t||!t.nodes.length)return null;let n=Object.fromEntries(t.nodes.map(e=>[e.id,e])),r=t.nodes.filter(e=>e.x!=null),i=r.length?Math.round(r.reduce((e,t)=>e+t.y,0)/r.length):0,a=r.length?Math.min(...r.map(e=>e.x)):0;n[0]&&n[0].x==null&&(n[0].x=a-230,n[0].y=i);let o={};for(let e=0;e<6;e++)t.edges.forEach(e=>{let t=n[e.to],r=n[e.from];if(t&&t.x==null&&r&&r.x!=null){let n=o[e.from]??0;o[e.from]=n+1,t.x=r.x+230,t.y=r.y+(n===0?0:(n%2?-1:1)*Math.ceil(n/2)*130)}});let s=a;t.nodes.forEach(e=>{e.x??(e.x=s,e.y=i+200,s+=230)});let c=Math.min(...t.nodes.map(e=>e.x)),l=Math.min(...t.nodes.map(e=>e.y));return{nodes:t.nodes.map(e=>({id:String(e.id),type:up(e),position:{x:(e.x-c)*.55,y:(e.y-l)*.75},data:{label:e.label,kind:e.kind,stmt:e.stmt}})),edges:t.edges.map((e,t)=>({id:`e${t}`,source:String(e.from),target:String(e.to),label:e.label??void 0,animated:!1,style:{stroke:`var(--edge)`},labelStyle:{fill:`var(--fg)`,fontSize:10},labelBgStyle:{fill:`var(--panel)`,stroke:`var(--line)`},labelBgPadding:[6,3],labelBgBorderRadius:2}))}}var fp=e=>e.data;function pp(e,t,n){t.lines.push(`${n}@position(${Math.round(e.position.x)}, ${Math.round(e.position.y)})`);let r=fp(e),i=(r.label??``).replace(/…$/,``);r.stmt&&i&&!r.stmt.startsWith(i)&&t.lines.push(`${n}@caption '${i.replace(/'/g,`''`)}'`)}function mp(e,t){let n=fp(e);return n.stmt?n.stmt.endsWith(`;`)||e.type===`decision`?n.stmt:`${n.stmt};`:e.type===`end`?`return;`:`DECLARE ${`$NewValue${++t.synth}`} String = '${(n.label??`TODO`).replace(/'/g,`''`)}';`}function hp(e,t){let n=new Set,r=[e];for(;r.length&&n.size<500;){let e=r.shift();n.has(e)||(n.add(e),(t.outs.get(e)??[]).forEach(e=>r.push(e.target)))}return n}function gp(e,t,n){if(!e||!t)return;let r=hp(e,n),i=[t],a=new Set;for(;i.length;){let e=i.shift();if(!a.has(e)){if(a.add(e),r.has(e))return e;(n.outs.get(e)??[]).forEach(e=>i.push(e.target))}}}function _p(e,t,n,r){for(;e&&e!==t;){if(n.visited.has(e))return;n.visited.add(e);let t=n.byId.get(e);if(!t)return;if(t.type===`start`){e=n.outs.get(e)?.[0]?.target;continue}if(t.type===`decision`){let i=n.outs.get(e)??[],a=i.find(e=>(e.label??``).toLowerCase()===`true`)??i[0],o=i.find(e=>e!==a),s=gp(a?.target,o?.target,n);pp(t,n,r),n.lines.push(`${r}if ${fp(t).stmt??fp(t).label??`true`} then`),_p(a?.target,s,n,r+` `),o&&(n.lines.push(`${r}else`),_p(o.target,s,n,r+` `)),n.lines.push(`${r}end if;`),e=s;continue}if(pp(t,n,r),n.lines.push(`${r}${mp(t,n)}`),t.type===`end`)return;e=n.outs.get(e)?.[0]?.target}}function vp(e,t){let n={byId:new Map(e.map(e=>[e.id,e])),outs:new Map,lines:[],visited:new Set,synth:0};return t.forEach(e=>{let t=n.outs.get(e.source)??[];t.push({target:e.target,label:typeof e.label==`string`?e.label:void 0}),n.outs.set(e.source,t)}),_p(e.find(e=>e.type===`start`)?.id,void 0,n,` `),e.forEach(e=>{n.visited.has(e.id)||e.type===`start`||(pp(e,n,` `),n.lines.push(` ${mp(e,n)}`),n.visited.add(e.id))}),n.lines.join(` +`)}var yp={action:`⚙`,assign:`✎`,validation:`✔`};function bp(){return(0,b.jsx)(`div`,{className:`sp-terminal sp-start`,title:`Start`,children:(0,b.jsx)(Kl,{type:`source`,position:B.Right})})}function xp({data:e}){return(0,b.jsx)(`div`,{className:`sp-terminal sp-end`,title:e.label,children:(0,b.jsx)(Kl,{type:`target`,position:B.Left})})}function Sp({data:e}){let t=e;return(0,b.jsxs)(`div`,{className:`sp-activity`,children:[(0,b.jsx)(Kl,{type:`target`,position:B.Left}),(0,b.jsx)(`span`,{className:`sp-act-icon`,children:yp[t.kind]??`⚙`}),(0,b.jsx)(`span`,{className:`sp-act-label`,children:t.label}),(0,b.jsx)(Kl,{type:`source`,position:B.Right})]})}function Cp({data:e}){let t=e;return(0,b.jsxs)(`div`,{className:`sp-decision`,children:[(0,b.jsx)(Kl,{type:`target`,position:B.Left}),(0,b.jsx)(`span`,{className:`sp-caption`,children:t.label}),(0,b.jsx)(`span`,{className:`sp-diamond`}),(0,b.jsx)(Kl,{type:`source`,position:B.Right})]})}var wp={start:bp,end:xp,activity:Sp,decision:Cp};function Tp(e,t=[]){let n=new Map(t.map(e=>[e.id,e]));return e.map(e=>{let t=n.get(e.id);return t?{...e,position:{x:t.x,y:t.y}}:e})}var Ep=[{icon:`⚙`,label:`Activity`,type:`activity`,kind:`action`},{icon:`◇`,label:`Decision`,type:`decision`,kind:`decision`},{icon:`✎`,label:`Change`,type:`activity`,kind:`assign`},{icon:`✔`,label:`Validation`,type:`activity`,kind:`validation`},{icon:`●`,label:`End event`,type:`end`,kind:`terminal`}];function Dp({node:e,parameters:t,onSave:n,onClose:r}){let i=e.data,[a,o]=(0,_.useState)(String(i.label??``)),[s,c]=(0,_.useState)(String(i.kind??`action`));return(0,b.jsx)(`div`,{className:`modal-overlay`,onClick:r,children:(0,b.jsxs)(`div`,{className:`modal`,onClick:e=>e.stopPropagation(),children:[(0,b.jsxs)(`div`,{className:`modal-title`,children:[`Edit `,e.type]}),(0,b.jsxs)(`label`,{className:`modal-field`,children:[(0,b.jsx)(`span`,{children:`Caption`}),(0,b.jsx)(`input`,{value:a,autoFocus:!0,onChange:e=>o(e.target.value)})]}),e.type===`activity`&&(0,b.jsxs)(`label`,{className:`modal-field`,children:[(0,b.jsx)(`span`,{children:`Activity type`}),(0,b.jsxs)(`select`,{value:s,onChange:e=>c(e.target.value),children:[(0,b.jsx)(`option`,{value:`action`,children:`Action call`}),(0,b.jsx)(`option`,{value:`assign`,children:`Change / assign`}),(0,b.jsx)(`option`,{value:`validation`,children:`Validation`})]})]}),t.length>0&&(0,b.jsxs)(`div`,{className:`modal-field`,children:[(0,b.jsx)(`span`,{children:`Flow parameters`}),(0,b.jsx)(`ul`,{className:`modal-params`,children:t.map((e,t)=>(0,b.jsxs)(`li`,{children:[(0,b.jsxs)(`code`,{children:[`$`,e.name]}),` : `,e.type]},t))})]}),(0,b.jsxs)(`div`,{className:`modal-actions`,children:[(0,b.jsx)(`button`,{className:`editor-secondary`,onClick:r,children:`Cancel`}),(0,b.jsx)(`button`,{className:`w-btn`,onClick:()=>n(a,s),children:`OK`})]})]})})}function Op({qn:e,mdl:t,savedPositions:n,parameters:r=[]}){let i=(0,_.useMemo)(()=>dp(t),[t]),a=(0,_.useMemo)(()=>Tp(i?.nodes??[],n),[i,n]),[o,s,c]=wd(a),[l,u,d]=Td(i?.edges??[]),[f,p]=(0,_.useState)(!1),[m,h]=(0,_.useState)(),[g,v]=(0,_.useState)(0),[y,x]=(0,_.useState)(),{zoomIn:S,zoomOut:C,zoomTo:w,fitView:T}=Cl();(0,_.useEffect)(()=>{s(a),u(i?.edges??[]),p(!1),h(void 0)},[i,a,s,u]);let E=e=>{c(e),e.some(e=>e.type===`position`)&&p(!0)},D=(0,_.useCallback)((e,t)=>{u(n=>fl(e,t,n)),h(`Arrow re-wired (canvas draft).`)},[u]),O=(0,_.useCallback)(e=>{u(t=>dl({...e,style:{stroke:`var(--edge)`}},t)),h(`Arrow added (canvas draft).`)},[u]),k=e=>{let t=o.reduce((e,t)=>Math.max(e,t.position.x),0),n=`new${g}`;v(e=>e+1),s(r=>[...r,{id:n,type:e.type,position:{x:t+230,y:40},data:{label:e.label,kind:e.kind}}]),p(!0),h(`${e.label} added (canvas draft).`)};return(0,b.jsxs)(`div`,{className:`canvas-wrap`,children:[(0,b.jsxs)(`div`,{className:`flow-toolbar`,children:[(0,b.jsx)(`span`,{className:`flow-tools`,children:Ep.map(e=>(0,b.jsx)(`button`,{className:`flow-tool`,title:`Add ${e.label}`,onClick:()=>k(e),children:e.icon},e.label))}),(0,b.jsx)(`span`,{className:`flow-sep`}),(0,b.jsx)(`button`,{className:`flow-tool`,title:`Zoom in`,onClick:()=>S(),children:`+`}),(0,b.jsx)(`button`,{className:`flow-tool`,title:`Zoom out`,onClick:()=>C(),children:`-`}),(0,b.jsx)(`button`,{className:`flow-tool`,title:`Zoom 100%`,onClick:()=>w(1),children:`1:1`}),(0,b.jsx)(`button`,{className:`flow-tool`,title:`Fit view`,onClick:()=>T(),children:`⛶`}),(0,b.jsx)(`span`,{className:`spacer`}),m&&(0,b.jsx)(`span`,{className:`muted`,children:m}),(0,b.jsx)(`button`,{className:`w-btn`,disabled:!f,onClick:async()=>{let{data:t,mocked:n}=await Uf(e,o.map(e=>({id:e.id,label:String(e.data.label??``),x:e.position.x,y:e.position.y})));h((n?`offline — `:``)+t.message),t.ok&&p(!1)},children:`Save layout`}),(0,b.jsx)(`button`,{className:`w-btn`,title:`Serialize the canvas to microflow MDL, validate it, and save a draft`,onClick:async()=>{let t=await qf(e,vp(o,l));h(t.message)},children:`Save flow`})]}),(0,b.jsx)(`div`,{className:`canvas`,children:(0,b.jsxs)(Cd,{nodes:o,edges:l,nodeTypes:wp,onNodesChange:E,onEdgesChange:d,onReconnect:D,onConnect:O,onNodeDoubleClick:(e,t)=>x(t),edgesReconnectable:!0,fitView:!0,minZoom:.15,proOptions:{hideAttribution:!0},children:[(0,b.jsx)(Md,{color:`var(--grid)`,gap:18}),(0,b.jsx)(rf,{pannable:!0,zoomable:!0,maskColor:`rgba(0,0,0,0.5)`,nodeColor:`var(--accent)`}),(0,b.jsx)(Bd,{showInteractive:!1})]})}),y&&(0,b.jsx)(Dp,{node:y,parameters:r,onClose:()=>x(void 0),onSave:(e,t)=>{s(n=>n.map(n=>n.id===y.id?{...n,data:{...n.data,label:e,kind:t}}:n)),x(void 0),h(`Block updated (canvas draft).`)}})]})}function kp(e){return(0,b.jsx)(Q,{children:(0,b.jsx)(Op,{...e})})}function Ap({selection:e,details:t,assocs:n,layouts:r,onSelect:i}){let{type:a,qn:o}=e,s=t[o],c=(0,_.useMemo)(()=>a===`entity`?uf(o,t,n):null,[a,o,t,n]);return a===`page`&&s?(0,b.jsx)(ip,{selection:e,detail:s,onSelect:i}):(a===`microflow`||a===`nanoflow`)&&s?.mdl?(0,b.jsx)(kp,{qn:o,mdl:s.mdl,savedPositions:r[o],parameters:s.parameters}):c?(0,b.jsx)(`div`,{className:`canvas`,children:(0,b.jsxs)(Cd,{nodes:c.nodes,edges:c.edges,fitView:!0,minZoom:.15,proOptions:{hideAttribution:!0},onNodeClick:(e,t)=>{t.id!==o&&i(t.id)},children:[(0,b.jsx)(Md,{color:`var(--grid)`,gap:18}),(0,b.jsx)(rf,{pannable:!0,zoomable:!0,maskColor:`rgba(0,0,0,0.5)`,nodeColor:`var(--accent)`}),(0,b.jsx)(Bd,{showInteractive:!1})]})}):null}var jp=[`string`,`boolean`,`integer`,`long`,`decimal`,`datetime`,`autonumber`,`binary`,`hash_string`,`enumeration`];function Mp(e){let t=e.type??`String(200)`,n=t.match(/^String\((unlimited|\d+)\)$/i),r=t.match(/^Enumeration\((.+)\)$/i);return{name:e.name,type:n?`string`:r?`enumeration`:t.toLowerCase(),required:e.required??!1,length:n?n[1]===`unlimited`?null:Number(n[1]):void 0,enumeration:r?.[1],default:e.default}}function Np({qn:e,detail:t}){let[n,r]=(0,_.useState)(!1),[i,a]=(0,_.useState)(t.persistable??!0),[o,s]=(0,_.useState)([]),[c,l]=(0,_.useState)(),[u,d]=(0,_.useState)(!1);(0,_.useEffect)(()=>{a(t.persistable??!0),s((t.attributes??[]).map(Mp)),l(void 0),r(!1)},[e,t]);let f=(e,t)=>{s(n=>n.map((n,r)=>r===e?{...n,...t}:n)),l(void 0)};return n?(0,b.jsxs)(`section`,{className:`entity-editor`,children:[(0,b.jsxs)(`div`,{className:`editor-head`,children:[(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`strong`,{children:`Visual entity draft`}),(0,b.jsx)(`span`,{children:`Preview only — the Mendix project is not modified.`})]}),(0,b.jsx)(`button`,{className:`editor-secondary`,onClick:()=>r(!1),children:`Close`})]}),(0,b.jsxs)(`label`,{className:`editor-check`,children:[(0,b.jsx)(`input`,{type:`checkbox`,checked:i,onChange:e=>{a(e.target.checked),l(void 0)}}),`Persistent entity`]}),(0,b.jsxs)(`div`,{className:`editor-attributes`,children:[(0,b.jsxs)(`div`,{className:`editor-row editor-labels`,children:[(0,b.jsx)(`span`,{children:`Name`}),(0,b.jsx)(`span`,{children:`Type`}),(0,b.jsx)(`span`,{children:`Options`}),(0,b.jsx)(`span`,{children:`Required`}),(0,b.jsx)(`span`,{})]}),o.map((e,t)=>(0,b.jsxs)(`div`,{className:`editor-row`,children:[(0,b.jsx)(`input`,{value:e.name,onChange:e=>f(t,{name:e.target.value})}),(0,b.jsx)(`select`,{value:e.type,onChange:e=>f(t,{type:e.target.value}),children:jp.map(e=>(0,b.jsx)(`option`,{children:e},e))}),e.type===`string`?(0,b.jsx)(`input`,{type:`number`,min:`1`,placeholder:`unlimited`,value:e.length??``,onChange:e=>f(t,{length:e.target.value?Number(e.target.value):null})}):e.type===`enumeration`?(0,b.jsx)(`input`,{placeholder:`Module.Enum`,value:e.enumeration??``,onChange:e=>f(t,{enumeration:e.target.value})}):(0,b.jsx)(`span`,{className:`editor-na`,children:`—`}),(0,b.jsx)(`input`,{type:`checkbox`,checked:e.required,onChange:e=>f(t,{required:e.target.checked})}),(0,b.jsx)(`button`,{className:`editor-danger`,title:`Removal will be shown as blocked until explicitly supported`,onClick:()=>{s(e=>e.filter((e,n)=>n!==t)),l(void 0)},children:`Remove`})]},`${t}-${e.name}`))]}),(0,b.jsxs)(`div`,{className:`editor-actions`,children:[(0,b.jsx)(`button`,{className:`editor-secondary`,onClick:()=>{s(e=>[...e,{name:`NewAttribute${e.length+1}`,type:`string`,length:200,required:!1}]),l(void 0)},children:`Add attribute`}),(0,b.jsx)(`button`,{className:`w-btn`,disabled:u,onClick:async()=>{d(!0);let t=await Wf(e,i,o);l(t.data),d(!1)},children:u?`Planning…`:`Preview and save draft`})]}),c&&(0,b.jsxs)(`div`,{className:`editor-plan ${c.blocked?`blocked`:`safe`}`,children:[(0,b.jsx)(`strong`,{children:c.operation.action.toUpperCase()}),c.operation.reason&&(0,b.jsx)(`p`,{children:c.operation.reason}),c.operation.changes&&(0,b.jsx)(`pre`,{children:JSON.stringify(c.operation.changes,null,2)}),c.mdl&&(0,b.jsxs)(`details`,{children:[(0,b.jsx)(`summary`,{children:`Generated MDL preview`}),(0,b.jsx)(`pre`,{children:c.mdl})]})]})]}):(0,b.jsx)(`button`,{className:`editor-open`,onClick:()=>r(!0),children:`Edit entity`})}var Pp=e=>typeof e==`string`&&/^[A-Za-z0-9_]+\.[A-Za-z0-9_]+/.test(e),Fp=[`parameters`,`widget_types`,`widgets`,`data_sources`,`attributes`,`actions`,`microflow_calls`,`nanoflow_calls`,`page_links`,`view_roles`,`access_rules`,`execute_roles`,`variables`,`activities`,`calls`,`generalization`];function Ip({v:e,onSelect:t}){return Pp(e)?(0,b.jsx)(`a`,{className:`ref`,onClick:()=>t(e.split(/[\s(]/)[0]),children:e}):e==null?(0,b.jsx)(`span`,{className:`empty`,children:`—`}):typeof e==`object`?(0,b.jsx)(`code`,{children:JSON.stringify(e)}):(0,b.jsx)(`span`,{children:String(e)})}function Lp({arr:e,onSelect:t}){if(!e.length)return(0,b.jsx)(`p`,{className:`empty`,children:`none`});if(e.every(e=>e&&typeof e==`object`&&!Array.isArray(e))){let n=[];return e.forEach(e=>Object.keys(e).forEach(e=>!n.includes(e)&&n.push(e))),(0,b.jsxs)(`table`,{children:[(0,b.jsx)(`thead`,{children:(0,b.jsx)(`tr`,{children:n.map(e=>(0,b.jsx)(`th`,{children:e},e))})}),(0,b.jsx)(`tbody`,{children:e.map((e,r)=>(0,b.jsx)(`tr`,{children:n.map(n=>(0,b.jsx)(`td`,{children:(0,b.jsx)(Ip,{v:e[n],onSelect:t})},n))},r))})]})}return(0,b.jsx)(`ul`,{className:`scalars`,children:e.map((e,n)=>(0,b.jsx)(`li`,{children:(0,b.jsx)(Ip,{v:e,onSelect:t})},n))})}function Rp({incoming:e,outgoing:t,onSelect:n}){let r=[...t.map(e=>({direction:`uses`,target:e.to,edge:e})),...e.map(e=>({direction:`used by`,target:e.from,edge:e}))];return r.length?(0,b.jsxs)(`section`,{className:`block`,children:[(0,b.jsx)(`h3`,{children:`dependencies`}),(0,b.jsx)(`div`,{className:`body`,children:(0,b.jsxs)(`table`,{children:[(0,b.jsx)(`thead`,{children:(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`th`,{children:`direction`}),(0,b.jsx)(`th`,{children:`element`}),(0,b.jsx)(`th`,{children:`kind`}),(0,b.jsx)(`th`,{children:`path`})]})}),(0,b.jsx)(`tbody`,{children:r.map(({direction:e,target:t,edge:r},i)=>(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`td`,{children:e}),(0,b.jsx)(`td`,{children:(0,b.jsx)(Ip,{v:t,onSelect:n})}),(0,b.jsx)(`td`,{children:r.kind}),(0,b.jsx)(`td`,{children:(0,b.jsx)(`code`,{children:r.path})})]},`${e}-${t}-${r.path}-${i}`))})]})})]}):null}function zp({selection:e,detail:t,incoming:n,outgoing:r,onSelect:i}){let a=Object.keys(t).filter(e=>e!==`parse_status`&&e!==`mdl`).sort((e,t)=>{let n=Fp.indexOf(e),r=Fp.indexOf(t);return(n===-1?99:n)-(r===-1?99:r)});return(0,b.jsxs)(`div`,{className:`detail`,children:[(0,b.jsx)(`h2`,{children:e.label}),(0,b.jsxs)(`div`,{className:`qn`,children:[e.type,` · `,e.qn,t.parse_status&&(0,b.jsx)(`span`,{className:`pill `+(t.parse_status===`parsed`?`ok`:`warn`),children:t.parse_status})]}),e.type===`entity`&&(0,b.jsx)(Np,{qn:e.qn,detail:t}),(0,b.jsx)(Rp,{incoming:n,outgoing:r,onSelect:i}),a.map(e=>{let n=t[e];return(0,b.jsxs)(`section`,{className:`block`,children:[(0,b.jsx)(`h3`,{children:e.replace(/_/g,` `)}),(0,b.jsx)(`div`,{className:`body`,children:Array.isArray(n)?(0,b.jsx)(Lp,{arr:n,onSelect:i}):n&&typeof n==`object`?(0,b.jsx)(`table`,{children:(0,b.jsx)(`tbody`,{children:Object.entries(n).map(([e,t])=>(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`th`,{children:e}),(0,b.jsx)(`td`,{children:(0,b.jsx)(Ip,{v:t,onSelect:i})})]},e))})}):(0,b.jsx)(Ip,{v:n,onSelect:i})})]},e)}),t.mdl&&(0,b.jsxs)(`section`,{className:`block`,children:[(0,b.jsx)(`h3`,{children:`MDL`}),(0,b.jsx)(`pre`,{children:t.mdl})]})]})}function Bp(){let[e,t]=(0,_.useState)(``),[n,r]=(0,_.useState)([]),[i,a]=(0,_.useState)(!1),[o,s]=(0,_.useState)(!1),[c,l]=(0,_.useState)(),[u,d]=(0,_.useState)(!1),[f,p]=(0,_.useState)(),m=async e=>{s(!0);let{data:t,mocked:n}=await Vf(e);r(t),a(n),s(!1)};(0,_.useEffect)(()=>{m(``)},[]);let h=async e=>{p(e.id);let t=await Hf(e.id,e.latestVersion,u);p(void 0),l(t.message),t.ok?setTimeout(()=>window.location.reload(),1800):setTimeout(()=>l(void 0),6e3)};return(0,b.jsxs)(`div`,{className:`market`,children:[(0,b.jsxs)(`div`,{className:`market-head`,children:[(0,b.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),m(e)},children:[(0,b.jsx)(`input`,{type:`search`,placeholder:`Search the Mendix marketplace…`,value:e,onChange:e=>t(e.target.value)}),(0,b.jsx)(`button`,{type:`submit`,children:`Search`})]}),(0,b.jsxs)(`label`,{className:`git-hint`,title:`Installing imports the module into the .mpr, which Studio Pro locks while open`,children:[(0,b.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked)}),`Studio Pro is closed`]}),i&&(0,b.jsx)(`span`,{className:`mock-badge`,title:`Backend not connected — showing offline sample data`,children:`offline sample`})]}),o?(0,b.jsx)(`p`,{className:`empty pad`,children:`Searching…`}):(0,b.jsxs)(`div`,{className:`market-list`,children:[n.map(e=>(0,b.jsxs)(`div`,{className:`market-card`,children:[(0,b.jsxs)(`div`,{className:`market-card-main`,children:[(0,b.jsxs)(`div`,{className:`market-title`,children:[e.name,e.latestVersion&&(0,b.jsxs)(`span`,{className:`ver`,children:[`v`,e.latestVersion]})]}),(0,b.jsxs)(`div`,{className:`market-sub`,children:[e.publisher,` `,e.category?`· ${e.category}`:``,e.rating?` · ★ ${e.rating}`:``,e.downloads?` · ${(e.downloads/1e3).toFixed(0)}k downloads`:``]}),e.summary&&(0,b.jsx)(`div`,{className:`market-summary`,children:e.summary})]}),(0,b.jsx)(`button`,{className:`w-btn`,disabled:!u||f===e.id,onClick:()=>h(e),children:f===e.id?`Installing…`:`Install`})]},e.id)),!n.length&&(0,b.jsx)(`p`,{className:`empty pad`,children:`No results.`})]}),c&&(0,b.jsx)(`div`,{className:`toast`,children:c})]})}var Vp=[{title:`Object activities`,items:[{icon:`⬇`,label:`Cast object`},{icon:`✎`,label:`Change object`},{icon:`✔`,label:`Commit object(s)`},{icon:`+`,label:`Create object`},{icon:`🗑`,label:`Delete object(s)`},{icon:`⤵`,label:`Retrieve`},{icon:`↺`,label:`Rollback object`}]},{title:`List activities`,items:[{icon:`Σ`,label:`Aggregate list`},{icon:`⇄`,label:`Change list`},{icon:`+`,label:`Create list`},{icon:`≣`,label:`List operation`}]},{title:`Action call activities`,items:[{icon:`☕`,label:`Java action call`},{icon:`⚙`,label:`Microflow call`}]},{title:`Variable activities`,items:[{icon:`✎`,label:`Change variable`},{icon:`+`,label:`Create variable`}]},{title:`Client activities`,items:[{icon:`▤`,label:`Show page`},{icon:`⚑`,label:`Show message`},{icon:`↧`,label:`Download file`}]}],Hp=[{title:`Data containers`,items:[{icon:`▤`,label:`Data view`},{icon:`▦`,label:`Data grid 2`},{icon:`≣`,label:`List view`},{icon:`🖼`,label:`Gallery`},{icon:`⊞`,label:`Template grid`},{icon:`⤵`,label:`Reference selector`}]},{title:`Text`,items:[{icon:`𝐀`,label:`Text`},{icon:`𝐇`,label:`Heading`},{icon:`🖼`,label:`Image`}]},{title:`Structure`,items:[{icon:`▭`,label:`Container`},{icon:`▥`,label:`Layout grid`},{icon:`▦`,label:`Table`},{icon:`◫`,label:`Group box`},{icon:`❐`,label:`Tab container`},{icon:`⇳`,label:`Scroll container`}]},{title:`Buttons & links`,items:[{icon:`▣`,label:`Button`},{icon:`🔗`,label:`Link button`},{icon:`▶`,label:`Action button`}]},{title:`Input elements`,items:[{icon:`▭`,label:`Text box`},{icon:`☑`,label:`Check box`},{icon:`▾`,label:`Combo box`},{icon:`◉`,label:`Radio buttons`},{icon:`📅`,label:`Date picker`},{icon:`≡`,label:`Drop-down`}]}],Up=[{title:`Building blocks`,items:[{icon:`🧱`,label:`Cards`},{icon:`🧱`,label:`Lists`},{icon:`🧱`,label:`Headers`}]}],Wp=[{title:`Domain model`,items:[{icon:`🗄`,label:`Entity`},{icon:`🔗`,label:`Association`},{icon:`🔤`,label:`Enumeration`}]}];function Gp(e,t){switch(e){case`microflow`:case`nanoflow`:return Vp;case`entity`:case`domainmodel`:return Wp;default:return t===`blocks`?Up:Hp}}function Kp({context:e}){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(`widgets`),[a,o]=(0,_.useState)(new Set),s=!e||[`page`,`snippet`,`layout`,`pagetemplate`].includes(e),c=(0,_.useMemo)(()=>{let n=Gp(e,r),i=t.trim().toLowerCase();return i?n.map(e=>({...e,items:e.items.filter(e=>e.label.toLowerCase().includes(i))})).filter(e=>e.items.length):n},[e,r,t]),l=e=>o(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return(0,b.jsxs)(`div`,{className:`toolbox`,children:[(0,b.jsx)(`div`,{className:`toolbox-title`,children:`Toolbox`}),s&&(0,b.jsxs)(`div`,{className:`tb-tabs`,children:[(0,b.jsx)(`button`,{className:r===`widgets`?`on`:``,onClick:()=>i(`widgets`),children:`Widgets`}),(0,b.jsx)(`button`,{className:r===`blocks`?`on`:``,onClick:()=>i(`blocks`),children:`Building blocks`})]}),(0,b.jsx)(`input`,{className:`tb-search`,type:`search`,placeholder:`Search…`,value:t,onChange:e=>n(e.target.value)}),c.map(e=>{let t=!a.has(e.title);return(0,b.jsxs)(`div`,{className:`tb-group`,children:[(0,b.jsxs)(`button`,{className:`tb-group-title`,onClick:()=>l(e.title),children:[(0,b.jsx)(`span`,{className:`tb-chev`+(t?` open`:``),children:`▸`}),e.title]}),t&&(0,b.jsx)(`div`,{className:`tb-items`,children:e.items.map(e=>(0,b.jsxs)(`div`,{className:`tb-item`,title:`Drag onto the canvas to add ${e.label}`,draggable:!0,onDragStart:t=>{t.dataTransfer.setData(`application/mrb-item`,JSON.stringify(e)),t.dataTransfer.effectAllowed=`copy`},children:[(0,b.jsx)(`span`,{className:`tb-icon`,children:e.icon}),(0,b.jsx)(`span`,{className:`tb-label`,children:e.label})]},e.label))})]},e.title)}),!c.length&&(0,b.jsx)(`p`,{className:`empty pad`,children:`No matches.`})]})}function qp(){let[e,t]=(0,_.useState)(),[n,r]=(0,_.useState)([]),[i,a]=(0,_.useState)([]),[o,s]=(0,_.useState)(!1),[c,l]=(0,_.useState)(!1),[u,d]=(0,_.useState)(),[f,p]=(0,_.useState)(),[m,h]=(0,_.useState)(``),[g,v]=(0,_.useState)(``),[y,x]=(0,_.useState)(``),[S,C]=(0,_.useState)(!1),w=(0,_.useCallback)(async()=>{try{let[e,n,i]=await Promise.all([Xf.status(),Xf.branches(),Xf.stashList()]);t(e),r(n.branches),a(i.stash),d(void 0)}catch(e){d(String(e instanceof Error?e.message:e))}},[]);(0,_.useEffect)(()=>{w()},[w]);let T=async(e,t)=>{l(!0),d(void 0),p(void 0);try{await t(),p(e)}catch(e){d(String(e instanceof Error?e.message:e))}finally{await w(),l(!1)}},E=n.filter(e=>!e.startsWith(`origin/`)),D=n.filter(e=>e.startsWith(`origin/`)),O=o&&!c;return(0,b.jsxs)(`div`,{className:`git-panel`,children:[(0,b.jsxs)(`div`,{className:`git-head`,children:[(0,b.jsxs)(`div`,{className:`git-current`,children:[(0,b.jsxs)(`span`,{className:`git-branch`,children:[(0,b.jsx)(`span`,{className:`git-ico`,children:`⎇`}),e?e.branch:`…`]}),e&&(0,b.jsx)(`span`,{className:e.clean?`git-tag clean`:`git-tag dirty`,children:e.clean?`clean`:`uncommitted changes`}),e?.operation_in_progress&&(0,b.jsxs)(`span`,{className:`git-tag dirty`,children:[e.operation_in_progress,` in progress`]})]}),(0,b.jsx)(`button`,{className:`w-btn`,onClick:w,disabled:c,children:`Refresh`})]}),(0,b.jsxs)(`label`,{className:`git-guard`,children:[(0,b.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>s(e.target.checked)}),`Studio Pro is closed (required — it locks the .mpr while open)`]}),u&&(0,b.jsx)(`div`,{className:`git-error`,children:u}),f&&(0,b.jsx)(`div`,{className:`git-notice`,children:f}),(0,b.jsxs)(`section`,{className:`git-section`,children:[(0,b.jsx)(`h3`,{children:`Branches`}),(0,b.jsxs)(`form`,{className:`git-inline`,onSubmit:e=>{e.preventDefault(),m.trim()&&T(`Created and switched to ${m.trim()}`,()=>Xf.create(m.trim(),o)).then(()=>h(``))},children:[(0,b.jsx)(`input`,{placeholder:`new-branch-name`,value:m,onChange:e=>h(e.target.value)}),(0,b.jsx)(`button`,{className:`w-btn`,type:`submit`,disabled:!O||!m.trim(),children:`Create branch`}),(0,b.jsx)(`button`,{className:`w-btn`,type:`button`,disabled:c,onClick:()=>T(`Fetched from origin`,()=>Xf.fetch()),children:`Fetch`})]}),(0,b.jsxs)(`ul`,{className:`git-list`,children:[E.map(t=>(0,b.jsxs)(`li`,{className:t===e?.branch?`on`:``,children:[(0,b.jsx)(`span`,{children:t}),t===e?.branch?(0,b.jsx)(`span`,{className:`git-hint`,children:`current`}):(0,b.jsx)(`button`,{className:`w-btn`,disabled:!O,onClick:()=>T(`Switched to ${t}`,()=>Xf.switch(t,o)),children:`Switch`})]},t)),D.map(e=>(0,b.jsxs)(`li`,{className:`remote`,children:[(0,b.jsx)(`span`,{children:e}),(0,b.jsx)(`button`,{className:`w-btn`,disabled:!O,onClick:()=>T(`Checked out ${e.replace(/^origin\//,``)}`,()=>Xf.switch(e.replace(/^origin\//,``),o)),children:`Check out`})]},e))]})]}),(0,b.jsxs)(`section`,{className:`git-section`,children:[(0,b.jsx)(`h3`,{children:`Commit`}),(0,b.jsxs)(`form`,{className:`git-inline`,onSubmit:e=>{e.preventDefault(),g.trim()&&T(`Committed the project changes`,()=>Xf.commit(g.trim(),o)).then(()=>v(``))},children:[(0,b.jsx)(`input`,{placeholder:`Commit message`,value:g,onChange:e=>v(e.target.value)}),(0,b.jsx)(`button`,{className:`w-btn`,type:`submit`,disabled:!O||!g.trim()||e?.clean,children:`Commit`})]}),e?.clean&&(0,b.jsx)(`p`,{className:`git-hint pad`,children:`Nothing to commit — the working tree is clean.`})]}),(0,b.jsxs)(`section`,{className:`git-section`,children:[(0,b.jsx)(`h3`,{children:`Stash`}),(0,b.jsxs)(`form`,{className:`git-inline`,onSubmit:e=>{e.preventDefault(),T(`Stashed the working changes`,()=>Xf.stashPush(y.trim(),S,o)).then(()=>x(``))},children:[(0,b.jsx)(`input`,{placeholder:`Stash message (optional)`,value:y,onChange:e=>x(e.target.value)}),(0,b.jsxs)(`label`,{className:`git-hint`,children:[(0,b.jsx)(`input`,{type:`checkbox`,checked:S,onChange:e=>C(e.target.checked)}),`include untracked`]}),(0,b.jsx)(`button`,{className:`w-btn`,type:`submit`,disabled:!O||e?.clean,children:`Stash push`})]}),(0,b.jsxs)(`ul`,{className:`git-list`,children:[i.map(e=>{let t=e.match(/^(stash@\{\d+\})/)?.[1]??`stash@{0}`;return(0,b.jsxs)(`li`,{children:[(0,b.jsx)(`span`,{className:`git-stash`,children:e}),(0,b.jsxs)(`span`,{className:`git-actions`,children:[(0,b.jsx)(`button`,{className:`w-btn`,disabled:!O,onClick:()=>T(`Applied ${t}`,()=>Xf.stashApply(t,!1,o)),children:`Apply`}),(0,b.jsx)(`button`,{className:`w-btn`,disabled:!O,onClick:()=>T(`Popped ${t}`,()=>Xf.stashApply(t,!0,o)),children:`Pop`}),(0,b.jsx)(`button`,{className:`w-btn danger`,disabled:c,onClick:()=>T(`Dropped ${t}`,()=>Xf.stashDrop(t)),children:`Drop`})]})]},e)}),!i.length&&(0,b.jsx)(`li`,{className:`git-empty`,children:`No stashed changes.`})]})]})]})}var Jp=44,Yp=24,Xp=42,Zp=4;function Qp(e){return e.split(`.`).pop()??e}function $p(e){return e.filter(e=>e.type===`module`).map(e=>e.label).sort()}function em(e){let t=[];for(let n of e){if(n.type!==`module`)continue;let e=r=>{for(let i of r??[])i.type===`entity`&&i.qualifiedName&&t.push({qn:i.qualifiedName,module:n.label}),e(i.children)};e(n.children)}return t}function tm(e){return Jp+(e.attributes.length+e.refs.length)*Yp+12}function nm(e,t,n,r){let i=em(e),a=[...new Set(i.map(e=>e.module))].sort(),o=i.filter(e=>r.has(e.module)),s=new Set(o.map(e=>e.qn)),c=new Map;for(let e of n){if(!s.has(e.from)||!s.has(e.to))continue;let t=c.get(e.from)??[];t.push({qn:e.qn,targetQn:e.to,targetName:Qp(e.to),many:e.type===`ReferenceSet`}),c.set(e.from,t)}let l=Array(Zp).fill(20),u=o.map((e,n)=>{let r=t[e.qn],i={qn:e.qn,name:Qp(e.qn),module:e.module,generalization:r?.generalization,persistable:r?.persistable!==!1,attributes:Array.isArray(r?.attributes)?r.attributes:[],refs:c.get(e.qn)??[]},a=n%Zp,o=20+a*282,s=l[a];return l[a]=s+tm(i)+Xp,{id:e.qn,type:`erTable`,position:{x:o,y:s},data:i}}),d=[];for(let e of n){if(!s.has(e.from)||!s.has(e.to))continue;let t=e.type===`ReferenceSet`;d.push({id:e.qn,source:e.from,target:e.to,sourceHandle:`ref-${e.qn}`,label:t?`* — *`:`* — 1`,style:{stroke:`var(--edge)`,strokeWidth:1.5},labelStyle:{fill:`var(--muted)`,fontSize:10},labelBgStyle:{fill:`var(--panel)`,fillOpacity:.85}})}return{nodes:u,edges:d,modules:a}}function rm({data:e}){let t=e;return(0,b.jsxs)(`div`,{className:`er-table`,children:[(0,b.jsx)(Kl,{type:`target`,position:B.Left,className:`er-handle`}),(0,b.jsxs)(`div`,{className:`er-th`,children:[(0,b.jsx)(`span`,{className:`er-name`,children:t.name}),!t.persistable&&(0,b.jsx)(`span`,{className:`er-badge`,children:`non-persistent`})]}),t.generalization&&(0,b.jsxs)(`div`,{className:`er-gen`,children:[`↳ `,t.generalization]}),(0,b.jsxs)(`div`,{className:`er-body`,children:[t.attributes.map(e=>(0,b.jsxs)(`div`,{className:`er-row`,children:[(0,b.jsxs)(`span`,{className:`er-col`,children:[e.required&&(0,b.jsx)(`span`,{className:`er-req`,title:`required`,children:`•`}),e.name]}),(0,b.jsx)(`span`,{className:`er-type`,children:e.type??``})]},e.name)),t.refs.map(e=>(0,b.jsxs)(`div`,{className:`er-row er-ref`,children:[(0,b.jsxs)(`span`,{className:`er-col`,children:[(0,b.jsx)(`span`,{className:`er-link`,title:`association`,children:`🔗`}),e.targetName]}),(0,b.jsx)(`span`,{className:`er-type`,children:e.many?`* ref`:`ref`}),(0,b.jsx)(Kl,{type:`source`,position:B.Right,id:`ref-${e.qn}`,className:`er-handle`})]},e.qn)),!t.attributes.length&&!t.refs.length&&(0,b.jsx)(`div`,{className:`er-row er-empty`,children:`no attributes`})]})]})}var im={erTable:rm},am=`mrb-er-pos`,om=`mrb-er-modules`;function sm(){try{return JSON.parse(localStorage.getItem(am)??`{}`)}catch{return{}}}function cm(e){let t=sm();for(let n of e)t[n.id]=n.position;localStorage.setItem(am,JSON.stringify(t))}function lm(e){try{let t=JSON.parse(localStorage.getItem(om)??`null`);if(Array.isArray(t))return new Set(t.filter(t=>e.includes(t)))}catch{}return new Set(e)}function um({tree:e,details:t,assocs:n,onOpenEntity:r}){let i=(0,_.useMemo)(()=>$p(e),[e]),[a,o]=(0,_.useState)(()=>lm(i)),s=(0,_.useMemo)(()=>nm(e,t,n,a),[e,t,n,a]),[c,l]=(0,_.useState)([]);(0,_.useEffect)(()=>{let e=sm();l(s.nodes.map(t=>e[t.id]?{...t,position:e[t.id]}:t))},[s]),(0,_.useEffect)(()=>{localStorage.setItem(om,JSON.stringify([...a]))},[a]);let u=(0,_.useCallback)(e=>{l(t=>{let n=al(e,t);return e.some(e=>e.type===`position`&&e.dragging===!1)&&cm(n),n})},[]),d=e=>o(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return(0,b.jsxs)(`div`,{className:`er-view`,children:[(0,b.jsxs)(`div`,{className:`er-toolbar`,children:[(0,b.jsx)(`span`,{className:`er-filter-label`,children:`Modules`}),(0,b.jsx)(`div`,{className:`er-chips`,children:i.map(e=>(0,b.jsx)(`button`,{className:a.has(e)?`er-chip on`:`er-chip`,onClick:()=>d(e),children:e},e))}),(0,b.jsx)(`span`,{className:`spacer`}),(0,b.jsx)(`button`,{className:`er-mini`,onClick:()=>o(new Set(i)),children:`All`}),(0,b.jsx)(`button`,{className:`er-mini`,onClick:()=>o(new Set),children:`None`}),(0,b.jsxs)(`span`,{className:`er-count`,children:[c.length,` tables · `,s.edges.length,` relationships`]})]}),(0,b.jsx)(`div`,{className:`er-canvas`,children:c.length===0?(0,b.jsx)(`p`,{className:`empty pad`,children:`Select one or more modules to compose the diagram.`}):(0,b.jsxs)(Cd,{nodes:c,edges:s.edges,nodeTypes:im,onNodesChange:u,fitView:!0,minZoom:.1,proOptions:{hideAttribution:!0},onNodeClick:(e,t)=>r(t.id),children:[(0,b.jsx)(Md,{color:`var(--grid)`,gap:18}),(0,b.jsx)(rf,{pannable:!0,zoomable:!0,maskColor:`rgba(0,0,0,0.45)`,nodeColor:`var(--accent)`}),(0,b.jsx)(Bd,{showInteractive:!1})]})})]})}var dm=`/api`;function fm({onOpen:e}){let[t,n]=(0,_.useState)(),[r,i]=(0,_.useState)();if((0,_.useEffect)(()=>{fetch(`${dm}/drafts`).then(e=>e.ok?e.json():Promise.reject(Error(String(e.status)))).then(n).catch(e=>i(String(e)))},[]),r)return(0,b.jsxs)(`p`,{className:`empty pad`,children:[`Drafts unavailable: `,r]});if(!t)return(0,b.jsx)(`p`,{className:`empty pad`,children:`Loading drafts…`});let a=Object.entries(t.entities),o=Object.entries(t.pages),s=(t,n,r,i,a)=>(0,b.jsxs)(`div`,{className:`draft-card`,children:[(0,b.jsxs)(`div`,{className:`draft-head`,children:[(0,b.jsx)(`a`,{className:`ref`,onClick:()=>e(t),children:t}),(0,b.jsx)(`span`,{className:r?`git-tag clean`:`git-tag dirty`,children:r?`valid`:`blocked`}),n&&(0,b.jsx)(`span`,{className:`draft-when`,children:new Date(n).toLocaleString()})]}),i&&(0,b.jsx)(`div`,{className:`draft-note`,children:i}),a&&(0,b.jsxs)(`details`,{children:[(0,b.jsx)(`summary`,{children:`MDL`}),(0,b.jsx)(`pre`,{children:a})]})]},t);return(0,b.jsxs)(`div`,{className:`drafts`,children:[(0,b.jsx)(`p`,{className:`draft-hint`,children:`Drafts are validated previews saved by the visual editors. Applying them to the project stays in the guarded CLI workflow (mxcli exec / mendix-apply).`}),(0,b.jsx)(`h3`,{children:`Page drafts`}),o.length===0&&(0,b.jsx)(`p`,{className:`empty`,children:`No page drafts yet — use "Save page" in the page builder.`}),o.map(([e,t])=>s(e,t.saved_at,t.valid!==!1,t.message,t.mdl)),(0,b.jsx)(`h3`,{children:`Flow drafts`}),Object.keys(t.flows??{}).length===0&&(0,b.jsx)(`p`,{className:`empty`,children:`No flow drafts yet — use "Save flow" in the microflow editor.`}),Object.entries(t.flows??{}).map(([e,t])=>s(e,t.saved_at,t.valid!==!1,t.message,t.mdl)),(0,b.jsx)(`h3`,{children:`Entity drafts`}),a.length===0&&(0,b.jsx)(`p`,{className:`empty`,children:`No entity drafts yet — use "Edit entity" on a parsed entity.`}),a.map(([e,t])=>s(e,t.saved_at,!t.result?.blocked,t.result?.operation?.reason,t.result?.mdl))]})}var pm=`/inventory`;async function mm(e){let t=await fetch(e);if(!t.ok)throw Error(`${t.status} ${t.statusText} — ${e}`);return t.json()}async function hm(){let[e,t,n,r,i]=await Promise.all([mm(`${pm}/project-tree.json`),mm(`${pm}/element-details.json`),mm(`${pm}/mendix-project.json`).catch(()=>({})),mm(`${pm}/dependencies.json`).catch(()=>({schema_version:1,nodes:0,edges:[]})),mm(`${pm}/ui-layouts.json`).catch(()=>({}))]);return{tree:e,details:t,meta:n,dependencies:r,layouts:i}}function gm(){return mm(`/api/health`)}function _m(){let[e,t]=(0,_.useState)(),[n,r]=(0,_.useState)();return(0,_.useEffect)(()=>{Xf.status().then(t).catch(e=>r(String(e instanceof Error?e.message:e)))},[]),(0,b.jsxs)(`div`,{className:`detail-drawer console-pane`,children:[n&&(0,b.jsxs)(`p`,{className:`muted`,children:[`Changes unavailable: `,n]}),e&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`p`,{children:[`Branch `,(0,b.jsx)(`code`,{children:e.branch}),` ·`,` `,e.clean?`no uncommitted changes`:`uncommitted changes in the working tree`,e.operation_in_progress?` · ${e.operation_in_progress} in progress`:``]}),(0,b.jsx)(`p`,{className:`muted`,children:`Commit, stash, and switch from the Git tab.`})]})]})}var vm=`ruby`,ym=[{id:`ruby`,label:`Ruby`},{id:`studio-pro`,label:`Studio Pro`},{id:`tokyo-night`,label:`Tokyo Night`},{id:`dracula`,label:`Dracula`},{id:`gruvbox`,label:`Gruvbox`},{id:`catppuccin`,label:`Catppuccin`}];function bm(e){let t=e.filter(e=>!(e.type===`module`&&e.label===`System`)),n=e.filter(e=>e.type===`module`&&e.label===`System`);return[...t,...n]}function xm(){let[e,t]=(0,_.useState)(null),[n,r]=(0,_.useState)(),[i,a]=(0,_.useState)(),[o,s]=(0,_.useState)(),[c,l]=(0,_.useState)(`explorer`),[u,d]=(0,_.useState)(),[f,p]=(0,_.useState)(()=>localStorage.getItem(`mrb-theme`)??vm);(0,_.useEffect)(()=>{hm().then(t).catch(e=>r(String(e))),gm().then(a).catch(()=>a(void 0))},[]),(0,_.useEffect)(()=>{document.documentElement.dataset.theme=f,localStorage.setItem(`mrb-theme`,f)},[f]);let m=(0,_.useMemo)(()=>e?cf(e.details):[],[e]),h=(0,_.useMemo)(()=>e?bm(e.tree):[],[e]),g=t=>{if(!e)return;let n,r=e=>{for(let i of e)i.qualifiedName===t&&(n={qn:t,type:i.type,label:i.label}),i.children&&r(i.children)};r(e.tree),s(n??{qn:t,type:e.details[t]?.kind??`element`,label:t.split(`.`).pop()??t})};if(n)return(0,b.jsxs)(`div`,{className:`startup-state`,children:[(0,b.jsx)(`img`,{src:`/brand/mendix-ruby-bridge.png`,alt:``}),(0,b.jsxs)(`div`,{className:`fatal`,children:[`Failed to load inventory: `,n]})]});if(!e)return(0,b.jsxs)(`div`,{className:`startup-state`,children:[(0,b.jsx)(`img`,{src:`/brand/mendix-ruby-bridge.png`,alt:``}),(0,b.jsx)(`div`,{className:`loading`,children:`Loading inventory…`})]});let v=e.meta,y=o?e.details[o.qn]:void 0,x=o?e.dependencies.edges.filter(e=>e.to===o.qn):[],S=o?e.dependencies.edges.filter(e=>e.from===o.qn):[],C=c===`explorer`;return(0,b.jsxs)(`div`,{className:`app`,children:[(0,b.jsxs)(`header`,{children:[(0,b.jsxs)(`span`,{className:`app-name`,children:[(0,b.jsx)(`img`,{src:`/brand/mendix-ruby-bridge.png`,alt:`Mendix Ruby Bridge`}),(0,b.jsx)(`span`,{children:v.source_project?.split(`/`).pop()?.replace(/\.mpr$/,``)??`Mendix Bridge`})]}),(0,b.jsxs)(`nav`,{className:`tabs`,children:[(0,b.jsx)(`button`,{className:c===`explorer`?`on`:``,onClick:()=>l(`explorer`),children:`App Explorer`}),(0,b.jsx)(`button`,{className:c===`er`?`on`:``,onClick:()=>l(`er`),children:`ER Diagram`}),(0,b.jsx)(`button`,{className:c===`marketplace`?`on`:``,onClick:()=>l(`marketplace`),children:`Marketplace`}),(0,b.jsx)(`button`,{className:c===`drafts`?`on`:``,onClick:()=>l(`drafts`),children:`Drafts`}),i?.capabilities?.git&&(0,b.jsx)(`button`,{className:c===`git`?`on`:``,onClick:()=>l(`git`),children:`Git`})]}),(0,b.jsx)(`span`,{className:`spacer`}),(0,b.jsxs)(`label`,{className:`theme-pick`,children:[`Theme`,(0,b.jsx)(`select`,{value:f,onChange:e=>p(e.target.value),children:ym.map(e=>(0,b.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})]}),c===`marketplace`?(0,b.jsx)(Bp,{}):c===`git`?(0,b.jsx)(qp,{}):c===`drafts`?(0,b.jsx)(fm,{onOpen:e=>{g(e),l(`explorer`)}}):c===`er`?(0,b.jsx)(um,{tree:h,details:e.details,assocs:m,onOpenEntity:e=>{g(e),l(`explorer`)}}):(0,b.jsxs)(`div`,{className:`layout`,children:[(0,b.jsx)(`aside`,{children:(0,b.jsx)(T,{tree:h,hasDetail:t=>!!e.details[t],selected:o?.qn,onSelect:s})}),(0,b.jsxs)(`main`,{children:[!o&&(0,b.jsx)(`p`,{className:`empty pad`,children:`Select an element to explore it.`}),o&&y&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`div`,{className:`doc-tabs`,children:(0,b.jsxs)(`div`,{className:`doc-tab on`,children:[(0,b.jsxs)(`span`,{className:`doc-tab-label`,children:[o.label,` `,(0,b.jsxs)(`span`,{className:`doc-tab-module`,children:[`[`,o.qn.split(`.`)[0],`]`]})]}),(0,b.jsx)(`button`,{className:`doc-tab-close`,title:`Close`,onClick:()=>s(void 0),children:`×`})]})}),(0,b.jsxs)(`div`,{className:`editor-bar`,children:[(0,b.jsx)(`span`,{className:`editor-kind`,children:o.type}),(0,b.jsx)(`span`,{className:`editor-qn`,children:o.qn})]}),(0,b.jsx)(`div`,{className:`editor-body`,children:(0,b.jsx)(Ap,{selection:o,details:e.details,assocs:m,layouts:e.layouts,onSelect:g})}),u===`details`&&(0,b.jsx)(`div`,{className:`detail-drawer`,children:(0,b.jsx)(zp,{selection:o,detail:y,incoming:x,outgoing:S,onSelect:g})}),u===`console`&&(0,b.jsxs)(`div`,{className:`detail-drawer console-pane`,children:[(0,b.jsxs)(`p`,{children:[`Backend v`,i?.version??`?`,` · `,v.element_count??`?`,` elements · `,e.dependencies.edges.length,` dependencies`]}),(0,b.jsx)(`p`,{className:`muted`,children:`Guarded writes (git, migrations, marketplace install) run through mxcli with Studio Pro closed.`})]}),u===`changes`&&(0,b.jsx)(_m,{}),u===`errors`&&(0,b.jsx)(`div`,{className:`detail-drawer console-pane`,children:(0,b.jsx)(`p`,{className:`muted`,children:"No consistency errors reported. Run `mx check` via the guarded workflow for a full report."})}),(0,b.jsxs)(`div`,{className:`console-bar`,children:[[`details`,`changes`,`errors`,`console`].map(e=>(0,b.jsx)(`button`,{className:u===e?`on`:``,onClick:()=>d(t=>t===e?void 0:e),children:e[0].toUpperCase()+e.slice(1)},e)),(0,b.jsx)(`span`,{className:`spacer`}),(0,b.jsxs)(`span`,{className:`console-hint`,children:[o.type,` · `,o.qn]})]})]})]}),C&&(0,b.jsx)(Kp,{context:o?.type})]}),(0,b.jsxs)(`footer`,{className:`statusbar`,children:[(0,b.jsx)(`img`,{className:`status-logo`,src:`/favicon.png`,alt:``}),(0,b.jsx)(`span`,{children:i?`Backend v${i.version}`:`Backend unavailable`}),(0,b.jsx)(`span`,{className:`spacer`}),o&&(0,b.jsxs)(`span`,{children:[o.type,` · `,o.qn]}),(0,b.jsx)(`span`,{className:`sb-meta`,children:v.element_count?`${v.element_count} elements`:``}),(0,b.jsx)(`span`,{className:`sb-meta`,children:`${e.dependencies.edges.length} dependencies`})]})]})}(0,v.createRoot)(document.getElementById(`root`)).render((0,b.jsx)(_.StrictMode,{children:(0,b.jsx)(xm,{})})); \ No newline at end of file diff --git a/web/dist/assets/index-xDeQxMQR.js b/web/dist/assets/index-xDeQxMQR.js deleted file mode 100644 index d2017fa..0000000 --- a/web/dist/assets/index-xDeQxMQR.js +++ /dev/null @@ -1,23 +0,0 @@ -var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(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 l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ee(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,ee(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),ee(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(e){var t=`https://react.dev/errors/`+e;if(1ie||(e.current=re[ie],re[ie]=null,ie--)}function R(e,t){ie++,re[ie]=e.current,e.current=t}var ae=I(null),oe=I(null),se=I(null),ce=I(null);function le(e,t){switch(R(se,t),R(oe,e),R(ae,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}L(ae),R(ae,e)}function ue(){L(ae),L(oe),L(se)}function de(e){e.memoizedState!==null&&R(ce,e);var t=ae.current,n=Hd(t,e.type);t!==n&&(R(oe,e),R(ae,n))}function fe(e){oe.current===e&&(L(ae),L(oe)),ce.current===e&&(L(ce),Qf._currentValue=ne)}var pe,me;function he(e){if(pe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);pe=t&&t[1]||``,me=-1)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ge=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?he(n):``}function ve(e,t){switch(e.tag){case 26:case 27:case 5:return he(e.type);case 16:return he(`Lazy`);case 13:return e.child!==t&&t!==null?he(`Suspense Fallback`):he(`Suspense`);case 19:return he(`SuspenseList`);case 0:case 15:return _e(e.type,!1);case 11:return _e(e.type.render,!1);case 1:return _e(e.type,!0);case 31:return he(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,Me=t.log,Ne=t.unstable_setDisableYieldValue,Pe=null,Fe=null;function Ie(e){if(typeof Me==`function`&&Ne(e),Fe&&typeof Fe.setStrictMode==`function`)try{Fe.setStrictMode(Pe,e)}catch{}}var Le=Math.clz32?Math.clz32:Be,Re=Math.log,ze=Math.LN2;function Be(e){return e>>>=0,e===0?32:31-(Re(e)/ze|0)|0}var Ve=256,He=262144,Ue=4194304;function We(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ge(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=We(n))):i=We(o):i=We(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=We(n))):i=We(o)):i=We(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ke(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function qe(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Je(){var e=Ue;return Ue<<=1,!(Ue&62914560)&&(Ue=4194304),e}function Ye(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Xe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ze(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),un=!1;if(ln)try{var dn={};Object.defineProperty(dn,"passive",{get:function(){un=!0}}),window.addEventListener(`test`,dn,dn),window.removeEventListener(`test`,dn,dn)}catch{un=!1}var fn=null,pn=null,mn=null;function hn(){if(mn)return mn;var e,t=pn,n=t.length,r,i=`value`in fn?fn.value:fn.textContent,a=i.length;for(e=0;e=qn),Xn=` `,Zn=!1;function Qn(e,t){switch(e){case`keyup`:return Gn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function $n(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var er=!1;function tr(e,t){switch(e){case`compositionend`:return $n(t);case`keypress`:return t.which===32?(Zn=!0,Xn):null;case`textInput`:return e=t.data,e===Xn&&Zn?null:e;default:return null}}function nr(e,t){if(er)return e===`compositionend`||!Kn&&Qn(e,t)?(e=hn(),mn=pn=fn=null,er=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=wr(n)}}function Er(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Er(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Dr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=It(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=It(e.document)}return t}function Or(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var kr=ln&&`documentMode`in document&&11>=document.documentMode,Ar=null,jr=null,Mr=null,Nr=!1;function Pr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Nr||Ar==null||Ar!==It(r)||(r=Ar,`selectionStart`in r&&Or(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Mr&&Cr(Mr,r)||(Mr=r,r=Td(jr,`onSelect`),0>=o,i-=o,Ei=1<<32-Le(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),z&&Oi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),z&&Oi(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return z&&Oi(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),z&&Oi(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&Oa(l)===r.type){n(e,r.sibling),c=a(r,o.props),B(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=pi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=fi(o.type,o.key,o.props,null,e.mode,c),B(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=gi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Oa(o),b(e,r,o,c)}if(te(o))return h(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Pa(o),c);if(o.$$typeof===C)return b(e,r,na(e,o),c);Fa(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=mi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Na=0;var i=b(e,t,n,r);return Ma=null,i}catch(t){if(t===Sa||t===wa)throw t;var a=ci(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var La=Ia(!0),Ra=Ia(!1),za=!1;function Ba(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Va(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ha(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ua(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,q&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ai(e),ii(e,null,n),t}return ti(e,r,t,n),ai(e)}function Wa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$e(e,n)}}function Ga(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ka=!1;function qa(){if(Ka){var e=pa;if(e!==null)throw e}}function Ja(e,t,n,r){Ka=!1;var i=e.updateQueue;za=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(X&f)===f:(r&f)===f){f!==0&&f===fa&&(Ka=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:za=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Wl|=o,e.lanes=o,e.memoizedState=d}}function Ya(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Xa(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=P.T,s={};P.T=s,Ns(e,!1,t,n);try{var c=i(),l=P.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ms(e,t,ga(c,r),fu(e)):Ms(e,t,r,fu(e))}catch(n){Ms(e,t,{then:function(){},status:`rejected`,reason:n},fu())}finally{F.p=a,o!==null&&s.types!==null&&(o.types=s.types),P.T=o}}function Ss(){}function Cs(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=ws(e).queue;xs(e,a,t,ne,n===null?Ss:function(){return Ts(e),n(r)})}function ws(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ne,baseState:ne,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Po,lastRenderedState:ne},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Po,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ts(e){var t=ws(e);t.next===null&&(t=e.alternate.memoizedState),Ms(e,t.next.queue,{},fu())}function Es(){return ta(Qf)}function Ds(){return W().memoizedState}function Os(){return W().memoizedState}function ks(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=fu();e=Ha(n);var r=Ua(t,e,n);r!==null&&(mu(r,t,n),Wa(r,t,n)),t={cache:ca()},e.payload=t;return}t=t.return}}function As(e,t,n){var r=fu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ps(e)?Fs(t,n):(n=ni(e,t,n,r),n!==null&&(mu(n,e,r),Is(n,t,r)))}function js(e,t,n){Ms(e,t,n,fu())}function Ms(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ps(e))Fs(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Sr(s,o))return ti(e,t,i,0),J===null&&ei(),!1}catch{}if(n=ni(e,t,i,r),n!==null)return mu(n,e,r),Is(n,t,r),!0}return!1}function Ns(e,t,n,r){if(r={lane:2,revertLane:ud(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ps(e)){if(t)throw Error(i(479))}else t=ni(e,n,r,2),t!==null&&mu(t,e,2)}function Ps(e){var t=e.alternate;return e===H||t!==null&&t===H}function Fs(e,t){mo=po=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Is(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$e(e,n)}}var Ls={readContext:ta,use:Mo,useCallback:bo,useContext:bo,useEffect:bo,useImperativeHandle:bo,useLayoutEffect:bo,useInsertionEffect:bo,useMemo:bo,useReducer:bo,useRef:bo,useState:bo,useDebugValue:bo,useDeferredValue:bo,useTransition:bo,useSyncExternalStore:bo,useId:bo,useHostTransitionStatus:bo,useFormState:bo,useActionState:bo,useOptimistic:bo,useMemoCache:bo,useCacheRefresh:bo};Ls.useEffectEvent=bo;var Rs={readContext:ta,use:Mo,useCallback:function(e,t){return ko().memoizedState=[e,t===void 0?null:t],e},useContext:ta,useEffect:cs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),os(4194308,4,ms.bind(null,t,e),n)},useLayoutEffect:function(e,t){return os(4194308,4,e,t)},useInsertionEffect:function(e,t){os(4,2,e,t)},useMemo:function(e,t){var n=ko();t=t===void 0?null:t;var r=e();if(ho){Ie(!0);try{e()}finally{Ie(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ko();if(n!==void 0){var i=n(t);if(ho){Ie(!0);try{n(t)}finally{Ie(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=As.bind(null,H,e),[r.memoizedState,e]},useRef:function(e){var t=ko();return e={current:e},t.memoizedState=e},useState:function(e){e=Wo(e);var t=e.queue,n=js.bind(null,H,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:gs,useDeferredValue:function(e,t){return ys(ko(),e,t)},useTransition:function(){var e=Wo(!1);return e=xs.bind(null,H,e.queue,!0,!1),ko().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=H,a=ko();if(z){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),J===null)throw Error(i(349));X&127||zo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,cs(Vo.bind(null,r,o,e),[e]),r.flags|=2048,is(9,{destroy:void 0},Bo.bind(null,r,o,n,t),null),n},useId:function(){var e=ko(),t=J.identifierPrefix;if(z){var n=Di,r=Ei;n=(r&~(1<<32-Le(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=go++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[ot]=t,o[st]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&jc(t)}}return Ic(t),Mc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&jc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=se.current,Vi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Ni,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[ot]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||jd(e.nodeValue,n)),e||Ri(t,!0)}else e=Bd(e).createTextNode(r),e[ot]=t,t.stateNode=e}return Ic(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Vi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[ot]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ic(t),e=!1}else n=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(co(t),t):(co(t),null);if(t.flags&128)throw Error(i(558))}return Ic(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Vi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[ot]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ic(t),a=!1}else a=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(co(t),t):(co(t),null)}return co(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Pc(t,t.updateQueue),Ic(t),null);case 4:return ue(),e===null&&xd(t.stateNode.containerInfo),Ic(t),null;case 10:return Yi(t.type),Ic(t),null;case 19:if(L(V),r=t.memoizedState,r===null)return Ic(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Fc(r,!1);else{if(Ul!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=lo(e),o!==null){for(t.flags|=128,Fc(r,!1),e=o.updateQueue,t.updateQueue=e,Pc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)di(n,e),n=n.sibling;return R(V,V.current&1|2),z&&Oi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>eu&&(t.flags|=128,a=!0,Fc(r,!1),t.lanes=4194304)}else{if(!a)if(e=lo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Pc(t,e),Fc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!z)return Ic(t),null}else 2*Te()-r.renderingStartTime>eu&&n!==536870912&&(t.flags|=128,a=!0,Fc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Ic(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=V.current,R(V,a?n&1|2:n&1),z&&Oi(t,r.treeForkCount),e);case 22:case 23:return co(t),to(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Ic(t),t.subtreeFlags&6&&(t.flags|=8192)):Ic(t),n=t.updateQueue,n!==null&&Pc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&L(va),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Yi(sa),Ic(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Rc(e,t){switch(ji(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Yi(sa),ue(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return fe(t),null;case 31:if(t.memoizedState!==null){if(co(t),t.alternate===null)throw Error(i(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(co(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return L(V),null;case 4:return ue(),null;case 10:return Yi(t.type),null;case 22:case 23:return co(t),to(),e!==null&&L(va),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Yi(sa),null;case 25:return null;default:return null}}function zc(e,t){switch(ji(t),t.tag){case 3:Yi(sa),ue();break;case 26:case 27:case 5:fe(t);break;case 4:ue();break;case 31:t.memoizedState!==null&&co(t);break;case 13:co(t);break;case 19:L(V);break;case 10:Yi(t.type);break;case 22:case 23:co(t),to(),e!==null&&L(va);break;case 24:Yi(sa)}}function Bc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Q(t,t.return,e)}}function Vc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Q(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Q(t,t.return,e)}}function Hc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Xa(t,n)}catch(t){Q(e,e.return,t)}}}function Uc(e,t,n){n.props=Gs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Q(e,t,n)}}function Wc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Q(e,t,n)}}function Gc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Q(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Q(e,t,n)}else n.current=null}function Kc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Q(e,e.return,t)}}function qc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[st]=t}catch(t){Q(e,e.return,t)}}function Jc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function Yc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Jc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Xc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=$t));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Xc(e,t,n),e=e.sibling;e!==null;)Xc(e,t,n),e=e.sibling}function Zc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Zc(e,t,n),e=e.sibling;e!==null;)Zc(e,t,n),e=e.sibling}function Qc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[ot]=e,t[st]=n}catch(t){Q(e,e.return,t)}}var $c=!1,el=!1,tl=!1,nl=typeof WeakSet==`function`?WeakSet:Set,rl=null;function il(e,t){if(e=e.containerInfo,Rd=sp,e=Dr(e),Or(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,rl=t;rl!==null;)if(t=rl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,rl=e;else for(;rl!==null;){switch(t=rl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Pd(o,r,n),o[ot]=e,yt(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Tr(s,h),v=Tr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,P.T=null,n=cu,cu=null;var o=iu,s=ou;if(ru=0,au=iu=null,ou=0,q&6)throw Error(i(331));var c=q;if(q|=4,Nl(o.current),Tl(o,o.current,s,n),q=c,rd(0,!1),Fe&&typeof Fe.onPostCommitFiberRoot==`function`)try{Fe.onPostCommitFiberRoot(Pe,o)}catch{}return!0}finally{F.p=a,P.T=r,Bu(e,t)}}function Uu(e,t,n){t=vi(n,t),t=Zs(e.stateNode,t,2),e=Ua(e,t,2),e!==null&&(Xe(e,2),nd(e))}function Q(e,t,n){if(e.tag===3)Uu(e,e,n);else for(;t!==null;){if(t.tag===3){Uu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(nu===null||!nu.has(r))){e=vi(n,e),n=Qs(2),r=Ua(t,n,2),r!==null&&($s(n,r,t,e),Xe(r,2),nd(r));break}}t=t.return}}function Wu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Ll;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Vl=!0,i.add(n),e=Gu.bind(null,e,t,n),t.then(e,e))}function Gu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,J===e&&(X&n)===n&&(Ul===4||Ul===3&&(X&62914560)===X&&300>Te()-Ql?!(q&2)&&xu(e,0):Kl|=n,Jl===X&&(Jl=0)),nd(e)}function Ku(e,t){t===0&&(t=Je()),e=ri(e,t),e!==null&&(Xe(e,t),nd(e))}function qu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ku(e,n)}function Ju(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),Ku(e,n)}function Yu(e,t){return xe(e,t)}var Xu=null,Zu=null,Qu=!1,$u=!1,ed=!1,td=0;function nd(e){e!==Zu&&e.next===null&&(Zu===null?Xu=Zu=e:Zu=Zu.next=e),$u=!0,Qu||(Qu=!0,ld())}function rd(e,t){if(!ed&&$u){ed=!0;do for(var n=!1,r=Xu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Le(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,cd(r,a))}else a=X,a=Ge(r,r===J?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ke(r,a)||(n=!0,cd(r,a));r=r.next}while(n);ed=!1}}function id(){ad()}function ad(){$u=Qu=!1;var e=0;td!==0&&Gd()&&(e=td);for(var t=Te(),n=null,r=Xu;r!==null;){var i=r.next,a=od(r,t);a===0?(r.next=null,n===null?Xu=i:n.next=i,i===null&&(Zu=n)):(n=r,(e!==0||a&3)&&($u=!0)),r=i}ru!==0&&ru!==5||rd(e,!1),td!==0&&(td=0)}function od(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Rt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),yt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Rt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Rt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Rt(n.imageSizes)+`"]`)):i+=`[href="`+Rt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),yt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Rt(r)+`"][href="`+Rt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),yt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=vt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);yt(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=vt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),yt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=vt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),yt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var a=(a=se.current)?gf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=vt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=vt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=vt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Af(e){return`href="`+Rt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),yt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Rt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Rt(n.href)+`"]`);if(r)return t.instance=r,yt(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),yt(r),Pd(r,`style`,a),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Af(n.href);var o=e.querySelector(jf(a));if(o)return t.state.loading|=4,t.instance=o,yt(o),o;r=Mf(n),(a=mf.get(a))&&Rf(r,a),o=(e.ownerDocument||e).createElement(`link`),yt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(a=e.querySelector(Ff(o)))?(t.instance=a,yt(a),a):(r=n,(a=mf.get(o))&&(r=h({},n),zf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),yt(a),Pd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,yt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),yt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=c(u(),1),v=g(),y=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),b=o(((e,t)=>{t.exports=y()}))(),x={module:`▣`,folder:`▸`,page:`▤`,entity:`▦`,association:`⤝`,microflow:`⚙`,nanoflow:`⚡`,enumeration:`≔`,layout:`◫`,snippet:`⌗`,domainmodel:`◈`,security:`🔒`,projectsecurity:`🔒`,userrole:`○`,modulerole:`○`,navigation:`◮`,settings:`⚙`,javascriptaction:`𝒋`,javaaction:`𝒋`,buildingblock:`▩`,pagetemplate:`▤`,imagecollection:`◲`,constant:`π`},S=e=>x[e]??`·`;function C(e,t,n){return(!n||e.type===`page`)&&(!t||(e.label||e.qualifiedName||``).toLowerCase().includes(t))||(e.children??[]).some(e=>C(e,t,n))}function w({node:e,sweep:t,...n}){let r=e.children??[],[i,a]=(0,_.useState)(e.type!==`module`&&e.type!==`folder`),o=(n.q||n.pagesOnly)&&r.length>0,s=e.qualifiedName?n.hasDetail(e.qualifiedName):!1,c=e.qualifiedName&&e.qualifiedName===n.selected;return(0,_.useEffect)(()=>{t&&a(t.mode===`expand`)},[t]),(n.q||n.pagesOnly)&&!C(e,n.q,n.pagesOnly)?null:(0,b.jsxs)(`li`,{children:[(0,b.jsxs)(`div`,{className:`node`+(c?` selected`:``),onClick:()=>{s?n.onSelect({qn:e.qualifiedName,type:e.type,label:e.label}):r.length&&a(e=>!e)},children:[r.length?(0,b.jsx)(`span`,{className:`twist box`,onClick:e=>{e.stopPropagation(),a(e=>!e)},children:i||o?`−`:`+`}):(0,b.jsx)(`span`,{className:`twist dot`,children:`○`}),(0,b.jsx)(`span`,{className:`t-ico t-${e.type}`,children:S(e.type)}),(0,b.jsx)(`span`,{className:`label`,children:e.label||e.qualifiedName}),r.length>0&&(0,b.jsx)(`span`,{className:`count`,children:r.length})]}),r.length>0&&(i||o)&&(0,b.jsx)(`ul`,{children:r.map((e,r)=>(0,b.jsx)(w,{...n,node:e,sweep:t},e.qualifiedName??e.label+r))})]})}function T(e){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(),a=t.trim().toLowerCase(),o=(0,_.useMemo)(()=>e.tree,[e.tree]);return(0,b.jsxs)(`div`,{className:`tree-wrap`,children:[(0,b.jsx)(`div`,{className:`tree-title`,children:`App Explorer`}),(0,b.jsxs)(`div`,{className:`tree-controls`,children:[(0,b.jsx)(`span`,{className:`tree-find`,children:`🔍`}),(0,b.jsx)(`input`,{type:`search`,placeholder:`Filter`,value:t,onChange:e=>n(e.target.value)}),(0,b.jsx)(`button`,{className:`tree-sweep`,title:`Expand all`,onClick:()=>i(e=>({mode:`expand`,tick:(e?.tick??0)+1})),children:`⊞`}),(0,b.jsx)(`button`,{className:`tree-sweep`,title:`Collapse all`,onClick:()=>i(e=>({mode:`collapse`,tick:(e?.tick??0)+1})),children:`⊟`})]}),(0,b.jsx)(`ul`,{className:`tree`,children:o.map((t,n)=>(0,b.jsx)(w,{...e,node:t,q:a,pagesOnly:!1,sweep:r},t.qualifiedName??t.label+n))})]})}function E(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n{}};function O(){for(var e=0,t=arguments.length,n={},r;e=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}k.prototype=O.prototype={constructor:k,on:function(e,t){var n=this._,r=A(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a0)for(var n=Array(i),r=0,i,a;r=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),ee.hasOwnProperty(t)?{space:ee[t],local:e}:e}function te(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function P(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function F(e){var t=N(e);return(t.local?P:te)(t)}function ne(){}function re(e){return e==null?ne:function(){return this.querySelector(e)}}function ie(e){typeof e!=`function`&&(e=re(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i=v&&(v=_+1);!(b=g[v])&&++v=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function je(e){e||=Me;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function Ne(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Pe(){return Array.from(this)}function Fe(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?qe:typeof t==`function`?Ye:Je)(e,t,n??``)):Ze(this.node(),e)}function Ze(e,t){return e.style.getPropertyValue(t)||Ke(e).getComputedStyle(e,null).getPropertyValue(t)}function Qe(e){return function(){delete this[e]}}function $e(e,t){return function(){this[e]=t}}function et(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function tt(e,t){return arguments.length>1?this.each((t==null?Qe:typeof t==`function`?et:$e)(e,t)):this.node()[e]}function nt(e){return e.trim().split(/^|\s+/)}function rt(e){return e.classList||new it(e)}function it(e){this._node=e,this._names=nt(e.getAttribute(`class`)||``)}it.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function at(e,t){for(var n=rt(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function Pt(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n()=>e;function nn(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}nn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function rn(e){return!e.ctrlKey&&!e.button}function an(){return this.parentNode}function on(e,t){return t??{x:e.x,y:e.y}}function sn(){return navigator.maxTouchPoints||`ontouchstart`in this}function cn(){var e=rn,t=an,n=on,r=sn,i={},a=O(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,Yt).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(Kt(n.view).on(`mousemove.drag`,m,Xt).on(`mouseup.drag`,h,Xt),$t(n.view),Zt(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(Qt(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Kt(e.view).on(`mousemove.drag mouseup.drag`,null),en(e.view,l),Qt(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?jn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?jn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=vn.exec(e))?new Pn(t[1],t[2],t[3],1):(t=yn.exec(e))?new Pn(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=bn.exec(e))?jn(t[1],t[2],t[3],t[4]):(t=xn.exec(e))?jn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Sn.exec(e))?Vn(t[1],t[2]/100,t[3]/100,1):(t=Cn.exec(e))?Vn(t[1],t[2]/100,t[3]/100,t[4]):wn.hasOwnProperty(e)?An(wn[e]):e===`transparent`?new Pn(NaN,NaN,NaN,0):null}function An(e){return new Pn(e>>16&255,e>>8&255,e&255,1)}function jn(e,t,n,r){return r<=0&&(e=t=n=NaN),new Pn(e,t,n,r)}function Mn(e){return e instanceof dn||(e=kn(e)),e?(e=e.rgb(),new Pn(e.r,e.g,e.b,e.opacity)):new Pn}function Nn(e,t,n,r){return arguments.length===1?Mn(e):new Pn(e,t,n,r??1)}function Pn(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}ln(Pn,Nn,un(dn,{brighter(e){return e=e==null?pn:pn**+e,new Pn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?fn:fn**+e,new Pn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Pn(zn(this.r),zn(this.g),zn(this.b),Rn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fn,formatHex:Fn,formatHex8:In,formatRgb:Ln,toString:Ln}));function Fn(){return`#${Bn(this.r)}${Bn(this.g)}${Bn(this.b)}`}function In(){return`#${Bn(this.r)}${Bn(this.g)}${Bn(this.b)}${Bn((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ln(){let e=Rn(this.opacity);return`${e===1?`rgb(`:`rgba(`}${zn(this.r)}, ${zn(this.g)}, ${zn(this.b)}${e===1?`)`:`, ${e})`}`}function Rn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function zn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Bn(e){return e=zn(e),(e<16?`0`:``)+e.toString(16)}function Vn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Wn(e,t,n,r)}function Hn(e){if(e instanceof Wn)return new Wn(e.h,e.s,e.l,e.opacity);if(e instanceof dn||(e=kn(e)),!e)return new Wn;if(e instanceof Wn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new Wn(o,s,c,e.opacity)}function Un(e,t,n,r){return arguments.length===1?Hn(e):new Wn(e,t,n,r??1)}function Wn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ln(Wn,Un,un(dn,{brighter(e){return e=e==null?pn:pn**+e,new Wn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?fn:fn**+e,new Wn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Pn(qn(e>=240?e-240:e+120,i,r),qn(e,i,r),qn(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Wn(Gn(this.h),Kn(this.s),Kn(this.l),Rn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Rn(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Gn(this.h)}, ${Kn(this.s)*100}%, ${Kn(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Gn(e){return e=(e||0)%360,e<0?e+360:e}function Kn(e){return Math.max(0,Math.min(1,e||0))}function qn(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Jn=e=>()=>e;function Yn(e,t){return function(n){return e+n*t}}function Xn(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Zn(e){return(e=+e)==1?Qn:function(t,n){return n-t?Xn(t,n,e):Jn(isNaN(t)?n:t)}}function Qn(e,t){var n=t-e;return n?Yn(e,n):Jn(isNaN(e)?t:e)}var $n=(function e(t){var n=Zn(t);function r(e,t){var r=n((e=Nn(e)).r,(t=Nn(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Qn(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function er(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:ir(r,i)})),n=sr.lastIndex;return n180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:ir(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:ir(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:ir(e,n)},{i:s-2,x:ir(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t=0&&e._call.call(void 0,t),e=e._next;--Er}function Hr(){Nr=(Mr=Fr.now())+Pr,Er=Dr=0;try{Vr()}finally{Er=0,Wr(),Nr=0}}function Ur(){var e=Fr.now(),t=e-Mr;t>kr&&(Pr-=t,Mr=e)}function Wr(){for(var e,t=Ar,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Ar=n);jr=e,Gr(r)}function Gr(e){Er||(Dr&&=clearTimeout(Dr),e-Nr>24?(e<1/0&&(Dr=setTimeout(Hr,e-Fr.now()-Pr)),Or&&=clearInterval(Or)):(Or||=(Mr=Fr.now(),setInterval(Ur,kr)),Er=1,Ir(Hr)))}function Kr(e,t,n){var r=new zr;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var qr=O(`start`,`end`,`cancel`,`interrupt`),Jr=[];function Yr(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;$r(e,n,{name:t,index:r,group:i,on:qr,tween:Jr,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function Xr(e,t){var n=Qr(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function Zr(e,t){var n=Qr(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function Qr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function $r(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Br(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return Kr(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function ti(e){return this.each(function(){ei(this,e)})}function ni(e,t){var n,r;return function(){var i=Zr(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o=0&&(e=e.slice(0,t)),!e||e===`start`})}function Mi(e,t,n){var r,i,a=ji(t)?Xr:Zr;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Ni(e,t){var n=this._id;return arguments.length<2?Qr(this.node(),n).on.on(e):this.each(Mi(n,e,t))}function Pi(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function z(){return this.on(`end.remove`,Pi(this._id))}function Fi(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=re(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o()=>e;function fa(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function pa(e,t,n){this.k=e,this.x=t,this.y=n}pa.prototype={constructor:pa,scale:function(e){return e===1?this:new pa(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new pa(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var ma=new pa(1,0,0);ha.prototype=pa.prototype;function ha(e){for(;!e.__zoom;)if(!(e=e.parentNode))return ma;return e.__zoom}function ga(e){e.stopImmediatePropagation()}function _a(e){e.preventDefault(),e.stopImmediatePropagation()}function va(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function ya(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function ba(){return this.__zoom||ma}function xa(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Sa(){return navigator.maxTouchPoints||`ontouchstart`in this}function Ca(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function wa(){var e=va,t=ya,n=Ca,r=xa,i=Sa,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=Tr,l=O(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,ba).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,k).on(`touchend.zoom touchcancel.zoom`,A).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,ba),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(ma.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new pa(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new pa(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new pa(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=Kt(this.that).datum();l.call(e,this.that,new fa(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=Jt(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],ei(this),s.start();_a(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=Kt(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Jt(t,i),l=t.clientX,u=t.clientY;$t(t.view),ga(t),a.mouse=[c,this.__zoom.invert(c)],ei(this),a.start();function d(e){if(_a(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=Jt(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),en(e.view,a.moved),_a(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Jt(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);_a(r),s>0?Kt(this).transition().duration(s).call(x,d,c,r):Kt(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(ga(t),s=0;s`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Ea=[[-1/0,-1/0],[1/0,1/0]],Da=[`Enter`,` `,`Escape`],Oa={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},ka;(function(e){e.Strict=`strict`,e.Loose=`loose`})(ka||={});var Aa;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Aa||={});var ja;(function(e){e.Partial=`partial`,e.Full=`full`})(ja||={});var Ma={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Na;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Na||={});var Pa;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Pa||={});var B;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(B||={});var Fa={[B.Left]:B.Right,[B.Right]:B.Left,[B.Top]:B.Bottom,[B.Bottom]:B.Top};function Ia(e){return e===null?null:e?`valid`:`invalid`}var La=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Ra=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),za=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Ba=(e,t=[0,0])=>{let{width:n,height:r}=vo(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Va=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:no(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):za(n)?n:t.nodeLookup.get(n.id)),eo(e,i?io(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),Ha=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=eo(n,io(e)),r=!0)}),r?no(n):{x:0,y:0,width:0,height:0}},Ua=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=oo(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},Wa=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function Ga(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=vo(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function Ka({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=ho(Ha(Ga(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function qa({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,Ta.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&_o(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=_o(d)?Xa(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Ta.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function Ja({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=Wa(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var Ya=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Xa=(e={x:0,y:0},t,n)=>({x:Ya(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Ya(e.y,t[0][1],t[1][1]-(n?.height??0))});function Za(e,t,n){let{width:r,height:i}=vo(n),{x:a,y:o}=n.internals.positionAbsolute;return Xa(e,[[a,o],[a+r,o+i]],t)}var Qa=(e,t,n)=>en?-Ya(Math.abs(e-n),1,t)/t:0,$a=(e,t,n=15,r=40)=>[Qa(e.x,r,t.width-r)*n,Qa(e.y,r,t.height-r)*n],eo=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),to=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),no=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),ro=(e,t=[0,0])=>{let{x:n,y:r}=za(e)?e.internals.positionAbsolute:Ba(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},io=(e,t=[0,0])=>{let{x:n,y:r}=za(e)?e.internals.positionAbsolute:Ba(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},ao=(e,t)=>no(eo(to(e),to(t))),oo=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},so=(e,t)=>oo(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),co=e=>V(e.width)&&V(e.height)&&V(e.x)&&V(e.y),V=e=>!isNaN(e)&&isFinite(e),lo=(e,t)=>(e,t)=>{},uo=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),H=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?uo(s,o):s},U=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function fo(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function po(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=fo(e,n),i=fo(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=fo(e.top??e.y??0,n),i=fo(e.bottom??e.y??0,n),a=fo(e.left??e.x??0,t),o=fo(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function mo(e,t,n,r,i,a){let{x:o,y:s}=U(e,[t,n,r]),{x:c,y:l}=U({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var ho=(e,t,n,r,i,a)=>{let o=po(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=Ya(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=mo(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},go=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function _o(e){return e!=null&&e!==`parent`}function vo(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function yo(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function bo(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function xo(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function So(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Co(e){return{...Oa,...e||{}}}function wo(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=W(e),s=H({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?uo(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var To=e=>({width:e.offsetWidth,height:e.offsetHeight}),Eo=e=>e?.getRootNode?.()||window?.document,Do=[`INPUT`,`SELECT`,`TEXTAREA`];function Oo(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Do.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var ko=e=>`clientX`in e,W=(e,t)=>{let n=ko(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Ao=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...To(t)}})};function jo({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Mo(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function No({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case B.Left:return[t-Mo(t-r,a),n];case B.Right:return[t+Mo(r-t,a),n];case B.Top:return[t,n-Mo(n-i,a)];case B.Bottom:return[t,n+Mo(i-n,a)]}}function Po({sourceX:e,sourceY:t,sourcePosition:n=B.Bottom,targetX:r,targetY:i,targetPosition:a=B.Top,curvature:o=.25}){let[s,c]=No({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=No({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=jo({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Fo({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n0}var Ro=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,zo=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),Bo=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,Ta.error006()),t;let r=n.getEdgeId||Ro,i;return i=La(e)?{...e}:{...e,id:r(e)},zo(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))},Vo=(e,t,n,r={shouldReplaceId:!0})=>{let{id:i,...a}=e;if(!t.source||!t.target)return r.onError?.(`006`,Ta.error006()),n;if(!n.find(t=>t.id===e.id))return r.onError?.(`007`,Ta.error007(i)),n;let o=r.getEdgeId||Ro,s={...a,id:r.shouldReplaceId?o(t):i,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle};return n.filter(e=>e.id!==i).concat(s)};function Ho({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Fo({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Uo={[B.Left]:{x:-1,y:0},[B.Right]:{x:1,y:0},[B.Top]:{x:0,y:-1},[B.Bottom]:{x:0,y:1}},Wo=({source:e,sourcePosition:t=B.Bottom,target:n})=>t===B.Left||t===B.Right?e.xMath.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function Ko({source:e,sourcePosition:t=B.Bottom,target:n,targetPosition:r=B.Top,center:i,offset:a,stepPosition:o}){let s=Uo[t],c=Uo[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=Wo({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Fo({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function qo(e,t,n,r){let i=Math.min(Go(e,t)/2,Go(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.xe.id===t):e[0])||null}function es(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function ts(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=es(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var ns=1e3,rs=10,is={nodeOrigin:[0,0],nodeExtent:Ea,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},as={...is,checkEquality:!0};function os(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function ss(e,t,n){let r=os(is,n);for(let n of e.values())if(n.parentId)fs(n,e,t,r);else{let e=Xa(Ba(n,r.nodeOrigin),_o(n.extent)?n.extent:r.nodeExtent,vo(n));n.internals.positionAbsolute=e}}function cs(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function ls(e){return e===`manual`}function us(e,t,n,r={}){let i=os(as,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!ls(i.zIndexMode)?ns:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=Xa(Ba(u,i.nodeOrigin),_o(u.extent)?u.extent:i.nodeExtent,vo(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:cs(u,e),z:ps(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&fs(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function ds(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function fs(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=os(is,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}ds(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*rs),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=ms(e,u,o,s,a&&!ls(c)?ns:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function ps(e,t,n){let r=V(e.zIndex)?e.zIndex:0;return ls(n)?r:r+(e.selected?t:0)}function ms(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=vo(e),l=Ba(e,n),u=_o(e.extent)?Xa(l,e.extent,c):l,d=Xa({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=Za(d,c,t));let f=ps(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function hs(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=ao(a.get(n.parentId)?.expandedRect??ro(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=vo(a),l=a.origin??r,u=t.x0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width0){let e=hs(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function _s({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function vs(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function ys(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;vs(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),vs(`target`,s,c,e,i,o),t.set(r.id,r)}}function bs(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:bs(n,t):!1}function xs(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Ss(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!bs(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Cs({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function ws({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=uo(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Ts({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=Kt(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?to(Ha(s)):null,x=v&&l?ws({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:uo(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=qa({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Cs({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=$a(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=wo(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Ss(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Cs({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=cn().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=wo(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=W(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=wo(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=W(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=W(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Cs({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!xs(t,`.${g}`,v))&&(!_||xs(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Es(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())so(i,ro(e))>0&&r.push(e);return r}var Ds=250;function Os(e,t,n,r){let i=[],a=1/0,o=Es(e,n,t+Ds);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=Qo(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function ks(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...Qo(o,c,c.position,!0)}:c}function As(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function js(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Ms=()=>!0;function Ns(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Ms,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=Eo(e.target),E=0,D,{x:O,y:k}=W(e),A=As(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let ee=ks(i,A,r,c,t);if(!ee)return;let N=W(e,j),te=!1,P=null,F=!1,ne=null;function re(){if(!u||!j)return;let[e,t]=$a(N,j,S);f({x:e,y:t}),E=requestAnimationFrame(re)}let ie={...ee,nodeId:i,type:A,position:ee.position},I=c.get(i),L={inProgress:!0,isValid:null,from:Qo(I,ie,B.Left,!0),fromHandle:ie,fromPosition:ie.position,fromNode:I,to:N,toHandle:null,toPosition:Fa[ie.position],toNode:null,pointer:N};function R(){M=!0,y(L),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&R();function ae(e){if(!M){let{x:t,y:n}=W(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;R()}if(!x()||!ie){oe(e);return}let a=b();N=W(e,j),D=Os(H(N,a,!1,[1,1]),n,c,ie),te||=(re(),!0);let s=Ps(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});ne=s.handleDomNode,P=s.connection,F=js(!!D,s.isValid);let u=c.get(i),f=u?Qo(u,ie,B.Left,!0):L.from,p={...L,from:f,isValid:F,to:s.toHandle&&F?U({x:s.toHandle.x,y:s.toHandle.y},a):N,toHandle:s.toHandle,toPosition:F&&s.toHandle?s.toHandle.position:Fa[ie.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:N};y(p),L=p}function oe(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||ne)&&P&&F&&h?.(P);let{inProgress:t,...n}=L,r={...n,toPosition:L.toHandle?L.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),te=!1,F=!1,P=null,ne=null,T.removeEventListener(`mousemove`,ae),T.removeEventListener(`mouseup`,oe),T.removeEventListener(`touchmove`,ae),T.removeEventListener(`touchend`,oe)}}T.addEventListener(`mousemove`,ae),T.addEventListener(`mouseup`,oe),T.addEventListener(`touchmove`,ae),T.addEventListener(`touchend`,oe)}function Ps(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Ms,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=W(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=As(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===ka.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=ks(t,e,a,u,n,!0)}return _}var Fs={onPointerDown:Ns,isValid:Ps};function Is({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=Kt(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&go()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=wa().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:Jt}}var Ls=e=>({x:e.x,y:e.y,zoom:e.k}),Rs=({x:e,y:t,zoom:n})=>ma.translate(e,t).scale(n),zs=(e,t)=>e.target.closest(`.${t}`),Bs=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Vs=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Hs=(e,t=0,n=Vs,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Us=e=>{let t=e.ctrlKey&&go()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Ws({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(zs(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=Jt(u),t=d*2**Us(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Aa.Vertical?0:u.deltaX*f,m=i===Aa.Horizontal?0:u.deltaY*f;!go()&&u.shiftKey&&i!==Aa.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Ls(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function Gs({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=zs(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function Ks({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Ls(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function qs({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Bs(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Ls(a.transform))}}function Js({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Bs(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Ls(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function Ys({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(zs(d,`${l}-flow__node`)||zs(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||zs(d,s)&&m||zs(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function Xs({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=wa().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=Kt(e).call(f);y({x:i.x,y:i.y,zoom:Ya(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(Us);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?dr:Tr).transform(Hs(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!l.isZoomingOrPanning&&v();let O=i&&!S&&!r;f.clickDistance(D?1/0:!V(E)||E<0?0:E);let k=O?Ws({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):Gs({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,k,{passive:!1});let A=Ks({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,A);let j=qs({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});f.on(`zoom`,j);let M=Js({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,M);let ee=Ys({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});f.filter(ee),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=Rs(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=Rs(e);return await g(n,t),n}function x(e){if(p){let t=Rs(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?ha(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?dr:Tr).scaleTo(Hs(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?dr:Tr).scaleBy(Hs(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!V(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var Zs;(function(e){e.Line=`line`,e.Handle=`handle`})(Zs||={});function Qs({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function $s(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function ec(e,t){return Math.max(0,t-e)}function tc(e,t){return Math.max(0,e-t)}function nc(e,t,n){return Math.max(0,t-e,e-n)}function rc(e,t){return e?!t:t}function ic(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=nc(E,h,g),j=nc(D,_,v);if(o){let e=0,t=0;c&&w<0?e=ec(y+w+O,o[0][0]):!c&&w>0&&(e=tc(y+E+O,o[1][0])),l&&T<0?t=ec(b+T+k,o[0][1]):!l&&T>0&&(t=tc(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=tc(y+w,s[0][0]):!c&&w<0&&(e=ec(y+E,s[1][0])),l&&T>0?t=tc(b+T,s[0][1]):!l&&T<0&&(t=ec(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=nc(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?tc(b+k+E/C,o[1][1])*C:ec(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?ec(b+E/C,s[1][1])*C:tc(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=nc(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?tc(y+D*C+O,o[1][0])/C:ec(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?ec(y+D*C,s[1][0])/C:tc(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(rc(c,l)?-w:w)/C:w=(rc(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,ee=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+ee}}var ac={width:0,height:0,x:0,y:0},oc={...ac,pointerX:0,pointerY:0,aspectRatio:1};function sc(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function cc({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=Kt(e),o={controlDirection:$s(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...ac},h={...oc};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:$s(e)};let g,_=null,v=[],y,b,x,S=!1,C=cn().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=wo(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=_o(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=sc(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=wo(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=ic(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,ee=k!==u&&j,N=A!==f&&M;if(!ee&&!N&&!j&&!M)return;if((ee||N||E[0]===1||E[1]===1)&&(T.x=ee?k:m.x,T.y=N?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var lc=o((e=>{var t=u();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),uc=o(((e,t)=>{t.exports=lc()})),dc=o((e=>{var t=u(),n=uc();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),fc=c(o(((e,t)=>{t.exports=dc()}))(),1),pc=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},mc=e=>e?pc(e):pc,{useDebugValue:hc}=_.default,{useSyncExternalStoreWithSelector:gc}=fc.default,_c=e=>e;function vc(e,t=_c,n){let r=gc(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return hc(r),r}var yc=(e,t)=>{let n=mc(e),r=(e,r=t)=>vc(n,e,r);return Object.assign(r,n),r},bc=(e,t)=>e?yc(e,t):yc;function xc(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}m();var Sc=(0,_.createContext)(null),Cc=Sc.Provider,wc=Ta.error001(`react`);function G(e,t){let n=(0,_.useContext)(Sc);if(n===null)throw Error(wc);return vc(n,e,t)}function Tc(){let e=(0,_.useContext)(Sc);if(e===null)throw Error(wc);return(0,_.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Ec={display:`none`},Dc={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Oc=`react-flow__node-desc`,kc=`react-flow__edge-desc`,Ac=`react-flow__aria-live`,jc=e=>e.ariaLiveMessage,Mc=e=>e.ariaLabelConfig;function Nc({rfId:e}){let t=G(jc);return(0,b.jsx)(`div`,{id:`${Ac}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Dc,children:t})}function Pc({rfId:e,disableKeyboardA11y:t}){let n=G(Mc);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`div`,{id:`${Oc}-${e}`,style:Ec,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,b.jsx)(`div`,{id:`${kc}-${e}`,style:Ec,children:n[`edge.a11yDescription.default`]}),!t&&(0,b.jsx)(Nc,{rfId:e})]})}var Fc=(0,_.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,b.jsx)(`div`,{className:E([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));Fc.displayName=`Panel`;var Ic=`https://reactflow.dev?utm_source=attribution`;function Lc({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,b.jsx)(Fc,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Ic}`,children:(0,b.jsx)(`a`,{href:Ic,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Rc=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},zc=e=>e.id;function Bc(e,t){return xc(e.selectedNodes.map(zc),t.selectedNodes.map(zc))&&xc(e.selectedEdges.map(zc),t.selectedEdges.map(zc))}function Vc({onSelectionChange:e}){let t=Tc(),{selectedNodes:n,selectedEdges:r}=G(Rc,Bc);return(0,_.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Hc=e=>!!e.onSelectionChangeHandlers;function Uc({onSelectionChange:e}){let t=G(Hc);return e||t?(0,b.jsx)(Vc,{onSelectionChange:e}):null}var Wc=[0,0],Gc={x:0,y:0,zoom:1},Kc=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],qc=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Jc={translateExtent:Ea,nodeOrigin:Wc,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function Yc(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=G(qc,xc),l=Tc();(0,_.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=Jc,s()}),[]);let u=(0,_.useRef)(Jc);return(0,_.useEffect)(()=>{for(let s of Kc){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Co(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},Kc.map(t=>e[t])),null}function Xc(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function Zc(e){let[t,n]=(0,_.useState)(e===`system`?null:e);return(0,_.useEffect)(()=>{if(e!==`system`){n(e);return}let t=Xc(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?Xc()?.matches?`dark`:`light`:t}var Qc=typeof document<`u`?document:null;function $c(e=null,t={target:Qc,actInsideInputWithModifier:!0}){let[n,r]=(0,_.useState)(!1),i=(0,_.useRef)(!1),a=(0,_.useRef)(new Set([])),[o,s]=(0,_.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,` -`).replace(` - -`,` -+`).split(` -`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,_.useEffect)(()=>{let n=t?.target??Qc,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&Oo(e))return!1;let n=tl(e.code,s);if(a.current.add(e[n]),el(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=tl(e.code,s);el(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function el(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function tl(e,t){return t.includes(e)?`code`:`key`}var nl=()=>{let e=Tc();return(0,_.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=ho(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return H(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=U(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function rl(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)il(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function il(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing);break}}function al(e,t){return rl(e,t)}function ol(e,t){return rl(e,t)}function K(e,t){return{id:e,type:`select`,selected:t}}function sl(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(K(a.id,e)))}return r}function cl({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function ll(e){return{id:e.id,type:`remove`}}var ul=lo(`React Flow`,`https://reactflow.dev/`);function dl(e,t,n={}){return Bo(e,t,{...n,onError:n.onError??ul})}function fl(e,t,n,r={shouldReplaceId:!0}){return Vo(e,t,n,{...r,onError:r.onError??ul})}var pl=e=>Ra(e),ml=e=>La(e);function hl(e){return(0,_.forwardRef)(e)}var gl=typeof window<`u`?_.useLayoutEffect:_.useEffect;function _l(e){let[t,n]=(0,_.useState)(BigInt(0)),[r]=(0,_.useState)(()=>vl(()=>n(e=>e+BigInt(1))));return gl(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function vl(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var yl=(0,_.createContext)(null);function bl({children:e}){let t=Tc(),n=_l((0,_.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=cl({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=_l((0,_.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(cl({items:s,lookup:o}))},[])),i=(0,_.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,b.jsx)(yl.Provider,{value:i,children:e})}function xl(){let e=(0,_.useContext)(yl);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Sl=e=>!!e.panZoom;function Cl(){let e=nl(),t=Tc(),n=xl(),r=G(Sl),i=(0,_.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=pl(e)?e:n.get(e.id),a=i.parentId?bo(i.position,i.measured,i.parentId,n,r):i.position;return ro({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&pl(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&ml(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await Ja({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(ll);o?.(f),c(e)}if(m){let e=d.map(ll);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=co(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=ro(s?r:a),l=so(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=co(e)?e:a(e);if(!r)return!1;let i=so(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return Va(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??So();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,_.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var wl=e=>e.selected,Tl=typeof window<`u`?window:void 0;function El({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=Tc(),{deleteElements:r}=Cl(),i=$c(e,{actInsideInputWithModifier:!1}),a=$c(t,{target:Tl});(0,_.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(wl),edges:e.filter(wl)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,_.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Dl(e){let t=Tc();(0,_.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=To(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,Ta.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var Ol={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},kl=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Al({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=Aa.Free,zoomOnDoubleClick:o=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:l,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:m,noWheelClassName:h,noPanClassName:g,onViewportChange:v,isControlledViewport:y,paneClickDistance:x,selectionOnDrag:S}){let C=Tc(),w=(0,_.useRef)(null),{userSelectionActive:T,lib:E,connectionInProgress:D}=G(kl,xc),O=$c(f),k=(0,_.useRef)();Dl(w);let A=(0,_.useCallback)(e=>{v?.({x:e[0],y:e[1],zoom:e[2]}),y||C.setState({transform:e})},[v,y]);return(0,_.useEffect)(()=>{if(w.current){k.current=Xs({domNode:w.current,minZoom:u,maxZoom:d,translateExtent:l,viewport:c,onDraggingChange:e=>C.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=C.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=C.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=C.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=k.current.getViewport();return C.setState({panZoom:k.current,transform:[e,t,n],domNode:w.current.closest(`.react-flow`)}),()=>{k.current?.destroy()}}},[]),(0,_.useEffect)(()=>{k.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:o,panOnDrag:s,zoomActivationKeyPressed:O,preventScrolling:p,noPanClassName:g,userSelectionActive:T,noWheelClassName:h,lib:E,onTransformChange:A,connectionInProgress:D,selectionOnDrag:S,paneClickDistance:x})},[e,t,n,r,i,a,o,s,O,p,g,T,h,E,A,D,S,x]),(0,b.jsx)(`div`,{className:`react-flow__renderer`,ref:w,style:Ol,children:m})}var jl=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Ml(){let{userSelectionActive:e,userSelectionRect:t}=G(jl,xc);return e&&t?(0,b.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var Nl=(e,t)=>n=>{n.target===t.current&&e?.(n)},Pl=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Fl({isSelecting:e,selectionKeyPressed:t,selectionMode:n=ja.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,_.useRef)(0),v=Tc(),{userSelectionActive:y,elementsSelectable:x,dragging:S,panBy:C,autoPanSpeed:w}=G(Pl,xc),T=x&&(e||y),D=(0,_.useRef)(null),O=(0,_.useRef)(),k=(0,_.useRef)(new Set),A=(0,_.useRef)(new Set),j=(0,_.useRef)(!1),M=(0,_.useRef)(!1),ee=(0,_.useRef)({x:0,y:0}),N=(0,_.useRef)(!1),te=e=>{if(M.current||j.current||v.getState().connection.inProgress){M.current=!1,j.current=!1;return}l?.(e),v.getState().resetSelectedElements(),v.setState({nodesSelectionActive:!1})},P=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},F=d?e=>d(e):void 0,ne=e=>{M.current&&=(e.stopPropagation(),!1)},re=n=>{let{domNode:r,transform:i}=v.getState();if(O.current=r?.getBoundingClientRect(),!O.current)return;let a=n.target===D.current;if(!a&&n.target.closest(`.nokey`)||!e||!(o&&a||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),M.current=!1;let{x:s,y:c}=W(n.nativeEvent,O.current),l=H({x:s,y:c},i);v.setState({userSelectionRect:{width:0,height:0,startX:l.x,startY:l.y,x:s,y:c}}),a||(n.stopPropagation(),n.preventDefault())};function ie(e,t){let{userSelectionRect:r}=v.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=v.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=U(d,i),m={startX:d.x,startY:d.y,x:ee.id)),A.current=new Set;let _=u?.selectable??!0;for(let e of k.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??_)&&A.current.add(e)}}xo(h,k.current)||c(sl(a,k.current,!0)),xo(g,A.current)||l(sl(o,A.current)),v.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function I(){if(!i||!O.current)return;let[e,t]=$a(ee.current,O.current,w);C({x:e,y:t}).then(e=>{if(!M.current||!e){g.current=requestAnimationFrame(I);return}let{x:t,y:n}=ee.current;ie(t,n),g.current=requestAnimationFrame(I)})}let L=()=>{cancelAnimationFrame(g.current),g.current=0,N.current=!1};return(0,_.useEffect)(()=>()=>L(),[]),(0,b.jsxs)(`div`,{className:E([`react-flow__pane`,{draggable:r===!0||Array.isArray(r)&&r.includes(0),dragging:S,selection:e}]),onClick:T?void 0:Nl(te,D),onContextMenu:Nl(P,D),onWheel:Nl(F,D),onPointerEnter:T?void 0:f,onPointerMove:T?e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=v.getState();if(!O.current||!n)return;let{x:o,y:c}=W(e.nativeEvent,O.current);ee.current={x:o,y:c};let l=U({x:n.startX,y:n.startY},r);if(!M.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}M.current=!0,N.current||=(I(),!0),ie(o,c)}:p,onPointerUp:e=>{if(!T){e.target===D.current&&v.getState().connection.inProgress&&(j.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!y&&e.target===D.current&&v.getState().userSelectionRect&&te?.(e),v.setState({userSelectionActive:!1,userSelectionRect:null}),M.current&&(c?.(e),v.setState({nodesSelectionActive:k.current.size>0})),L())},onPointerCancel:T?e=>{e.target?.releasePointerCapture?.(e.pointerId),L()}:void 0,onPointerDownCapture:T?re:void 0,onClickCapture:T?ne:void 0,onPointerLeave:m,ref:D,style:Ol,children:[h,(0,b.jsx)(Ml,{})]})}function Il({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,Ta.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Ll({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=Tc(),[c,l]=(0,_.useState)(!1),u=(0,_.useRef)();return(0,_.useEffect)(()=>{if(!t)return u.current=Ts({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Il({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,_.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var q=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function J(){let e=Tc();return(0,_.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=q(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=uo(t,i));let{position:a,positionAbsolute:s}=qa({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var Y=(0,_.createContext)(null),X=Y.Provider;Y.Consumer;var Z=()=>(0,_.useContext)(Y),Rl=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),zl=(0,_.createContext)(null);function Bl({children:e}){let t=G(Rl,xc);return(0,b.jsx)(zl.Provider,{value:t,children:e})}function Vl(){let e=(0,_.useContext)(zl);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var Hl={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},Ul=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return Hl;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===ka.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function Wl({type:e=`source`,position:t=B.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=Tc(),_=Z(),{connectOnClick:v,noPanClassName:y,rfId:x}=Vl(),{connectingFrom:S,connectingTo:C,clickConnecting:w,isPossibleEndHandle:T,connectionInProcess:D,clickConnectionInProcess:O,valid:k}=G(Ul(_,m,e),xc);_||g.getState().onError?.(`010`,Ta.error010());let A=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(dl(i,e,{onError:n}))}n?.(i),s?.(i)},j=e=>{if(!_)return;let t=ko(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Fs.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:A,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,b.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${x}-${_}-${m}-${e}`,className:E([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:w,connectingfrom:S,connectingto:C,valid:k,connectionindicator:r&&(!D||T)&&(D||O?a:i)}]),onMouseDown:j,onTouchStart:j,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=Eo(t.target),h=n||c,{connection:v,isValid:y}=Fs.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&A(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var Gl=(0,_.memo)(hl(Wl));function Kl({data:e,isConnectable:t,sourcePosition:n=B.Bottom}){return(0,b.jsxs)(b.Fragment,{children:[e?.label,(0,b.jsx)(Gl,{type:`source`,position:n,isConnectable:t})]})}function ql({data:e,isConnectable:t,targetPosition:n=B.Top,sourcePosition:r=B.Bottom}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Gl,{type:`target`,position:n,isConnectable:t}),e?.label,(0,b.jsx)(Gl,{type:`source`,position:r,isConnectable:t})]})}function Jl(){return null}function Yl({data:e,isConnectable:t,targetPosition:n=B.Top}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Gl,{type:`target`,position:n,isConnectable:t}),e?.label]})}var Xl={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Zl={input:Kl,default:ql,output:Yl,group:Jl};function Ql(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var $l=e=>{let{width:t,height:n,x:r,y:i}=Ha(e.nodeLookup,{filter:e=>!!e.selected});return{width:V(t)?t:null,height:V(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function eu({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=Tc(),{width:i,height:a,transformString:o,userSelectionActive:s}=G($l,xc),c=J(),l=(0,_.useRef)(null);(0,_.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Ll({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,b.jsx)(`div`,{className:E([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,b.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(Xl,e.key)&&(e.preventDefault(),c({direction:Xl[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var tu=typeof window<`u`?window:void 0,nu=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function ru({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:x,panOnScrollSpeed:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:T,autoPanOnSelection:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,onSelectionContextMenu:M,noWheelClassName:ee,noPanClassName:N,disableKeyboardA11y:te,onViewportChange:P,isControlledViewport:F}){let{nodesSelectionActive:ne,userSelectionActive:re}=G(nu,xc),ie=$c(l,{target:tu}),I=$c(h,{target:tu}),L=I||T,R=I||x,ae=u&&L!==!0,oe=ie||re||ae;return El({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,b.jsx)(Al,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:R,panOnScrollSpeed:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:!ie&&L,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,zoomActivationKeyCode:g,preventScrolling:j,noWheelClassName:ee,noPanClassName:N,onViewportChange:P,isControlledViewport:F,paneClickDistance:s,selectionOnDrag:ae,children:(0,b.jsxs)(Fl,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:L,autoPanOnSelection:E,isSelecting:!!oe,selectionMode:d,selectionKeyPressed:ie,paneClickDistance:s,selectionOnDrag:ae,children:[e,ne&&(0,b.jsx)(eu,{onSelectionContextMenu:M,noPanClassName:N,disableKeyboardA11y:te})]})})}ru.displayName=`FlowRenderer`;var iu=(0,_.memo)(ru),au=e=>t=>e?Ua(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function ou(e){return G((0,_.useCallback)(au(e),[e]),xc)}var su=e=>e.updateNodeInternals;function cu(){let e=G(su),[t]=(0,_.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,_.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function lu({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=Tc(),a=(0,_.useRef)(null),o=(0,_.useRef)(null),s=(0,_.useRef)(e.sourcePosition),c=(0,_.useRef)(e.targetPosition),l=(0,_.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,_.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,_.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,_.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function uu({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:x,isParent:S}=G(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},xc),C=y.type||`default`,w=g?.[C]||Zl[C];w===void 0&&(v?.(`003`,Ta.error003(C)),C=`default`,w=g?.default||Zl.default);let T=!!(y.draggable||s&&y.draggable===void 0),D=!!(y.selectable||c&&y.selectable===void 0),O=!!(y.connectable||l&&y.connectable===void 0),k=!!(y.focusable||u&&y.focusable===void 0),A=Tc(),j=yo(y),M=lu({node:y,nodeType:C,hasDimensions:j,resizeObserver:d}),ee=Ll({nodeRef:M,disabled:y.hidden||!T,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:D,nodeClickDistance:_}),N=J();if(y.hidden)return null;let te=vo(y),P=Ql(y),F=D||T||t||n||r||i,ne=n?e=>n(e,{...x.userNode}):void 0,re=r?e=>r(e,{...x.userNode}):void 0,ie=i?e=>i(e,{...x.userNode}):void 0,I=a?e=>a(e,{...x.userNode}):void 0,L=o?e=>o(e,{...x.userNode}):void 0,R=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=A.getState();D&&(!r||!T||i>0)&&Il({id:e,store:A,nodeRef:M}),t&&t(n,{...x.userNode})},ae=t=>{if(!(Oo(t.nativeEvent)||m)){if(Da.includes(t.key)&&D){let n=t.key===`Escape`;Il({id:e,store:A,unselect:n,nodeRef:M})}else if(T&&y.selected&&Object.prototype.hasOwnProperty.call(Xl,t.key)){t.preventDefault();let{ariaLabelConfig:e}=A.getState();A.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~x.positionAbsolute.x,y:~~x.positionAbsolute.y})}),N({direction:Xl[t.key],factor:t.shiftKey?4:1})}}},oe=()=>{if(m||!M.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=A.getState();i&&(Ua(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+te.width/2,y.position.y+te.height/2,{zoom:t[2]}))};return(0,b.jsx)(`div`,{className:E([`react-flow__node`,`react-flow__node-${C}`,{[p]:T},y.className,{selected:y.selected,selectable:D,parent:S,draggable:T,dragging:ee}]),ref:M,style:{zIndex:x.z,transform:`translate(${x.positionAbsolute.x}px,${x.positionAbsolute.y}px)`,pointerEvents:F?`all`:`none`,visibility:j?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:ne,onMouseMove:re,onMouseLeave:ie,onContextMenu:I,onClick:R,onDoubleClick:L,onKeyDown:k?ae:void 0,tabIndex:k?0:void 0,onFocus:k?oe:void 0,role:y.ariaRole??(k?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Oc}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,b.jsx)(X,{value:e,children:(0,b.jsx)(w,{id:e,data:y.data,type:C,positionAbsoluteX:x.positionAbsolute.x,positionAbsoluteY:x.positionAbsolute.y,selected:y.selected??!1,selectable:D,draggable:T,deletable:y.deletable??!0,isConnectable:O,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:ee,dragHandle:y.dragHandle,zIndex:x.z,parentId:y.parentId,...te})})})}var du=(0,_.memo)(uu),fu=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function pu(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=G(fu,xc),a=ou(e.onlyRenderVisibleElements),o=cu();return(0,b.jsx)(`div`,{className:`react-flow__nodes`,style:Ol,children:a.map(a=>(0,b.jsx)(du,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}pu.displayName=`NodeRenderer`;var mu=(0,_.memo)(pu);function hu(e){return G((0,_.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&Lo({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),xc)}var gu=({color:e=`none`,strokeWidth:t=1})=>(0,b.jsx)(`polyline`,{className:`arrow`,style:{strokeWidth:t,...e&&{stroke:e}},strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`}),_u=({color:e=`none`,strokeWidth:t=1})=>(0,b.jsx)(`polyline`,{className:`arrowclosed`,style:{strokeWidth:t,...e&&{stroke:e,fill:e}},strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`}),vu={[Pa.Arrow]:gu,[Pa.ArrowClosed]:_u};function yu(e){let t=Tc();return(0,_.useMemo)(()=>Object.prototype.hasOwnProperty.call(vu,e)?vu[e]:(t.getState().onError?.(`009`,Ta.error009(e)),null),[e])}var bu=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=yu(t);return c?(0,b.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,b.jsx)(c,{color:n,strokeWidth:o})}):null},xu=({defaultColor:e,rfId:t})=>{let n=G(e=>e.edges),r=G(e=>e.defaultEdgeOptions),i=(0,_.useMemo)(()=>ts(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,b.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,b.jsx)(`defs`,{children:i.map(e=>(0,b.jsx)(bu,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};xu.displayName=`MarkerDefinitions`;var Su=(0,_.memo)(xu);function Cu({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,_.useState)({x:1,y:0,width:0,height:0}),p=E([`react-flow__edge-textwrapper`,l]),m=(0,_.useRef)(null);return(0,_.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,b.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,b.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,b.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}Cu.displayName=`EdgeText`;var wu=(0,_.memo)(Cu);function Tu({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`path`,{...u,d:e,fill:`none`,className:E([`react-flow__edge-path`,u.className])}),l?(0,b.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&V(t)&&V(n)?(0,b.jsx)(wu,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Eu({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===B.Left||e===B.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Du({sourceX:e,sourceY:t,sourcePosition:n=B.Bottom,targetX:r,targetY:i,targetPosition:a=B.Top}){let[o,s]=Eu({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Eu({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=jo({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function Ou(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,x]=Du({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s});return(0,b.jsx)(Tu,{id:e.isInternal?void 0:t,path:v,labelX:y,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var ku=Ou({isInternal:!1}),Au=Ou({isInternal:!0});ku.displayName=`SimpleBezierEdge`,Au.displayName=`SimpleBezierEdgeInternal`;function ju(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=B.Bottom,targetPosition:m=B.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,x,S]=Jo({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition});return(0,b.jsx)(Tu,{id:e.isInternal?void 0:t,path:y,labelX:x,labelY:S,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Mu=ju({isInternal:!1}),Nu=ju({isInternal:!0});Mu.displayName=`SmoothStepEdge`,Nu.displayName=`SmoothStepEdgeInternal`;function Pu(e){return(0,_.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,b.jsx)(Mu,{...n,id:r,pathOptions:(0,_.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Fu=Pu({isInternal:!1}),Iu=Pu({isInternal:!0});Fu.displayName=`StepEdge`,Iu.displayName=`StepEdgeInternal`;function Lu(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=Ho({sourceX:n,sourceY:r,targetX:i,targetY:a});return(0,b.jsx)(Tu,{id:e.isInternal?void 0:t,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var Ru=Lu({isInternal:!1}),zu=Lu({isInternal:!0});Ru.displayName=`StraightEdge`,zu.displayName=`StraightEdgeInternal`;function Bu(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=B.Bottom,targetPosition:s=B.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,x,S]=Po({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature});return(0,b.jsx)(Tu,{id:e.isInternal?void 0:t,path:y,labelX:x,labelY:S,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var Vu=Bu({isInternal:!1}),Hu=Bu({isInternal:!0});Vu.displayName=`BezierEdge`,Hu.displayName=`BezierEdgeInternal`;var Uu={default:Hu,straight:zu,step:Iu,smoothstep:Nu,simplebezier:Au},Q={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},Wu=(e,t,n)=>n===B.Left?e-t:n===B.Right?e+t:e,Gu=(e,t,n)=>n===B.Top?e-t:n===B.Bottom?e+t:e,Ku=`react-flow__edgeupdater`;function qu({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,b.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:E([Ku,`${Ku}-${s}`]),cx:Wu(t,r,e),cy:Gu(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function Ju({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=Tc(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;Fs.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,b.jsxs)(b.Fragment,{children:[(e===!0||e===`source`)&&(0,b.jsx)(qu,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,b.jsx)(qu,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function Yu({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:v,disableKeyboardA11y:y}){let x=G(t=>t.edgeLookup.get(e)),S=G(e=>e.defaultEdgeOptions);x=S?{...S,...x}:x;let C=x.type||`default`,w=h?.[C]||Uu[C];w===void 0&&(v?.(`011`,Ta.error011(C)),C=`default`,w=h?.default||Uu.default);let T=!!(x.focusable||t&&x.focusable===void 0),D=d!==void 0&&(x.reconnectable||n&&x.reconnectable===void 0),O=!!(x.selectable||r&&x.selectable===void 0),k=(0,_.useRef)(null),[A,j]=(0,_.useState)(!1),[M,ee]=(0,_.useState)(!1),N=Tc(),{zIndex:te=x.zIndex,sourceX:P,sourceY:F,targetX:ne,targetY:re,sourcePosition:ie,targetPosition:I}=G((0,_.useCallback)(t=>{let n=t.nodeLookup.get(x.source),r=t.nodeLookup.get(x.target);if(!n||!r)return Q;let i=Xo({id:e,sourceNode:n,targetNode:r,sourceHandle:x.sourceHandle||null,targetHandle:x.targetHandle||null,connectionMode:t.connectionMode,onError:v}),a=Io({selected:x.selected,zIndex:x.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||Q,zIndex:a}},[x.source,x.target,x.sourceHandle,x.targetHandle,x.selected,x.zIndex]),xc),L=(0,_.useMemo)(()=>x.markerStart?`url('#${es(x.markerStart,m)}')`:void 0,[x.markerStart,m]),R=(0,_.useMemo)(()=>x.markerEnd?`url('#${es(x.markerEnd,m)}')`:void 0,[x.markerEnd,m]);if(x.hidden||P===null||F===null||ne===null||re===null)return null;let ae=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=N.getState();O&&(N.setState({nodesSelectionActive:!1}),x.selected&&a?(r({nodes:[],edges:[x]}),k.current?.blur()):n([e])),i&&i(t,x)},oe=a?e=>{a(e,{...x})}:void 0,se=o?e=>{o(e,{...x})}:void 0,ce=s?e=>{s(e,{...x})}:void 0,le=c?e=>{c(e,{...x})}:void 0,ue=l?e=>{l(e,{...x})}:void 0;return(0,b.jsx)(`svg`,{style:{zIndex:te},children:(0,b.jsxs)(`g`,{className:E([`react-flow__edge`,`react-flow__edge-${C}`,x.className,g,{selected:x.selected,animated:x.animated,inactive:!O&&!i,updating:A,selectable:O}]),onClick:ae,onDoubleClick:oe,onContextMenu:se,onMouseEnter:ce,onMouseMove:le,onMouseLeave:ue,onKeyDown:T?t=>{if(!y&&Da.includes(t.key)&&O){let{unselectNodesAndEdges:n,addSelectedEdges:r}=N.getState();t.key===`Escape`?(k.current?.blur(),n({edges:[x]})):r([e])}}:void 0,tabIndex:T?0:void 0,role:x.ariaRole??(T?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":x.ariaLabel===null?void 0:x.ariaLabel||`Edge from ${x.source} to ${x.target}`,"aria-describedby":T?`${kc}-${m}`:void 0,ref:k,...x.domAttributes,children:[!M&&(0,b.jsx)(w,{id:e,source:x.source,target:x.target,type:x.type,selected:x.selected,animated:x.animated,selectable:O,deletable:x.deletable??!0,label:x.label,labelStyle:x.labelStyle,labelShowBg:x.labelShowBg,labelBgStyle:x.labelBgStyle,labelBgPadding:x.labelBgPadding,labelBgBorderRadius:x.labelBgBorderRadius,sourceX:P,sourceY:F,targetX:ne,targetY:re,sourcePosition:ie,targetPosition:I,data:x.data,style:x.style,sourceHandleId:x.sourceHandle,targetHandleId:x.targetHandle,markerStart:L,markerEnd:R,pathOptions:`pathOptions`in x?x.pathOptions:void 0,interactionWidth:x.interactionWidth}),D&&(0,b.jsx)(Ju,{edge:x,isReconnectable:D,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:P,sourceY:F,targetX:ne,targetY:re,sourcePosition:ie,targetPosition:I,setUpdateHover:j,setReconnecting:ee})]})})}var Xu=(0,_.memo)(Yu),Zu=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Qu({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=G(Zu,xc),x=hu(t);return(0,b.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,b.jsx)(Su,{defaultColor:e,rfId:n}),x.map(e=>(0,b.jsx)(Xu,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}Qu.displayName=`EdgeRenderer`;var $u=(0,_.memo)(Qu),ed=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function td({children:e}){let t=Tc(),n=(0,_.useRef)(null),[r]=(0,_.useState)(()=>t.getState().transform);return gl(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=ed(r)))};return r(),t.subscribe(r)},[t]),(0,b.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:ed(r)},children:e})}function nd(e){let t=Cl(),n=(0,_.useRef)(!1);(0,_.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var rd=e=>e.panZoom?.syncViewport;function id(e){let t=G(rd),n=Tc();return(0,_.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function ad(e){return e.connection.inProgress?{...e.connection,to:H(e.connection.to,e.transform)}:{...e.connection}}function od(e){return e?t=>e(ad(t)):ad}function sd(e){return G(od(e),xc)}var cd=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function ld({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=G(cd,xc);return a&&i&&c?(0,b.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,b.jsx)(`g`,{className:E([`react-flow__connection`,Ia(s)]),children:(0,b.jsx)(ud,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var ud=({style:e,type:t=Na.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=sd();if(!i)return;if(n)return(0,b.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Ia(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case Na.Bezier:[m]=Po(h);break;case Na.SimpleBezier:[m]=Du(h);break;case Na.Step:[m]=Jo({...h,borderRadius:0});break;case Na.SmoothStep:[m]=Jo(h);break;default:[m]=Ho(h)}return(0,b.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};ud.displayName=`ConnectionLine`;var dd={};function fd(e=dd){(0,_.useRef)(e),Tc(),(0,_.useEffect)(()=>{},[e])}function pd(){Tc(),(0,_.useRef)(!1),(0,_.useEffect)(()=>{},[])}function md({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:x,multiSelectionKeyCode:S,panActivationKeyCode:C,zoomActivationKeyCode:w,deleteKeyCode:T,onlyRenderVisibleElements:E,elementsSelectable:D,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,preventScrolling:M,defaultMarkerColor:ee,zoomOnScroll:N,zoomOnPinch:te,panOnScroll:P,panOnScrollSpeed:F,panOnScrollMode:ne,zoomOnDoubleClick:re,panOnDrag:ie,autoPanOnSelection:I,onPaneClick:L,onPaneMouseEnter:R,onPaneMouseMove:ae,onPaneMouseLeave:oe,onPaneScroll:se,onPaneContextMenu:ce,paneClickDistance:le,nodeClickDistance:ue,onEdgeContextMenu:de,onEdgeMouseEnter:fe,onEdgeMouseMove:pe,onEdgeMouseLeave:me,reconnectRadius:he,onReconnect:ge,onReconnectStart:_e,onReconnectEnd:ve,noDragClassName:ye,noWheelClassName:be,noPanClassName:xe,disableKeyboardA11y:Se,nodeExtent:Ce,rfId:we,viewport:Te,onViewportChange:Ee,nodesDraggable:De}){return fd(e),fd(t),pd(),nd(n),id(Te),(0,b.jsx)(iu,{onPaneClick:L,onPaneMouseEnter:R,onPaneMouseMove:ae,onPaneMouseLeave:oe,onPaneContextMenu:ce,onPaneScroll:se,paneClickDistance:le,deleteKeyCode:T,selectionKeyCode:v,selectionOnDrag:y,selectionMode:x,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:S,panActivationKeyCode:C,zoomActivationKeyCode:w,elementsSelectable:D,zoomOnScroll:N,zoomOnPinch:te,zoomOnDoubleClick:re,panOnScroll:P,panOnScrollSpeed:F,panOnScrollMode:ne,panOnDrag:ie,autoPanOnSelection:I,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,onSelectionContextMenu:d,preventScrolling:M,noDragClassName:ye,noWheelClassName:be,noPanClassName:xe,disableKeyboardA11y:Se,onViewportChange:Ee,isControlledViewport:!!Te,children:(0,b.jsxs)(td,{children:[(0,b.jsx)($u,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ge,onReconnectStart:_e,onReconnectEnd:ve,onlyRenderVisibleElements:E,onEdgeContextMenu:de,onEdgeMouseEnter:fe,onEdgeMouseMove:pe,onEdgeMouseLeave:me,reconnectRadius:he,defaultMarkerColor:ee,noPanClassName:xe,disableKeyboardA11y:Se,rfId:we}),(0,b.jsx)(ld,{style:h,type:m,component:g,containerStyle:_}),(0,b.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,b.jsx)(mu,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:ue,onlyRenderVisibleElements:E,noPanClassName:xe,noDragClassName:ye,disableKeyboardA11y:Se,nodeExtent:Ce,rfId:we,nodesDraggable:De}),(0,b.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}md.displayName=`GraphView`;var hd=(0,_.memo)(md),gd=lo(`React Flow`,`https://reactflow.dev/`),_d=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??Ea;ys(h,g,_);let{nodesInitialized:x}=us(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=ho(Ha(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:Ea,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:ka.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Ma},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:gd,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:Oa,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},vd=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>bc((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await Ka({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{..._d({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:o,nodesSelectionActive:s}=m(),{nodesInitialized:c,hasSelectedNodes:l}=us(e,t,n,{nodeOrigin:r,nodeExtent:d,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:o}),u=s&&l;a&&c?(h(),p({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:u})):p({nodes:e,nodesInitialized:c,nodesSelectionActive:u})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();ys(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=gs(e,n,r,i,a,o,l);d&&(ss(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=Qo(e,o.fromHandle,B.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=hs(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(al(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(ol(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>K(e,!0)));return}i(sl(r,new Set([...e]),!0)),a(sl(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>K(e,!0)));return}a(sl(n,new Set([...e]))),i(sl(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(K(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(K(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,K(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,K(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();e[0][0]===o[0][0]&&e[0][1]===o[0][1]&&e[1][0]===o[1][0]&&e[1][1]===o[1][1]||(us(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return _s({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...Ma}})},updateConnection:e=>{p({connection:e})},reset:()=>p({..._d()})}},Object.is);function $({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,_.useState)(()=>vd({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,b.jsx)(Cc,{value:m,children:(0,b.jsx)(bl,{children:(0,b.jsx)(Bl,{children:p})})})}function yd({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,_.useContext)(Sc)?(0,b.jsx)(b.Fragment,{children:e}):(0,b.jsx)($,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var bd={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function xd({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:v,onNodeMouseEnter:y,onNodeMouseMove:x,onNodeMouseLeave:S,onNodeContextMenu:C,onNodeDoubleClick:w,onNodeDragStart:T,onNodeDrag:D,onNodeDragStop:O,onNodesDelete:k,onEdgesDelete:A,onDelete:j,onSelectionChange:M,onSelectionDragStart:ee,onSelectionDrag:N,onSelectionDragStop:te,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:ne,onBeforeDelete:re,connectionMode:ie,connectionLineType:I=Na.Bezier,connectionLineStyle:L,connectionLineComponent:R,connectionLineContainerStyle:ae,deleteKeyCode:oe=`Backspace`,selectionKeyCode:se=`Shift`,selectionOnDrag:ce=!1,selectionMode:le=ja.Full,panActivationKeyCode:ue=`Space`,multiSelectionKeyCode:de=go()?`Meta`:`Control`,zoomActivationKeyCode:fe=go()?`Meta`:`Control`,snapToGrid:pe,snapGrid:me,onlyRenderVisibleElements:he=!1,selectNodesOnDrag:ge,nodesDraggable:_e,autoPanOnNodeFocus:ve,nodesConnectable:ye,nodesFocusable:be,nodeOrigin:xe=Wc,edgesFocusable:Se,edgesReconnectable:Ce,elementsSelectable:we=!0,defaultViewport:Te=Gc,minZoom:Ee=.5,maxZoom:De=2,translateExtent:Oe=Ea,preventScrolling:ke=!0,nodeExtent:Ae,defaultMarkerColor:je=`#b1b1b7`,zoomOnScroll:Me=!0,zoomOnPinch:Ne=!0,panOnScroll:Pe=!1,panOnScrollSpeed:Fe=.5,panOnScrollMode:Ie=Aa.Free,zoomOnDoubleClick:Le=!0,panOnDrag:Re=!0,onPaneClick:ze,onPaneMouseEnter:Be,onPaneMouseMove:Ve,onPaneMouseLeave:He,onPaneScroll:Ue,onPaneContextMenu:We,paneClickDistance:Ge=1,nodeClickDistance:Ke=0,children:qe,onReconnect:Je,onReconnectStart:Ye,onReconnectEnd:Xe,onEdgeContextMenu:Ze,onEdgeDoubleClick:Qe,onEdgeMouseEnter:$e,onEdgeMouseMove:et,onEdgeMouseLeave:tt,reconnectRadius:nt=10,onNodesChange:rt,onEdgesChange:it,noDragClassName:at=`nodrag`,noWheelClassName:ot=`nowheel`,noPanClassName:st=`nopan`,fitView:ct,fitViewOptions:lt,connectOnClick:ut,attributionPosition:dt,proOptions:ft,defaultEdgeOptions:pt,elevateNodesOnSelect:mt=!0,elevateEdgesOnSelect:ht=!1,disableKeyboardA11y:gt=!1,autoPanOnConnect:_t,autoPanOnNodeDrag:vt,autoPanOnSelection:yt=!0,autoPanSpeed:bt,connectionRadius:xt,isValidConnection:St,onError:Ct,style:wt,id:Tt,nodeDragThreshold:Et,connectionDragThreshold:Dt,viewport:Ot,onViewportChange:kt,width:At,height:jt,colorMode:Mt=`light`,debug:Nt,onScroll:Pt,ariaLabelConfig:Ft,zIndexMode:It=`basic`,...Lt},Rt){let zt=Tt||`1`,Bt=Zc(Mt),Vt=(0,_.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Pt?.(e)},[Pt]);return(0,b.jsx)(`div`,{"data-testid":`rf__wrapper`,...Lt,onScroll:Vt,style:{...wt,...bd},ref:Rt,className:E([`react-flow`,i,Bt]),id:Tt,role:`application`,children:(0,b.jsxs)(yd,{nodes:e,edges:t,width:At,height:jt,fitView:ct,fitViewOptions:lt,minZoom:Ee,maxZoom:De,nodeOrigin:xe,nodeExtent:Ae,zIndexMode:It,children:[(0,b.jsx)(Yc,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:v,nodesDraggable:_e,autoPanOnNodeFocus:ve,nodesConnectable:ye,nodesFocusable:be,edgesFocusable:Se,edgesReconnectable:Ce,elementsSelectable:we,elevateNodesOnSelect:mt,elevateEdgesOnSelect:ht,minZoom:Ee,maxZoom:De,nodeExtent:Ae,onNodesChange:rt,onEdgesChange:it,snapToGrid:pe,snapGrid:me,connectionMode:ie,translateExtent:Oe,connectOnClick:ut,defaultEdgeOptions:pt,fitView:ct,fitViewOptions:lt,onNodesDelete:k,onEdgesDelete:A,onDelete:j,onNodeDragStart:T,onNodeDrag:D,onNodeDragStop:O,onSelectionDrag:N,onSelectionDragStart:ee,onSelectionDragStop:te,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:st,nodeOrigin:xe,rfId:zt,autoPanOnConnect:_t,autoPanOnNodeDrag:vt,autoPanSpeed:bt,onError:Ct,connectionRadius:xt,isValidConnection:St,selectNodesOnDrag:ge,nodeDragThreshold:Et,connectionDragThreshold:Dt,onBeforeDelete:re,debug:Nt,ariaLabelConfig:Ft,zIndexMode:It}),(0,b.jsx)(hd,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:y,onNodeMouseMove:x,onNodeMouseLeave:S,onNodeContextMenu:C,onNodeDoubleClick:w,nodeTypes:a,edgeTypes:o,connectionLineType:I,connectionLineStyle:L,connectionLineComponent:R,connectionLineContainerStyle:ae,selectionKeyCode:se,selectionOnDrag:ce,selectionMode:le,deleteKeyCode:oe,multiSelectionKeyCode:de,panActivationKeyCode:ue,zoomActivationKeyCode:fe,onlyRenderVisibleElements:he,defaultViewport:Te,translateExtent:Oe,minZoom:Ee,maxZoom:De,preventScrolling:ke,zoomOnScroll:Me,zoomOnPinch:Ne,zoomOnDoubleClick:Le,panOnScroll:Pe,panOnScrollSpeed:Fe,panOnScrollMode:Ie,panOnDrag:Re,autoPanOnSelection:yt,onPaneClick:ze,onPaneMouseEnter:Be,onPaneMouseMove:Ve,onPaneMouseLeave:He,onPaneScroll:Ue,onPaneContextMenu:We,paneClickDistance:Ge,nodeClickDistance:Ke,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:ne,onReconnect:Je,onReconnectStart:Ye,onReconnectEnd:Xe,onEdgeContextMenu:Ze,onEdgeDoubleClick:Qe,onEdgeMouseEnter:$e,onEdgeMouseMove:et,onEdgeMouseLeave:tt,reconnectRadius:nt,defaultMarkerColor:je,noDragClassName:at,noWheelClassName:ot,noPanClassName:st,rfId:zt,disableKeyboardA11y:gt,nodeExtent:Ae,viewport:Ot,onViewportChange:kt,nodesDraggable:_e}),(0,b.jsx)(Uc,{onSelectionChange:M}),qe,(0,b.jsx)(Lc,{proOptions:ft,position:dt}),(0,b.jsx)(Pc,{rfId:zt,disableKeyboardA11y:gt})]})})}var Sd=hl(xd);function Cd(e){let[t,n]=(0,_.useState)(e);return[t,n,(0,_.useCallback)(e=>n(t=>al(e,t)),[])]}function wd(e){let[t,n]=(0,_.useState)(e);return[t,n,(0,_.useCallback)(e=>n(t=>ol(e,t)),[])]}Ta.error014();function Td({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,b.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:E([`react-flow__background-pattern`,n,r])})}function Ed({radius:e,className:t}){return(0,b.jsx)(`circle`,{cx:e,cy:e,r:e,className:E([`react-flow__background-pattern`,`dots`,t])})}var Dd;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(Dd||={});var Od={[Dd.Dots]:1,[Dd.Lines]:1,[Dd.Cross]:6},kd=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Ad({id:e,variant:t=Dd.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,_.useRef)(null),{transform:f,patternId:p}=G(kd,xc),m=r||Od[t],h=t===Dd.Dots,g=t===Dd.Cross,v=Array.isArray(n)?n:[n,n],y=[v[0]*f[2]||1,v[1]*f[2]||1],x=m*f[2],S=Array.isArray(a)?a:[a,a],C=g?[x,x]:y,w=[S[0]*f[2]||1+C[0]/2,S[1]*f[2]||1+C[1]/2],T=`${p}${e||``}`;return(0,b.jsxs)(`svg`,{className:E([`react-flow__background`,l]),style:{...c,...Ol,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,b.jsx)(`pattern`,{id:T,x:f[0]%y[0],y:f[1]%y[1],width:y[0],height:y[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${w[0]},-${w[1]})`,children:h?(0,b.jsx)(Ed,{radius:x/2,className:u}):(0,b.jsx)(Td,{dimensions:C,lineWidth:i,variant:t,className:u})}),(0,b.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${T})`})]})}Ad.displayName=`Background`;var jd=(0,_.memo)(Ad);function Md(){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,b.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function Nd(){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,b.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function Pd(){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,b.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function Fd(){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,b.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function Id(){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,b.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function Ld({children:e,className:t,...n}){return(0,b.jsx)(`button`,{type:`button`,className:E([`react-flow__controls-button`,t]),...n,children:e})}var Rd=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function zd({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=Tc(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=G(Rd,xc),{zoomIn:y,zoomOut:x,fitView:S}=Cl();return(0,b.jsxs)(Fc,{className:E([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Ld,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,b.jsx)(Md,{})}),(0,b.jsx)(Ld,{onClick:()=>{x(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,b.jsx)(Nd,{})})]}),n&&(0,b.jsx)(Ld,{className:`react-flow__controls-fitview`,onClick:()=>{S(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,b.jsx)(Pd,{})}),r&&(0,b.jsx)(Ld,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,b.jsx)(Id,{}):(0,b.jsx)(Fd,{})}),u]})}zd.displayName=`Controls`;var Bd=(0,_.memo)(zd);function Vd({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,b.jsx)(`rect`,{className:E([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var Hd=(0,_.memo)(Vd),Ud=e=>e.nodes.map(e=>e.id),Wd=e=>e instanceof Function?e:()=>e;function Gd({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=Hd,onClick:o}){let s=G(Ud,xc),c=Wd(t),l=Wd(e),u=Wd(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,b.jsx)(b.Fragment,{children:s.map(e=>(0,b.jsx)(qd,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function Kd({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=G(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=vo(r);return{node:r,x:i,y:a,width:o,height:s}},xc);return!l||l.hidden||!yo(l)?null:(0,b.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var qd=(0,_.memo)(Kd),Jd=(0,_.memo)(Gd),Yd=200,Xd=150,Zd=e=>!e.hidden,Qd=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?ao(Ha(e.nodeLookup,{filter:Zd}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},$d=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,ef=(e,t)=>$d(e.viewBB,t.viewBB)&&$d(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,tf=`react-flow__minimap-desc`;function nf({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:v,inversePan:y,zoomStep:x=1,offsetScale:S=5}){let C=Tc(),w=(0,_.useRef)(null),{boundingRect:T,viewBB:D,rfId:O,panZoom:k,translateExtent:A,flowWidth:j,flowHeight:M,ariaLabelConfig:ee}=G(Qd,ef),N=e?.width??Yd,te=e?.height??Xd,P=T.width/N,F=T.height/te,ne=Math.max(P,F),re=ne*N,ie=ne*te,I=S*ne,L=T.x-(re-T.width)/2-I,R=T.y-(ie-T.height)/2-I,ae=re+I*2,oe=ie+I*2,se=`${tf}-${O}`,ce=(0,_.useRef)(0),le=(0,_.useRef)();ce.current=ne,(0,_.useEffect)(()=>{if(w.current&&k)return le.current=Is({domNode:w.current,panZoom:k,getTransform:()=>C.getState().transform,getViewScale:()=>ce.current}),()=>{le.current?.destroy()}},[k]),(0,_.useEffect)(()=>{le.current?.update({translateExtent:A,width:j,height:M,inversePan:y,pannable:h,zoomStep:x,zoomable:g})},[h,g,y,x,A,j,M]);let ue=p?e=>{let[t,n]=le.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,de=m?(0,_.useCallback)((e,t)=>{let n=C.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,fe=v??ee[`minimap.ariaLabel`];return(0,b.jsx)(Fc,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*ne:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:E([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,b.jsxs)(`svg`,{width:N,height:te,viewBox:`${L} ${R} ${ae} ${oe}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":se,ref:w,onClick:ue,children:[fe&&(0,b.jsx)(`title`,{id:se,children:fe}),(0,b.jsx)(Jd,{onClick:de,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,b.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${L-I},${R-I}h${ae+I*2}v${oe+I*2}h${-ae-I*2}z - M${D.x},${D.y}h${D.width}v${D.height}h${-D.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}nf.displayName=`MiniMap`;var rf=(0,_.memo)(nf),af=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,of={[Zs.Line]:`right`,[Zs.Handle]:`bottom-right`};function sf({nodeId:e,position:t,variant:n=Zs.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:v}){let y=Z(),x=typeof e==`string`?e:y,S=Tc(),C=(0,_.useRef)(null),w=n===Zs.Handle,T=G((0,_.useCallback)(af(w&&p),[w,p]),xc),D=(0,_.useRef)(null),O=t??of[n];return(0,_.useEffect)(()=>{if(!(!C.current||!x))return D.current||=cc({domNode:C.current,nodeId:x,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=S.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=S.getState(),o=[],s={x:e.x,y:e.y},c=r.get(x);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=hs([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...bo({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:x,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:x,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:x,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};S.getState().triggerNodeChanges([n])}}),D.current.update({controlPosition:O,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:v,shouldResize:m}),()=>{D.current?.destroy()}},[O,s,c,l,u,d,h,g,v,m]),(0,b.jsx)(`div`,{className:E([`react-flow__resize-control`,`nodrag`,...O.split(`-`),n,r]),ref:C,style:{...i,scale:T,...o&&{[w?`backgroundColor`:`borderColor`]:o}},children:a})}(0,_.memo)(sf);function cf(e){return Object.entries(e).filter(([,e])=>e&&e.from&&e.to).map(([e,t])=>({qn:e,from:t.from,to:t.to,type:t.association_type,owner:t.owner}))}function lf(e,t){let n=e.split(`.`).pop()??e,r=Array.isArray(t?.attributes)?t.attributes:[],i=r.slice(0,8),a=i.map(e=>`${e.name}${e.type?` : `+e.type:``}`);return r.length>i.length&&a.push(`+${r.length-i.length} more`),`${n}\n${a.join(` -`)}`}function uf(e,t,n){let r=n.filter(t=>t.from===e||t.to===e),i=[];r.forEach(t=>{let n=t.from===e?t.to:t.from;n!==e&&!i.includes(n)&&i.push(n)});let a=[40,380,720],o={[e]:{col:1,i:0}},s=0,c=0;i.forEach((e,t)=>{o[e]=t%2==0?{col:0,i:s++}:{col:2,i:c++}});let l=n=>{let r=o[n];return{id:n,position:{x:a[r.col],y:30+r.i*170},data:{label:lf(n,t[n])},style:{background:`var(--panel2)`,color:`var(--fg)`,border:n===e?`2px solid var(--accent)`:`1px solid var(--node-line)`,borderRadius:8,fontSize:11,textAlign:`left`,whiteSpace:`pre`,width:210,padding:8}}};return{nodes:[l(e),...i.map(l)],edges:r.map((e,t)=>({id:`a${t}`,source:e.from,target:e.to,label:`${e.type===`ReferenceSet`?`*`:`1`} ${e.qn.split(`.`).pop()}`,style:{stroke:`var(--edge)`},labelStyle:{fill:`var(--muted)`,fontSize:10}}))}}function df(e){let t=e.trim(),n=t.indexOf(`(`),r=(n===-1?t:t.slice(0,n)).trim().split(/\s+/);return{type:r[0]??`widget`,name:r[1],props:n===-1?``:t.slice(n+1,t.lastIndexOf(`)`))}}function ff(e){let t=e.match(/\)\s*\{/);if(!t||t.index==null)return null;let n=t.index+t[0].length,r=e.slice(n),i={type:`page`,props:``,children:[]},a=[i],o=``,s=0,c=!1,l=()=>{let e=o.trim();e&&!e.startsWith(`--`)&&a[a.length-1].children.push(df(e)),o=``};for(let e=0;e0){o+=t;continue}if(t===`{`){let e=df(o);e.children=[],a[a.length-1].children.push(e),a.push(e),o=``}else if(t===`}`)if(l(),a.length>1)a.pop();else break;else t===` -`?l():o+=t}return i}var pf=(e,t)=>{let n=t.match(RegExp(e+`:\\s*'([^']*)'`));return n?n[1]:void 0};function mf(e){return{label:pf(`Label`,e.props)??pf(`Caption`,e.props),attribute:e.props.match(/Attribute:\s*([A-Za-z0-9_./]+)/)?.[1],content:pf(`Content`,e.props),action:e.props.match(/Action:\s*(?:microflow|nanoflow)?\s*([A-Za-z0-9_.]+)/)?.[1],dataSource:e.props.match(/DataSource:\s*([^,)\n]+)/)?.[1]?.trim()}}function hf(e){let t=[],n=0,r=!1,i=``,a=()=>{let e=i.trim();if(i=``,!e)return;let n=e.indexOf(`:`);n===-1?t.push({key:e,value:``}):t.push({key:e.slice(0,n).trim(),value:e.slice(n+1).trim()})};for(let t=0;te.key).map(e=>e.value===``?e.key:`${e.key}: ${e.value}`).join(`, `)}function _f(e,t){return e.find(e=>e.key.toLowerCase()===t.toLowerCase())?.value}function vf(e,t,n){let r=e.filter(e=>e.key.toLowerCase()!==t.toLowerCase()||n!==``),i=r.findIndex(e=>e.key.toLowerCase()===t.toLowerCase());return n===``?r:i===-1?[...r,{key:t,value:n}]:r.map(e=>e.key.toLowerCase()===t.toLowerCase()?{key:t,value:n}:e)}var yf=new Set([`layoutgrid`,`row`,`column`,`container`,`scrollcontainer`,`table`,`dataview`,`groupbox`,`tabcontainer`,`tabpage`,`footer`,`header`,`snippetcall`,`listview`,`templategrid`,`sidebartoggle`]),bf=new Set([`layoutgrid`,`row`,`column`,`container`,`scrollcontainer`,`table`]),xf=e=>yf.has(e.toLowerCase()),Sf=0,Cf=()=>`w${Date.now().toString(36)}${(Sf++).toString(36)}`;function wf(e){return{...e,id:Cf(),children:e.children?.map(wf)}}function Tf(){return{id:Cf(),type:`page`,props:``,children:[]}}var Ef={Container:{type:`container`},"Layout grid":{type:`layoutgrid`},Table:{type:`table`},"Group box":{type:`groupbox`,props:`Caption: 'Group box'`},"Tab container":{type:`tabcontainer`},"Scroll container":{type:`scrollcontainer`},Text:{type:`dynamictext`,props:`Content: 'New text'`},Heading:{type:`dynamictext`,props:`Content: 'Heading'`},Image:{type:`image`},Button:{type:`button`,props:`Caption: 'Button'`},"Link button":{type:`linkbutton`,props:`Caption: 'Link'`},"Action button":{type:`actionbutton`,props:`Caption: 'Action'`},"Text box":{type:`textbox`,props:`Label: 'Text box', Attribute: Attribute`},"Check box":{type:`checkbox`,props:`Label: 'Check box', Attribute: Attribute`},"Combo box":{type:`combobox`,props:`Label: 'Combo box', Attribute: Attribute`},"Radio buttons":{type:`radiobuttons`,props:`Label: 'Radio buttons', Attribute: Attribute`},"Date picker":{type:`datepicker`,props:`Label: 'Date', Attribute: Attribute`},"Drop-down":{type:`dropdown`,props:`Label: 'Drop-down', Attribute: Attribute`},"Data view":{type:`dataview`,props:`DataSource: $object`},"Data grid 2":{type:`datagrid2`,props:`DataSource: $objects`},"List view":{type:`listview`,props:`DataSource: $objects`},Gallery:{type:`gallery`,props:`DataSource: $objects`},"Template grid":{type:`templategrid`,props:`DataSource: $objects`},"Reference selector":{type:`referenceselector`,props:`Label: 'Reference', Attribute: Attribute`},Cards:{type:`container`},Lists:{type:`container`},Headers:{type:`header`}},Df=0;function Of(e){let t=Ef[e]??{type:e.toLowerCase().replace(/[^a-z0-9]+/g,``),props:`Caption: '${e}'`},n={id:Cf(),type:t.type,name:`${t.type}${++Df}_${Date.now().toString(36).slice(-4)}`,props:t.props??``};return xf(t.type)&&(n.children=[]),n}function kf(e,t){if(e.id===t)return e;for(let n of e.children??[]){let e=kf(n,t);if(e)return e}}function Af(e,t,n){let r=kf(e,t);return!!r&&!!kf(r,n)&&t!==n}function jf(e,t){let n,r=e=>{if(!e.children)return e;let i=[];for(let a of e.children)a.id===t?n=a:i.push(r(a));return{...e,children:i}};return{tree:r(e),removed:n}}function Mf(e,t,n,r){let i=e=>{if(e.id===t){let t=[...e.children??[]],i=Math.max(0,Math.min(n,t.length));return t.splice(i,0,r),{...e,children:t}}return e.children?{...e,children:e.children.map(i)}:e};return i(e)}function Nf(e,t,n,r){return Mf(e,t,n,r)}function Pf(e,t){return jf(e,t).tree}function Ff(e,t,n,r){if(t===n||Af(e,t,n))return e;let{tree:i,removed:a}=jf(e,t);return a?Mf(i,n,r,a):e}function If(e,t,n){let r=e.name??(e.props.trim()?`${e.type}${n()}`:void 0),i=[e.type,r].filter(Boolean).join(` `),a=e.props.trim()?` (${e.props.trim()})`:``;if(e.children!==void 0){let r=e.children.map(e=>If(e,t+` `,n)).join(` -`);return`${t}${i}${a} {${r?`\n${r}\n${t}`:``}}`}return`${t}${i}${a}`}function Lf(e){let t=900,n=()=>++t;return(e.children??[]).map(e=>If(e,``,n)).join(` -`)}var Rf=`/api`;async function zf(e,t){try{let t=await fetch(`${Rf}${e}`);if(!t.ok)throw Error(String(t.status));return{data:await t.json(),mocked:!1}}catch{return{data:t(),mocked:!0}}}async function Bf(e,t,n){try{let n=await fetch(`${Rf}${e}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(String(n.status));return{data:await n.json(),mocked:!1}}catch{return{data:n(),mocked:!0}}}function Vf(e,t=20){return zf(`/marketplace/search?q=${encodeURIComponent(e)}&limit=${t}`,()=>Zf(e,t))}async function Hf(e,t,n){try{let r=await fetch(`${Rf}/marketplace/install`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:e,version:t,studio_closed:n})}),i=await r.json().catch(()=>({}));return{ok:i.ok===!0,message:i.message??i.error??`Install failed (${r.status}).`}}catch(e){return{ok:!1,message:String(e instanceof Error?e.message:e)}}}function Uf(e,t){return Bf(`/layout`,{qn:e,positions:t},()=>({ok:!1,message:`Backend unavailable; layout was not saved.`,mdlPreview:t.map(e=>`@position(${Math.round(e.x)}, ${Math.round(e.y)}) ${e.label}`).join(` -`)}))}function Wf(e,t,n){return fetch(`${Rf}/entity-plan`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({qn:e,persistable:t,attributes:n})}).then(async t=>{let n=await t.json();return t.ok?{data:n,mocked:!1}:{data:Gf(e,`error`in n&&n.error||`Backend rejected the plan (${t.status}).`),mocked:!1}}).catch(()=>({data:Gf(e,`Backend unavailable; the visual plan was not saved.`),mocked:!0}))}function Gf(e,t){return{ok:!1,blocked:!0,operation:{action:`blocked`,type:`entity`,name:e,reason:t},mdl:``}}async function Kf(e,t){try{let n=await fetch(`${Rf}/page`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({qn:e,content:t})}),r=await n.json().catch(()=>({}));if(!n.ok&&r.ok===void 0)throw Error(r.error??`Save failed (${n.status}).`);return r}catch(e){return{ok:!1,message:String(e instanceof Error?e.message:e)}}}async function qf(e,t){let n=await fetch(`${Rf}/git${e}`,t),r=await n.json().catch(()=>({}));if(!n.ok)throw Error(r.error??`Git request failed (${n.status}).`);return r}function Jf(e,t){return qf(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}var Yf={status:()=>qf(`/status`),branches:()=>qf(`/branches`),stashList:()=>qf(`/stash`),fetch:()=>Jf(`/fetch`,{}),switch:(e,t)=>Jf(`/switch`,{branch:e,studio_closed:t}),create:(e,t)=>Jf(`/create`,{branch:e,studio_closed:t}),commit:(e,t)=>Jf(`/commit`,{message:e,studio_closed:t}),stashPush:(e,t,n)=>Jf(`/stash`,{message:e||void 0,include_untracked:t,studio_closed:n}),stashApply:(e,t,n)=>Jf(`/stash/apply`,{reference:e,drop:t,studio_closed:n}),stashDrop:e=>Jf(`/stash/drop`,{reference:e})},Xf=[{id:`1866`,name:`Community Commons`,publisher:`Mendix`,latestVersion:`10.0.4`,category:`Utility`,rating:4.6,downloads:24e4,summary:`Widely-used helper functions (Java actions) for strings, dates, files and more.`},{id:`120`,name:`Excel Importer`,publisher:`Mendix`,latestVersion:`11.1.0`,category:`Import/Export`,rating:4.3,downloads:18e4,summary:`Import data from Excel/CSV templates into your domain model.`},{id:`45`,name:`Feedback`,publisher:`Mendix`,latestVersion:`4.0.2`,category:`Collaboration`,rating:4.1,downloads:95e3,summary:`In-app feedback widget that posts to a feedback backend.`},{id:`215`,name:`Database Replication`,publisher:`Mendix`,latestVersion:`7.2.1`,category:`Integration`,rating:4,downloads:6e4,summary:`Sync an external database into Mendix entities.`},{id:`107293`,name:`Data Widgets`,publisher:`Mendix`,latestVersion:`3.5.0`,category:`Widgets`,rating:4.5,downloads:32e4,summary:`Datagrid 2, dropdown filters and other data-bound widgets.`}];function Zf(e,t){let n=e.trim().toLowerCase();return(n?Xf.filter(e=>(e.name+` `+e.category+` `+e.summary).toLowerCase().includes(n)):Xf).slice(0,t)}function Qf(e){let t=e.toLowerCase();return t===`statictext`||t===`dynamictext`?[{key:`Content`,label:`Text`,quoted:!0}]:[`textbox`,`textarea`,`datepicker`,`combobox`,`dropdown`,`checkbox`,`radiobuttons`,`referenceselector`,`referencesetselector`].includes(t)?[{key:`Label`,label:`Label`,quoted:!0},{key:`Attribute`,label:`Attribute`,placeholder:`AttributeName`}]:[`button`,`actionbutton`,`linkbutton`,`microflowtrigger`].includes(t)?[{key:`Caption`,label:`Caption`,quoted:!0},{key:`Action`,label:`Action`,placeholder:`MICROFLOW Module.MF`}]:[`dataview`,`datagrid2`,`datagrid`,`listview`,`gallery`,`templategrid`].includes(t)?[{key:`DataSource`,label:`Data source`,placeholder:`$object`}]:t===`groupbox`||t===`footer`||t===`header`?[{key:`Caption`,label:`Caption`,quoted:!0}]:[]}function $f(e){if(!e)return``;let t=e.match(/^'(.*)'$/s);return(t?t[1]:e).replace(/''/g,`'`)}function ep({node:e,onChange:t,onEditingChange:n}){if(!e)return(0,b.jsxs)(`aside`,{className:`wprops`,children:[(0,b.jsx)(`div`,{className:`wprops-title`,children:`Properties`}),(0,b.jsx)(`p`,{className:`empty pad`,children:`Select a widget to edit its properties.`})]});let r=hf(e.props),i=Qf(e.type),a=(e,n)=>{let i=e.quoted?n?`'${n.replace(/'/g,`''`)}'`:``:n.trim();t(gf(vf(r,e.key,i)))};return(0,b.jsxs)(`aside`,{className:`wprops`,children:[(0,b.jsxs)(`div`,{className:`wprops-title`,children:[e.type,e.name?` · ${e.name}`:``]}),i.map(e=>{let t=_f(r,e.key),i=e.quoted?$f(t):t??``;return(0,b.jsxs)(`label`,{className:`wprops-field`,children:[(0,b.jsx)(`span`,{children:e.label}),(0,b.jsx)(`input`,{value:i,placeholder:e.placeholder,onFocus:()=>n(!0),onBlur:()=>n(!1),onChange:t=>a(e,t.target.value)})]},e.key)}),(0,b.jsxs)(`details`,{className:`wprops-raw`,children:[(0,b.jsx)(`summary`,{children:`Raw MDL props`}),(0,b.jsx)(`textarea`,{value:e.props,rows:4,onFocus:()=>n(!0),onBlur:()=>n(!1),onChange:e=>t(e.target.value)})]})]})}function tp(e){let t=e.dataTransfer.getData(`application/mrb-move`);if(t)return{move:t};let n=e.dataTransfer.getData(`application/mrb-item`);if(n)try{return{label:JSON.parse(n).label}}catch{return{}}return{}}function np({node:e,onNavigate:t}){let n=mf(e),r=e.type.toLowerCase();return r===`statictext`||r===`dynamictext`?(0,b.jsx)(`div`,{className:`w-text rm-${(e.props.match(/RenderMode:\s*([A-Za-z0-9]+)/i)?.[1]?.toLowerCase()??``)||`text`}`,children:n.content??n.label??`(text)`}):r===`textbox`||r===`textarea`||r===`datepicker`?(0,b.jsxs)(`label`,{className:`w-field`,children:[(0,b.jsx)(`span`,{children:n.label??n.attribute??e.name}),(0,b.jsx)(`span`,{className:`w-input`,children:n.attribute??``})]}):r===`combobox`||r===`referenceselector`||r===`referencesetselector`||r===`dropdown`?(0,b.jsxs)(`label`,{className:`w-field`,children:[(0,b.jsx)(`span`,{children:n.label??n.attribute??e.name}),(0,b.jsx)(`span`,{className:`w-input select`,children:n.attribute??`▾`})]}):r===`checkbox`||r===`radiobuttons`?(0,b.jsxs)(`label`,{className:`w-check`,children:[(0,b.jsx)(`span`,{className:`box`,children:`☑`}),` `,n.label??n.attribute??e.name]}):r===`actionbutton`||r===`button`||r===`microflowtrigger`||r===`linkbutton`?(0,b.jsx)(`button`,{className:`w-btn`,onClick:()=>n.action&&t(n.action),children:n.label??e.name??`Button`}):r===`datagrid`||r===`datagrid2`||r===`gallery`?(0,b.jsxs)(`div`,{className:`w-grid`,children:[`▦ `,e.name??r,` `,n.dataSource?`· ${n.dataSource}`:``]}):r===`image`||r===`staticimage`?(0,b.jsxs)(`div`,{className:`w-img`,children:[`🖼 `,e.name??`image`]}):(0,b.jsxs)(`div`,{className:`w-generic`,children:[e.type,e.name?` · ${e.name}`:``]})}function rp({selection:e,detail:t,onSelect:n}){let[r,i]=(0,_.useState)(()=>wf(ff(t.mdl??``)??Tf())),[a,o]=(0,_.useState)(),[s,c]=(0,_.useState)(),[l,u]=(0,_.useState)(`structure`),[d,f]=(0,_.useState)(!1),[p,m]=(0,_.useState)(),h=(0,_.useRef)(!1),g=(0,_.useCallback)(async()=>{f(!0),m(void 0);let t=await Kf(e.qn,Lf(r));m({ok:t.ok,message:t.message}),f(!1)},[e.qn,r]);(0,_.useEffect)(()=>{i(wf(ff(t.mdl??``)??Tf())),o(void 0)},[t.mdl]);let v=(0,_.useCallback)((e,t,n)=>{e.preventDefault(),e.stopPropagation(),c(void 0);let r=tp(e);if(r.move)i(e=>Ff(e,r.move,t,n));else if(r.label){let e=Of(r.label);i(r=>Nf(r,t,n,e)),o(e.id)}},[]),y=(0,_.useCallback)(e=>{i(t=>Pf(t,e)),o(t=>t===e?void 0:t)},[]);(0,_.useEffect)(()=>{let e=e=>{(e.key===`Delete`||e.key===`Backspace`)&&a&&!h.current&&(e.preventDefault(),y(a))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,y]);let x=(e,t)=>{let n=`${e}:${t}`;return(0,b.jsx)(`div`,{className:`w-gap`+(s===n?` on`:``),onDragOver:e=>{ip(e)&&(e.preventDefault(),e.stopPropagation(),c(n))},onDragLeave:()=>c(e=>e===n?void 0:e),onDrop:n=>v(n,e,t)})},S=e=>{let t=e.type.toLowerCase(),r=xf(t)&&e.children!==void 0,i=bf.has(t),s=e.id===a,l=t===`row`?`row`:`column`,u=mf(e),d=r?(0,b.jsxs)(`div`,{className:`w-box-body`,style:{display:`flex`,flexDirection:l,gap:8,flex:1},children:[(e.children??[]).map((t,n)=>(0,b.jsxs)(`div`,{style:{display:`contents`},children:[x(e.id,n),S(t)]},t.id)),x(e.id,e.children?.length??0),!e.children?.length&&(0,b.jsx)(`div`,{className:`w-drop-empty`,onDragOver:t=>{ip(t)&&(t.preventDefault(),c(`${e.id}:0`))},onDrop:t=>v(t,e.id,0),children:`Drop widgets here`})]}):null;return(0,b.jsxs)(`div`,{className:(r?i?`w-struct`:`w-box`:`w-leaf`)+` w-${t}`+(s?` selected`:``),style:r?{display:`flex`,flexDirection:l,flex:t===`column`?1:void 0}:void 0,draggable:!0,onDragStart:t=>{t.stopPropagation(),t.dataTransfer.setData(`application/mrb-move`,e.id),t.dataTransfer.effectAllowed=`move`},onClick:t=>{t.stopPropagation(),o(e.id)},children:[r&&!i&&(0,b.jsxs)(`div`,{className:`w-box-head`,children:[e.type,e.name?` · ${e.name}`:``,u.dataSource?` · ${u.dataSource}`:``]}),r?d:(0,b.jsx)(np,{node:e,onNavigate:n}),s&&(0,b.jsx)(`button`,{className:`w-del`,title:`Delete widget (Del)`,onClick:t=>{t.stopPropagation(),y(e.id)},children:`✕`})]})},C=!r.children?.length;return(0,b.jsxs)(`div`,{className:`pagebuilder`,children:[(0,b.jsxs)(`div`,{className:`pageview-chrome`,children:[(0,b.jsx)(`span`,{className:`dot`}),(0,b.jsx)(`span`,{className:`dot`}),(0,b.jsx)(`span`,{className:`dot`}),(0,b.jsx)(`span`,{className:`title`,children:t.title??e.label}),t.layout&&(0,b.jsx)(`span`,{className:`layout-tag`,children:t.layout}),(0,b.jsxs)(`span`,{className:`pb-modes`,children:[(0,b.jsx)(`button`,{className:l===`structure`?`on`:``,onClick:()=>u(`structure`),children:`Structure mode`}),(0,b.jsx)(`button`,{className:l===`design`?`on`:``,onClick:()=>u(`design`),children:`Design mode`})]}),(0,b.jsx)(`span`,{className:`spacer`}),p&&(0,b.jsx)(`span`,{className:p.ok?`pb-ok`:`pb-err`,children:p.message}),(0,b.jsx)(`button`,{className:`w-btn`,onClick:g,disabled:d,children:d?`Saving…`:`Save page`})]}),(0,b.jsxs)(`div`,{className:`pb-body`,children:[(0,b.jsx)(`div`,{className:`pageview-canvas`+(l===`design`?` pb-design`:``),onClick:()=>o(void 0),children:C?(0,b.jsx)(`div`,{className:`w-drop-empty large`,onDragOver:e=>{ip(e)&&(e.preventDefault(),c(`root:0`))},onDrop:e=>v(e,r.id,0),children:`Drag widgets from the Toolbox to build this page.`}):(0,b.jsxs)(b.Fragment,{children:[x(r.id,0),(r.children??[]).map((e,t)=>(0,b.jsxs)(`div`,{style:{display:`contents`},children:[t>0&&x(r.id,t),S(e)]},e.id)),x(r.id,r.children?.length??0)]})}),(0,b.jsx)(ep,{node:a?ap(r,a):void 0,onChange:e=>a&&i(t=>op(t,a,e)),onEditingChange:e=>h.current=e})]})]})}function ip(e){return e.dataTransfer.types.includes(`application/mrb-item`)||e.dataTransfer.types.includes(`application/mrb-move`)}function ap(e,t){if(e.id===t)return e;for(let n of e.children??[]){let e=ap(n,t);if(e)return e}}function op(e,t,n){return e.id===t?{...e,props:n}:e.children?{...e,children:e.children.map(e=>op(e,t,n))}:e}var sp=(e,t)=>e&&e.length>t?e.slice(0,t-1)+`…`:e||``;function cp(e){let t=e.indexOf(` -begin`);if(t===-1)return null;let n=e.slice(t+6).replace(/\nend;\s*$/,` -`),r=[],i=[],a=0,o=(e,t,n)=>{let i=a++;return r.push({id:i,kind:e,label:sp(t,46),x:n?n.x:null,y:n?n.y:null}),i},s=[{id:o(`terminal`,`Start`,null),label:null}],c=[],l=null,u=null,d=e=>s.forEach(t=>i.push({from:t.id,to:e,label:t.label})),f=e=>/^return\b/.test(e)?`terminal`:/^validation\b/.test(e)?`validation`:/\bcall\b/.test(e)?`action`:/^(declare|set)\b/.test(e)?`assign`:`action`,p=``,m=e=>{let t=e.trim();if(t){if(/^if\b/.test(t)){let e=t.replace(/^if\s+/,``).replace(/\s+then$/,``),n=o(`decision`,u||e,l);d(n),l=null,u=null,c.push({id:n,inElse:!1,trueTails:[]}),s=[{id:n,label:`true`}]}else if(/^else$/.test(t)){let e=c[c.length-1];e.trueTails=s,e.inElse=!0,s=[{id:e.id,label:`false`}]}else if(/^end if;?$/.test(t)){let e=c.pop(),t=e.inElse?s:[{id:e.id,label:`false`}];s=(e.inElse?e.trueTails:s).concat(t)}else if(!(/^(begin|end)\b/.test(t)||t.startsWith(`@`))){let e=o(f(t),u||t,l);d(e),l=null,u=null,s=[{id:e,label:null}]}}};return n.split(` -`).forEach(e=>{let t=e.trim(),n=t.match(/@position\((-?\d+),\s*(-?\d+)\)/);if(n){l={x:+n[1],y:+n[2]};return}let r=t.match(/@caption\s+'([^']*)'/);if(r){u=r[1];return}t.startsWith(`@`)||(p+=(p?` `:``)+t,(/;$/.test(t)||/\bthen$/.test(t)||/^else$/.test(t)||/^end if;?$/.test(t)||/^if\b.*\bthen$/.test(p))&&(m(p),p=``))}),p.trim()&&m(p),{nodes:r,edges:i}}var lp=e=>e.kind===`decision`?`decision`:e.kind===`terminal`?e.label===`Start`?`start`:`end`:`activity`;function up(e){let t=cp(e);if(!t||!t.nodes.length)return null;let n=Object.fromEntries(t.nodes.map(e=>[e.id,e])),r=t.nodes.filter(e=>e.x!=null),i=r.length?Math.round(r.reduce((e,t)=>e+t.y,0)/r.length):0,a=r.length?Math.min(...r.map(e=>e.x)):0;n[0]&&n[0].x==null&&(n[0].x=a-230,n[0].y=i);let o={};for(let e=0;e<6;e++)t.edges.forEach(e=>{let t=n[e.to],r=n[e.from];if(t&&t.x==null&&r&&r.x!=null){let n=o[e.from]??0;o[e.from]=n+1,t.x=r.x+230,t.y=r.y+(n===0?0:(n%2?-1:1)*Math.ceil(n/2)*130)}});let s=a;t.nodes.forEach(e=>{e.x??(e.x=s,e.y=i+200,s+=230)});let c=Math.min(...t.nodes.map(e=>e.x)),l=Math.min(...t.nodes.map(e=>e.y));return{nodes:t.nodes.map(e=>({id:String(e.id),type:lp(e),position:{x:(e.x-c)*.55,y:(e.y-l)*.75},data:{label:e.label,kind:e.kind}})),edges:t.edges.map((e,t)=>({id:`e${t}`,source:String(e.from),target:String(e.to),label:e.label??void 0,animated:!1,style:{stroke:`var(--edge)`},labelStyle:{fill:`var(--fg)`,fontSize:10},labelBgStyle:{fill:`var(--panel)`,stroke:`var(--line)`},labelBgPadding:[6,3],labelBgBorderRadius:2}))}}var dp={action:`⚙`,assign:`✎`,validation:`✔`};function fp(){return(0,b.jsx)(`div`,{className:`sp-terminal sp-start`,title:`Start`,children:(0,b.jsx)(Gl,{type:`source`,position:B.Right})})}function pp({data:e}){return(0,b.jsx)(`div`,{className:`sp-terminal sp-end`,title:e.label,children:(0,b.jsx)(Gl,{type:`target`,position:B.Left})})}function mp({data:e}){let t=e;return(0,b.jsxs)(`div`,{className:`sp-activity`,children:[(0,b.jsx)(Gl,{type:`target`,position:B.Left}),(0,b.jsx)(`span`,{className:`sp-act-icon`,children:dp[t.kind]??`⚙`}),(0,b.jsx)(`span`,{className:`sp-act-label`,children:t.label}),(0,b.jsx)(Gl,{type:`source`,position:B.Right})]})}function hp({data:e}){let t=e;return(0,b.jsxs)(`div`,{className:`sp-decision`,children:[(0,b.jsx)(Gl,{type:`target`,position:B.Left}),(0,b.jsx)(`span`,{className:`sp-caption`,children:t.label}),(0,b.jsx)(`span`,{className:`sp-diamond`}),(0,b.jsx)(Gl,{type:`source`,position:B.Right})]})}var gp={start:fp,end:pp,activity:mp,decision:hp};function _p(e,t=[]){let n=new Map(t.map(e=>[e.id,e]));return e.map(e=>{let t=n.get(e.id);return t?{...e,position:{x:t.x,y:t.y}}:e})}var vp=[{icon:`⚙`,label:`Activity`,type:`activity`,kind:`action`},{icon:`◇`,label:`Decision`,type:`decision`,kind:`decision`},{icon:`✎`,label:`Change`,type:`activity`,kind:`assign`},{icon:`✔`,label:`Validation`,type:`activity`,kind:`validation`},{icon:`●`,label:`End event`,type:`end`,kind:`terminal`}];function yp({node:e,parameters:t,onSave:n,onClose:r}){let i=e.data,[a,o]=(0,_.useState)(String(i.label??``)),[s,c]=(0,_.useState)(String(i.kind??`action`));return(0,b.jsx)(`div`,{className:`modal-overlay`,onClick:r,children:(0,b.jsxs)(`div`,{className:`modal`,onClick:e=>e.stopPropagation(),children:[(0,b.jsxs)(`div`,{className:`modal-title`,children:[`Edit `,e.type]}),(0,b.jsxs)(`label`,{className:`modal-field`,children:[(0,b.jsx)(`span`,{children:`Caption`}),(0,b.jsx)(`input`,{value:a,autoFocus:!0,onChange:e=>o(e.target.value)})]}),e.type===`activity`&&(0,b.jsxs)(`label`,{className:`modal-field`,children:[(0,b.jsx)(`span`,{children:`Activity type`}),(0,b.jsxs)(`select`,{value:s,onChange:e=>c(e.target.value),children:[(0,b.jsx)(`option`,{value:`action`,children:`Action call`}),(0,b.jsx)(`option`,{value:`assign`,children:`Change / assign`}),(0,b.jsx)(`option`,{value:`validation`,children:`Validation`})]})]}),t.length>0&&(0,b.jsxs)(`div`,{className:`modal-field`,children:[(0,b.jsx)(`span`,{children:`Flow parameters`}),(0,b.jsx)(`ul`,{className:`modal-params`,children:t.map((e,t)=>(0,b.jsxs)(`li`,{children:[(0,b.jsxs)(`code`,{children:[`$`,e.name]}),` : `,e.type]},t))})]}),(0,b.jsxs)(`div`,{className:`modal-actions`,children:[(0,b.jsx)(`button`,{className:`editor-secondary`,onClick:r,children:`Cancel`}),(0,b.jsx)(`button`,{className:`w-btn`,onClick:()=>n(a,s),children:`OK`})]})]})})}function bp({qn:e,mdl:t,savedPositions:n,parameters:r=[]}){let i=(0,_.useMemo)(()=>up(t),[t]),a=(0,_.useMemo)(()=>_p(i?.nodes??[],n),[i,n]),[o,s,c]=Cd(a),[l,u,d]=wd(i?.edges??[]),[f,p]=(0,_.useState)(!1),[m,h]=(0,_.useState)(),[g,v]=(0,_.useState)(0),[y,x]=(0,_.useState)(),{zoomIn:S,zoomOut:C,zoomTo:w,fitView:T}=Cl();(0,_.useEffect)(()=>{s(a),u(i?.edges??[]),p(!1),h(void 0)},[i,a,s,u]);let E=e=>{c(e),e.some(e=>e.type===`position`)&&p(!0)},D=(0,_.useCallback)((e,t)=>{u(n=>fl(e,t,n)),h(`Arrow re-wired (canvas draft).`)},[u]),O=(0,_.useCallback)(e=>{u(t=>dl({...e,style:{stroke:`var(--edge)`}},t)),h(`Arrow added (canvas draft).`)},[u]),k=e=>{let t=o.reduce((e,t)=>Math.max(e,t.position.x),0),n=`new${g}`;v(e=>e+1),s(r=>[...r,{id:n,type:e.type,position:{x:t+230,y:40},data:{label:e.label,kind:e.kind}}]),p(!0),h(`${e.label} added (canvas draft).`)};return(0,b.jsxs)(`div`,{className:`canvas-wrap`,children:[(0,b.jsxs)(`div`,{className:`flow-toolbar`,children:[(0,b.jsx)(`span`,{className:`flow-tools`,children:vp.map(e=>(0,b.jsx)(`button`,{className:`flow-tool`,title:`Add ${e.label}`,onClick:()=>k(e),children:e.icon},e.label))}),(0,b.jsx)(`span`,{className:`flow-sep`}),(0,b.jsx)(`button`,{className:`flow-tool`,title:`Zoom in`,onClick:()=>S(),children:`+`}),(0,b.jsx)(`button`,{className:`flow-tool`,title:`Zoom out`,onClick:()=>C(),children:`-`}),(0,b.jsx)(`button`,{className:`flow-tool`,title:`Zoom 100%`,onClick:()=>w(1),children:`1:1`}),(0,b.jsx)(`button`,{className:`flow-tool`,title:`Fit view`,onClick:()=>T(),children:`⛶`}),(0,b.jsx)(`span`,{className:`spacer`}),m&&(0,b.jsx)(`span`,{className:`muted`,children:m}),(0,b.jsx)(`button`,{className:`w-btn`,disabled:!f,onClick:async()=>{let{data:t,mocked:n}=await Uf(e,o.map(e=>({id:e.id,label:String(e.data.label??``),x:e.position.x,y:e.position.y})));h((n?`offline — `:``)+t.message),t.ok&&p(!1)},children:`Save layout`})]}),(0,b.jsx)(`div`,{className:`canvas`,children:(0,b.jsxs)(Sd,{nodes:o,edges:l,nodeTypes:gp,onNodesChange:E,onEdgesChange:d,onReconnect:D,onConnect:O,onNodeDoubleClick:(e,t)=>x(t),edgesReconnectable:!0,fitView:!0,minZoom:.15,proOptions:{hideAttribution:!0},children:[(0,b.jsx)(jd,{color:`var(--grid)`,gap:18}),(0,b.jsx)(rf,{pannable:!0,zoomable:!0,maskColor:`rgba(0,0,0,0.5)`,nodeColor:`var(--accent)`}),(0,b.jsx)(Bd,{showInteractive:!1})]})}),y&&(0,b.jsx)(yp,{node:y,parameters:r,onClose:()=>x(void 0),onSave:(e,t)=>{s(n=>n.map(n=>n.id===y.id?{...n,data:{...n.data,label:e,kind:t}}:n)),x(void 0),h(`Block updated (canvas draft).`)}})]})}function xp(e){return(0,b.jsx)($,{children:(0,b.jsx)(bp,{...e})})}function Sp({selection:e,details:t,assocs:n,layouts:r,onSelect:i}){let{type:a,qn:o}=e,s=t[o],c=(0,_.useMemo)(()=>a===`entity`?uf(o,t,n):null,[a,o,t,n]);return a===`page`&&s?(0,b.jsx)(rp,{selection:e,detail:s,onSelect:i}):(a===`microflow`||a===`nanoflow`)&&s?.mdl?(0,b.jsx)(xp,{qn:o,mdl:s.mdl,savedPositions:r[o],parameters:s.parameters}):c?(0,b.jsx)(`div`,{className:`canvas`,children:(0,b.jsxs)(Sd,{nodes:c.nodes,edges:c.edges,fitView:!0,minZoom:.15,proOptions:{hideAttribution:!0},onNodeClick:(e,t)=>{t.id!==o&&i(t.id)},children:[(0,b.jsx)(jd,{color:`var(--grid)`,gap:18}),(0,b.jsx)(rf,{pannable:!0,zoomable:!0,maskColor:`rgba(0,0,0,0.5)`,nodeColor:`var(--accent)`}),(0,b.jsx)(Bd,{showInteractive:!1})]})}):null}var Cp=[`string`,`boolean`,`integer`,`long`,`decimal`,`datetime`,`autonumber`,`binary`,`hash_string`,`enumeration`];function wp(e){let t=e.type??`String(200)`,n=t.match(/^String\((unlimited|\d+)\)$/i),r=t.match(/^Enumeration\((.+)\)$/i);return{name:e.name,type:n?`string`:r?`enumeration`:t.toLowerCase(),required:e.required??!1,length:n?n[1]===`unlimited`?null:Number(n[1]):void 0,enumeration:r?.[1],default:e.default}}function Tp({qn:e,detail:t}){let[n,r]=(0,_.useState)(!1),[i,a]=(0,_.useState)(t.persistable??!0),[o,s]=(0,_.useState)([]),[c,l]=(0,_.useState)(),[u,d]=(0,_.useState)(!1);(0,_.useEffect)(()=>{a(t.persistable??!0),s((t.attributes??[]).map(wp)),l(void 0),r(!1)},[e,t]);let f=(e,t)=>{s(n=>n.map((n,r)=>r===e?{...n,...t}:n)),l(void 0)};return n?(0,b.jsxs)(`section`,{className:`entity-editor`,children:[(0,b.jsxs)(`div`,{className:`editor-head`,children:[(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`strong`,{children:`Visual entity draft`}),(0,b.jsx)(`span`,{children:`Preview only — the Mendix project is not modified.`})]}),(0,b.jsx)(`button`,{className:`editor-secondary`,onClick:()=>r(!1),children:`Close`})]}),(0,b.jsxs)(`label`,{className:`editor-check`,children:[(0,b.jsx)(`input`,{type:`checkbox`,checked:i,onChange:e=>{a(e.target.checked),l(void 0)}}),`Persistent entity`]}),(0,b.jsxs)(`div`,{className:`editor-attributes`,children:[(0,b.jsxs)(`div`,{className:`editor-row editor-labels`,children:[(0,b.jsx)(`span`,{children:`Name`}),(0,b.jsx)(`span`,{children:`Type`}),(0,b.jsx)(`span`,{children:`Options`}),(0,b.jsx)(`span`,{children:`Required`}),(0,b.jsx)(`span`,{})]}),o.map((e,t)=>(0,b.jsxs)(`div`,{className:`editor-row`,children:[(0,b.jsx)(`input`,{value:e.name,onChange:e=>f(t,{name:e.target.value})}),(0,b.jsx)(`select`,{value:e.type,onChange:e=>f(t,{type:e.target.value}),children:Cp.map(e=>(0,b.jsx)(`option`,{children:e},e))}),e.type===`string`?(0,b.jsx)(`input`,{type:`number`,min:`1`,placeholder:`unlimited`,value:e.length??``,onChange:e=>f(t,{length:e.target.value?Number(e.target.value):null})}):e.type===`enumeration`?(0,b.jsx)(`input`,{placeholder:`Module.Enum`,value:e.enumeration??``,onChange:e=>f(t,{enumeration:e.target.value})}):(0,b.jsx)(`span`,{className:`editor-na`,children:`—`}),(0,b.jsx)(`input`,{type:`checkbox`,checked:e.required,onChange:e=>f(t,{required:e.target.checked})}),(0,b.jsx)(`button`,{className:`editor-danger`,title:`Removal will be shown as blocked until explicitly supported`,onClick:()=>{s(e=>e.filter((e,n)=>n!==t)),l(void 0)},children:`Remove`})]},`${t}-${e.name}`))]}),(0,b.jsxs)(`div`,{className:`editor-actions`,children:[(0,b.jsx)(`button`,{className:`editor-secondary`,onClick:()=>{s(e=>[...e,{name:`NewAttribute${e.length+1}`,type:`string`,length:200,required:!1}]),l(void 0)},children:`Add attribute`}),(0,b.jsx)(`button`,{className:`w-btn`,disabled:u,onClick:async()=>{d(!0);let t=await Wf(e,i,o);l(t.data),d(!1)},children:u?`Planning…`:`Preview and save draft`})]}),c&&(0,b.jsxs)(`div`,{className:`editor-plan ${c.blocked?`blocked`:`safe`}`,children:[(0,b.jsx)(`strong`,{children:c.operation.action.toUpperCase()}),c.operation.reason&&(0,b.jsx)(`p`,{children:c.operation.reason}),c.operation.changes&&(0,b.jsx)(`pre`,{children:JSON.stringify(c.operation.changes,null,2)}),c.mdl&&(0,b.jsxs)(`details`,{children:[(0,b.jsx)(`summary`,{children:`Generated MDL preview`}),(0,b.jsx)(`pre`,{children:c.mdl})]})]})]}):(0,b.jsx)(`button`,{className:`editor-open`,onClick:()=>r(!0),children:`Edit entity`})}var Ep=e=>typeof e==`string`&&/^[A-Za-z0-9_]+\.[A-Za-z0-9_]+/.test(e),Dp=[`parameters`,`widget_types`,`widgets`,`data_sources`,`attributes`,`actions`,`microflow_calls`,`nanoflow_calls`,`page_links`,`view_roles`,`access_rules`,`execute_roles`,`variables`,`activities`,`calls`,`generalization`];function Op({v:e,onSelect:t}){return Ep(e)?(0,b.jsx)(`a`,{className:`ref`,onClick:()=>t(e.split(/[\s(]/)[0]),children:e}):e==null?(0,b.jsx)(`span`,{className:`empty`,children:`—`}):typeof e==`object`?(0,b.jsx)(`code`,{children:JSON.stringify(e)}):(0,b.jsx)(`span`,{children:String(e)})}function kp({arr:e,onSelect:t}){if(!e.length)return(0,b.jsx)(`p`,{className:`empty`,children:`none`});if(e.every(e=>e&&typeof e==`object`&&!Array.isArray(e))){let n=[];return e.forEach(e=>Object.keys(e).forEach(e=>!n.includes(e)&&n.push(e))),(0,b.jsxs)(`table`,{children:[(0,b.jsx)(`thead`,{children:(0,b.jsx)(`tr`,{children:n.map(e=>(0,b.jsx)(`th`,{children:e},e))})}),(0,b.jsx)(`tbody`,{children:e.map((e,r)=>(0,b.jsx)(`tr`,{children:n.map(n=>(0,b.jsx)(`td`,{children:(0,b.jsx)(Op,{v:e[n],onSelect:t})},n))},r))})]})}return(0,b.jsx)(`ul`,{className:`scalars`,children:e.map((e,n)=>(0,b.jsx)(`li`,{children:(0,b.jsx)(Op,{v:e,onSelect:t})},n))})}function Ap({incoming:e,outgoing:t,onSelect:n}){let r=[...t.map(e=>({direction:`uses`,target:e.to,edge:e})),...e.map(e=>({direction:`used by`,target:e.from,edge:e}))];return r.length?(0,b.jsxs)(`section`,{className:`block`,children:[(0,b.jsx)(`h3`,{children:`dependencies`}),(0,b.jsx)(`div`,{className:`body`,children:(0,b.jsxs)(`table`,{children:[(0,b.jsx)(`thead`,{children:(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`th`,{children:`direction`}),(0,b.jsx)(`th`,{children:`element`}),(0,b.jsx)(`th`,{children:`kind`}),(0,b.jsx)(`th`,{children:`path`})]})}),(0,b.jsx)(`tbody`,{children:r.map(({direction:e,target:t,edge:r},i)=>(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`td`,{children:e}),(0,b.jsx)(`td`,{children:(0,b.jsx)(Op,{v:t,onSelect:n})}),(0,b.jsx)(`td`,{children:r.kind}),(0,b.jsx)(`td`,{children:(0,b.jsx)(`code`,{children:r.path})})]},`${e}-${t}-${r.path}-${i}`))})]})})]}):null}function jp({selection:e,detail:t,incoming:n,outgoing:r,onSelect:i}){let a=Object.keys(t).filter(e=>e!==`parse_status`&&e!==`mdl`).sort((e,t)=>{let n=Dp.indexOf(e),r=Dp.indexOf(t);return(n===-1?99:n)-(r===-1?99:r)});return(0,b.jsxs)(`div`,{className:`detail`,children:[(0,b.jsx)(`h2`,{children:e.label}),(0,b.jsxs)(`div`,{className:`qn`,children:[e.type,` · `,e.qn,t.parse_status&&(0,b.jsx)(`span`,{className:`pill `+(t.parse_status===`parsed`?`ok`:`warn`),children:t.parse_status})]}),e.type===`entity`&&(0,b.jsx)(Tp,{qn:e.qn,detail:t}),(0,b.jsx)(Ap,{incoming:n,outgoing:r,onSelect:i}),a.map(e=>{let n=t[e];return(0,b.jsxs)(`section`,{className:`block`,children:[(0,b.jsx)(`h3`,{children:e.replace(/_/g,` `)}),(0,b.jsx)(`div`,{className:`body`,children:Array.isArray(n)?(0,b.jsx)(kp,{arr:n,onSelect:i}):n&&typeof n==`object`?(0,b.jsx)(`table`,{children:(0,b.jsx)(`tbody`,{children:Object.entries(n).map(([e,t])=>(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`th`,{children:e}),(0,b.jsx)(`td`,{children:(0,b.jsx)(Op,{v:t,onSelect:i})})]},e))})}):(0,b.jsx)(Op,{v:n,onSelect:i})})]},e)}),t.mdl&&(0,b.jsxs)(`section`,{className:`block`,children:[(0,b.jsx)(`h3`,{children:`MDL`}),(0,b.jsx)(`pre`,{children:t.mdl})]})]})}function Mp(){let[e,t]=(0,_.useState)(``),[n,r]=(0,_.useState)([]),[i,a]=(0,_.useState)(!1),[o,s]=(0,_.useState)(!1),[c,l]=(0,_.useState)(),[u,d]=(0,_.useState)(!1),[f,p]=(0,_.useState)(),m=async e=>{s(!0);let{data:t,mocked:n}=await Vf(e);r(t),a(n),s(!1)};(0,_.useEffect)(()=>{m(``)},[]);let h=async e=>{p(e.id);let t=await Hf(e.id,e.latestVersion,u);p(void 0),l(t.message),t.ok?setTimeout(()=>window.location.reload(),1800):setTimeout(()=>l(void 0),6e3)};return(0,b.jsxs)(`div`,{className:`market`,children:[(0,b.jsxs)(`div`,{className:`market-head`,children:[(0,b.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),m(e)},children:[(0,b.jsx)(`input`,{type:`search`,placeholder:`Search the Mendix marketplace…`,value:e,onChange:e=>t(e.target.value)}),(0,b.jsx)(`button`,{type:`submit`,children:`Search`})]}),(0,b.jsxs)(`label`,{className:`git-hint`,title:`Installing imports the module into the .mpr, which Studio Pro locks while open`,children:[(0,b.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked)}),`Studio Pro is closed`]}),i&&(0,b.jsx)(`span`,{className:`mock-badge`,title:`Backend not connected — showing offline sample data`,children:`offline sample`})]}),o?(0,b.jsx)(`p`,{className:`empty pad`,children:`Searching…`}):(0,b.jsxs)(`div`,{className:`market-list`,children:[n.map(e=>(0,b.jsxs)(`div`,{className:`market-card`,children:[(0,b.jsxs)(`div`,{className:`market-card-main`,children:[(0,b.jsxs)(`div`,{className:`market-title`,children:[e.name,e.latestVersion&&(0,b.jsxs)(`span`,{className:`ver`,children:[`v`,e.latestVersion]})]}),(0,b.jsxs)(`div`,{className:`market-sub`,children:[e.publisher,` `,e.category?`· ${e.category}`:``,e.rating?` · ★ ${e.rating}`:``,e.downloads?` · ${(e.downloads/1e3).toFixed(0)}k downloads`:``]}),e.summary&&(0,b.jsx)(`div`,{className:`market-summary`,children:e.summary})]}),(0,b.jsx)(`button`,{className:`w-btn`,disabled:!u||f===e.id,onClick:()=>h(e),children:f===e.id?`Installing…`:`Install`})]},e.id)),!n.length&&(0,b.jsx)(`p`,{className:`empty pad`,children:`No results.`})]}),c&&(0,b.jsx)(`div`,{className:`toast`,children:c})]})}var Np=[{title:`Object activities`,items:[{icon:`⬇`,label:`Cast object`},{icon:`✎`,label:`Change object`},{icon:`✔`,label:`Commit object(s)`},{icon:`+`,label:`Create object`},{icon:`🗑`,label:`Delete object(s)`},{icon:`⤵`,label:`Retrieve`},{icon:`↺`,label:`Rollback object`}]},{title:`List activities`,items:[{icon:`Σ`,label:`Aggregate list`},{icon:`⇄`,label:`Change list`},{icon:`+`,label:`Create list`},{icon:`≣`,label:`List operation`}]},{title:`Action call activities`,items:[{icon:`☕`,label:`Java action call`},{icon:`⚙`,label:`Microflow call`}]},{title:`Variable activities`,items:[{icon:`✎`,label:`Change variable`},{icon:`+`,label:`Create variable`}]},{title:`Client activities`,items:[{icon:`▤`,label:`Show page`},{icon:`⚑`,label:`Show message`},{icon:`↧`,label:`Download file`}]}],Pp=[{title:`Data containers`,items:[{icon:`▤`,label:`Data view`},{icon:`▦`,label:`Data grid 2`},{icon:`≣`,label:`List view`},{icon:`🖼`,label:`Gallery`},{icon:`⊞`,label:`Template grid`},{icon:`⤵`,label:`Reference selector`}]},{title:`Text`,items:[{icon:`𝐀`,label:`Text`},{icon:`𝐇`,label:`Heading`},{icon:`🖼`,label:`Image`}]},{title:`Structure`,items:[{icon:`▭`,label:`Container`},{icon:`▥`,label:`Layout grid`},{icon:`▦`,label:`Table`},{icon:`◫`,label:`Group box`},{icon:`❐`,label:`Tab container`},{icon:`⇳`,label:`Scroll container`}]},{title:`Buttons & links`,items:[{icon:`▣`,label:`Button`},{icon:`🔗`,label:`Link button`},{icon:`▶`,label:`Action button`}]},{title:`Input elements`,items:[{icon:`▭`,label:`Text box`},{icon:`☑`,label:`Check box`},{icon:`▾`,label:`Combo box`},{icon:`◉`,label:`Radio buttons`},{icon:`📅`,label:`Date picker`},{icon:`≡`,label:`Drop-down`}]}],Fp=[{title:`Building blocks`,items:[{icon:`🧱`,label:`Cards`},{icon:`🧱`,label:`Lists`},{icon:`🧱`,label:`Headers`}]}],Ip=[{title:`Domain model`,items:[{icon:`🗄`,label:`Entity`},{icon:`🔗`,label:`Association`},{icon:`🔤`,label:`Enumeration`}]}];function Lp(e,t){switch(e){case`microflow`:case`nanoflow`:return Np;case`entity`:case`domainmodel`:return Ip;default:return t===`blocks`?Fp:Pp}}function Rp({context:e}){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(`widgets`),[a,o]=(0,_.useState)(new Set),s=!e||[`page`,`snippet`,`layout`,`pagetemplate`].includes(e),c=(0,_.useMemo)(()=>{let n=Lp(e,r),i=t.trim().toLowerCase();return i?n.map(e=>({...e,items:e.items.filter(e=>e.label.toLowerCase().includes(i))})).filter(e=>e.items.length):n},[e,r,t]),l=e=>o(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return(0,b.jsxs)(`div`,{className:`toolbox`,children:[(0,b.jsx)(`div`,{className:`toolbox-title`,children:`Toolbox`}),s&&(0,b.jsxs)(`div`,{className:`tb-tabs`,children:[(0,b.jsx)(`button`,{className:r===`widgets`?`on`:``,onClick:()=>i(`widgets`),children:`Widgets`}),(0,b.jsx)(`button`,{className:r===`blocks`?`on`:``,onClick:()=>i(`blocks`),children:`Building blocks`})]}),(0,b.jsx)(`input`,{className:`tb-search`,type:`search`,placeholder:`Search…`,value:t,onChange:e=>n(e.target.value)}),c.map(e=>{let t=!a.has(e.title);return(0,b.jsxs)(`div`,{className:`tb-group`,children:[(0,b.jsxs)(`button`,{className:`tb-group-title`,onClick:()=>l(e.title),children:[(0,b.jsx)(`span`,{className:`tb-chev`+(t?` open`:``),children:`▸`}),e.title]}),t&&(0,b.jsx)(`div`,{className:`tb-items`,children:e.items.map(e=>(0,b.jsxs)(`div`,{className:`tb-item`,title:`Drag onto the canvas to add ${e.label}`,draggable:!0,onDragStart:t=>{t.dataTransfer.setData(`application/mrb-item`,JSON.stringify(e)),t.dataTransfer.effectAllowed=`copy`},children:[(0,b.jsx)(`span`,{className:`tb-icon`,children:e.icon}),(0,b.jsx)(`span`,{className:`tb-label`,children:e.label})]},e.label))})]},e.title)}),!c.length&&(0,b.jsx)(`p`,{className:`empty pad`,children:`No matches.`})]})}function zp(){let[e,t]=(0,_.useState)(),[n,r]=(0,_.useState)([]),[i,a]=(0,_.useState)([]),[o,s]=(0,_.useState)(!1),[c,l]=(0,_.useState)(!1),[u,d]=(0,_.useState)(),[f,p]=(0,_.useState)(),[m,h]=(0,_.useState)(``),[g,v]=(0,_.useState)(``),[y,x]=(0,_.useState)(``),[S,C]=(0,_.useState)(!1),w=(0,_.useCallback)(async()=>{try{let[e,n,i]=await Promise.all([Yf.status(),Yf.branches(),Yf.stashList()]);t(e),r(n.branches),a(i.stash),d(void 0)}catch(e){d(String(e instanceof Error?e.message:e))}},[]);(0,_.useEffect)(()=>{w()},[w]);let T=async(e,t)=>{l(!0),d(void 0),p(void 0);try{await t(),p(e)}catch(e){d(String(e instanceof Error?e.message:e))}finally{await w(),l(!1)}},E=n.filter(e=>!e.startsWith(`origin/`)),D=n.filter(e=>e.startsWith(`origin/`)),O=o&&!c;return(0,b.jsxs)(`div`,{className:`git-panel`,children:[(0,b.jsxs)(`div`,{className:`git-head`,children:[(0,b.jsxs)(`div`,{className:`git-current`,children:[(0,b.jsxs)(`span`,{className:`git-branch`,children:[(0,b.jsx)(`span`,{className:`git-ico`,children:`⎇`}),e?e.branch:`…`]}),e&&(0,b.jsx)(`span`,{className:e.clean?`git-tag clean`:`git-tag dirty`,children:e.clean?`clean`:`uncommitted changes`}),e?.operation_in_progress&&(0,b.jsxs)(`span`,{className:`git-tag dirty`,children:[e.operation_in_progress,` in progress`]})]}),(0,b.jsx)(`button`,{className:`w-btn`,onClick:w,disabled:c,children:`Refresh`})]}),(0,b.jsxs)(`label`,{className:`git-guard`,children:[(0,b.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>s(e.target.checked)}),`Studio Pro is closed (required — it locks the .mpr while open)`]}),u&&(0,b.jsx)(`div`,{className:`git-error`,children:u}),f&&(0,b.jsx)(`div`,{className:`git-notice`,children:f}),(0,b.jsxs)(`section`,{className:`git-section`,children:[(0,b.jsx)(`h3`,{children:`Branches`}),(0,b.jsxs)(`form`,{className:`git-inline`,onSubmit:e=>{e.preventDefault(),m.trim()&&T(`Created and switched to ${m.trim()}`,()=>Yf.create(m.trim(),o)).then(()=>h(``))},children:[(0,b.jsx)(`input`,{placeholder:`new-branch-name`,value:m,onChange:e=>h(e.target.value)}),(0,b.jsx)(`button`,{className:`w-btn`,type:`submit`,disabled:!O||!m.trim(),children:`Create branch`}),(0,b.jsx)(`button`,{className:`w-btn`,type:`button`,disabled:c,onClick:()=>T(`Fetched from origin`,()=>Yf.fetch()),children:`Fetch`})]}),(0,b.jsxs)(`ul`,{className:`git-list`,children:[E.map(t=>(0,b.jsxs)(`li`,{className:t===e?.branch?`on`:``,children:[(0,b.jsx)(`span`,{children:t}),t===e?.branch?(0,b.jsx)(`span`,{className:`git-hint`,children:`current`}):(0,b.jsx)(`button`,{className:`w-btn`,disabled:!O,onClick:()=>T(`Switched to ${t}`,()=>Yf.switch(t,o)),children:`Switch`})]},t)),D.map(e=>(0,b.jsxs)(`li`,{className:`remote`,children:[(0,b.jsx)(`span`,{children:e}),(0,b.jsx)(`button`,{className:`w-btn`,disabled:!O,onClick:()=>T(`Checked out ${e.replace(/^origin\//,``)}`,()=>Yf.switch(e.replace(/^origin\//,``),o)),children:`Check out`})]},e))]})]}),(0,b.jsxs)(`section`,{className:`git-section`,children:[(0,b.jsx)(`h3`,{children:`Commit`}),(0,b.jsxs)(`form`,{className:`git-inline`,onSubmit:e=>{e.preventDefault(),g.trim()&&T(`Committed the project changes`,()=>Yf.commit(g.trim(),o)).then(()=>v(``))},children:[(0,b.jsx)(`input`,{placeholder:`Commit message`,value:g,onChange:e=>v(e.target.value)}),(0,b.jsx)(`button`,{className:`w-btn`,type:`submit`,disabled:!O||!g.trim()||e?.clean,children:`Commit`})]}),e?.clean&&(0,b.jsx)(`p`,{className:`git-hint pad`,children:`Nothing to commit — the working tree is clean.`})]}),(0,b.jsxs)(`section`,{className:`git-section`,children:[(0,b.jsx)(`h3`,{children:`Stash`}),(0,b.jsxs)(`form`,{className:`git-inline`,onSubmit:e=>{e.preventDefault(),T(`Stashed the working changes`,()=>Yf.stashPush(y.trim(),S,o)).then(()=>x(``))},children:[(0,b.jsx)(`input`,{placeholder:`Stash message (optional)`,value:y,onChange:e=>x(e.target.value)}),(0,b.jsxs)(`label`,{className:`git-hint`,children:[(0,b.jsx)(`input`,{type:`checkbox`,checked:S,onChange:e=>C(e.target.checked)}),`include untracked`]}),(0,b.jsx)(`button`,{className:`w-btn`,type:`submit`,disabled:!O||e?.clean,children:`Stash push`})]}),(0,b.jsxs)(`ul`,{className:`git-list`,children:[i.map(e=>{let t=e.match(/^(stash@\{\d+\})/)?.[1]??`stash@{0}`;return(0,b.jsxs)(`li`,{children:[(0,b.jsx)(`span`,{className:`git-stash`,children:e}),(0,b.jsxs)(`span`,{className:`git-actions`,children:[(0,b.jsx)(`button`,{className:`w-btn`,disabled:!O,onClick:()=>T(`Applied ${t}`,()=>Yf.stashApply(t,!1,o)),children:`Apply`}),(0,b.jsx)(`button`,{className:`w-btn`,disabled:!O,onClick:()=>T(`Popped ${t}`,()=>Yf.stashApply(t,!0,o)),children:`Pop`}),(0,b.jsx)(`button`,{className:`w-btn danger`,disabled:c,onClick:()=>T(`Dropped ${t}`,()=>Yf.stashDrop(t)),children:`Drop`})]})]},e)}),!i.length&&(0,b.jsx)(`li`,{className:`git-empty`,children:`No stashed changes.`})]})]})]})}var Bp=44,Vp=24,Hp=42,Up=4;function Wp(e){return e.split(`.`).pop()??e}function Gp(e){return e.filter(e=>e.type===`module`).map(e=>e.label).sort()}function Kp(e){let t=[];for(let n of e){if(n.type!==`module`)continue;let e=r=>{for(let i of r??[])i.type===`entity`&&i.qualifiedName&&t.push({qn:i.qualifiedName,module:n.label}),e(i.children)};e(n.children)}return t}function qp(e){return Bp+(e.attributes.length+e.refs.length)*Vp+12}function Jp(e,t,n,r){let i=Kp(e),a=[...new Set(i.map(e=>e.module))].sort(),o=i.filter(e=>r.has(e.module)),s=new Set(o.map(e=>e.qn)),c=new Map;for(let e of n){if(!s.has(e.from)||!s.has(e.to))continue;let t=c.get(e.from)??[];t.push({qn:e.qn,targetQn:e.to,targetName:Wp(e.to),many:e.type===`ReferenceSet`}),c.set(e.from,t)}let l=Array(Up).fill(20),u=o.map((e,n)=>{let r=t[e.qn],i={qn:e.qn,name:Wp(e.qn),module:e.module,generalization:r?.generalization,persistable:r?.persistable!==!1,attributes:Array.isArray(r?.attributes)?r.attributes:[],refs:c.get(e.qn)??[]},a=n%Up,o=20+a*282,s=l[a];return l[a]=s+qp(i)+Hp,{id:e.qn,type:`erTable`,position:{x:o,y:s},data:i}}),d=[];for(let e of n){if(!s.has(e.from)||!s.has(e.to))continue;let t=e.type===`ReferenceSet`;d.push({id:e.qn,source:e.from,target:e.to,sourceHandle:`ref-${e.qn}`,label:t?`* — *`:`* — 1`,style:{stroke:`var(--edge)`,strokeWidth:1.5},labelStyle:{fill:`var(--muted)`,fontSize:10},labelBgStyle:{fill:`var(--panel)`,fillOpacity:.85}})}return{nodes:u,edges:d,modules:a}}function Yp({data:e}){let t=e;return(0,b.jsxs)(`div`,{className:`er-table`,children:[(0,b.jsx)(Gl,{type:`target`,position:B.Left,className:`er-handle`}),(0,b.jsxs)(`div`,{className:`er-th`,children:[(0,b.jsx)(`span`,{className:`er-name`,children:t.name}),!t.persistable&&(0,b.jsx)(`span`,{className:`er-badge`,children:`non-persistent`})]}),t.generalization&&(0,b.jsxs)(`div`,{className:`er-gen`,children:[`↳ `,t.generalization]}),(0,b.jsxs)(`div`,{className:`er-body`,children:[t.attributes.map(e=>(0,b.jsxs)(`div`,{className:`er-row`,children:[(0,b.jsxs)(`span`,{className:`er-col`,children:[e.required&&(0,b.jsx)(`span`,{className:`er-req`,title:`required`,children:`•`}),e.name]}),(0,b.jsx)(`span`,{className:`er-type`,children:e.type??``})]},e.name)),t.refs.map(e=>(0,b.jsxs)(`div`,{className:`er-row er-ref`,children:[(0,b.jsxs)(`span`,{className:`er-col`,children:[(0,b.jsx)(`span`,{className:`er-link`,title:`association`,children:`🔗`}),e.targetName]}),(0,b.jsx)(`span`,{className:`er-type`,children:e.many?`* ref`:`ref`}),(0,b.jsx)(Gl,{type:`source`,position:B.Right,id:`ref-${e.qn}`,className:`er-handle`})]},e.qn)),!t.attributes.length&&!t.refs.length&&(0,b.jsx)(`div`,{className:`er-row er-empty`,children:`no attributes`})]})]})}var Xp={erTable:Yp},Zp=`mrb-er-pos`,Qp=`mrb-er-modules`;function $p(){try{return JSON.parse(localStorage.getItem(Zp)??`{}`)}catch{return{}}}function em(e){let t=$p();for(let n of e)t[n.id]=n.position;localStorage.setItem(Zp,JSON.stringify(t))}function tm(e){try{let t=JSON.parse(localStorage.getItem(Qp)??`null`);if(Array.isArray(t))return new Set(t.filter(t=>e.includes(t)))}catch{}return new Set(e)}function nm({tree:e,details:t,assocs:n,onOpenEntity:r}){let i=(0,_.useMemo)(()=>Gp(e),[e]),[a,o]=(0,_.useState)(()=>tm(i)),s=(0,_.useMemo)(()=>Jp(e,t,n,a),[e,t,n,a]),[c,l]=(0,_.useState)([]);(0,_.useEffect)(()=>{let e=$p();l(s.nodes.map(t=>e[t.id]?{...t,position:e[t.id]}:t))},[s]),(0,_.useEffect)(()=>{localStorage.setItem(Qp,JSON.stringify([...a]))},[a]);let u=(0,_.useCallback)(e=>{l(t=>{let n=al(e,t);return e.some(e=>e.type===`position`&&e.dragging===!1)&&em(n),n})},[]),d=e=>o(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return(0,b.jsxs)(`div`,{className:`er-view`,children:[(0,b.jsxs)(`div`,{className:`er-toolbar`,children:[(0,b.jsx)(`span`,{className:`er-filter-label`,children:`Modules`}),(0,b.jsx)(`div`,{className:`er-chips`,children:i.map(e=>(0,b.jsx)(`button`,{className:a.has(e)?`er-chip on`:`er-chip`,onClick:()=>d(e),children:e},e))}),(0,b.jsx)(`span`,{className:`spacer`}),(0,b.jsx)(`button`,{className:`er-mini`,onClick:()=>o(new Set(i)),children:`All`}),(0,b.jsx)(`button`,{className:`er-mini`,onClick:()=>o(new Set),children:`None`}),(0,b.jsxs)(`span`,{className:`er-count`,children:[c.length,` tables · `,s.edges.length,` relationships`]})]}),(0,b.jsx)(`div`,{className:`er-canvas`,children:c.length===0?(0,b.jsx)(`p`,{className:`empty pad`,children:`Select one or more modules to compose the diagram.`}):(0,b.jsxs)(Sd,{nodes:c,edges:s.edges,nodeTypes:Xp,onNodesChange:u,fitView:!0,minZoom:.1,proOptions:{hideAttribution:!0},onNodeClick:(e,t)=>r(t.id),children:[(0,b.jsx)(jd,{color:`var(--grid)`,gap:18}),(0,b.jsx)(rf,{pannable:!0,zoomable:!0,maskColor:`rgba(0,0,0,0.45)`,nodeColor:`var(--accent)`}),(0,b.jsx)(Bd,{showInteractive:!1})]})})]})}var rm=`/api`;function im({onOpen:e}){let[t,n]=(0,_.useState)(),[r,i]=(0,_.useState)();if((0,_.useEffect)(()=>{fetch(`${rm}/drafts`).then(e=>e.ok?e.json():Promise.reject(Error(String(e.status)))).then(n).catch(e=>i(String(e)))},[]),r)return(0,b.jsxs)(`p`,{className:`empty pad`,children:[`Drafts unavailable: `,r]});if(!t)return(0,b.jsx)(`p`,{className:`empty pad`,children:`Loading drafts…`});let a=Object.entries(t.entities),o=Object.entries(t.pages),s=(t,n,r,i,a)=>(0,b.jsxs)(`div`,{className:`draft-card`,children:[(0,b.jsxs)(`div`,{className:`draft-head`,children:[(0,b.jsx)(`a`,{className:`ref`,onClick:()=>e(t),children:t}),(0,b.jsx)(`span`,{className:r?`git-tag clean`:`git-tag dirty`,children:r?`valid`:`blocked`}),n&&(0,b.jsx)(`span`,{className:`draft-when`,children:new Date(n).toLocaleString()})]}),i&&(0,b.jsx)(`div`,{className:`draft-note`,children:i}),a&&(0,b.jsxs)(`details`,{children:[(0,b.jsx)(`summary`,{children:`MDL`}),(0,b.jsx)(`pre`,{children:a})]})]},t);return(0,b.jsxs)(`div`,{className:`drafts`,children:[(0,b.jsx)(`p`,{className:`draft-hint`,children:`Drafts are validated previews saved by the visual editors. Applying them to the project stays in the guarded CLI workflow (mxcli exec / mendix-apply).`}),(0,b.jsx)(`h3`,{children:`Page drafts`}),o.length===0&&(0,b.jsx)(`p`,{className:`empty`,children:`No page drafts yet — use "Save page" in the page builder.`}),o.map(([e,t])=>s(e,t.saved_at,t.valid!==!1,t.message,t.mdl)),(0,b.jsx)(`h3`,{children:`Entity drafts`}),a.length===0&&(0,b.jsx)(`p`,{className:`empty`,children:`No entity drafts yet — use "Edit entity" on a parsed entity.`}),a.map(([e,t])=>s(e,t.saved_at,!t.result?.blocked,t.result?.operation?.reason,t.result?.mdl))]})}var am=`/inventory`;async function om(e){let t=await fetch(e);if(!t.ok)throw Error(`${t.status} ${t.statusText} — ${e}`);return t.json()}async function sm(){let[e,t,n,r,i]=await Promise.all([om(`${am}/project-tree.json`),om(`${am}/element-details.json`),om(`${am}/mendix-project.json`).catch(()=>({})),om(`${am}/dependencies.json`).catch(()=>({schema_version:1,nodes:0,edges:[]})),om(`${am}/ui-layouts.json`).catch(()=>({}))]);return{tree:e,details:t,meta:n,dependencies:r,layouts:i}}function cm(){return om(`/api/health`)}function lm(){let[e,t]=(0,_.useState)(),[n,r]=(0,_.useState)();return(0,_.useEffect)(()=>{Yf.status().then(t).catch(e=>r(String(e instanceof Error?e.message:e)))},[]),(0,b.jsxs)(`div`,{className:`detail-drawer console-pane`,children:[n&&(0,b.jsxs)(`p`,{className:`muted`,children:[`Changes unavailable: `,n]}),e&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`p`,{children:[`Branch `,(0,b.jsx)(`code`,{children:e.branch}),` ·`,` `,e.clean?`no uncommitted changes`:`uncommitted changes in the working tree`,e.operation_in_progress?` · ${e.operation_in_progress} in progress`:``]}),(0,b.jsx)(`p`,{className:`muted`,children:`Commit, stash, and switch from the Git tab.`})]})]})}var um=`ruby`,dm=[{id:`ruby`,label:`Ruby`},{id:`studio-pro`,label:`Studio Pro`},{id:`tokyo-night`,label:`Tokyo Night`},{id:`dracula`,label:`Dracula`},{id:`gruvbox`,label:`Gruvbox`},{id:`catppuccin`,label:`Catppuccin`}];function fm(e){let t=e.filter(e=>!(e.type===`module`&&e.label===`System`)),n=e.filter(e=>e.type===`module`&&e.label===`System`);return[...t,...n]}function pm(){let[e,t]=(0,_.useState)(null),[n,r]=(0,_.useState)(),[i,a]=(0,_.useState)(),[o,s]=(0,_.useState)(),[c,l]=(0,_.useState)(`explorer`),[u,d]=(0,_.useState)(),[f,p]=(0,_.useState)(()=>localStorage.getItem(`mrb-theme`)??um);(0,_.useEffect)(()=>{sm().then(t).catch(e=>r(String(e))),cm().then(a).catch(()=>a(void 0))},[]),(0,_.useEffect)(()=>{document.documentElement.dataset.theme=f,localStorage.setItem(`mrb-theme`,f)},[f]);let m=(0,_.useMemo)(()=>e?cf(e.details):[],[e]),h=(0,_.useMemo)(()=>e?fm(e.tree):[],[e]),g=t=>{if(!e)return;let n,r=e=>{for(let i of e)i.qualifiedName===t&&(n={qn:t,type:i.type,label:i.label}),i.children&&r(i.children)};r(e.tree),s(n??{qn:t,type:e.details[t]?.kind??`element`,label:t.split(`.`).pop()??t})};if(n)return(0,b.jsxs)(`div`,{className:`startup-state`,children:[(0,b.jsx)(`img`,{src:`/brand/mendix-ruby-bridge.png`,alt:``}),(0,b.jsxs)(`div`,{className:`fatal`,children:[`Failed to load inventory: `,n]})]});if(!e)return(0,b.jsxs)(`div`,{className:`startup-state`,children:[(0,b.jsx)(`img`,{src:`/brand/mendix-ruby-bridge.png`,alt:``}),(0,b.jsx)(`div`,{className:`loading`,children:`Loading inventory…`})]});let v=e.meta,y=o?e.details[o.qn]:void 0,x=o?e.dependencies.edges.filter(e=>e.to===o.qn):[],S=o?e.dependencies.edges.filter(e=>e.from===o.qn):[],C=c===`explorer`;return(0,b.jsxs)(`div`,{className:`app`,children:[(0,b.jsxs)(`header`,{children:[(0,b.jsxs)(`span`,{className:`app-name`,children:[(0,b.jsx)(`img`,{src:`/brand/mendix-ruby-bridge.png`,alt:`Mendix Ruby Bridge`}),(0,b.jsx)(`span`,{children:v.source_project?.split(`/`).pop()?.replace(/\.mpr$/,``)??`Mendix Bridge`})]}),(0,b.jsxs)(`nav`,{className:`tabs`,children:[(0,b.jsx)(`button`,{className:c===`explorer`?`on`:``,onClick:()=>l(`explorer`),children:`App Explorer`}),(0,b.jsx)(`button`,{className:c===`er`?`on`:``,onClick:()=>l(`er`),children:`ER Diagram`}),(0,b.jsx)(`button`,{className:c===`marketplace`?`on`:``,onClick:()=>l(`marketplace`),children:`Marketplace`}),(0,b.jsx)(`button`,{className:c===`drafts`?`on`:``,onClick:()=>l(`drafts`),children:`Drafts`}),i?.capabilities?.git&&(0,b.jsx)(`button`,{className:c===`git`?`on`:``,onClick:()=>l(`git`),children:`Git`})]}),(0,b.jsx)(`span`,{className:`spacer`}),(0,b.jsxs)(`label`,{className:`theme-pick`,children:[`Theme`,(0,b.jsx)(`select`,{value:f,onChange:e=>p(e.target.value),children:dm.map(e=>(0,b.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})]}),c===`marketplace`?(0,b.jsx)(Mp,{}):c===`git`?(0,b.jsx)(zp,{}):c===`drafts`?(0,b.jsx)(im,{onOpen:e=>{g(e),l(`explorer`)}}):c===`er`?(0,b.jsx)(nm,{tree:h,details:e.details,assocs:m,onOpenEntity:e=>{g(e),l(`explorer`)}}):(0,b.jsxs)(`div`,{className:`layout`,children:[(0,b.jsx)(`aside`,{children:(0,b.jsx)(T,{tree:h,hasDetail:t=>!!e.details[t],selected:o?.qn,onSelect:s})}),(0,b.jsxs)(`main`,{children:[!o&&(0,b.jsx)(`p`,{className:`empty pad`,children:`Select an element to explore it.`}),o&&y&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`div`,{className:`doc-tabs`,children:(0,b.jsxs)(`div`,{className:`doc-tab on`,children:[(0,b.jsxs)(`span`,{className:`doc-tab-label`,children:[o.label,` `,(0,b.jsxs)(`span`,{className:`doc-tab-module`,children:[`[`,o.qn.split(`.`)[0],`]`]})]}),(0,b.jsx)(`button`,{className:`doc-tab-close`,title:`Close`,onClick:()=>s(void 0),children:`×`})]})}),(0,b.jsxs)(`div`,{className:`editor-bar`,children:[(0,b.jsx)(`span`,{className:`editor-kind`,children:o.type}),(0,b.jsx)(`span`,{className:`editor-qn`,children:o.qn})]}),(0,b.jsx)(`div`,{className:`editor-body`,children:(0,b.jsx)(Sp,{selection:o,details:e.details,assocs:m,layouts:e.layouts,onSelect:g})}),u===`details`&&(0,b.jsx)(`div`,{className:`detail-drawer`,children:(0,b.jsx)(jp,{selection:o,detail:y,incoming:x,outgoing:S,onSelect:g})}),u===`console`&&(0,b.jsxs)(`div`,{className:`detail-drawer console-pane`,children:[(0,b.jsxs)(`p`,{children:[`Backend v`,i?.version??`?`,` · `,v.element_count??`?`,` elements · `,e.dependencies.edges.length,` dependencies`]}),(0,b.jsx)(`p`,{className:`muted`,children:`Guarded writes (git, migrations, marketplace install) run through mxcli with Studio Pro closed.`})]}),u===`changes`&&(0,b.jsx)(lm,{}),u===`errors`&&(0,b.jsx)(`div`,{className:`detail-drawer console-pane`,children:(0,b.jsx)(`p`,{className:`muted`,children:"No consistency errors reported. Run `mx check` via the guarded workflow for a full report."})}),(0,b.jsxs)(`div`,{className:`console-bar`,children:[[`details`,`changes`,`errors`,`console`].map(e=>(0,b.jsx)(`button`,{className:u===e?`on`:``,onClick:()=>d(t=>t===e?void 0:e),children:e[0].toUpperCase()+e.slice(1)},e)),(0,b.jsx)(`span`,{className:`spacer`}),(0,b.jsxs)(`span`,{className:`console-hint`,children:[o.type,` · `,o.qn]})]})]})]}),C&&(0,b.jsx)(Rp,{context:o?.type})]}),(0,b.jsxs)(`footer`,{className:`statusbar`,children:[(0,b.jsx)(`img`,{className:`status-logo`,src:`/favicon.png`,alt:``}),(0,b.jsx)(`span`,{children:i?`Backend v${i.version}`:`Backend unavailable`}),(0,b.jsx)(`span`,{className:`spacer`}),o&&(0,b.jsxs)(`span`,{children:[o.type,` · `,o.qn]}),(0,b.jsx)(`span`,{className:`sb-meta`,children:v.element_count?`${v.element_count} elements`:``}),(0,b.jsx)(`span`,{className:`sb-meta`,children:`${e.dependencies.edges.length} dependencies`})]})]})}(0,v.createRoot)(document.getElementById(`root`)).render((0,b.jsx)(_.StrictMode,{children:(0,b.jsx)(pm,{})})); \ No newline at end of file diff --git a/web/dist/index.html b/web/dist/index.html index 4d8dde7..3598753 100644 --- a/web/dist/index.html +++ b/web/dist/index.html @@ -7,8 +7,8 @@ - Mendix Ruby Bridge - + Mendix Ruby + diff --git a/web/index.html b/web/index.html index 99b3ab3..dbf1d16 100644 --- a/web/index.html +++ b/web/index.html @@ -7,7 +7,7 @@ - Mendix Ruby Bridge + Mendix Ruby
diff --git a/web/src/components/Drafts.tsx b/web/src/components/Drafts.tsx index 97fe0c0..9dac20a 100644 --- a/web/src/components/Drafts.tsx +++ b/web/src/components/Drafts.tsx @@ -21,6 +21,7 @@ interface PageDraft { interface DraftsPayload { entities: Record; pages: Record; + flows?: Record; } export default function Drafts({ onOpen }: { onOpen: (qn: string) => void }) { @@ -74,6 +75,14 @@ export default function Drafts({ onOpen }: { onOpen: (qn: string) => void }) { {pages.length === 0 &&

No page drafts yet — use "Save page" in the page builder.

} {pages.map(([qn, d]) => card(qn, d.saved_at, d.valid !== false, d.message, d.mdl))} +

Flow drafts

+ {Object.keys(data.flows ?? {}).length === 0 && ( +

No flow drafts yet — use "Save flow" in the microflow editor.

+ )} + {Object.entries(data.flows ?? {}).map(([qn, d]) => + card(qn, d.saved_at, d.valid !== false, d.message, d.mdl), + )} +

Entity drafts

{entities.length === 0 &&

No entity drafts yet — use "Edit entity" on a parsed entity.

} {entities.map(([qn, d]) => diff --git a/web/src/components/FlowCanvas.tsx b/web/src/components/FlowCanvas.tsx index 7ff32a5..f755ffd 100644 --- a/web/src/components/FlowCanvas.tsx +++ b/web/src/components/FlowCanvas.tsx @@ -6,7 +6,8 @@ import { } from "@xyflow/react"; import "@xyflow/react/dist/style.css"; import { flowGraph } from "../model/flow"; -import { saveLayout, type NodePosition } from "../model/api"; +import { flowBodyMdl } from "../model/flowMdl"; +import { saveFlow, saveLayout, type NodePosition } from "../model/api"; import { nodeTypes } from "./nodes"; // Studio Pro-like microflow editor: horizontal flow, a shortcut toolbar on top, @@ -189,6 +190,16 @@ function PersistedFlowInner({ qn, mdl, savedPositions, parameters = [] }: Props) +
{ + try { + const r = await fetch(`${BASE}/flow`, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify({ qn, body }), + }); + const parsed = (await r.json().catch(() => ({}))) as Partial & { error?: string }; + if (!r.ok && parsed.ok === undefined) throw new Error(parsed.error ?? `Save failed (${r.status}).`); + return parsed as SavePageResult; + } catch (e) { + return { ok: false, message: String(e instanceof Error ? e.message : e) }; + } +} + // ---- guarded Git workflow -------------------------------------------------- // Mutations require confirming Studio Pro is closed (it locks the .mpr). Unlike // the marketplace/layout helpers these never fake success: a failed guard or a diff --git a/web/src/model/flow.ts b/web/src/model/flow.ts index 463e7d8..60f7b45 100644 --- a/web/src/model/flow.ts +++ b/web/src/model/flow.ts @@ -11,6 +11,7 @@ interface RawNode { id: number; kind: FlowKind; label: string; + stmt: string | null; // original MDL statement (or decision expression), for round-trip x: number | null; y: number | null; } @@ -30,9 +31,9 @@ function parseFlow(mdl: string): { nodes: RawNode[]; edges: RawEdge[] } | null { const nodes: RawNode[] = []; const edges: RawEdge[] = []; let counter = 0; - const add = (kind: FlowKind, label: string, pos: { x: number; y: number } | null) => { + const add = (kind: FlowKind, label: string, pos: { x: number; y: number } | null, stmt: string | null = null) => { const id = counter++; - nodes.push({ id, kind, label: clip(label, 46), x: pos ? pos.x : null, y: pos ? pos.y : null }); + nodes.push({ id, kind, label: clip(label, 46), stmt, x: pos ? pos.x : null, y: pos ? pos.y : null }); return id; }; const startId = add("terminal", "Start", null); @@ -55,7 +56,7 @@ function parseFlow(mdl: string): { nodes: RawNode[]; edges: RawEdge[] } | null { if (!t) return; if (/^if\b/.test(t)) { const expr = t.replace(/^if\s+/, "").replace(/\s+then$/, ""); - const id = add("decision", caption || expr, pos); + const id = add("decision", caption || expr, pos, expr); connect(id); pos = null; caption = null; @@ -74,7 +75,7 @@ function parseFlow(mdl: string): { nodes: RawNode[]; edges: RawEdge[] } | null { } else if (/^(begin|end)\b/.test(t) || t.startsWith("@")) { // annotations handled elsewhere } else { - const id = add(kindOf(t), caption || t, pos); + const id = add(kindOf(t), caption || t, pos, t); connect(id); pos = null; caption = null; @@ -158,7 +159,7 @@ export function flowGraph(mdl: string): { nodes: Node[]; edges: Edge[] } | null id: String(n.id), type: nodeType(n), position: { x: ((n.x as number) - minX) * sx, y: ((n.y as number) - minY) * sy }, - data: { label: n.label, kind: n.kind }, + data: { label: n.label, kind: n.kind, stmt: n.stmt }, })); const edges: Edge[] = g.edges.map((e, i) => ({ id: `e${i}`, diff --git a/web/src/model/flowMdl.ts b/web/src/model/flowMdl.ts new file mode 100644 index 0000000..e50fb89 --- /dev/null +++ b/web/src/model/flowMdl.ts @@ -0,0 +1,137 @@ +// Serialize the flow canvas (nodes + edges) back into a microflow body: the +// inverse of parseFlow in flow.ts. Walks the graph from Start, re-emitting the +// original statements (kept in node data) with current @position/@caption +// annotations, and reconstructs if/else/end if from decision branches. New +// blocks without an original statement get a valid DECLARE placeholder. +// `mxcli check` on the backend is the real gate. + +import type { Edge, Node } from "@xyflow/react"; + +interface FlowData { + label?: string; + kind?: string; + stmt?: string | null; +} + +interface Ctx { + byId: Map; + outs: Map; + lines: string[]; + visited: Set; + synth: number; +} + +const data = (node: Node): FlowData => node.data as FlowData; + +function annotations(node: Node, ctx: Ctx, indent: string) { + ctx.lines.push(`${indent}@position(${Math.round(node.position.x)}, ${Math.round(node.position.y)})`); + const d = data(node); + const label = (d.label ?? "").replace(/…$/, ""); + if (d.stmt && label && !d.stmt.startsWith(label)) { + ctx.lines.push(`${indent}@caption '${label.replace(/'/g, "''")}'`); + } +} + +function statement(node: Node, ctx: Ctx): string { + const d = data(node); + if (d.stmt) return d.stmt.endsWith(";") || node.type === "decision" ? d.stmt : `${d.stmt};`; + if (node.type === "end") return "return;"; + // Placeholder for blocks added on the canvas that have no MDL yet. + const name = `$NewValue${++ctx.synth}`; + return `DECLARE ${name} String = '${(d.label ?? "TODO").replace(/'/g, "''")}';`; +} + +/** All node ids reachable from `from` (bounded). */ +function reachable(from: string, ctx: Ctx): Set { + const seen = new Set(); + const queue = [from]; + while (queue.length && seen.size < 500) { + const id = queue.shift()!; + if (seen.has(id)) continue; + seen.add(id); + (ctx.outs.get(id) ?? []).forEach((edge) => queue.push(edge.target)); + } + return seen; +} + +/** First node on the false path that the true path also reaches (the if-join). */ +function findJoin(trueId: string | undefined, falseId: string | undefined, ctx: Ctx): string | undefined { + if (!trueId || !falseId) return undefined; + const trueSide = reachable(trueId, ctx); + const queue = [falseId]; + const seen = new Set(); + while (queue.length) { + const id = queue.shift()!; + if (seen.has(id)) continue; + seen.add(id); + if (trueSide.has(id)) return id; + (ctx.outs.get(id) ?? []).forEach((edge) => queue.push(edge.target)); + } + return undefined; +} + +function walk(id: string | undefined, stopId: string | undefined, ctx: Ctx, indent: string) { + while (id && id !== stopId) { + if (ctx.visited.has(id)) return; + ctx.visited.add(id); + const node = ctx.byId.get(id); + if (!node) return; + + if (node.type === "start") { + id = ctx.outs.get(id)?.[0]?.target; + continue; + } + + if (node.type === "decision") { + const branches = ctx.outs.get(id) ?? []; + const truthy = branches.find((b) => (b.label ?? "").toLowerCase() === "true") ?? branches[0]; + const falsy = branches.find((b) => b !== truthy); + const join = findJoin(truthy?.target, falsy?.target, ctx); + annotations(node, ctx, indent); + ctx.lines.push(`${indent}if ${data(node).stmt ?? data(node).label ?? "true"} then`); + walk(truthy?.target, join, ctx, indent + " "); + if (falsy) { + ctx.lines.push(`${indent}else`); + walk(falsy.target, join, ctx, indent + " "); + } + ctx.lines.push(`${indent}end if;`); + id = join; + continue; + } + + annotations(node, ctx, indent); + ctx.lines.push(`${indent}${statement(node, ctx)}`); + if (node.type === "end") return; + id = ctx.outs.get(id)?.[0]?.target; + } +} + +/** Microflow body MDL for the canvas graph (content between BEGIN and END). */ +export function flowBodyMdl(nodes: Node[], edges: Edge[]): string { + const ctx: Ctx = { + byId: new Map(nodes.map((node) => [node.id, node])), + outs: new Map(), + lines: [], + visited: new Set(), + synth: 0, + }; + edges.forEach((edge) => { + const list = ctx.outs.get(edge.source) ?? []; + list.push({ target: edge.target, label: typeof edge.label === "string" ? edge.label : undefined }); + ctx.outs.set(edge.source, list); + }); + + const start = nodes.find((node) => node.type === "start"); + walk(start?.id, undefined, ctx, " "); + + // Blocks not connected to the main path yet still serialize, so nothing the + // user added silently disappears from the draft. + nodes.forEach((node) => { + if (ctx.visited.has(node.id) || node.type === "start") return; + annotations(node, ctx, " "); + ctx.lines.push(` ${statement(node, ctx)}`); + ctx.visited.add(node.id); + }); + + return ctx.lines.join("\n"); +}