1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="fb6d2f56-faf7-40de-9bdb-fc7f2defa7d0",e._sentryDebugIdIdentifier="sentry-dbid-fb6d2f56-faf7-40de-9bdb-fc7f2defa7d0")}catch(e){}}();var _global="u">typeof window?window:"u">typeof global?global:"u">typeof self?self:{};_global.SENTRY_RELEASE={id:"57ecc7b471fce630a9a83e03af7702d6977a38be"};"use strict";(self.webpackChunkopus1io=self.webpackChunkopus1io||[]).push([["17617"],{14644:function(e,n,t){var a=t(84577),i=t(74848);function s(){var e=(0,a._)(["\n width: 100%;\n display: flex;\n align-items: center;\n text-align: center;\n margin: 5px 0;\n &::before,\n &::after {\n content: '';\n flex: 1;\n border-bottom: 1px solid #ccc;\n }\n &:not(:empty)::before {\n margin-right: 0.5em;\n }\n &:not(:empty)::after {\n margin-left: 0.5em;\n }\n\n span {\n color: #999;\n }\n"]);return s=function(){return e},e}t(96540);var r=t(17378).Ay.div(s());n.A=e=>{var{text:n}=e;return(0,i.jsx)(r,{children:(0,i.jsx)("span",{children:n})})}},7824:function(e,n,t){t.d(n,{$u:function(){return E},XY:function(){return C}});var a=t(84577);t(60726),t(13467),t(45336),t(23446);var i=t(74848),s=t(96540),r=t(17378),l=t(60597),o=t(15257),c=t(50926);function d(){var e=(0,a._)(["\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n"]);return d=function(){return e},e}function u(){var e=(0,a._)(["\n p:first-child {\n font-family: 'Montserrat', tahoma;\n font-weight: 500;\n color: #525252;\n font-size: 14px;\n margin-bottom: 0.3rem;\n text-align: left !important;\n }\n"]);return u=function(){return e},e}function p(){var e=(0,a._)(["\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0px 7px;\n"]);return p=function(){return e},e}function m(){var e=(0,a._)(["\n display: flex;\n align-items: flex-start;\n margin: 0px 7px;\n gap: 10px;\n"]);return m=function(){return e},e}function g(){var e=(0,a._)(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 2px;\n\n span {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n max-width: 170px;\n font-size: 14px;\n }\n\n label {\n font-size: 10px;\n }\n"]);return g=function(){return e},e}function f(){var e=(0,a._)(["\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n max-width: 70px;\n"]);return f=function(){return e},e}function h(){var e=(0,a._)(["\n margin-right: unset !important;\n"]);return h=function(){return e},e}var v=r.Ay.div(d()),x=r.Ay.div(u()),b=r.Ay.div(p()),y=r.Ay.div(m()),S=r.Ay.div(g()),_=r.Ay.span(f()),T=(0,r.Ay)(l.H8)(h()),A=e=>{var{user:n,route:t}=e;return(0,i.jsxs)(b,{children:[(0,i.jsx)(T,{route:t,showToolTip:!1,size:60,user:n}),(0,i.jsx)(_,{children:n.firstName})]})},E=e=>{var{user:n,route:t}=e;return(0,i.jsxs)(y,{children:[(0,i.jsx)(T,{route:t,showToolTip:!1,size:30,user:n}),(0,i.jsxs)(S,{className:"client-name",children:[(0,i.jsx)("span",{children:n.name}),n.status&&(0,i.jsx)(o.hN,{className:"client-status",children:(0,c.ZH)(n.status.replace("_"," "))})]})]})},C=e=>{var{users:n=[],route:t,idDecorator:a}=e,r=(0,s.useRef)(null),l=e=>{var n=Math.max(-1,Math.min(1,e.wheelDelta||-e.detail));r.current.scrollLeft-=20*n,e.preventDefault()};(0,s.useEffect)(()=>(r.current.addEventListener?(r.current.addEventListener("mousewheel",l,!1),r.current.addEventListener("DOMMouseScroll",l,!1)):r.current.attachEvent("onmousewheel",l),()=>{var e,n,t,a;(null==(e=r.current)?void 0:e.removeEventListener)?(null==(n=r.current)||n.removeEventListener("mousewheel",l,!1),null==(t=r.current)||t.removeEventListener("DOMMouseScroll",l,!1)):null==(a=r.current)||a.detachEvent("onmousewheel",l)}),[]);var o=(n||[]).slice(0,3);return(0,i.jsx)(x,{children:(0,i.jsx)(v,{ref:r,children:o.map((e,n)=>(0,i.jsx)(A,{user:e,route:t,id:"".concat(a?"".concat(a):"avatar-list","-").concat(n)},e.id))})})}},30293:function(e,n,t){t.r(n),t.d(n,{default:function(){return iw}});var a=t(41374),i=t(71893),s=t(84577);t(5409),t(93632),t(45336),t(69861),t(91625),t(34678),t(23446),t(60726),t(79936),t(13467);var r=t(74848),l=t(96540),o=t(61027),c=t.n(o),d=t(52956),u=t(56347),p=t(24930),m=t(17535),g=t(8756),f=t(94035),h=t(20432),v=t(68547),x=t(61336),b=t(71376),y=t(17378),S=t(52556),_=t(38566),T=t(50613),A=t(59769),E=t(48810),C=t(63159),j=t(50926),I=t(21002),w=t(61734),D=t(60469),N=t(36596),M=t(99586);t(89773);var R=t(95093),k=t.n(R),O=t(54625),L=t(94196),F=t(26871),$=t(88583),P=t(20615),W=t(70537),U=t(10436),V=t(26347),G=t(4301),z=t(48623),Y=t(79493),B=t(5556),q=t.n(B),H=t(45237),J=t(42479),X=t(50163);function K(){var e=(0,s._)(["\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n cursor: pointer;\n"]);return K=function(){return e},e}function Q(){var e=(0,s._)(["\n height: 175px;\n "]);return Q=function(){return e},e}function Z(){var e=(0,s._)(["\n width: 100%;\n background-color: #ffffff;\n position: relative;\n margin-bottom: 20px;\n padding: 10px;\n display: flex;\n flex-direction: row;
1\n align-items: center;\n\n ",";\n"]);return Z=function(){return e},e}function ee(){var e=(0,s._)(["\n margin: 0px 15px 0px 0px;\n "]);return ee=function(){return e},e}function en(){var e=(0,s._)(["\n margin: 0px 15px 0px 0px;\n ",";\n"]);return en=function(){return e},e}function et(){var e=(0,s._)(["\n width: 70px;\n height: 70px;\n "]);return et=function(){return e},e}function ea(){var e=(0,s._)(["\n width: 125px;\n height: 125px;\n .CircularProgressbar-path {\n stroke: #8b23b7;\n stroke-linecap: butt;\n transition: stroke-dashoffset 0.5s ease 0s;\n }\n .CircularProgressbar-trail {\n stroke: #d6d6d6;\n }\n .CircularProgressbar-text {\n dominant-baseline: middle;\n stroke: #8b23b7;\n fill: #8b23b7;\n font-size: 25px;\n text-anchor: middle;\n }\n ",";\n"]);return ea=function(){return e},e}function ei(){var e=(0,s._)(["\n flex-grow: 1;\n"]);return ei=function(){return e},e}function es(){var e=(0,s._)(["\n font-size: 1.1em;\n "]);return es=function(){return e},e}function er(){var e=(0,s._)(["\n color: #212121;\n font-size: 1.5em;\n ",";\n"]);return er=function(){return e},e}function el(){var e=(0,s._)(["\n flex-direction: column;\n justify-content: center;\n width: unset;\n "]);return el=function(){return e},e}function eo(){var e=(0,s._)(["\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n ",";\n"]);return eo=function(){return e},e}function ec(){var e=(0,s._)(["\n font-size: 10px;\n min-width: unset;\n margin: 0px 100px 5px 0px !important;\n line-height: 0.05rem;\n .IL-label{\n margin-top: 6px !important;\n }\n "]);return ec=function(){return e},e}function ed(){var e=(0,s._)(["\n font-size: 16px;\n width: 100%;\n min-width: 375px;\n color: ",";\n font-weight: bold;\n cursor: pointer;\n ",";\n"]);return ed=function(){return e},e}function eu(){var e=(0,s._)(["\n position: absolute;\n top: 10px;\n right: 15px;\n\n i {\n font-size: 20px;\n color: #bbb;\n :hover {\n color: #888;\n cursor: pointer;\n }\n }\n"]);return eu=function(){return e},e}function ep(){var e=(0,s._)(["\n cursor: pointer;\n font-size: 0.8rem;\n font-weight: 300;\n"]);return ep=function(){return e},e}var em=y.Ay.button(K()),eg=(0,y.Ay)(X.A)(Z(),P.$_.mobileLg(Q())),ef=y.Ay.div(en(),P.$_.mobileLg(ee())),eh=(0,y.Ay)(H.QF)(ea(),P.$_.mobileLg(et())),ev=y.Ay.div(ei()),ex=y.Ay.h1(er(),P.$_.mobileLg(es())),eb=y.Ay.div(eo(),P.$_.mobileLg(el())),ey=(0,y.Ay)(J.sS)(ed(),e=>e.isCompleted?"#8b23b7":"#d6d6d6",P.$_.mobileLg(ec())),eS=y.Ay.div(eu());y.Ay.span(ep());var e_=e=>{var{completionSteps:n,onHide:t}=e,[a,i]=(0,l.useState)([]),[s,o]=(0,l.useState)(0);return((0,l.useEffect)(()=>{i(n),o((e=>{for(var n=0,t=0,a=0;a<e.length;a+=1)e[a].completed&&(t+=1);return parseInt(100*(t/e.length),10)})(n))},[n]),0===n.length)?null:100!==s?(0,r.jsxs)(eg,{children:[(0,r.jsx)(ef,{children:(0,r.jsx)(eh,{id:"todo-progress",value:s,text:"".concat(s,"%"),strokeWidth:4})}),(0,r.jsxs)(ev,{children:[(0,r.jsx)(ex,{children:100!==s?" Complete setting up your campaign ":" Campaign is all set "}),(0,r.jsx)(eb,{id:"todo-links",className:"mb-2",children:a.map(e=>{var n=e.route?O.N_:em;return(0,r.jsx)(n,{id:"todo-".concat(e.id),href:e.route||e.link,to:e.route||e.link,onClick:e.onClick,children:(0,r.jsx)(ey,{faIcon:e.completed?"check":"times",text:e.title,isCompleted:e.completed})},e.id)})})]}),(0,r.jsx)(eS,{children:(0,r.jsx)("i",{className:"fal fa-times",onClick:()=>t(!0)})})]}):null};e_.propTypes={completionSteps:q().array},e_.defaultProps={completionSteps:[]};var eT=t(78364),eA=t(48689),eE=t(7091),eC=t(69530);function ej(){var e=(0,s._)(["\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n\n width: 100%;\n align-items: flex-start;\n"]);return ej=function(){return e},e}function eI(){var e=(0,s._)(["\n width: 100%;\n "]);return eI=function(){return e},e}function ew(){var e=(0,s._)(["\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-bottom: 10px;\n\n ","\n"]);return ew=function(){return e},e}function eD(){var e=(0,s._)(["\n justify-content: flex-start;\n width: 100%;\n"]);return eD=function(){return e},e}function eN(){var e=(0,s._)(["\n & > div {\n width: 100%;\n }\n\n .btn {\n justify-content: center;\n }\n"]);return eN=function(){return e},e}function eM(){var e=(0,s._)(["\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n width: 100%;\n\n & > * {\n margin-right: 10px;\n // margin-bottom: 10px;\n }\n\n ","\n\n ","\n"]);return eM=function(){return e},e}function eR(){var e=(0,s._)(["\n font-family: 'Montserrat', tahoma;\n font-weight: 300;\n font-size: 28px;\n color: #39364b;\n margin: 0px;\n\n a {\n font-weight: 400;\n }\n"]);return eR=function(){return e},e}function ek(){var e=(0,s._)(["\n border: none;\n background: none;\n padding: 10px 16px 10px 0px;\n min-width: fit-content;\n font-weight: 500;\n cursor: pointer;\n transition: color 200ms;\n\n :hover {\n color: #4149b4;\n }\n"]);return ek=function(){return e},e}function eO(){var e=(0,s._)(["\n width: 100%;\n display: flex;
1\n align-items: center;\n"]);return eO=function(){return e},e}function eL(){var e=(0,s._)(["\n height: 1px;\n width: 100%;\n background: lightgray;\n"]);return eL=function(){return e},e}function eF(){var e=(0,s._)(["\n height: 100%;\n"]);return eF=function(){return e},e}function e$(){var e=(0,s._)(["\n margin-left: 10px;\n"]);return e$=function(){return e},e}function eP(){var e=(0,s._)(["\n display: flex;\n width: 100%;\n "]);return eP=function(){return e},e}function eW(){var e=(0,s._)(["\n display: none;\n\n ","\n"]);return eW=function(){return e},e}function eU(){var e=(0,s._)(["\n display: flex;\n"]);return eU=function(){return e},e}var eV=e=>{var{authz:n}=e;return!n||(0,F.oz)(n.action,n.resource)},eG=y.Ay.div(ej()),ez=y.Ay.div(ew(),P.$_.desktopMd(eI())),eY=y.Ay.div(eM(),P.$_.desktopMd(eD()),P.$_.mobile(eN())),eB=y.Ay.h3(eR()),eq=y.Ay.button(ek()),eH=y.Ay.div(eO()),eJ=y.Ay.div(eL()),eX=(0,y.Ay)(L.animated.div)(eF()),eK=y.Ay.i(e$()),eQ=y.Ay.div(eW(),P.$_.mobile(eP())),eZ=y.Ay.div(eU()),e0=e=>{var n,t,a,{campaign:i,className:s,onSendTestSms:o,onSendTestEmail:c,onDeleteCampaign:u,deletingCampaign:p,onScheduleCampaign:m,schedulingCampaign:g,activatingCampaign:f,onDuplicateCampaign:h,duplicatingCampaign:v,onUpdateCampaignStatus:x,updatingCampaignStatus:b,onSetActiveTab:y,showHeaderStats:S}=e,A=(0,d.useSelector)(e=>e.app.business.name),E=(0,d.useSelector)(e=>e.app.business.timezone),{mediaSize:j}=(0,l.useContext)(P.uB),[I,w]=(0,eC.A)("campaign:".concat(i.id,":hideProgress"),!1),{data:N,loading:M}=(0,T.A)({query:C.aN,variables:{business:A},processor:e=>{var n;return null==e||null==(n=e.business)?void 0:n.emailDomains},skip:!i.sendEmail}),R=(null==N||null==(n=N[0])?void 0:n.status)==="verified",B=i.sendEmail&&!R;M&&(B=!1);var[q,{loading:H}]=(0,_.A)(C.Sd,{successMessage:"Campaign audience has been synced.",failureMessage:"Failed to sync campaign audience."}),[J,X]=(0,l.useState)(j===P.ty),K=j===P.ty?D.A:G.wl,Q=j===P.ty?"btn btn-primary rounded btn-icon w-100p":"rounded-sm",Z=j===P.ty?"fal":"fas";(0,l.useEffect)(()=>{j!==P.ty&&X(!1)},[j]);var ee=g||f||p||v||b,en=[{title:"Schedule Campaign",id:"schedule-campaign-button",icon:"calendar-alt",onClick:m,cond:e=>[V.iR].includes(e.status)&&e.campaignType===V.y2,tooltip:"Please ensure all campaign settings are fully configured before scheduling the campaign.",loading:g},{title:"Activate Campaign",id:"activate-campaign-button",icon:"play",onClick:m,cond:e=>[V.iR,V.I6].includes(e.status)&&e.campaignType===V.NK,tooltip:"Please ensure all campaign settings are fully configured before activating the campaign.",loading:f},{title:"Send Test Email",id:"send-test-button",icon:"envelope",onClick:c,cond:e=>[V.iR,V.g8].includes(e.status)&&e.sendEmail&&e.emailTemplate,tooltip:"Send a test email to selected staff"},{title:"Send Test SMS",id:"send-test-sms-button",icon:"sms",onClick:o,cond:e=>[V.iR,V.g8].includes(e.status)&&e.sendSms&&e.smsTemplate,tooltip:"Send a test SMS to selected staff"},{title:"Pause Campaign",id:"pause-campaign-button",icon:"pause",onClick:()=>x({status:V.Hr,successMessage:"Campaign is now paused."}),cond:e=>![V.Hr,V.kV,V.m8,V.iR].includes(e.status)&&e.campaignType===V.y2,tooltip:"Paused campaign will not send any notifications. Can be scheduled later when needed.",loading:b},{title:"Deactivate Campaign",id:"deactivate-campaign-button",icon:"stop",onClick:()=>x({status:V.I6,successMessage:"Campaign is now deactivated."}),cond:e=>![V.I6,V.kV,V.m8,V.iR].includes(e.status)&&e.campaignType===V.NK,tooltip:"Deactivated campaign will not send any notifications. Can be activated later when needed.",loading:b},{title:"Resume Campaign",id:"resume-campaign-button",icon:"play",onClick:()=>x({status:V.g8,successMessage:"Campaign is now resumed and scheduled."}),cond:e=>[V.Hr].includes(e.status)&&e.campaignType===V.y2,tooltip:"Campaign will be resumed, and will be processed on it's scheduled date.",loading:b},{title:"Activate Campaign",id:"activate-campaign-button",icon:"play",onClick:()=>x({status:V.iR,successMessage:"Campaign is now activated."}),cond:e=>[V.m8].includes(e.status),loading:b},{title:"Cancel Campaign",id:"cancel-campaign-button",icon:"ban",onClick:()=>x({status:V.m8,successMessage:"Campaign is now canceled."}),cond:e=>![V.kV,V.m8].includes(e.status)&&e.campaignType===V.y2,tooltip:"
1Campaigns canceled will not send any notifications. Can be activated later.",loading:b},{title:"Duplicate Campaign",id:"duplicate-campaign-button",icon:"copy",onClick:h,cond:()=>!0,tooltip:"Duplicate this campaign",loading:v},{title:"Delete Campaign",id:"delete-campaign-button",icon:"trash-alt",onClick:u,cond:e=>e.status!==V.e4,tooltip:"Delete this campaign",loading:p}],et=(0,l.useMemo)(()=>{var e,n,t,a=[B&&{title:"Add and verify your email domain",completed:R,id:"verify-email-domain",route:(0,F.oz)(eA.ACTION_UPDATE,eE.RESOURCE_SELF_BUSINESS)?"/business/".concat(A,"/edit#Integrations"):null}];switch(i.campaignType){case V.y2:a.push({title:"Set a schedule date and time",completed:i.scheduledAt&&[V.g8,V.kV,V.ol].includes(null==i?void 0:i.status)||k()().isBefore(null==i?void 0:i.scheduledAt),id:"campaign-scheduled-at",onClick:()=>y("Details")},{title:"Setup audience criteria",completed:(null==i||null==(e=i.criteria)?void 0:e.length)>0,id:"campaign-criteria",onClick:()=>y("Audience")},{title:"Schedule campaign",completed:(null==i?void 0:i.status)===V.g8,id:"campaign-schedule",onClick:m,disabled:!(null==i?void 0:i.scheduledAt)||!(null==i?void 0:i.criteria.length)},{title:"Enable email notification",completed:null==i?void 0:i.sendEmail,id:"campaign-send-email-or-sms",onClick:()=>y("Details"),show:!(null==i?void 0:i.sendEmail)&&!(null==i?void 0:i.sendSms)},{title:"Select campaign email template",completed:(null==i?void 0:i.sendEmail)&&(null==i?void 0:i.emailTemplate),id:"campaign-email-template",onClick:()=>y("Details"),show:null==i?void 0:i.sendEmail},{title:"Select campaign sms template",completed:(null==i?void 0:i.sendSms)&&(null==i?void 0:i.smsTemplate),id:"campaign-sms-template",onClick:()=>y("SMS Template"),show:null==i?void 0:i.sendSms});break;
1case V.NK:a.push({title:"Setup audience criteria",completed:(null==i||null==(n=i.criteria)?void 0:n.length)>0,id:"campaign-criteria",onClick:()=>y("Stages")},{title:"Create campaign stages",completed:(null==i||null==(t=i.stageDefinitions)?void 0:t.length)>1,id:"campaign-stages",onClick:()=>y("Stages")},{title:"Activate campaign",completed:(null==i?void 0:i.status)!==V.iR,id:"campaign-criteria",onClick:()=>y("Stages")});break;default:throw Error("Unknown campaign type")}return a.filter(Boolean)},[A,i,R,m,y,B]),ea=(0,$.A)(i);return(0,r.jsxs)(eG,{className:s,children:[(0,r.jsx)(ez,{children:(0,r.jsxs)("div",{className:"d-flex flex-row align-items-center",children:[(0,r.jsxs)(eB,{className:"campaign-title",children:[(0,r.jsx)(O.N_,{to:"/campaigns",className:"campaign-title-link",children:"All Campaigns > "}),i.name]}),i.hiddenAt&&(0,r.jsx)(U.A,{warningTooltip:"Warning: This campaign has been deleted on ".concat(k()(i.hiddenAt).tz(E).format("LLL"),"."),children:"Deleted campaign"})]})}),(0,r.jsx)(eQ,{children:(0,r.jsxs)(eH,{children:[(0,r.jsxs)(eq,{onClick:()=>X(!J),onMouseDown:e=>e.preventDefault(),id:"campaign-editor-quick-actions",children:[J?"Show quick actions ":"Hide quick actions ",(0,r.jsx)(eK,{className:"fa ".concat(J?"fa-chevron-down":"fa-chevron-up"),"aria-hidden":"true"})]}),(0,r.jsx)(eJ,{className:"separator-line"})]})}),(0,r.jsx)(L.Spring,{native:!0,force:!0,from:{height:J?0:"auto",overflow:J?"hidden":"unset"},to:{height:J?0:"auto",overflow:J?"hidden":"unset"},children:e=>(0,r.jsx)(eX,{style:e,children:(0,r.jsx)(eY,{children:en.filter(eV).filter(e=>e.cond(i)).map(e=>(0,r.jsxs)(K,{id:e.id,className:"d-flex ".concat(Q),route:e.route,onClick:e.onClick,loading:e.loading,disabled:e.disabled||ee,disabledReason:e.disabledReason,tooltip:e.tooltip,children:[(0,r.jsx)(W.A,{iconClass:"".concat(Z," fa-").concat(e.icon," d-inline-block mr-1")}),e.title]},e.id))})})}),S&&(0,r.jsxs)(z.A,{className:"mt-0 mb-0 w-100p",children:[(0,r.jsx)(Y.A,{bg:"primary",faIcon:"fas fa-flag",tooltip:"",text:"Status",number:V.fH[ea]}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"fas fa-users",tooltip:i.status!==V.kV?"Please note that the displayed audience count may not be up-to-date. To ensure the latest count, click the 'Refresh' icon.":"",text:"Total Audience",linkTo:i.campaignType===V.y2?"/campaigns/".concat(i.id,"/edit#Audience"):"/campaigns/".concat(i.id,"/edit#Stages"),number:(0,r.jsxs)(eZ,{children:[i.numberAudience,i.status!==V.kV&&(0,r.jsx)(eT.A,{onClick:e=>{e.preventDefault(),q({variables:{business:A,campaignId:i.id}})},loading:H,children:!H&&(0,r.jsx)(W.A,{farIcon:"refresh",className:"ml-1"})})]})}),null!==i.numberSubscriptions&&(0,r.jsx)(Y.A,{bg:"primary",faIcon:"fas fa-users",text:"Total Subscriptions",linkTo:i.campaignType===V.y2?"/campaigns/".concat(i.id,"/edit#Audience"):"/campaigns/".concat(i.id,"/edit#Stages"),number:i.numberSubscriptions}),i.campaignType===V.y2?(0,r.jsx)(Y.A,{bg:"primary",faIcon:"fas fa-filter",tooltip:"",text:"Criteria",number:(null==(t=i.criteria)?void 0:t.length)||0}):(0,r.jsx)(Y.A,{bg:"primary",faIcon:"fas fa-bars-progress",tooltip:"",text:"Stages",number:(null==(a=i.stageDefinitions)?void 0:a.length)||0})]}),i.status===V.iR&&!I&&(0,r.jsx)(e_,{completionSteps:et,onHide:()=>w(!0)})]})},e1=t(78258),e2=t(2111),e3=t(94222),e5=t(78223),e4=t(88853);function e6(){var e=(0,s._)(["\n query paginatedCampaignActivities(\n $objectId: ID\n $business: String!\n $limit: Int\n $cursor: Cursor\n ) {\n paginatedActivities(\n objectId: $objectId\n business: $business\n limit: $limit\n cursor: $cursor\n ) {\n business\n activities {\n ...activityDetails\n }\n cursor\n }\n }\n ","\n"]);return e6=function(){return e},e}var e7=(0,e1.J1)(e6(),e5.i),e8=e=>{var{campaignId:n}=e,t=(0,d.useSelector)(e=>e.app.business.name),{items:a,loading:i,loadMore:s,canLoadMore:l}=(0,e3.A)({query:e7,variables:{business:t,objectId:n,limit:30},itemName:"activities",getPaginationObject:e=>e.data.paginatedActivities}),[o]=(0,e2.A)({loadingActivities:i,hasNextPage:l,onLoadMore:s});return(0,r.jsxs)("div",{children:[(0,r.jsx)(e4.A,{noActivitiesMessage:"No activities found",activities:a,loading:i}),l&&(0,r.jsx)("div",{className:"width-100 height-10",ref:o})]})},e9=t(55456),ne=t(98668),nn=t(43627),nt=t(60080),na=t(50109),ni=t(44495),ns=t(6251),nr=t(16517),nl=t(44123),no=t(12163),nc=t(5792),nd=t(90301),nu=t(59742),np=t(61179),nm=(0,l.createContext)({campaign:null,stages:[],canEditStageDefinitions:!1,addStageDefinition:()=>{},updateStageDefinition:()=>{},deleteStageDefinition:()=>{},toggleStageModal:()=>{}}),ng=t(81326),nf=t(27045),nh=t(31399),nv=t(53894),nx=t(39041),nb=t(55179),ny=t(20452);function nS(){var e=(0,s._)(["\n // width: 100%;\n .react-time-picker__inputGroup__hour {\n width: 2ch !important;\n }\n .react-time-picker__inputGroup__minute {\n width: 2ch !important;\n }\n"]);return nS=function(){return e},e}function n_(){var e=(0,s._)(["\n mutation addStageDefinitionMutation(\n $business: String!\n $campaignId: ID!\n $stage: CampaignStageDefinitionInput!\n ) {\n addCampaignStageDefinition(\n business: $business\n campaignId: $campaignId\n stage: $stage\n ) {\n status\n error\n campaign {\n id\n stageDefinitions(includeHidden: true) {\n ...campaignStageDefinitionFragment\n }\n }\n }\n }\n\n ","\n"]);return n_=function(){return e},e}function nT(){var e=(0,s._)(["\n mutation updateStageDefinitionMutation(\n $business: String!\n $campaignId: ID!\n $stageId: ID!\n $stage: CampaignStageDefinitionInput!\n ) {\n updateCampaignStageDefinition(\n business: $business\n campaignId: $campaignId\n stage: $stage\n stageId: $stageId\n ) {\n status\n error\n campaign {\n id\n stageDefinitions(includeHidden: true) {\n ...campaignStageDefinitionFragment\n }\n }\n }\n }\n\n ","\n"]);return nT=function(){return e},e}function nA(){var e=(0,s._)(["\n width: 100%;\n"]);return nA=function(){return e},e}var nE=(0,y.Ay)(nh.A)(nS()),nC=(0,e1.J1)(n_(),C.On),nj=(0,e1.J1)(nT(),C.On),nI=function(){var{stage:e,stageType:n,prospectLostStatus:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};switch(n){case V.TJ:return{id:null==e?void 0:e.id,name:(null==e?void 0:e.name)||"",sendEmail:null==e||!e.id||(null==e?void 0:e.sendEmail),emailTemplate:(null==e?void 0:e.emailTemplate)||null,emailSubject:(null==e?void 0:e.emailSubject)||"",sendSms:(null==e?void 0:e.sendSms)||!1,smsTemplate:(null==e?void 0:e.smsTemplate)||null,smsLocation:(null==e?void 0:e.smsLocation)||null,executionWindowEnabled:!!((null==e?void 0:e.executionWindowStartTime)&&(null==e?void 0:e.executionWindowEndTime)),executionWindow:{startTime:(null==e?void 0:e.executionWindowStartTime)||"09:00",endTime:(null==e?void 0:e.executionWindowEndTime)||"12:00"}};case V.Rq:return{id:null==e?void 0:e.id,name:(null==e?void 0:e.name)||""};case V.Ox:return{id:null==e?void 0:e.id,name:(null==e?void 0:e.name)||"Wait for 1 day",delay:(null==e?void 0:e.delayHours)?{days:Math.floor(e.delayHours/24),hours:e.delayHours%24}:{days:1,hours:0}};case V.Ej:return{id:null==e?void 0:e.id,name:(null==e?void 0:e.name)||"Due for call"};case V.t0:var a=(null==e?void 0:e.triggerAction)===V.mD;return{id:null==e?void 0:e.id,name:(null==e?void 0:e.name)||"",triggerAction:a?V.Eo:(null==e?void 0:e.triggerAction)||V.Eo,triggerDestinationStatus:a?t||null:(null==e?void 0:e.triggerDestinationStatus)||null};case V.np:return{id:null==e?void 0:e.id,loopToStageId:(null==e?void 0:e.loopToStageId)||null,loopMaxRepeats:(null==e?void 0:e.loopMaxRepeats)||null};default:throw Error()}},nw=[{name:"Email / SMS",value:V.TJ},{name:"Manual action",value:V.Rq},{name:"Delay",value:V.Ox},{name:"Due for call",value:V.Ej},{name:"Trigger",value:V.t0}
1,{name:"Loop back",value:V.np}],nD={[V.TJ]:{reducer:(e,n)=>{switch(n.type){case"SET_NAME":return(0,e9._)((0,i._)({},e),{name:n.payload});case"SET_SEND_EMAIL":return(0,e9._)((0,i._)({},e),{sendEmail:n.payload});case"SET_EMAIL_TEMPLATE":return(0,e9._)((0,i._)({},e),{emailTemplate:n.payload});case"SET_EMAIL_SUBJECT":return(0,e9._)((0,i._)({},e),{emailSubject:n.payload});case"SET_SEND_SMS":return(0,e9._)((0,i._)({},e),{sendSms:n.payload});case"SET_SMS_TEMPLATE":return(0,e9._)((0,i._)({},e),{smsTemplate:n.payload});case"SET_SMS_LOCATION":return(0,e9._)((0,i._)({},e),{smsLocation:n.payload});case"SET_EXECUTION_WINDOW_ENABLED":return(0,e9._)((0,i._)({},e),{executionWindowEnabled:n.payload});case"SET_EXECUTION_WINDOW_NOT_BEFORE":return(0,e9._)((0,i._)({},e),{executionWindow:(0,e9._)((0,i._)({},e.executionWindow),{startTime:n.payload})});case"SET_EXECUTION_WINDOW_NOT_AFTER":return(0,e9._)((0,i._)({},e),{executionWindow:(0,e9._)((0,i._)({},e.executionWindow),{endTime:n.payload})});case"RESET_STATE":return nI({stage:n.payload,stageType:V.TJ});default:throw Error()}},validate:e=>{if(!e.name||e.sendEmail&&!e.emailTemplate||e.sendEmail&&!e.emailSubject||e.sendSms&&!e.smsTemplate||!e.sendEmail&&!e.sendSms)return!1;if(e.executionWindowEnabled){var{startTime:n,endTime:t}=e.executionWindow||{};if(!n||!t)return!1;var a=k()().set({hour:n.split(":")[0],minute:n.split(":")[1]});if(3>k()().set({hour:t.split(":")[0],minute:t.split(":")[1]}).diff(a,"hours"))return!1}return!0},getFormFields:e=>{var{dispatch:n}=e;return{name:{Renderer:e=>{var{value:t,isDisabled:a}=e;return(0,r.jsx)(no.A,{onChange:e=>{n({type:"SET_NAME",payload:e.target.value})},field:{id:"stage-name",title:"Name",icon:"tag",placeholder:"Enter stage name",value:t},disabled:a})},dispatchType:"SET_NAME",props:{},validate:e=>e?null:"Stage name is required"},sendEmail:{Renderer:e=>{var{value:t,isDisabled:a}=e;return(0,r.jsx)(nd.RF,{dispatch:n,dispatchType:"SET_SEND_EMAIL",value:t,disabled:a,className:"mb-3",inputId:"send-email",title:"Send Email",description:"Send an Email to the audience. This will use the email template selected below."})},dispatchType:"SET_SEND_EMAIL",props:{}},emailSubject:{Renderer:e=>{var{value:t,isDisabled:a}=e;return(0,r.jsx)(nd.lV,{dispatch:n,value:t,isDisabled:a})},dispatchType:"SET_EMAIL_SUBJECT",props:{},hiddenWhen:e=>!e.sendEmail},emailTemplate:{Renderer:e=>{var{value:t,isDisabled:a,campaignId:i,campaignStageDefinitionId:s}=e;return(0,r.jsx)(nd.Lk,{dispatch:n,value:t,dispatchType:"SET_EMAIL_TEMPLATE",title:"Email Template",description:(0,r.jsx)(nd.$N,{width:window.innerWidth-100,height:window.innerHeight,url:"/templates/create-email?closeOnSave=true",subtitle:"or select an existing template above.",children:"Create new"}),templateType:nr.Bv,className:"mb-3",campaignId:i,campaignStageDefinitionId:s,isDisabled:a})},dispatchType:"SET_EMAIL_TEMPLATE",props:{},hiddenWhen:e=>!e.sendEmail},sendSms:{Renderer:e=>{var{value:t,isDisabled:a}=e;return(0,r.jsx)(nd.RF,{dispatch:n,dispatchType:"SET_SEND_SMS",value:t,title:"Send SMS",description:"Send an SMS to the audience. This will use the SMS template selected below.",inputId:"send-sms",disabled:a})},dispatchType:"SET_SEND_SMS",props:{},hiddenWhen:(e,n)=>!(null==n?void 0:n.smsFeatureEnabled)},smsLocation:{Renderer:e=>{var{value:t,isDisabled:a}=e;return(0,r.jsx)(nd.LN,{dispatch:n,value:t,isDisabled:a})},dispatchType:"SET_SMS_LOCATION",props:{},hiddenWhen:e=>!e.sendSms},smsTemplate:{Renderer:e=>{var{value:t,isDisabled:a,campaignId:i,campaignStageDefinitionId:s}=e;return(0,r.jsx)(nd.Lk,{dispatch:n,dispatchType:"SET_SMS_TEMPLATE",title:"SMS Template",value:t,description:(0,r.jsx)(nd.$N,{width:window.innerWidth-100,height:window.innerHeight,url:"/templates/create-sms?closeOnSave=true",subtitle:"or select an existing template above.",children:"Create new"}),templateType:nr.iN,className:"mb-3",campaignId:i,campaignStageDefinitionId:s,isDisabled:a})},dispatchType:"SET_SMS_TEMPLATE",props:{},hiddenWhen:e=>!e.sendSms},executionWindowEnabled:{Renderer:e=>{var{value:t,isDisabled:a}=e;return(0,r.jsx)(nd.RF,{dispatch:n,dispatchType:"SET_EXECUTION_WINDOW_ENABLED",value:t,title:(0,r.jsxs)("div",{className:"d-flex",children:["Execution window",(0,r.jsx)(nx.A,{content:"If set, stage will only be executed within the specified time window.",children:(0,r.jsx)("div",{className:"ml-2 opus1io-text-warning",children:(0,r.jsx)(W.A,{fasIcon:"info-circle"})})})]}),inputId:"execution-window-enabled",disabled:a})}},executionWindow:{Renderer:e=>{var{value:t,isDisabled:a}=e,i=(0,nv.A)(),{startTime:s,endTime:l}=t||{},o=s?i().set({hour:s.split(":")[0],minute:s.split(":")[1]}):null,c=l?i().set({hour:l.split(":")[0],minute:l.split(":")[1]}):null,d=o&&c&&3>c.diff(o,"hours");return(0,r.jsx)(no.A,{field:{errors:d&&["Execution window must be at least 3 hours"]},children:(0,r.jsxs)("div",{className:"d-flex align-items-center justify-space-between",children:[(0,r.jsx)("span",{className:"mr-2",children:"From"}),(0,r.jsx)(nE,{onChange:e=>{n({type:"SET_EXECUTION_WINDOW_NOT_BEFORE",payload:e})},value:o,disableClock:!0,clearIcon:null,maxDetail:"minute",disabled:a}),(0,r.jsx)("span",{className:"mx-2",children:"to"}),(0,r.jsx)(nE,{onChange:e=>{n({type:"SET_EXECUTION_WINDOW_NOT_AFTER",payload:e})},value:c,disableClock:!0,clearIcon:null,maxDetail:"minute",disabled:a})]})})},hiddenWhen:e=>!e.executionWindowEnabled},info:{Renderer:()=>(0,r.jsx)(nf.c,{text:"Copy of the chosen templates will be created and assigned to this campaign."})}}}},[V.Rq]:{reducer:(e,n)=>{switch(n.type){case"SET_NAME":return(0,e9._)((0,i._)({},e),{name:n.payload});case"SET_REQUIRED":return(0,e9._)((0,i._)({},e),{required:n.payload});case"SET_DROPDOWN_OPTIONS":return(0,e9._)((0,i._)({},e),{dropdownOptions:n.payload});case"RESET_STATE":return nI({stage:n.payload,stageType:V.Rq});default:throw Error()}},validate:e=>!!e.name,getFormFields:e=>{var{dispatch:n}=e;
1return{name:{Renderer:e=>{var{value:t,isDisabled:a}=e;return(0,r.jsx)(no.A,{onChange:e=>{n({type:"SET_NAME",payload:e.target.value})},field:{id:"stage-name",title:"Name",icon:"tag",placeholder:"Enter stage name",value:t},disabled:a})},props:{},validate:e=>e?null:"Stage name is required"}}}},[V.Ox]:{reducer:(e,n)=>{switch(n.type){case"SET_NAME":return(0,e9._)((0,i._)({},e),{name:n.payload});case"SET_DELAY":return(0,e9._)((0,i._)({},e),{delay:n.payload});case"RESET_STATE":return nI({stage:n.payload,stageType:V.Ox});default:throw Error()}},validate:e=>!!e.name&&!!e.delay,getFormFields:e=>{var{dispatch:n}=e;return{name:{Renderer:e=>{var{value:t}=e;return(0,r.jsx)(no.A,{onChange:e=>{n({type:"SET_NAME",payload:e.target.value})},field:{id:"stage-name",title:"Name",icon:"tag",placeholder:"Enter stage name",value:t},disabled:!0})},props:{},validate:e=>e?null:"Stage name is required"},delay:{Renderer:e=>{var{value:t,isDisabled:a}=e;return(0,r.jsx)(np.$z,{schema:{title:"Delay"},name:"delay-duration",formData:t,onChange:e=>{var{days:t,hours:a}=e;0===t&&0===a&&(t=0,a=1),n({type:"SET_DELAY",payload:{days:t,hours:a}}),n({type:"SET_NAME",payload:"Wait for ".concat(t," ").concat(1===t?"day":"days"," and ").concat(a," ").concat(1===a?"hour":"hours")})},uiSchema:{},errorSchema:{},disabled:a})},dispatchType:"SET_DELAY",props:{}}}}},[V.Ej]:{reducer:(e,n)=>{switch(n.type){case"SET_NAME":return(0,e9._)((0,i._)({},e),{name:n.payload});case"RESET_STATE":return nI({stage:n.payload,stageType:V.Ej});default:throw Error()}},validate:e=>!!e.name,getFormFields:e=>{var{dispatch:n}=e;return{name:{Renderer:e=>{var{value:t}=e;return(0,r.jsx)(no.A,{onChange:e=>{n({type:"SET_NAME",payload:e.target.value})},field:{id:"stage-name",title:"Name",icon:"tag",placeholder:"Enter stage name",value:t},disabled:!0})},props:{},validate:e=>e?null:"Stage name is required"}}}},[V.t0]:{reducer:(e,n)=>{switch(n.type){case"SET_NAME":return(0,e9._)((0,i._)({},e),{name:n.payload});case"SET_TRIGGER_ACTION":return(0,e9._)((0,i._)({},e),{triggerAction:n.payload});case"SET_TRIGGER_DESTINATION_STATUS":return(0,e9._)((0,i._)({},e),{triggerDestinationStatus:n.payload});case"RESET_STATE":return nI({stage:n.payload,stageType:V.t0,prospectLostStatus:n.prospectLostStatus});default:throw Error()}},validate:e=>!!e.name&&!!e.triggerAction&&(e.triggerAction!==V.Eo||!!e.triggerDestinationStatus),getFormFields:e=>{var{dispatch:n}=e;return{name:{Renderer:e=>{var{value:t,isDisabled:a}=e;return(0,r.jsx)(no.A,{onChange:e=>{n({type:"SET_NAME",payload:e.target.value})},field:{id:"stage-name",title:"Name",icon:"tag",placeholder:"Enter stage name",value:t},disabled:a})},props:{},validate:e=>e?null:"Stage name is required"},triggerAction:{Renderer:e=>{var{value:t,formData:a,isDisabled:i}=e;return(0,r.jsx)(nu.CD,{title:"Trigger options",children:(0,r.jsx)(ns.Ay,{id:"react-select-stage-trigger-type",classNamePrefix:"react-select",instanceId:"stage-trigger-type",isSearchable:!1,getOptionLabel:e=>e.name,getOptionValue:e=>e.value,value:V.TD.find(e=>e.value===t),onChange:e=>{n({type:"SET_TRIGGER_ACTION",payload:e.value}),a.name||n({type:"SET_NAME",payload:e.name})},options:V.TD,components:{Option:nc.A},isDisabled:i})})},dispatchType:"SET_TRIGGER_ACTION",props:{}},triggerDestinationStatus:{Renderer:e=>{var{value:t,isDisabled:a,clientStatuses:i}=e,s=(0,ng.o)(i||[]);return(0,r.jsx)(nu.CD,{title:"Destination status",className:"mt-3",children:(0,r.jsx)(ns.Ay,{id:"react-select-".concat(nl.sA),classNamePrefix:"react-select",instanceId:nl.sA,isSearchable:!0,getOptionLabel:e=>e.label,getOptionValue:e=>e.value,value:s.find(e=>e.value===t),onChange:e=>{n({type:"SET_TRIGGER_DESTINATION_STATUS",payload:(null==e?void 0:e.value)||null})},options:s,components:{Option:nc.A},isDisabled:a})})},hiddenWhen:e=>e.triggerAction!==V.Eo,props:{}}}}},[V.np]:{reducer:(e,n)=>{switch(n.type){case"SET_LOOP_TO_STAGE_ID":return(0,e9._)((0,i._)({},e),{loopToStageId:n.payload});case"SET_LOOP_MAX_REPEATS":return(0,e9._)((0,i._)({},e),{loopMaxRepeats:n.payload});case"RESET_STATE":return nI({stage:n.payload,stageType:V.np});default:throw Error()}},validate:e=>!!e.loopToStageId,getFormFields:e=>{var{dispatch:n}=e;return{loopToStageId:{Renderer:e=>{var{value:t,stages:a,isDisabled:i}=e;return(0,r.jsx)(nu.CD,{title:"Stage",children:(0,r.jsx)(ns.Ay,{isClearable:!0,isSearchable:!0,id:"react-select-stage-loop-back-stage",classNamePrefix:"react-select",instanceId:"stage-loop-back-stage",getOptionLabel:e=>e.name,getOptionValue:e=>e.value,value:a.find(e=>e.id===t),onChange:e=>n({type:"SET_LOOP_TO_STAGE_ID",payload:null==e?void 0:e.value}),options:a.filter(e=>![V.np].includes(e.stageType)).map(e=>({name:e.name,value:e.id})),components:{Option:nc.A},isDisabled:i})})},dispatchType:"SET_STAGE_ID",props:{}},loopMaxRepeats:{Renderer:e=>{var{value:t,isDisabled:a}=e;return(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)(nb.A,{schema:{title:"Max repeats",subtitle:"Will repeat endlessly if not set."},uiSchema:{"ui:placeholder":"Max repeats","ui:field":nb.A,"ui:options":{minValue:1,disabledValue:null,enabledValue:1,Field:ny.A,toggleId:"toggle-wrapper-cleanup-duration-minutes",id:"cleanup-duration-minutes"}},formData:t,onChange:e=>{n({type:"SET_LOOP_MAX_REPEATS",payload:e})},disabled:a})})},dispatchType:"SET_LOOP_MAX_REPEATS",props:{}}}}}},nN=(0,y.Ay)(ns.Ay)(nA());function nM(e){var{isOpen:n,toggle:t,stage:s,campaignId:o,isReadOnly:c,modalName:u}=e,{stages:f}=(0,l.useContext)(nm),h=(0,d.useSelector)(e=>e.app.business.name),v=(0,d.useSelector)(e=>e.app.business.smsFeatureEnabled),x=(0,d.useSelector)(e=>e.app.business.clientStatuses),b=(0,d.useSelector)(e=>e.app.business.prospectLostStatus),[y,{loading:S}]=(0,_.A)(nC,{successMessage:"Stage added successfully",errorMessage:"Failed to add stage"}),[T,{loading:A}]=(0,_.A)(nj,{successMessage:"Stage updated successfully",errorMessage:"Failed to update stage"}),[E,C]=(0,l.useState)((null==s?void 0:s.stageType)||V.TJ),{reducer:I,validate:w,getFormFields:M}=nD[E],[R,k]=(0,l.useReducer)(I,nI({stage:s,stageType:E,prospectLostStatus:b})),O=M({dispatch:k}),L={smsFeatureEnabled:v,stages:f,campaignId:o,campaignStageDefinitionId:null==s?void 0:s.id,isCreate:!(null==s?void 0:s.id),clientStatuses:x},F=!!(null==s?void 0:s.id),$="Add Stage";return c?$="Stage Detail":s&&!c&&($="Update Stage"),(0,r.jsxs)(N.A,{isOpen:n,toggle:t,modal
1Name:u,children:[(0,r.jsx)(p.A,{children:$}),(0,r.jsxs)(m.A,{children:[(0,r.jsx)(no.A,{field:{id:"stage-type",title:"Stage type",faIcon:"cog",errors:[]},children:(0,r.jsx)(nN,{id:"react-select-".concat(nl.XN),classNamePrefix:"react-select",instanceId:nl.XN,value:nw.find(e=>e.value===E),isSearchable:!1,onChange:e=>{C(e.value),k({type:"RESET_STATE",payload:s&&(s.stageType===e.value?s:{id:s.id}),prospectLostStatus:b})},getOptionLabel:e=>e.name,options:nw,components:{Option:nc.A},isDisabled:c})}),Object.keys(O).map(e=>{var{Renderer:n,props:t,hiddenWhen:a}=O[e];return a&&a(R,L)?null:(0,r.jsx)(l.Fragment,{children:n((0,e9._)((0,i._)({},t,L),{value:R[e],formData:R,isDisabled:c}))},e)})]}),(0,r.jsxs)(g.A,{children:[(0,r.jsx)(D.A,{id:"campaign-criteria-cancel",className:"btn btn-secondary rounded",onClick:t,children:c?"Close":"Cancel"}),!c&&(0,r.jsx)(D.A,{id:"add-stage-button",className:"btn btn-primary rounded",onClick:()=>(0,a._)(function*(){var e,n,a,r,l,c,d=(e=(0,e9._)((0,i._)({},R),{stageType:E}),n={business:h,campaignId:o,stageId:null==s?void 0:s.id},!(c=(0,i._)({},e)).sendEmail&&c.emailTemplate&&(c.emailTemplate=null),!c.sendSms&&c.smsTemplate&&(c.smsTemplate=null),c.emailTemplate?(c.emailTemplateId=c.emailTemplate.id,delete c.emailTemplate):c.emailTemplateId=nr.M_,c.smsTemplate?(c.smsTemplateId=c.smsTemplate.id,delete c.smsTemplate):c.smsTemplateId=nr.M_,(null==(a=c.smsLocation)?void 0:a.type)==="location"?(c.smsLocationId=c.smsLocation.id,delete c.smsLocation):c.smsLocationId=nr.M_,c.executionWindowEnabled&&(null==(r=c.executionWindow)?void 0:r.startTime)&&(null==(l=c.executionWindow)?void 0:l.endTime)&&(c.executionWindowStartTime=c.executionWindow.startTime,c.executionWindowEndTime=c.executionWindow.endTime),delete c.executionWindowEnabled,delete c.executionWindow,c.delay&&(c.delayHours=24*c.delay.days+c.delay.hours,delete c.delay),delete c.emailTemplate,delete c.smsTemplate,delete c.smsLocation,c.stageType!==V.t0&&(delete c.triggerAction,delete c.triggerDestinationStatus),{variables:(0,i._)({stage:(0,i._)({},c)},n)});try{yield(F?T:y)((0,e9._)((0,i._)({},d),{update:(e,n)=>{var t,a;(null==(a=n.data)||null==(t=a[F?"updateCampaignStageDefinition":"addCampaignStageDefinition"])?void 0:t.status)==="ok"&&(e.evict({id:"Campaign:".concat(o),fieldName:"stages"}),e.gc())}})),t()}catch(e){(0,j.Fk)(e)}})(),loading:S||A,disabled:!w(R)||S||A,children:F?"Update":"Create"})]})]})}var nR=t(74979),nk=t(74728),nO=t.n(nk),nL=t(82541),nF=t(7926),n$=t(84790),nP=t(74166);function nW(){var e=(0,s._)(["\n max-width: fit-content;\n"]);return nW=function(){return e},e}function nU(){var e=(0,s._)(["\n padding: 12px;\n display: flex;\n align-items: center;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n font-size: 14px;\n\n .left-section {\n padding: 4px 8px;\n flex: 1;\n display: flex;\n }\n .right-section {\n display: flex;\n justify-content: center;\n flex: 0 1 0;\n\n button {\n padding: 0 12px;\n }\n }\n"]);return nU=function(){return e},e}function nV(){var e=(0,s._)(["\n max-width: 75%;\n"]);return nV=function(){return e},e}function nG(){var e=(0,s._)(["\n flex: 1 1 0%;\n border-width: 0px 1px 1px;\n border-right-style: solid;\n border-bottom-style: solid;\n border-left-style: solid;\n border-right-color: rgb(193, 193, 193);\n border-bottom-color: rgb(193, 193, 193);\n border-left-color: rgb(193, 193, 193);\n border-image: initial;\n border-top-style: initial;\n border-top-color: initial;\n border-radius: 0px 0px 4px 4px;\n"]);return nG=function(){return e},e}function nz(){var e=(0,s._)(["\n display: flex;\n flex-direction: column;\n align-item: center;\n margin-top: 5px;\n"]);return nz=function(){return e},e}function nY(){var e=(0,s._)(["\n flex: 1 1 0%;\n min-height: 30px;\n\n background: url(https://editor.unlayer.com/1.5.61/images/desktop.svg) 10px\n center no-repeat rgb(242, 242, 242);\n border: 1px solid rgb(193, 193, 193);\n border-radius: 4px 4px 0px 0px;\n"]);return nY=function(){return e},e}function nB(){var e=(0,s._)(["\n display: none;\n "]);return nB=function(){return e},e}function nq(){var e=(0,s._)(["\n margin-top: 2px;\n margin-right: 8px !important;\n z-index: 1;
1\n max-width: 20px;\n\n ","\n"]);return nq=function(){return e},e}var nH=(0,y.Ay)(nt.A)(nW()),nJ=(0,l.createContext)({attributes:{},listeners:void 0,ref(){}}),nX=y.Ay.div(nU()),nK=(0,y.Ay)(nP.A)(nV()),nQ=y.Ay.div(nG()),nZ=y.Ay.div(nz()),n0=y.Ay.div(nY()),n1=(0,l.forwardRef)((e,n)=>{var t,a,{stage:s,dndDisabled:o,className:c,id:d}=e,{campaign:u,stages:p,canEditStageDefinitions:m,updateStageDefinition:g,deleteStageDefinition:f}=(0,l.useContext)(nm),[h,v]=(0,l.useState)(!0),x=o||!m,b=(e=>{var n=[];switch(e.stageType){case V.TJ:e.sendEmail&&e.emailTemplate&&n.push({icon:"envelope",tooltip:"Email"}),e.sendSms&&e.smsTemplate&&n.push({icon:"comment-sms",tooltip:"SMS"});break;case V.Rq:n.push({icon:"cog",tooltip:"Manual action"});break;case V.Ej:n.push({icon:"phone",tooltip:"Due for call"});break;case V.Ox:n.push({icon:"clock",tooltip:"Delay"});break;case V.t0:n.push({icon:"bolt",tooltip:"Trigger"});break;case V.np:n.push({icon:"undo",tooltip:"Loop back"})}return n})(s),{name:y}=s;if(s.stageType===V.np){var S=p.find(e=>e.id===s.loopToStageId);y="Loop back to ".concat(null==S?void 0:S.name," stage").concat(s.loopMaxRepeats?" (".concat(s.loopMaxRepeats," times)"):"")}var _=(0,l.useMemo)(()=>{if(s.stageType!==V.TJ||!s.emailTemplate)return[];var e,n=(0,n$.J)((0,e9._)((0,i._)({},s.emailTemplate),{campaign:u}),!0);return(0,j.fP)({content:null==(e=s.emailTemplate)?void 0:e.contentHtml,allowedMergeTags:n})},[u,s.emailTemplate,s.stageType]),T=_.length>0,A=(0,l.useMemo)(()=>{if(s.stageType!==V.TJ||!s.smsTemplate)return[];var e,n=(0,n$.J)(s.smsTemplate,!0);return(0,j.fP)({content:null==(e=s.smsTemplate)?void 0:e.contentRaw,allowedMergeTags:n,strictMatch:!0})},[s.smsTemplate,s.stageType]),E=A.length>0;return(0,r.jsx)("div",{children:(0,r.jsx)(nX,{id:d,ref:n,className:c,children:(0,r.jsxs)("div",{className:"d-flex flex-column flex-grow-1",id:"stage-list-item",children:[(0,r.jsxs)("div",{className:"d-flex flex-row align-items-center justify-content-between flex-grow-1",children:[(0,r.jsxs)("div",{className:"left-section",children:[!x&&(0,r.jsx)(n5,{}),(0,r.jsxs)("span",{className:"d-flex align-items-center stage-name",children:[(0,r.jsx)("div",{className:"d-flex align-items-center mr-0",children:b.map(e=>(0,r.jsx)(nH,{tooltip:e.tooltip,tooltipProps:{placement:"bottom",trigger:["hover"]},farIcon:e.icon,className:"mr-2"},e.icon))}),y]})]}),(0,r.jsxs)("div",{className:"right-section",children:[m&&(0,F.oz)(eA.ACTION_UPDATE,eE.RESOURCE_CAMPAIGN)?(0,r.jsx)(D.A,{className:"btn-edit clear-btn edit-stage",type:"button",onClick:()=>g(null==s?void 0:s.id),tooltip:"Edit stage",children:(0,r.jsx)(nt.A,{farIcon:"edit",className:!m&&"opus1io-disabled"})}):(0,r.jsx)(D.A,{className:"btn-view clear-btn edit-stage",type:"button",onClick:()=>g(null==s?void 0:s.id),tooltip:"View stage",children:(0,r.jsx)(nt.A,{farIcon:"eye"})}),(0,r.jsx)(D.A,{className:"btn-delete clear-btn delete-stage",type:"button",onClick:()=>f(s.id),tooltip:m&&"Delete stage",disabled:!m||!(0,F.oz)(eA.ACTION_DELETE,eE.RESOURCE_CAMPAIGN),children:(0,r.jsx)(nt.A,{farIcon:"trash",className:!m&&"opus1io-disabled"})})]})]}),(s.emailTemplate||s.smsTemplate)&&(0,r.jsx)("div",{className:"d-flex flex-column align-items-center justify-content-between flex-grow-1",children:h?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(D.A,{className:"btn-edit clear-btn edit-stage",type:"button",onClick:()=>v(!1),tooltip:"Hide preview",children:(0,r.jsx)(nH,{farIcon:h?"eye-slash":"eye"},"eye")}),s.emailTemplate&&(0,r.jsxs)("div",{className:"mt-3 d-flex flex-column",children:[(0,r.jsxs)("div",{className:"d-flex flex-row align-items-center align-self-center",children:[(0,r.jsx)("div",{children:"Email"}),(0,r.jsx)(nH,{farIcon:"edit",onClick:()=>{var e;return(0,nd.D1)("/nonav/templates/".concat(null==(e=s.emailTemplate)?void 0:e.id,"/edit?closeOnSave=true"),"".concat(s.emailTemplate.id),window.innerWidth-150,window.innerHeight-150)},tooltip:"Edit email template",className:"ml-2"},"edit-email"),T&&(0,r.jsx)(nH,{farIcon:"exclamation-triangle",className:"text-danger ml-2",tooltip:"The template contains invalid merge tags: ".concat(_.join(", "))})]}),(0,r.jsxs)(nZ,{children:[(0,r.jsx)(n0,{}),(0,r.jsx)(nQ,{dangerouslySetInnerHTML:{__html:(t=s.emailTemplate.contentHtml,a=(0,nL.GQ)(.4,nF.pf,"#FFFFFF"),nO()(t,{allowedTags:!1,allowedAttributes:!1,disallowTags:["script"],allowVulnerableTags:!1,allowedScriptDomains:[],allowedScriptHostnames:[],transformTags:{"*":function(e,n){var t=(0,i._)({},n);for(var a in t)/^on/i.test(a)&&delete t[a],"href"===a&&/^javascript:/i.test(t[a])&&delete t[a];return{tagName:e,attribs:t}}},disallowedTagsMode:"discard",exclusiveFilter:e=>"script"===e.tag||"a"===e.tag&&e.attribs.href&&0===e.attribs.href.indexOf("javascript:")}).replace(/{% if rcpt_first_name != client_first_name or rcpt_last_name != client_last_name %}/g,'<p style="font-style:italic;font-weight: 300;">Displayed when recipient is account manager of client</p>').replace(/{% if rcpt_first_name == client_first_name and rcpt_last_name == client_last_name %}/g,'<p style="font-style:italic;font-weight: 300;">Displayed when recipient is the client</p>').replace(/{{rcpt_first_name}}/g,'<span style="color: white; background-color: '.concat(a,'; font-weight: 300;padding-left: 5px; padding-right: 5px;border-radius:3px">Recipient First Name</span>')).replace(/{{rcpt_last_name}}/g,'<span style="color: white; background-color: '.concat(a,'; font-weight: 300;padding-left: 5px; padding-right: 5px;border-radius:3px">Recipient Last Name</span>')).replace(/{{client_first_name}}/g,'<span style="color: white; background-color: '.concat(a,'; font-weight: 300;padding-left: 5px; padding-right: 5px;border-radius:3px">Client First Name</span>')).replace(/{{client_last_name}}/g,'<span style="color: white; background-color: '.concat(a,'; font-weight: 300;padding-left: 5px; padding-right: 5px;border-radius:3px">Client Last Name</span>')).replace(/{{subscription_service_name}}/g,'<span style="color: white; background-color: '.concat(a,'; font-weight: 300;padding-left: 5px; padding-right: 5px;border-radius:3px">Subscription Service Name</span>')).replace(/{% endif %}/g,""))}})]})]}),s.smsTemplate&&(0,r.jsxs)("div",{className:"mt-3 d-flex flex-column align-items-center",children:[(0,r.jsxs)("div",{className:"d-flex flex-row align-items-center align-self-center",children:[(0,r.jsx)("div",{children:"SMS"}),(0,r.jsx)(nH,{farIcon:"edit",onClick:()=>{var e;return(0,nd.D1)("/nonav/templates/".concat(null==(e=s.smsTemplate)?void 0:e.id,"/edit?closeOnSave=true}
1"),"".concat(s.smsTemplate.id),window.innerWidth-150,450)},tooltip:"Edit sms template",className:"ml-2"},"edit-sms"),E&&(0,r.jsx)(nH,{farIcon:"exclamation-triangle",className:"text-danger ml-2",tooltip:"The template contains invalid merge tags: ".concat(A.join(", "))})]}),(0,r.jsx)(nK,{className:"mt-2",content:s.smsTemplate.contentRaw,mergeTags:{recipient_first_name:"Recipient First Name",recipient_last_name:"Recipient Last Name",client_first_name:"Client First Name",client_last_name:"Client Last Name"}})]})]}):(0,r.jsx)(D.A,{className:"btn-edit clear-btn edit-stage",type:"button",onClick:()=>v(!0),tooltip:"Show preview",children:(0,r.jsx)(nH,{farIcon:"eye"},"eye")})})]})})})}),n2=(0,l.forwardRef)((e,n)=>{var{stage:t,className:a}=e,{id:i}=t,{attributes:s,isDragging:o,listeners:c,setNodeRef:d,setActivatorNodeRef:u,transform:p,transition:m}=(0,nn.gl)({id:i}),g=(0,l.useMemo)(()=>({attributes:s,listeners:c,ref:u}),[s,c,u]),f={opacity:o?.4:void 0,transform:nR.Ks.Translate.toString(p),transition:m};return(0,r.jsx)(nJ.Provider,{value:g,children:(0,r.jsx)("div",{ref:n,children:(0,r.jsx)("div",{className:a,ref:d,style:f,children:(0,r.jsx)(n1,{stage:t})},t.id)})})}),n3=(0,y.Ay)(W.A)(nq(),P.$_.mobile(nB()));function n5(){var{attributes:e,listeners:n,ref:t}=(0,l.useContext)(nJ);return(0,r.jsx)("div",(0,e9._)((0,i._)({className:"DragHandle"},e,n),{ref:t,style:{cursor:"pointer"},children:(0,r.jsx)(n3,{falIcon:"bars",color:{color:"#a0a0a0"}})}))}var n4=(0,i._)({},ne.by);function n6(e){var{children:n}=e;return(0,r.jsx)(ne.Hd,{dropAnimation:n4,children:n})}function n7(){var e=(0,s._)(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n flex-direction: column;\n\n p {\n margin: 2px 0;\n color: #555;\n font-size: 12px;\n }\n"]);return n7=function(){return e},e}function n8(){var e=(0,s._)(["\n width: 1px;\n height: 10px;\n background-color: #999;\n margin: 0;\n"]);return n8=function(){return e},e}var n9=y.Ay.div(n7()),te=y.Ay.div(n8()),tn=e=>{var{text:n,children:t,className:a,noBottomLine:i,noTopLine:s}=e;return(0,r.jsxs)(n9,{className:a,children:[!s&&(0,r.jsx)(te,{}),(0,r.jsxs)("div",{children:[n&&(0,r.jsx)("p",{children:n}),t]}),!i&&(0,r.jsx)(te,{})]})},tt=t(18542);t(82963),t(84560),t(5127),t(65857),t(33676),t(97857),t(4810),t(60865),t(3101),t(39112),t(75516),t(2070),t(96030),t(92167),t(47786),t(19808),t(56059),t(78736),t(68121),t(79389),t(75927),t(72859),t(15441),t(16028),t(3182),t(38263);var ta=t(96729),ti=t(77999),ts=t(14644),tr=t(65431),tl=t(70973),to=t(26999),tc=t(90089),td=t(84678),tu=t(7232),tp=t(70990),tm=t(93229);function tg(){var e=(0,s._)(["\n query tagCategoriesForSelect($business: ID!) {\n business(business: $business) {\n name\n tagCategories {\n tagType\n name\n tags\n }\n }\n }\n"]);return tg=function(){return e},e}var tf=(0,e1.J1)(tg()),th=(0,tm.A)({defaultVariables:{search:""},dataLabel:"business",query:tf,customGetOptions:(e,n)=>{var t;return(null==e||null==(t=e.tagCategories)?void 0:t.filter(e=>!n.tagType||e.tagType===n.tagType).map(e=>(0,ti.hJ)(e.name)))||[]},selectProps:{instanceId:nl.B6,components:{Option:nc.A},cacheOptions:!1,getOptionLabel:e=>e.label,getOptionValue:e=>e.value}}),tv=t(6683),tx=t(96339),tb=t(24181);function ty(){var e=(0,s._)(["\n mutation addCriteriaForCampaign(\n $business: String!\n $campaignId: ID!\n $criteria: CampaignCriteriaInput!\n ) {\n addCampaignCriteria(\n business: $business\n campaignId: $campaignId\n criteria: $criteria\n ) {\n error\n status\n }\n }\n"]);return ty=function(){return e},e}function tS(){var e=(0,s._)(["\n mutation updateCriteriaForCampaign(\n $business: String!\n $campaignId: ID!\n $criteriaId: ID!\n $criteria: CampaignCriteriaInput!\n ) {\n updateCampaignCriteria(\n business: $business\n campaignId: $campaignId\n criteriaId: $criteriaId\n criteria: $criteria\n ) {\n error\n status\n }\n }\n"]);return tS=function(){return e},e}function t_(){var e=(0,s._)(["\n width: 100%;\n"]);return t_=function(){return e},e}var tT=e=>{var{value:n,onChange:t,placeholder:a,isDisabled:s}=e;(0,nv.A)();var[l,o]=(0,A.A)(!1);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{onClick:o,children:(0,r.jsx)(no.A,{field:{value:n?"".concat(k()(n.startDate).format("DD MMM YYYY")," - ").concat(k()(n.endDate).format("DD MMM YYYY")):"Select date range",placeholder:a,faIcon:"calendar-alt",className:"select-date-range"},disabled:s})}),l&&(0,r.jsx)(tp.Ay,{modalName:"criteria-date-range",title:"Select Period",isOpen:l,toggle:o,selectionRange:(0,e9._)((0,i._)({},n),{key:"selection"}),onChange:t})]})},tA=(0,e1.J1)(ty()),tE=(0,e1.J1)(tS()),tC=[{label:"Appointment",value:tv.Yc},{label:"Class",value:tv.fW},{label:"Subscription Only",value:tv.je}],tj={clientStatuses:{placeholder:"Select client status",icon:"user",component:tl.A,props:{customGetOptions:e=>(0,ng.o)([...e.clientStatuses,...tb.j]),isMulti:!0,withSelectAll:!0},dispatchType:"SET_CLIENT_STATUSES",getOptionValue:e=>e,includeLabel:"Client status in",excludeLabel:"Client status not in",categories:[V.Ng]},clientTags:{placeholder:"Select client tags",icon:"tags",component:ta.Ay,dispatchType:"SET_CLIENT_TAGS",getOptionValue:e=>e,props:{isMulti:!0,isCreatable:!0},includeLabel:"Clients with tags",excludeLabel:"Exclude clients with tags",categories:[V.Ng]},clientNotTaggedForCategory:{placeholder:"Select client tag category",icon:"tags",component:th,dispatchType:"SET_CLIENT_NOT_TAGGED_FOR_CATEGORY",getOptionValue:e=>e,props:{context:{tagType:"client_tag"}},includeLabel:"Clients not tagged for category",excludeLabel:"Exclude clients not tagged for category",categories:[V.Ng]},memberLostDateRange:{placeholder:"Select date range",icon:"calendar",component:tT,hideWrapperIcon:!0,props:{allowPast:!0,hideTime:!0},dispatchType:"SET_MEMBER_LOST_DATE_RANGE",getOptionValue:e=>e,includeLabel:"Include members lost within date range",excludeLabel:"Exclude members lost within date range",categories:[V.Ng]},newMembersDateRange:{placeholder:"Select date range",icon:"calendar",component:tT,hideWrapperIcon:!0,props:{allowPast:!0,hideTime:!0},dispatchType:"SET_MEMBER_GAINED_DATE_RANGE",getOptionValue:e=>e,includeLabel:"Include new members within date range",excludeLabel:"Exclude new members within date range",categories:[V.Ng]},includedClients:{placeholder:"Select clients",icon:"users",component:tu.x3,dispatchType:"SET_INCLUDED_CLIENTS",getOptionValue:e=>e,props:{isMulti:!0,isClearable:!0},includeLabel:"Include specific clients",excludeLabel:"Include specific clients",categories:[V.Ng]},excludedClients:{placeholder:"Select clients",icon:"users",component:tu.x3,dispatchType:"SET_EXCLUDED_CLIENTS",getOptionValue:e=>e,props:{isMulti:!0,isClearable:!0},includeLabel:"Exclude specific clients",excludeLabel:"Exclude specific clients",categories:[V.Ng]},dateRange:{disabled:!0,placeholder:"Select date",icon:"calendar",component:tT,hideWrapperIcon:!0,props:{allowPast:!0,hideTime:!0},dispatchType:"SET_DATE_RANGE",getOptionValue:e=>e,includeLabel:"Include within date range",excludeLabel:"Exclude within date range",categories:[V.Ng],validator:e=>e.fromDate&&e.toDate?null:"Please select a date range"},createdClientsBeforeDate:{disabled:!1,placeholder:"Select date",icon:"calendar",component:tr.A,hideWrapperIcon:!0,props:{allowPast:!0,hideTime:!0},dispatchType:"SET_CREATED_CLIENT_BEFORE_DATE",getOptionValue:e=>e,validator:e=>e.createdClientsBeforeDate&&e.createdClientsAfterDate&&e.createdClientsBeforeDate<e.createdClientsAfterDate?"Before date cannot be before after date":null,includeLabel:"Include clients created before date",excludeLabel:"Exclude clients created before date",categories:[V.Ng]},createdClientsAfterDate:{disabled:!1,placeholder:"Select date",icon:"calendar",component:tr.A,hideWrapperIcon:!0,props:{allowPast:!0,hideTime:!0},dispatchType:"SET_CREATED_CLIENT_AFTER_DATE",getOptionValue:e=>e,includeLabel:"Include clients created after date",excludeLabel:"Exclude clients created after date",categories:[V.Ng]},activeClientServices:{disabled:!1,placeholder:"Select services",component:tc.c8,props:{isMulti:!0,withSelectAll:!0},dispatchType:"SET_ACTIVE_CLIENT_SERVICE_IDS",getOptionValue:e=>e,includeLabel:"Active clients with services",excludeLabel:"Exclude active clients with services",alsoAdd:["dateRange"],categories:[V.Ng]},activeClientStaffs:{disabled:!1,placeholder:"Select staff",icon:"user-tie",component:td.kS,props:{isMulti:!0,withSelectAll:!0},dispatchType:"SET_ACTIVE_CLIENT_STAFF_IDS",getOptionValue:e=>e,includeLabel:"Active clients with staff",excludeLabel:"Exclude active clients with staff",alsoAdd:["dateRange"],categories:[V.Ng]},minMonthsAge:{placeholder:"Select min age",icon:"hourglass-half",component:to.A,hideWrapperIcon:!0,props:{iconClass:"fa fa-hourglass-start",idYears:"min-months-age-years",idMonths:"min-months-age-months",uiSchema:{"ui:options":{idYears:"min-months-age-years",idMonths:"min-months-age-months"}},schema:{}},dispatchType:"SET_MIN_MONTHS_AGE",getOptionValue:e=>e||"",includeLabel:"Clients with age less than",excludeLabel:"Exclude clients with age less than",disabledWhe
1n:[],categories:[V.Ng]},maxMonthsAge:{placeholder:"Select max age",icon:"hourglass-half",component:to.A,hideWrapperIcon:!0,props:{iconClass:"fa fa-hourglass-end",idYears:"max-months-age-years",idMonths:"max-months-age-months",uiSchema:{"ui:options":{idYears:"max-months-age-years",idMonths:"max-months-age-months"}},schema:{}},dispatchType:"SET_MAX_MONTHS_AGE",getOptionValue:e=>e||"",includeLabel:"Clients with age greater than",excludeLabel:"Exclude clients with age greater than",disabledWhen:[],categories:[V.Ng]},appointmentWaitlistServices:{disabled:!1,placeholder:"Select services",component:tc.Ef,props:{isMulti:!0,withSelectAll:!0},dispatchType:"SET_APPOINTMENT_WAITLIST_SERVICES",getOptionValue:e=>e,includeLabel:"Clients on waitlist for appointment services",excludeLabel:"Exclude clients on waitlist for appointment services",categories:[V.Ng]},appointmentWaitlistStaff:{disabled:!1,placeholder:"Select staff",icon:"user-tie",component:td.kS,props:{isMulti:!0,withSelectAll:!0},dispatchType:"SET_APPOINTMENT_WAITLIST_STAFF",getOptionValue:e=>e,includeLabel:"Clients on waitlist for appointment with staff",excludeLabel:"Exclude clients on waitlist for appointment with staff",categories:[V.Ng]},adultsOnly:{disabled:!1,props:{uiSchema:{"ui:options":{}},schema:{}},component:()=>(0,r.jsx)("p",{className:"text-xs",children:"Only clients with active member status and no account manager will match this criteria."}),dispatchType:"SET_ADULTS_ONLY",getOptionValue:e=>e,includeLabel:"Adult members",default:!0,categories:[V.Ng]},activeSubscriptions:{disabled:!1,props:{uiSchema:{"ui:options":{}},schema:{}},component:()=>(0,r.jsx)("p",{className:"text-xs",children:"Clients with active subscriptions will match this criteria."}),dispatchType:"SET_ACTIVE_SUBSCRIPTIONS",getOptionValue:e=>e,includeLabel:"Active subscriptions",default:!0,disabledWhen:["clientStatuses","clientNotTaggedForCategory","clientTags"],categories:[V.f8]},activeSubscriptionsServiceTypes:{disabled:!1,placeholder:"Select service types",icon:"tags",props:{options:tC,isMulti:!0},component:ns.Ay,dispatchType:"SET_ACTIVE_SUBSCRIPTIONS_SERVICE_TYPES",getOptionValue:e=>e,includeLabel:"Clients with active subscriptions for service types",excludeLabel:"Exclude clients with active subscriptions for service types",disabledWhen:["clientStatuses","clientNotTaggedForCategory","clientTags"],categories:[V.f8],alsoAdd:["activeSubscriptions"]},activeSubscriptionsAfterDate:{disabled:!1,placeholder:"Select date",icon:"calendar",component:tr.A,hideWrapperIcon:!0,props:{allowPast:!0,hideTime:!0},dispatchType:"SET_ACTIVE_SUBSCRIPTIONS_AFTER_DATE",getOptionValue:e=>e,includeLabel:"Clients with active subscriptions started after date",excludeLabel:"Exclude clients with active subscriptions started after date",disabledWhen:["clientStatuses","clientNotTaggedForCategory","clientTags"],categories:[V.f8],alsoAdd:["activeSubscriptions"]},eventsLocations:{disabled:!1,placeholder:"Select locations",icon:"map-marker-alt",component:tx.f,props:{isMulti:!0},dispatchType:"SET_EVENTS_LOCATIONS",getOptionValue:e=>e,includeLabel:"Active clients with locations",excludeLabel:"Exclude active clients with locations",alsoAdd:["dateRange"],categories:[V.Ng]}},tI=["id","criteriaType","name","includeEveryone"],tw=[{label:"Client",value:V.Ng},{label:"Subscription",value:V.f8}],tD={[V.Ng]:[...Object.keys(tj).filter(e=>{var n;return null==(n=tj[e].categories)?void 0:n.includes(V.Ng)}),"includeEveryone"],[V.f8]:Object.keys(tj).filter(e=>{var n;return null==(n=tj[e].categories)?void 0:n.includes(V.f8)})},tN=e=>{var n=[];return e.forEach(e=>{Array.isArray(e)?n.push(...e):n.push(e)}),n},tM=e=>Array.isArray(e)?!!e.length:null!=e,tR=e=>{if(e){var n,t={name:e.name,criteriaType:e.criteriaType?tw.find(n=>n.value===e.criteriaType):null,includeEveryone:e.includeEveryone,clientStatuses:e.clientStatuses?e.clientStatuses.map(ti.hJ):null,clientTags:e.clientTags.map(ti.hJ),clientNotTaggedForCategory:(0,ti.hJ)(e.clientNotTaggedForCategory),memberLostDateRange:e.memberLostFromDate&&e.memberLostToDate?{startDate:e.memberLostFromDate,endDate:e.memberLostToDate,key:"selection"}:null,newMembersDateRange:e.newMembersFromDate&&e.newMembersToDate?{startDate:e.newMembersFromDate,endD
1ate:e.newMembersToDate,key:"selection"}:null,dateRange:e.fromDate&&e.toDate?{startDate:e.fromDate,endDate:e.toDate,key:"selection"}:null,createdClientsBeforeDate:e.createdClientsBeforeDate,createdClientsAfterDate:e.createdClientsAfterDate,activeClientServices:e.activeClientServices,activeClientStaffs:e.activeClientStaffs,activeServiceClientsDays:e.activeServiceClientsDays,activeSubscriptionClientsDays:e.activeSubscriptionClientsDays,activeSubscriptionService:e.activeSubscriptionService,minMonthsAge:e.minMonthsAge,maxMonthsAge:e.maxMonthsAge,appointmentWaitlistServices:e.appointmentWaitlistServices,appointmentWaitlistStaff:e.appointmentWaitlistStaff,adultsOnly:e.adultsOnly,activeSubscriptions:e.activeSubscriptions,activeSubscriptionsServiceTypes:null==(n=e.activeSubscriptionsServiceTypes)?void 0:n.map(e=>tC.find(n=>n.value===e)),activeSubscriptionsAfterDate:e.activeSubscriptionsAfterDate,eventsLocations:e.eventsLocations,includedClients:e.includedClients,excludedClients:e.excludedClients};return{selectedAttributes:[...Object.keys(t).filter(n=>tM(e[n])&&!tI.includes(n)),...["dateRange","memberLostDateRange","newMembersDateRange"].filter(e=>tM(t[e])&&!tI.includes(e))],formData:t}}return{selectedAttributes:[],formData:{name:"New Criteria",criteriaType:tw[0],includeEveryone:!1,clientStatuses:[],dateRange:null,activeClientStartAt:null,activeClientEndAt:null,activeClientServices:[],activeClientStaff:null,activeServiceClientsDays:null,activeSubscriptionClientsDays:null,activeSubscriptionService:null,minMonthsAge:null,maxMonthsAge:null,clientTags:[],clientNotTaggedForCategory:null,appointmentWaitlistServices:[],appointmentWaitlistStaff:[],adultsOnly:!1,activeSubscriptions:!1,activeSubscriptionsServiceTypes:[],activeSubscriptionsAfterDate:null,eventsLocations:[],includedClients:[],excludedClients:[]}}},tk=(e,n)=>{switch(n.type){case"RESET_FORM":return tR();case"UPDATE_CRITERIA":return(0,e9._)((0,i._)({},e),{selectedAttributes:Array.from(new Set(tN(n.payload)))});case"SET_NAME":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{name:n.payload})});case"SET_CRITERIA_TYPE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{criteriaType:n.payload})});case"SET_CLIENT_STATUSES":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{clientStatuses:n.payload})});case"SET_FROM_DATE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{fromDate:n.payload})});case"SET_TO_DATE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{toDate:n.payload})});case"SET_MEMBER_LOST_DATE_RANGE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{memberLostDateRange:n.payload})});case"SET_MEMBER_GAINED_DATE_RANGE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{newMembersDateRange:n.payload})});case"SET_DATE_RANGE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{dateRange:n.payload})});case"SET_CREATED_CLIENT_BEFORE_DATE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{createdClientsBeforeDate:n.payload})});case"SET_CREATED_CLIENT_AFTER_DATE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{createdClientsAfterDate:n.payload})});case"SET_ACTIVE_CLIENT_SERVICE_IDS":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{activeClientServices:n.payload})});case"SET_ACTIVE_SERVICE_CLIENTS_DAYS":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{activeServiceClientsDays:n.payload})});case"SET_ACTIVE_CLIENT_STAFF_IDS":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{activeClientStaffs:n.payload})});case"SET_ACTIVE_SUBSCRIPTION_CLIENTS_DAYS":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{activeSubscriptionClientsDays:n.payload})});case"SET_ACTIVE_SUBSCRIPTION_SERVICE_ID":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{activeSubscriptionService:n.payload})});case"SET_MIN_MONTHS_AGE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{minMonthsAge:n.payload})});case"SET_MAX_MONTHS_AGE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{maxMonthsAge:n.payload})});case"SET_CLIENT_TAGS":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{clientTags:(n.payload||[]).reduce((e,n)=>{var t={value:(0,j.DS)(n.value),label:(0,j.DS)(n.label)};return e.find(e=>e.value===t.value)||e.push(t),e},[])})});case"SET_CLIENT_NOT_TAGGED_FOR_CATEGORY":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{clientNotTaggedForCategory:n.payload})});case"SET_APPOINTMENT_WAITLIST_SERVICES":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{appointmentWaitlistServices:n.payload})});case"SET_APPOINTMENT_WAITLIST_STAFF":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{appointmentWaitlistStaff:n.payload})});case"SET_ADULTS_ONLY":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{adultsOnly:n.payload})});case"SET_ACTIVE_SUBSCRIPTIONS":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{activeSubscriptions:n.payload})});case"SET_ACTIVE_SUBSCRIPTIONS_SERVICE_TYPES":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{activeSubscriptionsServiceTypes:n.payload})});
1case"SET_ACTIVE_SUBSCRIPTIONS_AFTER_DATE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{activeSubscriptionsAfterDate:n.payload})});case"SET_EVENTS_LOCATIONS":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{eventsLocations:n.payload})});case"SET_INCLUDE_EVERYONE":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{includeEveryone:n.payload})});case"SET_INCLUDED_CLIENTS":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{includedClients:n.payload})});case"SET_EXCLUDED_CLIENTS":return(0,e9._)((0,i._)({},e),{formData:(0,e9._)((0,i._)({},e.formData),{excludedClients:n.payload})});default:throw Error()}},tO=(0,y.Ay)(no.A)(t_()),tL=(e,n,t)=>{var a,s=(0,i._)({},e),{selectedAttributes:r}=t;return Object.keys(s).forEach(e=>{r.includes(e)||tI.includes(e)||delete s[e]}),s.criteriaType&&(s.criteriaType=s.criteriaType.value,Object.keys(tD).filter(e=>e!==s.criteriaType).forEach(e=>{tD[e].forEach(e=>{delete s[e]})})),s.clientStatuses?s.clientStatuses=s.clientStatuses.map(e=>e.value):s.clientStatuses=[],s.activeClientServices&&(s.activeClientServiceIds=s.activeClientServices.map(e=>e.id)),delete s.activeClientServices,s.activeClientStaffs&&(s.activeClientStaffIds=s.activeClientStaffs.map(e=>e.id)),delete s.activeClientStaffs,s.activeSubscriptionService&&(s.activeSubscriptionServiceId=s.activeSubscriptionService.id),delete s.activeSubscriptionService,s.memberLostDateRange&&(s.memberLostFromDate=s.memberLostDateRange.startDate,s.memberLostToDate=s.memberLostDateRange.endDate),delete s.memberLostDateRange,s.newMembersDateRange&&(s.newMembersFromDate=s.newMembersDateRange.startDate,s.newMembersToDate=s.newMembersDateRange.endDate),delete s.newMembersDateRange,s.dateRange&&(s.fromDate=s.dateRange.startDate,s.toDate=s.dateRange.endDate),delete s.dateRange,s.clientTags&&(s.clientTags=s.clientTags.map(e=>e.value)),s.clientNotTaggedForCategory&&(s.clientNotTaggedForCategory=null==(a=s.clientNotTaggedForCategory)?void 0:a.value),s.appointmentWaitlistServices&&(s.appointmentWaitlistServiceIds=s.appointmentWaitlistServices.map(e=>e.id)),delete s.appointmentWaitlistServices,s.appointmentWaitlistStaff&&(s.appointmentWaitlistStaffIds=s.appointmentWaitlistStaff.map(e=>e.id)),delete s.appointmentWaitlistStaff,s.includedClients&&(s.includedClientIds=s.includedClients.map(e=>e.id)),delete s.includedClients,s.excludedClients&&(s.excludedClientIds=s.excludedClients.map(e=>e.id)),delete s.excludedClients,s.activeSubscriptionsServiceTypes&&(s.activeSubscriptionsServiceTypes=s.activeSubscriptionsServiceTypes.map(e=>e.value)),s.eventsLocations&&(s.eventsLocationIds=s.eventsLocations.map(e=>e.id)),delete s.eventsLocations,(0,i._)({criteria:s},n)},tF=[...Object.keys(tj),"includeEveryone"];function t$(e){var{campaign:n,criteria:t,isOpen:s,toggle:o,criteriaOptions:c=tF,deleteCriteria:u,deletingCriteria:f,isReadOnly:h}=e,v=(0,d.useSelector)(e=>e.app.business.name),[x,b]=(0,l.useReducer)(tk,tR(t)),[y,{loading:S}]=(0,_.A)(tA,{successMessage:"Criteria added successfully",errorMessage:"Failed to add criteria"}),[T,{loading:A}]=(0,_.A)(tE,{successMessage:"Criteria updated successfully",errorMessage:"Failed to update criteria"}),C=tD[x.formData.criteriaType.value],j=(tN(x.selectedAttributes)||[]).filter(e=>C.includes(e)),I=e=>e.name?j.every(n=>{var{validator:t}=tj[n];!tM(e[n]);var a=t&&t(e);return!a||((0,E.UG)({title:a}),!1)}):((0,E.UG)({title:"Criteria name is required"}),!1),w="includeLabel";x.formData.includeEveryone&&(w="excludeLabel");var M=Object.entries(tj).filter(e=>{var[n]=e;return C.includes(n)}).map(e=>{var n,[t,a]=e;return{value:t,label:tj[t][w],isDisabled:a.disabled||(null==(n=a.disabledWhen)?void 0:n.some(e=>j.includes(e)))}}).filter(e=>e.label),R=j.some(e=>!tj[e].excludeLabel)||h;c&&(M=M.filter(e=>c.includes(e.value)));var k="Add Criteria";return h?k="Criteria Detail":t&&!h&&(k="Update Criteria"),(0,r.jsxs)(N.A,{isOpen:s,toggle:o,title:"Add Criteria",size:"lg",className:"modal-add-criteria-modal",children:[(0,r.jsx)(p.A,{toggle:o,children:k}),(0,r.jsxs)(m.A,{children:[n.campaignType===V.NK&&(0,r.jsx)(no.A,{field:{name:"criteria-type",title:"Criteria type",iconClass:"far fa-filter"}
1,className:"",children:(0,r.jsx)(ns.Ay,{options:tw,value:x.formData.criteriaType,onChange:e=>b({type:"SET_CRITERIA_TYPE",payload:e}),placeholder:"Select criteria type",isSearchable:!0,styles:ti.K6,isDisabled:h})}),(0,r.jsx)(no.A,{field:{id:"add-criteria-name",title:"Criteria name",faIcon:"tag",value:x.formData.name},onChange:e=>{b({type:"SET_NAME",payload:e.target.value})},placeholder:"Enter criteria name",disabled:h}),(c||["includeEveryone"]).includes("includeEveryone")&&C.includes("includeEveryone")&&(0,r.jsx)(tO,{field:{id:"criteria-include-everyone-input-group",title:"Include everyone",subtitle:"Includes all clients with the exception of those that are excluded or don't meet the criteria defined here."},children:(0,r.jsx)(np.RF,{formData:x.formData.includeEveryone,onChange:e=>b({type:"SET_INCLUDE_EVERYONE",payload:e}),uiSchema:{"ui:options":{id:"include-everyone"}},schema:{},disabled:R})}),(0,r.jsx)(tO,{field:{id:"add-criteria-attributes",title:"Attribute(s) for this criteria",faIcon:"filter"},children:(0,r.jsx)(ns.Ay,{id:"add-criteria-attribute-field-select",classNamePrefix:"attribute",styles:ti.K6,isMulti:!0,options:M.filter(e=>Array.isArray(e.value)?e.value.some(e=>!j.includes(e)):!j.includes(e.value)),value:j.map(e=>({label:tj[e][w],value:e})),onChange:e=>{var n=[];(e||[]).forEach(e=>{tj[e.value].alsoAdd&&(n=[...n,...tj[e.value].alsoAdd]),tj[e.value].default&&b({type:tj[e.value].dispatchType,payload:tj[e.value].default})}),n.forEach(e=>{tj[e].default&&!j.includes(e)&&b({type:tj[e].dispatchType,payload:tj[e].default})}),b({type:"UPDATE_CRITERIA",payload:[...n,...(e||[]).map(e=>e.value)]})},isDisabled:h})}),(0,r.jsx)("div",{className:"my-3",children:j.map((e,n)=>{var t=tj[e],{icon:a,placeholder:s,hideWrapperIcon:l,getOptionValue:o,dispatchType:c,props:d={},component:u}=t,p=(0,tt._)(t,["icon","placeholder","hideWrapperIcon","getOptionValue","dispatchType","props","component"])[w];return h?(d.isDisabled=!0,d.isReadOnly=!0):(d.isDisabled=!1,d.isReadOnly=!1),(0,r.jsxs)("div",{children:[(0,r.jsx)(tO,{field:{id:"criteria-".concat(e,"-input-group"),title:p,faIcon:!l&&a},children:(0,r.jsx)(u,(0,e9._)((0,i._)({},d),{id:"react-select-criteria-attribute-field",value:x.formData[e],formData:x.formData[e],onChange:e=>{b({type:c,payload:o(e)})},placeholder:s,className:"w-100p"}))}),n<j.length-1&&(0,r.jsx)(ts.A,{text:"and"})]},e)})}),(0,r.jsx)(nf.c,{className:"text-xs",text:"All requirements here must be met by clients to match this criteria and be part of the campaign audience."}),(0,r.jsx)(nf.c,{className:"text-xs",text:"Make sure to target clients - opus1io always emails/sms clients (if they have an email and/or phone number) and ALL their account managers (unless they opted out of receiving marketing emails or SMSs)."})]}),(0,r.jsxs)(g.A,{children:[(0,r.jsx)(D.A,{id:"campaign-criteria-cancel",className:"btn btn-secondary rounded",onClick:o,children:h?"Close":"Cancel"}),t&&!h&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(D.A,{id:"campaign-criteria-delete",className:"btn btn-danger rounded",onClick:()=>u(t),loading:f,children:"Delete Criteria"}),(0,r.jsx)(D.A,{id:"campaign-criteria-save",className:"btn btn-primary rounded",onClick:()=>(0,a._)(function*(){var e=tL((0,i._)({id:t.id},x.formData),{business:v,campaignId:n.id,criteriaId:t.id},{selectedAttributes:j});I(e.criteria)&&(yield T({variables:e,update:(e,t)=>{"ok"===t.data.updateCampaignCriteria.status&&(e.evict({id:"Campaign:".concat(n.id),fieldName:"criteria"}),e.evict({id:"ROOT_QUERY",fieldName:"paginatedCampaignClients"}),o())}}))})(),loading:A,children:"Update Criteria"})]}),!t&&(0,r.jsx)(D.A,{id:"campaign-criteria-save",className:"btn btn-primary rounded",onClick:()=>(0,a._)(function*(){var e=tL(x.formData,{business:v,campaignId:n.id},{selectedAttributes:j});I(e.criteria)&&(yield y({variables:e,update:(e,t)=>{"ok"===t.data.addCampaignCriteria.status&&(e.evict({id:"Campaign:".concat(n.id),fieldName:"criteria"}),e.evict({id:"ROOT_QUERY",fieldName:"paginatedCampaignClients"}),o())}}))})(),loading:S,children:"Add Criteria"})]})]})}var tP=t(80418);t(43831);var tW=e=>{var{fromNode:n,toNode:t,arrowColor:a="black",lineColor:i="black",lineWidth:s=2,horizontalOffset:o=50,direction:c="right",roundness:d=5,distanceFromNode:u=10}=e,[p,m]=(0,l.useState)(""),[g,f]=(0,l.useState)("auto"),h=(0,l.useCallback)(()=>
1{if(n&&t){var e=n.getBoundingClientRect(),a=t.getBoundingClientRect(),{scrollX:i,scrollY:s}=window,r=e[c]+i,l=e.top+e.height/2+s,u=a[c]+i,p=a.top+a.height/2+s,g="right"===c?1:-1,h=o-d,v=r+h*g,x=p<l,b=+("right"!==c);f("right"===c?"auto":"360"),m("\n M ".concat(r,",").concat(l,"\n H ").concat(v,"\n A ").concat(d,",").concat(d," 0 0 ").concat(b," ").concat(v+d*g,",").concat(l+(x?-d:d),"\n V ").concat(p+(x?d:-d),"\n A ").concat(d,",").concat(d," 0 0 ").concat(b," ").concat(u+h*g,",").concat(p,"\n H ").concat(u,"\n ").trim())}},[c,n,o,d,t]);return((0,l.useEffect)(()=>{var e=setTimeout(()=>{h()},0);return window.addEventListener("resize",h),window.addEventListener("scroll",h),()=>{clearTimeout(e),window.removeEventListener("resize",h),window.removeEventListener("scroll",h)}},[h,n,t]),(0,l.useEffect)(()=>{var e=new MutationObserver(h);return e.observe(document.body,{attributes:!1,childList:!0,subtree:!0}),()=>{e.disconnect()}},[h]),n&&t)?(0,r.jsxs)("svg",{style:{position:"absolute",top:0,left:u,width:"100%",height:"100%",pointerEvents:"none",zIndex:1e3},xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("defs",{children:(0,r.jsx)("marker",{id:"arrowhead",markerWidth:"7",markerHeight:"7",refX:"5",refY:"3.5",orient:g,children:(0,r.jsx)("polygon",{points:"0 0, 7 3.5, 0 7",fill:a})})}),(0,r.jsx)("path",{d:p,stroke:i,strokeWidth:s,fill:"none",markerEnd:"url(#arrowhead)"})]}):null};tW.redraw=()=>{var e=new Event("resize");window.dispatchEvent(e)};var tU=t(81297),tV=t(76204),tG=t(89511),tz=t(61963),tY=t(6335),tB=t(15257),tq=t(7824),tH=t(42562),tJ=t(11205);function tX(){var e=(0,s._)(["\n margin-bottom: 0px;\n color: ",";\n font-size: 0.8rem;\n line-height: 0.9rem;\n font-weight: 500;\n padding-top: 5px;\n .b {\n font-weight: 700;\n }\n"]);return tX=function(){return e},e}function tK(){var e=(0,s._)(["\n font-size: 1rem;\n line-height: 1rem;\n"]);return tK=function(){return e},e}function tQ(){var e=(0,s._)(["\n query queryCampaignCriteriaForSelect(\n $business: String!\n $search: String\n $campaignType: CampaignType\n ) {\n paginatedCampaigns(\n business: $business\n campaignType: $campaignType\n search: $search\n limit: 50\n ) {\n business\n campaigns {\n id\n name\n criteria {\n id\n name\n }\n }\n }\n }\n"]);return tQ=function(){return e},e}var tZ=y.Ay.div(tX(),e=>e.isSelected?"inherit":"#888"),t0=y.Ay.div(tK()),t1=(0,e1.J1)(tQ()),t2=(0,tm.A)({defaultVariables:{search:""},dataLabel:"paginatedCampaigns",query:t1,customGetOptions:(e,n)=>{var t;return null==(t=e.campaigns)?void 0:t.filter(e=>{var t;return(null==(t=e.criteria)?void 0:t.length)&&(!n.campaignId||e.id!==n.campaignId)})},selectProps:{instanceId:nl.nw,cacheOptions:!1,isClearable:!0,components:{Option:e=>{var n,{className:t,cx:a,getStyles:s,isDisabled:r,isFocused:l,isSelected:o,innerRef:c,innerProps:d,data:u,children:p}=e;return(0,tJ.Y)("div",(0,i._)({ref:c,css:s("option",e),className:a({option:!0,"option--is-disabled":r,"option--is-focused":l,"option--is-selected":o},"".concat(t," d-flex flex-row align-items-center"))},d),(0,tJ.Y)("div",null,(0,tJ.Y)(t0,null,u.name),(null==(n=u.criteria)?void 0:n.length)?(0,tJ.Y)(tZ,{isSelected:o},u.criteria.map(e=>e.name).join(", ")):(0,tJ.Y)(tZ,{isSelected:o},"Base template")))}}}});function t3(){var e=(0,s._)(["\n mutation ReuseCampaignCriteria(\n $business: String!\n $campaignId: ID!\n $fromCampaignId: ID!\n ) {\n reuseCampaignCriteria(\n business: $business\n campaignId: $campaignId\n fromCampaignId: $fromCampaignId\n ) {\n error\n status\n campaign {\n id\n name\n }\n }\n }\n"]);return t3=function(){return e},e}var t5=(0,e1.J1)(t3()),t4=e=>{var{isOpen:n,toggle:t,campaign:i}=e,s=(0,d.useSelector)(e=>e.app.business.name),[o,c]=(0,l.useState)(null),[u,{loading:f}]=(0,_.A)(t5);return(0,r.jsxs)(N.A,{isOpen:n,toggle:t,title:"Add Criteria",size:"lg",className:"modal-add-criteria-modal",children:[(0,r.jsx)(p.A,{toggle:t,children:"Reuse Criteria"}),(0,r.jsxs)(m.A,{children:[(0,r.jsx)(no.A,{field:{name:"campaign-criteria",title:"Select campaign",iconClass:"far fa-filter"}
1,className:"",children:(0,r.jsx)(t2,{value:o,onChange:e=>{c(e)},placeholder:"Select campaign",isClearable:!0,isSearchable:!0,context:{campaignId:i.id},queryParams:{campaignType:i.campaignType}})}),(0,r.jsx)(nf.c,{text:"Selected campaign criteria will be added to the current campaign."})]}),(0,r.jsxs)(g.A,{children:[(0,r.jsx)(D.A,{id:"btn-continue-to-hold",className:"btn btn-secondary btn-rounded",onClick:()=>(0,a._)(function*(){try{yield u({variables:{business:s,campaignId:i.id,fromCampaignId:o.id},update:(e,n)=>{var{data:a}=n;"ok"===a.reuseCampaignCriteria.status&&(e.evict({id:"Campaign:".concat(i.id)}),e.gc(),t())}})}catch(e){(0,j.Fk)(e)}})(),disabled:!o,loading:f,children:"Continue"}),(0,r.jsx)(D.A,{id:"btn-cancel",className:"btn btn-primary btn-rounded",onClick:t,children:"Cancel"})]})]})};function t6(){var e=(0,s._)(["\n mutation deleteCriteriaForCampaign(\n $business: String!\n $campaignId: ID!\n $criteriaId: ID!\n ) {\n deleteCampaignCriteria(\n business: $business\n campaignId: $campaignId\n id: $criteriaId\n ) {\n error\n status\n }\n }\n"]);return t6=function(){return e},e}function t7(){var e=(0,s._)(["\n query paginatedCampaignClients(\n $business: String!\n $campaignId: ID!\n $criteriaId: ID\n $limit: Int\n $cursor: Cursor\n ) {\n paginatedCampaignClients(\n business: $business\n campaignId: $campaignId\n criteriaId: $criteriaId\n limit: $limit\n cursor: $cursor\n ) {\n cursor\n clients {\
1n id\n name\n status\n profilePhoto\n tags\n joinedAt\n }\n }\n }\n"]);return t7=function(){return e},e}function t8(){var e=(0,s._)(["\n & > .criteria-section,\n & > .audience-list-section {\n width: 100%;\n }\n flex-direction: column;\n & > *:not(:last-child) {\n margin-bottom: 20px;\n }\n "]);return t8=function(){return e},e}function t9(){var e=(0,s._)(["\n display: flex;\n flex-direction: row;\n gap: 40px;\n align-items: flex-start;\n\n & > .criteria-section,\n & > .audience-list-section {\n width: 50%;\n display: flex;\n flex-direction: column;\n & > div:last-child {\n flex-grow: 1;\n }\n }\n\n & > .criteria-section {\n position: relative;\n }\n\n ","\n"]);return t9=function(){return e},e}function ae(){var e=(0,s._)(["\n & > * {\n display: inline-flex !important;\n\n :not(:last-child) {\n margin-right: 10px;\n }\n }\n"]);return ae=function(){return e},e}function an(){var e=(0,s._)([""]);return an=function(){return e},e}function at(){var e=(0,s._)(["\n padding: 12px;\n\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n\n .criteria-list-item-header {\n display: flex;\n align-items: center;\n font-size: 14px;\n\n .text-col {\n padding: 4px 8px;\n flex: 1;\n }\n .btn-col {\n display: flex;\n justify-content: center;\n flex: 0 1 0;\n\n button {\n padding: 0 12px;\n }\n }\n }\n\n .criteria-list-item-body {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 5px 10px;\n padding: 4px 8px;\n }\n"]);return at=function(){return e},e}function aa(){var e=(0,s._)(["\n margin-top: 35px;\n border-left: 0.5px solid #888 !important; // TODO: color not really working needs fix\n height: 100%;\n width: 0;\n min-height: 80px;\n"]);return aa=function(){return e},e}function ai(){var e=(0,s._)(["\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: center;\n gap: 5px;\n max-width: 400px;\n"]);return ai=function(){return e},e}function as(){var e=(0,s._)(["\n display: flex;\n justify-content: center;\n color: unset;\n"]);return as=function(){return e},e}var ar=(0,e1.J1)(t6()),al=(0,e1.J1)(t7()),ao=y.Ay.div(t9(),P.$_.tablet(t8())),ac=y.Ay.div(ae()),ad=y.Ay.div(an()),au=y.Ay.div(at()),ap=y.Ay.div(aa()),am=e=>{var n,t,{criteria:a,disableEdit:i,onDeleteCriteria:s,toggleCriteriaModal:l}=e,o=i||!(0,F.oz)(eA.ACTION_UPDATE,eE.RESOURCE_CAMPAIGN);return(0,r.jsxs)(au,{children:[(0,r.jsxs)("div",{className:"criteria-list-item-header",children:[(0,r.jsx)("div",{className:"text-col",children:(0,r.jsx)("span",{children:a.name})}),(0,r.jsxs)("div",{className:"btn-col",children:[o?(0,r.jsx)(D.A,{className:"btn-view view-criteria",type:"button",onClick:()=>l(a),tooltip:"View criteria",children:(0,r.jsx)(W.A,{farIcon:"eye",className:"text-secondary"})}):(0,r.jsx)(D.A,{className:"btn-edit clear-btn edit-criteria",type:"button",onClick:()=>l(a),children:(0,r.jsx)(W.A,{farIcon:"edit",className:i?"opus1io-disabled":"text-secondary"})}),(0,r.jsx)(D.A,{className:"btn-delete clear-btn delete-criteria",type:"button",onClick:()=>!i&&s(a),tooltip:!i&&"Delete criteria",disabled:o,children:(0,r.jsx)(W.A,{farIcon:"trash",className:i?"opus1io-disabled":"text-secondary"})})]})]}),(null==(n=a.includedClients)?void 0:n.length)>0&&(0,r.jsx)(J.sS,{className:"text-xs",faIcon:"user-plus",text:"Selected ".concat(a.includedClients.length," client(s) to be included in this campaign.")}),(null==(t=a.excludedClients)?void 0:t.length)>0&&(0,r.jsx)(J.sS,{className:"text-xs",faIcon:"user-minus",text:"Selected ".concat(a.excludedClients.length," client(s) to be excluded from this campaign.")})]})},ag=e=>{var{campaign:n,refetch:t}=e,i=(0,d.useSelector)(e=>e.app.business.name),[s,o]=(0,l.useState)(!1),[c,u]=(0,A.A)(),[p,m,g]=(0,S.A)(),[f,h,v]=(0,S.A)(),[x,{loading:b}]=(0,_.A)(ar,{successMessage:"Criteria deleted successfully",errorMessage:"Failed to delete criteria"}),y=e=>(0,a._)(function*(){yield x({variables:{business:i,campaignId:n.id,criteriaId:e.id},update:(e,t)=>
1{"ok"===t.data.deleteCampaignCriteria.status&&(e.evict({id:"Campaign:".concat(n.id),fieldName:"criteria"}),e.evict({id:"ROOT_QUERY",fieldName:"paginatedCampaignClients"}),p&&g(null))}})})();return(0,r.jsxs)(ni.A,{title:"Criteria",menuIcons:(0,r.jsxs)(ac,{children:[(0,r.jsx)(D.A,{onClick:()=>(0,a._)(function*(){o(!0),yield t(),o(!1)})(),tooltip:"Refresh",children:(0,r.jsx)(nt.A,{farIcon:"sync",className:s?"fa-spin":""})}),(0,r.jsx)(D.A,{id:"add-criteria",tooltip:"Add Criteria",onClick:()=>g(null),disabled:!(0,F.oz)(eA.ACTION_UPDATE,eE.RESOURCE_CAMPAIGN)||n.status!==V.iR,children:(0,r.jsx)(nt.A,{falIcon:"circle-plus"})}),(0,r.jsx)(D.A,{id:"reuse-criteria",tooltip:"Reuse Criteria",onClick:u,disabled:!(0,F.oz)(eA.ACTION_UPDATE,eE.RESOURCE_CAMPAIGN)||n.status!==V.iR,children:(0,r.jsx)(nt.A,{falIcon:"recycle"})})]}),className:"criteria-section",children:[(0,r.jsx)(ad,{children:n.criteria.map((e,t)=>(0,r.jsxs)("div",{children:[(0,r.jsx)(am,{criteria:e,onDeleteCriteria:v,toggleCriteriaModal:g,disableEdit:!(0,F.oz)(eA.ACTION_UPDATE,eE.RESOURCE_CAMPAIGN)||n.status!==V.iR}),t<n.criteria.length-1&&(0,r.jsx)(ts.A,{text:"or"})]},e.id))}),0===n.criteria.length?(0,r.jsx)(tY._,{className:"p-4",children:"No criteria added yet. Click the button above to add one."}):(0,r.jsx)(nf.c,{className:"mt-3",text:"Clients matching at least one of the criteria when the campaign is processed on the scheduled date will be targeted."}),p&&(0,r.jsx)(t$,{campaign:n,criteria:m,isOpen:p,toggle:g,deleteCriteria:y,deletingCriteria:b,isReadOnly:!(0,F.oz)(eA.ACTION_UPDATE,eE.RESOURCE_CAMPAIGN)||n.status!==V.iR}),c&&(0,r.jsx)(t4,{isOpen:c,toggle:u,campaign:n}),f&&(0,r.jsx)(I.A,{isOpen:f,toggle:v,title:"Delete Criteria",message:"Are you sure you want to continue?",onConfirmation:()=>y(h)})]})},af=y.Ay.div(ai()),ah=y.Ay.div(as()),av=e=>{var{campaign:n}=e,t=(0,d.useSelector)(e=>e.app.business.name),i=n.criteria.map(e=>({id:e.id,value:e.id,label:e.name})),[s,o]=(0,l.useState)(null),[c,u]=(0,l.useState)(!1),p={business:t,limit:500,campaignId:n.id,criteriaId:null==s?void 0:s.id},{items:m,loading:g,loadingMore:f,loadMore:h,canLoadMore:v,refetch:x}=(0,e3.A)({query:al,variables:p,itemName:"clients",getPaginationObject:e=>e.data.paginatedCampaignClients}),[b]=(0,e2.A)({loading:g,hasNextPage:v,onLoadMore:h}),y=m.map(e=>{var n;return{id:e.id,name:(0,r.jsx)(tq.$u,{user:e,route:tG.BK}),tags:(0,r.jsx)(af,{children:null==(n=e.tags)?void 0:n.map(e=>(0,r.jsxs)(tB.wS,{className:"client-tag",children:["#",e]},e))})}});return(0,l.useEffect)(()=>{g||u(!1)},[g]),console.log({itemsLength:m.length,size:500}),(0,r.jsx)(ni.A,{title:"Audience",className:"audience-list-section",number:n.numberAudience,menuIcons:(0,r.jsx)(ac,{children:(0,r.jsx)(D.A,{onClick:()=>(0,a._)(function*(){u(!0),x()})(),tooltip:"Refresh",children:(0,r.jsx)(nt.A,{farIcon:"sync",className:c||g?"fa-spin":""})})}),children:(0,r.jsxs)("div",{className:"",children:[(null==i?void 0:i.length)>1&&(0,r.jsx)(no.A,{field:{iconClass:"fal fa-search"},children:(0,r.jsx)(ns.Ay,{isClearable:!0,id:"select-criteria",styles:ti.K6,placeholder:"Select criteria to filter by",options:i,onChange:e=>{o(e)}})}),(0,r.jsxs)("div",{children:[m.length>0&&(0,r.jsx)(tV.default,{striped:!0,bootstrap4:!0,keyField:"id",columns:[{dataField:"name",text:"Name"},{dataField:"tags",text:"Tags"}],bordered:!1,data:y,bodyClasses:"max-height-400 overflow-y-scroll"}),!g&&0===m.length&&(0,r.jsx)(tY._,{className:"p-4",children:"No clients found. Try changing your search criteria."}),500===m.length&&(0,r.jsxs)(tH.A,{children:["Showing first ",500," clients only..."]}),f&&(0,r.jsx)(ah,{children:(0,r.jsx)(tz.A,{size:"30"})}),v&&!["included","excluded"].includes(null==s?void 0:s.value)&&(0,r.jsx)("div",{className:"width-100 height-10",ref:b})]})]})})},ax=e=>{var{campaign:n,refetchCampaign:t}=e;return(0,r.jsxs)(ao,{children:[(0,r.jsx)(ag,{campaign:n,refetch:t}),(0,r.jsx)(ap,{}),(0,r.jsx)(av,{campaign:n})]})};function ab(){var e=(0,s._)(["\n query campaignStageDefinitionsQuery($business: String!, $campaignId: ID!) {\n campaign(business: $business, id: $campaignId) {\n id\n stageDefinitions(includeHidden: true) {\n ...campaignStageDefinitionFragment\n }\n }\n }\n ","\n"]);return ab=function(){return e},e}function ay(){var e=(0,s._)(["\n mutation deleteStageMutation(\n $business: String!\n $campaignId: ID!\n $stageId: ID!\n ) {\n deleteC
1ampaignStageDefinition(\n business: $business\n campaignId: $campaignId\n stageId: $stageId\n ) {\n error\n status\n campaign {\n id\n stageDefinitions(includeHidden: true) {\n ...campaignStageDefinitionFragment\n }\n }\n }\n }\n\n ","\n"]);return ay=function(){return e},e}function aS(){var e=(0,s._)(["\n mutation updateCampaignStageDefinitionOrderMutation(\n $business: String!\n $campaignId: ID!\n $stageId: ID!\n $prevStageId: ID\n $nextStageId: ID\n ) {\n updateCampaignStageDefinitionOrder(\n business: $business\n campaignId: $campaignId\n nextStageId: $nextStageId\n prevStageId: $prevStageId\n stageId: $stageId\n ) {\n campaign {\n id\n stageDefinitions(includeHidden: true) {\n ...campaignStageDefinitionFragment\n }\n }\n }\n }\n\n ","\n"]);return aS=function(){return e},e}function a_(){var e=(0,s._)(["\n display: flex;\n flex-direction: row;\n align-items: center;\n\n :hover,\n ",":hover {\n color: "," !important;\n }\n\n "," {\n display: flex;\n flex-direction: row;\n align-items: center;\n\n margin-right: 8px;\n }\n"]);return a_=function(){return e},e}function aT(){var e=(0,s._)(["\n "," > div {\n margin-bottom: 0px !important;\n }\n"]);return aT=function(){return e},e}function aA(){var e=(0,s._)(["\n padding: 12px;\n display: flex;\n align-items: center;\n background-color: #fff;\n\n font-size: 14px;\n\n justify-content: center;\n height: 60.4px;\n margin-bottom: 10px;\n\n color: ",";\n"]);return aA=function(){return e},e}function aE(){var e=(0,s._)(["\n max-width: 90%;\n "]);return aE=function(){return e},e}function aC(){var e=(0,s._)(["\n display: flex;\n align-items: center;\n justify-content: center;\n\n .stages-section {\n position: unset !important;\n max-width: 1200px;\n\n ","\n }\n"]);return aC=function(){return e},e}function aj(){var e=(0,s._)(["\n & > * {\n display: inline-flex !important;\n\n :not(:last-child) {\n margin-right: 10px;\n }\n }\n"]);return aj=function(){return e},e}function aI(){var e=(0,s._)(["\n display: flex;\n flex-direction: column;\n gap: 10px;\n"]);return aI=function(){return e},e}function aw(){var e=(0,s._)(["\n padding: 12px;\n display: flex;\n align-items: center;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n font-size: 14px;\n margin-bottom: 10px;\n\n .left-section {\n padding: 4px 8px;\n flex: 1;\n display: flex;\n }\n .right-section {\n display: flex;\n justify-content: center;\n flex: 0 1 0;\n\n button {\n padding: 0 12px;\n }\n }\n"]);return aw=function(){return e},e}var aD=(0,e1.J1)(ab(),C.On),aN=(0,e1.J1)(ay(),C.On),aM=(0,e1.J1)(aS(),C.On),aR=(0,y.Ay)(D.A)(a_(),nt.A,(0,nL.GQ)(.3,nF.pf,"#FFFFFF"),nt.A),ak=(0,y.Ay)(ni.A)(aT(),ni.A.styled.InterfaceMenu),aO=y.Ay.div(aA(),(0,nL.GQ)(.4,nF.pf,"#FFFFFF")),aL=y.Ay.div(aC(),P.$_.tablet(aE())),aF=y.Ay.div(aj()),a$=y.Ay.div(aI()),aP=y.Ay.div(aw()),aW=e=>{var{stageDefinitions:n,setStageDefinitions:t,campaignId:s}=e,o=(0,d.useSelector)(e=>e.app.business.name),{addStageDefinition:c,canEditStageDefinitions:u}=(0,l.useContext)(nm),[p,{loading:m}]=(0,_.A)(aM,{successMessage:"Successfully updated campaign's stage order",errorMessage:"Failed to update campaign's stage order"}),[g,f]=(0,tU.A)(),[h,v]=(0,tU.A)(),x=(0,ne.FR)((0,ne.MS)(ne.AN),(0,ne.MS)(ne.uN,{coordinateGetter:nn.JR})),[b,y]=(0,l.useState)(null),S=n.find(e=>e.id===b),T=n.filter(e=>![V.np].includes(e.stageType)&&!e.hiddenAt),A=n.find(e=>e.stageType===V.np),C=n.find(e=>e.id===(null==A?void 0:A.loopToStageId));return(0,l.useEffect)(()=>{tW.redraw()},[n]),(0,r.jsxs)(ne.Mp,{sensors:x,onDragStart:e=>{var{active:n}=e;
1return y(n.id)},onDragCancel:e=>{var{active:n}=e},onDragOver:e=>{var{active:n}=e},onDragEnd:e=>{var{active:i,over:r}=e;return(0,a._)(function*(){if(r){var e=n.findIndex(e=>e.id===i.id),a=n.findIndex(e=>e.id===r.id);if(e!==a){var l=[...n];l.splice(e,1),l.splice(a,0,S);var c=l[a-1],d=l[a+1],u=c?c.id:null,m=d?d.id:null;t(l);try{yield p({variables:{business:o,campaignId:s,stageId:i.id,prevStageId:u,nextStageId:m},update:(e,n)=>{"ok"===n.data.status&&(e.evict({id:"Campaign:".concat(s),fieldName:"stages"}),e.gc())}})}catch(e){(0,j.Fk)(e),(0,E.UG)("Failed to update campaign stage order")}}}})()},children:[(0,r.jsx)(nn.gB,{items:n.filter(e=>!e.hiddenAt),children:(0,r.jsx)(a$,{children:T.map(e=>(0,r.jsxs)(l.Fragment,{children:[(0,r.jsx)(n2,{ref:(null==C?void 0:C.id)===e.id?v:null,stage:e}),(0,r.jsx)(tn,{text:T.indexOf(e)===T.length-1&&u&&(0,r.jsx)(nt.A,{farIcon:"plus-circle",tooltip:"Add stage",onClick:c})})]},e.id))})}),A?(0,r.jsx)(n1,{dndDisabled:!0,ref:f,stage:(0,e9._)((0,i._)({},A),{name:(0,r.jsxs)("span",{children:["Loop back to"," ",(0,r.jsx)("b",{children:null==C?void 0:C.name})," stage"]})}),className:"mt-2"}):(0,r.jsx)(tn,{noBottomLine:!0,noTopLine:!0,text:"End of campaign"}),(0,r.jsx)(tW,{fromNode:g,toNode:h,arrowColor:tP.rL,lineColor:tP.rL,direction:"right",roundness:10,horizontalOffset:35}),S&&(0,r.jsx)(n6,{children:(0,r.jsx)(n2,{stage:S})})]})};function aU(e){var{campaign:n}=e,t=(0,d.useSelector)(e=>e.app.business.name),[i,s,o]=(0,S.A)(),[c,u,p]=(0,S.A)(),[m,g,f]=(0,S.A)(),[h,v,x]=(0,S.A)(),{data:b,loading:y,error:A,refetch:E}=(0,T.A)({query:aD,variables:{business:t,campaignId:n.id},processor:e=>{var n;return null==e||null==(n=e.campaign)?void 0:n.stageDefinitions}}),[C,j]=(0,l.useState)([]),[w,{loading:N}]=(0,_.A)(ar,{successMessage:"Successfully deleted criteria",errorMessage:"Failed to delete criteria"}),[M,{loading:R}]=(0,_.A)(aN,{successMessage:"Successfully deleted stage",errorMessage:"Failed to delete stage"}),[k,O]=(0,l.useState)(!1),L=(0,F.oz)(eA.ACTION_UPDATE,eE.RESOURCE_CAMPAIGN)&&[V.iR,V.I6].includes(n.status),$=(0,l.useCallback)(e=>{var n=C.find(n=>n.id===e);n&&f(n.id)},[C,f]),P=(0,l.useCallback)(e=>{var n=C.find(n=>n.id===e);n&&o(n)},[C,o]),U=(0,l.useMemo)(()=>({campaign:n,stages:C,canEditStageDefinitions:L,addStageDefinition:o,updateStageDefinition:P,deleteStageDefinition:$}),[n,C,L,o,P,$]);(0,l.useEffect)(()=>{b&&!y&&j(b)},[b,y]),(0,l.useEffect)(()=>{var e=e=>{var{data:{reason:n}={}}=e;"TEMPLATE_CREATED"===n&&E()};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[E]);var G=!L||!(0,F.oz)(eA.ACTION_UPDATE,eE.RESOURCE_CAMPAIGN);return(0,r.jsx)(nm.Provider,{value:U,children:(0,r.jsx)(aL,{children:(0,r.jsxs)(ak,{title:"Stages",menuIcons:(0,r.jsxs)(aF,{children:[(0,r.jsx)(D.A,{onClick:()=>(0,a._)(function*(){O(!0),yield E(),O(!1)})(),tooltip:"Refresh",children:(0,r.jsx)(nt.A,{farIcon:"sync",className:k?"fa-spin":""})}),(0,r.jsx)(D.A,{id:"create-stage-button",tooltip:"Add stage",onClick:()=>o(),disabled:!L,disabledReason:"Active campaigns cannot be edited. Deactivate it first",children:(0,r.jsx)(nt.A,{farIcon:"circle-plus",className:!L&&"opus1io-disabled"})})]}),className:"col-md-9 p-0 stages-section",children:[n.criteria.length?n.criteria.map(e=>(0,r.jsxs)(aP,{children:[(0,r.jsxs)("div",{className:"left-section criteria-name",children:[(0,r.jsx)(nt.A,{farIcon:"filter",className:"mr-2"}),e.name]}),(0,r.jsxs)("div",{className:"right-section",children:[G?(0,r.jsx)(D.A,{className:"btn-view view-criteria",type:"button",onClick:()=>p(e),tooltip:"View criteria",children:(0,r.jsx)(W.A,{farIcon:"eye",className:"text-secondary"})}):(0,r.jsx)(D.A,{className:"btn-edit clear-btn edit-criteria",type:"button",onClick:()=>p(e),tooltip:"Edit criteria",children:(0,r.jsx)(nt.A,{farIcon:"edit"})}),(0,r.jsx)(D.A,{className:"btn-delete clear-btn delete-criteria",type:"button",onClick:()=>x(e),tooltip:L&&"Delete criteria",disabled:G,children:(0,r.jsx)(nt.A,{farIcon:"trash",className:!L&&"opus1io-disabled"})})]})]},e.id)):(0,r.jsx)(aO,{children:(0,r.jsxs)(aR,{onClick:()=>p(),children:[(0,r.jsx)(nt.A,{className:"mr-2 set-a-criteria",farIcon:"plus-circle"}),"Set a criteria"]})}),(0,r.jsx)(tn,{text:"Start of campaign",className:"mb-2"}),(0,r.jsx)(na.A,{condition:C.length>0,children:(0,r.jsx)(aW,{campaignId:n.id,stageDefinitions:C,setStageDefinitions:j})}),(0,r.jsx)(na.A,{condition:0===C.length,children:(0,r.jsx)(aO,{children:(0,r.jsxs)(aR,{onClick:()=>o(),children:[(0,r.jsx)(nt.A,{className:"mr-2",farIcon:"plus-circle"}),"Add a stage"]})})}),i&&(0,r.jsx)(nM,{isOpen:i,toggle:o,stage:s,campaignId:n.id,modalName:"create-stage-modal",isReadOnly:G}),c&&(0,r.jsx)(t$,{isOpen:c,toggle:p,campaign:n,criteria:u,criteriaOptions:["clientStatuses","clientTags","clientNotTaggedForCategory","activeSubscriptions","activeSubscriptionsServiceTypes","activeSubscriptionsAfterDate","includeEveryone"],deleteCriteria:x,deletingCriteria:N,isReadOnly:G}),m&&(0,r.jsx)(I.A,{isOpen:m,toggle:f,onConfirmation:()=>(0,a._)(function*(){yield M({variables:{business:t,campaignId:n.id,stageId:g},update:(e,t)=>
1{"ok"===t.data.status&&e.evict({id:"Campaign:".concat(n.id),fieldName:"stages"})}}),f()})(),title:"Delete stage",message:"Are you sure you want to delete this stage? This action cannot be undone."}),h&&(0,r.jsx)(I.A,{isOpen:h,toggle:x,onConfirmation:()=>(0,a._)(function*(){yield w({variables:{business:t,campaignId:n.id,criteriaId:v.id},update:(e,t)=>{"ok"===t.data.deleteCampaignCriteria.status&&(e.evict({id:"Campaign:".concat(n.id),fieldName:"criteria"}),c&&p())}})})(),title:"Delete criteria",message:"Are you sure you want to delete this criteria? This action cannot be undone."})]})})})}var aV=t(88055),aG=t.n(aV),az=t(59334),aY=t(62213);function aB(e){var{campaign:n}=e,t=(0,d.useSelector)(e=>e.app.business.name);(0,az.A)();var[s]=(0,_.A)(C.Hc,{successMessage:"Update successful",failureMessage:"Error updating campaign",update:(e,t)=>{"ok"===t.data.updateCampaign.status&&(e.evict({id:"ROOT_QUERY",fieldName:"paginatedCampaigns"}),e.evict({id:"Campaign:".concat(n.id)}),e.gc())}}),o=(0,l.useCallback)(e=>(0,a._)(function*(){yield(0,a._)(function*(){try{var a,r,l,o=(a={business:t,campaignId:n.id},(l={variables:(0,i._)({},aG()(e),a)}).variables.scheduledAt||(l.variables.scheduledAt=nr.M_),l.variables.emailTemplate?(l.variables.emailTemplateId=l.variables.emailTemplate.id,delete l.variables.emailTemplate):l.variables.emailTemplateId=nr.M_,l.variables.smsTemplate?(l.variables.smsTemplateId=l.variables.smsTemplate.id,delete l.variables.smsTemplate):l.variables.smsTemplateId=nr.M_,(null==(r=l.variables.smsLocation)?void 0:r.type)==="location"?(l.variables.smsLocationId=l.variables.smsLocation.id,delete l.variables.smsLocation):l.variables.smsLocationId=nr.M_,l);yield s(o)}catch(e){throw(0,j.Fk)(e),Error("Update failed")}})()})(),[t,n.id]);return(0,r.jsx)(ni.A,{title:"Campaign Details",children:(0,r.jsx)("div",{className:"row interface-content billing shadow",children:(0,r.jsx)("div",{className:"col-lg-12 dr",children:(0,r.jsx)(aY.A,{isLive:!0,isReadOnly:!(0,F.oz)(eA.ACTION_UPDATE,eE.RESOURCE_CAMPAIGN)||[V.g8,V.ol,V.kV,V.$R].includes(n.status),campaign:n,liveUpdate:o})})})})}var aq=t(23166);function aH(e){var n,{campaign:t}=e;return t.emailTemplate?(0,r.jsx)(n$.A,{isEmailTemplate:!0,hideHeader:!0,templateId:null==(n=t.emailTemplate)?void 0:n.id,redirectOnSave:!1,previewMode:[V.g8,V.kV,V.ol].includes(t.status)}):(0,r.jsx)(aq.A,{children:"This campaign does not have an email template."})}t(42273);var aJ=t(31778);function aX(){var e=(0,s._)([""]);return aX=function(){return e},e}function aK(){var e=(0,s._)(["\n flex: 2 1 auto;\n"]);return aK=function(){return e},e}var aQ=y.Ay.div(aX()),aZ=(0,y.Ay)(Y.A)(aK()),a0=e=>{var n,t,a,i,s,l,o,c,u,p,m,g,f,h,v,x,{campaign:b}=e,y=(0,d.useSelector)(e=>e.app.business.smsFeatureEnabled),S=b.numberAudience||0,_=b.numberEmailRecipients||0,T=b.numberSmsRecipients||0,A=b.numberMarketingDisabled||0,E=b.numberSmsOptOuts||0,C=(null==(n=b.emailStats)?void 0:n.sent)||0,I=(null==(t=b.emailStats)?void 0:t.delivered)||0,w=(null==(a=b.emailStats)?void 0:a.opened)||0,D=(null==(i=b.emailStats)?void 0:i.failed)||0,N=(null==(s=b.emailStats)?void 0:s.bounces)||0,M=(null==(l=b.emailStats)?void 0:l.complaints)||0,R=(null==(o=b.emailStats)?void 0:o.unsubscribes)||0,k=(null==(c=b.emailStats)?void 0:c.views)||0,O=null==(p=b.emailStats)||null==(u=p.links)?void 0:u.reduce((e,n)=>{var{clicks:t}=n;return t?e+=t:e},0),L=(null==(m=b.smsStats)?void 0:m.sent)||0,F=(null==(g=b.smsStats)?void 0:g.delivered)||0,$=(null==(f=b.smsStats)?void 0:f.failed)||0;return(0,r.jsxs)(aQ,{children:[(0,r.jsx)(aJ.A,{children:"Audience"}),(0,r.jsxs)(z.A,{children:[(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-users",tooltip:"number of users who match the audience criteria",text:"Total Audience",number:"".concat(S)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-envelope",tooltip:"number of audience members(and account managers) who have an email address",text:"Email Recipients",number:"".concat(_)}),y&&(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-comment-sms",tooltip:"number of audience members(and account managers) who have a primary phone number",text:"SMS Recipients",number:"".concat(T)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-user-minus",tooltip:"users that have opted out of receiving marketing emails",text:"Marketing Opt-Outs",number:"".concat(A)}),y&&(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-comment-minus",tooltip:"users that have opted out of receiving any sms communication",text:"SMS Opt-Outs",number:"".concat(E)})]}),(0,r.jsx)(aJ.A,{children:"Performance"}),(0,r.jsxs)(z.A,{children:[(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-inbox-out",tooltip:"",text:"Emails Sent",number:"".concat(C)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-inbox-in",tooltip:"",text:"Emails Delivered",number:"".concat(I
1)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-envelope-open-text",tooltip:"of the emails sent, this is the number of emails that have been opened at least once",text:"Emails Opened",number:"".concat(w)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-exclamation-triangle",tooltip:"",text:"Emails Failed",number:"".concat(D)})]}),y&&(0,r.jsxs)(z.A,{children:[(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-comment-sms",tooltip:"",text:"SMS Sent",number:"".concat(L)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-comment-check",tooltip:"",text:"SMS Delivered",number:"".concat(F)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-comment-exclamation",tooltip:"",text:"SMS Failed",number:"".concat($)})]}),(0,r.jsxs)(z.A,{children:[(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-envelope-open",tooltip:"every time an email is opened, it counts as a view",text:"Email Views",number:"".concat(k)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-bullseye-pointer",tooltip:"counted every time a link is clicked",text:"Email Clicks",number:"".concat(O)})]}),(0,r.jsx)(aJ.A,{children:"Reputation"}),(0,r.jsxs)(z.A,{children:[(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-triangle-exclamation",tooltip:"email could not be delivered, typically due to invalid email address, or recipient's email server rejecting the email",text:"Bounces",number:"".concat(N)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-skull-crossbones",tooltip:"users who have reported your email as spam",text:"Complaints",number:"".concat(M)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-user-minus",tooltip:"users who have opted out of receiving marketing emails",text:"Unsubscribes",number:"".concat(R)})]}),(null==(v=b.emailStats)||null==(h=v.links)?void 0:h.length)>0&&(0,r.jsx)(aJ.A,{children:"Links"}),[...(null==(x=b.emailStats)?void 0:x.links)||[]].sort((e,n)=>(0,j.S$)(e.uniqueClicks,n.uniqueClicks,"desc")).map(e=>{var n;return n=e.link.includes(window.location.origin)?e.link.replace(window.location.origin,""):e.link,(0,r.jsxs)(z.A,{children:[(0,r.jsx)(aZ,{bg:"primary",faIcon:"far fa-link",text:"Link Url",number:n}),(0,r.jsxs)("div",{className:"d-flex flex-row",children:[(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-bullseye-pointer",tooltip:"counted every time the link is clicked",text:"Total Clicks",number:"".concat(e.clicks)}),(0,r.jsx)(Y.A,{bg:"primary",faIcon:"far fa-bullseye-pointer",tooltip:"number of recipients who clicked the link (counted once per sent email)",text:"Recipient Clicks",number:"".concat(e.uniqueClicks)})]})]},e.link)})]})};function a1(e){var n,{campaign:t}=e;return t.smsTemplate?(0,r.jsx)(n$.A,{hideHeader:!0,templateId:null==(n=t.smsTemplate)?void 0:n.id,redirectOnSave:!1}):(0,r.jsx)(aq.A,{children:"This campaign does not have sms template."})}var a2=t(99294),a3=t(71913),a5=t(25167),a4=t(69348),a6=t(57682),a7=t(46793),a8=t(6702),a9=t(14658);function ie(){var e=(0,s._)(["\n display: flex;\n flex-wrap: wrap;\n padding: 5px;\n"]);return ie=function(){return e},e}function it(){var e=(0,s._)(["\n min-width: 280px;\n :not(:last-child) {\n margin-bottom: 10px;\n }\n"]);return it=function(){return e},e}function ia(){var e=(0,s._)(["\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n"]);return ia=function(){return e},e}function ii(){var e=(0,s._)(["\n width: 220px !important;\n\n .graphic {\n width: 40px !important;\n height: 40px !important;\n div div {\n line-height: 40px !important;\n font-size: 14px !important;\n }\n }\n"]);return ii=function(){return e},e}function is(){var e=(0,s._)(["\n mutation sendCampaignTestEmail(\n $business: ID!\n $campaignId: ID!\n $recipientIds: [ID]!\n ) {\n sendCampaignTestEmail(\n business: $business\n campaignId: $campaignId\n recipientIds: $recipientIds\n ) {\n status\n error\n recipientsNotNotified {\n id\n name\n }\n }\n }\n"]);return is=function(){return e},e}function ir(){var e=(0,s._)(["\n mutation sendCampaignTestSms(\n $business: ID!\n $campaignId: ID!\n $recipientIds: [ID]!\n ) {\n sendCampaignTestSms(\n business: $business\n campaignId: $campaignId\n recipientIds: $recipientIds\n ) {\n status\n error\n recipientsNotNotified {\n id\n name\n }\n }\n }\n"]);return ir=function(){return e},e}var il=y.Ay.div(ie()),io=(0,y.Ay)(a9.A)(it()),ic=y.Ay.div(ia()),id=(0,y.Ay)(a7.A)(ii()),iu=(0,e1.J1)(is()),ip=(0,e1.J1)(ir()),im="Email",ig="form",ih="results",iv=e=>{var n,t,{isOpen:s,toggle:o,campaignId:c,notificationType:u}=e,p=(0,d.useSelector)(e=>e.app.business.name),[m,g]=(0,l.useState)([]),[f,h]=(0,l.useState)([]),v=()=>{};u===im?(n=iu,v=e=>e.data.sendCampaignTestEmail,t='"[Campaign Test Email]" will be added to the subject line of the email. This will not be present in the real campaign email'):"SMS"===u&&(n=ip,v=e=>e.data.sendCampaignTestSms,t='"[Campaign Test SMS]" will be added to the beginning of the sms message. This will not be present in the real campaign sms');var[x,{loading:b}]=(0,_.A)(n,{processor:v,processorDependencies:[u],successMessage:"Campaign test ".concat(u.toLowerCase()," sent successfully"),failureMessage:"Failed to send campaign test ".concat(u.toLowerCase())}),y=ig;return(null==f?void 0:f.length)>0&&(y=ih),(0,r.jsxs)(N.A,{modalName:"send-campaign-test-notification",isOpen:s,toggle:o,wrapClassName:"modal-primary",size:"md",children:[(0,r.jsxs)(a6.default,{toggle:o,children:["Send Campaign Test ",u]}),(0,r.jsxs)(a5.default,{children:[y===ig&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(no.A,{field:{name:"recipient",id:"recipient-input-id",iconClass:"far fa-user",title:"Recipient"},children:(0,r.jsx)(td.Cw,{isClearable:!0,placeholder:"Select Staff",instanceId:"notification-recipient-staff",styles:ti.K6,queryMiddleware:e=>e.map(e=>u===im?(0,e9._)((0,i._)({},e),{subtitle:e.email||"No email",isDisabled:!e.email}):"SMS"===u?(0,e9._)((0,i._)({},e),{subtitle:(0,a8.n4)(e.primaryPhone)||"No phone number",isDisabled:!e.primaryPhone}):e),value:"",onChange:e=>{!e||(null==m?void 0:m.find(n=>n.id===e.id))||g([...m||[],e])}})}),(0,r.jsx)(il,{children:null==m?void 0:m.map((e,n)=>(0,r.jsx)(io,{staff:e,id:"staff-item-".concat(n),onRemove:e=>g([...m.filter(n=>n.id!==e)])},e.id))}),(0,r.jsx)(nf.c,{text:t,iconColorClassName:"text-info"})]}),y===ih&&(0,r.jsxs)("div",{className:"d-flex flex-column align-items-center",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("i",{className:"far fa-exclamation-triangle text-warning mr-2"}),"Not all recipients were notified"]}),(0,r.jsxs)("div",{className:"d-flex flex-column p-2",children:[u===im&&(0,r.jsx)("p",{children:"The following recipients encountered an error sending test email, and have NOT been notified:"}),"SMS"===u&&(0,r.jsx)("p",{children:"The following recipients have been flagged for invalid phone number or encountered some other error sending the test sms, and have NOT been notified:"}),(0,r.jsx)(ic,{children:f.map(e=>(0,r.jsx)(id,{client:e},e.id))})]})]})]}),(0,r.jsx)(a4.default,{children:(0,r.jsxs)(D.A,{type:"submit",id:"submit-send-campaign-test-".concat(u.toLowerCase()),className:"btn btn-primary btn-rounded",loading:b,disabled:!(null==m?void 0:m.length),onClick:()=>(0,a._)(function*(){try{var e,n=yield x({variables:{business:p,campaignId:c,recipientIds:null==m?void 0:m.map(e=>e.id)}});if((null==n||null==(e=n.recipientsNotNotified)?void 0:e.length)>0)return void h(n.recipientsNotNotified);o()}catch(e){(0,j.Fk)(e)}})(),children:["Send Test ",u]})})]})},ix=t(86095),ib=t(53199);function iy(){var e=(0,s._)(["\n padding: 0 15px !important;\n "]);return iy=function(){return e},e}function iS(){var e=(0,s._)(["\n height: 100%;\n .main div.widget {\n background: transparent !important;\n }\n\n .campaign-editor {\n a.nav-link {\n cursor: pointer !important;\n font-size: 0.9em !important;\n outline: none !important;\n background: transparent !important;\n }\n\n a.nav-link:after {\n visibility: initial !important;\n background: transparent !important;\n background-color: #ddd !important;\n }\n\n a.active.nav-link:after {\n background-color: #303f9f !important;\n }\n\n .nav-tabs,\n .nav.nav-tabs {\n padding: 8px 20px !important;\n background: transparent !important;\n }\n\n .nav-item {\n background: transparent !important;\n }\n }\n\n #profile-body {\n height: 100%;\n\n .tab-content {\n height: 100%;\n ","\n\n & > .tab-pane.active {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n #editor-container {\n margin-bottom: 40px;\n }\n }\n }\n }\n"]);return iS=function(){return e},e}function i_(){var e=(0,s._)(["\n .error-detail div {\n color: #ffa000 !important;\n }\n"]);return i_=function(){return e},e}function iT(){var e=(0,s._)(["\n font-size: 14px;\n color: #303f9f;\n text-decoration: none;\n"]);return iT=function(){return e},e}var iA=y.Ay.div(iS(),e=>(0,P.wb)(e.templateEditorMaximized)(iy()));
1(0,y.Ay)(M.A)(i_());var iE=e=>{var n=[];return e.stageType===V.TJ&&(e.sendEmail&&!e.emailTemplate&&n.push("Email notification is enabled but no template is selected."),e.sendSms&&!e.smsTemplate&&n.push("SMS notifications are enabled but no SMS template is selected."),e.sendEmail||e.sendSms||n.push("Both email and SMS notifications are disabled. Please enable at least one notification type to proceed.")),e.stageType===V.Ox&&e.delayHours<=0&&n.push("Delay must be greater than 0 hours."),n},iC=(0,y.Ay)(D.A)(iT()),ij=e=>{var n,t,s,{isOpen:o,toggle:u,campaign:f,loading:h,onScheduleCampaign:v,onActivateCampaign:x}=e,b=(0,d.useSelector)(e=>e.app.business.name),{data:y,loading:S}=(0,T.A)({query:C.aN,variables:{business:b},processor:e=>{var n;return null==e||null==(n=e.business)?void 0:n.emailDomains}}),_=f.campaignType===V.y2,A=["verified","partially_verified"].includes(null==y||null==(n=y[0])?void 0:n.status),E=(null==y||null==(t=y[0])?void 0:t.status)==="partially_verified",I=!1;I=f.campaignType===V.y2?f.sendEmail&&!A:(null==(s=f.stageDefinitions)?void 0:s.some(e=>e.stageType===V.TJ&&e.sendEmail&&!A))||E;var{errors:w,warnings:M}=(e=>{var n=[];if(e.campaignType===V.y2)n.push(...iE((0,i._)({stageType:V.TJ},e))),0===e.numberAudience&&n.push("This campaign has no audience with the current criteria.");else{(null==(t=e.stageDefinitions)?void 0:t.length)===0&&n.push("No stages have been created."),null==(a=e.stageDefinitions)||a.forEach(e=>{var t=iE(e);t.length>0&&n.push("Stage ".concat(e.name," has the following errors: ").concat(t.join(", ")))});var t,a,s,r,l,o,c=null==(s=e.stageDefinitions)?void 0:s.find(e=>e.stageType===V.np),d=null==(r=e.stageDefinitions)?void 0:r.find(e=>e.id===(null==c?void 0:c.loopToStageId));d&&((null==(o=e.stageDefinitions)?void 0:o.slice(null==(l=e.stageDefinitions)?void 0:l.indexOf(d))).some(e=>e.stageType===V.Ox)||n.push("Your campaign setup includes a loop stage without a subsequent delay stage."))}return 0===e.criteria.length&&n.push("No audience criteria has been created."),{errors:n,warnings:[]}})(f),R=![V.g8,V.ol,V.kV].includes(f.status)&&f.scheduledAt&&c()().isAfter(f.scheduledAt),[k,O]=(0,l.useState)(R?c()().add(1,"hour").startOf("hour"):f.scheduledAt),[L,F]=(0,l.useState)(!1);return(0,r.jsxs)(N.A,{id:"schedule-campaign-confirmation-modal",isOpen:o,toggle:u,children:[(0,r.jsx)(p.A,{toggle:u,children:_?"Schedule Campaign":"Activate Campaign"}),(0,r.jsxs)(m.A,{children:[w.length>0?(0,r.jsxs)("div",{className:"mb-3",children:[(0,r.jsx)("p",{className:"mb-1",children:"Please fix the following errors before scheduling"}),w.map(e=>(0,r.jsx)(a3.K,{text:e}))]}):(0,r.jsxs)("div",{children:[(0,r.jsx)(nu.CD,{title:_?"Scheduled at":"Start date",className:"mb-2",children:(0,r.jsx)(tr.A,{showTimePicker:!0,showClearIcon:!0,inlineTimePicker:!0,allowPast:!1,value:k,onChange:O,iconClass:"calendar-alt",className:"mb-2",disabled:L})}),(0,r.jsx)(nu.CD,{title:_?"Send now":"Activate now",className:"mb-2",children:(0,r.jsx)(a2.A,{checked:L,onChange:e=>{F(e.target.checked)}})}),L&&(0,r.jsx)("span",{className:"text-xs",children:"This campaign will start processing within minutes."})]}),S&&(0,r.jsx)(ib.A,{}),!S&&E&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ix.A,{text:"Your email domain is not fully verified and therefore not meeting the latest requirements. If you are sending a large amount of emails it is recommend to urgently re-verify your domain full, or your domain risks being flagged for spam.",className:"mb-2"}),(0,r.jsx)(nf.c,{iconColorClassName:"text-info",text:(0,r.jsxs)("div",{children:["To fully verify your domain,"," ",(0,r.jsx)(iC,{route:"/business/".concat(b,"/edit#Integrations"),children:"click here"}),". ","For more details on this please see"," ",(0,r.jsx)("a",{href:"https://kb.opus1.io/email-campaigns-verify-your-domain",target:"_blank",rel:"noreferrer",children:"this article"})]})})]}),!S&&I&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a3.K,{className:"text-danger",text:"Email domain must be verified before you can schedule email campaigns"}),(0,r.jsx)(nf.c,{iconColorClassName:"text-info",text:(0,r.jsxs)("div",{children:["To add an email domain,"," ",(0,r.jsx)(iC,{route:"/business/".concat(b,"/edit#Integrations"),children:"click here"}),". ","For more details on this please see"," ",(0,r.jsx)("a",{href:"https://kb.opus1.io/email-campaigns-ver
1ify-your-domain",target:"_blank",rel:"noreferrer",children:"this article"})]})})]})]}),(0,r.jsx)(g.A,{children:(0,r.jsx)(D.A,{disabled:!!w.length||I||S,loading:h,className:"btn btn-rounded btn-primary",onClick:()=>(0,a._)(function*(){try{yield(_?v:x)(L?c()():k),u()}catch(e){(0,j.Fk)(e)}})(),tooltip:w.length?"Please fix the errors above before ".concat(_?"scheduling":"activating"):null,children:"".concat(_?"Schedule":"Activate"," Campaign").concat(L?" Now":"")})})]})},iI={[V.y2]:["Details","Email Template","SMS Template","Audience","Activity","Report"],[V.NK]:["Details","Stages","Activity"]},iw=e=>{var{match:n}=e,{campaignId:t}=n.params,i=(0,u.W6)(),s=(0,d.useSelector)(e=>e.app.business.name);(0,d.useSelector)(e=>e.app.business.smsFeatureEnabled);var o=(0,d.useSelector)(e=>e.campaigns.templateEditorMaximized),[c,p]=(0,l.useState)(decodeURI(i.location.hash.substring(1))||"Details"),[m,{loading:g}]=(0,_.A)(C.wn,{successMessage:null,failureMessage:"Error updating campaign status"}),[y,{loading:D}]=(0,_.A)(C.TV,{successMessage:"Campaign duplicated successfully",failureMessage:"Error duplicating campaign"}),[N,{loading:M}]=(0,_.A)(C.Bp,{successMessage:"Campaign scheduled successfully",failureMessage:"Error scheduling campaign"}),[R,{loading:k}]=(0,_.A)(C.ln,{successMessage:"Campaign activated successfully",failureMessage:"Error activating campaign"}),[O,L]=(0,A.A)(),[F,$]=(0,A.A)(),[P,W,U]=(0,S.A)(),[G,{loading:z}]=(0,_.A)(C.t0,{successMessage:"Campaign deleted successfully",failureMessage:"Error deleting campaign"}),{data:Y,loading:B,error:q,refetch:H}=(0,T.A)({query:C.O_,variables:{business:s,campaignId:t},processor:e=>null==e?void 0:e.campaign});q&&(0,tG.Ay)();var J=(0,l.useMemo)(()=>(null==Y?void 0:Y.campaignType)?(iI[Y.campaignType]||[]).filter(e=>(Y.campaignType!==V.y2||("Email Template"!==e||!!Y.sendEmail&&!!Y.emailTemplate)&&("SMS Template"!==e||!!Y.sendSms&&!!Y.smsTemplate))&&!0):[],[Y]);return(0,r.jsxs)(iA,{className:"d-flex flex-column",templateEditorMaximized:o,children:[(0,r.jsx)("div",{className:o?"d-none":"d-block",children:Y&&(0,r.jsx)(e0,{campaign:Y,onSendTestSms:()=>{var e,n=null==Y||null==(e=Y.smsTemplate)?void 0:e.id;Y.sendSms?n?U("SMS"):(0,E.UG)({title:"No SMS template selected for this campaign!"}):(0,E.UG)({title:"SMS sending is disabled!"})},onSendTestEmail:()=>{var e,n=null==Y||null==(e=Y.emailTemplate)?void 0:e.id;Y.sendEmail?n?U(im):(0,E.UG)({title:"No email template selected for this campaign!"}):(0,E.UG)({title:"Email sending is disabled!"})},onDeleteCampaign:$,deletingCampaign:z,onScheduleCampaign:L,schedulingCampaign:M,activatingCampaign:k,onDuplicateCampaign:()=>(0,a._)(function*(){try{yield y({variables:{business:s,campaignId:t},update:(e,n)=>{"ok"===n.data.duplicateCampaign.status&&(e.evict({id:"ROOT_QUERY",fieldName:"paginatedCampaigns"}),i.push("/campaigns/".concat(n.data.duplicateCampaign.campaign.id,"/edit")))}})}catch(e){(0,j.Fk)(e)}})(),duplicatingCampaign:D,onUpdateCampaignStatus:e=>{var{status:n,successMessage:a}=e;m({variables:{business:s,campaignId:t,status:n},update:(e,n)=>{"ok"===n.data.updateCampaignStatus.status&&(e.evict({id:"ROOT_QUERY",fieldName:"paginatedCampaigns"}),e.gc(),H(),(0,E.VX)({title:a}))}})},updatingCampaignStatus:g,onSetActiveTab:p,showHeaderStats:"Report"!==c})}),(0,r.jsxs)("div",{id:"profile-body",className:"campaign-editor",children:[(0,r.jsx)(f.A,{tabs:!0,className:["nav nav-tabs flex-row justify-content-between",o?"d-none":"d-flex"].join(" "),children:J.map(e=>(0,r.jsx)(h.A,{children:(0,r.jsx)(v.A,{id:"campaign-editor-".concat(e.toLowerCase().replace(" ","-"),"-tab"),className:c===e?"active":"",onClick:()=>{p(e)},href:"#".concat(e),children:(0,r.jsx)("span",{children:e})})},e))}),B&&(0,r.jsx)(w.A,{}),Y&&(0,r.jsxs)(x.A,{activeTab:c,children:[(0,r.jsx)(b.A,{tabId:"Details",children:"Details"===c&&(0,r.jsx)(aB,{campaign:Y,refetch:H})}),(0,r.jsx)(b.A,{tabId:"Stages",children:"Stages"===c&&(0,r.jsx)(aU,{campaign:Y,refetch:H})}),(0,r.jsx)(b.A,{tabId:"Audience",children:"Audience"===c&&(0,r.jsx)(ax,{campaign:Y,refetchCampaign:H})}),(0,r.jsx)(b.A,{tabId:"Email Template",children:"Email Template"===c&&(0,r.jsx)(aH,{campaign:Y})}),(0,r.jsx)(b.A,{tabId:"SMS Template",children:"SMS Template"===c&&(0,r.jsx)(a1,{campaign:Y})}),(0,r.jsx)(b.A,{tabId:"Activity",children:"Activity"===c&&(0,r.jsx)(e8,{campaignId:t})}),(0,r.jsx)(b.A,{tabId:"Report",children:"Report"===c&&(0,r.jsx)(a0,{campaign:Y})})]})]}),F&&(0,r.jsx)(I.A,{isOpen:F,toggle:$,title:"Delete Campaign",message:(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{children:"This action is irreversible"}),(0,r.jsx)("li",{children:"If campaign is scheduled, it will be canceled, and notifications will not be sent"})]}),confirmationButtonTitle:"Delete Campaign",onConfirmation:()=>(0,a._)(function*(){try{yield G({variables:{business:s,campaignId:t}
1,update:(e,n)=>{"ok"===n.data.deleteCampaign.status&&(i.push("/campaigns"),e.evict({id:"ROOT_QUERY",fieldName:"paginatedCampaigns"}),e.gc())}})}catch(e){(0,j.Fk)(e)}})()}),O&&(0,r.jsx)(ij,{isOpen:O,toggle:L,loading:M||k,campaign:Y,onScheduleCampaign:e=>(0,a._)(function*(){yield N({variables:{business:s,campaignId:t,scheduledAt:e},update:(e,n)=>{"ok"===n.data.scheduleCampaign.status&&e.evict({id:"Campaign:".concat(t),fieldName:"status"})}})})(),onActivateCampaign:e=>(0,a._)(function*(){yield R({variables:{business:s,campaignId:t,scheduledAt:e},update:(e,n)=>{"ok"===n.data.activateCampaign.status&&e.evict({id:"Campaign:".concat(t),fieldName:"status"})}})})()}),P&&(0,r.jsx)(iv,{isOpen:P,toggle:U,campaignId:t,notificationType:W})]})}},26999:function(e,n,t){var a=t(50467),i=t(71893),s=t(55456),r=t(84577),l=t(74848),o=t(96540),c=t(5556),d=t.n(c);function u(){var e=(0,r._)(["\n display: flex;\n flex-direction: row;\n align-items: center;\n padding-right: 10px;\n input {\n width: 65px;\n }\n span {\n margin-left: 10px;\n padding-right: 5px;\n }\n"]);return u=function(){return e},e}var p=t(17378).Ay.div(u());function m(e,n){return 12*(e||0)+(n||0)}class g extends o.Component{UNSAFE_componentWillReceiveProps(e){this.setStateMonths(e.formData)}render(){return(0,l.jsxs)("div",{className:"",children:[(0,l.jsxs)("div",{className:"pb-2",children:[this.props.schema.title,this.props.required&&"*"]}),(0,l.jsxs)("div",{className:"d-flex flex-row align-items-center",children:[(0,l.jsxs)(p,{children:[(0,l.jsx)("input",{id:this.props.uiSchema["ui:options"].idYears,className:"form-control",placeholder:"Years",type:"number",value:this.state.years,onChange:this.handleYearsChange,disabled:this.props.isDisabled}),(0,l.jsx)("span",{children:"Years"})]}),(0,l.jsxs)(p,{children:[(0,l.jsx)("input",{id:this.props.uiSchema["ui:options"].idMonths,className:"form-control",placeholder:"Months",type:"number",value:this.state.months,onChange:this.handleMonthsChange,disabled:this.props.isDisabled}),(0,l.jsx)("span",{children:"Months"})]})]})]})}constructor(e){super(e),(0,a._)(this,"setStateMonths",e=>{var n=Math.floor((e||0)/12),t=e||0;t%=12,this.setState({years:n,months:t})}),(0,a._)(this,"handleYearsChange",e=>{var{onChange:n}=this.props,{months:t}=this.state,a=Number(e.target.value);a<0||(this.setState(e=>(0>m(a,t)&&(a=e.years),(0,s._)((0,i._)({},e),{years:a}))),n(m(a,t)))}),(0,a._)(this,"handleMonthsChange",e=>{var{onChange:n}=this.props,{years:t}=this.state,a=Number(e.target.value);a>11?a=11:a<0&&(a=0),this.setState(e=>(0>m(t,a)&&(a=e.months),(0,s._)((0,i._)({},e),{months:a}))),n(m(t,a))});var{formData:n}=e;this.state={years:0,months:0},this.state.years=Math.floor((n||0)/12),this.state.months=n||0,this.state.months%=12}}g.defaultProps={formData:0},g.propTypes={formData:d().number,onChange:d().func.isRequired},n.A=g},24181:function(e,n,t){t.d(n,{j:function(){return a},z:function(){return i}}),t(93632),t(45336),t(23446);var a=["Member","Member Lost","Lifetime Member"],i=[...a].map(e=>e.toLowerCase())},88583:function(e,n,t){var a=t(95093),i=t.n(a),s=t(26347);n.A=e=>{if(!e)return null;var{status:n}=e;return n===s.$R&&e.scheduledAt&&i()(e.scheduledAt).isAfter(i()())&&e.campaignType===s.NK&&(n=s.kY),n}},81297:function(e,n,t){t(93632);var a=t(96540);n.A=()=>{var[e,n]=(0,a.useState)(null);return[e,(0,a.useCallback)(e=>{n(e)},[n])]}},59334:function(e,n,t){var a=t(96540);n.A=()=>{(0,a.useEffect)(()=>{var e=e=>{13===e.keyCode&&e.preventDefault()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[])}}}]); 2//# sourceMappingURL=17617.83310a20.js.map
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.