////////////////////////////////////////////////////////////////////// // CXFlowMonitor function CXFlowMonitor(px){ const el_control=px.el_control; // XFlow const XFlow=px.XFlow; const xfn_root=XFlow.find("/"); // Display Queue const b_console=px.b_console?px.b_console:0; let exeque=[]; let b_timer=null; // create a montree mapping const monmap=new WeakMap(); const montrees=px.montrees?px.montrees:["/"]; montrees.forEach((path)=>{ const xfn=XFlow.find(path); monmap.set(xfn,{ path, idx:1, el_prev:null, }); }); function getMonTreeRoot(xfn){ if(xfn){ const rec=monmap.get(xfn); if(rec){ return rec; }else if(xfn.prt){ return getMonTreeRoot(xfn.prt); } } return null; }; function monitor(idx,vpath,globals){ const vx=vpath.split("."); let p=globals; for(let i=0;i