n8n-editor-ui
Version:
Workflow Editor UI for n8n
2 lines • 32.8 kB
JavaScript
(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`n8n@2.16.1`}}catch{}})();try{(function(){var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`4b1371c7-e392-4fd5-9d6d-0a9b6af031fe`,e._sentryDebugIdIdentifier=`sentry-dbid-4b1371c7-e392-4fd5-9d6d-0a9b6af031fe`)})()}catch{}import{o as e,t}from"./chunk-CACdhNlC.js";import{$ as n,A as r,Bt as i,C as a,E as o,F as s,Ft as c,I as l,K as u,N as d,Nt as f,O as p,S as m,Sn as h,T as g,Wt as _,X as v,_ as y,_n as b,_t as x,at as S,gt as C,h as w,it as T,j as E,rt as D,st as O,vn as k,w as A,yt as j}from"./vue.runtime.esm-bundler-C3C09Zii.js";import{at as M,ot as N}from"./core-Bz5WjPxS.js";import{At as P,Bt as F,Di as I,Ft as L,Ji as R,Mi as z,Qi as B,Xi as V,Zi as ee,_t as H,ct as te,jt as ne,lt as re,tt as U,xt as ie,zt as W}from"./src-XqE2yCpG.js";import{i as G,o as ae}from"./get-BjzKP_3k.js";import{t as K}from"./_plugin-vue_export-helper-CIL7EULb.js";import{Pn as oe,mr as se,r as ce,sr as le,t as ue,zn as de}from"./users.store-xP93bV7X.js";import{w as q}from"./ParameterInputList-CnpfSyOD.js";import{Bo as fe,Di as pe,Fs as me,Ls as he,Ns as J,Oi as ge,Ps as _e,Qc as ve,Qo as Y,si as ye}from"./constants-DuQbSl-q.js";import{c as X,u as be}from"./merge-DFZxC2wo.js";import{t as xe}from"./useRootStore-XEREVjMN.js";import{t as Se}from"./settings.store-CAFiYCMH.js";import{t as Ce}from"./usePageRedirectionHelper-CC6sh9o0.js";import{t as we}from"./Modal-gWM7cVuX.js";import{a as Te,i as Ee,n as Z,o as Q,t as De}from"./utils-xNUhZBbi.js";import{t as Oe}from"./WorkflowDiffView-3sYvCstO.js";import{t as ke}from"./useWorkflowActivate-D-sHBSZw.js";import{t as Ae}from"./WorkflowPreview-C5OyFGa3.js";import{t as je}from"./useIntersectionObserver-Ygaf4Xk3.js";var $=K(d({__name:`WorkflowVersionStatusIndicator`,props:{status:{default:`default`}},setup(e){return(t,r)=>(n(),o(`span`,{class:b([t.$style.indicator,t.$style[`indicator-${e.status}`]])},null,2))}}),[[`__cssModules`,{$style:{indicator:`_indicator_7bf00_125`,"indicator-published":`_indicator-published_7bf00_133`,"indicator-latest":`_indicator-latest_7bf00_137`,"indicator-default":`_indicator-default_7bf00_141`}}]]),Me=e=>{let t=M();return m(()=>{let n=_(e);if(!n)return``;let{date:r,time:i}=Z(n.publishedAt),a=t.baseText(`workflowHistory.item.createdAt`,{interpolate:{date:r,time:i}});return`${t.baseText(`workflowHistory.item.publishedBy`)} ${n.publishedBy??`Unknown`}, ${a}`})},Ne=K(d({__name:`WorkflowHistoryPublishedTooltip`,props:{label:{},publishInfo:{},status:{default:`default`},placement:{default:`left`},offset:{default:8}},setup(e){let t=e,s=M(),c=Me(i(t,`publishInfo`));return(e,i)=>(n(),A(_(I),{placement:t.placement,"show-after":300,offset:t.offset,"content-class":e.$style.tooltipContent},{content:j(()=>[a(`div`,{class:b(e.$style.tooltipContentTitle)},[E($,{status:t.status},null,8,[`status`]),E(_(V),{size:`small`,bold:!0},{default:j(()=>[r(h(t.label)+` `,1),t.status===`published`?(n(),o(y,{key:0},[r(` (`+h(_(s).baseText(`workflows.published`))+`) `,1)],64)):g(``,!0)]),_:1})],2),E(_(V),{size:`small`,class:b(e.$style.tooltipSecondaryText)},{default:j(()=>[r(h(_(c)),1)]),_:1},8,[`class`])]),default:j(()=>[T(e.$slots,`default`)]),_:3},8,[`placement`,`offset`,`content-class`]))}}),[[`__cssModules`,{$style:{tooltipContentTitle:`_tooltipContentTitle_1caju_125`,tooltipSecondaryText:`_tooltipSecondaryText_1caju_131`,tooltipContent:`_tooltipContent_1caju_125`}}]]),Pe=K(d({__name:`WorkflowHistoryListItem`,props:{item:{},index:{},compareWith:{default:null},actions:{},isSelected:{type:Boolean,default:!1},isPublished:{type:Boolean,default:!1},isGrouped:{type:Boolean,default:!1},isWorkflowDiffsEnabled:{type:Boolean,default:!1}},emits:[`action`,`preview`,`mounted`,`compare`],setup(e,{emit:t}){let i=e,l=t,u=M(),d=ue(),f=c(!1),x=c(null),S=m(()=>{let{date:e,time:t}=Z(i.item.createdAt);return u.baseText(`workflowHistory.item.createdAt`,{interpolate:{date:e,time:t}})}),C=m(()=>{let e=i.item.authors.split(`, `),t=e[0];return e.length>1&&(t=`${t} + ${e.length-1}`),t}),T=m(()=>{let e=i.index===0?i.item.versionId:void 0;return Q({workflowHistory:i.item,currentVersionId:e})}),D=m(()=>i.isPublished?`published`:i.index===0?`latest`:`default`),N=e=>{if(!e)return null;let t=d.usersById[e];return t?.fullName??t?.email??null},F=m(()=>{let e=Ee(i.item.workflowPublishHistory);if(!e)return null;let t=N(e.userId);return{label:T.value,status:D.value,publishInfo:{publishedBy:t,publishedAt:e.createdAt,isCurrentlyPublished:i.isPublished}}}),L=m(()=>!i.compareWith?.versionId),R=m(()=>{if(!i.compareWith?.name)return null;let e=i.isSelected?T.value:i.compareWith.name,t=i.isSelected?i.compareWith.name:T.value;return{compareLine:u.baseText(`workflowHistory.item.compareTooltip.compareLine`,{interpolate:{name:e}}),withLine:u.baseText(`workflowHistory.item.compareTooltip.withLine`,{interpolate:{name:t}})}}),B=e=>{l(`action`,{action:e,id:i.item.versionId,data:{formattedCreatedAt:S.value,versionName:T.value,description:i.item.description}})},ee=e=>{f.value=e},H=e=>{l(`preview`,{event:e,id:i.item.versionId})},te=()=>{i.compareWith?.versionId&&l(`compare`,{id:i.compareWith.versionId})};return v(()=>{l(`mounted`,{index:i.index,offsetTop:x.value?.offsetTop??0,isSelected:i.isSelected})}),(e,t)=>(n(),A(O(F.value?Ne:`span`),k(s(F.value??{})),{default:j(()=>[a(`li`,{ref_key:`itemElement`,ref:x,"data-test-id":`workflow-history-list-item`,role:`button`,class:b({[e.$style.item]:!0,[e.$style.selected]:i.isSelected,[e.$style.actionsVisible]:f.value,[e.$style.grouped]:i.isGrouped,[e.$style.firstItem]:i.index===0}),onClick:H},[a(`span`,{class:b(e.$style.timelineColumn)},[i.isGrouped?(n(),o(`span`,{key:1,class:b(e.$style.timelineLine)},null,2)):(n(),A($,{key:0,status:D.value},null,8,[`status`]))],2),a(`div`,{class:b(e.$style.wrapper)},[a(`div`,{class:b(e.$style.content)},[a(`div`,{class:b(e.$style.mainRow)},[E(_(V),{size:`small`,bold:!0,color:`text-dark`,class:b(e.$style.mainLine)},{default:j(()=>[r(h(T.value)+` `,1),i.isPublished?(n(),o(y,{key:0},[r(` (`+h(_(u).baseText(`workflowHistory.item.active`))+`) `,1)],64)):g(``,!0)]),_:1},8,[`class`])],2),a(`div`,{class:b(e.$style.metaRow)},[E(_(V),{size:`small`,color:`text-base`,class:b(e.$style.metaAuthor)},{default:j(()=>[r(h(C.value)+`, `,1)]),_:1},8,[`class`]),E(_(V),{tag:`time`,size:`small`,color:`text-base`,class:b(e.$style.metaTime)},{default:j(()=>[r(h(S.value),1)]),_:1},8,[`class`])],2)],2),i.isWorkflowDiffsEnabled?(n(),A(_(I),{key:0,disabled:L.value,placement:`top`,"content-class":e.$style.compareTooltipContent},p({default:j(()=>[E(_(z),{variant:`ghost`,icon:`file-diff`,disabled:L.value,class:b(e.$style.compareButton),"data-test-id":`workflow-history-compare-item-button`,onClick:w(te,[`stop`])},null,8,[`disabled`,`class`])]),_:2},[R.value?{name:`content`,fn:j(()=>[a(`div`,{class:b(e.$style.compareTooltip)},[a(`span`,{class:b(e.$style.compareTooltipLine)},h(R.value.compareLine),3),a(`span`,{class:b(e.$style.compareTooltipLine)},h(R.value.withLine),3)],2)]),key:`0`}:void 0]),1032,[`disabled`,`content-class`])):g(``,!0),E(_(P),{class:b(e.$style.actions),actions:i.actions,placement:`bottom-end`,onAction:B,onClick:t[0]||=w(()=>{},[`stop`]),onVisibleChange:ee},null,8,[`class`,`actions`])],2)],2)]),_:1},16))}}),[[`__cssModules`,{$style:{item:`_item_11vf3_125`,grouped:`_grouped_11vf3_135`,selected:`_selected_11vf3_135`,firstItem:`_firstItem_11vf3_141`,wrapper:`_wrapper_11vf3_156`,timelineColumn:`_timelineColumn_11vf3_170`,timelineLine:`_timelineLine_11vf3_181`,content:`_content_11vf3_189`,mainRow:`_mainRow_11vf3_197`,mainLine:`_mainLine_11vf3_203`,metaRow:`_metaRow_11vf3_209`,metaAuthor:`_metaAuthor_11vf3_217`,metaTime:`_metaTime_11vf3_225`,actions:`_actions_11vf3_230`,compareButton:`_compareButton_11vf3_237`,compareTooltip:`_compareTooltip_11vf3_241`,compareTooltipContent:`_compareTooltipContent_11vf3_245`,compareTooltipLine:`_compareTooltipLine_11vf3_249`}}]]),Fe={"data-test-id":`prune-time-display`},Ie=K(d({__name:`WorkflowHistoryUpgradeFooter`,props:{pruneTimeDisplay:{},withTopBorder:{type:Boolean,default:!1}},emits:[`upgrade`],setup(e,{emit:t}){let r=e,i=t,s=M();return(e,t)=>(n(),o(`div`,{class:b([e.$style.retention,{[e.$style.withTopBorder]:r.withTopBorder}])},[a(`span`,Fe,h(r.pruneTimeDisplay),1),E(_(N),{keypath:`workflowHistory.upgrade`,tag:`span`,scope:`global`},{link:j(()=>[a(`a`,{href:`#`,onClick:t[0]||=w(e=>i(`upgrade`),[`prevent`])},h(_(s).baseText(`workflowHistory.upgrade.link`)),1)]),_:1})],2))}}),[[`__cssModules`,{$style:{retention:`_retention_1f7ao_125`,withTopBorder:`_withTopBorder_1f7ao_133`}}]]),Le=[`aria-expanded`,`onClick`],Re=[`aria-label`],ze={key:2},Be=K(d({__name:`WorkflowHistoryList`,props:{items:{},selectedItem:{},actions:{},requestNumberOfItems:{},lastReceivedItemsLength:{},evaluatedPruneTimeInHours:{},shouldUpgrade:{type:Boolean},isListLoading:{type:Boolean},publishedVersionId:{},isWorkflowDiffsEnabled:{type:Boolean}},emits:[`action`,`preview`,`loadMore`,`upgrade`,`compare`],setup(e,{emit:t}){let i=e,a=t,s=M(),l=c(null),u=c(null),d=c(!0),p=f(new Set),v=m(()=>De(i.items)),x=e=>{p.has(e)?p.delete(e):p.add(e)},S=m(()=>i.lastReceivedItemsLength===i.requestNumberOfItems),{observe:w}=je({root:l,threshold:.01,onIntersect:()=>{d.value=!1,a(`loadMore`,{take:i.requestNumberOfItems,skip:i.items.length})}});C([u,S,()=>i.items.length],([e,t])=>{e&&t&&w(e)},{immediate:!0});let T=(e,t)=>{let n=i.actions;return t===0&&(n=n.filter(e=>e.value!==`restore`)),n=e.versionId===i.publishedVersionId?n.filter(e=>e.value!==`publish`):n.filter(e=>e.value!==`unpublish`),n},O=({action:e,id:t,data:n})=>{d.value=!1,a(`action`,{action:e,id:t,data:n})},k=({event:e,id:t})=>{d.value=!1,a(`preview`,{event:e,id:t})},N=({id:e})=>{d.value=!1,a(`compare`,{id:e})},P=e=>{let t=i.items[0]?.versionId;return Q({workflowHistory:e,currentVersionId:t})},F=(e,t)=>{if(!i.isWorkflowDiffsEnabled||!i.selectedItem)return null;if(i.items[t]?.versionId===i.selectedItem?.versionId){let e=i.items[t+1];return e?{name:P(e),versionId:e.versionId}:null}return{name:P(i.selectedItem),versionId:e.versionId}},I=({offsetTop:e,isSelected:t})=>{t&&d.value&&(d.value=!1,l.value?.scrollTo({top:e,behavior:`smooth`}))},L=m(()=>{let e=i.evaluatedPruneTimeInHours;if(e<24){let t=e===1?`workflowHistory.limitHour`:`workflowHistory.limitHours`;return s.baseText(t,{interpolate:{hours:String(e)}})}else{let t=Math.round(e/24),n=t===1?`workflowHistory.limitDay`:`workflowHistory.limitDays`;return s.baseText(n,{interpolate:{days:String(t)}})}});return(e,t)=>(n(),o(`ul`,{ref_key:`listElement`,ref:l,class:b(e.$style.list),"data-test-id":`workflow-history-list`},[(n(!0),o(y,null,D(v.value,t=>(n(),o(y,{key:t.type===`version`?t.item.versionId:t.groupId},[t.type===`group-header`?(n(),o(`li`,{key:0,class:b(e.$style.groupHeader),"aria-expanded":p.has(t.groupId),role:`button`,"data-test-id":`workflow-history-group-header`,onClick:e=>x(t.groupId)},[E(_(B),{class:b([e.$style.groupTimelineColumn,e.$style.groupChevron]),icon:p.has(t.groupId)?`chevron-down`:`chevron-right`,size:`small`},null,8,[`class`,`icon`]),E(_(V),{color:`text-base`,size:`small`},{default:j(()=>[r(h(_(s).baseText(`workflowHistory.group.unnamedVersions`,{adjustToNumber:t.count,interpolate:{count:String(t.count)}})),1)]),_:2},1024)],10,Le)):g(``,!0),t.type===`group-header`&&p.has(t.groupId)?(n(!0),o(y,{key:1},D(t.versions,e=>(n(),A(Pe,{key:e.item.versionId,index:e.originalIndex,item:e.item,"compare-with":F(e.item,e.originalIndex),"is-selected":e.item.versionId===i.selectedItem?.versionId,"is-published":e.item.versionId===i.publishedVersionId,actions:T(e.item,e.originalIndex),"is-workflow-diffs-enabled":i.isWorkflowDiffsEnabled,"is-grouped":!0,onAction:O,onPreview:k,onCompare:N,onMounted:I},null,8,[`index`,`item`,`compare-with`,`is-selected`,`is-published`,`actions`,`is-workflow-diffs-enabled`]))),128)):g(``,!0),t.type===`version`?(n(),A(Pe,{key:2,index:t.originalIndex,item:t.item,"compare-with":F(t.item,t.originalIndex),"is-selected":t.item.versionId===i.selectedItem?.versionId,"is-published":t.item.versionId===i.publishedVersionId,actions:T(t.item,t.originalIndex),"is-workflow-diffs-enabled":i.isWorkflowDiffsEnabled,onAction:O,onPreview:k,onCompare:N,onMounted:I},null,8,[`index`,`item`,`compare-with`,`is-selected`,`is-published`,`actions`,`is-workflow-diffs-enabled`])):g(``,!0)],64))),128)),i.items.length&&S.value?(n(),o(`li`,{key:0,ref_key:`loadMoreSentinel`,ref:u,class:b(e.$style.sentinel),"aria-hidden":`true`},null,2)):g(``,!0),i.isListLoading?(n(),o(`li`,{key:1,class:b(e.$style.loader),role:`status`,"aria-live":`polite`,"aria-busy":`true`,"aria-label":_(s).baseText(`generic.loading`)},[E(_(ne),{rows:3,class:`mb-xs`}),E(_(ne),{rows:3,class:`mb-xs`}),E(_(ne),{rows:3,class:`mb-xs`})],10,Re)):g(``,!0),i.shouldUpgrade?(n(),o(`li`,ze,[E(Ie,{"prune-time-display":L.value,onUpgrade:t[0]||=e=>a(`upgrade`)},null,8,[`prune-time-display`])])):g(``,!0)],2))}}),[[`__cssModules`,{$style:{list:`_list_vsdqz_125`,loader:`_loader_vsdqz_135`,sentinel:`_sentinel_vsdqz_139`,groupHeader:`_groupHeader_vsdqz_143`,groupTimelineColumn:`_groupTimelineColumn_vsdqz_162`,groupChevron:`_groupChevron_vsdqz_166`}}]]),Ve=t(((e,t)=>{var n=be();function r(e){return n(e)?void 0:e}t.exports=r})),He=e(t(((e,t)=>{var n=ae(),r=pe(),i=q(),a=G(),o=X(),s=Ve(),c=ye(),l=ge(),u=1,d=2,f=4;t.exports=c(function(e,t){var c={};if(e==null)return c;var p=!1;t=n(t,function(t){return t=a(t,e),p||=t.length>1,t}),o(e,l(e),c),p&&(c=r(c,u|d|f,s));for(var m=t.length;m--;)i(c,t[m]);return c})}))(),1),Ue=200,We=K(d({__name:`WorkflowHistoryContent`,props:{workflow:{},workflowVersion:{},actions:{},isPublished:{type:Boolean},isListLoading:{type:Boolean},isFirstItemShown:{type:Boolean}},emits:[`action`],setup(e,{emit:t}){let i=M(),s=e,l=t,u=m(()=>{if(!(!s.workflowVersion||!s.workflow))return{...(0,He.default)(s.workflow,`pinData`),nodes:s.workflowVersion.nodes,connections:s.workflowVersion.connections}}),d=m(()=>{if(!s.workflowVersion)return``;let{date:e,time:t}=Z(s.workflowVersion.createdAt);return i.baseText(`workflowHistory.item.createdAt`,{interpolate:{date:e,time:t}})}),f=m(()=>s.workflowVersion?Q({workflowHistory:s.workflowVersion,currentVersionId:s.workflow?.versionId}):``),p=c(!1),v=m(()=>s.workflowVersion?.description??``),y=m(()=>v.value.length>Ue),x=m(()=>!y.value||p.value?v.value:v.value.substring(0,Ue)+`... `),S=()=>{p.value=!p.value},w=m(()=>{let e=s.actions;return s.isFirstItemShown&&(e=e.filter(e=>e.value!==`restore`)),e=s.isPublished?e.filter(e=>e.value!==`publish`):e.filter(e=>e.value!==`unpublish`),e}),T=e=>{s.workflowVersion&&l(`action`,{action:e,id:s.workflowVersion.versionId,data:{formattedCreatedAt:d.value,versionName:f.value,description:v.value}})};return C(()=>s.workflowVersion,()=>{p.value=!1}),(e,t)=>(n(),o(`div`,{class:b(e.$style.content)},[s.workflowVersion?(n(),A(Ae,{key:0,workflow:u.value,loading:s.isListLoading,"loader-type":`spinner`},null,8,[`workflow`,`loading`])):g(``,!0),s.workflowVersion?(n(),o(`div`,{key:1,class:b(e.$style.info)},[a(`div`,{class:b(e.$style.card)},[a(`div`,{class:b(e.$style.descriptionBox)},[f.value?(n(),A(_(I),{key:0,placement:`right`,"show-after":300},{content:j(()=>[r(h(d.value),1)]),default:j(()=>[E(_(V),{class:b(e.$style.mainLine),bold:``,color:`text-dark`},{default:j(()=>[r(h(f.value),1)]),_:1},8,[`class`])]),_:1})):g(``,!0),v.value?(n(),A(_(V),{key:1,size:`small`,color:`text-base`},{default:j(()=>[r(h(x.value)+` `,1),y.value?(n(),A(_(U),{key:0,size:`small`,onClick:S},{default:j(()=>[r(h(p.value?_(i).baseText(`generic.showLess`):_(i).baseText(`generic.showMore`)),1)]),_:1})):g(``,!0)]),_:1})):g(``,!0)],2),E(_(P),{class:b(e.$style.actions),actions:w.value,placement:`bottom-end`,"data-test-id":`workflow-history-content-actions`,onAction:T},{default:j(()=>[E(_(ee),{variant:`subtle`,size:`large`,"data-test-id":`action-toggle-button`},{default:j(()=>[r(h(_(i).baseText(`workflowHistory.content.actions`))+` `,1),E(_(B),{class:`ml-3xs`,icon:`chevron-down`,size:`small`})]),_:1})]),_:1},8,[`class`,`actions`])],2)],2)):g(``,!0)],2))}}),[[`__cssModules`,{$style:{content:`_content_1kvp7_125`,info:`_info_1kvp7_135`,card:`_card_1kvp7_143`,descriptionBox:`_descriptionBox_1kvp7_150`,mainLine:`_mainLine_1kvp7_162`,actions:`_actions_1kvp7_170`}}]]),Ge=d({__name:`WorkflowHistoryVersionSelect`,props:{modelValue:{},options:{},dataTestId:{}},emits:[`update:modelValue`,`upgrade`],setup(e,{emit:t}){let r=e,i=t,l=c(null),u=c(``),d=M(),f=de(),g=m(()=>new Map(r.options.map(e=>[e.value,e]))),v=m(()=>g.value.get(r.modelValue)),x=m(()=>{let e=v.value?.publishInfo;return e?{label:v.value.label,status:v.value.status,publishInfo:e}:null}),S=m(()=>{let e=new Map;for(let t of r.options){let n=t.createdAt?Z(t.createdAt).date:`Unknown`,r=e.get(n);r?r.push(t):e.set(n,[t])}return Array.from(e.entries()).map(([e,t])=>({dateLabel:e,options:t}))}),C=m(()=>!!v.value?.publishInfo),w=(e,t)=>{let n=e.options.filter(e=>e.label.toLowerCase().includes(t));return n.length===e.options.length?e:{...e,options:n}},T=m(()=>{if(!u.value)return S.value;let e=u.value.toLowerCase().trim(),t=[];for(let n of S.value){let r=w(n,e);r.options.length>0&&t.push(r)}return t});function N(e=``){u.value=e}function P(e){e||(u.value=``)}let I=m(()=>{let e=_(f.evaluatedPruneTime)??0;if(e<24){let t=e===1?`workflowHistory.limitHour`:`workflowHistory.limitHours`;return d.baseText(t,{interpolate:{hours:String(e)}})}let t=Math.round(e/24),n=t===1?`workflowHistory.limitDay`:`workflowHistory.limitDays`;return d.baseText(n,{interpolate:{days:String(t)}})}),L=m(()=>!!_(f.shouldUpgrade));return(e,t)=>(n(),o(`div`,{class:b(e.$style.container)},[a(`div`,{ref_key:`popperContainer`,ref:l},null,512),(n(),A(O(C.value?Ne:`span`),k(s(x.value??{})),{default:j(()=>[E(_(H),{"model-value":r.modelValue,size:`small`,filterable:``,"filter-method":N,class:b(e.$style.select),"popper-class":e.$style[`workflow-history-version-select-dropdown`],"append-to":l.value,teleported:``,"data-test-id":r.dataTestId,"onUpdate:modelValue":t[1]||=e=>i(`update:modelValue`,e),onVisibleChange:P},p({prefix:j(()=>[E($,{status:v.value?.status},null,8,[`status`])]),default:j(()=>[(n(!0),o(y,null,D(T.value,t=>(n(),A(_(F),{key:t.dateLabel,label:t.dateLabel},{default:j(()=>[(n(!0),o(y,null,D(t.options,t=>(n(),A(_(W),{key:t.value,value:t.value,label:t.label},{default:j(()=>[t.publishInfo?(n(),A(Ne,{key:0,label:t.label,status:t.status,"publish-info":t.publishInfo,offset:24,placement:`right`},{default:j(()=>[a(`span`,{class:b(e.$style.optionRow)},[E($,{status:t.status},null,8,[`status`]),a(`span`,null,h(t.label),1)],2)]),_:2},1032,[`label`,`status`,`publish-info`])):(n(),o(`span`,{key:1,class:b(e.$style.optionRow)},[E($,{status:t.status},null,8,[`status`]),a(`span`,null,h(t.label),1)],2))]),_:2},1032,[`value`,`label`]))),128))]),_:2},1032,[`label`]))),128))]),_:2},[L.value?{name:`footer`,fn:j(()=>[E(Ie,{"prune-time-display":I.value,"with-top-border":!0,onUpgrade:t[0]||=e=>i(`upgrade`)},null,8,[`prune-time-display`])]),key:`0`}:void 0]),1032,[`model-value`,`class`,`popper-class`,`append-to`,`data-test-id`])]),_:1},16))],2))}}),Ke=`_container_132hu_125`,qe=`_select_132hu_129`,Je=`_optionRow_132hu_151`,Ye=K(Ge,[[`__cssModules`,{$style:{container:Ke,select:qe,"workflow-history-version-select-dropdown":`_workflow-history-version-select-dropdown_132hu_137`,optionRow:Je}}]]),Xe=({availableVersions:e,currentWorkflowVersionId:t,publishedWorkflowVersionId:n,selectedVersionIds:r,resolveUserDisplayName:i})=>{let a=m(()=>new Map(e.value.map(e=>[e.versionId,e]))),o=e=>a.value.get(e),s=e=>Q({workflowHistory:o(e)??{versionId:e,name:null},currentVersionId:t.value}),c=e=>e===n.value?`published`:e===t.value?`latest`:`default`,l=e=>{let t=o(e);if(!t)return;let n=Ee(t.workflowPublishHistory);if(n)return{publishedBy:i(n.userId),publishedAt:n.createdAt}},u=e=>o(e)?.createdAt;return{getVersionLabelById:s,versionOptions:m(()=>{let t=new Map(e.value.map(e=>[e.versionId,s(e.versionId)]));for(let e of r.value)e&&!t.has(e)&&t.set(e,s(e));return Array.from(t.entries()).map(([e,t])=>({value:e,label:t,status:c(e),publishInfo:l(e),createdAt:u(e)}))})}},Ze=K(d({__name:`WorkflowHistoryDiff`,props:{workflowId:{},sourceWorkflowVersionId:{},targetWorkflowVersionId:{},availableVersions:{}},emits:[`close`,`versionsChange`],setup(e,{emit:t}){let i=e,s=t,l=M(),u=oe(),d=de(),f=xe(),p=le(),v=ue(),y=c(!0),x=c(),S=c(),w=c(``),T=c(``),D=c(i.sourceWorkflowVersionId),O=c(i.targetWorkflowVersionId),k=c(),N=c(),P=c(0),{getVersionLabelById:F,versionOptions:I}=Xe({availableVersions:m(()=>i.availableVersions),currentWorkflowVersionId:k,publishedWorkflowVersionId:N,selectedVersionIds:m(()=>[D.value,O.value]),resolveUserDisplayName:e=>{if(!e)return null;let t=v.usersById[e];return t?.fullName??t?.email??null}}),L=async(e,t)=>{let n=++P.value;y.value=!0;try{let[r,a,o]=await Promise.all([p.fetchWorkflow(i.workflowId),d.getWorkflowVersion(i.workflowId,e),d.getWorkflowVersion(i.workflowId,t)]);if(n!==P.value)return;if(a.workflowId!==i.workflowId||o.workflowId!==i.workflowId)throw Error(l.baseText(`workflowDiff.versionMismatchError`));k.value=r.versionId,N.value=r.activeVersionId??void 0;let s=(0,He.default)(r,`pinData`);x.value={...s,versionId:a.versionId,nodes:a.nodes,connections:a.connections},S.value={...s,versionId:o.versionId,nodes:o.nodes,connections:o.connections},w.value=F(a.versionId),T.value=F(o.versionId)}catch(e){u.showError(e,l.baseText(`workflowDiff.compareVersionsLoadError`)),s(`close`)}finally{n===P.value&&(y.value=!1)}},R=()=>{let e=D.value;D.value=O.value,O.value=e},z=(e,t)=>{se.track(`user_selects_version_in_diff`,{instance_id:f.instanceId,workflow_id:i.workflowId,version_id:t,side:e,source:`version_history`})},B=e=>{if(z(`source`,e),e===O.value){R();return}D.value=e},ee=e=>{if(z(`target`,e),e===D.value){R();return}O.value=e};return C(()=>[i.sourceWorkflowVersionId,i.targetWorkflowVersionId],([e,t])=>{D.value=e,O.value=t}),C([D,O],([e,t])=>{s(`versionsChange`,{sourceVersionId:e,targetVersionId:t}),L(e,t)},{immediate:!0}),(e,t)=>(n(),o(`div`,{class:b(e.$style.container)},[y.value?(n(),o(`div`,{key:0,class:b(e.$style.state)},[E(_(V),{color:`text-base`},{default:j(()=>[r(h(_(l).baseText(`generic.loading`)),1)]),_:1})],2)):x.value&&S.value?(n(),A(Oe,{key:1,"source-workflow":x.value,"target-workflow":S.value,"source-label":w.value,"target-label":T.value,"show-back-button":!0,source:`version_history`,onBack:t[0]||=e=>s(`close`)},{sourceLabel:j(()=>[a(`div`,{class:b(e.$style.sourceBadge)},[E(Ye,{"model-value":D.value,options:_(I),"data-test-id":`workflow-history-diff-source-version`,"onUpdate:modelValue":B},null,8,[`model-value`,`options`])],2)]),targetLabel:j(()=>[a(`div`,{class:b(e.$style.sourceBadge)},[E(Ye,{"model-value":O.value,options:_(I),"data-test-id":`workflow-history-diff-target-version`,"onUpdate:modelValue":ee},null,8,[`model-value`,`options`])],2)]),_:1},8,[`source-workflow`,`target-workflow`,`source-label`,`target-label`])):g(``,!0)],2))}}),[[`__cssModules`,{$style:{container:`_container_2rd14_125`,state:`_state_2rd14_131`,sourceBadge:`_sourceBadge_2rd14_138`}}]]),Qe={key:0},$e=K(d({__name:`WorkflowHistory`,setup(e){let t=[`restore`,`publish`,`unpublish`,`name`,`clone`,`open`,`download`],i=t.reduce((e,t)=>({...e,[t.toUpperCase()]:t}),{}),s=te(),d=re(),f=M(),p=oe(),v=Ce(),y=de(),C=ce(),w=le(),T=ue(),D=Se(),O=ke(),k=m(()=>D.isEnterpriseFeatureEnabled[ve.NamedVersions]),N=m(()=>D.settings.enterprise.workflowDiffs),P=c(!0),F=c(!0),I=c(20),z=c(0),B=c(null),V=c([]),H=c(null),ne=m(()=>t.filter(e=>!(e===`publish`&&B.value?.isArchived||e===`name`&&!k.value))),U=m(()=>Ee(`workflowId`)),W=m(()=>Ee(`versionId`)),G=m(()=>{let e=s.query.diffWith;return typeof e==`string`?e:void 0}),ae=m(()=>({name:Y.WORKFLOW,params:{name:U.value}})),K=m(()=>fe(w.getWorkflowById(U.value)?.scopes).workflow),q=m(()=>Te(B.value)||Te(w.getWorkflowById(U.value))),pe=m(()=>ne.value.map(e=>({label:f.baseText(`workflowHistory.item.actions.${e}`),disabled:e===`clone`&&!K.value.create||(e===`restore`||e===`name`)&&!K.value.update||(e===`publish`||e===`unpublish`)&&!K.value.publish,value:e}))),ge=m(()=>V.value[0]?.versionId===W.value),ye=(e,t=W.value)=>({name:Y.WORKFLOW_HISTORY,params:{workflowId:U.value,versionId:t},query:{...s.query,diffWith:e}}),X=(e,t)=>{se.track(e,{instance_id:xe().instanceId,workflow_id:U.value,...t})},be=async e=>{let t=await y.getWorkflowHistory(U.value,e);z.value=t.length;let n=t.flatMap(e=>e.workflowPublishHistory.map(e=>e.userId)).filter(e=>!!e),r=new Set(n);await T.fetchUsers({filter:{ids:Array.from(r)}}),V.value=V.value.concat(t)};u(async()=>{X(`User opened workflow history`);try{let[e]=await Promise.all([w.fetchWorkflow(U.value),be({take:I.value})]);B.value=e,F.value=!1,!W.value&&V.value.length&&await d.replace({name:Y.WORKFLOW_HISTORY,params:{workflowId:U.value,versionId:V.value[0].versionId}})}catch(e){P.value=!1,p.showError(e,f.baseText(`workflowHistory.title`))}});let Ee=e=>{let t=s.params[e];return typeof t==`string`?t:t?.[0]??``},Z=e=>{let{href:t}=d.resolve({name:Y.WORKFLOW_HISTORY,params:{workflowId:U.value,versionId:e}});window.open(t,`_blank`)},Q=async(e,t)=>{let n=await y.cloneIntoNewWorkflow(U.value,e,t),{href:r}=d.resolve({name:Y.WORKFLOW,params:{name:n.id}});p.showMessage({title:f.baseText(`workflowHistory.action.clone.success.title`),message:l(`a`,{href:r,target:`_blank`},f.baseText(`workflowHistory.action.clone.success.message`)),type:`success`,duration:1e4})},De=async e=>{let t=(await w.fetchWorkflow(U.value)).versionId;if(B.value=await y.restoreWorkflow(U.value,e),B.value.versionId===t){p.showMessage({title:f.baseText(`workflowHistory.action.restore.alreadyRestored`),type:`info`});return}V.value=(await y.getWorkflowHistory(U.value,{take:1})).concat(V.value),p.showMessage({title:f.baseText(`workflowHistory.action.restore.success.title`),type:`success`})},Oe=(e,t)=>{let n=ie(),r=c({versionId:e,versionName:t.versionName,description:t.description,modalTitle:f.baseText(`workflows.publishModal.title`),submitButtonLabel:f.baseText(`workflows.publish`),submitting:!1,eventBus:n});n.once(`submit`,async t=>{r.value.submitting=!0;try{let{success:n}=await O.publishWorkflow(U.value,e,{name:t.name,description:t.description});if(n){B.value=w.getWorkflowById(U.value);let e=V.value.find(e=>e.versionId===t.versionId);e&&(e.name=t.name,e.description=t.description,B.value?.activeVersion?.workflowPublishHistory&&(e.workflowPublishHistory=B.value.activeVersion.workflowPublishHistory)),H.value?.versionId===t.versionId&&(H.value={...H.value,name:t.name,description:t.description,workflowPublishHistory:B.value?.activeVersion?.workflowPublishHistory??H.value.workflowPublishHistory}),X(`User published version from history`),C.closeModal(me)}}finally{r.value.submitting=!1}}),C.openModalWithData({name:me,data:r.value})},Ae=(e,t)=>{if(q.value!==e)return;let n=ie();n.once(`unpublish`,async()=>{let e=await O.unpublishWorkflowFromHistory(U.value);C.closeModal(he),e&&(B.value=w.getWorkflowById(U.value),p.showMessage({title:f.baseText(`workflowHistory.action.unpublish.success.title`),type:`success`}),X(`User unpublished workflow from history`))}),C.openModalWithData({name:he,data:{versionName:t.versionName,eventBus:n}})},je=async(e,t)=>{let n=ie(),r=c({versionId:e,versionName:t.versionName,description:t.description,modalTitle:f.baseText(`workflowHistory.nameVersionModal.title`),submitButtonLabel:f.baseText(`workflowHistory.nameVersionModal.confirmButton`),submitting:!1,eventBus:n});n.once(`submit`,async t=>{r.value.submitting=!0;try{await y.updateWorkflowHistoryVersion(U.value,e,{name:t.name,description:t.description});let n=V.value.find(e=>e.versionId===t.versionId);n&&(n.name=t.name,n.description=t.description),H.value?.versionId===t.versionId&&(H.value={...H.value,name:t.name,description:t.description}),p.showMessage({title:f.baseText(`workflowHistory.action.nameVersion.success.title`),type:`success`}),X(`User named version from history`),C.closeModal(_e)}catch(e){p.showError(e,f.baseText(`workflowHistory.action.nameVersion.error.title`))}finally{r.value.submitting=!1}}),C.openModalWithData({name:_e,data:r.value})},$=async({action:e,id:t,data:n})=>{try{switch(e){case i.OPEN:Z(t),X(`User opened version in new tab`);break;case i.DOWNLOAD:await y.downloadVersion(U.value,t,n),X(`User downloaded version`);break;case i.CLONE:await Q(t,n),X(`User cloned version`);break;case i.RESTORE:await De(t),X(`User restored version`);break;case i.PUBLISH:Oe(t,n);break;case i.UNPUBLISH:Ae(t,n);break;case i.NAME:await je(t,n);break}}catch(t){p.showError(t,f.baseText(`workflowHistory.action.error.title`,{interpolate:{action:f.baseText(`workflowHistory.item.actions.${e}`).toLowerCase()}}))}},Me=async({event:e,id:t})=>{e.metaKey||e.ctrlKey?(Z(t),X(`User opened version in new tab`)):await d.push({name:Y.WORKFLOW_HISTORY,params:{workflowId:U.value,versionId:t}})},Ne=()=>{v.goToUpgrade(`workflow-history`,`upgrade-workflow-history`)},Pe=async e=>{N.value&&(!W.value||W.value===e||(await d.push(ye(e)),X(`user_clicks_compare_workflows`,{source:`version_history`})))},Fe=async({sourceVersionId:e,targetVersionId:t})=>{!e||!t||W.value===t&&G.value===e||await d.push(ye(e,t))},Ie=async()=>{C.modalsById.workflowHistoryDiff?.open&&C.closeModal(J);let e={...s.query};delete e.diffWith,await d.replace({name:Y.WORKFLOW_HISTORY,params:{workflowId:U.value,versionId:W.value},query:e})};return x(()=>{let e=!!(N.value&&G.value&&W.value),t=C.modalsById[J]?.open;e&&!t&&C.openModal(J),!e&&t&&C.closeModal(J)}),x(async()=>{if(W.value)try{let[e,t]=await Promise.all([y.getWorkflowVersion(U.value,W.value),w.fetchWorkflow(U.value)]);H.value=e,B.value=t,X(`User selected version`)}catch(e){e.message?.includes(`version`)?p.showError(Error(`${e.message} "${W.value}" `),f.baseText(`workflowHistory.title`)):(P.value=!1,p.showError(e,f.baseText(`workflowHistory.title`)))}}),(e,t)=>{let i=S(`RouterLink`);return n(),o(`div`,{class:b(e.$style.view)},[a(`div`,{class:b(e.$style.header)},[E(_(R),{tag:`h2`,size:`medium`},{default:j(()=>[r(h(B.value?.name),1)]),_:1}),B.value?.isArchived?(n(),o(`span`,Qe,[E(_(L),{class:`ml-s`,theme:`tertiary`,bold:``,"data-test-id":`workflow-archived-tag`},{default:j(()=>[r(h(_(f).baseText(`workflows.item.archived`)),1)]),_:1})])):g(``,!0)],2),a(`div`,{class:b(e.$style.corner)},[E(_(R),{tag:`h2`,size:`medium`,bold:``},{default:j(()=>[r(h(_(f).baseText(`workflowHistory.title`)),1)]),_:1}),E(i,{to:ae.value,"data-test-id":`workflow-history-close-button`},{default:j(()=>[E(_(ee),{variant:`ghost`,icon:`x`,size:`small`,square:``})]),_:1},8,[`to`])],2),a(`div`,{class:b(e.$style.listComponentWrapper)},[P.value?(n(),A(Be,{key:0,items:V.value,"last-received-items-length":z.value,"selected-item":H.value,actions:pe.value,"request-number-of-items":I.value,"should-upgrade":_(y).shouldUpgrade,"evaluated-prune-time-in-hours":_(y).evaluatedPruneTime,"is-list-loading":F.value,"published-version-id":q.value,"is-workflow-diffs-enabled":N.value,onAction:$,onPreview:Me,onCompare:t[0]||=({id:e})=>Pe(e),onLoadMore:be,onUpgrade:Ne},null,8,[`items`,`last-received-items-length`,`selected-item`,`actions`,`request-number-of-items`,`should-upgrade`,`evaluated-prune-time-in-hours`,`is-list-loading`,`published-version-id`,`is-workflow-diffs-enabled`])):g(``,!0)],2),a(`div`,{class:b(e.$style.contentComponentWrapper)},[P.value?(n(),A(We,{key:0,workflow:B.value,"workflow-version":H.value,"is-published":H.value?.versionId===q.value,actions:pe.value,"is-list-loading":F.value,"is-first-item-shown":ge.value,onAction:$},null,8,[`workflow`,`workflow-version`,`is-published`,`actions`,`is-list-loading`,`is-first-item-shown`])):g(``,!0)],2),N.value&&G.value&&W.value?(n(),A(we,{key:0,name:_(J),"custom-class":e.$style.workflowHistoryDiffModal,height:`100%`,width:`100%`,"max-width":`100%`,"max-height":`100%`,"close-on-press-escape":!1,"show-close":!1,"before-close":Ie},{content:j(()=>[(n(),A(Ze,{key:`${W.value}:${G.value}`,"workflow-id":U.value,"source-workflow-version-id":G.value,"target-workflow-version-id":W.value,"available-versions":V.value,onVersionsChange:Fe,onClose:Ie},null,8,[`workflow-id`,`source-workflow-version-id`,`target-workflow-version-id`,`available-versions`]))]),_:1},8,[`name`,`custom-class`])):g(``,!0)],2)}}}),[[`__cssModules`,{$style:{view:`_view_fgk58_125`,header:`_header_fgk58_135`,corner:`_corner_fgk58_143`,contentComponentWrapper:`_contentComponentWrapper_fgk58_154`,listComponentWrapper:`_listComponentWrapper_fgk58_159`,workflowHistoryDiffModal:`_workflowHistoryDiffModal_fgk58_165`}}]]);export{$e as default};
//# sourceMappingURL=WorkflowHistory-CDscWAfs.js.map