System.register(["./index-legacy-DQdImDha.js?v=1773287522785","./data-legacy-B9xdUIE5.js?v=1773287522785","./campaign-legacy-DoNavHj-.js?v=1773287522785","./vue-core-legacy-Cn1vuJ3s.js?v=1773287522785","./naive-ui-legacy-BW82sq8q.js?v=1773287522785","./check-legacy-DG4HeWug.js?v=1773287522785","./index.vue_vue_type_script_setup_true_lang-legacy-BxGdWrSF.js?v=1773287522785","./prismjs-legacy-BN0FEcG9.js?v=1773287522785","./useLoading-legacy-IiShPpjk.js?v=1773287522785","./mail-legacy-BX4bHMTA.js?v=1773287522785"],(function(e,a){"use strict";var t,l,n,o,i,r,s,d,u,c,p,f,v,y,b,m,g,_,k,h,x,w,K,N,j,C,U,z,E,S,D,$,P,A,R,I,W,T,L,O,V,B,q,F,G,M,Y,Z,H,J,Q,X,ee,ae,te,le,ne;return{setters:[e=>{t=e.i,l=e.m,n=e.h,o=e.k,i=e.l,r=e.c,s=e.n},e=>{d=e.c,u=e.g},e=>{c=e.e,p=e.g,f=e.a,v=e.b,y=e.c},e=>{b=e.r,m=e.a0,g=e.j,_=e.F,k=e.N,h=e.k,x=e.al,w=e.c,K=e.$,N=e.a8,j=e.a9,C=e._,U=e.Z,z=e.P,E=e.S,S=e.aa,D=e.ak,$=e.ad,P=e.L,A=e.aj,R=e.ab,I=e.e,W=e.l,T=e.v,L=e.a5,O=e.am,V=e.K},e=>{B=e.a3,q=e.a4,F=e.a,G=e.p,M=e.a5,Y=e.a1,Z=e.a6,H=e.b,J=e.a7,Q=e.a8,X=e._,ee=e.B,ae=e.a0,te=e.a9},e=>{le=e.c},e=>{ne=e._},null,null,null],execute:function(){var a=document.createElement("style");a.textContent=".tool-icon[data-v-4e70f650]{width:18px;height:18px;border:1px dashed #bababa;background-color:#f9f9f9;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s}.tool-icon[data-v-4e70f650]:hover{width:40px;border-color:#20a53a}.add-node[data-v-4e70f650]{max-width:510px;box-sizing:border-box;padding:10px;background:#fff}.add-node .header[data-v-4e70f650]{text-align:center;font-weight:700;font-size:16px}.add-node .node-list[data-v-4e70f650]{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-start;margin-top:20px}.add-node .node-list .node-item[data-v-4e70f650]{width:90px;height:90px;background:#f3f4f6;display:flex;justify-content:center;align-items:center;font-size:14px;font-weight:700;cursor:pointer}.email-box[data-v-9bb21c05]{display:flex;align-items:center;justify-content:center;width:100%;height:176px;background-color:#fafafa;border-top-left-radius:6px;border-top-right-radius:6px}.normal-node[data-v-c03efef8]{padding:24px 32px;text-align:center;font-size:14px}.line[data-v-0b2e1f55]{width:1px;height:24px;background-color:#d1d5db}.tools-box[data-v-0b2e1f55]{display:flex;flex-direction:column;align-items:center}.node-box[data-v-0b2e1f55]{position:relative;width:256px;min-height:50px;border:1px solid rgba(209,213,219,.5);background-color:#fff;border-radius:6px;transition:all .3s;cursor:pointer}.node-box[data-v-0b2e1f55]:hover{border-color:#d1d5db}.node-box .node-title[data-v-0b2e1f55]{position:absolute;top:8px;left:8px;display:flex;align-items:center;justify-content:center;gap:6px}.node-box .node-title .icon[data-v-0b2e1f55]{font-size:16px}.node-box .node-title .text[data-v-0b2e1f55]{font-size:12px;color:#999}.node-box .del-node[data-v-0b2e1f55]{position:absolute;right:8px;top:8px;font-size:14px}.node-box.warning[data-v-0b2e1f55]{border-color:rgba(253,202,98,.7)}.node-box.warning[data-v-0b2e1f55]:hover{border-color:#fdca62;box-shadow:0 0 1px 3px rgba(253,202,98,.2)}.node-box.action[data-v-0b2e1f55],.node-box.action[data-v-0b2e1f55]:hover{border-color:#20a53a;box-shadow:0 0 1px 3px rgba(32,165,58,.2)}.line[data-v-fbf5dbc0]{width:1px;height:24px;background-color:#d1d5db}.tools-box[data-v-fbf5dbc0]{display:flex;flex-direction:column;align-items:center}.node-box[data-v-fbf5dbc0]{position:relative;width:256px;padding:24px 32px;border:1px solid rgba(209,213,219,.5);background-color:#fff;border-radius:6px;transition:all .3s;cursor:pointer}.node-box[data-v-fbf5dbc0]:hover{border-color:#d1d5db}.node-box .node-title[data-v-fbf5dbc0]{position:absolute;top:8px;left:8px;display:flex;align-items:center;justify-content:center;gap:6px}.node-box .node-title .icon[data-v-fbf5dbc0]{font-size:16px}.node-box .node-title .text[data-v-fbf5dbc0]{font-size:12px;color:#999}.node-box .del-node[data-v-fbf5dbc0]{position:absolute;right:8px;top:8px;font-size:14px}.node-box.warning[data-v-fbf5dbc0]{border-color:rgba(253,202,98,.7)}.node-box.warning[data-v-fbf5dbc0]:hover{border-color:#fdca62;box-shadow:0 0 1px 3px rgba(253,202,98,.2)}.node-box.warning .node-title .icon[data-v-fbf5dbc0]{color:#fdca62}.node-box.action[data-v-fbf5dbc0],.node-box.action[data-v-fbf5dbc0]:hover{border-color:#20a53a;box-shadow:0 0 1px 3px rgba(32,165,58,.2)}.condition-box[data-v-fbf5dbc0]{display:flex}.condition-box .condition-item[data-v-fbf5dbc0]{position:relative;display:flex;flex-direction:column;align-items:center;min-width:288px}.horizontal-line[data-v-fbf5dbc0]{position:absolute;top:0;right:0;width:50%;height:1px;background-color:#d1d5db}.horizontal-line.left[data-v-fbf5dbc0]{left:0}.horizontal-line.right[data-v-fbf5dbc0]{right:0}.flow-tree[data-v-fbf5dbc0],.flow-tree li[data-v-fbf5dbc0]{display:flex;flex-direction:column;align-items:center}.condition-state[data-v-fbf5dbc0]{display:flex;align-items:center;justify-content:center;width:48px;height:32px;border-radius:4px;color:#fff}.condition-state.success[data-v-fbf5dbc0]{background-color:#20a53a}.condition-state.fail[data-v-fbf5dbc0]{background-color:#ef0808}.flow-container[data-v-3663809b]{flex:1;position:relative;width:100%;height:100%;padding:32px;background-color:var(--flow-container-bg);overflow:auto}.flow-container .flow-tree[data-v-3663809b],.flow-container .flow-tree li[data-v-3663809b]{display:flex;flex-direction:column;align-items:center}.test-box[data-v-3663809b]{width:300px;height:60px;background:#f30}.condition-box[data-v-c8dfd4ad]{margin-top:12px;padding:12px;border:1px solid #d9d9d9;border-radius:4px}.flow-config[data-v-c21ff526]{background-color:var(--color-bg-2);display:flex;flex-direction:column;width:380px;height:100%;border-left:1px solid #e5e7eb;overflow:hidden}.config-title[data-v-c21ff526]{color:var(--flow-config-title-color);padding-top:16px;padding-bottom:16px;text-align:center;line-height:20px;border-bottom:1px solid #e5e7eb}.config-footer[data-v-c21ff526]{display:flex;justify-content:flex-end;padding:16px 20px;border-top:1px solid #e5e7eb}.mail-flow[data-v-b7d1832f]{display:flex;flex-direction:column;width:100%;height:100%}\n/*$vite$:1*/",document.head.appendChild(a);const oe=b(0),ie=b([]),re=b([]),se=b(Date.now()),de=b("root"),ue=b("trigger"),ce=b({root:{nodeKey:"root",parentNodeKey:"",type:"trigger",id:0,parent_id:0,broken:!1,complete:!0,config:{type:"subscriber_added",group_ids:[]}}}),pe=b({}),fe=b({}),ve=b({}),ye=b({}),be=b({}),me=b({}),ge=b({trigger:ce,email:pe,delay:fe,webhook:ve,action:ye,abTest:be,condition:me}),_e=b({nodeKey:"",parentNodeKey:"",type:"trigger",next:null,id:0,parent_id:0,broken:!1,complete:!1}),ke=b({..._e.value,config:{type:"subscriber_added",group_ids:[]}}),he=b({..._e.value,email_id:0,name:"",subject:"",from:"",from_name:"",track_opens:!0,track_clicks:!0,track_unsubscribe:!0}),xe=b({..._e.value,value:0,unit:"days",description:""}),we=b({..._e.value,url:"",secret:""}),Ke=b({..._e.value,action:"add_to_subscribers",group_ids:[],description:""}),Ne=b({..._e.value,name:"",branches:[]}),je=b({..._e.value,rules:[{type:null}],logic_type:"or",yes:[],no:[],description:""}),Ce=b({trigger:ke,email:he,delay:xe,webhook:we,action:Ke,abTest:Ne,condition:je}),Ue={events:{},$on(e,a){this.events[e]?this.events[e].push(a):this.events[e]=[a]},$emit(e,a){this.events[e].forEach((e=>{e(a)}))},$unsubscribe(e){this.events[e]=[]}};function ze(e,a){const t="trigger"===e?"root":o(),l=G(Ce.value[e]);return l.nodeKey=t,l.parentNodeKey=a,l.type=e,ge.value[e][t]=l,l}function Ee(e,a){const t=ze(e,a);return me.value[a].no.unshift({type:e,key:t.nodeKey}),"condition"==e&&Ue.$on(t.nodeKey,(()=>{!function(e,a){const t=me.value[a].no.findIndex((a=>a.key==e));me.value[a].no.splice(t,1),Ue.$unsubscribe(e)}(t.nodeKey,a)})),t}function Se(e,a){const t=me.value[e],{parentNodeKey:l}=t;t[a].forEach((a=>{if("trigger"!==a.type&&(ge.value[a.type][a.key].parentNodeKey=t.parentNodeKey),"root"===l)re.value.push({type:a.type,key:a.key});else{const t=me.value[l],n=function(e){const a=me.value[e],t=a.parentNodeKey,l=me.value[t];return l.yes.some((a=>a.key===e))?"yes":"no"}(e);t[n].push({type:a.type,key:a.key})}}))}function De(e,a){const t=re.value.findIndex((e=>e.key==a));re.value.splice(t,1),delete ge.value[e][a]}function $e(e){const a=b(1),t=ge.value.condition[e],l=t.yes.length>0||t.no.length>0;n({title:"Please choose one of the following",width:400,content:()=>m(_,null,[l&&m(B,{value:a.value,onUpdateValue:e=>a.value=e},{default:()=>[m("div",null,[m(q,{value:1},{default:()=>[g("Delete both branches including all steps below.")]})]),m("div",{class:"mt-6px"},[m(q,{value:2},{default:()=>[g("Delete only YES branch including steps below.")]})]),m("div",{class:"mt-6px"},[m(q,{value:3},{default:()=>[g("Delete only NO branch including steps below.")]})])]}),!l&&m("div",null,[g("Do you really want to delete this step?")])]),onConfirm:async()=>{switch(a.value){case 1:Pe(e),Ae(e),Re(e);break;case 2:Pe(e),Se(e,"no"),Re(e);break;case 3:Ae(e),Se(e,"yes"),Re(e)}await Fe(),de.value===e&&(se.value=Date.now(),de.value="root",ue.value="trigger")}})}function Pe(e){me.value[e].yes.forEach((a=>{var t;"trigger"!==a.type&&("condition"!==a.type?Ie(a.type,e,a.key):(Pe(t=a.key),Ue.$emit(t)))}))}function Ae(e){me.value[e].no.forEach((a=>{var t;"trigger"!==a.type&&("condition"!==a.type?We(a.type,e,a.key):(Ae(t=a.key),Ue.$emit(t)))}))}function Re(e){const a=me.value[e],{parentNodeKey:t}=a;if("root"===t)De("condition",e);else{const a=me.value[t];let l=a.yes.findIndex((a=>a.key===e));l>-1?a.yes.splice(l,1):(l=a.no.findIndex((a=>a.key===e)),a.no.splice(l,1))}}function Ie(e,a,t){const l=me.value[a].yes.findIndex((e=>e.key==t));me.value[a].yes.splice(l,1),delete ge.value[e][t]}function We(e,a,t){const l=me.value[a].no.findIndex((e=>e.key==t));me.value[a].no.splice(l,1),delete ge.value[e][t]}function Te(e,a){const t=me.value[a].yes.findIndex((a=>a.key==e));me.value[a].yes.splice(t,1),Ue.$unsubscribe(e)}function Le(e){Ge();const{root:a,triggers:t}=e;F(t)&&t.length>0&&("subscriber_added"===t[0].type&&(ge.value.trigger.root.complete=t[0].group_ids.length>0),ge.value.trigger.root.config=t[0]),re.value=Oe(a,"root")}function Oe(e,a,t=!1){const l=[];let n=e;for(;n;){const e=n.nodeKey,i={key:e,type:n.type};if(l.push(i),"condition"===n.type){t&&Ue.$on(e,(()=>{Te(e,a)})),ge.value.condition[e]=Ve(n,e);break}ge.value[n.type][e]=(o=n,{...o,next:null}),n=n.next}var o;return l}function Ve(e,a){return{...e,nodeKey:a,yes:Oe(e.yes,a,!0),no:Oe(e.no,a,!0),next:null}}function Be(e){return e.reduceRight(((e,a)=>{const t=ge.value[a.type][a.key],l=G(t);return"condition"===l.type?{...(n=l,{...n,yes:Be(n.yes),no:Be(n.no),next:null}),next:e}:{...l,next:e};var n}),null)}async function qe(){const{message:e}=await p({id:oe.value});t(e)&&Le(e)}async function Fe(e="save"){const a=function(){const e=Be(re.value);return{triggers:[k(ge.value.trigger.root.config)],root:e}}(),{message:n}=await c({id:oe.value,...a});if(t(n)){switch(e){case"save":l.success("Save successfully");break;case"del":l.success("Node deleted successfully");break;case"add":l.success("Node added successfully")}Le(n)}}async function Ge(){re.value=[],Object.keys(ge.value).forEach((e=>{"trigger"!==e&&(ge.value[e]={})}))}function Me(){se.value=Date.now(),de.value="root",ue.value="trigger"}const Ye={class:"tool-icon"},Ze={class:"add-node"},He={class:"node-list"},Je=["onClick"],Qe=h({__name:"ToolAdd",props:{parentKey:{},parentType:{},last:{type:Boolean}},emits:["addNode"],setup(e,{emit:a}){const t=e,l=a,n=x("popoverRef"),o=b([{type:"email",icon:"",desc:"Email"},{type:"delay",icon:"",desc:"Delay"},{type:"webhook",icon:"",desc:"Webhook"}]),r=w((()=>t.last?o.value:o.value.filter((e=>"condition"!==e.type))));return(e,a)=>{const o=i,s=M;return K(),N(s,{ref_key:"popoverRef",ref:n,trigger:"click"},{trigger:j((()=>[C("div",Ye,[m(o,{name:"base-add",size:"16"})])])),default:j((()=>[C("div",Ze,[a[0]||(a[0]=C("div",{class:"header"},"Add a next step to your workflow",-1)),C("div",He,[(K(!0),U(_,null,z(E(r),(e=>(K(),U("div",{key:e.type,class:"node-item",onClick:a=>{return o=e.type,l("addNode",o,t.parentKey),void n.value?.setShow(!1);var o}},S(e.desc),9,Je)))),128))])])])),_:1},512)}}}),Xe=r(Qe,[["__scopeId","data-v-4e70f650"]]),ea={class:"normal-node"},aa={key:0,class:"font-bold"},ta=h({__name:"TriggerNode",props:{type:{default:"trigger"},nodeKey:{default:""}},setup(e){const a=e,t=w((()=>ce.value[a.nodeKey])),l=w((()=>{const{config:e}=t.value;if("subscriber_added"===e.type&&0===e.group_ids.length)return"Set up workflow trigger";switch(e.type){case"subscriber_added":return"When a new email joins group(s) ";case"subscribed":return"When subscriber joins group(s) ";case"opened":return"When subscriber opens an email ";case"clicked":return`When subscriber clicks a link ${e.link} `;case"unsubscribed":return"When subscriber unsubscribes ";default:return"Set up workflow trigger "}})),n=w((()=>{const{config:e}=t.value;switch(e.type){case"subscriber_added":case"subscribed":return o(e.group_ids);case"clicked":return e.link.url}return""})),o=e=>ie.value.filter((a=>e.includes(a.id))).map((e=>e.mail_type)).join(", ");return(e,a)=>(K(),U("div",ea,[C("span",null,S(E(l)),1),E(n)?(K(),U("span",aa,S(E(n)),1)):D("",!0)]))}}),la={class:"normal-node"},na={class:"mt-8px"},oa={key:0,class:"font-bold"},ia=h({__name:"ActionNode",props:{type:{default:"trigger"},nodeKey:{default:""}},setup(e){const a=e,t=w((()=>ye.value[a.nodeKey])),l=w((()=>{if(t.value.complete&&t.value.group_ids.length>0)switch(t.value.action){case"add_to_subscribers":return"Add to group(s) ";case"remove_from_subscribers":return"Remove from group(s) ";case"mark_as_unsubscribe":return"Mark as unsubscribed"}return"Define action"})),n=w((()=>{if(t.value.complete)switch(t.value.action){case"add_to_subscribers":case"remove_from_subscribers":return o(t.value.group_ids)}return""})),o=e=>ie.value.filter((a=>e.includes(a.id))).map((e=>e.mail_type)).join(", ");return(e,a)=>{const t=i;return K(),U("div",la,[C("div",null,[m(t,{name:"flow-action",size:"16"})]),C("div",na,[C("span",null,S(E(l)),1),E(n)?(K(),U("span",oa,S(E(n)),1)):D("",!0)])])}}}),ra={class:"normal-node"},sa={class:"mt-8px"},da=h({__name:"DelayNode",props:{type:{default:"delay"},nodeKey:{default:""}},setup(e){const a=e,t=w((()=>fe.value[a.nodeKey])),l=w((()=>t.value.complete?`Wait ${t.value.value} ${t.value.unit}`:"Set delay"));return(e,a)=>{const t=i;return K(),U("div",ra,[C("div",null,[m(t,{name:"flow-delay",size:"16"})]),C("div",sa,S(E(l)),1)])}}}),ua={class:"normal-node"},ca={class:"mt-8px"},pa=r(h({__name:"EmailNode",props:{type:{default:"email"},nodeKey:{default:""}},setup(e){const a=e,t=w((()=>pe.value[a.nodeKey])),l=w((()=>t.value.complete?t.value.name:"Set email"));return(e,a)=>{const t=i;return K(),U("div",ua,[C("div",null,[m(t,{name:"flow-email",size:"16"})]),C("div",ca,S(E(l)),1)])}}}),[["__scopeId","data-v-9bb21c05"]]),fa={class:"normal-node"},va={class:"mt-8px"},ya=h({__name:"WebhookNode",props:{type:{default:"webhook"},nodeKey:{default:""}},setup(e){const a=e,t=w((()=>ve.value[a.nodeKey])),l=w((()=>t.value.complete?t.value.url:"Set webhook"));return(e,a)=>{const t=i;return K(),U("div",fa,[C("div",null,[m(t,{name:"flow-webhook",size:"16"})]),C("div",va,S(E(l)),1)])}}}),ba=r({},[["render",function(e,a){return K(),U("div")}]]),ma=r(h({__name:"index",props:{type:{default:"trigger"},nodeKey:{default:""}},setup(e){const a=e,t=w((()=>{switch(a.type){case"trigger":return ta;case"delay":return da;case"action":return ia;case"email":return pa;case"webhook":return ya;default:return ba}}));return(e,a)=>(K(),N($(E(t)),{type:e.type,"node-key":e.nodeKey},null,8,["type","node-key"]))}}),[["__scopeId","data-v-c03efef8"]]),ga={key:0,class:"line"},_a={class:"node-title"},ka={key:1,class:"text"},ha={class:"tools-box"},xa=h({__name:"NormalNode",props:{last:{type:Boolean,default:!1},type:{default:"trigger"},nodeKey:{default:"root"}},emits:["addNode","delNormalNode","selectNode"],setup(e,{emit:a}){const t=e,o=a,r=w((()=>"trigger"!==t.type)),s=w((()=>!c.value.complete)),u=w((()=>t.nodeKey===de.value)),c=w((()=>ge.value[t.type][t.nodeKey])),p=w((()=>t.type?d(t.type):""));function f(){o("selectNode",t.type,t.nodeKey)}function v(e){o("addNode",e,c.value)}function y(){if("email"===t.type){let e=!1;const a=ge.value.email[t.nodeKey],n=ge.value.condition,o=Object.entries(n);for(const[,t]of o){if(t.complete&&t.rules.length>0)for(const l of t.rules)if("workflow"===l.type&&l.node_id===a.id){e=!0;break}if(e)break}if(e)return void l.error("The email node is used in the condition node and cannot be deleted",{close:!0})}n({title:"Please confirm",content:"Do you really want to delete this step?",onConfirm:async()=>{o("delNormalNode",t.type,t.nodeKey),await Fe("del")}})}return(e,a)=>{const t=i;return K(),U(_,null,[E(r)?(K(),U("div",ga)):D("",!0),C("div",{class:P(["node-box",{warning:E(s),action:E(u)}]),onClick:f},[C("div",_a,[E(s)?(K(),N(t,{key:0,class:"icon",name:"warning",color:"#FDCA62"})):D("",!0),E(r)?(K(),U("span",ka,S(E(p)),1)):D("",!0)]),E(r)?(K(),U("span",{key:0,class:"del-node",onClick:A(y,["stop"])},[m(t,{name:"flow-del"})])):D("",!0),m(ma,{type:e.type,"node-key":e.nodeKey},null,8,["type","node-key"])],2),C("div",ha,[a[0]||(a[0]=C("div",{class:"line"},null,-1)),C("div",null,[m(Xe,{last:e.last,"parent-type":e.type,"parent-key":e.nodeKey,onAddNode:v},null,8,["last","parent-type","parent-key"])])])],64)}}}),wa=r(xa,[["__scopeId","data-v-0b2e1f55"]]),Ka={class:"node-title"},Na={class:"text-center"},ja={class:"mt-12px text-14px text-center"},Ca={key:0,class:"font-bold"},Ua={class:"tools-box"},za={class:"condition-box"},Ea={class:"condition-item"},Sa={class:"condition-state success"},Da={class:"tools-box"},$a={key:0,class:"flow-tree"},Pa={class:"condition-item"},Aa={class:"condition-state fail"},Ra={class:"tools-box"},Ia={key:0,class:"flow-tree"},Wa=h({name:"ConditionNode",__name:"ConditionNode",props:{type:{default:"trigger"},nodeKey:{default:"root"}},emits:["delCondition","selectNode"],setup(e,{emit:a}){const t=e,l=a,n=w((()=>!r.value.complete)),o=w((()=>t.nodeKey===de.value)),r=w((()=>me.value[t.nodeKey])),s=new Map([["clicked"," had any link clicked"],["link_clicked"," had a specific link clicked"],["link_not_clicked"," did not have a specific link clicked"],["opened"," was opened"],["not_opened"," was not opened"],["opened_with_not_clicked"," was opened with no links clicked"]]),d=w((()=>{const{rules:e}=r.value;if(e.length>0&&null!==e[0].type)switch(e[0].type){case"campaign":return e[0].campaign.name;case"workflow":return function(e,a){const t=ge.value[a],l=Object.entries(t).filter((([,a])=>a.id===e));return l.length>0?l[0][1].name:""}(e[0].node_id,"email")}return""})),u=w((()=>{const{complete:e,rules:a,logic_type:t}=r.value;if(e&&a.length>0&&null!==a[0].type){let e=s.get(a[0].action)||"";return a.length>1&&(e+=` ${t} +${a.length-1} condition`),e}return"Define condition"})),c=()=>{l("selectNode","condition",t.nodeKey)},p=(e,a)=>{l("selectNode",e,a)};async function f(e,a){const t=function(e,a){const t=ze(e,a);return me.value[a].yes.unshift({type:e,key:t.nodeKey}),"condition"==e&&Ue.$on(t.nodeKey,(()=>{Te(t.nodeKey,a)})),t}(e,a);await Fe("add"),p(t.type,t.nodeKey)}async function v(e){const a=function(e,a){const t=ze(e,a);return me.value[a].yes.push({type:e,key:t.nodeKey}),t}(e,t.nodeKey);await Fe("add"),p(a.type,a.nodeKey)}async function y(e,a){const t=Ee(e,a);await Fe("add"),p(t.type,t.nodeKey)}async function b(e){const a=function(e,a){const t=ze(e,a);return me.value[a].no.push({type:e,key:t.nodeKey}),t}(e,t.nodeKey);await Fe("add"),p(a.type,a.nodeKey)}function g(){l("delCondition",t.nodeKey)}function k(e){$e(e)}function h(e,a){Ie(e,t.nodeKey,a),de.value===a&&p("trigger","root")}function x(e,a){We(e,t.nodeKey,a),de.value===a&&p("trigger","root")}return(e,a)=>{const t=i,l=R("ConditionNode",!0);return K(),U(_,null,[a[8]||(a[8]=C("div",{class:"line"},null,-1)),C("div",{class:P(["node-box",{warning:E(n),action:E(o)}]),onClick:c},[C("div",Ka,[E(n)?(K(),N(t,{key:0,class:"icon",name:"warning"})):D("",!0),a[0]||(a[0]=C("span",{class:"text"},"Condition",-1))]),C("span",{class:"del-node",onClick:A(g,["stop"])},[m(t,{name:"flow-del"})]),C("div",Na,[m(t,{size:"16",name:"flow-condition"})]),C("div",ja,[E(d)?(K(),U("span",Ca,S(E(d)),1)):D("",!0),C("span",null,S(E(u)),1)])],2),C("div",Ua,[a[7]||(a[7]=C("div",{class:"line"},null,-1)),C("div",za,[C("div",Ea,[a[2]||(a[2]=C("div",{class:"horizontal-line right"},null,-1)),a[3]||(a[3]=C("div",{class:"line"},null,-1)),C("div",Sa,[m(t,{name:"flow-success",size:"20"})]),C("div",Da,[a[1]||(a[1]=C("div",{class:"line"},null,-1)),C("div",null,[m(Xe,{last:0===E(r).yes.length,"parent-type":e.type,"parent-key":e.nodeKey,onAddNode:f},null,8,["last","parent-type","parent-key"])])]),E(r).yes.length?(K(),U("ul",$a,[(K(!0),U(_,null,z(E(r).yes,((e,a)=>(K(),U("li",{key:e.key},["condition"==e.type?(K(),N(l,{key:0,type:"condition","node-key":e.key,onSelectNode:p,onDelCondition:k},null,8,["node-key"])):(K(),N(wa,{key:1,last:a===E(r).yes.length-1,type:e.type,"node-key":e.key,onAddNode:v,onSelectNode:p,onDelNormalNode:h},null,8,["last","type","node-key"]))])))),128))])):D("",!0)]),C("div",Pa,[a[5]||(a[5]=C("div",{class:"horizontal-line left"},null,-1)),a[6]||(a[6]=C("div",{class:"line"},null,-1)),C("div",Aa,[m(t,{name:"flow-fail",size:"20"})]),C("div",Ra,[a[4]||(a[4]=C("div",{class:"line"},null,-1)),C("div",null,[m(Xe,{last:0===E(r).no.length,"parent-type":e.type,"parent-key":e.nodeKey,onAddNode:y},null,8,["last","parent-type","parent-key"])])]),E(r).no.length?(K(),U("ul",Ia,[(K(!0),U(_,null,z(E(r).no,((e,a)=>(K(),U("li",{key:e.key},["condition"==e.type?(K(),N(l,{key:0,type:"condition","node-key":e.key,onSelectNode:p,onDelCondition:k},null,8,["node-key"])):(K(),N(wa,{key:1,last:a===E(r).no.length-1,type:e.type,"node-key":e.key,onAddNode:b,onSelectNode:p,onDelNormalNode:x},null,8,["last","type","node-key"]))])))),128))])):D("",!0)])])])],64)}}}),Ta=r(Wa,[["__scopeId","data-v-fbf5dbc0"]]),La={class:"flow-container"},Oa={class:"flow-tree"},Va=h({__name:"index",setup(e){async function a(e,a){const t=function(e,a){const t=ze(e,"root");if(""===a)re.value.unshift({type:e,key:t.nodeKey});else{const l=re.value.findIndex((e=>e.key==a));re.value.splice(l+1,0,{type:e,key:t.nodeKey})}return t}(e,a.nodeKey);await Fe("add"),n(t.type,t.nodeKey)}function t(e){$e(e)}function l(e,a){De(e,a),de.value===a&&n("trigger","root")}function n(e,a){se.value=Date.now(),ue.value=e,de.value=a}return(e,o)=>(K(),U("div",La,[C("ul",Oa,[C("li",null,[m(wa,{last:0===E(re).length,type:"trigger","node-key":"root",onSelectNode:n,onAddNode:a},null,8,["last"])]),(K(!0),U(_,null,z(E(re),((e,o)=>(K(),U("li",{key:e.key},["condition"==e.type?(K(),N(Ta,{key:0,type:"condition","node-key":e.key,onSelectNode:n,onDelCondition:t},null,8,["node-key"])):(K(),N(wa,{key:1,last:o===E(re).length-1,type:e.type,"node-key":e.key,onAddNode:a,onSelectNode:n,onDelNormalNode:l},null,8,["last","type","node-key"]))])))),128))])]))}}),Ba=r(Va,[["__scopeId","data-v-3663809b"]]),qa={class:"p-20px"},Fa=h({__name:"TriggerConfig",setup(e,{expose:a}){const t=x("formRef"),l=b({type:"subscriber_added",group_ids:[]}),n={group:{trigger:["change"],validator:()=>!!("subscriber_added"!==l.value.type&&"subscribed"!==l.value.type||l.value.group_ids.length)||new Error("Please select group")},link:{trigger:["input","blur"],validator:()=>!("clicked"===l.value.type&&!l.value.link.url)||new Error("Please enter link")}},o=b([{label:"When a new email joins group(s)",value:"subscriber_added"}]),i=b([]),r=e=>{switch(e){case"subscriber_added":case"subscribed":l.value={type:e,group_ids:[]};break;case"clicked":l.value={type:e,link:{url:""}};break;case"opened":case"unsubscribed":l.value={type:e}}};return(()=>{if((async()=>{i.value=ie.value.map((e=>({label:e.mail_type,value:e.id})))})(),de.value){const e=ce.value[de.value];e&&(l.value=G(e.config))}})(),a({submit:async()=>{if(await(t.value?.validate()),de.value){const e=ce.value[de.value];e.config=G(l.value),e.complete=!0}}}),(e,a)=>{const s=Z,d=Y,u=H,c=J;return K(),U("div",qa,[m(c,{ref_key:"formRef",ref:t,model:E(l),rules:n},{default:j((()=>[m(d,{label:"Trigger"},{default:j((()=>[m(s,{value:E(l).type,options:E(o),"onUpdate:value":r},null,8,["value","options"])])),_:1}),"subscriber_added"===E(l).type||"subscribed"===E(l).type?(K(),N(d,{key:0,label:"Group",path:"group"},{default:j((()=>[m(s,{value:E(l).group_ids,"onUpdate:value":a[0]||(a[0]=e=>E(l).group_ids=e),multiple:!0,filterable:!0,options:E(i)},null,8,["value","options"])])),_:1})):D("",!0),"clicked"===E(l).type?(K(),N(d,{key:1,label:"Link",path:"link"},{default:j((()=>[m(u,{value:E(l).link.url,"onUpdate:value":a[1]||(a[1]=e=>E(l).link.url=e)},null,8,["value"])])),_:1})):D("",!0)])),_:1},8,["model"])])}}}),Ga={class:"p-20px"},Ma=h({__name:"EmailConfig",setup(e,{expose:a}){const l=x("formRef"),n=I({name:"",subject:"",from_name:"",from:"",email_id:null,track_opens:!0,track_clicks:!0,track_unsubscribe:!0}),o=b([]),i={email_id:{trigger:["change"],validator:()=>!!n.email_id||new Error("Please select email template")},name:{trigger:["blur","input"],validator:()=>!!n.name||new Error("Please enter email name")},subject:{trigger:["blur","input"],validator:()=>!!n.subject||new Error("Please enter email subject")},from_name:{trigger:["blur","input"],validator:()=>!!n.from_name||new Error("Please enter sender name")},from:{trigger:["blur","input"],validator:()=>n.from?!!le(n.from)||new Error("Please enter a valid email address"):new Error("Please enter sender email")}},r=(e,a)=>{const{data:l}=a;t(l)&&(n.from_name=l.full_name)},d=async()=>{const{message:e}=await f();s(e)&&e.length>0&&(o.value=e.map((e=>({label:e.name,value:e.id}))))};return(()=>{if(d(),de.value){const e=pe.value[de.value];n.name=e.name,n.subject=e.subject,n.from_name=e.from_name,n.from=e.from,n.email_id=0===e.email_id?null:e.email_id,n.track_opens=e.track_opens,n.track_clicks=e.track_clicks,n.track_unsubscribe=e.track_unsubscribe}})(),a({submit:async()=>{if(await(l.value?.validate()),de.value){const e=pe.value[de.value];e.name=n.name,e.subject=n.subject,e.from_name=n.from_name,e.from=n.from,e.email_id=null===n.email_id?0:n.email_id,e.track_opens=n.track_opens,e.track_clicks=n.track_clicks,e.track_unsubscribe=n.track_unsubscribe,e.complete=!0}}}),(e,a)=>{const t=H,s=Y,d=Z,u=Q,c=J;return K(),U("div",Ga,[m(c,{ref_key:"formRef",ref:l,model:E(n),rules:i},{default:j((()=>[m(s,{label:"Email name",path:"name"},{default:j((()=>[m(t,{value:E(n).name,"onUpdate:value":a[0]||(a[0]=e=>E(n).name=e),placeholder:"Name"},null,8,["value"])])),_:1}),m(s,{label:"Sender email",path:"from"},{default:j((()=>[m(ne,{value:E(n).from,"onUpdate:value":a[1]||(a[1]=e=>E(n).from=e),"is-init":!0,placeholder:"Sender email",onChange:r},null,8,["value"])])),_:1}),m(s,{label:"Who is it from?",path:"from_name"},{default:j((()=>[m(t,{value:E(n).from_name,"onUpdate:value":a[2]||(a[2]=e=>E(n).from_name=e),placeholder:"Sender name"},null,8,["value"])])),_:1}),m(s,{label:"Subject",path:"subject"},{default:j((()=>[m(t,{value:E(n).subject,"onUpdate:value":a[3]||(a[3]=e=>E(n).subject=e),placeholder:"Email subject"},null,8,["value"])])),_:1}),m(s,{label:"Template",path:"email_id"},{default:j((()=>[m(d,{value:E(n).email_id,"onUpdate:value":a[4]||(a[4]=e=>E(n).email_id=e),options:E(o)},null,8,["value","options"])])),_:1}),D("",!0),D("",!0),m(s,{label:"Whether to enable the unsubscribe link and collect unsubscribe statistics"},{default:j((()=>[m(u,{value:E(n).track_unsubscribe,"onUpdate:value":a[7]||(a[7]=e=>E(n).track_unsubscribe=e)},null,8,["value"])])),_:1})])),_:1},8,["model"])])}}}),Ya={class:"p-20px"},Za={class:"w-140px mr-12px"},Ha={class:"flex-1"},Ja=h({__name:"DelayConfig",setup(e,{expose:a}){const t=x("formRef"),l=I({value:0,unit:"days"}),n=b([{label:"second(s)",value:"seconds"},{label:"minute(s)",value:"minutes"},{label:"hour(s)",value:"hours"},{label:"day(s)",value:"days"}]),o={value:{trigger:["blur","input"],validator:()=>l.value<=0?new Error("Value must be at least 1"):"days"===l.unit&&l.value>700?new Error("Value must be less than 700"):!!Number.isInteger(l.value)||new Error("Value must be an integer")}};return(()=>{if(de.value){const e=fe.value[de.value];l.value=e.value,l.unit=e.unit}})(),a({submit:async()=>{if(await(t.value?.validate()),de.value){const e=fe.value[de.value];e.value=l.value,e.unit=l.unit,e.complete=!0}}}),(e,a)=>{const i=X,r=Z,s=Y,d=J;return K(),U("div",Ya,[m(d,{ref_key:"formRef",ref:t,model:E(l),rules:o},{default:j((()=>[m(s,{label:"Wait",path:"value"},{default:j((()=>[C("div",Za,[m(i,{value:E(l).value,"onUpdate:value":a[0]||(a[0]=e=>E(l).value=e),min:0,"show-button":!1},null,8,["value"])]),C("div",Ha,[m(r,{value:E(l).unit,"onUpdate:value":a[1]||(a[1]=e=>E(l).unit=e),options:E(n)},null,8,["value","options"])])])),_:1})])),_:1},8,["model"])])}}}),Qa={class:"p-20px"},Xa=h({__name:"ActionConfig",setup(e,{expose:a}){const t=x("formRef"),l=I({action:"add_to_subscribers",group_ids:[]}),n=b([{label:"添加到联系人列表中",value:"add_to_subscribers"},{label:"从联系人列表中删除",value:"remove_from_subscribers"},{label:"标记为已退订",value:"mark_as_unsubscribe"}]),o=b([]),i={group:{trigger:["change"],validator:()=>!!("add_to_subscribers"!==l.action&&"remove_from_subscribers"!==l.action||l.group_ids.length)||new Error("Please select group")}},r=()=>{l.group_ids=[]};return(()=>{if((async()=>{o.value=ie.value.map((e=>({label:e.mail_type,value:e.id})))})(),de.value){const e=ye.value[de.value];l.action=e.action,l.group_ids=G(e.group_ids)}})(),a({submit:async()=>{if(await(t.value?.validate()),de.value){const e=ye.value[de.value];e.action=l.action,e.group_ids=G(l.group_ids),e.complete=!0}}}),(e,a)=>{const s=Z,d=Y,u=J;return K(),U("div",Qa,[m(u,{ref_key:"formRef",ref:t,model:E(l),rules:i},{default:j((()=>[m(d,{label:"Choose an action"},{default:j((()=>[m(s,{value:E(l).action,"onUpdate:value":[a[0]||(a[0]=e=>E(l).action=e),r],options:E(n)},null,8,["value","options"])])),_:1}),W(m(d,{label:"Group",path:"group"},{default:j((()=>[m(s,{value:E(l).group_ids,"onUpdate:value":a[1]||(a[1]=e=>E(l).group_ids=e),multiple:!0,filterable:!0,options:E(o)},null,8,["value","options"])])),_:1},512),[[T,"add_to_subscribers"===E(l).action||"remove_from_subscribers"===E(l).action]])])),_:1},8,["model"])])}}}),et={class:"p-20px"},at=h({__name:"WebhookConfig",setup(e,{expose:a}){const t=x("formRef"),l=I({url:"",secret:""}),n={url:{required:!0,trigger:["blur","input"],message:"Please enter webhook URL"},secret:{required:!0,trigger:["blur","input"],message:"Please enter secret key"}};return(()=>{if(de.value){const e=ve.value[de.value];l.url=e.url,l.secret=e.secret}})(),a({submit:async()=>{if(await(t.value?.validate()),de.value){const e=ve.value[de.value];e.url=l.url,e.secret=l.secret,e.complete=!0}}}),(e,a)=>{const o=H,i=Y,r=J;return K(),U("div",et,[m(r,{ref_key:"formRef",ref:t,model:E(l),rules:n},{default:j((()=>[m(i,{label:"Webhook URL",path:"url"},{default:j((()=>[m(o,{value:E(l).url,"onUpdate:value":a[0]||(a[0]=e=>E(l).url=e),placeholder:""},null,8,["value"])])),_:1}),m(i,{label:"Secret Key",path:"secret"},{default:j((()=>[m(o,{value:E(l).secret,"onUpdate:value":a[1]||(a[1]=e=>E(l).secret=e),placeholder:""},null,8,["value"])])),_:1})])),_:1},8,["model"])])}}}),tt={class:"p-20px"},lt={class:"flex-1"},nt={class:"mt-12px"},ot={class:"mt-12px"},it={class:"condition-box mt-12px"},rt={class:"flex justify-between items-center mb-16px"},st=h({__name:"ConditionConfig",setup(e,{expose:a}){const l=x("formRef"),n=I({logic_type:"or",rules:[{type:null}]}),o=b([{label:"Campaign activity",value:"campaign"},{label:"Workflow activity",value:"workflow"}]),i=b([]),r=b([]),d=b([{label:"had any link clicked",value:"clicked"},{label:"had a specific link clicked",value:"link_clicked"},{label:"did not have a specific link clicked",value:"link_not_clicked"},{label:"was opened",value:"opened"},{label:"was not opened",value:"not_opened"},{label:"was opened with no links clicked",value:"opened_with_not_clicked"}]),u=e=>({trigger:"change",validator:()=>!!n.rules[e].type||new Error("Please select type")}),c=e=>({trigger:"change",validator:()=>{const a=n.rules[e];return!("campaign"===a.type&&!a.campaign.id)||new Error("Please select campaign")}}),p=e=>({trigger:"change",validator:()=>{const a=n.rules[e];return!!("workflow"!==a.type&&"campaign"!==a.type||a.action)||new Error("Please select action")}}),f=e=>({trigger:"change",validator:()=>{const a=n.rules[e];return!!("workflow"!==a.type&&"campaign"!==a.type||"link_clicked"!==a.action||a.link.url)||new Error("Please input link")}}),y=()=>{n.rules.push({type:null})};return(()=>{if((async()=>{const{message:e}=await v();s(e)&&(i.value=e.map((e=>({value:e.id,data:e,label:e.subject||e.task_name}))))})(),(()=>{const e=re.value.filter((e=>"email"===e.type)).map((e=>pe.value[e.key])).filter((e=>e.complete&&0!==e.id));r.value=e.map((e=>({label:e.name,value:e.id})))})(),de.value){const e=me.value[de.value];n.logic_type=e.logic_type,n.rules=G(e.rules)}})(),a({submit:async()=>{if(await(l.value?.validate()),de.value){const e=me.value[de.value];e.logic_type=n.logic_type,e.rules=G(n.rules),e.complete=!0}}}),(e,a)=>{const s=q,v=B,b=ae,k=ee,h=Z,x=Y,w=H,$=J;return K(),U("div",tt,[m($,{ref_key:"formRef",ref:l,model:E(n)},{default:j((()=>[m(x,{label:"Create a condition"},{default:j((()=>[C("div",lt,[a[6]||(a[6]=C("div",{class:"text-desc"}," Add up to 5 conditions. Define whether any or all of them must be applicable, for the condition to be met. ",-1)),m(v,{value:E(n).logic_type,"onUpdate:value":a[0]||(a[0]=e=>E(n).logic_type=e)},{default:j((()=>[C("div",nt,[m(s,{value:"or"},{default:j((()=>a[1]||(a[1]=[C("div",null,"Any rule",-1),C("div",{class:"mt-8px text-desc"}," Select one or a few conditions where ANY rule can match the criteria. ",-1)]))),_:1,__:[1]})]),C("div",ot,[m(s,{value:"and"},{default:j((()=>a[2]||(a[2]=[C("div",null,"All rules",-1),C("div",{class:"mt-8px text-desc"}," Select one or a few conditions where ALL rules must match the criteria. ",-1)]))),_:1,__:[2]})])])),_:1},8,["value"]),(K(!0),U(_,null,z(E(n).rules,((e,l)=>(K(),U(_,{key:l},[0!==l?(K(),N(b,{key:0,class:"mt-12px!","title-placement":"left"},{default:j((()=>[g(S(E(n).logic_type),1)])),_:1})):D("",!0),C("div",it,[C("div",rt,[a[4]||(a[4]=C("span",null,"Condition",-1)),E(n).rules.length>1?(K(),N(k,{key:0,size:"small",onClick:e=>(e=>{n.rules.splice(e,1)})(l)},{default:j((()=>a[3]||(a[3]=[g("Delete")]))),_:2,__:[3]},1032,["onClick"])):D("",!0)]),m(x,{"show-label":!1,path:`rules[${l}].type`,rule:u(l)},{default:j((()=>[m(h,{value:e.type,options:E(o),"onUpdate:value":e=>((e,a)=>{switch(e){case"campaign":n.rules[a]={type:"campaign",action:null,campaign:{id:null,name:""},link:{url:""}};break;case"workflow":n.rules[a]={type:"workflow",node_id:null,action:null,link:{url:""}}}})(e,l)},null,8,["value","options","onUpdate:value"])])),_:2},1032,["path","rule"]),"campaign"===e.type?(K(),N(x,{key:0,"show-label":!1,path:`rules[${l}].campaign.id`,rule:c(l)},{default:j((()=>[m(h,{value:e.campaign.id,"onUpdate:value":[a=>e.campaign.id=a,(e,a)=>((e,a)=>{t(a.data)&&"campaign"===n.rules[e].type&&(n.rules[e].campaign.name=a.data.subject)})(l,a)],options:E(i)},null,8,["value","onUpdate:value","options"])])),_:2},1032,["path","rule"])):D("",!0),"workflow"===e.type?(K(),N(x,{key:1,"show-label":!1,path:`rules[${l}].workflow.node_id`},{default:j((()=>[m(h,{value:e.node_id,"onUpdate:value":a=>e.node_id=a,options:E(r)},null,8,["value","onUpdate:value","options"])])),_:2},1032,["path"])):D("",!0),"campaign"===e.type&&e.campaign.id||"workflow"===e.type&&e.node_id?(K(),U(_,{key:2},[m(x,{"show-label":!1,path:`rules[${l}].action`,rule:p(l)},{default:j((()=>[m(h,{value:e.action,"onUpdate:value":a=>e.action=a,options:E(d)},null,8,["value","onUpdate:value","options"])])),_:2},1032,["path","rule"]),W(m(x,{"show-label":!1,path:`rules[${l}].link.url`,rule:f(l)},{default:j((()=>[m(w,{value:e.link.url,"onUpdate:value":a=>e.link.url=a,placeholder:"Please input link"},null,8,["value","onUpdate:value"])])),_:2},1032,["path","rule"]),[[T,"link_clicked"===e.action]])],64)):D("",!0)])],64)))),128)),m(k,{class:"mt-12px",size:"small",onClick:y},{default:j((()=>a[5]||(a[5]=[g(" Add another condition ")]))),_:1,__:[5]})])])),_:1})])),_:1},8,["model"])])}}}),dt=r(st,[["__scopeId","data-v-c8dfd4ad"]]),ut=r({},[["render",function(e,a){return K(),U("div")}]]),ct={class:"flow-config"},pt={class:"config-title"},ft={class:"text-14px font-bold"},vt={class:"flex-1 overflow-auto"},yt={class:"config-footer"},bt=r(h({__name:"index",setup(e){const a=b(),t=w((()=>{switch(ue.value){case"trigger":return Fa;case"email":return Ma;case"action":return Xa;case"delay":return Ja;case"webhook":return at;case"condition":return dt;default:return ut}})),l=w((()=>{const e=ue.value;return e?d(e):""})),n=async()=>{await(a.value?.submit?.()),Fe()};return(e,o)=>{const i=ee;return K(),U("div",ct,[C("div",pt,[C("span",ft,S(E(l)),1)]),C("div",vt,[(K(),N($(E(t)),{ref_key:"compRef",ref:a,key:E(se)}))]),C("div",yt,[m(i,{class:"font-bold",size:"large",type:"primary",onClick:n},{default:j((()=>o[0]||(o[0]=[g("Save")]))),_:1,__:[0]})])])}}}),[["__scopeId","data-v-c21ff526"]]),mt={class:"mail-flow"},gt={class:"relative flex flex-1 overflow-auto"},_t={class:"absolute top-16px left-24px z-1000"},kt=h({__name:"index",setup(e){const a=L();a.params.id&&(oe.value=u(a.params.id));const t=O(),l=async()=>{try{await Fe()}finally{setTimeout((()=>{t.go(-1)}),1e3)}},n=async()=>{const{message:e}=await y();ie.value=s(e)?e:[]},o=b(!1);return(async()=>{try{o.value=!0,await Promise.all([n(),qe()]),Me()}finally{o.value=!1}})(),V((()=>{Me(),Ge()})),(e,a)=>{const t=ee,n=te;return K(),N(n,{class:"w-full h-full",show:E(o)},{default:j((()=>[C("div",mt,[C("div",gt,[C("div",_t,[m(t,{size:"large",class:"font-bold",secondary:"",onClick:l},{default:j((()=>a[0]||(a[0]=[g("Save and back")]))),_:1,__:[0]})]),m(Ba),m(bt)])])])),_:1},8,["show"])}}});e("default",r(kt,[["__scopeId","data-v-b7d1832f"]]))}}}));