1import{k as we,a3 as Nt,K as s,l as d,z as a,M as h,x as f,F as ce,E as de,B as T,y as O,p as oe,H as i,D as Oe,s as L,A as B,d as $,j as u,q as Mt,w as ye,Q as st,a7 as Ce,n as $e}from"./vendor-B4gcsg9q.js";import{cR as lt,s as te,_ as W,cz as Re,cp as Be,bR as it,n as Ne,aL as Tt,j as $t,aY as Et,aC as Dt,u as rt,cr as At,c as Ot,o as Pe,z as _e,B as Rt,bU as Bt,Q as Ft,q as Ut,k as Fe,cG as ct,p as Jt,a as Ee,h as he,T as xe,m as De,a7 as We}from"./index-B9Tnya_p.js";import{l as Lt}from"./lodash-JZpH9MVV.js";import{s as zt,t as He,k as jt,l as Gt,m as Qe,T as Xe,S as Vt,_ as Kt,v as Ze,u as Yt,w as et,x as qt,b as Wt,y as tt,p as Ht,z as Qt,A as Xt,B as Zt,P as at,C as ve,c as Ie,a as Ae}from"./main-layout.vue_vue_type_script_setup_true_lang-C8kiLnfp.js";import{u as ea}from"./useConnectedPlatforms-B_MOV9P-.js";import{u as dt}from"./socialMediaWidget-B0A78ISZ.js";import{_ as ta,e as nt,a as aa}from"./viewCampaignItemModal.vue_vue_type_script_setup_true_lang-R9WuImIW.js";import{_ as na}from"./topic-filter-bar.vue_vue_type_script_setup_true_lang-CGvI_8bb.js";import{S as oa}from"./SocialIntegrationStatusBar-AXDvEXYU.js";import{A as ot}from"./autopost-timeline-sidebar-DMqfi3mQ.js";import{C as sa}from"./checkboxDropdown-Bd49VbM7.js";import{_ as la}from"./BreadcrumbNav.vue_vue_type_script_setup_true_lang-BHgWbIMw.js";import"./user-avatar-DKE2GE5G.js";import"./canvas-CwdzvQJI.js";import"./EmailBuilderFullPreview.vue_vue_type_script_setup_true_lang-DpeoOqzM.js";import"./share-icon.vue_vue_type_script_setup_true_lang-BclJAP1G.js";import"./datetimePickerWidget-CeakefG-.js";import"./floating-ui.dom-Bko5kdKq.js";import"./kcm-tooltip.vue_vue_type_script_setup_true_lang-D0uz5fg8.js";import"./banner-alert.vue_vue_type_style_index_0_lang-BsQdOSJu.js";import"./planCatalog-X5--2IVR.js";import"./billing-form.vue_vue_type_script_setup_true_lang-DpAp4aqz.js";import"./recurly-form-Buts6VHe.js";import"./AppOverlay-DZvJi9E-.js";import"./captionEditorWidget-C4Vr4rC9.js";import"./SocialGraphicEditor.vue_vue_type_style_index_0_lang-DjYJM1Gl.js";import"./AppCollapse-CN0G8571.js";import"./fileUtils-DzlLMhl2.js";import"./compression.service-DAvk9aIp.js";import"./image-fbHNfrKT.js";import"./parser-DGiNi3vV.js";import"./local.service-DNQycZgn.js";import"./realtalkRecordingDropdown-BVZxk2fl.js";import"./realtalk-previous-recording-item-DcKDPn50.js";import"./clickable-badge.vue_vue_type_script_setup_true_lang-B54hYQZp.js";const ia={class:"flex items-center gap-1"},ra=["icon"],ca={class:"text-slate-500 fw-medium"},da={key:0,class:"rounded-md border p-3 border-amber-300 bg-amber-50 text-amber-700 m-0 flex items-center gap-2"},ua={class:"warnings-list"},ma={class:"flex justify-end gap-2"},pa=we({__name:"campaignSelectedContent",props:{campaignItem:{},index:{}},emits:["delete","viewDetails"],setup(v,{emit:F}){const N=v,z=F,U=lt(),M=$(()=>JSON.parse(N.campaignItem.post_data));function x(){z("viewDetails",N.index)}function H(I){return new Date(I).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!0})}function w(I){return{facebook:"mdi:facebook",linkedin:"mdi:linkedin",instagram:"mdi:instagram",x:te.getPlatformIcon("x"),twitter:te.getPlatformIcon("twitter"),tiktok:"fa6-brands:tiktok"}[I]||"mdi:web"}const b=$(()=>M.value.feed_files?.includes(".mp4")??!1),S=$(()=>{const I=!N.campaignItem.networks[0]?.network?.slug,C=M.value.content_type==="script"&&!b.value,E=Tt(N.campaignItem.platform??"")&&$t()&&!Et(M.value.content_type??"")?"TikTok only supports video and script content.":null;return[I?"Missing social media connection.":null,C?"No Realtalk recording selected.":null,E].filter(Boolean)}),y=u();function J(){y.value?.show()}function j(){y.value?.close()}function G(){z("delete",N.index),j()}return Nt(()=>{y.value?.close()}),(I,C)=>(s(),d("div",null,[a("div",{class:"mb-3 cursor-pointer",onClick:x},[h(i(it),{title:M.value.title,published_at:M.value.published_at??"",content_type:M.value.content_type,featured_image:M.value.featured_image,contents:M.value.contents,slug:M.value.slug,"is-router-link":!1},{badge:f(()=>[i(U)?O("",!0):(s(),L(i(Re),{key:0,"content-type":i(Be)(M.value)},null,8,["content-type"]))]),"trailing-action":f(()=>[h(i(W),{variant:"error",ghost:"",class:"p-0 flex items-start","aria-label":"Remove from campaign",onClick:Oe(J,["stop"])},{default:f(()=>[...C[0]||(C[0]=[a("iconify-icon",{icon:"tabler:trash"},null,-1)])]),_:1})]),meta:f(()=>[a("div",ia,[a("iconify-icon",{icon:w(v.campaignItem.platform??""),class:oe(i(te).getPlatformColorClass(v.campaignItem.platform??"")),style:{"font-size":"16px"}},null,10,ra),a("small",ca,T(H(v.campaignItem.scheduled_for)),1)])]),footer:f(()=>[S.value.length>0?(s(),d("div",da,[C[1]||(C[1]=a("iconify-icon",{icon:"mdi:alert",style:{"font-size":"1.2rem"}},null,-1)),a("div",ua,[(s(!0),d(ce,null,de(S.value,E=>(s(),d("span",{key:E},T(E),1))),128))])])):O("",!0)]),_:1},8,["title","published_at","content_type","featured_image","contents","slug"])]),h(i(Ne),{ref_key:"removeConfirmModal",ref:y,"show-close-button":!1,title:"Confirm Removal",class:"modal-w-md temp-modal-fix"},{default:f(()=>[C[4]||(C[4]=a("p",null,"Are you sure you want to remove this content from the campaign?",-1)),a("footer",ma,[h(i(W),{ghost:"",onClick:j},{default:f(()=>[...C[2]||(C[2]=[B("Cancel",-1)])]),_:1}),h(i(W),{variant:"error",onClick:G},{default:f(()=>[...C[3]||(C[3]=[B("Remove",-1)])]),_:1})])]),_:1},512)]))}}),va={class:"text-slate-500 fw-medium"},ga=we({__name:"campaignAdditionalContent",props:{content:{},disabled:{type:Boolean}},emits:["viewDetails"],setup(v,{emit:F}){const N=v,z=F;function U(){N.disabled||z("viewDetails",N.content.id)}return(M,x)=>(s(),d("div",{class:oe(["mb-3",{"cursor-not-allowed":v.disabled,"cursor-pointer":!v.disabled}]),style:Mt({opacity:v.disabled?.6:1}),onClick:U},[h(i(it),{title:v.content.title,published_at:v.content.published_at,content_type:v.content.content_type,featured_image:v.content.featured_image,contents:v.content.contents,slug:v.content.slug,"is-router-link":!1,"hide-estimated-reading-time":""},{badge:f(()=>[h(i(Re),{"content-type":i(Be)(v.content)},null,8,["content-type"])]),meta:f(()=>[a("small",va,T(i(Dt)(v.content.published_at)),1)]),_:1},8,["title","published_at","content_type","featured_image","contents","slug"])],6))}}),fa={class:"additional-content-tab"},ha={class:"mb-5"},ya={key:0,class:"w-full"},_a={key:2,class:"w-full text-center flex flex-wrap relative"},wa={key:0,class:"loading-overlay-conversion flex items-center justify-center"},ba={class:"bg-white rounded p-4 shadow-lg"}
1,ka={key:1,class:"text-center py-5 text-slate-500 w-full"},Sa={key:0,class:"loading-overlay-conversion flex items-center justify-center"},Ca={class:"bg-white rounded p-4 shadow-lg"},xa={key:1,class:"loading-overlay flex items-center justify-center"},Ia={class:"bg-white rounded p-3 shadow"},Pa={key:2,class:"text-center py-5"},Na={class:"rounded-md border p-3 border-red-300 bg-red-50 text-red-700",role:"alert"},Ma={class:"skeleton-rows"},Ta={style:{display:"-webkit-box","line-clamp":"2","-webkit-line-clamp":"2","-webkit-box-orient":"vertical",overflow:"hidden"}},$a={class:"text-slate-500"},Ea={key:0,class:"flex justify-center mt-3"},Da=we({__name:"additionalContentTab",props:{unusedCampaignContent:{},selectedContentIds:{},isLoading:{type:Boolean},errorMessage:{},isConverting:{type:Boolean}},emits:["viewDetails"],setup(v,{emit:F}){const N=v,z=F,U=rt(),M=$(()=>U.hasFeature("realtalk")?"blog,video,social-graphic,script":"blog,video,social-graphic"),x=$(()=>{const o=[{slug:"blog",text:"Blogs"},{slug:"video",text:"Videos"},{slug:"social-graphic",text:"Social Graphics"}];return U.hasFeature("realtalk")&&o.push({slug:"script",text:"Scripts"}),o});function H(o){if(o==="all")return M.value;const m=o.split(",").map(_=>_.trim()).filter(Boolean);if(!U.hasFeature("realtalk")){const _=m.filter(q=>q!=="script");return _.length>0?_.join(","):M.value}return m.join(",")}const w=u([]),b=u(!0),S=u(""),y=u(1),J=u(10),j=u(0),G=u([{key:"published_at",order:"desc"}]),I=u("all"),C=u("all"),E=u(""),Y=u("all"),A=[{key:"content_type",label:"Type",sortable:!1},{key:"title",label:"Title",sortable:!0},{key:"published_at",label:"Published",sortable:!0}];ye(()=>N.selectedContentIds,()=>{const o=y.value===1;y.value=1,o&&Q()},{deep:!0}),ye(y,()=>{Q()});const ue=["title","published_at"],ae=$(()=>{const o=G.value[0],m=o&&ue.includes(o.key)?o.key:"published_at",_=o?.order==="asc"?"asc":"desc";return{key:m,order:_}});function ne(o){if(o.length===0){const m=G.value[0]??ae.value;G.value=[{key:m.key,order:m.order==="asc"?"desc":"asc"}]}else G.value=[o[0]]}ye(G,()=>{y.value=1,Q()},{deep:!0}),ye([I,C,E,Y],()=>{y.value=1,Q()}),st(()=>{Q()});async function Q(){b.value=!0,S.value="";try{const o=ae.value.key,m=ae.value.order;let _=H(C.value);const q=[];E.value&&E.value!=="all"&&q.push(E.value),U.hasFeature("elite")||q.push("!elite");const P=[];I.value&&I.value!=="all"&&P.push(I.value);const g={page:y.value-1,limit:J.value,types:_,exclude_ids:N.selectedContentIds,sort_by:o,sort_dir:m,custom:1,override:1,user_id:U.authUserId};if(P.length>0&&(g.categories=P.join(";")),q.length>0&&(g.tags=q.join(";")),Y.value&&Y.value!=="all"){const R=At(Y.value);R&&(g.published_since=R)}const c=await Ot.getContents(g);c.content?(w.value=Array.isArray(c.content)?c.content:[],j.value=c.total_count??0):c.error?(S.value=c.error,w.value=[]):w.value=[]}catch{S.value="Unable to load all content. Please try refreshing the page or contact our support team for assistance."}finally{b.value=!1}}function se(o){N.isConverting||z("viewDetails",o.id.toString(),o)}function X(o){I.value=o}function le(o){C.value=o.types,E.value=o.tags,Y.value=o.published_since}return(o,m)=>(s(),d("div",fa,[a("div",ha,[m[4]||(m[4]=a("h4",{class:"mb-3 fw-semibold flex items-center gap-2"},[a("iconify-icon",{icon:"stash:target-duotone",style:{"font-size":"2rem"}}),B(" Most Relevant Content ")],-1)),v.isLoading?(s(),d("div",ya,[(s(),d(ce,null,de(4,_=>a("div",{key:`additional-content-skeleton-${_}
1`,class:"placeholder-glow mb-3"},[...m[1]||(m[1]=[a("span",{class:"placeholder w-full rounded",style:{height:"200px"}},null,-1)])])),64))])):v.errorMessage!==""?(s(),L(i(Pe),{key:1,variant:"error"},{default:f(()=>[B(T(v.errorMessage),1)]),_:1})):(s(),d("div",_a,[v.isConverting?(s(),d("div",wa,[a("div",ba,[h(i(_e),{class:"align-middle mr-2","aria-hidden":"true"}),m[2]||(m[2]=a("span",{class:"fw-semibold"},"Preparing content...",-1))])])):O("",!0),(s(!0),d(ce,null,de(v.unusedCampaignContent,_=>(s(),d("div",{key:_.id,class:oe(["w-full min-[992px]:w-1/2 p-1 py-0",{"opacity-50":v.isConverting}])},[h(ga,{content:_,disabled:v.isConverting,onViewDetails:q=>se(_)},null,8,["content","disabled","onViewDetails"])],2))),128)),v.unusedCampaignContent.length===0?(s(),d("div",ka,[...m[3]||(m[3]=[a("p",null,"No additional content available.",-1)])])):O("",!0)]))]),a("div",null,[m[9]||(m[9]=a("h4",{class:"mb-3 fw-semibold flex items-center gap-2"},[a("iconify-icon",{icon:"stash:globe-duotone",style:{"font-size":"2rem"}}),B(" All Content ")],-1)),h(na,{types:M.value,selectedTab:I.value,selectedTypes:C.value,selectedTags:E.value,selectedTimeframe:Y.value,initialSlugs:["buyers","sellers"],slugAndText:x.value,onCategoryChanged:X,onApplyFilters:le,class:"mb-3"},null,8,["types","selectedTab","selectedTypes","selectedTags","selectedTimeframe","slugAndText"]),h(i(Ut),{hoverable:!1,class:"!p-3 relative",style:{"min-height":"20vh"}},{default:f(()=>[v.isConverting?(s(),d("div",Sa,[a("div",Ca,[h(i(_e),{class:"align-middle mr-2","aria-hidden":"true"}),m[5]||(m[5]=a("span",{class:"fw-semibold"},"Preparing content...",-1))])])):O("",!0),b.value&&w.value.length>0?(s(),d("div",xa,[a("div",Ia,[h(i(_e),{class:"align-middle mr-2","aria-hidden":"true"}),m[6]||(m[6]=a("span",null,"Loading...",-1))])])):S.value!==""?(s(),d("div",Pa,[a("div",Na,[m[7]||(m[7]=a("i",{class:"fas fa-exclamation-triangle mr-2"},null,-1)),B(" "+T(S.value),1)])])):(s(),d("div",{key:3,class:oe({"opacity-50":v.isConverting})},[h(i(Rt),{items:w.value,fields:A,busy:b.value&&w.value.length===0,"sort-by":G.value,striped:"",hover:"",responsive:"","show-empty":"","empty-text":"No content available.",class:oe(["all-content-table",{"pointer-events-none":v.isConverting}]),"onUpdate:sortBy":ne,onRowClicked:se},{"table-busy":f(()=>[a("div",Ma,[(s(!0),d(ce,null,de(J.value,_=>(s(),d("div",{key:`skeleton-${_}`,class:"skeleton-row flex items-center py-3 border-bottom"},[...m[8]||(m[8]=[a("div",{class:"skeleton-cell",style:{width:"15%"}},[a("span",{class:"placeholder w-2/3 rounded"})],-1),a("div",{class:"skeleton-cell flex-1 px-3"},[a("span",{class:"placeholder w-7/12 rounded mb-1"}),a("span",{class:"placeholder w-1/3 rounded"})],-1),a("div",{class:"skeleton-cell",style:{width:"20%"}},[a("span",{class:"placeholder w-2/3 rounded"})],-1)])]))),128))])]),"cell(content_type)":f(_=>[h(i(Re),{"content-type":i(Be)(_.item)},null,8,["content-type"])]),"cell(title)":f(_=>[a("div",Ta,T(_.item.title),1)]),"cell(published_at)":f(_=>[a("small",$a,T(i(Bt)(_.item.published_at)),1)]),_:1},8,["items","busy","sort-by","class"]),j.value>J.value?(s(),d("div",Ea,[h(i(Ft),{modelValue:y.value,"onUpdate:modelValue":m[0]||(m[0]=_=>y.value=_),"total-rows":j.value,"per-page":J.value,limit:7,align:"center","aria-label":"Content pagination"},null,8,["modelValue","total-rows","per-page"])])):O("",!0)],2))]),_:1})])]))}}),Aa=Fe(Da,[["__scopeId","data-v-46ee3f77"]]),Oa={class:"modal-body-content"},Ra={key:0,class:"text-center py-4"},Ba={key:1,class:"social-media-sections"},Fa={key:0},Ua={class:"flex items-center mb-3"},Ja=["icon"],La={class:"mb-0 fw-semibold"},za={class:"pages-dropdown"},ja={key:0,class:"w-full"},Ga={key:1,class:"rounded-md border p-3 border-amber-300 bg-amber-50 text-amber-700"},Va={key:0,class:"mb-0"},Ka={key:1,class:"mb-0"},Ya={key:2,class:"mb-0"},qa={class:"flex justify-end gap-2"},Wa=1e3,Ha=we({__name:"chooseMediaPagesModal",props:{uniqueSocialMediaSlugs:{},initialSelections:{}},emits:["submit","close"],setup(v,{expose:F,emit:N}){const z=v,U=N;function M(){return ct(Wa)}const x=$(()=>z.uniqueSocialMediaSlugs),{selectedPages:H,availablePages:w,loadOutcomes:b,pageLoadEmptyReasons:S,loadingData:y,allPlatformsHaveSinglePageOrLess:J,initializeSelectedPages:j,loadPagesForPlatform:G,updateSelectedPages:I,getDropdownItems:C}=dt({socialMediaSlugs:x,autoSelectSinglePage:!0}),E=u(null),Y=()=>{E.value?.show()},A=()=>{E.value?.close()},ue=()=>{U("close")};async function ae(){const P=x.value;await Promise.all(P.map(g=>{const c=M();return Promise.all([G(g,c),c])}))}function ne(){const P=x.value,g=[],c=[];for(const R of P){const Z=b.value[R],ie=w.value[R]?.length??0;Z==="failed"?g.push(R):Z==="loaded"&&ie===0&&c.push(R)}return{selectedPages:{...H.value},slugsLoadFailed:g,slugsNoPagesFound:c}}const Q=$(()=>{const P=x.value;return P.length===0?!1:P.every(g=>{const c=b.value[g];return c==="pending"?!1:c==="failed"?!0:(w.value[g]??[]).length<=1||(H.value[g]?.length??0)>0})}),se=$(()=>
1y.value?"Checking your connections...":J.value||Q.value?"Finishing up...":"Choose your pages");function X(P){return te.serviceData[P]?.title||P}const le=async()=>{if(await ae(),z.initialSelections)for(const c of x.value){const R=z.initialSelections[c];if(!R?.length)continue;const Z=w.value[c]??[],ie=R.filter(re=>Z.some(me=>me.value===re));ie.length>0&&I(c,ie)}const P=[...z.uniqueSocialMediaSlugs],g=J.value||Q.value;console.info("[ChooseMediaPagesModal] load complete",{willAutoSubmit:g,slugs:P,loadOutcomes:{...b.value},availablePageCounts:Object.fromEntries(P.map(c=>[c,w.value[c]?.length??null])),selectedPages:JSON.parse(JSON.stringify(H.value))}),g&&(U("submit",ne()),A())},o=(P,g)=>{I(P,g)},m=()=>{U("submit",ne()),A()},_=()=>{A()},q=()=>{j(),le()};return F({show:Y,close:A}),(P,g)=>(s(),L(i(Ne),{ref_key:"modal",ref:E,title:se.value,"show-close-button":!1,modalBoxClasses:"max-w-[800px]",onShow:q,onClose:ue},{footer:f(()=>[a("footer",null,[a("div",qa,[h(i(W),{link:"",onClick:_},{default:f(()=>[...g[3]||(g[3]=[B(" Cancel ",-1)])]),_:1}),h(i(W),{class:"disabled:opacity-50",disabled:i(y),onClick:m},{default:f(()=>[...g[4]||(g[4]=[B(" Save My Choices ",-1)])]),_:1},8,["disabled"])])])]),default:f(()=>[a("div",Oa,[x.value.length===0?(s(),d("div",Ra,[...g[0]||(g[0]=[a("p",{class:"text-slate-500"}," No social media platforms selected for this campaign. ",-1)])])):(s(),d("div",Ba,[(s(!0),d(ce,null,de(x.value,c=>(s(),d("div",{key:c,class:"social-media-section mb-4"},[i(b)[c]!=="loaded"||(i(w)[c]?.length??0)!==1?(s(),d("div",Fa,[a("div",Ua,[a("iconify-icon",{icon:i(te).serviceData[c]?.icon||"mdi:web",class:oe(`text-${c} mr-2`),style:{"font-size":"24px"}},null,10,Ja),a("h5",La,T(i(te).serviceData[c]?.title||c),1)]),a("div",za,[i(b)[c]==="pending"?(s(),d("div",ja,[...g[1]||(g[1]=[a("div",{class:"skeleton h-[60px] w-full rounded-md"},null,-1)])])):(i(b)[c]==="failed"||i(b)[c]==="loaded")&&(!i(w)[c]||i(w)[c].length===0)?(s(),d("div",Ga,[(i(S)[c]??"load_failed")==="loaded_no_pages"?(s(),d("p",Va," No pages available. Please reconnect your "+T(X(c))+" account. ",1)):i(S)[c]==="no_access"?(s(),d("p",Ka," We donât have valid access to your "+T(X(c))+" account right now. Please reconnect your "+T(X(c))+" account. ",1)):(s(),d("div",Ya,[...g[2]||(g[2]=[a("span",null,"Something went wrong getting your pages. If the issue persists, email ",-1),a("a",{href:"mailto:[email protected]",class:"font-semibold text-sky-700 hover:text-sky-900 underline cursor-pointer"},"[email protected]",-1),a("span",null," or ",-1),a("a",{href:"https://help.mykcm.com",class:"text-primary-500 hover:text-primary-700 underline",target:"_blank",rel:"noopener noreferrer"},"Get Help",-1),B(". ",-1)])]))])):(s(),L(sa,{key:2,"dropdown-text":`Select ${i(te).serviceData[c]?.title||c} pages`,items:i(C)(c),"selected-ids":i(H)[c]??[],"show-all-option":"",onUpdate:R=>o(c,R)},null,8,["dropdown-text","items","selected-ids","onUpdate"]))])])):O("",!0)]))),128))]))])]),_:1},8,["title"]))}}),Qa=Fe(Ha,[["__scopeId","data-v-f3102437"]]),Xa={class:"w-full px-4"},Za={class:"flex justify-between items-start mb-4 flex-col-reverse md:flex-row md:items-center"},en={key:0,class:"flex gap-2 flex-col md:flex-row w-full md:items-end justify-end pb-3 md:pb-0"},tn={class:"md:hidden"},an={class:"hidden md:inline"},nn={class:"md:hidden"},on={class:"hidden md:inline"},sn={key:1,class:"text-center mb-4 placeholder-glow"},ln={key:2,class:"campaign-details mb-4"},rn={class:"h4 mb-2"},cn={class:"mb-0"},dn={class:"flex flex-col-reverse md:flex-row gap-5"},un={class:"w-full md:w-2/3 mb-4"},mn={key:0},pn={key:1,class:"content-tabs"}
1,vn={key:0,class:"placeholder-glow mb-3"},gn={key:1,id:"content-tabs",role:"tablist",class:"flex flex-wrap list-none gap-4 bg-white rounded-2xl shadow-sm mb-3 px-3 py-2"},fn={role:"presentation"},hn=["aria-selected"],yn={role:"presentation"},_n=["aria-selected"],wn={key:2,class:"content-list"},bn={key:0,class:"placeholder-glow"},kn={key:2},Sn={key:3,class:"text-center py-5 text-slate-500"},Cn={key:3,class:"content-list"},xn={key:2},In={class:"w-full md:w-1/3 mb-4"},Pn={class:"sidebar-content flex flex-col gap-4 pb-4 md:pb-0"},Nn={key:0},Mn={class:"flex justify-end gap-2"},Tn=we({__name:"socialCampaignsReview",props:{campaignId:{}},setup(v){const F=v,N=Jt(),z=rt(),U=[{text:"Content",to:"/content"},{text:"Campaign Review",active:!0}];function M(){We.push("/calendar")}const x=$(()=>F.campaignId!==void 0&&F.campaignId!==null&&F.campaignId!==""&&Lt.isNumber(parseInt(F.campaignId))&&!isNaN(parseInt(F.campaignId))),H=$(()=>new URL(window.location.href).searchParams.get("debug")==="true"),w=u(!0),b=u(!1),S=u(""),y=u("selected"),J=u(!1),j=u(-1),G=u(null),I=u({}),C=lt(),E=u(""),Y=u(null),A=u({}),ue=u([]),ae=u(void 0),ne=u(!1),{loadPagesForPlatform:Q,availablePages:se}=dt({socialMediaSlugs:[],autoSelectSinglePage:!1}),X=u(null),le=u(null),o=u([]);ye(o,t=>{if(!x.value)try{const e=JSON.parse(JSON.stringify(t));Qe.setItem(Xe,e)}catch(e){he.customSentryError("Error saving temp campaign data to localStorage","Error saving temp campaign data to localStorage",{error:e})}},{deep:!0});const m=$(()=>({user_id:Number(ie.value),timezone_id:R.value,language_id:1,campaign_title:re.value,campaign_description:me.value,networks:P.value,posts:q.value})),_=ea(),q=$(()=>o.value.map(t=>{const e=new Date(t.scheduled_for).toISOString();return{...t,scheduled_for:e}})),P=$(()=>{const t=new Map;return o.value.forEach(e=>{e.networks.forEach(n=>{t.has(n.network_data)||t.set(n.network_data,n)})}),Array.from(t.values())}),g=$(()=>o.value.filter(t=>t.networks.length===0).length),c=$(()=>{const t=g.value;return t===0?"":t===1?"One post has no social account selected. Open it and choose where it should publish.":`${t} posts have no social account selected. Open each one and choose where it should publish.`}),R=u(15),Z=u("America/New_York"),ie=$(()=>z.authUserId),re=u("Campaign Title Goes Here"),me=u("Campaign Description Goes Here"),Ue=u(""),Je=u(""),Le=u(""),ze=async t=>{try{b.value=!0,S.value="",o.value=Ze(o.value,A.value),await Yt(o.value,ie.value);const e=m.value.posts.length;let n;t==="create"?(xe.trackEvent("scheduledContent",{source:"campaign",type:Le.value,title:re.value,audience:Ue.value,topics:Je.value}),n=await Ee.campaign.createCampaign(m.value)):n=await Ee.campaign.updateCampaign(F.campaignId??"",m.value),et();const{message:r,variant:l,timeout:p}=qt(n.data?.post_errors??[],e);De(r,l,{timeout:p}),M()}catch(e){he.customSentryError("Error saving campaign","Error saving campaign",{error:e}),De("Unable to save campaign. Please refresh the page and try again or contact our support team for assistance.","error",{timeout:8e3})}finally{b.value=!1}};function je(t){const e=o.value.splice(t,1)?.[0];if(!e)return;const n=JSON.parse(e.post_data);xe.trackEvent("customize",{content:n,social_platform:e.platform,datetime:e.scheduled_for,source:"campaign item",event_target:"campaign item",action:"delete",status:x.value?"scheduled":"review"})}function ut(){j.value=-1,I.value=null}async function Ge(t){j.value=t;const e=o.value[t];if(!e)return;const n=JSON.parse(e.post_data);I.value=n,E.value=e.post_data,le.value=e,await $e(),X.value?.show()}async function mt(t,e){if(J.value)return;let n=e;if(n||(n=fe.value.find(K=>K.id===t)),!n)return;J.value=!0;const r=JSON.parse(JSON.stringify(n));r.content_type==="social-graphic"&&await qe(r,-1),j.value=-1,I.value=r;const l=JSON.stringify(r);E.value=l;const p=Object.keys(A.value).filter(K=>A.value[K]?.length>0);let k="",D=[];if(p.length===1&&A.value[p[0]]?.length===1){k=p[0];const K=A.value[k];D=Wt(k,K)}le.value={post_data:l,scheduled_for:new Date(Date.now()+864e5).toISOString(),networks:D,platform:k},await $e(),X.value?.show(),J.value=!1}function pt(t,e,n,r,l,p){const{network:k,schedule:D,caption:K}=nt(o.value[t]),V=[...o.value];V[t]={...V[t],post_data:e,scheduled_for:n,platform:l,networks:p},o.value=V,Z.value=r;const{network:ee,schedule:ke,caption:Se}=nt(o.value[t]);aa(o.value[t],{changed_caption:Se!==K,changed_network:ee!==k,changed_schedule:ke!==D,new_network:ee,new_schedule:ke,original_network:k,original_schedule:D,status:"review"})}function vt(t,e,n,r,l,p){const k={post_data:t,scheduled_for:e,platform:r,networks:l};Z.value=n,o.value.push(k),xe.trackEvent("customize",{content:p,social_platform:r,datetime:e,source:"campaign item",event_target:"campaign item",action:"add",status:x.value?"scheduled":"review"})}function gt(t){const e=JSON.parse(JSON.stringify(o.value[t]));o.value.splice(t+1,0,e);const n=JSON.parse(e.post_data||"{}");xe.trackEvent("customize",{content:n,social_platform:e.platform,datetime:e.scheduled_for,source:"campaign item",event_target:"campaign item",action:"duplicate",status:x.value?"scheduled":"review"})}let pe=null,ge=null;function Ve(t,e){return new Promise((n,r)=>{ue.value=t,ae.value=e,pe=n,ge=r,$e(()=>{Y.value?.show()})})}function ft(){ge&&pe&&(ge(new Error("Modal was cancelled")),pe=null,ge=null)}function ht(t){const{selectedPages:e}=t;A.value={...A.value,...e},Object.keys(e).forEach(n=>{e[n]&&e[n].length>0&&(o.value=tt(o.value,n,e[n]))}),pe&&(pe(e),pe=null,ge=null)}function yt(){G.value?.show()}async function Ke(){const t=new Set;if(o.value.forEach(l=>{l.platform&&l.networks.length===0&&t.add(l.platform)}),t.size===0)return;const e=[];for(const l of t){const p=te.services[l];p&&te.checkAccess(p)&&e.push(l)}if(e.length===0)return;await Promise.all(e.map(l=>Q(l)));const n=[],r=[];e.forEach(l=>{const p=se.value[l]||[];p.length===1?r.push(l):p.length>1&&n.push(l)}),r.forEach(l=>{const p=se.value[l]||[],k=[p[0].value];A.value={...A.value,[l]:k},o.value=tt(o.value,l,k);const D=p[0].text.split(" - ")[0]||l.charAt(0).toUpperCase()+l.slice(1);De(`Your ${l.charAt(0).toUpperCase()+l.slice(1)} posts have been assigned to ${D}`,"success")}),n.length>0&&await Ve(n)}async function _t(){await ct(500),await Ke()}const fe=u([]),wt=$(()=>fe.value.filter(t=>!o.value.some(e=>JSON.parse(e.post_data).id===t.id))),bt=$(()=>o.value.map(t=>{try{const e=JSON.parse(t.post_data);return e.id?parseInt(e.id):null}catch{return null}}).filter(t=>t!==null));async function Ye(t,e){fe.value=await He(t.ranked_content.content.map(n=>n.content_id)),re.value=t.schedule.campaign_title,me.value=t.schedule.campaign_description,Ue.value=e.audience,Je.value=e.topics,Le.value=e.type}async function qe(t,e){if(t.content_type!=="social-graphic"||!t.feed_files)return;const n=t;n.kcm_original_feed_files||(n.kcm_original_feed_files=t.feed_files);const r=Ht(t.feed_files),l=N.getProfileByFeature("graphics"),p=l.primary_logo?.value||"off",k=l.secondary_logo?.value||"off",D=p==="off"?"":p==="dark"?N.profileDarkLogo:N.profileLogo,K=k==="off"?"":k==="dark"?N.profileSecondary
1DarkLogo:N.profileSecondaryLogo,V=await Promise.all(r.map(async(ee,ke)=>{if(ee.startsWith("data:")||ee.includes("memberuploads.keepingcurrentmatters.com"))return ee;try{return await Qt(ee,D,K)}catch(Se){return console.error(`[convertSocialGraphicsToBase64] Item ${e} Image ${ke}: conversion failed`,Se),he.customSentryError("Failed to convert image to base64","Failed to convert image to base64",{imageUrl:ee,error:Se}),ee}}));t.feed_files=JSON.stringify(V)}async function kt(){await Promise.all(o.value.map(async(t,e)=>{let n;try{n=JSON.parse(t.post_data)}catch(r){console.error(`[convertSocialGraphicsToBase64] Failed to parse post_data for item ${e}:`,r),he.customSentryError("Failed to parse post_data for campaign item","Failed to parse post_data for campaign item",{error:r});return}await qe(n,e),t.post_data=JSON.stringify(n)}))}async function St(t,e){const n=t&&t!=="undefined"&&t!=="null"?t:"{}",r=e&&e!=="undefined"&&e!=="null"?e:"{}";let l,p;try{l=JSON.parse(n)}catch(V){throw console.error("Error parsing session data:",V,n),new Error("Invalid campaign brief data")}try{p=JSON.parse(r)}catch(V){throw console.error("Error parsing input data:",V,r),new Error("Invalid campaign input data")}await Ye(l,p),o.value=Xt(l,fe.value);const k=Zt(l);let D;const K=sessionStorage.getItem(at);if(K){sessionStorage.removeItem(at);try{D=JSON.parse(K)}catch{}}if(k.length>0)try{const V=await Ve(k,D);A.value=V,o.value=Ze(o.value,V)}catch{We.back();return}await kt(),await be()}async function Ct(t,e,n){const r=t&&t!=="undefined"&&t!=="null"?t:"{}",l=e&&e!=="undefined"&&e!=="null"?e:"{}";let p,k;try{p=JSON.parse(r)}catch(D){throw console.error("Error parsing session data:",D,r),new Error("Invalid campaign brief data")}try{k=JSON.parse(l)}catch(D){throw console.error("Error parsing input data:",D,l),new Error("Invalid campaign input data")}await Ye(p,k),o.value=n}const Me=u(null);function xt(){Me.value?.show()}function It(){Me.value?.close()}function Pt(){et(),M()}function Te(){const t=sessionStorage.getItem(ve);if(!t)return;const e=parseInt(t,10);let n;if(Number.isInteger(e)&&e>=0&&e<o.value.length&&(n=o.value[e]),o.value.sort((r,l)=>{const p=new Date(r.scheduled_for).getTime(),k=new Date(l.scheduled_for).getTime();return p-k}),n){const r=o.value.findIndex(l=>l.post_data===n.post_data);r>=0&&sessionStorage.setItem(ve,r.toString())}}async function be(){o.value.forEach(r=>{const l=JSON.parse(r.post_data||"{}");if(!l.feed_files){const p=l.assets?.sort((k,D)=>k.updated_at>D.updated_at?-1:1)??[];p.length>0&&(l.feed_files=p[0].url,r.post_data=JSON.stringify(l))}});const t=sessionStorage.getItem(ve),e=sessionStorage.getItem(Ie);if(!t||!e)return;const n=parseInt(t,10);if(Number.isNaN(n)||n<0){sessionStorage.removeItem(ve),sessionStorage.removeItem(Ae),sessionStorage.removeItem(Ie);return}if(!o.value[n]){sessionStorage.removeItem(ve),sessionStorage.removeItem(Ae),sessionStorage.removeItem(Ie);return}try{const r=JSON.parse(o.value[n].post_data||"{}");r.feed_files=e,o.value[n]={...o.value[n],post_data:JSON.stringify(r)},await Ge(n)}catch(r){console.error("Failed to update campaign item with recording",r)}finally{sessionStorage.removeItem(ve),sessionStorage.removeItem(Ae),sessionStorage.removeItem(Ie)}}return st(async()=>{try{S.value="";const t=new URLSearchParams(window.location.search);if(t.get("media")&&t.get("sync")==="services"&&(ne.value=!0),x.value){const e=await Ee.getJobForUser(Number(F.campaignId??0));if("error"in e||!e.data?.job){console.error("error"in e?e.error:"No job"),S.value="Unable to load campaign content. Please try refreshing the page or contact our support team for assistance.";return}const n=e.data.job;o.value=zt(n),Te(),re.value=n.descr,me.value=n.campaign_description,await be();const r=n.run.map(l=>JSON.parse(l.post_data).id);fe.value=await He(r)}else{const e=localStorage.getItem(jt),n=localStorage.getItem(Gt),r=e&&e!=="undefined"&&e!=="null"?e:null,l=n&&n!=="undefined"&&n!=="null"?n:null,p=await Qe.getItem(Xe);p&&l&&r?(await Ct(l,r,p),Te(),await be(),ne.value&&(await Ke(),ne.value=!1)):l&&r?(await St(l,r),Te(),await be()):S.value="Unable to load campaign content. Please try refreshing the page or contact our support team for assistance."}}catch{S.value="Unable to load campaign content. Please try refreshing the page or contact our support team for assistance."}finally{const t=he.resolveAppTimeZone();R.value=t.autoposter,Z.value=t.js,w.value=!1}}),(t,e)=>(s(),L(Kt,{header:""},{default:f(()=>[a("div",Xa,[a("div",null,[h(la,{items:U}),a("div",Za,[e[9]||(e[9]=a("h2",{class:"mb-0 w-full"},"Campaign Review",-1)),x.value?O("",!0):(s(),d("div",en,[h(i(W),{ghost:"",disabled:b.value,onClick:xt},{default:f(()=>[...e[8]||(e[8]=[B(" Cancel ",-1)])]),_:1},8,["disabled"]),x.value?(s(),L(i(W),{key:1,class:"disabled:opacity-50",disabled:w.value||b.value||S.value!==""||g.value>0,onClick:e[1]||(e[1]=n=>ze("update"))},{default:f(()=>[b.value?(s(),L(i(_e),{key:0,class:"mr-2","aria-hidden":"true"})):O("",!0),a("span",nn,T(b.value?"Updating...":"Publish"),1),a("span",on,T(b.value?"Updating Campaign...":"Update Campaign"),1)]),_:1},8,["disabled"])):(s(),L(i(W),{key:0,class:"disabled:opacity-50",disabled:w.value||b.value||S.value!==""||g.value>0,onClick:e[0]||(e[0]=n=>ze("create"))},{default:f(()=>[b.value?(s(),L(i(_e),{key:0,class:"mr-2","aria-hidden":"true"})):O("",!0),a("span",tn,T(b.value?"Building...":"Publish"),1),a("span",an,T(b.value?"Scheduling...":"Approve Campaign"),1)]),_:1},8,["disabled"]))]))]),!w.value&&c.value?(s(),L(i(Pe),{key:0,variant:"warning",class:"mb-4"},{default:f(()=>
1[e[10]||(e[10]=a("strong",null,"Nowhere to publish.",-1)),B(" "+T(c.value),1)]),_:1})):O("",!0),w.value?(s(),d("div",sn,[...e[11]||(e[11]=[a("span",{class:"placeholder w-1/4 rounded",style:{height:"30px"}},null,-1),a("br",null,null,-1),a("span",{class:"placeholder w-7/12 rounded mt-2"},null,-1),a("span",{class:"placeholder w-2/3 rounded mt-1"},null,-1),a("span",{class:"placeholder w-5/12 rounded mt-1"},null,-1)])])):(s(),d("div",ln,[a("h3",rn,T(re.value),1),a("p",cn,T(me.value),1)]))]),a("div",dn,[a("div",un,[i(_).length===0?(s(),d("div",mn,[h(i(Pe),{variant:"warning"},{default:f(()=>[...e[12]||(e[12]=[a("strong",null,"No Socials Connected",-1),a("br",null,null,-1),B(" Please connect a social media account to review and send campaigns. ",-1)])]),_:1})])):(s(),d("div",pn,[w.value?(s(),d("div",vn,[...e[13]||(e[13]=[a("span",{class:"placeholder w-full rounded",style:{height:"40px"}},null,-1)])])):x.value?O("",!0):(s(),d("ul",gn,[a("li",fn,[a("button",{type:"button",role:"tab","aria-selected":y.value==="selected",class:oe(["font-semibold cursor-pointer transition-colors duration-200 border-0 bg-transparent p-0",y.value==="selected"?"text-[#0078bc]":"text-gray-700 hover:text-gray-900"]),onClick:e[2]||(e[2]=n=>y.value="selected"),onKeydown:[e[3]||(e[3]=Ce(n=>y.value="selected",["enter"])),e[4]||(e[4]=Ce(Oe(n=>y.value="selected",["prevent"]),["space"]))]}," Selected Content ",42,hn)]),a("li",yn,[a("button",{type:"button",role:"tab","aria-selected":y.value==="additional",class:oe(["font-semibold cursor-pointer transition-colors duration-200 border-0 bg-transparent p-0",y.value==="additional"?"text-[#0078bc]":"text-gray-700 hover:text-gray-900"]),onClick:e[5]||(e[5]=n=>y.value="additional"),onKeydown:[e[6]||(e[6]=Ce(n=>y.value="additional",["enter"])),e[7]||(e[7]=Ce(Oe(n=>y.value="additional",["prevent"]),["space"]))]}," Additional Content ",42,_n)])])),y.value==="selected"?(s(),d("div",wn,[w.value?(s(),d("div",bn,[(s(),d(ce,null,de(4,n=>a("div",{key:`selected-content-skeleton-${n}`,class:"mb-3"},[...e[14]||(e[14]=[a("span",{class:"placeholder w-full rounded",style:{height:"125px"}},null,-1)])])),64))])):S.value!==""?(s(),L(i(Pe),{key:1,variant:"error"},{default:f(()=>[B(T(S.value),1)]),_:1})):(s(),d("div",kn,[(s(!0),d(ce,null,de(o.value,(n,r)=>(s(),L(pa,{key:`selected-content-${r}`,"campaign-item":n,index:r,onDelete:je,onViewDetails:Ge},null,8,["campaign-item","index"]))),128))])),!w.value&&S.value===""&&o.value.length===0?(s(),d("div",Sn,[...e[15]||(e[15]=[a("p",null,"No content selected yet.",-1)])])):O("",!0)])):O("",!0),y.value==="additional"&&!x.value?(s(),d("div",Cn,[h(Aa,{"unused-campaign-content":wt.value,"selected-content-ids":bt.value,"is-loading":w.value,"error-message":S.value,"is-converting":J.value,onViewDetails:mt},null,8,["unused-campaign-content","selected-content-ids","is-loading","error-message","is-converting"])])):O("",!0)])),H.value?(s(),d("div",xn,[e[16]||(e[16]=a("h4",null,"For Debugging",-1)),a("pre",null,T(m.value),1)])):O("",!0)]),a("div",In,[a("div",Pn,[h(oa,{"hidden-platforms":["twitter"],onConnected:_t}),i(C)?(s(),d("div",Nn,[h(i(W),{ghost:"",block:"",onClick:yt},{default:f(()=>[...e[17]||(e[17]=[a("iconify-icon",{icon:"fa6-solid:calendar-days",inline:""},null,-1),B(" Upcoming Campaigns ",-1)])]),_:1})])):(s(),L(ot,{key:1})),h(Vt)])])])]),h(i(Ne),{id:"sidebar-modal",ref_key:"upcomingContentModal",ref:G,"show-close-button":!1,title:"Smart Campaign Posts",modalBoxClasses:"max-w-[1140px]"},{default:f(()=>[h(ot)]),_:1},512),I.value?(s(),L(ta,{key:0,ref_key:"viewContentModalRef",ref:X,index:j.value,content:I.value,"campaign-item":le.value,timezone:Z.value,onSave:pt,onAdd:vt,onDuplicate:gt,onRemove:je,onClose:ut},null,8,["index","content","campaign-item","timezone"])):O("",!0),h(Qa,{ref_key:"chooseMediaPagesModalRef",ref:Y,"unique-social-media-slugs":ue.value,"initial-selections":ae.value,onClose:ft,onSubmit:ht},null,8,["unique-social-media-slugs","initial-selections"]),h(i(Ne),{id:"confirm-cancel-modal",ref_key:"cancelConfirmModal",ref:Me,"show-close-button":!1,title:"Confirm Cancellation","modal-box-classe
1s":"max-w-[500px]"},{footer:f(()=>[a("footer",Mn,[h(i(W),{onClick:It},{default:f(()=>[...e[18]||(e[18]=[B(" No, Keep Reviewing ",-1)])]),_:1}),h(i(W),{variant:"error",onClick:Pt},{default:f(()=>[...e[19]||(e[19]=[B(" Yes, Cancel ",-1)])]),_:1})])]),default:f(()=>[e[20]||(e[20]=a("p",null," If you cancel this campaign review you will lose all of the suggested schedule and your changes. Are you sure? ",-1))]),_:1},512)]),_:1}))}}),po=Fe(Tn,[["__scopeId","data-v-d340b000"]]);export{po as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.