@blueking/bkflow-canvas-editor 1.2.0-beta.0 → 1.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced.cjs.js +1 -1
- package/dist/advanced.d.ts +145 -5
- package/dist/advanced.esm.js +1 -1
- package/dist/{context-B9wWQx6k.cjs → context-Bj442dps.cjs} +1 -1
- package/dist/{context-CVSZiSc9.js → context-CdSU0w5S.js} +49 -21
- package/dist/{index-Ddt7hVPG.js → index-Bg_GQyNU.js} +1 -1
- package/dist/index-Bij1hZGP.js +56012 -0
- package/dist/{index-D_PNC9EL.cjs → index-BxGg3wAN.cjs} +1 -1
- package/dist/{index-C5XXJX1_.cjs → index-C98sai1H.cjs} +1 -1
- package/dist/{index-Ac8oJo2D.js → index-CFs7FBc2.js} +50 -48
- package/dist/index-DuddWhYg.cjs +93 -0
- package/dist/{index-GVGs8lwh.js → index-YTEMyQpg.js} +1 -1
- package/dist/{index-B0bs5G6n.cjs → index-uUrwPR1f.cjs} +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +177 -5
- package/dist/index.esm.js +5 -5
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/index-BUBxGOMp.cjs +0 -74
- package/dist/index-FsDBMpW4.js +0 -50941
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as A, ref as V, shallowRef as x, computed as C, watch as U, resolveComponent as j, resolveDirective as K, openBlock as l, createBlock as f, createSlots as S, withCtx as y, withDirectives as G, createElementBlock as d, createElementVNode as i, createCommentVNode as v, Fragment as H, renderList as J, toDisplayString as B, unref as Y, createVNode as R, createTextVNode as E } from "vue";
|
|
2
|
-
import { c as _, u as z, i as M, b as Q, d as W, g as X, D as Z, B as ee, R as te, E as ae, _ as oe } from "./index-
|
|
2
|
+
import { c as _, u as z, i as M, b as Q, d as W, g as X, D as Z, B as ee, R as te, E as ae, _ as oe } from "./index-Bij1hZGP.js";
|
|
3
3
|
import "bkui-vue/lib/message";
|
|
4
4
|
import "bkui-vue/lib/icon";
|
|
5
5
|
import "monaco-editor";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),d=require("./index-BUBxGOMp.cjs"),L={class:"debug-result-node-list"},D=["data-node-id","aria-selected","onClick","onKeydown"],z=["title"],A={key:0,class:"debug-result-node-list__mock","data-test":"node-mock-flag"},P={key:1,class:"debug-result-node-list__empty"},I=e.defineComponent({__name:"node-list",props:{nodes:{},modelValue:{default:""}},emits:["update:modelValue"],setup(c,{emit:g}){const t=c,s=g,r=e.ref(""),m=e.ref("all"),_=e.ref(null),p={not_run:"未执行",finished:"成功",failed:"失败",running:"正在调试",suspended:"挂起",skipped:"跳过",revoked:"终止"},k=[{value:"all",label:"全部"},{value:"finished",icon:"bkflow-canvas-dark-circle-checkbox",iconColor:"#5fb8ac",tooltip:p.finished},{value:"failed",icon:"bkflow-canvas-dark-circle-close",iconColor:"#fa4e41",tooltip:p.failed},{value:"revoked",icon:"bkflow-canvas-stop-fill",iconColor:"#fa4e41",tooltip:p.revoked},{value:"running",iconComponent:d.LoadingStatusIcon,iconColor:"#3a84ff",tooltip:p.running},{value:"not_run",icon:"bkflow-canvas-weizhixing2",iconColor:"#b8bbc4",tooltip:p.not_run},{value:"suspended",icon:"bkflow-canvas-zanting",iconColor:"#f59500",tooltip:p.suspended},{value:"skipped",icon:"bkflow-canvas-tiaoguo2",iconColor:"#6e89af",tooltip:p.skipped}],w=e.computed(()=>k.map(a=>({...a,count:a.value==="all"?t.nodes.length:t.nodes.filter(n=>n.status===a.value).length}))),V=e.computed(()=>{const a=r.value.trim().toLowerCase();return t.nodes.filter(n=>m.value!=="all"&&n.status!==m.value?!1:a?n.name.toLowerCase().includes(a)||n.type.toLowerCase().includes(a)||(n.typeName??"").toLowerCase().includes(a):!0)}),C=e.computed(()=>r.value.trim()?"搜索结果为空":m.value!=="all"?`暂无${p[m.value]}状态节点`:"暂无节点"),x=()=>{r.value="",m.value="all"},y=a=>{const n=_.value,v=n?.querySelector(`[data-node-id="${CSS.escape(a)}"]`);if(!n||!v)return;const o=n.getBoundingClientRect(),b=v.getBoundingClientRect();b.top<o.top?n.scrollTop-=o.top-b.top:b.bottom>o.bottom&&(n.scrollTop+=b.bottom-o.bottom)};return e.watch(()=>t.modelValue,async a=>{if(!a)return;!V.value.some(v=>v.id===a)&&t.nodes.some(v=>v.id===a)&&(r.value="",m.value="all"),await e.nextTick(),y(a)},{flush:"post"}),(a,n)=>{const v=e.resolveComponent("bk-input");return e.openBlock(),e.createElementBlock("aside",L,[e.createVNode(v,{modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=o=>r.value=o),class:"debug-result-node-list__search",placeholder:"搜索节点名称 / 类型",type:"search",clearable:"","data-test":"node-search"},null,8,["modelValue"]),e.createVNode(d.SegmentTabs,{modelValue:m.value,"onUpdate:modelValue":n[1]||(n[1]=o=>m.value=o),class:"debug-result-node-list__filters","data-test":"status-filters",items:w.value},null,8,["modelValue","items"]),V.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"itemsRef",ref:_,class:"debug-result-node-list__items",role:"listbox"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,o=>(e.openBlock(),e.createElementBlock("div",{key:o.id,class:e.normalizeClass(["debug-result-node-list__item",`is-${o.status}`,{"is-active":o.id===t.modelValue,"is-unconfigured":!o.isConfigured}]),role:"option","data-test":"node-item","data-node-id":o.id,"aria-selected":o.id===t.modelValue,tabindex:"0",onClick:b=>s("update:modelValue",o.id),onKeydown:e.withKeys(e.withModifiers(b=>s("update:modelValue",o.id),["prevent"]),["enter","space"])},[e.createElementVNode("span",{class:e.normalizeClass(["debug-result-node-list__status",`is-${o.status}`,{"is-placeholder":!o.isConfigured}])},[o.icon?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass(o.icon),"data-test":"node-icon"},null,2)):e.createCommentVNode("",!0)],2),e.createElementVNode("span",{class:"debug-result-node-list__name",title:o.isConfigured?`${o.name} ${o.typeName||o.type}`:o.name},e.toDisplayString(o.name),9,z),o.isMock?(e.openBlock(),e.createElementBlock("span",A,"MOCK")):e.createCommentVNode("",!0)],42,D))),128))],512)):(e.openBlock(),e.createElementBlock("div",P,[e.createVNode(d.EmptyException,{"is-search":!1,title:C.value,onClear:x},null,8,["title"])]))])}}}),H=d._export_sfc(I,[["__scopeId","data-v-db0cb31c"]]);function U(c){if(c==null)return"";if(typeof c=="string")return c;if(typeof c=="object"){const g=c,t=g.message;if(typeof t=="string"&&t){const s=g.type;return typeof s=="string"&&s?`${s}: ${t}`:t}try{return JSON.stringify(c)}catch{return String(c)}}return String(c)}const O={class:"debug-result-tabs"},F={class:"debug-result-tabs__failed-actions","data-test":"output-error-actions"},G={class:"debug-result-tabs__execution","data-test":"tab-execution"},K={class:"debug-result-tabs__row"},j={class:"value"},q={class:"debug-result-tabs__row"},Y={class:"value"},J={key:0,class:"debug-result-tabs__row is-error"},Q={class:"value"},W={class:"debug-result-tabs__mock-hint","data-test":"mock-banner"},X={class:"debug-result-tabs__logs","data-test":"tab-logs"},Z=e.defineComponent({__name:"result-tabs",props:{result:{},component:{},isMock:{type:Boolean,default:!1},canRunNodeDebug:{type:Boolean,default:!1}},emits:["reEditMock","runReal","runMock","logsTabActive"],setup(c,{emit:g}){const t=c,s=g,r=e.ref("execution");e.watch(r,f=>s("logsTabActive",f==="logs"),{immediate:!0});const m={not_run:"未调试",running:"正在调试",finished:"成功",failed:"失败",suspended:"挂起",skipped:"跳过",revoked:"已终止"},_=e.computed(()=>m[t.result.execution.status]??t.result.execution.status),p=e.computed(()=>d.formatSummaryDuration(t.result.execution.durationMs)),k=e.computed(()=>U(t.result.error||t.result.execution.errorDetail)),w=e.computed(()=>t.result.execution.status==="revoked"),V=e.computed(()=>d.isDebugAbnormalStatus(t.result.execution.status)),C=e.computed(()=>w.value?"该节点调试已终止,可":"该节点执行失败,可"),{loading:x,error:y,visibleInputs:a,visibleOutputs:n,outputNameMap:v}=d.usePluginParamMeta({component:()=>t.component}),o=e.computed(()=>t.result.loading||x.value),b=e.computed(()=>t.result.detailError||y.value),h=e.computed(()=>a.value.filter(({key:f})=>Object.prototype.hasOwnProperty.call(t.result.inputs,f)).map(({key:f,name:l})=>({key:f,name:l,value:t.result.inputs[f]}))),B=e.computed(()=>d.orderDebugRowsByDeclaredKeys(d.toDebugOutputValueRows(t.result.outputs,v.value),n.value.map(f=>f.key))),R=e.computed(()=>d.shouldShowMockReEditHint(t.isMock,n.value)),T=e.computed(()=>t.result.logs==null?"":d.normalizeLogText(t.result.logs));return(f,l)=>{const i=e.resolveComponent("bk-button"),u=e.resolveComponent("bk-tab-panel"),S=e.resolveComponent("bk-tab");return e.openBlock(),e.createElementBlock("div",O,[e.createVNode(S,{active:r.value,"onUpdate:active":l[3]||(l[3]=E=>r.value=E),type:"card-grid"},e.createSlots({default:e.withCtx(()=>[e.createVNode(u,{name:"execution",label:"执行信息"},{default:e.withCtx(()=>[e.createElementVNode("div",G,[e.createElementVNode("div",K,[l[8]||(l[8]=e.createElementVNode("span",{class:"label"},"执行状态",-1)),e.createElementVNode("span",j,e.toDisplayString(_.value),1)]),e.createElementVNode("div",q,[l[9]||(l[9]=e.createElementVNode("span",{class:"label"},"调试用时",-1)),e.createElementVNode("span",Y,e.toDisplayString(p.value),1)]),k.value?(e.openBlock(),e.createElementBlock("div",J,[l[10]||(l[10]=e.createElementVNode("span",{class:"label"},"错误信息",-1)),e.createElementVNode("span",Q,e.toDisplayString(k.value),1)])):e.createCommentVNode("",!0)])]),_:1}),e.createVNode(u,{name:"inputs",label:"输入参数"},{default:e.withCtx(()=>[e.createVNode(d.DebugValueTable,{rows:h.value,loading:o.value,error:b.value,"empty-text":"暂无输入参数"},null,8,["rows","loading","error"])]),_:1}),e.createVNode(u,{name:"outputs",label:"输出结果"},{default:e.withCtx(()=>[e.createVNode(d.DebugValueTable,{rows:B.value,loading:o.value,error:b.value,"empty-text":"暂无输出结果"},e.createSlots({_:2},[R.value?{name:"toolbar",fn:e.withCtx(()=>[e.createElementVNode("div",W,[l[12]||(l[12]=e.createElementVNode("i",{class:"bkflow-canvas-icon bkflow-canvas-info debug-result-tabs__mock-info","aria-hidden":"true"},null,-1)),l[13]||(l[13]=e.createElementVNode("span",null,"当前为 Mock 数据",-1)),e.createVNode(i,{text:"",theme:"primary",size:"small","data-test":"re-edit-mock",onClick:l[2]||(l[2]=E=>s("reEditMock"))},{default:e.withCtx(()=>[...l[11]||(l[11]=[e.createTextVNode(" 重新编辑 ",-1)])]),_:1})])]),key:"0"}:void 0]),1032,["rows","loading","error"])]),_:1}),e.createVNode(u,{name:"logs",label:"调用日志"},{default:e.withCtx(()=>[e.createElementVNode("div",X,[e.createVNode(d.CallLogsViewer,{"log-text":T.value,loading:t.result.logLoading,error:t.result.logError},null,8,["log-text","loading","error"])])]),_:1})]),_:2},[V.value&&t.canRunNodeDebug?{name:"setting",fn:e.withCtx(()=>[e.createElementVNode("div",F,[l[6]||(l[6]=e.createElementVNode("i",{class:"bkflow-canvas-icon bkflow-canvas-alert"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(C.value),1),e.createVNode(i,{text:"",theme:"primary","data-test":"rerun-real",onClick:l[0]||(l[0]=E=>s("runReal"))},{default:e.withCtx(()=>[...l[4]||(l[4]=[e.createTextVNode("重新调试",-1)])]),_:1}),l[7]||(l[7]=e.createElementVNode("span",null,"或直接",-1)),e.createVNode(i,{text:"",theme:"primary","data-test":"run-mock",onClick:l[1]||(l[1]=E=>s("runMock"))},{default:e.withCtx(()=>[...l[5]||(l[5]=[e.createTextVNode("Mock 输出",-1)])]),_:1})])]),key:"0"}:void 0]),1032,["active"])])}}}),ee=d._export_sfc(Z,[["__scopeId","data-v-2a925689"]]),te={class:"debug-result-drawer__header"},oe={class:"debug-result-drawer__header-left"},le={class:"debug-result-drawer__body"},se={class:"debug-result-drawer__content"},ne={class:"debug-result-drawer__result"},ae={key:1,class:"debug-result-drawer__unselected","data-test":"node-unselected"},N=44,$=420,ue=e.defineComponent({__name:"index",props:{open:{type:Boolean},context:{},pipelineTree:{},mockNodeIds:{},modelValue:{default:""},result:{},hasGlobalRun:{type:Boolean,default:!1},viewParamsPending:{type:Boolean,default:!1},offsetLeft:{default:0}},emits:["update:open","update:modelValue","reEditMock","runReal","runMock","viewParams","logsTabActive"],setup(c,{emit:g}){const t=c,s=g,r=e.ref($),m=e.ref(!1);let _=0,p=0,k="",w="";const V=e.computed(()=>({left:`${t.offsetLeft}px`,height:`${t.open?r.value:N}px`})),C=()=>{t.open||(r.value=$),s("update:open",!t.open)},x=i=>{const u=i>N;u!==t.open&&s("update:open",u)},y=i=>{const u=p-(i.clientY-_);r.value=Math.max(N,Math.min(window.innerHeight*.8,u)),x(r.value)},a=()=>{document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",a),document.body.style.cursor=k,document.body.style.userSelect=w,m.value=!1,r.value<=N&&(r.value=$,s("update:open",!1))},n=i=>{i.preventDefault(),m.value=!0,_=i.clientY,t.open?p=r.value:(s("update:open",!0),r.value=N,p=N),k=document.body.style.cursor,w=document.body.style.userSelect,document.body.style.cursor="ns-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",y),document.addEventListener("mouseup",a)};e.onBeforeUnmount(a);const v=e.computed({get:()=>t.modelValue,set:i=>s("update:modelValue",i)});e.watch(()=>t.modelValue,i=>{i||s("logsTabActive",!1)},{immediate:!0});const o=e.computed(()=>d.buildDebugResultNodeItems(t.pipelineTree,t.context?.nodes,t.mockNodeIds)),b=e.computed(()=>t.mockNodeIds.has(t.modelValue)),h=e.computed(()=>t.pipelineTree?.activities?.[t.modelValue]?.component),B=e.computed(()=>{const i=o.value.find(u=>u.id===t.modelValue);return i?.type==="ServiceActivity"&&i.isConfigured}),R=()=>{!t.hasGlobalRun||t.viewParamsPending||s("viewParams")},T=()=>{t.modelValue&&s("reEditMock",t.modelValue)},f=()=>{t.modelValue&&s("runReal",t.modelValue)},l=()=>{t.modelValue&&s("runMock",t.modelValue)};return(i,u)=>{const S=e.resolveComponent("bk-button"),E=e.resolveDirective("bk-tooltips");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["debug-result-drawer-wrapper",{"is-resizing":m.value}]),style:e.normalizeStyle(V.value)},[e.createElementVNode("div",{class:"debug-result-drawer__resize",onMousedown:n},null,32),e.createElementVNode("section",{class:e.normalizeClass(["debug-result-drawer",{"is-collapsed":!t.open}])},[e.createElementVNode("header",te,[e.createElementVNode("div",oe,[u[3]||(u[3]=e.createElementVNode("span",{class:"debug-result-drawer__title"},"调试结果",-1)),u[4]||(u[4]=e.createElementVNode("span",{class:"debug-result-drawer__divider"},null,-1)),e.withDirectives((e.openBlock(),e.createBlock(S,{text:"",theme:"primary",disabled:!t.hasGlobalRun,loading:t.viewParamsPending,onClick:R},{default:e.withCtx(()=>[...u[2]||(u[2]=[e.createElementVNode("i",{class:"bkflow-canvas-icon bkflow-canvas-audit view-params-icon"},null,-1),e.createTextVNode(" 查看参数 ",-1)])]),_:1},8,["disabled","loading"])),[[E,{content:"请先进行调试",disabled:t.hasGlobalRun}]])]),e.createElementVNode("span",{class:"debug-result-drawer__collapse",onClick:C},[e.createElementVNode("span",null,e.toDisplayString(t.open?"收起":"展开"),1),e.createElementVNode("i",{class:e.normalizeClass(["bkflow-canvas-icon bkflow-canvas-arrows-down debug-result-drawer__collapse-icon",{"is-expanded":t.open}])},null,2)])]),e.createElementVNode("div",le,[e.createElementVNode("div",se,[e.createVNode(H,{modelValue:v.value,"onUpdate:modelValue":u[0]||(u[0]=M=>v.value=M),nodes:o.value},null,8,["modelValue","nodes"]),e.createElementVNode("div",ne,[t.modelValue?(e.openBlock(),e.createBlock(ee,{key:0,result:t.result,component:h.value,"is-mock":b.value,"can-run-node-debug":B.value,onReEditMock:T,onRunReal:f,onRunMock:l,onLogsTabActive:u[1]||(u[1]=M=>s("logsTabActive",M))},null,8,["result","component","is-mock","can-run-node-debug"])):(e.openBlock(),e.createElementBlock("div",ae," 请先选择节点查看调试详情 "))])])])],2)],6)}}}),re=d._export_sfc(ue,[["__scopeId","data-v-84a5277a"]]);exports.default=re;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),d=require("./index-DuddWhYg.cjs"),L={class:"debug-result-node-list"},D=["data-node-id","aria-selected","onClick","onKeydown"],z=["title"],A={key:0,class:"debug-result-node-list__mock","data-test":"node-mock-flag"},P={key:1,class:"debug-result-node-list__empty"},I=e.defineComponent({__name:"node-list",props:{nodes:{},modelValue:{default:""}},emits:["update:modelValue"],setup(c,{emit:g}){const t=c,s=g,r=e.ref(""),m=e.ref("all"),_=e.ref(null),p={not_run:"未执行",finished:"成功",failed:"失败",running:"正在调试",suspended:"挂起",skipped:"跳过",revoked:"终止"},k=[{value:"all",label:"全部"},{value:"finished",icon:"bkflow-canvas-dark-circle-checkbox",iconColor:"#5fb8ac",tooltip:p.finished},{value:"failed",icon:"bkflow-canvas-dark-circle-close",iconColor:"#fa4e41",tooltip:p.failed},{value:"revoked",icon:"bkflow-canvas-stop-fill",iconColor:"#fa4e41",tooltip:p.revoked},{value:"running",iconComponent:d.LoadingStatusIcon,iconColor:"#3a84ff",tooltip:p.running},{value:"not_run",icon:"bkflow-canvas-weizhixing2",iconColor:"#b8bbc4",tooltip:p.not_run},{value:"suspended",icon:"bkflow-canvas-zanting",iconColor:"#f59500",tooltip:p.suspended},{value:"skipped",icon:"bkflow-canvas-tiaoguo2",iconColor:"#6e89af",tooltip:p.skipped}],w=e.computed(()=>k.map(a=>({...a,count:a.value==="all"?t.nodes.length:t.nodes.filter(n=>n.status===a.value).length}))),V=e.computed(()=>{const a=r.value.trim().toLowerCase();return t.nodes.filter(n=>m.value!=="all"&&n.status!==m.value?!1:a?n.name.toLowerCase().includes(a)||n.type.toLowerCase().includes(a)||(n.typeName??"").toLowerCase().includes(a):!0)}),C=e.computed(()=>r.value.trim()?"搜索结果为空":m.value!=="all"?`暂无${p[m.value]}状态节点`:"暂无节点"),x=()=>{r.value="",m.value="all"},y=a=>{const n=_.value,v=n?.querySelector(`[data-node-id="${CSS.escape(a)}"]`);if(!n||!v)return;const o=n.getBoundingClientRect(),b=v.getBoundingClientRect();b.top<o.top?n.scrollTop-=o.top-b.top:b.bottom>o.bottom&&(n.scrollTop+=b.bottom-o.bottom)};return e.watch(()=>t.modelValue,async a=>{if(!a)return;!V.value.some(v=>v.id===a)&&t.nodes.some(v=>v.id===a)&&(r.value="",m.value="all"),await e.nextTick(),y(a)},{flush:"post"}),(a,n)=>{const v=e.resolveComponent("bk-input");return e.openBlock(),e.createElementBlock("aside",L,[e.createVNode(v,{modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=o=>r.value=o),class:"debug-result-node-list__search",placeholder:"搜索节点名称 / 类型",type:"search",clearable:"","data-test":"node-search"},null,8,["modelValue"]),e.createVNode(d.SegmentTabs,{modelValue:m.value,"onUpdate:modelValue":n[1]||(n[1]=o=>m.value=o),class:"debug-result-node-list__filters","data-test":"status-filters",items:w.value},null,8,["modelValue","items"]),V.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"itemsRef",ref:_,class:"debug-result-node-list__items",role:"listbox"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,o=>(e.openBlock(),e.createElementBlock("div",{key:o.id,class:e.normalizeClass(["debug-result-node-list__item",`is-${o.status}`,{"is-active":o.id===t.modelValue,"is-unconfigured":!o.isConfigured}]),role:"option","data-test":"node-item","data-node-id":o.id,"aria-selected":o.id===t.modelValue,tabindex:"0",onClick:b=>s("update:modelValue",o.id),onKeydown:e.withKeys(e.withModifiers(b=>s("update:modelValue",o.id),["prevent"]),["enter","space"])},[e.createElementVNode("span",{class:e.normalizeClass(["debug-result-node-list__status",`is-${o.status}`,{"is-placeholder":!o.isConfigured}])},[o.icon?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass(o.icon),"data-test":"node-icon"},null,2)):e.createCommentVNode("",!0)],2),e.createElementVNode("span",{class:"debug-result-node-list__name",title:o.isConfigured?`${o.name} ${o.typeName||o.type}`:o.name},e.toDisplayString(o.name),9,z),o.isMock?(e.openBlock(),e.createElementBlock("span",A,"MOCK")):e.createCommentVNode("",!0)],42,D))),128))],512)):(e.openBlock(),e.createElementBlock("div",P,[e.createVNode(d.EmptyException,{"is-search":!1,title:C.value,onClear:x},null,8,["title"])]))])}}}),H=d._export_sfc(I,[["__scopeId","data-v-db0cb31c"]]);function U(c){if(c==null)return"";if(typeof c=="string")return c;if(typeof c=="object"){const g=c,t=g.message;if(typeof t=="string"&&t){const s=g.type;return typeof s=="string"&&s?`${s}: ${t}`:t}try{return JSON.stringify(c)}catch{return String(c)}}return String(c)}const O={class:"debug-result-tabs"},F={class:"debug-result-tabs__failed-actions","data-test":"output-error-actions"},G={class:"debug-result-tabs__execution","data-test":"tab-execution"},K={class:"debug-result-tabs__row"},j={class:"value"},q={class:"debug-result-tabs__row"},Y={class:"value"},J={key:0,class:"debug-result-tabs__row is-error"},Q={class:"value"},W={class:"debug-result-tabs__mock-hint","data-test":"mock-banner"},X={class:"debug-result-tabs__logs","data-test":"tab-logs"},Z=e.defineComponent({__name:"result-tabs",props:{result:{},component:{},isMock:{type:Boolean,default:!1},canRunNodeDebug:{type:Boolean,default:!1}},emits:["reEditMock","runReal","runMock","logsTabActive"],setup(c,{emit:g}){const t=c,s=g,r=e.ref("execution");e.watch(r,f=>s("logsTabActive",f==="logs"),{immediate:!0});const m={not_run:"未调试",running:"正在调试",finished:"成功",failed:"失败",suspended:"挂起",skipped:"跳过",revoked:"已终止"},_=e.computed(()=>m[t.result.execution.status]??t.result.execution.status),p=e.computed(()=>d.formatSummaryDuration(t.result.execution.durationMs)),k=e.computed(()=>U(t.result.error||t.result.execution.errorDetail)),w=e.computed(()=>t.result.execution.status==="revoked"),V=e.computed(()=>d.isDebugAbnormalStatus(t.result.execution.status)),C=e.computed(()=>w.value?"该节点调试已终止,可":"该节点执行失败,可"),{loading:x,error:y,visibleInputs:a,visibleOutputs:n,outputNameMap:v}=d.usePluginParamMeta({component:()=>t.component}),o=e.computed(()=>t.result.loading||x.value),b=e.computed(()=>t.result.detailError||y.value),h=e.computed(()=>a.value.filter(({key:f})=>Object.prototype.hasOwnProperty.call(t.result.inputs,f)).map(({key:f,name:l})=>({key:f,name:l,value:t.result.inputs[f]}))),B=e.computed(()=>d.orderDebugRowsByDeclaredKeys(d.toDebugOutputValueRows(t.result.outputs,v.value),n.value.map(f=>f.key))),R=e.computed(()=>d.shouldShowMockReEditHint(t.isMock,n.value)),T=e.computed(()=>t.result.logs==null?"":d.normalizeLogText(t.result.logs));return(f,l)=>{const i=e.resolveComponent("bk-button"),u=e.resolveComponent("bk-tab-panel"),S=e.resolveComponent("bk-tab");return e.openBlock(),e.createElementBlock("div",O,[e.createVNode(S,{active:r.value,"onUpdate:active":l[3]||(l[3]=E=>r.value=E),type:"card-grid"},e.createSlots({default:e.withCtx(()=>[e.createVNode(u,{name:"execution",label:"执行信息"},{default:e.withCtx(()=>[e.createElementVNode("div",G,[e.createElementVNode("div",K,[l[8]||(l[8]=e.createElementVNode("span",{class:"label"},"执行状态",-1)),e.createElementVNode("span",j,e.toDisplayString(_.value),1)]),e.createElementVNode("div",q,[l[9]||(l[9]=e.createElementVNode("span",{class:"label"},"调试用时",-1)),e.createElementVNode("span",Y,e.toDisplayString(p.value),1)]),k.value?(e.openBlock(),e.createElementBlock("div",J,[l[10]||(l[10]=e.createElementVNode("span",{class:"label"},"错误信息",-1)),e.createElementVNode("span",Q,e.toDisplayString(k.value),1)])):e.createCommentVNode("",!0)])]),_:1}),e.createVNode(u,{name:"inputs",label:"输入参数"},{default:e.withCtx(()=>[e.createVNode(d.DebugValueTable,{rows:h.value,loading:o.value,error:b.value,"empty-text":"暂无输入参数"},null,8,["rows","loading","error"])]),_:1}),e.createVNode(u,{name:"outputs",label:"输出结果"},{default:e.withCtx(()=>[e.createVNode(d.DebugValueTable,{rows:B.value,loading:o.value,error:b.value,"empty-text":"暂无输出结果"},e.createSlots({_:2},[R.value?{name:"toolbar",fn:e.withCtx(()=>[e.createElementVNode("div",W,[l[12]||(l[12]=e.createElementVNode("i",{class:"bkflow-canvas-icon bkflow-canvas-info debug-result-tabs__mock-info","aria-hidden":"true"},null,-1)),l[13]||(l[13]=e.createElementVNode("span",null,"当前为 Mock 数据",-1)),e.createVNode(i,{text:"",theme:"primary",size:"small","data-test":"re-edit-mock",onClick:l[2]||(l[2]=E=>s("reEditMock"))},{default:e.withCtx(()=>[...l[11]||(l[11]=[e.createTextVNode(" 重新编辑 ",-1)])]),_:1})])]),key:"0"}:void 0]),1032,["rows","loading","error"])]),_:1}),e.createVNode(u,{name:"logs",label:"调用日志"},{default:e.withCtx(()=>[e.createElementVNode("div",X,[e.createVNode(d.CallLogsViewer,{"log-text":T.value,loading:t.result.logLoading,error:t.result.logError},null,8,["log-text","loading","error"])])]),_:1})]),_:2},[V.value&&t.canRunNodeDebug?{name:"setting",fn:e.withCtx(()=>[e.createElementVNode("div",F,[l[6]||(l[6]=e.createElementVNode("i",{class:"bkflow-canvas-icon bkflow-canvas-alert"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(C.value),1),e.createVNode(i,{text:"",theme:"primary","data-test":"rerun-real",onClick:l[0]||(l[0]=E=>s("runReal"))},{default:e.withCtx(()=>[...l[4]||(l[4]=[e.createTextVNode("重新调试",-1)])]),_:1}),l[7]||(l[7]=e.createElementVNode("span",null,"或直接",-1)),e.createVNode(i,{text:"",theme:"primary","data-test":"run-mock",onClick:l[1]||(l[1]=E=>s("runMock"))},{default:e.withCtx(()=>[...l[5]||(l[5]=[e.createTextVNode("Mock 输出",-1)])]),_:1})])]),key:"0"}:void 0]),1032,["active"])])}}}),ee=d._export_sfc(Z,[["__scopeId","data-v-2a925689"]]),te={class:"debug-result-drawer__header"},oe={class:"debug-result-drawer__header-left"},le={class:"debug-result-drawer__body"},se={class:"debug-result-drawer__content"},ne={class:"debug-result-drawer__result"},ae={key:1,class:"debug-result-drawer__unselected","data-test":"node-unselected"},N=44,$=420,ue=e.defineComponent({__name:"index",props:{open:{type:Boolean},context:{},pipelineTree:{},mockNodeIds:{},modelValue:{default:""},result:{},hasGlobalRun:{type:Boolean,default:!1},viewParamsPending:{type:Boolean,default:!1},offsetLeft:{default:0}},emits:["update:open","update:modelValue","reEditMock","runReal","runMock","viewParams","logsTabActive"],setup(c,{emit:g}){const t=c,s=g,r=e.ref($),m=e.ref(!1);let _=0,p=0,k="",w="";const V=e.computed(()=>({left:`${t.offsetLeft}px`,height:`${t.open?r.value:N}px`})),C=()=>{t.open||(r.value=$),s("update:open",!t.open)},x=i=>{const u=i>N;u!==t.open&&s("update:open",u)},y=i=>{const u=p-(i.clientY-_);r.value=Math.max(N,Math.min(window.innerHeight*.8,u)),x(r.value)},a=()=>{document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",a),document.body.style.cursor=k,document.body.style.userSelect=w,m.value=!1,r.value<=N&&(r.value=$,s("update:open",!1))},n=i=>{i.preventDefault(),m.value=!0,_=i.clientY,t.open?p=r.value:(s("update:open",!0),r.value=N,p=N),k=document.body.style.cursor,w=document.body.style.userSelect,document.body.style.cursor="ns-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",y),document.addEventListener("mouseup",a)};e.onBeforeUnmount(a);const v=e.computed({get:()=>t.modelValue,set:i=>s("update:modelValue",i)});e.watch(()=>t.modelValue,i=>{i||s("logsTabActive",!1)},{immediate:!0});const o=e.computed(()=>d.buildDebugResultNodeItems(t.pipelineTree,t.context?.nodes,t.mockNodeIds)),b=e.computed(()=>t.mockNodeIds.has(t.modelValue)),h=e.computed(()=>d.getActivityComponent(t.pipelineTree?.activities?.[t.modelValue])),B=e.computed(()=>{const i=o.value.find(u=>u.id===t.modelValue);return i?.type==="ServiceActivity"&&i.isConfigured}),R=()=>{!t.hasGlobalRun||t.viewParamsPending||s("viewParams")},T=()=>{t.modelValue&&s("reEditMock",t.modelValue)},f=()=>{t.modelValue&&s("runReal",t.modelValue)},l=()=>{t.modelValue&&s("runMock",t.modelValue)};return(i,u)=>{const S=e.resolveComponent("bk-button"),E=e.resolveDirective("bk-tooltips");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["debug-result-drawer-wrapper",{"is-resizing":m.value}]),style:e.normalizeStyle(V.value)},[e.createElementVNode("div",{class:"debug-result-drawer__resize",onMousedown:n},null,32),e.createElementVNode("section",{class:e.normalizeClass(["debug-result-drawer",{"is-collapsed":!t.open}])},[e.createElementVNode("header",te,[e.createElementVNode("div",oe,[u[3]||(u[3]=e.createElementVNode("span",{class:"debug-result-drawer__title"},"调试结果",-1)),u[4]||(u[4]=e.createElementVNode("span",{class:"debug-result-drawer__divider"},null,-1)),e.withDirectives((e.openBlock(),e.createBlock(S,{text:"",theme:"primary",disabled:!t.hasGlobalRun,loading:t.viewParamsPending,onClick:R},{default:e.withCtx(()=>[...u[2]||(u[2]=[e.createElementVNode("i",{class:"bkflow-canvas-icon bkflow-canvas-audit view-params-icon"},null,-1),e.createTextVNode(" 查看参数 ",-1)])]),_:1},8,["disabled","loading"])),[[E,{content:"请先进行调试",disabled:t.hasGlobalRun}]])]),e.createElementVNode("span",{class:"debug-result-drawer__collapse",onClick:C},[e.createElementVNode("span",null,e.toDisplayString(t.open?"收起":"展开"),1),e.createElementVNode("i",{class:e.normalizeClass(["bkflow-canvas-icon bkflow-canvas-arrows-down debug-result-drawer__collapse-icon",{"is-expanded":t.open}])},null,2)])]),e.createElementVNode("div",le,[e.createElementVNode("div",se,[e.createVNode(H,{modelValue:v.value,"onUpdate:modelValue":u[0]||(u[0]=M=>v.value=M),nodes:o.value},null,8,["modelValue","nodes"]),e.createElementVNode("div",ne,[t.modelValue?(e.openBlock(),e.createBlock(ee,{key:0,result:t.result,component:h.value,"is-mock":b.value,"can-run-node-debug":B.value,onReEditMock:T,onRunReal:f,onRunMock:l,onLogsTabActive:u[1]||(u[1]=M=>s("logsTabActive",M))},null,8,["result","component","is-mock","can-run-node-debug"])):(e.openBlock(),e.createElementBlock("div",ae," 请先选择节点查看调试详情 "))])])])],2)],6)}}}),re=d._export_sfc(ue,[["__scopeId","data-v-1d34ca9a"]]);exports.default=re;
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index-DuddWhYg.cjs"),o=require("./context-Bj442dps.cjs");exports.BkFlowCanvas=e.BkFlowCanvas;exports.BkFlowModelAccessor=e.BkFlowModelAccessor;exports.BkFlowNodeAccessor=e.BkFlowNodeAccessor;exports.FlowCreateTask=e.FlowCreateTask;exports.FlowDebug=e.FlowDebug;exports.FlowDetail=e.index;exports.FlowEdit=e.edit;exports.FlowExecute=e.execute;exports.FlowMockDebug=e.mock;exports.FlowView=e.view;exports.bkflowConnectionValidator=e.bkflowConnectionValidator;exports.createBkflowPlugin=e.createBkflowPlugin;exports.createBkflowSchema=e.createBkflowSchema;exports.createExecutionStatusPlugin=e.createExecutionStatusPlugin;exports.default=e.index$1;exports.exportToPipelineTree=e.exportToPipelineTree;exports.getUniformApiPluginFormValue=e.getUniformApiPluginFormValue;exports.getVariableDefaultConfig=e.getVariableDefaultConfig;exports.importFromPipelineTree=e.importFromPipelineTree;exports.isMockableNode=e.isMockableNode;exports.mergeOutputs=e.mergeOutputs;exports.normalizePluginOutputItems=e.normalizePluginOutputItems;exports.provideFilterVariableConfig=e.provideFilterVariableConfig;exports.provideFlowApiConfig=e.provideFlowApiConfig;exports.provideMemberSelectorConfig=e.provideMemberSelectorConfig;exports.provideSelectPanelConfig=e.provideSelectPanelConfig;exports.resolveExecutionActions=e.resolveExecutionActions;exports.resolveMockFormControl=e.resolveMockFormControl;exports.useFlowApiConfig=e.useFlowApiConfig;exports.useFlowEditApiConfig=e.useFlowEditApiConfig;exports.useFlowViewApiConfig=e.useFlowViewApiConfig;exports.useMemberSelectorConfig=e.useMemberSelectorConfig;exports.useSelectPanelConfig=e.useSelectPanelConfig;exports.validatePipelineTree=e.validatePipelineTree;exports.generateId=o.generateId;exports.random4=o.random4;
|
package/dist/index.d.ts
CHANGED
|
@@ -124,7 +124,7 @@ type PortOrientation = 'Top' | 'Right' | 'Bottom' | 'Left';
|
|
|
124
124
|
|
|
125
125
|
type GatewayType = 'ExclusiveGateway' | 'ParallelGateway' | 'ConditionalParallelGateway' | 'ConvergeGateway';
|
|
126
126
|
|
|
127
|
-
type NodeType = StartEvent | EndEvent | Activity | Gateway;
|
|
127
|
+
type NodeType = StartEvent | EndEvent | Activity | SubProcessActivity | Gateway;
|
|
128
128
|
|
|
129
129
|
interface PluginInputDataItem {
|
|
130
130
|
value:
|
|
@@ -170,6 +170,8 @@ interface Activity {
|
|
|
170
170
|
type: 'ServiceActivity';
|
|
171
171
|
retryable: boolean;
|
|
172
172
|
skippable: boolean;
|
|
173
|
+
/** 是否可选节点(执行时可选跳过)默认 true */
|
|
174
|
+
optional: boolean;
|
|
173
175
|
auto_retry: {
|
|
174
176
|
enable: boolean;
|
|
175
177
|
interval: number;
|
|
@@ -187,12 +189,103 @@ interface Activity {
|
|
|
187
189
|
skip?: boolean;
|
|
188
190
|
/** 执行态:是否自动忽略错误 */
|
|
189
191
|
error_ignored?: boolean;
|
|
190
|
-
/**
|
|
191
|
-
loop?: number;
|
|
192
|
+
/** 执行态:循环执行次数(未执行时为 null,与 SubProcessActivity 同源于执行态接口) */
|
|
193
|
+
loop?: number | null;
|
|
192
194
|
/** 执行态:生命周期阶段 */
|
|
193
195
|
phase?: number;
|
|
194
196
|
}
|
|
195
197
|
|
|
198
|
+
/**
|
|
199
|
+
* 循环执行配置(子流程 / 循环容器节点的 loop_config)
|
|
200
|
+
*/
|
|
201
|
+
interface LoopConfig {
|
|
202
|
+
/** 是否启用循环执行 */
|
|
203
|
+
enable: boolean;
|
|
204
|
+
/** array_loop 按数组变量循环 / time_loop 固定循环次数 */
|
|
205
|
+
type: 'array_loop' | 'time_loop';
|
|
206
|
+
/** 固定循环次数(time_loop,默认 3,最大 100);array_loop 且数据来源含变量时为 null */
|
|
207
|
+
loop_times?: number | null;
|
|
208
|
+
/**
|
|
209
|
+
* 数组循环变量(array_loop):循环变量名 → 数据来源。
|
|
210
|
+
* 编辑态为 UI 数组 [{name, value}];保存输出为 key-value 对象(如 { '${loop_test1}': '1,2' })。
|
|
211
|
+
*/
|
|
212
|
+
loop_params?: { name: string; value: string }[] | Record<string, string>;
|
|
213
|
+
/** 循环失败自动跳过(AS) */
|
|
214
|
+
fail_skip?: boolean;
|
|
215
|
+
/** 循环失败手动重试(MR) */
|
|
216
|
+
retryable?: boolean;
|
|
217
|
+
/** 循环失败手动跳过(MS) */
|
|
218
|
+
skippable?: boolean;
|
|
219
|
+
/** 循环输出变量outputs */
|
|
220
|
+
outputs_key?: string;
|
|
221
|
+
[key: string]: any;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* 子流程(SubProcess)活动节点。
|
|
226
|
+
*/
|
|
227
|
+
interface SubProcessActivity {
|
|
228
|
+
id: string;
|
|
229
|
+
name: string;
|
|
230
|
+
stage_name?: string;
|
|
231
|
+
incoming: string[];
|
|
232
|
+
outgoing: string;
|
|
233
|
+
type: 'SubProcess';
|
|
234
|
+
/** 被引用的模板 ID */
|
|
235
|
+
template_id: string | number;
|
|
236
|
+
/** 模板版本 */
|
|
237
|
+
version?: string;
|
|
238
|
+
/** 变量映射常量 */
|
|
239
|
+
constants?: Record<string, any>;
|
|
240
|
+
/** 是否始终使用最新版本 */
|
|
241
|
+
always_use_latest?: boolean;
|
|
242
|
+
/** 生效版本方案列表 */
|
|
243
|
+
scheme_id_list?: string[];
|
|
244
|
+
/** 模板来源 */
|
|
245
|
+
template_source?: string;
|
|
246
|
+
/** 是否自动忽略错误(AS) */
|
|
247
|
+
error_ignorable: boolean;
|
|
248
|
+
/** 是否可手动重试(MR) */
|
|
249
|
+
retryable: boolean;
|
|
250
|
+
/** 是否可手动跳过(MS) */
|
|
251
|
+
skippable: boolean;
|
|
252
|
+
/** 是否可选节点(执行时可选跳过)BKFlow 必填 */
|
|
253
|
+
optional: boolean;
|
|
254
|
+
/** 已勾选(关联全局变量)的 key 列表 */
|
|
255
|
+
hooked_constants?: string[];
|
|
256
|
+
/** 自动重试配置(AR) */
|
|
257
|
+
auto_retry: {
|
|
258
|
+
enable: boolean;
|
|
259
|
+
interval: number;
|
|
260
|
+
times: number;
|
|
261
|
+
};
|
|
262
|
+
/** 超时控制配置 */
|
|
263
|
+
timeout_config: {
|
|
264
|
+
enable: boolean;
|
|
265
|
+
seconds: number;
|
|
266
|
+
action: string;
|
|
267
|
+
};
|
|
268
|
+
/** 循环执行配置 */
|
|
269
|
+
loop_config?: LoopConfig;
|
|
270
|
+
/** 父级分组 ID(SubCanvas 循环容器嵌套场景),顶层节点为 null */
|
|
271
|
+
parent?: string | null;
|
|
272
|
+
/** 节点标签 */
|
|
273
|
+
labels?: string[];
|
|
274
|
+
status?: NodeExecutionStatus;
|
|
275
|
+
/** 执行态:循环执行次数(未执行时为 null) */
|
|
276
|
+
loop?: number | null;
|
|
277
|
+
/** 执行态:实际重试次数 */
|
|
278
|
+
retry?: number;
|
|
279
|
+
/** 执行态:是否被跳过 */
|
|
280
|
+
skip?: boolean;
|
|
281
|
+
/** 执行态:是否自动忽略错误 */
|
|
282
|
+
error_ignored?: boolean;
|
|
283
|
+
/** 执行态:生命周期阶段 */
|
|
284
|
+
phase?: number;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
type ActivityUnion = Activity | SubProcessActivity;
|
|
288
|
+
|
|
196
289
|
interface StartEvent {
|
|
197
290
|
id: string;
|
|
198
291
|
name: string;
|
|
@@ -249,6 +342,7 @@ interface Location {
|
|
|
249
342
|
| 'startpoint'
|
|
250
343
|
| 'endpoint'
|
|
251
344
|
| 'tasknode'
|
|
345
|
+
| 'subflow'
|
|
252
346
|
| 'branchgateway'
|
|
253
347
|
| 'convergegateway'
|
|
254
348
|
| 'parallelgateway'
|
|
@@ -303,7 +397,7 @@ interface Variable {
|
|
|
303
397
|
}
|
|
304
398
|
|
|
305
399
|
interface PipelineTree {
|
|
306
|
-
activities: Record<string,
|
|
400
|
+
activities: Record<string, ActivityUnion>;
|
|
307
401
|
end_event: EndEvent;
|
|
308
402
|
flows: Record<string, Flow>;
|
|
309
403
|
gateways: Record<string, Gateway>;
|
|
@@ -421,6 +515,42 @@ interface UniformApiPluginInputsItem$1 {
|
|
|
421
515
|
_slots?: Record<string, SlotFieldConfig | SlotArgConfig>;
|
|
422
516
|
}
|
|
423
517
|
|
|
518
|
+
interface SubflowTemplateItem {
|
|
519
|
+
id: number | string;
|
|
520
|
+
name: string;
|
|
521
|
+
/** 模板版本(不传则默认使用最新版本) */
|
|
522
|
+
version?: string;
|
|
523
|
+
/** 展示用副文本(如更新时间 / 描述等,可选) */
|
|
524
|
+
description?: string;
|
|
525
|
+
/** 兼容接入方列表接口的扩展字段 */
|
|
526
|
+
[key: string]: any;
|
|
527
|
+
}
|
|
528
|
+
interface SubflowUpdateItem {
|
|
529
|
+
/** 子流程节点 ID(对应 pipeline_tree.activities 的 key) */
|
|
530
|
+
nodeId: string;
|
|
531
|
+
/** 该节点引用的子流程模板是否有新版本(true 时节点显示红点并计入提示条) */
|
|
532
|
+
expired: boolean;
|
|
533
|
+
/** 子流程模板名称(可选,仅作提示展示) */
|
|
534
|
+
templateName?: string;
|
|
535
|
+
/** 兼容接入方的扩展字段 */
|
|
536
|
+
[key: string]: any;
|
|
537
|
+
}
|
|
538
|
+
interface SubprocessInfoItem {
|
|
539
|
+
/** 子流程模板 ID */
|
|
540
|
+
subprocess_template_id: string | number;
|
|
541
|
+
/** 子流程节点 ID(对应 pipeline_tree.activities 的 key) */
|
|
542
|
+
subprocess_node_id: string;
|
|
543
|
+
/** 节点当前引用的子流程模板版本 */
|
|
544
|
+
version: string;
|
|
545
|
+
/** 是否总是使用最新版本 */
|
|
546
|
+
always_use_latest: boolean;
|
|
547
|
+
/** 引用的子流程模板是否有新版本 */
|
|
548
|
+
expired: boolean;
|
|
549
|
+
/** 子流程模板名称 */
|
|
550
|
+
subprocess_template_name?: string;
|
|
551
|
+
/** 兼容接入方的扩展字段 */
|
|
552
|
+
[key: string]: any;
|
|
553
|
+
}
|
|
424
554
|
interface FlowTemplate {
|
|
425
555
|
id: number;
|
|
426
556
|
name: string;
|
|
@@ -430,6 +560,8 @@ interface FlowTemplate {
|
|
|
430
560
|
extra_info: Record<string, any>;
|
|
431
561
|
triggers: TriggerItem[];
|
|
432
562
|
version: string;
|
|
563
|
+
/** 子流程更新信息(后端计算好 expired 状态,SDK 据此渲染红点/提示条) */
|
|
564
|
+
subprocess_info?: SubprocessInfoItem[];
|
|
433
565
|
}
|
|
434
566
|
interface FlowDetailByVersion {
|
|
435
567
|
constants_not_referred: Record<string, Variable>;
|
|
@@ -1194,7 +1326,7 @@ interface FlowViewApiConfig {
|
|
|
1194
1326
|
space_id: number;
|
|
1195
1327
|
};
|
|
1196
1328
|
fetchFlowDraftDetail?: (id: string) => Promise<FlowDraftDetail>;
|
|
1197
|
-
fetchFlowDetailByVersion?: (id: string, version
|
|
1329
|
+
fetchFlowDetailByVersion?: (id: string, version?: string) => Promise<FlowDetailByVersion>;
|
|
1198
1330
|
fetchVariableRef?: (params: {
|
|
1199
1331
|
template_id: number;
|
|
1200
1332
|
activities: Record<string, any>;
|
|
@@ -1248,6 +1380,10 @@ interface FlowEditApiConfig extends FlowViewApiConfig {
|
|
|
1248
1380
|
saveFlow: (id: string, params: UpdateFlowParams) => Promise<void>;
|
|
1249
1381
|
fetchBkFlowInnerPluginList: () => Promise<BkflowInnerPluginMetaItem[]>;
|
|
1250
1382
|
fetchBkFlowInnerPluginDetail: (code: string, version: string) => Promise<BkflowInnerPluginMetaItem>;
|
|
1383
|
+
fetchSubprocessOutput: (params?: {
|
|
1384
|
+
code?: string;
|
|
1385
|
+
version?: string;
|
|
1386
|
+
}) => Promise<BkflowInnerPluginMetaItem>;
|
|
1251
1387
|
fetchInnerVariableDetail: (code: string) => Promise<BkflowInnerPluginMetaItem>;
|
|
1252
1388
|
fetchBkFlowThirdPartyPluginList: (tag: number) => Promise<{
|
|
1253
1389
|
data: {
|
|
@@ -1268,6 +1404,20 @@ interface FlowEditApiConfig extends FlowViewApiConfig {
|
|
|
1268
1404
|
fetchPluginGroupList: () => Promise<PluginGroupConfig[]>;
|
|
1269
1405
|
fetchCategoryPlugins: (category: string) => Promise<PluginMetaItem[]>;
|
|
1270
1406
|
fetchAllPluginGroups: () => Promise<GroupsPluginItem[]>;
|
|
1407
|
+
/**
|
|
1408
|
+
* 获取子流程模板列表
|
|
1409
|
+
*/
|
|
1410
|
+
fetchSubflowTemplateList?: (params: {
|
|
1411
|
+
/** 每页条数 */
|
|
1412
|
+
limit: number;
|
|
1413
|
+
/** 偏移量 */
|
|
1414
|
+
offset: number;
|
|
1415
|
+
/** 名称模糊搜索*/
|
|
1416
|
+
keyword?: string;
|
|
1417
|
+
}) => Promise<{
|
|
1418
|
+
results: SubflowTemplateItem[];
|
|
1419
|
+
count: number;
|
|
1420
|
+
}>;
|
|
1271
1421
|
enableThirdPlugin?: boolean;
|
|
1272
1422
|
fetchPluginDetail?: (id: string) => Promise<UniformApiPluginDetail>;
|
|
1273
1423
|
fetchApplyInstructionData?: (params: any) => Promise<any>;
|
|
@@ -1629,6 +1779,7 @@ type __VLS_Props$3 = {
|
|
|
1629
1779
|
taskId: number | string;
|
|
1630
1780
|
templateId: number | string;
|
|
1631
1781
|
}) => void;
|
|
1782
|
+
onSubflowView?: (template: SubflowTemplateItem) => void;
|
|
1632
1783
|
enableVersion?: boolean;
|
|
1633
1784
|
flowVersion?: string;
|
|
1634
1785
|
defaultZoom?: number;
|
|
@@ -1637,6 +1788,7 @@ type __VLS_Props$3 = {
|
|
|
1637
1788
|
quickAdd?: QuickAddConfig;
|
|
1638
1789
|
/** 是否隐藏基础信息中的触发器配置表单,默认 false */
|
|
1639
1790
|
hideTrigger?: boolean;
|
|
1791
|
+
subflowUpdateList?: SubflowUpdateItem[];
|
|
1640
1792
|
};
|
|
1641
1793
|
declare const __VLS_base$3: vue.DefineComponent<__VLS_Props$3, {
|
|
1642
1794
|
isFlowEdited: ComputedRef<FlowEditExpose["isFlowEdited"]>;
|
|
@@ -1657,6 +1809,7 @@ declare const __VLS_base$3: vue.DefineComponent<__VLS_Props$3, {
|
|
|
1657
1809
|
exitEdit: () => any;
|
|
1658
1810
|
debugBeforeClose: () => any;
|
|
1659
1811
|
createVariable: (payload: CreateVariablePayload) => any;
|
|
1812
|
+
subflowView: (template: SubflowTemplateItem) => any;
|
|
1660
1813
|
}, string, vue.PublicProps, Readonly<__VLS_Props$3> & Readonly<{
|
|
1661
1814
|
onBack?: (() => any) | undefined;
|
|
1662
1815
|
onSave?: ((flowData: FlowTemplate) => any) | undefined;
|
|
@@ -1668,6 +1821,7 @@ declare const __VLS_base$3: vue.DefineComponent<__VLS_Props$3, {
|
|
|
1668
1821
|
onExitEdit?: (() => any) | undefined;
|
|
1669
1822
|
onDebugBeforeClose?: (() => any) | undefined;
|
|
1670
1823
|
onCreateVariable?: ((payload: CreateVariablePayload) => any) | undefined;
|
|
1824
|
+
onSubflowView?: ((template: SubflowTemplateItem) => any) | undefined;
|
|
1671
1825
|
}>, {
|
|
1672
1826
|
quickAdd: QuickAddConfig;
|
|
1673
1827
|
enableThirdPlugin: boolean;
|
|
@@ -1745,6 +1899,7 @@ type __VLS_Props$2 = {
|
|
|
1745
1899
|
}) => void;
|
|
1746
1900
|
/** 是否隐藏基础信息中的触发器配置表单,默认 false */
|
|
1747
1901
|
hideTrigger?: boolean;
|
|
1902
|
+
subflowUpdateList?: SubflowUpdateItem[];
|
|
1748
1903
|
};
|
|
1749
1904
|
declare const __VLS_base$2: vue.DefineComponent<__VLS_Props$2, {
|
|
1750
1905
|
zoomToFit: (options?: ZoomToFitOptions) => void;
|
|
@@ -1986,6 +2141,13 @@ declare class BkFlowNodeAccessor {
|
|
|
1986
2141
|
get convergeGatewayId(): string | undefined;
|
|
1987
2142
|
get isGateway(): boolean;
|
|
1988
2143
|
get isTask(): boolean;
|
|
2144
|
+
get templateId(): string | number | undefined;
|
|
2145
|
+
get subflowConstants(): Record<string, any> | undefined;
|
|
2146
|
+
get subflowVersion(): string | undefined;
|
|
2147
|
+
get alwaysUseLatest(): boolean | undefined;
|
|
2148
|
+
get schemeIdList(): string[] | undefined;
|
|
2149
|
+
get templateSource(): string | undefined;
|
|
2150
|
+
get isSubflow(): boolean;
|
|
1989
2151
|
get nodeModel(): FlowNodeModel;
|
|
1990
2152
|
}
|
|
1991
2153
|
declare class BkFlowModelAccessor {
|
|
@@ -2018,6 +2180,15 @@ interface DebugCanvasContext {
|
|
|
2018
2180
|
/** 调试锁定期(running/terminating);节点配置据此展示只读说明 Alert */
|
|
2019
2181
|
isLocked?(): boolean;
|
|
2020
2182
|
}
|
|
2183
|
+
interface SubflowUpdateCanvasContext {
|
|
2184
|
+
/** 节点是否引用了已过期的子流程模板(红点显隐) */
|
|
2185
|
+
isNodeExpired(nodeId: string): boolean;
|
|
2186
|
+
/**
|
|
2187
|
+
* 红点动画的重播序号(每次"查看需要更新的子流程"定位时递增)。
|
|
2188
|
+
* 节点用其作 :key 重挂载红点元素以重新触发 ripple 动画;未实现时返回 0(仅首轮动画)。
|
|
2189
|
+
*/
|
|
2190
|
+
getDotEpoch?(nodeId: string): number;
|
|
2191
|
+
}
|
|
2021
2192
|
|
|
2022
2193
|
type __VLS_Props = {
|
|
2023
2194
|
pipelineTree: PipelineTree;
|
|
@@ -2031,6 +2202,7 @@ type __VLS_Props = {
|
|
|
2031
2202
|
toolbarItems?: CanvasToolbarItem[];
|
|
2032
2203
|
simulateDebugContext?: SimulateDebugCanvasContext;
|
|
2033
2204
|
debugContext?: DebugCanvasContext;
|
|
2205
|
+
subflowUpdateContext?: SubflowUpdateCanvasContext;
|
|
2034
2206
|
};
|
|
2035
2207
|
declare var __VLS_8: {};
|
|
2036
2208
|
declare var __VLS_22: {
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { g as h, r as y } from "./context-
|
|
1
|
+
import { w as o, x as s, y as i, F as l, z as r, A as t, G as n, H as u, I as g, J as c, K as w, N as F, O as f, P as p, Q as m, T as d, U as C, V as k, W as P, X as A, m as b, Y as v, Z as x, $ as V, a0 as M, a1 as S, a2 as T, r as B, u as E, a3 as D, a4 as I, a5 as N, a6 as O, a7 as z } from "./index-Bij1hZGP.js";
|
|
2
|
+
import { g as h, r as y } from "./context-CdSU0w5S.js";
|
|
3
3
|
export {
|
|
4
4
|
o as BkFlowCanvas,
|
|
5
5
|
s as BkFlowModelAccessor,
|
|
@@ -21,9 +21,9 @@ export {
|
|
|
21
21
|
C as getUniformApiPluginFormValue,
|
|
22
22
|
k as getVariableDefaultConfig,
|
|
23
23
|
P as importFromPipelineTree,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
A as isMockableNode,
|
|
25
|
+
b as mergeOutputs,
|
|
26
|
+
v as normalizePluginOutputItems,
|
|
27
27
|
x as provideFilterVariableConfig,
|
|
28
28
|
V as provideFlowApiConfig,
|
|
29
29
|
M as provideMemberSelectorConfig,
|