PageSourceSearch

https://help.grouptrackcrm.com/assets/workflows-DNS7cgdT.js

js grouptrackcrm.com collected 2026-10-04 02:26:27 UTC 49,947 bytes, 6 lines download raw bytes

1import{d as Re,r as V,c as ve,E as p,q as i,ad as ze,x as a,f as l,v as r,A as ee,G as f,B as W,I as be,p as g,y as S,H as Oe,dL as wt,aa as we,n as oe,M as at,u as ot,w as ge,O as Fe,ao as Ue,F as me,C as ye,z as h,ab as G,D as m,Q as I,aK as Je,aD as Ke,a5 as Q,ay as xt,al as ht,R as Ze,bJ as Dt,bH as Vt,eU as It,eV as Ct,ae as Tt}from"./index-DjfbnMER.js";import{Q as ie}from"./QChip-541HclyG.js";import{a as P,b as U,Q as Me}from"./QItem-BUmo2ift.js";import{Q as Se}from"./QList-DGOtKMil.js";import{Q as Ce}from"./QMenu-dujq3Dt-.js";import{Q as Qe}from"./QSelect-4KNzWLkv.js";import{Q as $t}from"./QBadge-rQx7QWxi.js";import{Q as At,a as qt}from"./QTimeline-DJb7PWU-.js";import{Q as Wt}from"./QPage-CXfc4xV7.js";import{C as B}from"./ClosePopup-BPnTIYcs.js";import{Q as N}from"./QTooltip-CtdUCaRU.js";import{Q as Ut}from"./QBtnGroup-rFMySYAE.js";import{Q as Ot}from"./QBanner-Bd7-k0rC.js";import{_ as Et}from"./StageSelector.vue_vue_type_style_index_0_lang-BLLVAogV.js";import{T as Lt,a as jt}from"./SettingsPanelsComponent.vue_vue_type_style_index_0_lang-BsxWz-rn.js";import{a as Ft,_ as Mt}from"./NewTaskComponent.vue_vue_type_style_index_0_lang-1mzSRUdX.js";import{_ as Nt}from"./PipelineSelector.vue_vue_type_script_setup_true_lang-BKAhFLq0.js";import"./position-engine-eIHPEN8K.js";import"./selection-BP-5_BTM.js";import"./rtl-DFPa-2ov.js";import"./format-hlGAdIUH.js";import"./QPopupProxy-LlTs7g-L.js";import"./QExpansionItem-DkTmS6dA.js";import"./QSlideTransition-CkVIalaC.js";import"./IntegrationDrawer.vue_vue_type_script_setup_true_lang-tGEZYu62.js";import"./QSkeleton-DxNPnI7h.js";import"./ConnectionDetails.vue_vue_type_script_setup_true_lang-Dx_0kXAl.js";import"./QForm-DRfs7olI.js";import"./SelectedConnection-HdrfUbhT.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./CreateOrEditMessageTemplateComponent.vue_vue_type_style_index_0_lang-DF_yxe3b.js";import"./QSplitter-B6zSkSvC.js";import"./TouchPan-DHMtE6Wu.js";import"./touch-BjYP5sR0.js";import"./useMessageTemplate-_rUoTNLM.js";import"./QTabs-NfeGUoEv.js";import"./QResizeObserver-nxvaPioY.js";import"./QTabPanels-Cq-GdNTP.js";import"./use-panel-DZ_qWAxg.js";import"./use-render-cache-DLxPkVnQ.js";import"./QBtnDropdown-B5k1oTTi.js";import"./UpgradeModal-uq2Gjtfk.js";import"./UpgradeBannerNotice-BA6pOFDS.js";import"./QTime-LdMKJlg2.js";import"./date-ghAczQh4.js";import"./moment-BOMcsgD2.js";import"./QDate-QS7S_9s0.js";const Rt={class:"q-pt-md"},zt={key:0,class:"q-gutter-md"},Qt={key:1},Pt={key:3,class:"text-grey"},Bt=Re({__name:"WorkflowStepConfigDrawer",props:{modelValue:Boolean,step:Object},emits:["update:modelValue","redrawSteps"],setup(A,{emit:H}){const Y=A,C=H,x=V(null);["gt_contact_has_tags","gt_contact_tag_added_removed"].includes(Y.step.typeSpecificData?.selectedValue)&&Object.keys(Y.step.resourceSelection?.selectedValue??{})?.[0]?.startsWith("wf-tg")&&(x.value=Y.step.resourceSelection?.selectedValue??null);const b=ve(()=>{let _=x.value;return x.value&&!Array.isArray(x.value)&&(_=Object.values(x.value)),_?.length>0?Object.values(_.reduce((c,k)=>{if(!k?.tag?.tagID)return c;const ue=k.tagSetUID;return(c[ue]=c[ue]||[]).push(k),c},{})):[]});function R(_){if(_.type==="Action")return jt;if(_.type==="Wait")return null;switch(_.typeSpecificData.selectedValue){case"gt_contact_stage_changed":case"gt_contact_is_in_stage":case"gt_contact_is_not_in_stage":case"gt_contact_set_stage":return Et;case"gt_contact_assigned_to":case"gt_contact_is_assigned_to":case"gt_contact_is_not_assigned_to":case"gt_contact_assign_to_team_member":return Mt;case"gt_contact_create_task":return Ft;case"gt_contact_added_to_pipeline":case"gt_contact_removed_from_pipeline":case"gt_contact_is_in_pipeline":case"gt_contact_is_not_in_pipeline":case"gt_contact_add_to_pipeline":case"gt_contact_remove_from_pipeline":return Nt;default:return null}}async function re(_){console.log("VALUE:",_),Y.step.resourceSelection.selectedValue=_,await oe(),C("redrawSteps",null)}async function le(_){let c=_[0];x.value||(x.value={});const k=at().generatePushID("wf-tg");Array.isArray(x.value)?x.value.push({color:c.color,tagSetUID:c.tagSetUID,tagSetName:c.tagSetName,globalTagsSelectedUID:k,connectionUID:c.connectionUID??null,tag:{color:c.tagColor??null,name:c.name,value:c.name,tagID:c.tagID,remoteID:c.remoteID??null}}):x.value[k]={color:c.color,tagSetUID:c.tagSetUID,tagSetName:c.tagSetName,globalTagsSelectedUID:k,connectionUID:c.connectionUID??null,tag:{color:c.tagColor??null,name:c.name,value:c.name,tagID:c.tagID,remoteID:c.remoteID??null}},Y.step.resourceSelection.selectedValue=x.value,await oe(),C("redrawSteps",null)}async function T(_){if(Array.isArray(x.value)){let c=x.value.findIndex(k=>k?.tag?.tagID===_.tagIndex&&k?.tagSetUID===_.tagSet.tagSetUID);c!==-1&&(x.value[c]=null),x.value.every(k=>k===null)&&(x.value=null)}else{if(_.hasOwnProperty("globalTagsSelectedUID"))x.value[_.globalTagsSelectedUID]=null;else{let c=Object.values(x.value).findIndex(k=>k?.tag?.tagID===_.tagIndex&&k?.tagSetUID===_.tagSet.tagSetUID);if(c!==-1){const k=Object.keys(x.value)[c];x.value[k]=null}}Object.values(x.value).every(c=>c===null)&&(x.value=null)}Y.step.resourceSelection.selectedValue=x.value,await oe(),C("redrawSteps",null)}return(_,c)=>(i(),p(ze,{"model-value":A.modelValue,"onUpdate:modelValue":c[7]||(c[7]=k=>C("update:modelValue",k)),"full-height":"",position:"right",maximized:"",width:400,breakpoint:0,class:"q-pa-md","content-class":"bg-white"},{default:a(()=>[l(we,{class:"full-height q-pa-md",style:{width:"400px",display:"flex","flex-direction":"column"}},{default:a(()=>[r("div",{class:ee(["text-h6 q-mb-md",_.$q.dark.isActive?"dark_text":"text-grey-8"]),style:{width:"100%",display:"flex","flex-direction":"row","justify-content":"space-between","align-items":"center"}},[c[8]||(c[8]=f(" Configure Step ")),l(W,{icon:"mdi-close",flat:"",rounded:"",style:{"margin-left":"auto"},onClick:c[0]||(c[0]=k=>C("update:modelValue",!1))})],2),l(be),r("div",Rt,[A.step.type==="Wait"?(i(),g("div",zt,[l(Oe,{filled:"",modelValue:A.step.typeSpecificData.waitData.duration,"onUpdate:modelValue":c[1]||(c[1]=k=>A.step.typeSpecificData.waitData.duration=k),modelModifiers:{number:!0},type:"number",label:"Duration",min:1},null,8,["modelValue"]),l(Qe,{filled:"",modelValue:A.step.typeSpecificData.waitData.unit,"onUpdate:modelValue":c[2]||(c[2]=k=>A.step.typeSpecificData.waitData.unit=k),options:["minute","hour","day"],label:"Unit","emit-value":"","map-options":""},null,8,["modelValue"])])):S("",!0),["gt_contact_tag_added_removed","gt_contact_has_tags"].includes(A.step.typeSpecificData.selectedValue)?(i(),g("div",Qt,[A.step.typeSpecificData.selectedValue==="gt_contact_tag_added_removed"?(i(),p(Ot,{key:0,rounded:"",class:ee(["bg-yellow-2 q-mb-md text-grey-8",_.$q.dark.isActive?"dark_text":"text-grey-8"])},{default:a(()=>c[9]||(c[9]=[f(" This Trigger will fire when "),r("b",null,"ANY",-1),f(" of the selected Tags are added or removed from the Contact. ")])),_:1,__:[9]},8,["class"])):S("",!0),l(Lt,{hideTitle:!0,componentLocation:"workflow-filter",memberTagSetsData:b.value,onTagAdded:c[3]||(c[3]=k=>le(k)),onTagRemoved:c[4]||(c[4]=k=>T(k))},null,8,["memberTagSetsData"])])):A.step&&A.step.type==="Action"||A.step.typeSpecificData&&A.step.typeSpecificData.selectedValue?(i(),p(wt(R(A.step)),{key:2,onSelected:c[5]||(c[5]=k=>re(k)),onDone:c[6]||(c[6]=k=>A.step.resourceSelection.selectedValue=k.data),selected:A.step.resourceSelection.selectedValue,"panel-data":A.step.resourceSelection.selectedValue,"from-workflow":!0,"hide-header":!0,"hide-footer":!0,"hide-footer-buttons":!0,"emit-on-every-change":!0,"task-data":A.step.resourceSelection.selectedValue,"hide-mark-completed":!0,"hide-contact-selection":!0,"use-relative-due-date":!0,"use-relative-assignment":!0,"auto-expand-first-panel":!0,"show-panel-active-toggles":!0,"show-set-stage-if-ahead":!0,"emit-every-panel":!0,"use-relative-task-dates":!0,"use-relative-task-assignment":!0,"panels-to-show":["pipeline","tags","message","task","assignedTeamMember","statusLabel","notes"]},null,40,["selected","panel-data","task-data"])):(i(),g("div",Pt,"No configuration available for this step."))])]),_:1})]),_:1},8,["model-value"]))}}),Ht={class:"workflow-editor-root"},Yt={class:"row items-center no-wrap"},Xt={class:"col"},Gt={class:"text-subtitle2"},Jt={class:"col-auto row items-center no-wrap"},Kt={class:"row items-center justify-between"},Zt={class:"col q-mt-none"},el={class:"q-mt-none"},tl={class:"col-auto"},ll={class:"row items-center justify-between"},al={class:"col q-mt-none"},ol={class:"col-auto"},sl={class:"row items-center justify-between"},nl={class:"col q-mt-sm"},il={key:0,class:"row items-center"},rl={class:"q-ml-auto"},ul={key:0},cl={key:1},dl={key:2},fl={key:0},ml=["onMouseenter"],pl=["onMouseenter"],gl=["d","stroke"],vl=["x1","y1","x2","y2","stroke","marker-end"],yl={key:0,class:"canvas-center-btn",style:{display:"flex","align-items":"center",gap:"24px"}},_l={class:"text-h6"},kl={class:"text-body1 q-mb-md"},Sl={key:0,class:"text-body2 text-warning"},et=50,tt=250,Ne=300,lt=10,bl=Re({__name:"WorkflowEditor",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(A,{emit:H}
1){const Y=ot(),C=A,x=H,b=V({}),R=V(null),re=ve(()=>Object.values(b.value)),le=ve(()=>{const s=M(),t=1200,e=800,y=Math.max(t,s.maxX+J.value.x+100),u=Math.max(e,s.maxY+J.value.y+100);return{width:y,height:u}}),T=V(null),_=V(new Map),c=V(new Map),k=V(new Map),ue=V(null),F=V(0),J=V({x:Ne,y:50}),Te=[{label:"Is Added to Pipeline",value:"gt_contact_added_to_pipeline"},{label:"Is Removed from Pipeline",value:"gt_contact_removed_from_pipeline"},{label:"Has Tag Added/Removed",value:"gt_contact_tag_added_removed"},{label:"Stage Is Set To",value:"gt_contact_stage_changed"},{label:"Is Assigned To",value:"gt_contact_assigned_to"}],Ee=[{label:"Is in Stage",value:"gt_contact_is_in_stage"},{label:"Has Tag(s)",value:"gt_contact_has_tags"},{label:"Is Assigned To",value:"gt_contact_is_assigned_to"},{label:"Has Keyword(s) in Questions",value:"gt_contact_has_keywords_in_questions"},{label:"Has Keyword(s) in Bio Text",value:"gt_contact_has_keywords_in_bio_text"},{label:"Is in Pipeline",value:"gt_contact_is_in_pipeline"}],xe=V(!0),te=V(null),ce=V(!1),K=V(null),v=V(null),n=V(null);setTimeout(()=>{document.querySelector("input")?.focus()},100);const o=V(!1),d=V(null);function L(s){d.value=s,o.value=!0}ge(()=>C.modelValue,s=>{const t=s?.steps||{},e=s?.rootStepId||null,y=Fe(t),u=Fe(b.value);(JSON.stringify(y)!==JSON.stringify(u)||e!==R.value)&&(b.value=JSON.parse(JSON.stringify(y)),R.value=e),Object.values(b.value).forEach((w,E)=>{w.id||(w.id=crypto.randomUUID()),w.type||(w.type="Action"),w.position||(w.position={x:50,y:50+E*220}),w.resourceSelection||(w.resourceSelection={selectedValue:null}),w.typeSpecificData||(w.typeSpecificData={selectedValue:""})})},{immediate:!0,deep:!0}),ge([b,R],([s,t])=>{const e=JSON.parse(JSON.stringify(Fe(s)));x("update:modelValue",{...C.modelValue,steps:e,rootStepId:t})},{deep:!0});const z=(s,t)=>{if(s){let e=null;s instanceof HTMLElement?e=s:s.$el&&s.$el instanceof HTMLElement&&(e=s.$el),e&&_.value.set(t,e)}else _.value.delete(t)},se=(s,t)=>{if(s){let e=null;s instanceof HTMLElement?e=s:s.$el&&s.$el instanceof HTMLElement&&(e=s.$el),e&&c.value.set(t,e)}else c.value.delete(t)},de=(s,t)=>{if(s){let e=null;s instanceof HTMLElement?e=s:s.$el&&s.$el instanceof HTMLElement&&(e=s.$el),e&&k.value.set(t,e)}else k.value.delete(t)},j=ve(()=>Object.values(b.value).some(s=>s.type==="Trigger")),M=()=>{const s=Object.values(b.value);if(s.length===0)return{minX:0,minY:0,maxX:800,maxY:600};const t=320,e=200;let y=1/0,u=1/0,w=-1/0,E=-1/0;return s.forEach(D=>{const ne=D.position.x,_e=D.position.y;y=Math.min(y,ne),u=Math.min(u,_e),w=Math.max(w,ne+t),E=Math.max(E,_e+e)}),{minX:y,minY:u,maxX:w,maxY:E}},Z=async()=>{if(!T.value)return;const s=M(),t=J.value;let e=!1,y=t.x,u=t.y;if(s.minX<0&&(y=Math.max(Ne,Math.abs(s.minX)+Ne),e=!0),s.minY<0&&(u=Math.max(50,Math.abs(s.minY)+50),e=!0),e){const w={...t};J.value={x:y,y:u},await oe();const E=y-w.x,D=u-w.y;T.value.scrollLeft+=E,T.value.scrollTop+=D,await oe(),F.value++}},$=()=>{T.value&&Object.values(b.value).forEach(s=>{const t=_.value.get(s.id);if(t){const e=T.value.getBoundingClientRect(),y=t.getBoundingClientRect(),u=T.value.scrollTop;s.position.bottom=y.bottom-e.top+u}})};ge(F,()=>{$()}),ge(J,()=>{oe(()=>{F.value++})},{deep:!0});const q=async(s,t,e)=>{if(Object.keys(b.value).length>=lt){console.warn(`Maximum number of steps (${lt}) reached.`);return}if(s==="Trigger"){if(j.value){console.warn("A trigger already exists. Cannot add another.");return}}else if(!j.value){console.warn("A Trigger must be added first.");return}let y=s==="Action"?": Do the following...":"";const u=crypto.randomUUID();let w={x:-50,y:50};if(t&&b.value[t]){const D=b.value[t];let ne=0;D.type==="Filter"&&e&&(ne=e==="false"?-tt:tt),w={x:D.position.x+ne,y:(D.position.bottom??D.position.y+175)+et}}else if(Object.keys(b.value).length>0){const D=Object.values(b.value).pop();D&&(w={x:D.position.x,y:(D.position.bottom??D.position.y+175)+et})}const E={id:u,type:s,label:y,position:w,resourceSelection:{selectedValue:null},typeSpecificData:{selectedValue:""}};if(s==="Wait"&&(E.typeSpecificData.waitData={duration:1,unit:"minute"}),b.value[u]=E,s==="Trigger")R.value=u;else if(t){const D=b.value[t];D.type==="Filter"?e==="true"?D.trueStepId=u:D.falseStepId=u:D.nextStepId=u}await oe(),F.value++,await Z()},ae=async s=>
1{b.value[s]&&(Object.values(b.value).forEach(e=>{e.nextStepId===s&&(e.nextStepId=null),e.trueStepId===s&&(e.trueStepId=null),e.falseStepId===s&&(e.falseStepId=null)}),he(s),R.value===s&&(R.value=null),await oe(),F.value++)},O=s=>{const t=b.value[s];if(!t)return 0;let e=1;return t.nextStepId&&(e+=O(t.nextStepId)),t.trueStepId&&(e+=O(t.trueStepId)),t.falseStepId&&(e+=O(t.falseStepId)),e},X=s=>{K.value=s,ce.value=!0},$e=async()=>{K.value?await ae(K.value):n.value&&(await he(n.value),v.value.whichFilter==="true"?v.value.step.trueStepId=null:v.value.step.falseStepId=null,te.value=null,await oe(),F.value++),ce.value=!1,v.value=null,n.value=null,K.value=null},st=()=>{ce.value=!1,K.value=null,n.value=null,v.value=null},Pe=async(s,t)=>{const e=b.value[s];if(!e||e.type!=="Filter")return;const y=t==="true"?e.trueStepId:e.falseStepId;y&&(v.value={step:e,whichFilter:t},n.value=y,ce.value=!0)},he=s=>{const t=b.value[s];t&&(t.nextStepId&&he(t.nextStepId),t.trueStepId&&he(t.trueStepId),t.falseStepId&&he(t.falseStepId),delete b.value[s],_.value.delete(s),c.value.delete(s),k.value.delete(s))},nt=(s,t)=>{if(s.dataTransfer){s.dataTransfer.setData("text/plain",t),s.dataTransfer.effectAllowed="move";const e=_.value.get(t);if(e){const y=e.cloneNode(!0);y.style.position="absolute",y.style.top="-9999px",y.style.left="-9999px",y.style.pointerEvents="none",y.style.opacity="0.9",y.style.boxShadow="0 4px 16px rgba(0,0,0,0.15)",document.body.appendChild(y),s.dataTransfer.setDragImage(y,260,15),setTimeout(()=>{document.body.removeChild(y)},0)}}ue.value=t},it=s=>{s.preventDefault(),s.dataTransfer&&(s.dataTransfer.dropEffect="move")},rt=async s=>{s.preventDefault();const t=s.dataTransfer?.getData("text/plain");if(t&&T.value){const e=b.value[t];if(e){const y=T.value.getBoundingClientRect(),u=T.value.scrollLeft,w=T.value.scrollTop;let E=s.clientX-y.left+u,D=s.clientY-y.top+w;_.value.get(t)&&(E-=260,D-=15),E-=J.value.x,D-=J.value.y,e.position={x:E,y:D},await oe(),F.value++,await Z()}}ue.value=null},ut=s=>{};function ct(s){console.log("Drawer event:",s)}const dt=ve(()=>{F.value;const s=[];if(!R.value||Object.keys(b.value).length<1)return[];const t=10,e=new Set,y=u=>{const w=b.value[u];if(!w)return;const E=(D,ne)=>{if(!D)return;const _e=`${w.id}-to-${D}`;if(e.has(_e))return;const Ye=b.value[D];if(!Ye)return;const ke=_.value.get(w.id),Le=_.value.get(Ye.id);if(ke&&Le&&T.value){e.add(_e);const fe=T.value.getBoundingClientRect(),Ae=ke.getBoundingClientRect(),Xe=Le.getBoundingClientRect(),qe=T.value.scrollLeft,We=T.value.scrollTop;let De,pe;if(w.type==="Filter"){let Ie=null;if(ne?Ie=k.value.get(w.id)||null:Ie=c.value.get(w.id)||null,Ie){const Ge=Ie.getBoundingClientRect();De=Ge.left-fe.left+Ie.offsetWidth/2+qe,pe=Ge.bottom-fe.top+We}else De=Ae.left-fe.left+ke.offsetWidth/2+qe,pe=Ae.top-fe.top+ke.offsetHeight+We}else De=Ae.left-fe.left+ke.offsetWidth/2+qe,pe=Ae.top-fe.top+ke.offsetHeight+We;const je=Xe.left-fe.left+Le.offsetWidth/2+qe,Ve=Xe.top-fe.top+We,pt=De,gt=pe+Math.abs(Ve-pe)*.5,vt=je,yt=Ve-Math.abs(Ve-pe)*.5,_t=je,kt=Ve-t,St=je,bt=Ve-t*2;s.push({id:_e,startX:De,startY:pe,cp1x:pt,cp1y:gt,cp2x:vt,cp2y:yt,endPathX:St,endPathY:bt,arrowTipX:_t,arrowTipY:kt,isFalsePath:ne}),y(D)}};E(w.nextStepId,!1),E(w.trueStepId,!1),E(w.falseStepId,!0)};return y(R.value),s}),Be=s=>{if(!s)return[];switch(s){case"Trigger":return Te;case"Filter":return Ee;default:return[]}},ft=s=>{if(!s)return"";switch(s){case"Trigger":return"When a Contact...";case"Filter":return"If the Contact...";default:return""}};ge(Object.values(b.value),s=>{s.forEach(t=>{if(t.typeSpecificData?.selectedValue){const y=Be(t.type).find(u=>u.value===t.typeSpecificData.selectedValue);y&&t.label!==y.label&&(t.label=y.label)}})},{deep:!0});function mt(s){return Y.$state.teamPipelinesSummary.find(t=>t.groupUID===s)?.nickName||""}function He(s){return s.resourceSelection.selectedValue&&!s.resourceSelection.selectedValue.color}return(s,t)=>(i(),g("div",Ht,[r("div",{ref_key:"canvasRef",ref:T,class:"workflow-canvas dot-grid-bg",onDragover:Ke(it,["prevent"]),onDrop:Ke(rt,["prevent"])},[r("div",{class:"workflow-content",style:Ue({width:le.value.width+"px",height:le.value.height+"px",position:"relative"})},[(i(!0),g(me,null,ye(re.value,(e,y)=>(i(),g("div",{key:e.id,class:"workflow-card",style:Ue({transform:`translate(${e.position.x+J.value.x}px, ${e.position.y+J.value.y}px)`}),ref_for:!0,ref:u=>z(u,e.id)},[l(h(we),{bordered:"",flat:""},{default:a(()=>[l(h(G),{class:"bg-grey-2 q-py-xs"},{default:a(()=>[r("div",Yt,[r("div",Xt,[r("div",Gt,m(e.type)+m(e.label),1)]),r("div",Jt,[l(h(W),{flat:"",round:"",dense:"",icon:"mdi-cursor-move",size:"sm",class:"q-mr-xs drag-handle-btn",draggable:"true",onDragstart:u=>nt(u,e.id),onDragend:ut,tabindex:"0","aria-label":"Drag to move"},null,8,["onDragstart"]),l(h(W),{flat:"",round:"",dense:"",icon:"mdi-dots-vertical",size:"sm"},{default:a(()=>[l(Ce,null,{default:a(()=>[l(Se,{dense:""},{default:a(()=>[Q((i(),p(P,{clickable:"",onClick:u=>X(e.id)},{default:a(()=>[l(U,{side:""},{default:a(()=>[l(I,{name:"mdi-trash-can-outline",size:"xs"})]),_:1}),l(U,null,{default:a(()=>t[7]||(t[7]=[f("Delete Step")])),_:1,__:[7]})]),_:2},1032,["onClick"])),[[B]])]),_:2},1024)]),_:2},1024)]),_:2},1024)])])]),_:2},1024),l(h(be)),e.type==="Action"?(i(),p(h(G),{key:0},{default:a(()=>[r("div",Kt,[r("div",Zt,[r("div",el,[l(I,{size:"xs",name:"mdi-chevron-triple-right",class:ee(["q-mr-md",e.resourceSelection.selectedValue?.pipeline?.active?"text-positive":"text-grey-8"])},{default:a(()=>[e.resourceSelection.selectedValue?.pipeline?.active?(i(),p(N,{key:0,class:"text-body2"},{default:a(()=>[r("div",null,[t[8]||(t[8]=r("u",null,"Pipeline:",-1)),f(" "+m(e.resourceSelection.selectedValue.pipeline.pipelineSelected?.nickName??"No Pipeline Selected"),1)]),r("div",null,[t[9]||(t[9]=r("u",null,"Stage:",-1)),f(" "+m(e.resourceSelection.selectedValue?.pipeline.stageSelected?.name??"No Stage Selected"),1)])]),_:2},1024)):S("",!0)]),_:2},1032,["class"]),l(I,{size:"xs",name:"mdi-tag-multiple-outline",class:ee(["q-mr-md",e.resourceSelection.selectedValue?.tags?.active?"text-positive":"text-grey-8"])},{default:a(()=>[e.resourceSelection.selectedValue?.tags?.active?(i(),p(N,{key:0,class:"text-body2"},{default:a(()=>[r("div",null,[t[10]||(t[10]=r("u",null,"Tags:",-1)),t[11]||(t[11]=r("br",null,null,-1)),f(" "+m(Object.values(e.resourceSelection.selectedValue.tags.globalTagsSelected??{}).map(u=>u.tag.name).join(", ")),1)])]),_:2},1024)):S("",!0)]),_:2},1032,["class"]),l(I,{size:"xs",name:"mdi-tray-plus",class:ee(["q-mr-md",e.resourceSelection.selectedValue?.message?.active?"text-positive":"text-grey-8"])},{default:a(()=>[e.resourceSelection.selectedValue?.message?.active?(i(),p(N,{key:0,class:"text-body2"},{default:a(()=>[r("div",null,[t[12]||(t[12]=r("u",null,"Template to Queue:",-1)),t[13]||(t[13]=r("br",null,null,-1)),f(" "+m(e.resourceSelection.selectedValue.message.selectedTemplate.name),1)])]),_:2},1024)):S("",!0)]),_:2},1032,["class"]),l(I,{size:"xs",name:"mdi-checkbox-marked-circle-outline",class:ee(["q-mr-md",e.resourceSelection.selectedValue?.task?.active?"text-positive":"text-grey-8"])},{default:a(()=>[e.resourceSelection.selectedValue?.task?.active?(i(),p(N,{key:0,class:"text-body2"},{default:a(()=>[r("div",null,[t[14]||(t[14]=r("u",null,"Task:",-1)),f(" "+m(e.resourceSelection.selectedValue.task.newTask.taskName),1),t[15]||(t[15]=r("br",null,null,-1)),f(" Due on date of action +"+m(e.resourceSelection.selectedValue.task.newTask.relativeDueDateInDays)+" days ",1)])]),_:2},1024)):S("",!0)]),_:2},1032,["class"]),l(I,{size:"xs",name:"mdi-account-arrow-right-outline",class:ee(["q-mr-md",e.resourceSelection.selectedValue?.assignedTeamMember?.active?"text-positive":"text-grey-8"])},{default:a(()=>[e.resourceSelection.selectedValue?.assignedTeamMember?.active?(i(),p(N,{key:0,class:"text-body2"},{default:a(()=>[r("div",null,[t[16]||(t[16]=r("u",null,"Assigned Team Member:",-1)),t[17]||(t[17]=r("br",null,null,-1)),f(" "+m(e.resourceSelection.selectedValue?.assignedTeamMember.assignedTeamMemberSelected.name),1)])]),_:2},1024)):S("",!0)]),_:2},1032,["class"]),l(I,{size:"xs",name:"mdi-label-outline",class:ee(["q-mr-md",e.resourceSelection.selectedValue?.statusLabel?.active?"text-positive":"text-grey-8"])},{default:a(()=>[e.resourceSelection.selectedValue?.statusLabel?.active?(i(),p(N,{key:0,class:"text-body2"},{default:a(()=>[r("div",null,[t[18]||(t[18]=r("u",null,"Selected Status Label:",-1)),t[19]||(t[19]=r("br",null,null,-1)),f(" "+m(e.resourceSelection.selectedValue?.statusLabel.statusLabelSelected.display),1)])]),_:2},1024)):S("",!0)]),_:2},1032,["class"]),l(I,{size:"xs",name:"mdi-notebook-outline",class:ee(["q-mr-md",e.resourceSelection.selectedValue?.notes?.active?"text-positive":"text-grey-8"])},{default:a(()=>[e.resourceSelection.selectedValue?.notes?.active?(i(),p(N,{key:0,class:"text-body2"},{default:a(()=>[r("div",null,[t[20]||(t[20]=r("u",null,"Note:",-1)),t[21]||(t[21]=r("br",null,null,-1)),f(" "+m(e.resourceSelection.selectedValue.notes.noteToAdd),1)])]),_:2},1024)):S("",!0)]),_:2},1032,["class"])])]),r("div",tl,[l(h(W),{class:"q-mt-none",color:"primary",icon:"mdi-cog-outline",label:"",onClick:u=>L(e),flat:"",dense:"",size:"sm"},null,8,["onClick"]),l(N,{class:"text-body2"},{default:a(()=>
1t[22]||(t[22]=[f("Configure")])),_:1,__:[22]})])])]),_:2},1024)):S("",!0),e.type==="Wait"?(i(),p(h(G),{key:1},{default:a(()=>[r("div",ll,[r("div",al,[t[23]||(t[23]=f(" Pause for ")),r("b",null,m(e.typeSpecificData.waitData?.duration||1)+" "+m(e.typeSpecificData.waitData?.unit)+m(e.typeSpecificData.waitData?.duration===1?"":"s"),1)]),r("div",ol,[l(h(W),{class:"q-mt-none",color:"primary",icon:"mdi-cog-outline",label:"",onClick:u=>L(e),flat:"",dense:"",size:"sm"},null,8,["onClick"]),l(N,{class:"text-body2"},{default:a(()=>t[24]||(t[24]=[f("Configure")])),_:1,__:[24]})])])]),_:2},1024)):S("",!0),e.type!=="Action"&&e.type!=="Wait"?(i(),p(h(G),{key:2},{default:a(()=>[l(h(Qe),{filled:"",dense:"",modelValue:e.typeSpecificData.selectedValue,"onUpdate:modelValue":[u=>e.typeSpecificData.selectedValue=u,u=>e.resourceSelection.selectedValue=null],options:Be(e.type),label:ft(e.type),"emit-value":"","map-options":"","options-dense":""},null,8,["modelValue","onUpdate:modelValue","options","label"]),r("div",sl,[r("div",nl,[["gt_contact_has_tags"].includes(e.typeSpecificData?.selectedValue)?(i(),g("div",il,[r("div",rl,[l(Ut,{class:"q-mb-sm"},{default:a(()=>[l(h(W),{size:"sm",rounded:"",modelValue:e.internalOperation,"onUpdate:modelValue":u=>e.internalOperation=u,onClick:u=>e.internalOperation="or",outline:e.internalOperation!=="or",color:"primary",label:"any"},null,8,["modelValue","onUpdate:modelValue","onClick","outline"]),l(h(W),{size:"sm",rounded:"",modelValue:e.internalOperation,"onUpdate:modelValue":u=>e.internalOperation=u,onClick:u=>e.internalOperation="and",outline:e.internalOperation!=="and",color:"primary",label:"all"},null,8,["modelValue","onUpdate:modelValue","onClick","outline"])]),_:2},1024)])])):S("",!0),["gt_contact_has_tags","gt_contact_tag_added_removed"].includes(e.typeSpecificData?.selectedValue)?(i(!0),g(me,{key:1},ye(e.resourceSelection?.selectedValue,(u,w)=>(i(),g("span",{key:w},[u?.tag?(i(),p(ie,{key:0,outline:"",style:{"font-size":"0.9em"},color:"primary","text-color":"primary",class:"bg-white"},{default:a(()=>[l(I,{name:"mdi-tag",class:"q-mr-xs"}),f(" "+m(u?.tag?.name)+" ",1),l(N,{class:"text-body2"},{default:a(()=>[f(" Tag Set: "+m(u?.tagSetName),1)]),_:2},1024)]),_:2},1024)):S("",!0)]))),128)):e.resourceSelection.selectedValue&&He(e)?(i(),p(ie,{key:2,outline:"",style:{"font-size":"0.9em"},color:"primary","text-color":"primary",class:"bg-white"},{default:a(()=>[e.typeSpecificData?.selectedValue==="gt_contact_create_task"?(i(),g("span",ul,[l(I,{name:"mdi-calendar",class:"q-mr-xs"}),f(" "+m(e.resourceSelection.selectedValue.taskName),1)])):S("",!0),["gt_contact_assigned_to","gt_contact_is_assigned_to","gt_contact_is_not_assigned_to","gt_contact_assign_to_team_member"].includes(e.typeSpecificData?.selectedValue)?(i(),g("span",cl,[l(I,{name:"mdi-account-outline",class:"q-mr-xs"}),f(" "+m(e.resourceSelection.selectedValue.name),1)])):S("",!0),["gt_contact_added_to_pipeline","gt_contact_removed_from_pipeline","gt_contact_is_in_pipeline","gt_contact_is_not_in_pipeline","gt_contact_add_to_pipeline","gt_contact_remove_from_pipeline"].includes(e.typeSpecificData?.selectedValue)?(i(),g("span",dl,[l(I,{name:"mdi-chevron-triple-right",class:"q-mr-xs"}),f(" "+m(e.resourceSelection.selectedValue.nickName),1)])):S("",!0)]),_:2},1024)):S("",!0),e.resourceSelection.selectedValue&&!He(e)?(i(),p(ie,{key:3,style:Ue({backgroundColor:e.resourceSelection.selectedValue.color,fontSize:"0.9em",color:e.resourceSelection.selectedValue.fontColor??h(xt)(e.resourceSelection.selectedValue.color)??"#444"}),class:"q-mt-xs"},{default:a(()=>[["gt_contact_stage_changed","gt_contact_is_in_stage","gt_contact_is_not_in_stage","gt_contact_set_stage"].includes(e.typeSpecificData?.selectedValue)?(i(),g("span",fl,[l(I,{name:"mdi-chevron-triple-right",class:"q-mr-xs"}),f(" "+m(e.resourceSelection.selectedValue?.name)+" ",1),l(N,{class:"text-body2"},{default:a(()=>[f(" Pipeline: "+m(mt(e.resourceSelection.selectedValue?.groupUID)),1),t[25]||(t[25]=r("br",null,null,-1)),f(" Stage: "+m(e.resourceSelection.selectedValue?.name),1)]),_:2,__:[25]},1024)])):S("",!0)]),_:2}
1,1032,["style"])):S("",!0),e.resourceSelection.selectedValue?S("",!0):(i(),p(ie,{key:4,outline:"",style:{border:"2px dashed #ccc","font-size":"0.9em"},color:"grey-6","text-color":"black",class:"bg-white"},{default:a(()=>t[26]||(t[26]=[f(" Nothing Selected ")])),_:1,__:[26]})),l(h(W),{disable:!e.typeSpecificData?.selectedValue,class:"q-mt-none",color:"primary",icon:"mdi-cog-outline",label:"",onClick:u=>L(e),flat:"",dense:"",size:"sm"},{default:a(()=>[l(N,{class:"text-body2"},{default:a(()=>[f(m(e.typeSpecificData?.selectedValue?"Configure":"Pick a "+e.type+" First"),1)]),_:2},1024)]),_:2},1032,["disable","onClick"])]),t[27]||(t[27]=r("div",{class:"col-auto q-mt-sm"},null,-1))])]),_:2},1024)):S("",!0),l(h(be)),l(Je,{align:"around",class:"q-py-none"},{default:a(()=>[e.type==="Filter"?(i(),g(me,{key:0},[r("div",{class:"relative-position",onMouseenter:u=>e.falseStepId?te.value={stepId:e.id,path:"false"}:null,onMouseleave:t[0]||(t[0]=u=>te.value=null)},[l(h(W),{ref_for:!0,ref:u=>de(u,e.id),flat:"",dense:"",color:"negative",label:e.falseStepId?"If False":"+ If False"},{default:a(()=>[e.falseStepId?S("",!0):(i(),p(Ce,{key:0},{default:a(()=>[l(Se,{dense:"",style:{"min-width":"100px"}},{default:a(()=>[Q((i(),p(P,{clickable:"",onClick:u=>q("Filter",e.id,"false")},{default:a(()=>[l(U,null,{default:a(()=>t[28]||(t[28]=[f("Filter")])),_:1,__:[28]})]),_:2},1032,["onClick"])),[[B]]),Q((i(),p(P,{clickable:"",onClick:u=>q("Wait",e.id,"false")},{default:a(()=>[l(U,null,{default:a(()=>t[29]||(t[29]=[f("Wait")])),_:1,__:[29]})]),_:2},1032,["onClick"])),[[B]]),Q((i(),p(P,{clickable:"",onClick:u=>q("Action",e.id,"false")},{default:a(()=>[l(U,null,{default:a(()=>t[30]||(t[30]=[f("Action")])),_:1,__:[30]})]),_:2},1032,["onClick"])),[[B]])]),_:2},1024)]),_:2},1024)),te.value?.stepId===e.id&&te.value?.path==="false"&&e.falseStepId?(i(),p(I,{key:1,onClick:u=>Pe(e.id,"false"),name:"mdi-close-circle",size:"xs",class:"q-ml-xs"},{default:a(()=>[l(N,{class:"text-body2"},{default:a(()=>t[31]||(t[31]=[f("Delete False Path")])),_:1,__:[31]})]),_:2},1032,["onClick"])):S("",!0)]),_:2},1032,["label"])],40,ml),r("div",{class:"relative-position",onMouseenter:u=>e.trueStepId?te.value={stepId:e.id,path:"true"}:null,onMouseleave:t[1]||(t[1]=u=>te.value=null)},[l(h(W),{ref_for:!0,ref:u=>se(u,e.id),flat:"",dense:"",color:"primary",label:e.trueStepId?"If True":"+ If True"},{default:a(()=>[e.trueStepId?S("",!0):(i(),p(Ce,{key:0},{default:a(()=>[l(Se,{dense:"",style:{"min-width":"100px"}},{default:a(()=>[Q((i(),p(P,{clickable:"",onClick:u=>q("Filter",e.id,"true")},{default:a(()=>[l(U,null,{default:a(()=>t[32]||(t[32]=[f("Filter")])),_:1,__:[32]})]),_:2},1032,["onClick"])),[[B]]),Q((i(),p(P,{clickable:"",onClick:u=>q("Wait",e.id,"true")},{default:a(()=>[l(U,null,{default:a(()=>t[33]||(t[33]=[f("Wait")])),_:1,__:[33]})]),_:2},1032,["onClick"])),[[B]]),Q((i(),p(P,{clickable:"",onClick:u=>q("Action",e.id,"true")},{default:a(()=>[l(U,null,{default:a(()=>t[34]||(t[34]=[f("Action")])),_:1,__:[34]})]),_:2},1032,["onClick"])),[[B]])]),_:2},1024)]),_:2},1024)),te.value?.stepId===e.id&&te.value?.path==="true"&&e.trueStepId?(i(),p(I,{key:1,onClick:u=>Pe(e.id,"true"),name:"mdi-close-circle",size:"xs",class:"q-ml-xs"},{default:a(()=>[l(N,{class:"text-body2"},{default:a(()=>t[35]||(t[35]=[f("Delete True Path")])),_:1,__:[35]})]),_:2},1032,["onClick"])):S("",!0)]),_:2},1032,["label"])],40,pl)],64)):e.nextStepId?S("",!0):(i(),p(h(W),{key:1,flat:"",dense:"",color:"primary",label:"+ Add Step"},{default:a(()=>[l(Ce,null,{default:a(()=>[l(Se,{dense:"",style:{"min-width":"100px"}},{default:a(()=>[Q((i(),p(P,{clickable:"",onClick:u=>q("Filter",e.id,null)},{default:a(()=>[l(U,null,{default:a(()=>t[36]||(t[36]=[f("Filter")])),_:1,__:[36]})]),_:2},1032,["onClick"])),[[B]]),Q((i(),p(P,{clickable:"",onClick:u=>q("Wait",e.id,null)},{default:a(()=>[l(U,null,{default:a(()=>t[37]||(t[37]=[f("Wait")])),_:1,__:[37]})]),_:2},1032,["onClick"])),[[B]]),Q((i(),p(P,{clickable:"",onClick:u=>q("Action",e.id,null)},{default:a(()=>[l(U,null,{default:a(()=>t[38]||(t[38]=[f("Action")])),_:1,__:[38]})]),_:2},1032,["onClick"])),[[B]])]),_:2},1024)]),_:2},1024)]),_:2},1024))]),_:2},1024)]),_:2},1024)],4))),128)),(i(),g("svg",{class:"lines-svg",style:Ue({width:le.value.width+"px",height:le.value.height+"px"})},[t[39]||(t[39]=r("defs",null,[r("marker",{id:"arrowhead-editor",markerWidth:"10",markerHeight:"7",refX:"0",refY:"3.5",orient:"auto-start-reverse"},[r("polygon",{points:"0 0, 10 3.5, 0 7",fill:"#555"})]),r("marker",{id:"arrowhead-editor-red",markerWidth:"10",markerHeight:"7",refX:"0",refY:"3.5",orient:"auto-start-reverse"},[r("polygon",{points:"0 0, 10 3.5, 0 7",fill:"red"})])],-1)),(i(!0),g(me,null,ye(dt.value,e=>(i(),g("g",{key:e.id},[r("path",{d:`M ${e.startX} ${e.startY} C ${e.cp1x} ${e.cp1y}, ${e.cp2x} ${e.cp2y}, ${e.endPathX} ${e.endPathY}`,stroke:e.isFalsePath?"red":"#555","stroke-width":"2",fill:"none"},null,8,gl),r("line",{x1:e.endPathX,y1:e.endPathY,x2:e.arrowTipX,y2:e.arrowTipY,stroke:e.isFalsePath?"red":"#555","stroke-width":"2","marker-end":e.isFalsePath?"url(#arrowhead-editor-red)":"url(#arrowhead-editor)"},null,8,vl)]))),128))],4))],4),Object.keys(b.value).length===0?(i(),g("div",yl,[l(h(W),{color:"primary",icon:"mdi-lightning-bolt-outline",label:"Add Trigger",onClick:t[2]||(t[2]=e=>q("Trigger"))}),l(N,{modelValue:xe.value,"onUpdate:modelValue":t[3]||(t[3]=e=>xe.value=e),"transition-show":"jump-down",anchor:"center right",self:"center left",offset:[16,0],class:"bg-yellow-1 text-warning q-pa-md add-trigger-tooltip",style:{"font-size":"16px",width:"220px","text-align":"left",border:"1px solid #ff9417",color:"#ad8b00","border-radius":"8px","box-shadow":"0 2px 8px rgba(0, 0, 0, 0.08)"}},{default:a(()=>t[40]||(t[40]=[f(" Click here to get started creating a new Workflow ")])),_:1,__:[40]},8,["modelValue"])])):S("",!0),d.value?(i(),p(Bt,{key:1,modelValue:o.value,"onUpdate:modelValue":[t[4]||(t[4]=e=>o.value=e),ct],step:d.value,onRedrawSteps:t[5]||(t[5]=e=>F.value++)},null,8,["modelValue","step"])):S("",!0),l(h(ze),{modelValue:ce.value,"onUpdate:modelValue":t[6]||(t[6]=e=>ce.value=e),persistent:""},{default:a(()=>[l(h(we),{style:{"min-width":"400px"}},{default:a(()=>[l(h(G),null,{default:a(()=>[r("div",_l," Confirm "+m(n.value?"Filter":"Step")+" Deletion ",1)]),_:1}),l(h(G),{class:"q-pt-none"},{default:a(()=>[r("div",kl," Are you sure you want to delete this "+m(n.value?"filter path":"step")+"? ",1),n.value||K.value&&O(K.value)>1?(i(),g("div",Sl,[l(I,{name:"mdi-alert",class:"q-mr-xs"}),t[41]||(t[41]=f(" This will permanently delete ")),r("strong",null,m(O(K.value??n.value))+" step"+m(O(K.value??n.value)!==1?"s":""),1),f(" ("+m(K.value?"this and ":"")+"all downline steps) ",1)])):S("",!0)]),_:1}),l(Je,{align:"right"},{default:a(()=>[l(h(W),{flat:"",label:"Cancel",color:"primary",onClick:st}),l(h(W),{flat:"",label:"Delete",color:"negative",onClick:$e,icon:"mdi-trash-can-outline"})]),_:1})]),_:1})]),_:1},8,["modelValue"])],544)]))}}),wl={class:"text-h6 flex justify-between items-center"},xl={class:"text-grey-8"},hl={key:1},Dl={key:0,style:{display:"flex","flex-direction":"column","align-items":"center","justify-content":"center",height:"200px","font-size":"1.5em","font-weight":"bold",color:"grey"}},Vl={class:"col"},Il={style:{"font-size":"1.2em","font-weight":"bold","line-height":"33px"},class:"text-primary"},Cl=["onClick"],Tl={key:0,class:"text-body2 q-pl-md q-ml-md",style:{"border-left":"1px solid #ccc"}},$l={class:"row items-center q-gutter-sm q-mt-xs"},Al={class:"row items-center q-gutter-xs"},ql={class:"q-mb-md"},Wl={class:"text-subtitle1 text-weight-bold text-primary flex items-center"},Ul={class:"row q-col-gutter-sm items-center"},Ol={class:"col-7"},El={class:"col-5"},Ll={key:0,class:"text-center text-grey-6 q-pa-xl"},jl={key:0,class:"q-px-md q-pb-md bg-grey-1"},Fl={class:"text-caption text-weight-bold text-grey-8 q-mb-sm flex items-center justify-between"},Ml={key:0,class:"text-grey-6 text-weight-normal"},Nl={key:0,class:"text-caption text-grey-6"},Rl={key:0,class:"text-caption text-grey-8 q-mb-xs"},zl={key:0},Ql={key:1},Pl={key:1,class:"text-caption text-grey-8 q-mb-xs"},Bl={key:0,class:"q-mb-xs"},Hl={class:"row items-center q-gutter-xs"},Yl={key:2,class:"text-caption text-grey-8 q-mb-xs"},Xl={key:0},Gl={class:"q-my-none q-pl-md"},Jl={key:1,class:"text-grey-8"},Kl={key:2,class:"text-grey-6 italic"},Zl={key:3,class:"text-caption text-negative q-mt-xs"}
1,Ha=Re({__name:"workflows",setup(A){const H=ht(),Y=ot(),C=V(null),x=V([]),b=V("Save Workflow"),R=V({}),re=V(null),le=V(!1),T=V(""),_=V("all"),c=V(null);async function k(){const n={id:at().generatePushID("wf"),name:"New Workflow",description:null,rootStepId:null,steps:{}};C.value=n}function ue(v){return v?Array.isArray(v)?v.filter(n=>n&&typeof n=="object"&&n.id&&n.id!=="setup").map(n=>({...n,id:n.id,steps:n.steps||{},rootStepId:n.rootStepId||null,description:n.description||""})):Object.entries(v).filter(([n,o])=>n!=="id"&&o&&typeof o=="object").map(([n,o])=>({...o,id:o.id||n,steps:o.steps||{},rootStepId:o.rootStepId||null,description:o.description||""})):[]}ge(()=>Y.$state.loggedUserData?.teamUID,async v=>{if(v){try{const{data:n,error:o}=await Y.getWorkflowsList();o?.value?console.error("Error getting existing workflows list",o.value):n&&(x.value=ue(n.value),ge(n,d=>{x.value=ue(d)}))}catch(n){console.error("Failed to load workflows:",n)}try{if(Ze){const n=Dt(Ze,`teams/${v}/workflowLogs`),o=Vt(n,It(500));Ct(o,d=>{console.log(`[Workflows UI] Received Firestore snapshot with ${d.size} logs`);const L={};d.forEach(z=>{const se=z.data(),de=se.workflowId||"unknown";L[de]||(L[de]={}),L[de][z.id]=se}),R.value=L},d=>{console.error("[Workflows UI] Firestore logs onSnapshot error:",d)})}}catch(n){console.error("[Workflows UI] Firestore subscription setup error:",n)}}},{immediate:!0});const F=ve(()=>{const v={};for(const o of x.value)v[o.id]={total:0,active:0,completed:0,failed:0};const n=R.value||{};for(const[o,d]of Object.entries(n))if(v[o]||(v[o]={total:0,active:0,completed:0,failed:0}),d&&typeof d=="object"){const L=Object.values(d);for(const z of L)z&&(v[o].total++,z.status==="completed"?v[o].completed++:z.status==="failed"||z.status==="error"?v[o].failed++:v[o].active++)}return v}),J=ve(()=>{if(!re.value)return[];const v=R.value?.[re.value.id];if(!v||typeof v!="object")return[];let n=Object.values(v).filter(o=>o&&typeof o=="object");if(_.value!=="all"&&(_.value==="active"?n=n.filter(o=>o.status==="in-progress"||o.status==="waiting"||o.status==="queued"):_.value==="completed"?n=n.filter(o=>o.status==="completed"):_.value==="failed"&&(n=n.filter(o=>o.status==="failed"||o.status==="error"))),T.value.trim()){const o=T.value.toLowerCase().trim();n=n.filter(d=>d.contactName&&d.contactName.toLowerCase().includes(o)||d.GTID&&d.GTID.toLowerCase().includes(o))}return n.sort((o,d)=>(d.startedAt||"").localeCompare(o.startedAt||""))});function Te(v){re.value=v,T.value="",_.value="all",c.value=null,le.value=!0}function Ee(v,n){const o=[],d=Object.values(v.steps||{}),L=[],z=[],se=[],de=[];for(const j of d)if(j.type==="Action"||j.type?.toLowerCase()==="action"){const M=j.resourceSelection?.selectedValue?.data||j.resourceSelection?.selectedValue||{},Z=M.pipeline?.stageSelected||M.stageSelected;if(Z){const O=Array.isArray(Z)?Z:[Z];for(const X of O)X?.stageUID&&L.push(X.stageUID)}const $=M.pipeline?.pipelineSelected||M.pipelineSelected;if($){const O=Array.isArray($)?$:[$];for(const X of O)X?.groupUID&&z.push(X.groupUID)}const q=M.tags?.globalTagsSelected||M.tags;if(q){const O=Array.isArray(q)?q:Object.values(q);for(const X of O){const $e=X?.tag?.tagID||X?.tagID;$e&&se.push($e)}}const ae=M.assignedTeamMember?.assignedTeamMemberSelected||M.assignedTeamMemberSelected;if(ae){const O=Array.isArray(ae)?ae:[ae];for(const X of O)X?.uid&&de.push(X.uid)}}for(const j of n){const M=Object.values(j.steps||{}).find(q=>q&&(q.type==="Trigger"||q.type?.toLowerCase()==="trigger"))||(j.rootStepId?j.steps?.[j.rootStepId]:null);if(!M)continue;const Z=M.typeSpecificData?.selectedValue,$=M.resourceSelection?.selectedValue;if(Z==="gt_contact_stage_changed"&&$?.stageUID&&L.includes($.stageUID)&&o.push({targetWorkflowName:j.name||"Untitled Workflow",detail:`Setting Stage to "${$.name||$.stageUID}"`}),Z==="gt_contact_added_to_pipeline"&&$?.groupUID&&z.includes($.groupUID)&&o.push({targetWorkflowName:j.name||"Untitled Workflow",detail:`Adding contact to Pipeline "${$.name||$.groupUID}"`}),Z==="gt_contact_tag_added_removed"&&$){const q=Array.isArray($)?$:Object.values($);for(const ae of q){const O=ae?.tag?.tagID||ae?.tagID;if(O&&se.includes(O)){o.push({targetWorkflowName:j.name||"Untitled Workflow",detail
1:`Adding or updating Tag "${ae?.tag?.name||O}"`});break}}}Z==="gt_contact_assigned_to"&&$?.uid&&de.includes($.uid)&&o.push({targetWorkflowName:j.name||"Untitled Workflow",detail:`Assigning to Team Member "${$.name||$.uid}"`})}return o}async function xe(){b.value="Saving...";try{await Y.workflowCUD(C.value.id,C.value),H.notify({color:"positive",message:"Workflow saved successfully!",icon:"mdi-check"}),b.value="Saved!",setTimeout(()=>{b.value="Save Workflow"},2e3)}catch(v){console.error("Error saving workflow:",v),H.notify({color:"negative",message:"Failed to save workflow. "+v.message,icon:"mdi-alert-circle-outline"}),b.value="Save Workflow"}}async function te(){if(!C.value)return;const v=Ee(C.value,x.value);if(v.length>0){H.dialog({title:"Potential Workflow Loop Detected",message:`Action(s) in this workflow may trigger other workflows:
2
3${v.map(n=>`• ${n.detail} (Triggers "${n.targetWorkflowName}")`).join(`
4`)}
5
6Do you want to proceed and save anyway?`,cancel:!0,persistent:!0,ok:{label:"Save Anyway",color:"warning"}}).onOk(()=>{xe()});return}await xe()}function ce(){C.value=null}async function K(v){H.dialog({title:"Confirm Delete",message:"Are you sure you want to delete this workflow? This action cannot be undone.",cancel:!0,persistent:!0,ok:{label:"Delete",color:"negative"}}).onOk(async()=>{try{await Y.workflowCUD(v,null),H.notify({color:"positive",message:"Workflow deleted successfully!",icon:"mdi-check"})}catch(n){console.error("Error deleting workflow:",n),H.notify({color:"negative",message:"Failed to delete workflow. "+n.message,icon:"mdi-alert-circle-outline"})}})}return(v,n)=>(i(),p(Wt,{class:"work-flow q-mx-lg q-mt-lg"},{default:a(()=>[l(we,{class:"no-shadow card_style fit kpi-dashboard-card",bordered:""},{default:a(()=>[l(G,null,{default:a(()=>[r("div",wl,[r("span",xl,[l(I,{name:"mdi-graph-outline"}),n[9]||(n[9]=f(" Workflow Automations "))]),C.value?S("",!0):(i(),p(W,{key:0,class:ee(["card_style",h(H).screen.lt.sm?"full-width":""]),"no-caps":"",color:"primary",onClick:n[0]||(n[0]=o=>k())},{default:a(()=>n[10]||(n[10]=[f(" + Add Workflow ")])),_:1,__:[10]},8,["class"])),C.value?(i(),g("div",hl,[l(W,{class:ee(["flat",h(H).screen.lt.sm?"full-width q-mt-sm":"q-mr-md"]),"no-caps":"",color:"grey-7",onClick:n[1]||(n[1]=o=>ce())},{default:a(()=>n[11]||(n[11]=[f(" Cancel ")])),_:1,__:[11]},8,["class"]),l(W,{class:ee(["q-mr-sm card_style",h(H).screen.lt.sm?"full-width q-mt-sm":""]),"no-caps":"",color:"primary",onClick:n[2]||(n[2]=o=>te()),label:b.value},null,8,["class","label"])])):S("",!0)])]),_:1}),l(be),C.value?(i(),p(G,{key:1},{default:a(()=>[r("div",ql,[l(Oe,{filled:"",modelValue:C.value.name,"onUpdate:modelValue":n[3]||(n[3]=o=>C.value.name=o),id:"workflow-name",label:"Workflow Name",dense:"",class:"q-mb-sm"},null,8,["modelValue"]),l(Oe,{filled:"",modelValue:C.value.description,"onUpdate:modelValue":n[4]||(n[4]=o=>C.value.description=o),label:"Workflow Description",type:"textarea",autogrow:"",dense:""},null,8,["modelValue"])]),l(bl,{modelValue:C.value,"onUpdate:modelValue":n[5]||(n[5]=o=>C.value=o)},null,8,["modelValue"])]),_:1})):(i(),p(G,{key:0},{default:a(()=>[x.value.length===0?(i(),g("div",Dl,n[12]||(n[12]=[r("div",null,"No Workflows Found",-1),r("div",{style:{"font-size":"0.8em","font-weight":"normal"}},' Click "Add Workflow" above to create a new one ',-1)]))):(i(!0),g(me,{key:1},ye(x.value,o=>(i(),g("div",{key:o.id},[l(we,{class:"q-mt-sm",flat:"",bordered:""},{default:a(()=>[l(G,{class:"row items-center justify-between"},{default:a(()=>[r("div",Vl,[r("div",Il,[l(I,{name:"mdi-flash-outline"}),r("span",{class:"cursor-pointer",onClick:d=>C.value=o},m(o.name),9,Cl),o.description?(i(),g("span",Tl,m(o.description),1)):S("",!0)]),r("div",$l,[l(ie,{dense:"",size:"sm",color:"blue-1","text-color":"blue-9",icon:"mdi-account-group"},{default:a(()=>[f(" Total Contacts: "+m(F.value[o.id]?.total||0),1)]),_:2},1024),l(ie,{dense:"",size:"sm",color:"orange-1","text-color":"orange-9",icon:"mdi-clock-outline"},{default:a(()=>[f(" Active / In-Progress: "+m(F.value[o.id]?.active||0),1)]),_:2},1024),l(ie,{dense:"",size:"sm",color:"green-1","text-color":"green-9",icon:"mdi-check-circle-outline"},{default:a(()=>[f(" Completed: "+m(F.value[o.id]?.completed||0),1)]),_:2},1024),F.value[o.id]?.failed?(i(),p(ie,{key:0,dense:"",size:"sm",color:"red-1","text-color":"red-9",icon:"mdi-alert-circle-outline"},{default:a(()=>[f(" Failed: "+m(F.value[o.id]?.failed),1)]),_:2},1024)):S("",!0)])]),r("div",Al,[l(W,{flat:"","no-caps":"",dense:"",color:"primary",icon:"mdi-history",label:"View Activity",onClick:d=>Te(o)},null,8,["onClick"]),l(W,{flat:"",dense:"",round:"",icon:"mdi-dots-vertical"},{default:a(()=>[l(Ce,null,{default:a(()=>[l(Se,{style:{"min-width":"120px"}},{default:a(()=>[Q((i(),p(P,{clickable:"",onClick:d=>C.value=o},{default:a(()=>[l(U,{avatar:""},{default:a(()=>[l(I,{name:"mdi-pencil"})]),_:1}),l(U,null,{default:a(()=>n[13]||(n[13]=[f("Edit")])),_:1,__:[13]})]),_:2},1032,["onClick"])),[[B]]),Q((i(),p(P,{clickable:"",onClick:d=>Te(o)},{default:a(()=>[l(U,{avatar:""},{default:a(()=>[l(I,{name:"mdi-chart-line"})]),_:1}),l(U,null,{default:a(()=>n[14]||(n[14]=[f("Execution History")])),_:1,__:[14]})]),_:2},1032,["onClick"])),[[B]]),Q((i(),p(P,{clickable:"",onClick:d=>K(o.id)},{default:a(()=>[l(U,{avatar:""},{default:a(()=>[l(I,{name:"mdi-trash-can-outline"})]),_:1}),l(U,null,{default:a(()=>n[15]||(n[15]=[f("Delete")])),_:1,__:[15]})]),_:2},1032,["onClick"])),[[B]])]),_:2},1024)]),_:2},1024)]),_:2},1024)])]),_:2},1024)]),_:2},1024)]))),128))]),_:1}))]),_:1}),l(ze,{modelValue:le.value,"onUpdate:modelValue":n[8]||(n[8]=o=>le.value=o),"full-height":"",position:"right",maximized:""},{default:a(()=>[l(we,{class:"column full-height",style:{"min-width":"550px","max-width":"700px"}},{default:a(()=>[l(G,{class:"row items-center justify-between bg-grey-1 q-py-sm"},{default:a(()=>[r("div",Wl,[l(I,{name:"mdi-history",class:"q-mr-sm",size:"24px"}),f(" Activity: "+m(re.value?.name),1)]),Q(l(W,{icon:"mdi-close",flat:"",round:"",dense:""},null,512),[[B]])]),_:1}),l(be),l(G,{class:"q-py-sm bg-white"},{default:a(()=>[r("div",Ul,[r("div",Ol,[l(Oe,{modelValue:T.value,"onUpdate:modelValue":n[6]||(n[6]=o=>T.value=o),placeholder:"Search contact name...",dense:"",outlined:"",clearable:""},{prepend:a(()=>[l(I,{name:"mdi-magnify"})]),_:1},8,["modelValue"])]),r("div",El,[l(Qe,{modelValue:_.value,"onUpdate:modelValue":n[7]||(n[7]=o=>_.value=o),options:[{label:"All Statuses",value:"all"},{label:"Active / Waiting",value:"active"},{label:"Completed",value:"completed"},{label:"Failed / Error",value:"failed"}],dense:"",outlined:"","emit-value":"","map-options":""},null,8,["modelValue"])])])]),_:1}),l(be),l(G,{class:"col scroll q-pa-none"},{default:a(()=>[J.value.length===0?(i(),g("div",Ll,[l(I,{name:"mdi-tray-remove",size:"48px"}),n[16]||(n[16]=r("div",{class:"text-subtitle1 q-mt-sm"}
6,"No contact activity records found",-1))])):(i(),p(Se,{key:1,separator:""},{default:a(()=>[(i(!0),g(me,null,ye(J.value,o=>(i(),g("div",{key:o.workflowEventId},[l(P,{clickable:"",onClick:d=>c.value=c.value===o.workflowEventId?null:o.workflowEventId},{default:a(()=>[l(U,{avatar:""},{default:a(()=>[l(Tt,{size:"36px",color:"grey-3","text-color":"primary",icon:"mdi-account"})]),_:1}),l(U,null,{default:a(()=>[l(Me,{class:"text-weight-bold"},{default:a(()=>[f(m(o.contactName||o.GTID||"Unknown Contact"),1)]),_:2},1024),l(Me,{caption:""},{default:a(()=>[f(" Started: "+m(o.startedAt?new Date(o.startedAt).toLocaleString():"n/a"),1)]),_:2},1024),o.waitingUntil?(i(),p(Me,{key:0,caption:"",class:"text-orange-9"},{default:a(()=>[l(I,{name:"mdi-timer-sand"}),f(" Waiting until "+m(new Date(o.waitingUntil).toLocaleString()),1)]),_:2},1024)):S("",!0)]),_:2},1024),l(U,{side:""},{default:a(()=>[l(ie,{dense:"",size:"sm",color:o.status==="completed"?"green-1":o.status==="failed"||o.status==="error"?"red-1":o.status==="waiting"?"orange-1":"blue-1","text-color":o.status==="completed"?"green-9":o.status==="failed"||o.status==="error"?"red-9":o.status==="waiting"?"orange-9":"blue-9"},{default:a(()=>[f(m(o.status),1)]),_:2},1032,["color","text-color"])]),_:2},1024)]),_:2},1032,["onClick"]),c.value===o.workflowEventId?(i(),g("div",jl,[r("div",Fl,[r("span",null,"Execution Timeline ("+m(o.stepHistory?.length||0)+" steps):",1),o.triggeredByUser?(i(),g("span",Ml," Triggered by: "+m(o.triggeredByUser.firstName)+" "+m(o.triggeredByUser.lastName),1)):S("",!0)]),!o.stepHistory||o.stepHistory.length===0?(i(),g("div",Nl," No step transition details recorded yet. ")):(i(),p(At,{key:1,color:"primary",dense:""},{default:a(()=>[(i(!0),g(me,null,ye(o.stepHistory,(d,L)=>(i(),p(qt,{key:L,title:d.stepLabel||d.stepType||`Step ${L+1}`,subtitle:d.completedAt?new Date(d.completedAt).toLocaleTimeString():"",icon:d.stepType==="Wait"?"mdi-timer-sand":d.stepType==="Filter"?"mdi-filter-variant":d.stepType==="Action"?"mdi-lightning-bolt":d.status==="success"?"mdi-check":"mdi-alert",color:d.status==="failed"?"negative":d.stepType==="Wait"?"orange-8":d.stepType==="Filter"?d.filterResult?"positive":"grey-7":"primary"},{default:a(()=>[d.stepType==="Wait"?(i(),g("div",Rl,[l(I,{name:"mdi-clock-outline",class:"q-mr-xs text-orange-9"}),d.waitDetails?(i(),g("span",zl,[n[17]||(n[17]=f(" Paused execution for ")),r("b",null,m(d.waitDetails.duration)+" "+m(d.waitDetails.unit),1)])):(i(),g("span",Ql,"Wait step completed"))])):d.stepType==="Filter"?(i(),g("div",Pl,[d.filterDescription?(i(),g("div",Bl,[n[18]||(n[18]=f(" Condition: ")),r("b",null,m(d.filterDescription),1)])):S("",!0),r("div",Hl,[n[19]||(n[19]=r("span",{class:"text-grey-7"},"Result:",-1)),l($t,{color:d.filterResult?"green-1":"grey-3","text-color":d.filterResult?"green-9":"grey-9",class:"text-weight-bold"},{default:a(()=>[f(m(d.filterResult?"Passed (True branch)":"Did not match (False branch)"),1)]),_:2},1032,["color","text-color"])])])):d.stepType==="Action"?(i(),g("div",Yl,[d.actionSummary?.summaryList&&d.actionSummary.summaryList.length>0?(i(),g("div",Xl,[r("ul",Gl,[(i(!0),g(me,null,ye(d.actionSummary.summaryList,(z,se)=>(i(),g("li",{key:se},m(z),1))),128))])])):d.actionSummary?.description?(i(),g("div",Jl,m(d.actionSummary.description),1)):(i(),g("div",Kl," Action completed "))])):S("",!0),d.error?(i(),g("div",Zl,[l(I,{name:"mdi-alert-circle"}),f(" Error: "+m(d.error),1)])):S("",!0)]),_:2},1032,["title","subtitle","icon","color"]))),128))]),_:2},1024))])):S("",!0)]))),128))]),_:1}))]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1}))}});export{Ha as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.