1var fp=Object.defineProperty;var xp=(e,n,a)=>n in e?fp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a;var vd=(e,n,a)=>xp(e,typeof n!="symbol"?n+"":n,a);import{cf as yp,cg as bp,r as S,ch as Et,ci as ra,m as yt,cj as jn,ck as Ye,cl as hn,g as ve,h as re,cm as Ap,cn as Ve,co as We,cp as Ue,j as t,F as U,B as A,ap as ae,a as g,cq as Xt,ax as vl,cr as Lp,u as de,C as Me,x as Ri,bd as Qe,A as gt,aJ as Sp,b5 as on,b as Be,bb as Ht,aN as ai,cs as xa,ct as _l,cu as wl,aM as La,a9 as he,bo as mn,$ as vn,cv as yo,ai as Nt,a6 as Fa,cw as ft,aF as Sa,i as xe,cx as nt,cy as Ze,cz as Tt,cA as Mt,a4 as et,ba as Pt,cB as fn,k as _n,aP as zi,cC as _d,cD as Bt,cE as Ba,cF as Ua,cG as It,cH as Kt,cI as qt,cJ as wd,cK as Cd,aQ as Oe,cL as Cl,cM as jp,cN as vp,cO as _p,cP as El,cQ as Il,cR as ut,cS as $e,cT as wn,cU as bo,cV as Tl,cW as Ao,cX as Rs,cY as Ml,cZ as wi,c_ as Nl,c$ as $t,d0 as Dt,d1 as ct,d2 as wp,d3 as Te,d4 as dt,ar as xt,f as va,R as qe,ah as Cp,aw as Re,d5 as Zt,d6 as Pr,d7 as ua,d8 as Wn,d9 as Ci,da as ya,db as Or,dc as Ei,aq as _t,dd as lt,de as Jn,df as Cs,dg as Xe,az as Ep,dh as Ip,cd as Tp,di as kl,am as Ae,at as ot,dj as Dl,dk as st,dl as bt,dm as At,dn as zs,dp as Lt,dq as Pl,l as Ot,bF as wt,dr as Wa,d as pe,ds as Mp,dt as Rr,du as Np,dv as Ka,dw as Fe,dx as mt,dy as Lo,o as ii,dz as So,b0 as Gi,an as _a,dA as Ed,dB as kp,dC as Dp,dD as Pp,dE as Ol,dF as Id,dG as Td,dH as Md,dI as Op,dJ as fs,ay as Es,dK as zr,dL as Gr,dM as Rp,dN as jo,dO as Rl,dP as Fr,c8 as Fi,b7 as si,aK as ri,dQ as Nd,dR as dn,b6 as zp,bY as kd,e as qa,bm as Gp,dS as zl,dT as Gl,dU as Fl,dV as vo,dW as Gs,dX as Bl,dY as Ul,dZ as Fp,d_ as Bp,d$ as _o,e0 as wo,e1 as Up,e2 as Hl,e3 as Hp,s as Ii,e4 as Br,aV as oi,e5 as $l,aL as Vl,e6 as Wl,e7 as Kl,e8 as nn,e9 as $p,ea as Vp,eb as Ur,ec as Is,ed as ql,ee as Yl,c as Jt,ef as Wp,_ as Ya,eg as Co,eh as Eo,ei as Kp,ej as Dd,ek as qp,el as Yp,em as Pd,en as Xp,eo as Zp,ep as Od,eq as Rd,er as Jp,es as zd,et as Li,eu as Xl,as as Zl,ev as Xs,ew as Jl,ex as Qp,ey as Hr,ez as xs,eA as Gd,eB as $r,eC as Ha,eD as Si,eE as Zs,eF as Ql,eG as Js,bf as eu,eH as tu,bh as nu,eI as Xa,eJ as Io,aS as eg,aU as Fd,eK as Bd,eL as tg,eM as ng,eN as ag,eO as au,eP as ka,eQ as ig,eR as Vi,eS as Ud,eT as Qs,eU as sg,eV as rg,eW as og,eX as Hd,eY as $d,eZ as dg,e_ as cg,e$ as lg}from"./index-DPTmGuAB.js";import{c as Wi,a as Ti,h as To,M as er,b as tr,p as ug,d as hg,e as pg,f as gg,g as mg,r as iu,i as su,j as ys,k as Mo,T as ru}from"./agentLaunchHandoff-C9pghTuP.js";import{f as fg,u as Cn,a as En}from"./adInstanceItem-CMNMWABa.js";import{I as Vr,T as ou,M as du,u as cu,C as lu}from"./ConnectToOpenAIAds-Dw-Qpzft.js";import{G as uu,u as No,a as hu,b as pu,c as gu,h as mu,d as fu,e as xg,f as yg,g as xu}from"./GoogleIcon-6S5NqUGp.js";import{C as bg,a as Ag}from"./ConnectToMetaButton-CGlbRQgh.js";import{C as yu,a as bu,b as Lg,c as Sg}from"./ConnectToTwitter-B5w20evj.js";import{C as jg,T as Au}from"./TiktokAdAccountLink-R_rWc9FP.js";import{T as vg,P as _g,L as Lu,R as Wr}from"./pinterestOAuth-Dl7FrQ6r.js";import{S as rt}from"./Switch-GNhh12jD.js";import{N as at}from"./NumberInput-Dtfn8dZz.js";import{A as Ki}from"./Accordion-CKfDEjQk.js";import{P as wg}from"./Pagination-tG0AKvBR.js";import{I as Cg}from"./IconLink-COd-jL0x.js";import{I as Eg}from"./IconAdjustments-BdAq_mmq.js";import{C as Su}from"./ConnectToMeta-CmXmcbQ5.js";import{u as Ig}from"./useQueries-DPlOOnuP.js";import{M as In}from"./react-masonry-css.module-DGMBrZ1d.js";import{C as Tg}from"./ConfirmAccountAndPageConnectToMeta-CDGffSk_.js";import{I as Mg}from"./IconPhotoOff-D96wHaa2.js";import{P as ko}from"./Pill-BVN6toRf.js";import{M as Yt}from"./MultiSelect-BiPd_RU4.js";import{D as an}from"./DatePickerInput-CAGqhYne.js";import{I as Fs}from"./IconDeviceMobileFilled-DQPnAaNx.js";import{S as Ln}from"./Slider-7RhY3Bho.js";import{I as Vd}from"./IconBrandYoutube-DNsICbPO.js";import{I as Ts}from"./IconRefresh-CVL4-ym9.js";import{I as Ng}from"./IconCrop-CrkxRfta.js";import"./PillsInput-BCMmdG7_.js";import"./useInfiniteQuery-DKPzHr_v.js";import"./useConnectPlatform-bD9tP_7m.js";import"./ReactDomGuard-C6KUdpRz.js";import"./AdAccountPickerLayout-Sf0f2Cni.js";import"./get-safe-id-Bp3H8K0-.js";import"./pick-calendar-levels-props-CRIPWTN7.js";import"./utc-C_TpHYAh.js";import"./use-move-jj9U2ZX6.js";var Wd=!1,la,Kr,qr,bs,As,ju,Ls,Yr,Xr,Zr,vu,Jr,Qr,_u,wu;function Ft(){if(!Wd){Wd=!0;var e=navigator.userAgent,n=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Ice
1weasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),a=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Jr=/\b(iPhone|iP[ao]d)/.exec(e),Qr=/\b(iP[ao]d)/.exec(e),Zr=/Android/i.exec(e),_u=/FBAN\/\w+;/i.exec(e),wu=/Mobile/i.exec(e),vu=!!/Win64/.exec(e),n){la=n[1]?parseFloat(n[1]):n[5]?parseFloat(n[5]):NaN,la&&document&&document.documentMode&&(la=document.documentMode);var i=/(?:Trident\/(\d+.\d+))/.exec(e);ju=i?parseFloat(i[1])+4:la,Kr=n[2]?parseFloat(n[2]):NaN,qr=n[3]?parseFloat(n[3]):NaN,bs=n[4]?parseFloat(n[4]):NaN,bs?(n=/(?:Chrome\/(\d+\.\d+))/.exec(e),As=n&&n[1]?parseFloat(n[1]):NaN):As=NaN}else la=Kr=qr=As=bs=NaN;if(a){if(a[1]){var s=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Ls=s?parseFloat(s[1].replace("_",".")):!0}else Ls=!1;Yr=!!a[2],Xr=!!a[3]}else Ls=Yr=Xr=!1}}var eo={ie:function(){return Ft()||la},ieCompatibilityMode:function(){return Ft()||ju>la},ie64:function(){return eo.ie()&&vu},firefox:function(){return Ft()||Kr},opera:function(){return Ft()||qr},webkit:function(){return Ft()||bs},safari:function(){return eo.webkit()},chrome:function(){return Ft()||As},windows:function(){return Ft()||Yr},osx:function(){return Ft()||Ls},linux:function(){return Ft()||Xr},iphone:function(){return Ft()||Jr},mobile:function(){return Ft()||Jr||Qr||Zr||wu},nativeApp:function(){return Ft()||_u},android:function(){return Ft()||Zr},ipad:function(){return Ft()||Qr}},kg=eo,Dg=!!(typeof window<"u"&&window.document&&window.document.createElement),Pg={canUseDOM:Dg},Og=Pg,Cu=Og,Eu;Cu.canUseDOM&&(Eu=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);/** 2 * Checks if an event is supported in the current execution environment. 3 * 4 * NOTE: This will not work correctly for non-generic events such as `change`, 5 * `reset`, `load`, `error`, and `select`. 6 * 7 * Borrows from Modernizr. 8 * 9 * @param {string} eventNameSuffix Event name, e.g. "click". 10 * @param {?boolean} capture Check if the capture phase is supported. 11 * @return {boolean} True if the event is supported. 12 * @internal 13 * @license Modernizr 3.0.0pre (Custom Build) | MIT 14 */function Rg(e,n){if(!Cu.canUseDOM||n&&!("addEventListener"in document))return!1;var a="on"+e,i=a in document;if(!i){var s=document.createElement("div");s.setAttribute(a,"return;"),i=typeof s[a]=="function"}return!i&&Eu&&e==="wheel"&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}var zg=Rg,Gg=kg,Fg=zg,Kd=10,qd=40,Yd=800;function Iu(e){var n=0,a=0,i=0,s=0;return"detail"in e&&(a=e.detail),"wheelDelta"in e&&(a=-e.wheelDelta/120),"wheelDeltaY"in e&&(a=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(n=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(n=a,a=0),i=n*Kd,s=a*Kd,"deltaY"in e&&(s=e.deltaY),"deltaX"in e&&(i=e.deltaX),(i||s)&&e.deltaMode&&(e.deltaMode==1?(i*=qd,s*=qd):(i*=Yd,s*=Yd)),i&&!n&&(n=i<1?-1:1),s&&!a&&(a=s<1?-1:1),{spinX:n,spinY:a,pixelX:i,pixelY:s}}Iu.getEventType=function(){return Gg.firefox()?"DOMMouseScroll":Fg("wheel")?"wheel":"mousewheel"};var Bg=Iu,Ug=Bg;const Hg=yp(Ug);function $g(e,n,a,i,s,r){r===void 0&&(r=0);var o=Za(e,n,r),c=o.width,d=o.height,m=Math.min(c,a),h=Math.min(d,i);return m>h*s?{width:h*s,height:h}:{width:m,height:m/s}}function Vg(e){return e.width>e.height?e.width/e.naturalWidth:e.height/e.naturalHeight}function mi(e,n,a,i,s){s===void 0&&(s=0);var r=Za(n.width,n.height,s),o=r.width,c=r.height;return{x:Xd(e.x,o,a.width,i),y:Xd(e.y,c,a.height,i)}}function Xd(e,n,a,i){var s=Math.abs(n*i/2-a/2);return Bs(e,-s,s)}function Zd(e,n){return Math.sqrt(Math.pow(e.y-n.y,2)+Math.pow(e.x-n.x,2))}function Jd(e,n){return Math.atan2(n.y-e.y,n.x-e.x)*180/Math.PI}function Wg(e,n,a,i,s,r,o){r===void 0&&(r=0),o===void 0&&(o=!0);var c=o?Kg:qg,d=Za(n.width,n.height,r),m=Za(n.naturalWidth,n.naturalHeight,r),h={x:c(100,((d.width-a.width/s)/2-e.x/s)/d.width*100),y:c(100,((d.height-a.height/s)/2-e.y/s)/d.height*100),width:c(100,a.width/d.width*100/s),height:c(100,a.height/d.height*100/s)},p=Math.round(c(m.width,h.width*m.width/100)),l=Math.round(c(m.height,h.height*m.height/100)),b=m.width>=m.height*i,u=b?{width:Math.round(l*i),height:l}:{width:p,height:Math.round(p/i)},y=Et(Et({},u),{x:Math.round(c(m.width-u.width,h.x*m.width/100)),y:Math.round(c(m.height-u.height,h.y*m.height/100))});return{croppedAreaPercentages:h,croppedAreaPixels:y}}function Kg(e,n){return Math.min(e,Math.max(0,n))}function qg(e,n){return n}function Yg(e,n,a,i,s,r){var o=Za(n.width,n.height,a),c=Bs(i.width/o.width*(100/e.width),s,r),d={x:c*o.width/2-i.width/2-o.width*c*(e.x/100),y:c*o.height/2-i.height/2-o.height*c*(e.y/100)};return{crop:d,zoom:c}}function Xg(e,n,a){var i=Vg(n);return a.height>a.width?a.height/(e.height*i):a.width/(e.width*i)}function Zg(e,n,a,i,s,r){a===void 0&&(a=0);
14var o=Za(n.naturalWidth,n.naturalHeight,a),c=Bs(Xg(e,n,i),s,r),d=i.height>i.width?i.height/e.height:i.width/e.width,m={x:((o.width-e.width)/2-e.x)*d,y:((o.height-e.height)/2-e.y)*d};return{crop:m,zoom:c}}function Qd(e,n){return{x:(n.x+e.x)/2,y:(n.y+e.y)/2}}function Jg(e){return e*Math.PI/180}function Za(e,n,a){var i=Jg(a);return{width:Math.abs(Math.cos(i)*e)+Math.abs(Math.sin(i)*n),height:Math.abs(Math.sin(i)*e)+Math.abs(Math.cos(i)*n)}}function Bs(e,n,a){return Math.min(Math.max(e,n),a)}function qi(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return e.filter(function(a){return typeof a=="string"&&a.length>0}).join(" ").trim()}var Qg=`.reactEasyCrop_Container { 15 position: absolute; 16 top: 0; 17 left: 0; 18 right: 0; 19 bottom: 0; 20 overflow: hidden; 21 user-select: none; 22 touch-action: none; 23 cursor: move; 24 display: flex; 25 justify-content: center; 26 align-items: center; 27} 28 29.reactEasyCrop_Image, 30.reactEasyCrop_Video { 31 will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */ 32} 33 34.reactEasyCrop_Contain { 35 max-width: 100%; 36 max-height: 100%; 37 margin: auto; 38 position: absolute; 39 top: 0; 40 bottom: 0; 41 left: 0; 42 right: 0; 43} 44.reactEasyCrop_Cover_Horizontal { 45 width: 100%; 46 height: auto; 47} 48.reactEasyCrop_Cover_Vertical { 49 width: auto; 50 height: 100%; 51} 52 53.reactEasyCrop_CropArea { 54 position: absolute; 55 left: 50%; 56 top: 50%; 57 transform: translate(-50%, -50%); 58 border: 1px solid rgba(255, 255, 255, 0.5); 59 box-sizing: border-box; 60 box-shadow: 0 0 0 9999em; 61 color: rgba(0, 0, 0, 0.5); 62 overflow: hidden; 63} 64 65.reactEasyCrop_CropAreaRound { 66 border-radius: 50%; 67} 68 69.reactEasyCrop_CropAreaGrid::before { 70 content: ' '; 71 box-sizing: border-box; 72 position: absolute; 73 border: 1px solid rgba(255, 255, 255, 0.5); 74 top: 0; 75 bottom: 0; 76 left: 33.33%; 77 right: 33.33%; 78 border-top: 0; 79 border-bottom: 0; 80} 81 82.reactEasyCrop_CropAreaGrid::after { 83 content: ' '; 84 box-sizing: border-box; 85 position: absolute; 86 border: 1px solid rgba(255, 255, 255, 0.5); 87 top: 33.33%; 88 bottom: 33.33%; 89 left: 0; 90 right: 0; 91 border-left: 0; 92 border-right: 0; 93} 94`,em=1,tm=3,nm=1,Do=function(e){bp(n,e);function n(){var a=e!==null&&e.apply(this,arguments)||this;return a.cropperRef=S.createRef(),a.imageRef=S.createRef(),a.videoRef=S.createRef(),a.containerPosition={x:0,y:0},a.containerRef=null,a.styleRef=null,a.containerRect=null,a.mediaSize={width:0,height:0,naturalWidth:0,naturalHeight:0},a.dragStartPosition={x:0,y:0},a.dragStartCrop={x:0,y:0},a.gestureZoomStart=0,a.gestureRotationStart=0,a.isTouching=!1,a.lastPinchDistance=0,a.lastPinchRotation=0,a.rafDragTimeout=null,a.rafPinchTimeout=null,a.wheelTimer=null,a.currentDoc=typeof document<"u"?document:null,a.currentWindow=typeof window<"u"?window:null,a.resizeObserver=null,a.previousCropSize=null,a.isInitialized=!1,a.state={cropSize:null,hasWheelJustStarted:!1,mediaObjectFit:void 0},a.initResizeObserver=function(){if(!(typeof window.ResizeObserver>"u"||!a.containerRef)){var i=!0;a.resizeObserver=new window.ResizeObserver(function(s){if(i){i=!1;return}a.computeSizes()}),a.resizeObserver.observe(a.containerRef)}},a.preventZoomSafari=function(i){return i.preventDefault()},a.cleanEvents=function(){a.currentDoc&&(a.currentDoc.removeEventListener("mousemove",a.onMouseMove),a.currentDoc.removeEventListener("mouseup",a.onDragStopped),a.currentDoc.removeEventListener("touchmove",a.onTouchMove),a.currentDoc.removeEventListener("touchend",a.onDragStopped),a.currentDoc.removeEventListener("gesturechange",a.onGestureChange),a.currentDoc.removeEventListener("gestureend",a.onGestureEnd),a.currentDoc.removeEventListener("scroll",a.onScroll))},a.clearScrollEvent=function(){a.containerRef&&a.containerRef.removeEventListener("wheel",a.onWheel),a.wheelTimer&&clearTimeout(a.wheelTimer)},a.onMediaLoad=function(){var i=a.computeSizes();i&&(a.previousCropSize=i,a.emitCropData(),a.setInitialCrop(i),a.isInitialized=!0),a.props.onMediaLoaded&&a.props.onMediaLoaded(a.mediaSize)},a.setInitialCrop=function(i){if(a.props.initialCroppedAreaPercentages){var s=Yg(a.props.initialCroppedAreaPercentages,a.mediaSize,a.props.rotation,i,a.props.minZoom,a.props.maxZoom),r=s.crop,o=s.zoom;a.props.onCropChange(r),a.props.onZoomChange&&a.props.onZoomChange(o)}else if(a.props.initialCroppedAreaPixels){var c=Zg(a.props.initialCroppedAreaPixels,a.mediaSize,a.props.rotation,i,a.props.minZoom,a.props.maxZoom),r=c.crop,o=c.zoom;a.props.onCropChange(r),a.props.onZoomChange&&a.props.onZoomChange(o)}},a.computeSizes=function(){var i,s,r,o,c,d,m=a.imageRef.current||a.videoRef.current;if(m&&a.containerRef){a.containerRect=a.containerRef.getBoundingClientRect(),a.saveContainerPosition();var h=a.containerRect.width/a.containerRect.height,p=((i=a.imageRef.current)===null||i===void 0?void 0:i.naturalWi
94dth)||((s=a.videoRef.current)===null||s===void 0?void 0:s.videoWidth)||0,l=((r=a.imageRef.current)===null||r===void 0?void 0:r.naturalHeight)||((o=a.videoRef.current)===null||o===void 0?void 0:o.videoHeight)||0,b=m.offsetWidth<p||m.offsetHeight<l,u=p/l,y=void 0;if(b)switch(a.state.mediaObjectFit){default:case"contain":y=h>u?{width:a.containerRect.height*u,height:a.containerRect.height}:{width:a.containerRect.width,height:a.containerRect.width/u};break;case"horizontal-cover":y={width:a.containerRect.width,height:a.containerRect.width/u};break;case"vertical-cover":y={width:a.containerRect.height*u,height:a.containerRect.height};break}else y={width:m.offsetWidth,height:m.offsetHeight};a.mediaSize=Et(Et({},y),{naturalWidth:p,naturalHeight:l}),a.props.setMediaSize&&a.props.setMediaSize(a.mediaSize);var I=a.props.cropSize?a.props.cropSize:$g(a.mediaSize.width,a.mediaSize.height,a.containerRect.width,a.containerRect.height,a.props.aspect,a.props.rotation);return(((c=a.state.cropSize)===null||c===void 0?void 0:c.height)!==I.height||((d=a.state.cropSize)===null||d===void 0?void 0:d.width)!==I.width)&&a.props.onCropSizeChange&&a.props.onCropSizeChange(I),a.setState({cropSize:I},a.recomputeCropPosition),a.props.setCropSize&&a.props.setCropSize(I),I}},a.saveContainerPosition=function(){if(a.containerRef){var i=a.containerRef.getBoundingClientRect();a.containerPosition={x:i.left,y:i.top}}},a.onMouseDown=function(i){a.currentDoc&&(i.preventDefault(),a.currentDoc.addEventListener("mousemove",a.onMouseMove),a.currentDoc.addEventListener("mouseup",a.onDragStopped),a.saveContainerPosition(),a.onDragStart(n.getMousePoint(i)))},a.onMouseMove=function(i){return a.onDrag(n.getMousePoint(i))},a.onScroll=function(i){a.currentDoc&&(i.preventDefault(),a.saveContainerPosition())},a.onTouchStart=function(i){a.currentDoc&&(a.isTouching=!0,!(a.props.onTouchRequest&&!a.props.onTouchRequest(i))&&(a.currentDoc.addEventListener("touchmove",a.onTouchMove,{passive:!1}),a.currentDoc.addEventListener("touchend",a.onDragStopped),a.saveContainerPosition(),i.touches.length===2?a.onPinchStart(i):i.touches.length===1&&a.onDragStart(n.getTouchPoint(i.touches[0]))))},a.onTouchMove=function(i){i.preventDefault(),i.touches.length===2?a.onPinchMove(i):i.touches.length===1&&a.onDrag(n.getTouchPoint(i.touches[0]))},a.onGestureStart=function(i){a.currentDoc&&(i.preventDefault(),a.currentDoc.addEventListener("gesturechange",a.onGestureChange),a.currentDoc.addEventListener("gestureend",a.onGestureEnd),a.gestureZoomStart=a.props.zoom,a.gestureRotationStart=a.props.rotation)},a.onGestureChange=function(i){if(i.preventDefault(),!a.isTouching){var s=n.getMousePoint(i),r=a.gestureZoomStart-1+i.scale;if(a.setNewZoom(r,s,{shouldUpdatePosition:!0}),a.props.onRotationChange){var o=a.gestureRotationStart+i.rotation;a.props.onRotationChange(o)}}},a.onGestureEnd=function(i){a.cleanEvents()},a.onDragStart=function(i){var s,r,o=i.x,c=i.y;a.dragStartPosition={x:o,y:c},a.dragStartCrop=Et({},a.props.crop),(r=(s=a.props).onInteractionStart)===null||r===void 0||r.call(s)},a.onDrag=function(i){var s=i.x,r=i.y;a.currentWindow&&(a.rafDragTimeout&&a.currentWindow.cancelAnimationFrame(a.rafDragTimeout),a.rafDragTimeout=a.currentWindow.requestAnimationFrame(function(){if(a.state.cropSize&&!(s===void 0||r===void 0)){var o=s-a.dragStartPosition.x,c=r-a.dragStartPosition.y,d={x:a.dragStartCrop.x+o,y:a.dragStartCrop.y+c},m=a.props.restrictPosition?mi(d,a.mediaSize,a.state.cropSize,a.props.zoom,a.props.rotation):d;a.props.onCropChange(m)}}))},a.onDragStopped=function(){var i,s;a.isTouching=!1,a.cleanEvents(),a.emitCropData(),(s=(i=a.props).onInteractionEnd)===null||s===void 0||s.call(i)},a.onWheel=function(i){if(a.currentWindow&&!(a.props.onWheelRequest&&!a.props.onWheelRequest(i))){i.preventDefault();var s=n.getMousePoint(i),r=Hg(i).pixelY,o=a.props.zoom-r*a.props.zoomSpeed/200;a.setNewZoom(o,s,{shouldUpdatePosition:!0}),a.state.hasWheelJustStarted||a.setState({hasWheelJustStarted:!0},function(){var c,d;return(d=(c=a.props).onInteractionStart)===null||d===void 0?void 0:d.call(c)}),a.wheelTimer&&clearTimeout(a.wheelTimer),a.wheelTimer=a.currentWindow.setTimeout(function(){return a.setState({hasWheelJustStarted:!1},function(){var c,d;return(d=(c=a.props).onInteractionEnd)===null||d===void 0?void 0:d.call(c)})},250)}},a.getPointOnContainer=function(i,s){var r=i.x,o=i.y;if(!a.containerRect)throw new Error("The Cropper is not mounted");return{x:a.containerRect.width/2-(r-s.x),y:a.containerRect.height/2-(o-s.y)}},a.getPointOnMedia=function(i){var s=i.x,r=i.y,o=a.props,c=o.crop,d=o.zoom;return{x:(s+c.x)/d,y:(r+c.y)/d}},a.setNewZoom=function(i,s,r){var o=r===void 0?{}:r,c=o.shouldUpdatePosition,d=c===void 0?!0:c;if(!(!a.state.cropSize||!a.props.onZoomChange)){var m=Bs(i,a.props.minZoom,a.props.maxZoom);if(d){var h=a.getPointOnContainer(s,a.containerPosition),p=a.getPointOnMedia(h),l={x:p.x*m-h.x,y:p.y*m-h.y},b=a.props.restrictPosition?mi(l,a.mediaSize,a.state.cropSize,m,a.props.rotation):l;a.props.onCropChange(b)}a.props.onZoomChange(m)}},a.getCropData=function(){if(!a.state.cropSize)return null;var i=a.props.restrictPosition?mi(a.props.crop,a.mediaSize,a.state.cropSize,a.props.zoom,a.props.rotation):a.props.crop;return Wg(i,a.mediaSize,a.state.cropSize,a.getAspect(),a.props.zoom,a.props.rotation,a.props.restrictPosition)},a.emitCropData=function(){var i=a.getCropData();if(i){var s=i.croppedAreaPercentages,r=i.croppedAreaPixels;a.props.onCropComplete&&a.props.onCropComplete(s,r),a.props.onCropAreaChange&&a.props.onCropAreaChange(s,r)}},a.emitCropAreaChange=function(){var i=a.getCropData();if(i){var s=i.croppedAreaPercentages,r=i.croppedAreaPixels;a.props.onCropAreaChange&&a.props.onCropAreaChange(s,r)}},a.recomputeCropPosition=function(){var i,s;if(a.state.cropSize){var r=a.props.crop;if(a.isInitialized&&(!((i=a.previousCropSize)===null||i===void 0)&&i.width)&&(!((s=a.previousCropSize)===null||s===void 0)&&s.height)){var o=Math.abs(a.previousCropSize.width-a.state.cropSize.width)>1e-6||Math.abs(a.previousCropSize.height-a.state.cropSize.height)>1e-6;if(o){var c=a.state.cropSize.width/a.previousCropSize.width,d=a.state.cropSize.height/a.previousCropSize.height;r={x:a.props.crop.x*c,y:a.props.crop.y*d}}}var m=a.props.restrictPosition?mi(r,a.mediaSize,a.state.cropSize,a.props.zoom,a.props.rotation):r;a.previousCropSize=a.state.cropSize,a.props.onCropChange(m),a.emitCropData()}},a.onKeyDown=function(i){var s,r,o=a.props,c=o.crop,d=o.onCropChange,m=o.keyboardStep,h=o.zoom,p=o.rotation,l=m;
94if(a.state.cropSize){i.shiftKey&&(l*=.2);var b=Et({},c);switch(i.key){case"ArrowUp":b.y-=l,i.preventDefault();break;case"ArrowDown":b.y+=l,i.preventDefault();break;case"ArrowLeft":b.x-=l,i.preventDefault();break;case"ArrowRight":b.x+=l,i.preventDefault();break;default:return}a.props.restrictPosition&&(b=mi(b,a.mediaSize,a.state.cropSize,h,p)),i.repeat||(r=(s=a.props).onInteractionStart)===null||r===void 0||r.call(s),d(b)}},a.onKeyUp=function(i){var s,r;switch(i.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":i.preventDefault();break;default:return}a.emitCropData(),(r=(s=a.props).onInteractionEnd)===null||r===void 0||r.call(s)},a}return n.prototype.componentDidMount=function(){!this.currentDoc||!this.currentWindow||(this.containerRef&&(this.containerRef.ownerDocument&&(this.currentDoc=this.containerRef.ownerDocument),this.currentDoc.defaultView&&(this.currentWindow=this.currentDoc.defaultView),this.initResizeObserver(),typeof window.ResizeObserver>"u"&&this.currentWindow.addEventListener("resize",this.computeSizes),this.props.zoomWithScroll&&this.containerRef.addEventListener("wheel",this.onWheel,{passive:!1}),this.containerRef.addEventListener("gesturestart",this.onGestureStart)),this.currentDoc.addEventListener("scroll",this.onScroll),this.props.disableAutomaticStylesInjection||(this.styleRef=this.currentDoc.createElement("style"),this.styleRef.setAttribute("type","text/css"),this.props.nonce&&this.styleRef.setAttribute("nonce",this.props.nonce),this.styleRef.innerHTML=Qg,this.currentDoc.head.appendChild(this.styleRef)),this.imageRef.current&&this.imageRef.current.complete&&this.onMediaLoad(),this.props.setImageRef&&this.props.setImageRef(this.imageRef),this.props.setVideoRef&&this.props.setVideoRef(this.videoRef),this.props.setCropperRef&&this.props.setCropperRef(this.cropperRef))},n.prototype.componentWillUnmount=function(){var a,i;!this.currentDoc||!this.currentWindow||(typeof window.ResizeObserver>"u"&&this.currentWindow.removeEventListener("resize",this.computeSizes),(a=this.resizeObserver)===null||a===void 0||a.disconnect(),this.containerRef&&this.containerRef.removeEventListener("gesturestart",this.preventZoomSafari),this.styleRef&&((i=this.styleRef.parentNode)===null||i===void 0||i.removeChild(this.styleRef)),this.cleanEvents(),this.props.zoomWithScroll&&this.clearScrollEvent())},n.prototype.componentDidUpdate=function(a){var i,s,r,o,c,d,m,h,p;a.rotation!==this.props.rotation?(this.computeSizes(),this.recomputeCropPosition()):a.aspect!==this.props.aspect?this.computeSizes():a.objectFit!==this.props.objectFit?this.computeSizes():a.zoom!==this.props.zoom?this.recomputeCropPosition():((i=a.cropSize)===null||i===void 0?void 0:i.height)!==((s=this.props.cropSize)===null||s===void 0?void 0:s.height)||((r=a.cropSize)===null||r===void 0?void 0:r.width)!==((o=this.props.cropSize)===null||o===void 0?void 0:o.width)?this.computeSizes():(((c=a.crop)===null||c===void 0?void 0:c.x)!==((d=this.props.crop)===null||d===void 0?void 0:d.x)||((m=a.crop)===null||m===void 0?void 0:m.y)!==((h=this.props.crop)===null||h===void 0?void 0:h.y))&&this.emitCropAreaChange(),a.zoomWithScroll!==this.props.zoomWithScroll&&this.containerRef&&(this.props.zoomWithScroll?this.containerRef.addEventListener("wheel",this.onWheel,{passive:!1}):this.clearScrollEvent()),a.video!==this.props.video&&((p=this.videoRef.current)===null||p===void 0||p.load());var l=this.getObjectFit();l!==this.state.mediaObjectFit&&this.setState({mediaObjectFit:l},this.computeSizes)},n.prototype.getAspect=function(){var a=this.props,i=a.cropSize,s=a.aspect;return i?i.width/i.height:s},n.prototype.getObjectFit=function(){var a,i,s,r;if(this.props.objectFit==="cover"){var o=this.imageRef.current||this.videoRef.current;if(o&&this.containerRef){this.containerRect=this.containerRef.getBoundingClientRect();var c=this.containerRect.width/this.containerRect.height,d=((a=this.imageRef.current)===null||a===void 0?void 0:a.naturalWidth)||((i=this.videoRef.current)===null||i===void 0?void 0:i.videoWidth)||0,m=((s=this.imageRef.current)===null||s===void 0?void 0:s.naturalHeight)||((r=this.videoRef.current)===null||r===void 0?void 0:r.videoHeight)||0,h=d/m;return h<c?"horizontal-cover":"vertical-cover"}return"horizontal-cover"}return this.props.objectFit},n.prototype.onPinchStart=function(a){var i=n.getTouchPoint(a.touches[0]),s=n.getTouchPoint(a.touches[1]);this.lastPinchDistance=Zd(i,s),this.lastPinchRotation=Jd(i,s),this.onDragStart(Qd(i,s))},n.prototype.onPinchMove=function(a){var i=this;if(!(!this.currentDoc||!this.currentWindow)){var s=n.getTouchPoint(a.touches[0]),r
94=n.getTouchPoint(a.touches[1]),o=Qd(s,r);this.onDrag(o),this.rafPinchTimeout&&this.currentWindow.cancelAnimationFrame(this.rafPinchTimeout),this.rafPinchTimeout=this.currentWindow.requestAnimationFrame(function(){var c=Zd(s,r),d=i.props.zoom*(c/i.lastPinchDistance);i.setNewZoom(d,o,{shouldUpdatePosition:!1}),i.lastPinchDistance=c;var m=Jd(s,r),h=i.props.rotation+(m-i.lastPinchRotation);i.props.onRotationChange&&i.props.onRotationChange(h),i.lastPinchRotation=m})}},n.prototype.render=function(){var a=this,i,s=this.props,r=s.image,o=s.video,c=s.mediaProps,d=s.cropperProps,m=s.transform,h=s.crop,p=h.x,l=h.y,b=s.rotation,u=s.zoom,y=s.cropShape,I=s.showGrid,C=s.roundCropAreaPixels,E=s.style,P=E.containerStyle,D=E.cropAreaStyle,G=E.mediaStyle,_=s.classes,O=_.containerClassName,f=_.cropAreaClassName,k=_.mediaClassName,R=(i=this.state.mediaObjectFit)!==null&&i!==void 0?i:this.getObjectFit();return S.createElement("div",{onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,ref:function($){return a.containerRef=$},"data-testid":"container",style:P,className:qi("reactEasyCrop_Container",O)},r?S.createElement("img",Et({alt:"",className:qi("reactEasyCrop_Image",R==="contain"&&"reactEasyCrop_Contain",R==="horizontal-cover"&&"reactEasyCrop_Cover_Horizontal",R==="vertical-cover"&&"reactEasyCrop_Cover_Vertical",k)},c,{src:r,ref:this.imageRef,style:Et(Et({},G),{transform:m||"translate(".concat(p,"px, ").concat(l,"px) rotate(").concat(b,"deg) scale(").concat(u,")")}),onLoad:this.onMediaLoad})):o&&S.createElement("video",Et({autoPlay:!0,playsInline:!0,loop:!0,muted:!0,className:qi("reactEasyCrop_Video",R==="contain"&&"reactEasyCrop_Contain",R==="horizontal-cover"&&"reactEasyCrop_Cover_Horizontal",R==="vertical-cover"&&"reactEasyCrop_Cover_Vertical",k)},c,{ref:this.videoRef,onLoadedMetadata:this.onMediaLoad,style:Et(Et({},G),{transform:m||"translate(".concat(p,"px, ").concat(l,"px) rotate(").concat(b,"deg) scale(").concat(u,")")}),controls:!1}),(Array.isArray(o)?o:[{src:o}]).map(function(B){return S.createElement("source",Et({key:B.src},B))})),this.state.cropSize&&S.createElement("div",Et({ref:this.cropperRef,style:Et(Et({},D),{width:C?Math.round(this.state.cropSize.width):this.state.cropSize.width,height:C?Math.round(this.state.cropSize.height):this.state.cropSize.height}),tabIndex:0,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp,"data-testid":"cropper",className:qi("reactEasyCrop_CropArea",y==="round"&&"reactEasyCrop_CropAreaRound",I&&"reactEasyCrop_CropAreaGrid",f)},d)))},n.defaultProps={zoom:1,rotation:0,aspect:4/3,maxZoom:tm,minZoom:em,cropShape:"rect",objectFit:"contain",showGrid:!0,style:{},classes:{},mediaProps:{},cropperProps:{},zoomSpeed:1,restrictPosition:!0,zoomWithScroll:!0,keyboardStep:nm},n.getMousePoint=function(a){return{x:Number(a.clientX),y:Number(a.clientY)}},n.getTouchPoint=function(a){return{x:Number(a.clientX),y:Number(a.clientY)}},n}(S.Component);async function Po(e,n,a="square"){const i=await new Promise((l,b)=>{const u=new Image;u.crossOrigin="anonymous",u.src=e,u.onload=()=>l(u),u.onerror=y=>b(y)}),s=document.createElement("canvas"),r=s.getContext("2d");if(!r)throw new Error("Could not get 2D context");let o=1200,c=1200;a==="landscape"?(o=1200,c=628):a==="portrait"?(o=960,c=1200):a==="horizontal"&&(o=1200,c=300),s.width=o,s.height=c;const d=Math.max(0,n.x),m=Math.max(0,n.y),h=Math.max(1,n.width),p=Math.max(1,n.height);return r.drawImage(i,d,m,h,p,0,0,o,c),s.toDataURL("image/jpeg",.9)}var am=ra("arrow-right","IconArrowRight",[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M13 18l6 -6",key:"svg-1"}],["path",{d:"M13 6l6 6",key:"svg-2"}]]),Tu=ra("battery-3","IconBattery3",[["path",{d:"M6 7h11a2 2 0 0 1 2 2v.5a.5 .5 0 0 0 .5 .5a.5 .5 0 0 1 .5 .5v3a.5 .5 0 0 1 -.5 .5a.5 .5 0 0 0 -.5 .5v.5a2 2 0 0 1 -2 2h-11a2 2 0 0 1 -2 -2v-6a2 2 0 0 1 2 -2",key:"svg-0"}],["path",{d:"M7 10l0 4",key:"svg-1"}],["path",{d:"M10 10l0 4",key:"svg-2"}],["path",{d:"M13 10l0 4",key:"svg-3"}]]),Us=ra("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]),im=ra("credit-card","IconCreditCard",[["path",{d:"M3 5m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z",key:"svg-0"}],["path",{d:"M3 10l18 0",key:"svg-1"}],["path",{d:"M7 15l.01 0",key:"svg-2"}],["path",{d:"M11 15l2 0",key:"svg-3"}]]),Mu=ra("eye","IconEye",[["path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6",key:"svg-1"}]]),sm=ra("flag","IconFlag",[["path",{d:"M5 5a5 5 0 0 1 7 0a5 5 0 0 0 7 0v9a5 5 0 0 1 -7 0a5 5 0 0 0 -7 0v-9z",key:"svg-0"}],["path",{d:"M5 21v-7",key:"svg-1"}
94]]),Nu=ra("shopping-cart","IconShoppingCart",[["path",{d:"M6 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M17 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M17 17h-11v-14h-2",key:"svg-2"}],["path",{d:"M6 5l14 1l-1 7h-13",key:"svg-3"}]]),ku=ra("wifi","IconWifi",[["path",{d:"M12 18l.01 0",key:"svg-0"}],["path",{d:"M9.172 15.172a4 4 0 0 1 5.656 0",key:"svg-1"}],["path",{d:"M6.343 12.343a8 8 0 0 1 11.314 0",key:"svg-2"}],["path",{d:"M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0",key:"svg-3"}]]),Ut=(e=>(e.CREATE_NEW_CAMPAIGN="full",e.EXISTING_CAMPAIGN_NEW_AD_GROUP="existing_campaign_new_adgroup",e.EXISTING_CAMPAIGN_AND_AD_GROUP="existing_ids",e))(Ut||{}),ht=(e=>(e.CREATE_NEW_CAMPAIGN="full",e.EXISTING_CAMPAIGN_NEW_AD_GROUP="existing_campaign_new_adgroup",e.EXISTING_CAMPAIGN_AND_AD_GROUP="existing_ids",e))(ht||{});const Hs=(e,n)=>n==null?["launchHub",e]:["launchHub",e,n],rm=10,om={adsLaunched:0,launchedCampaigns:0,failedCampaigns:0,drafts:0},dm={totalPages:0},cm=(e,n=1)=>hn({enabled:!!e,queryKey:Hs(e||"",n),queryFn:async()=>(await Ye.get("api/launch_hub",{params:{brand_id:Number(e),page:n,page_size:rm}})).data,placeholderData:Ap}),Du=()=>{const e=yt();return jn({mutationFn:async n=>(await Ye.post("api/launch_drafts",{brandId:n.brandId,channel:n.channel,accountType:n.accountType||"managed",title:n.title,currentStep:n.currentStep,payloadJson:n.payloadJson})).data,onSuccess:(n,a)=>{e.invalidateQueries({queryKey:Hs(String(a.brandId))})}})},Pu=()=>{const e=yt();return jn({mutationFn:async n=>{const{draftId:a,...i}=n;return(await Ye.patch(`api/launch_drafts/${a}`,i)).data},onSuccess:n=>{e.invalidateQueries({queryKey:Hs(String(n.brandId))})}})},lm=()=>{const e=yt();return jn({mutationFn:async n=>(await Ye.delete(`api/launch_drafts/${n.draftId}`,{params:{brand_id:n.brandId}})).data,onSuccess:(n,a)=>{e.invalidateQueries({queryKey:Hs(String(a.brandId))})}})},Bi=()=>{const{brandId:e}=ve(),n=re(s=>s.adLauncher.draftId),a=Du(),i=Pu();return S.useCallback(async(s,r)=>{if(e)try{let o=n;if(o==null){if(!(r!=null&&r.channel)||!r.title)return;o=(await a.mutateAsync({brandId:Number(e),channel:r.channel,accountType:r.accountType||"own",title:r.title,currentStep:r.currentStep??1,payloadJson:r.payloadJson??"{}"})).id}await i.mutateAsync({draftId:o,brandId:Number(e),status:s,campaignId:r==null?void 0:r.campaignId,adsLaunchedCount:r==null?void 0:r.adsLaunchedCount,...r!=null&&r.title?{title:r.title}:{},...(r==null?void 0:r.currentStep)!=null?{currentStep:r.currentStep}:{}})}catch{}},[e,a,n,i])},um=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function hm(e){return e==="meta"?"facebook":e==="google"||e==="openai"?e:null}function pm(e){if(typeof e=="string"&&e.trim())return e.trim();if(e&&typeof e=="object"&&"id"in e){const n=e.id;if(typeof n=="string"&&n.trim())return n.trim()}return null}function Ja(e){if(!Array.isArray(e))return[];const n=[],a=new Set;for(const i of e){const s=pm(i);s&&!a.has(s)&&(a.add(s),n.push(s))}return n}function yn(e,n,a){if(!e)return[];const i=Ja(e[n]);return i.length?i:Ja(e[a])}function gm(e){var a;const n=(a=e.google)==null?void 0:a.adsSelection;return[...new Set([...Ja(e.selectedAdIds),...Ja(e.selectedAds),...yn(n,"adIds","ads"),...yn(n,"updatedAdIds","updatedAds"),...yn(n,"squareAdIds","squareAds"),...yn(n,"landscapeAdIds","landscapeAds"),...yn(n,"portraitAdIds","portraitAds")])]}function Ea(e,n){return e.map(a=>n.get(a)).filter(a=>!!a)}function mm(e){return JSON.stringify({channel:e.channel,selectedAdIds:e.selectedAds.map(n=>n.id),meta:e.meta,google:{...e.google,adsSelection:{adIds:e.google.adsSelection.ads.map(n=>n.id),updatedAdIds:e.google.adsSelection.updatedAds.map(n=>n.id),squareAdIds:e.google.adsSelection.squareAds.map(n=>n.id),landscapeAdIds:e.google.adsSelection.landscapeAds.map(n=>n.id),portraitAdIds:e.google.adsSelection.portraitAds.map(n=>n.id),croppedVariants:e.google.adsSelection.croppedVariants||[]}},openai:e.openai})}function fm(e){try{const n=JSON.parse(e);return n&&typeof n=="object"?n:{}}catch{return{}}}async function Ou(e){const n=fm(e),a=await fg(gm(n)),i=new Map(a.map(c=>[c.id,c])),s=Ja(n.selectedAdIds),r=s.length?s:Ja(n.selectedAds),o={channel:n.channel,selectedAds:Ea(r,i),meta:n.meta,openai:n.openai};if(n.google){const c=n.google.adsSelection,d={ads:Ea(yn(c,"adIds","ads"),i),updatedAds:Ea(yn(c,"updatedAdIds","updatedAds"),i),squareAds:Ea(yn(c,"squareAdIds","squareAds"),i),landscapeAds:Ea(yn(c,"landscapeAdIds","landscapeAds"),i),portraitAds:Ea(yn(c,"portraitAdIds","portraitAds"),i),croppedVariants:Array.isArray(c==null?void 0:c.croppedVariants)?c.croppedVariants:[],cropping:{open:!1,adsToCrop:[],step:"squareAds"}},{adsSelection:m,...h}=n.google;o.google={...h,adsSelection:d}}return o}function xm(e){var i,s,r,o,c;const n=new Date,a=`${um[n.getMonth()]} ${n.getFullYear()}`;if(e.channel==="meta")return`${((s=(i=e.meta.campaign)==null?void 0:i.campaignName)==null?void 0:s.trim())||"Untitled"} â ${e.meta.objective||"Traffic"} â ${a}`;if(e.channel==="google"){const d=((r=e.google.form.campaignName)==null?void 0:r.trim())||"Untitled",m=e.google.campaignType==="demandGen"?"Demand Gen":e.google.campaignType==="performanceMax"?"Performance Max":"Traffic";return`${d} â ${m} â ${a}`}if(e.channel==="openai"){const d=((c=(o=e.openai.campaign)==null?void 0:o.campaignName)==null?void 0:c.trim())||"Untitled",m=e.openai.biddingType==="impressions"?"Impressions":"Clicks";return`${d} â ${m} â ${a}`}return`Untitled â ${a}`}const ym=[Ve.CREATIVE,Ve.CAMPAIGN,Ve.SETUP,Ve.AD_COPY,Ve.REVIEW,Ve.PAYMENT],bm=[We.ADS,We.FORMATS,We.OBJECTIVE,We.SETUP,We.FINAL_PREVIEW,We.PAYMENT],Am=[Ue.CREATIVE,Ue.FORMATS,Ue.CAMPAIGN,Ue.SETUP,Ue.AD_COPY,Ue.REVIEW];function Ru(e){return e.channel==="meta"?ym.includes(e.meta.step):e.channel==="google"?bm.includes(e.google.step):e.channel==="openai"?Am.includes(e.openai.step):!1}function Lm(e){return e.channel==="meta"?e.meta.step:e.channel==="google"?e.google.step:e.channel==="openai"?e.openai.step:1}
94const zu=["facebook","google","openai","linkedin","reddit","tiktok"],Sm=["pinterest","twitter"],fi=e=>Sm.includes(e),jm=e=>`/brands/${e}/settings?tab=connections`,vm={facebook:{campaignStatus:"supported",adGroupStatus:"supported",adStatus:"supported",campaignBudget:"supported",adGroupBudget:"supported"},google:{campaignStatus:"supported",adGroupStatus:"unsupported",adStatus:"unsupported",campaignBudget:"supported",adGroupBudget:"unsupported"},openai:{campaignStatus:"supported",adGroupStatus:"supported",adStatus:"supported",campaignBudget:"try",adGroupBudget:"unsupported"},linkedin:{campaignStatus:"supported",adGroupStatus:"unsupported",adStatus:"unsupported",campaignBudget:"try",adGroupBudget:"try"},reddit:{campaignStatus:"supported",adGroupStatus:"unsupported",adStatus:"unsupported",campaignBudget:"try",adGroupBudget:"try"},tiktok:{campaignStatus:"supported",adGroupStatus:"unsupported",adStatus:"unsupported",campaignBudget:"unsupported",adGroupBudget:"unsupported"}},Ui=e=>zu.includes(e)?vm[e]:null,sn=e=>e!=="unsupported",_m=(e,n)=>{const a=Ui(e);return!a||!sn(a.adGroupBudget)?!1:e==="facebook"?n==="ad_group":!0},nr=(e,n,a)=>e==="openai"?a.openaiConnected:e==="google"&&a.googleOmnekyManaged?!1:n.includes(e),wm="_section_89vgh_1",Cm="_managedSection_89vgh_6",Em="_connectedSection_89vgh_10",Im="_availableSection_89vgh_14",Tm="_campaignsSection_89vgh_19",Mm="_iconCircle_89vgh_26",Nm="_iconCircleManaged_89vgh_36",km="_iconCircleConnected_89vgh_41",Dm="_iconCircleAvailable_89vgh_46",Pm="_iconCircleCampaigns_89vgh_51",Om="_staticRow_89vgh_56",Rm="_clickableCard_89vgh_62",zm="_logoCircle_89vgh_84",Gm="_statCard_89vgh_95",Fm="_insightsCard_89vgh_102",Bm="_campaignRow_89vgh_109",Um="_manageEntity_89vgh_123",Hm="_manageNested_89vgh_129",$m="_manageHighlight_89vgh_133",Vm="_connectSlot_89vgh_138",Ke={section:wm,managedSection:Cm,connectedSection:Em,availableSection:Im,campaignsSection:Tm,iconCircle:Mm,iconCircleManaged:Nm,iconCircleConnected:km,iconCircleAvailable:Dm,iconCircleCampaigns:Pm,staticRow:Om,clickableCard:Rm,logoCircle:zm,statCard:Gm,insightsCard:Fm,campaignRow:Bm,manageEntity:Um,manageNested:Hm,manageHighlight:$m,connectSlot:Vm},Wm={managed:Ke.iconCircleManaged,connected:Ke.iconCircleConnected,available:Ke.iconCircleAvailable,campaigns:Ke.iconCircleCampaigns};function Hi({variant:e,icon:n,title:a,subtitle:i}){return t.jsxs(U,{align:"flex-start",gap:"sm",mb:"sm",children:[t.jsx(A,{className:`${Ke.iconCircle} ${Wm[e]}`,children:n}),t.jsxs(ae,{gap:2,style:{flex:1,minWidth:0},children:[t.jsx(g,{fw:700,size:"sm",children:a}),t.jsx(g,{size:"xs",c:"dimmed",children:i})]})]})}const Km="22";function $s({platform:e,size:n=Km}){switch(e){case"facebook":return t.jsx(du,{size:n});case"google":return t.jsx(uu,{size:n});case"tiktok":return t.jsx(ou,{size:n});case"reddit":return t.jsx(Wr,{size:n});case"linkedin":return t.jsx(Lu,{size:n});case"openai":return t.jsx(Vr,{size:Number(n)});case"pinterest":return t.jsx(_g,{size:n});case"twitter":return t.jsx(vg,{size:n});default:return null}}function qm({status:e}){const{t:n}=de(),a=e==="active"?"teal":e==="paused"?"orange":"gray";return t.jsx(Qe,{size:"sm",radius:"xl",color:a,variant:"light",styles:{root:{textTransform:"none",fontWeight:600}},children:n(`adLauncher.launchAd.hub.manage.status.${e}`)})}function di({message:e,unsupported:n}){return e?t.jsx(Xt,{color:n?"gray":"red",variant:"light",icon:n?t.jsx(vl,{size:16}):t.jsx(Lp,{size:16}),py:"xs",children:t.jsx(g,{size:"xs",children:e})}):null}function Gu({value:e,disabled:n,disabledReason:a,saving:i,onSave:s}){const{t:r}=de(),[o,c]=S.useState(e??"");S.useEffect(()=>{c(e??"")},[e]);const d=typeof o=="number"?o:Number.parseFloat(String(o)),m=Number.isFinite(d)&&d>0&&d!==e,h=t.jsxs(U,{align:"flex-end",gap:"xs",wrap:"wrap",children:[t.jsx(at,{label:r("adLauncher.launchAd.hub.manage.budget.label"),value:o,onChange:c,min:.01,decimalScale:2,fixedDecimalScale:!0,hideControls:!0,disabled:n||i,w:140,size:"xs"}),t.jsx(Me,{size:"compact-sm",variant:"default",radius:"md",disabled:n||i||!m,loading:i,onClick:()=>{Number.isFinite(d)&&d>0&&s(d)},children:r("adLauncher.launchAd.hub.manage.budget.save")})]});return n&&a?t.jsx(Ri,{label:a,withArrow:!0,children:t.jsx(A,{children:h})}):h}function Oo({status:e,disabled:n,disabledReason:a,loading:i,onToggle:s}){const{t:r}=de(),o=e==="active",c=t.jsx(rt,{checked:o,disabled:n||i||e==="other",onChange:s,label:r(o?"adLauncher.launchAd.hub.manage.pause":"adLauncher.launchAd.hub.manage.activate"),size:"sm"});return n&&a?t.jsx(Ri,{label:a,withArrow:!0,children:t.jsx(A,{children:c})}):c}function Ro({name:e,status:n,rawStatus:a,children:i}){return t.jsxs(ae,{gap:"xs",children:[t.jsxs(U,{align:"center",justify:"space-between",gap:"sm",wrap:"wrap",children:[t.jsxs(ae,{gap:2,style:{minWidth:0,flex:1},children:[t.jsx(g,{fw:600,size:"sm",lineClamp:1,children:e}),n==="other"&&a?t.jsx(g,{size:"xs",c:"dimmed",children:a}):null]}),t.jsx(qm,{status:n})]}),i]})}function Fu({title:e,children:n}){const[a,i]=S.useState(!1);return t.jsx(Ki,{variant:"separated",radius:"md",className:Ke.manageNested,chevronPosition:"left",value:a?"nested":null,onChange:s=>i(s==="nested"),children:t.jsxs(Ki.Item,{value:"nested",children:[t.jsx(Ki.Control,{children:t.jsx(g,{size:"sm",fw:600,children:e})}),t.jsx(Ki.Panel,{children:a?t.jsx(ae,{gap:"sm",children:n}):null})]})})}function Bu({onClick:e}){const{t:n}=de();return t.jsx(Me,{size:"compact-xs",variant:"light",radius:"md",onClick:e,children:n("adLauncher.launchAd.hub.manage.action")})}const Ym={facebook:"adLauncher.launchAd.hub.platforms.meta",google:"adLauncher.launchAd.hub.platforms.google",tiktok:"adLauncher.launchAd.hub.platforms.tiktok",reddit:"adLauncher.launchAd.hub.platforms.reddit",linkedin:"adLauncher.launchAd.hub.platforms.linkedin",openai:"adLauncher.launchAd.hub.platforms.open
94ai",pinterest:"adLauncher.launchAd.hub.platforms.pinterest",twitter:"adLauncher.launchAd.hub.platforms.twitter"},Xm={draft:"orange",launched:"teal",failed:"red"};function Zm({campaigns:e,stats:n,isLoading:a,page:i,totalPages:s,onPageChange:r,onResumeDraft:o,onDeleteDraft:c,onManageCampaign:d,deletingDraftId:m,liveManagePlatforms:h}){const{t:p}=de();return t.jsxs(A,{className:Ke.campaignsSection,children:[t.jsx(Hi,{variant:"campaigns",icon:t.jsx(sm,{size:14}),title:p("adLauncher.launchAd.hub.campaigns.title"),subtitle:p("adLauncher.launchAd.hub.campaigns.summary",{drafts:n.drafts,launched:n.launchedCampaigns})}),t.jsx(A,{children:a?t.jsx(g,{size:"sm",c:"dimmed",p:"md",children:p("adLauncher.launchAd.hub.campaigns.loading")}):e.length===0?t.jsx(g,{size:"sm",c:"dimmed",p:"md",children:p("adLauncher.launchAd.hub.campaigns.empty")}):e.map(l=>t.jsx(Jm,{campaign:l,onResumeDraft:o,onDeleteDraft:c,onManageCampaign:d,isDeleting:m===l.id,canManage:h.includes(l.platform)},l.id))}),s>1&&t.jsx(U,{justify:"center",mt:"md",children:t.jsx(wg,{value:i,onChange:r,total:s,size:"sm"})})]})}function Jm({campaign:e,onResumeDraft:n,onDeleteDraft:a,onManageCampaign:i,isDeleting:s,canManage:r}){const{t:o}=de(),c=e.accountType==="managed"?o("adLauncher.launchAd.hub.campaigns.omnekyManaged"):o("adLauncher.launchAd.hub.campaigns.ownAccount"),d=o(Ym[e.platform]);return t.jsx(A,{className:Ke.campaignRow,children:t.jsxs(U,{align:"center",justify:"space-between",gap:"sm",children:[t.jsxs(U,{align:"center",gap:"sm",style:{minWidth:0},children:[t.jsx(A,{className:Ke.logoCircle,children:t.jsx($s,{platform:e.platform})}),t.jsxs(ae,{gap:2,style:{minWidth:0},children:[t.jsx(g,{fw:700,size:"sm",lineClamp:1,children:e.title}),t.jsxs(g,{size:"xs",c:"dimmed",lineClamp:1,children:[c," · ",d]})]})]}),t.jsxs(U,{align:"center",gap:"xs",style:{flexShrink:0},children:[t.jsx(Qe,{size:"sm",radius:"xl",color:Xm[e.status],variant:"light",styles:{root:{textTransform:"none",fontWeight:600}},children:o(`adLauncher.launchAd.hub.campaigns.status.${e.status}`)}),e.status==="launched"&&r&&t.jsx(Bu,{onClick:()=>i(e)}),e.status==="draft"&&t.jsxs(t.Fragment,{children:[t.jsx(Me,{size:"compact-sm",variant:"default",radius:"md",onClick:()=>n(e),children:o("adLauncher.launchAd.hub.campaigns.resume")}),t.jsx(gt,{size:"sm",variant:"subtle",color:"gray",radius:"md","aria-label":o("adLauncher.launchAd.hub.campaigns.delete"),onClick:()=>a(e),loading:s,children:t.jsx(Sp,{size:16})})]})]})]})})}function Qm({stats:e,onViewInsights:n}){const{t:a}=de();return t.jsxs(on,{cols:{base:2,sm:4},spacing:"sm",children:[t.jsxs(A,{className:Ke.statCard,children:[t.jsx(g,{size:"xs",c:"dimmed",fw:600,children:a("adLauncher.launchAd.hub.stats.adsLaunched")}),t.jsx(Be,{order:1,mt:"xs",children:e.adsLaunched})]}),t.jsxs(A,{className:Ke.statCard,children:[t.jsx(g,{size:"xs",c:"dimmed",fw:600,children:a("adLauncher.launchAd.hub.stats.launchedCampaigns")}),t.jsx(Be,{order:1,mt:"xs",children:e.launchedCampaigns}),e.failedCampaigns>0&&t.jsx(g,{size:"xs",c:"red.7",mt:4,fw:600,children:a("adLauncher.launchAd.hub.stats.failedCount",{count:e.failedCampaigns})})]}),t.jsxs(A,{className:Ke.statCard,children:[t.jsx(g,{size:"xs",c:"dimmed",fw:600,children:a("adLauncher.launchAd.hub.stats.inDraft")}),t.jsx(Be,{order:1,mt:"xs",children:e.drafts}),t.jsx(g,{size:"xs",c:"dimmed",mt:4,children:a("adLauncher.launchAd.hub.stats.resumeAnyTime")})]}),t.jsx(Ht,{className:Ke.insightsCard,onClick:n,children:t.jsxs(U,{direction:"column",justify:"space-between",h:"100%",gap:"sm",children:[t.jsx(g,{size:"xs",c:"dimmed",fw:600,children:a("adLauncher.launchAd.hub.stats.howAreTheyDoing")}),t.jsxs(U,{align:"center",gap:4,c:"blue.9",children:[t.jsx(g,{size:"sm",fw:700,c:"blue.9",children:a("adLauncher.launchAd.hub.stats.viewInsights")}),t.jsx(am,{size:16})]})]})})]})}function ef({connections:e}){const{t:n}=de();return e.length===0?null:t.jsxs(A,{className:`${Ke.section} ${Ke.availableSection}`,children:[t.jsx(Hi,{variant:"available",icon:t.jsx(Cg,{size:14}),title:n("adLauncher.launchAd.hub.availableConnections.title"),subtitle:n("adLauncher.launchAd.hub.availableConnections.subtitle")}),t.jsx(ae,{gap:"xs",children:e.map(a=>t.jsx(tf,{connection:a},a.id))})]})}function tf({connection:e}){return t.jsx(A,{className:Ke.staticRow,children:t.jsxs(U,{align:"center",justify:"space-between",gap:"sm",children:[t.jsxs(U,{align:"center",gap:"sm",style:{minWidth:0},children:[t.jsx(A,{className:Ke.logoCircle,children:t.jsx($s,{platform:e.id})}),t.jsx(g,{fw:600,size:"sm",children:e.label})]}),t.jsx(A,{className:Ke.connectSlot,style:{flexShrink:0},children:e.connectButton})]})})}const Uu=(e,n)=>["liveCampaigns",e,n],nf=(e,n,a)=>["liveAdGroups",e,n,a],af=(e,n,a)=>["liveAds",e,n,a],ha=15,Yi=5,Xi=5,sf=3,rf=1,of=2,ec=30,tc=90,nc=90,ac=1,df=0,ic=1,sc=40,rc=90,oc=90,Ss=e=>e.filter(n=>typeof n=="string"&&n.trim().length>0),Hu=e=>{const{product:n,mode:a,hasVideo:i=!1}=e;return n==="DEMAND_GEN"?{minHeadlines:ac,minLongHeadlines:i?1:df,minDescriptions:ic,headlineMaxChars:sc,longHeadlineMaxChars:rc,descriptionMaxChars:oc,requireDestinationUrl:!0}:n==="PERFORMANCE_MAX"&&a==="existingAdGroup"?{minHeadlines:1,minLongHeadlines:0,minDescriptions:0,headlineMaxChars:ec,longHeadlineMaxChars:tc,descriptionMaxChars:nc,requireDestinationUrl:!1}:n==="PERFORMANCE_MAX"?{minHeadlines:sf,minLongHeadlines:rf,minDescriptions:of,headlineMaxChars:ec,longHeadlineMaxChars:tc,descriptionMaxChars:nc,requireDestinationUrl:!0}:{minHeadlines:ac,minLongHeadlines:0,minDescriptions:ic,headlineMaxChars:sc,longHeadlineMaxChars:rc,descriptionMaxChars:oc,requireDestinationUrl:a!=="existingAdGroup"}},cf=e=>{const n=new Map,a=[],i=new Set;for(const s of e){const r=(s??"").trim();if(!r)continue;const o=r.toLowerCase();
94n.has(o)?i.has(o)||(a.push(n.get(o)??r),i.add(o)):n.set(o,r)}return a},Kn=e=>cf(e).length>0,lf=(e,n)=>Ss(e.headlines).length>=n.minHeadlines&&Ss(e.longHeadlines).length>=n.minLongHeadlines&&Ss(e.descriptions).length>=n.minDescriptions,uf=(e,n,a,i)=>{if(e==="destinationUrl"){if(!a.requireDestinationUrl)return null;const m=typeof n=="string"?n.trim():"";return/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/g.test(m)?null:"url"}const s=Array.isArray(n)?n:[],r=Ss(s),o=e==="headlines"?i.maxHeadlines:e==="longHeadlines"?i.maxLongHeadlines:i.maxDescriptions,c=e==="headlines"?a.headlineMaxChars:e==="longHeadlines"?a.longHeadlineMaxChars:a.descriptionMaxChars,d=e==="headlines"?a.minHeadlines:e==="longHeadlines"?a.minLongHeadlines:a.minDescriptions;return r.length>o?"max":Kn(r)?"unique":r.some(m=>m.length>c)?"charLimit":r.length<d?"min":null},zo=e=>typeof e=="string"&&e.trim().length>0,hf=e=>/^Request failed with status code \d+$/.test(e)||e==="Network Error"||e==="The request timed out.",kt=e=>zo(e)&&!hf(e)?e:null,pf=e=>{var n;return ai.isAxiosError(e)?String(((n=e.config)==null?void 0:n.url)??""):""},$u=e=>{var n;return ai.isAxiosError(e)?(n=e.response)==null?void 0:n.status:void 0},Vu=e=>{var n;return ai.isAxiosError(e)?(n=e.response)==null?void 0:n.data:void 0},Vs=e=>e.field?`${e.field}: ${e.message}`:e.message,gf=e=>{if(!e.message||e.fieldErrors.length===0)return!1;const n=e.fieldErrors.map(Vs).join(` 95`);return e.message===n?!1:!e.fieldErrors.every(a=>a.message&&e.message.includes(a.message))},mf=e=>{const n=Wu(e);return n?Vs(n):null},Wu=e=>{if(zo(e))return{field:"",message:e.trim()};if(!e||typeof e!="object")return null;const n=e,a=kt(n.msg)??kt(n.message)??kt(n.error);return a?Array.isArray(n.loc)?{field:n.loc.filter(r=>r!=="body"&&r!=="query"&&typeof r!="number").join("."),message:a}:{field:kt(n.field)??kt(n.path)??"",message:a}:null},Qt=e=>Array.isArray(e)?e.map(Wu).filter(n=>n!==null):[],ff=e=>{if(!e||typeof e!="object")return[];const n=e,a=[...Qt(n.detail),...Qt(n.errors),...Qt(n.field_errors),...Qt(n.fieldErrors),...Qt(n.validation_errors),...Qt(n.validationErrors)],{details:i}=n;if(Array.isArray(i))a.push(...Qt(i));else if(i&&typeof i=="object"){const r=i;a.push(...Qt(r.errors),...Qt(r.field_errors),...Qt(r.fieldErrors),...Qt(r.validation_errors),...Qt(r.validationErrors))}const s=new Set;return a.filter(r=>{const o=`${r.field}\0${r.message}`;return s.has(o)?!1:(s.add(o),!0)})},Ku=e=>{const n=kt(e);if(n)return n;if(e&&typeof e=="object"){const a=e,{human_readable_error:i,humanReadableError:s,error:r,message:o,detail:c}=a,d=kt(i)??kt(s);if(d)return d;const m=kt(r);if(m)return m;if(r&&typeof r=="object"){const l=kt(r.message);if(l)return l}const h=kt(o);if(h)return h;const p=kt(c);if(p)return p;if(Array.isArray(c)){const l=c.map(mf).filter(zo);if(l.length)return l.join(` 96`)}}return null},xf=e=>{const n=e.toLowerCase();return n.includes("business_management")||n.includes("#100")||(n.includes("oauth")||n.includes("permission"))&&(n.includes("facebook")||n.includes("meta"))},yf=/does(?:n't| not) have permission to use this meta ad account/i,bf=e=>{const n=e.toLowerCase();return n.includes("(#100)")||n.includes("business_management")},Af=(e,n,a)=>{const i=e.trim(),s=a?n.customPropertiesHint:n.launchHint;return!i||bf(i)||a&&yf.test(i)?s:i},qu=e=>pf(e).includes("custom_properties"),Yu=e=>{if($u(e)!==403)return!1;if(qu(e))return!0;const n=Ku(Vu(e))??"";return xf(n)},Lf=(e,n,a,i)=>i||n===403?"permission":n===400||n===422||a.length>0?"validation":ai.isAxiosError(e)&&n===void 0?"network":n!==void 0&&n>
96=500?"server":"unknown",Sf=e=>e instanceof Error&&e.name==="LaunchAdsContractError"&&Array.isArray(e.issues),$n=(e,n)=>{if(Sf(e))return{message:e.message,kind:"validation",status:void 0,fieldErrors:e.issues.map(l=>({field:l.field,message:l.message})),requiresMetaReconnect:!1,isMetaCustomPropertiesError:!1,retryable:!1};const a=$u(e),i=Vu(e),s=ff(i),r=Yu(e),o=r&&qu(e),c=i&&typeof i=="object"?i:null,d=c&&(kt(c.human_readable_error)??kt(c.humanReadableError))||null,m=s.map(Vs).join(` 97`)||null,h=d??m??Ku(i)??kt(e==null?void 0:e.message)??n,p=Lf(e,a,s,r);return{message:h,kind:p,status:a,fieldErrors:s,requiresMetaReconnect:r,isMetaCustomPropertiesError:o,retryable:p==="network"||p==="server"}},cn=(e,n)=>$n(e,n).message,it=e=>{if(typeof e=="number"&&Number.isFinite(e)&&e>0)return e;if(typeof e=="string"){const n=Number.parseFloat(e);if(Number.isFinite(n)&&n>0)return n}},dc=e=>it(e)!=null&&/^\d+(\.\d{1,2})?$/.test(String(e).trim()),Xu=e=>it(e==null?void 0:e.dailyBudget)==null&&it(e==null?void 0:e.lifetimeBudget)==null&&it(e==null?void 0:e.campaignBudget)==null,jf=e=>e.launchIntoExisting&&Xu(e.campaign),Zu=(e,n)=>wl(e)&&!String(n??"").trim(),Ju=e=>{if(!e.include)return{};const n=it(e.budgetAmount);return n!=null?{daily_budget:n}:{}},vf=/^(\d{4})-(\d{2})-(\d{2})/,Qu=e=>{if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(typeof e!="string"||!e.trim())return null;const n=e.trim(),a=n.match(vf);if(a)return new Date(Number(a[1]),Number(a[2])-1,Number(a[3]));const i=new Date(n);return Number.isNaN(i.getTime())?null:i},aa=e=>{if(e instanceof Date&&!Number.isNaN(e.getTime())){const n=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0");return`${n}-${a}-${i}`}if(typeof e=="string"&&e.trim()){const n=e.trim();if(/^\d{4}-\d{2}-\d{2}$/.test(n))return n;const a=Qu(n);if(a)return aa(a)}},_f=e=>{const n=it(e.budgetAmount);if((e.budgetType||"").toLowerCase()==="lifetime"){if(n==null)return{};const a=aa(e.endDate);return a?{lifetime_budget:n,end_date:a}:{lifetime_budget:n}}return n!=null?{daily_budget:n}:{}},Go=e=>_l(e),eh=(e,n)=>{if(!xa(e))return{};const a=typeof n=="string"?n.trim():"";return a?{lead_gen_form_id:a}:{}},th=["HOUSING","EMPLOYMENT","CREDIT","ISSUES_ELECTIONS_POLITICS"],nh=["LOWEST_COST_WITHOUT_CAP","LOWEST_COST_WITH_BID_CAP","COST_CAP","LOWEST_COST_WITH_MIN_ROAS"],Fo=e=>{const n=String(e||"").toUpperCase();return n==="LOWEST_COST_WITH_BID_CAP"||n==="COST_CAP"},Da=e=>String(e||"").toUpperCase()==="LOWEST_COST_WITH_MIN_ROAS",Mi=(e,n)=>(Fo(e)||Da(e))&&it(n)==null,ah=e=>({special_ad_categories:(e||[]).filter(n=>th.includes(n))}),Bo=e=>{const n=String(e.bidStrategy||"").trim().toUpperCase();if(!n||!nh.includes(n))return{bid_strategy:"LOWEST_COST_WITHOUT_CAP"};if(Mi(n,e.bidAmount))return{};const a={bid_strategy:n},i=it(e.bidAmount);return Fo(n)&&i!=null&&(a.bid_amount=i),Da(n)&&i!=null&&(a.roas_average_floor=i),a},ar=e=>{const n=aa(e.startDate),a=aa(e.endDate),i={};return n&&(i.start_date=n),a&&(i.end_date=a),i},ih=e=>e.budgetOptimizeOn?{campaign:{..._f({budgetType:e.budgetType,budgetAmount:e.budgetAmount,endDate:e.endDate}),is_adset_budget_sharing_enabled:!0},adGroup:{}}:{campaign:{is_adset_budget_sharing_enabled:!1},adGroup:Ju({include:!0,budgetAmount:e.budgetAmount})},wf=e=>{const n=Bo(e);return e.budgetOptimizeOn?{campaign:n,adGroup:{}}:{campaign:{},adGroup:n}},Cf=e=>e.isAbo?Bo(e):{},sh=e=>Go(e.objective)?xa(e.objective)&&!String(e.leadFormId??"").trim()?"missing_lead_form":Zu(e.objective,e.pixel)?"missing_sales_pixel":null:"unknown_objective",Ef=new Set(["paused","pause","disabled","disable","inactive","off","stopped"]),If=new Set(["active","enabled","enable","on","live"]),Uo=e=>{const n=String(e??"").trim().toLowerCase();return n?Ef.has(n)?"paused":If.has(n)?"active":"other":"other"},Ho=e=>e==="paused"?"PAUSED":e==="active"?"ACTIVE":null,$o=e=>e==="active"?"paused":e==="paused"?"active":null,Tf=e=>e===501,Qa=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),rn=(...e)=>{for(const n of e){if(n==null)continue;const a=String(n).trim();if(a)return a}return""},Vo=e=>{if(Qa(e.rawObject))return e.rawObject;if(Qa(e.raw_object))return e.raw_object},rh=(e,n)=>it(e.dailyBudget)??it(e.daily_budget)??it(n==null?void 0:n.dailyBudget)??it(n==null?void 0:n.daily_budget)??it(n==null?void 0:n.budget)??it(n==null?void 0:n.budgetAmount)??it(n==null?void 0:n.budget_amount),Wo=(e,n,a)=>
97{if(Array.isArray(e))return e;if(!Qa(e))return[];const i=e[n]??e[a];return Array.isArray(i)?i:[]},Mf=(e,n)=>{const a=Ui(e);return a?e==="facebook"?n.isAbo?sn(a.adGroupBudget)?"ad_group":null:sn(a.campaignBudget)?"campaign":null:sn(a.campaignBudget)?"campaign":sn(a.adGroupBudget)?"ad_group":null:null},Nf=e=>e.budgetLevel==="campaign"&&e.dailyBudget!=null&&e.lifetimeBudget==null,oh=(e,n)=>Wo(e,"campaigns","campaigns").filter(Qa).map(a=>{const i=Vo(a),s=rh(a,i),r=it(a.lifetimeBudget)??it(a.lifetime_budget)??it(i==null?void 0:i.lifetimeBudget)??it(i==null?void 0:i.lifetime_budget),o=(i==null?void 0:i.budgetOptimizeOn)??(i==null?void 0:i.budget_optimize_on),c=n==="facebook"?Xu({dailyBudget:s,lifetimeBudget:r,campaignBudget:it(i==null?void 0:i.budget)??s}):!1,d=rn(a.status,i==null?void 0:i.status,i==null?void 0:i.configuredStatus);return{id:rn(a.id),name:rn(a.name)||rn(a.id),status:Uo(d),rawStatus:d,dailyBudget:s,lifetimeBudget:r,budgetOptimizeOn:o==null?void 0:!!o,isAbo:c,budgetLevel:Mf(n,{isAbo:c})}}).filter(a=>a.id!==""),dh=e=>Wo(e,"adGroups","ad_groups").filter(Qa).map(n=>{const a=Vo(n),i=rn(n.status,a==null?void 0:a.status,a==null?void 0:a.configuredStatus);return{id:rn(n.id),name:rn(n.name)||rn(n.id),status:Uo(i),rawStatus:i,dailyBudget:rh(n,a)}}).filter(n=>n.id!==""),ch=e=>Wo(e,"ads","ads").filter(Qa).map(n=>{const a=Vo(n),i=rn(n.adStatus,n.ad_status,n.status,a==null?void 0:a.status);return{id:rn(n.adId,n.ad_id,n.id),name:rn(n.adName,n.ad_name,n.name)||rn(n.adId,n.ad_id,n.id),status:Uo(i),rawStatus:i}}).filter(n=>n.id!==""),cc=(e,n)=>e.find(a=>a.id===n),Ko=(e,n)=>e===n,lh=(e,n)=>n==null?!1:Math.abs(e-n)<.009,ei=(e,n)=>{const a=$n(e,n);return{message:a.message,unsupported:Tf(a.status),status:a.status}},kf=(e,n)=>hn({enabled:!!e&&!!n,queryKey:Uu(e||"",n||""),queryFn:async()=>{const a=await Ye.get("api/campaigns",{params:{brand_id:Number(e),channel:n,include_unsupported:!0}});return oh(a.data,n||"")}}),Df=(e,n,a)=>hn({enabled:!!e&&!!n&&!!a,queryKey:nf(e||"",n||"",a||""),queryFn:async()=>{const i=await Ye.get("api/ad_groups",{params:{brand_id:Number(e),channel:n,campaign_id:a}});return dh(i.data)}}),Pf=(e,n,a)=>hn({enabled:!!e&&!!n&&!!a,queryKey:af(e||"",n||"",a||""),queryFn:async()=>{const i=await Ye.get("api/ads",{params:{brand_id:Number(e),channel:n,ad_group_id:a}});return ch(i.data)}}),uh=(e,n,a)=>{const i=String(n);e.invalidateQueries({queryKey:Uu(i,a)}).catch(()=>{}),e.invalidateQueries({queryKey:["liveAdGroups",i,a]}).catch(()=>{}),e.invalidateQueries({queryKey:["liveAds",i,a]}).catch(()=>{})},qo=()=>{const e=yt();return jn({mutationFn:async n=>(await Ye.patch("api/manage/status",{brandId:n.brandId,channel:n.channel,level:n.level,entityId:n.entityId,status:n.status})).data,onSuccess:(n,a)=>{uh(e,a.brandId,a.channel)}})},hh=()=>{const e=yt();return jn({mutationFn:async n=>(await Ye.patch("api/manage/budget",{brandId:n.brandId,channel:n.channel,level:n.level,entityId:n.entityId,dailyBudget:n.dailyBudget})).data,onSuccess:(n,a)=>{uh(e,a.brandId,a.channel)}})},lc=async(e,n,a)=>{const i=await Ye.get("api/campaigns",{params:{brand_id:e,channel:n,campaign_ids:a,include_unsupported:!0}});return oh(i.data,n)},uc=async(e,n,a)=>{const i=await Ye.get("api/ad_groups",{params:{brand_id:e,channel:n,campaign_id:a}});return dh(i.data)},Of=async(e,n,a)=>{const i=await Ye.get("api/ads",{params:{brand_id:e,channel:n,ad_group_id:a}});return ch(i.data)},to={facebook:"adLauncher.launchAd.hub.platforms.meta",google:"adLauncher.launchAd.hub.platforms.google",tiktok:"adLauncher.launchAd.hub.platforms.tiktok",reddit:"adLauncher.launchAd.hub.platforms.reddit",linkedin:"adLauncher.launchAd.hub.platforms.linkedin",openai:"adLauncher.launchAd.hub.platforms.openai"};function Gn(e,n,a,i){return e("adLauncher.launchAd.hub.manage.unsupported",{channel:e(to[n]),op:e(`adLauncher.launchAd.hub.manage.ops.${a}`),level:e(`adLauncher.launchAd.hub.manage.levels.${i}`)})}async function Ni(e){try{await e.mutate()}catch(n){e.onMutateError(n);return}try{await e.readBack()}catch{e.onReadBackError()}}function Rf({brandId:e,channel:n,adGroupId:a,ad:i}){const{t:s}
97=de(),r=Ui(n),o=qo(),[c,d]=S.useState(null),[m,h]=S.useState(null),p=m??i.status,l=sn(r.adStatus)&&p!=="other";S.useEffect(()=>{h(null),d(u=>u&&!u.unsupported?null:u)},[i.status]);const b=async()=>{const u=p,y=$o(p),I=y?Ho(y):null;!y||!I||(h(y),d(null),await Ni({mutate:()=>o.mutateAsync({brandId:e,channel:n,level:"ad",entityId:i.id,status:I}),readBack:async()=>{const E=(await Of(e,n,a)).find(P=>P.id===i.id);E&&!Ko(y,E.status)&&(h(E.status),d({message:s("adLauncher.launchAd.hub.manage.reconcileStatus"),reconcile:!0}))},onMutateError:C=>{h(u);const E=ei(C,s("adLauncher.launchAd.hub.manage.errorFallback"));d({message:E.unsupported?Gn(s,n,"status","ad"):E.message,unsupported:E.unsupported})},onReadBackError:()=>{d({message:s("adLauncher.launchAd.hub.manage.readBackFailed"),reconcile:!0})}}))};return t.jsx(A,{className:Ke.manageEntity,children:t.jsxs(Ro,{name:i.name,status:p,rawStatus:i.rawStatus,children:[t.jsx(Oo,{status:p,disabled:!l,disabledReason:l?void 0:Gn(s,n,"status","ad"),loading:o.isPending,onToggle:()=>{b().catch(()=>{})}}),t.jsx(di,{message:(c==null?void 0:c.message)??null,unsupported:c==null?void 0:c.unsupported})]})})}function zf({brandId:e,channel:n,adGroupId:a}){const{t:i}=de(),{data:s,isLoading:r,isError:o}=Pf(String(e),n,a);return r?t.jsx(g,{size:"xs",c:"dimmed",children:i("adLauncher.launchAd.hub.manage.loadingAds")}):o?t.jsx(di,{message:i("adLauncher.launchAd.hub.manage.loadAdsFailed")}):s!=null&&s.length?t.jsx(ae,{gap:"sm",children:s.map(c=>t.jsx(Rf,{brandId:e,channel:n,adGroupId:a,ad:c},c.id))}):t.jsx(g,{size:"xs",c:"dimmed",children:i("adLauncher.launchAd.hub.manage.emptyAds")})}function Gf({brandId:e,channel:n,campaignId:a,campaignBudgetLevel:i,adGroup:s}){const{t:r}=de(),o=Ui(n),c=qo(),d=hh(),[m,h]=S.useState(null),[p,l]=S.useState(null),[b,u]=S.useState(s.dailyBudget),y=p??s.status,I=sn(o.adGroupStatus)&&y!=="other",C=_m(n,i);S.useEffect(()=>{l(null),h(D=>D&&!D.unsupported?null:D)},[s.status]),S.useEffect(()=>{u(s.dailyBudget),h(D=>D&&!D.unsupported?null:D)},[s.dailyBudget]);const E=async()=>{const D=y,G=$o(y),_=G?Ho(G):null;!G||!_||(l(G),h(null),await Ni({mutate:()=>c.mutateAsync({brandId:e,channel:n,level:"ad_group",entityId:s.id,status:_}),readBack:async()=>{const f=(await uc(e,n,a)).find(k=>k.id===s.id);f&&!Ko(G,f.status)&&(l(f.status),h({message:r("adLauncher.launchAd.hub.manage.reconcileStatus"),reconcile:!0}))},onMutateError:O=>{l(D);const f=ei(O,r("adLauncher.launchAd.hub.manage.errorFallback"));h({message:f.unsupported?Gn(r,n,"status","ad_group"):f.message,unsupported:f.unsupported})},onReadBackError:()=>{h({message:r("adLauncher.launchAd.hub.manage.readBackFailed"),reconcile:!0})}}))},P=async D=>{h(null),await Ni({mutate:()=>d.mutateAsync({brandId:e,channel:n,level:"ad_group",entityId:s.id,dailyBudget:D}),readBack:async()=>{const _=(await uc(e,n,a)).find(O=>O.id===s.id);_&&!lh(D,_.dailyBudget)?(u(_.dailyBudget),h({message:r("adLauncher.launchAd.hub.manage.reconcileBudget"),reconcile:!0})):u(D)},onMutateError:G=>{const _=ei(G,r("adLauncher.launchAd.hub.manage.errorFallback"));h({message:_.unsupported?Gn(r,n,"budget","ad_group"):_.message,unsupported:_.unsupported})},onReadBackError:()=>{u(D),h({message:r("adLauncher.launchAd.hub.manage.readBackFailed"),reconcile:!0})}})};return t.jsx(A,{className:Ke.manageEntity,children:t.jsxs(Ro,{name:s.name,status:y,rawStatus:s.rawStatus,children:[t.jsxs(U,{gap:"md",wrap:"wrap",align:"flex-end",children:[t.jsx(Oo,{status:y,disabled:!I,disabledReason:I?void 0:Gn(r,n,"status","ad_group"),loading:c.isPending,onToggle:()=>{E().catch(()=>{})}}),C?t.jsx(Gu,{value:b,disabled:!1,saving:d.isPending,onSave:D=>{P(D).catch(()=>{})}},`${s.id}-${b??"empty"}`):null]}),t.jsx(di,{message:(m==null?void 0:m.message)??null,unsupported:m==null?void 0:m.unsupported}),sn(o.adStatus)?t.jsx(Fu,{title:r("adLauncher.launchAd.hub.manage.ads"),children:t.jsx(zf,{brandId:e,channel:n,adGroupId:s.id})}):null]})})}function Ff({brandId:e,channel:n,campaignId:a,campaignBudgetLevel:i}){const{t:s}=de(),{data:r,isLoading:o,isError:c}=Df(String(e),n,a);return o?t.jsx(g,{size:"xs",c:"dimmed",children:s("adLauncher.launchAd.hub.manage.loadingAdGroups")}):c?t.jsx(di,{message:s("adLauncher.launchAd.hub.manage.loadAdGroupsFailed")}):r!=null&&r.length?t.jsx(ae,{gap:"sm",children:r.map(d=>t.jsx(Gf,{brandId:e,channel:n,campaignId:a,campaignBudgetLevel:i,adGroup:d},d.id))}):t.jsx(g,{size:"xs",c:"dimmed",children:s("adLauncher.launchAd.hub.manage.emptyAdGroups")})}function Bf({brandId:e,channel:n,campaign:a,highlighted:i}){const{t:s}
97=de(),r=Ui(n),o=qo(),c=hh(),[d,m]=S.useState(null),[h,p]=S.useState(null),[l,b]=S.useState(a.dailyBudget),u=h??a.status,y=sn(r.campaignStatus)&&u!=="other",I=Nf(a),C=a.lifetimeBudget!=null&&!I,E=sn(r.adGroupStatus)||sn(r.adStatus)||sn(r.adGroupBudget)||a.budgetLevel==="ad_group";S.useEffect(()=>{p(null),m(G=>G&&!G.unsupported?null:G)},[a.status]),S.useEffect(()=>{b(a.dailyBudget),m(G=>G&&!G.unsupported?null:G)},[a.dailyBudget]);const P=async()=>{const G=u,_=$o(u),O=_?Ho(_):null;!_||!O||(p(_),m(null),await Ni({mutate:()=>o.mutateAsync({brandId:e,channel:n,level:"campaign",entityId:a.id,status:O}),readBack:async()=>{const f=await lc(e,n,a.id),k=cc(f,a.id);k&&!Ko(_,k.status)&&(p(k.status),m({message:s("adLauncher.launchAd.hub.manage.reconcileStatus"),reconcile:!0}),he.show({color:"orange",message:s("adLauncher.launchAd.hub.manage.reconcileStatus")}))},onMutateError:f=>{p(G);const k=ei(f,s("adLauncher.launchAd.hub.manage.errorFallback"));m({message:k.unsupported?Gn(s,n,"status","campaign"):k.message,unsupported:k.unsupported})},onReadBackError:()=>{m({message:s("adLauncher.launchAd.hub.manage.readBackFailed"),reconcile:!0})}}))},D=async G=>{m(null),await Ni({mutate:()=>c.mutateAsync({brandId:e,channel:n,level:"campaign",entityId:a.id,dailyBudget:G}),readBack:async()=>{const _=await lc(e,n,a.id),O=cc(_,a.id);O&&!lh(G,O.dailyBudget)?(b(O.dailyBudget),m({message:s("adLauncher.launchAd.hub.manage.reconcileBudget"),reconcile:!0})):b(G)},onMutateError:_=>{const O=ei(_,s("adLauncher.launchAd.hub.manage.errorFallback"));m({message:O.unsupported?Gn(s,n,"budget","campaign"):O.message,unsupported:O.unsupported})},onReadBackError:()=>{b(G),m({message:s("adLauncher.launchAd.hub.manage.readBackFailed"),reconcile:!0})}})};return t.jsx(A,{id:i?`manage-campaign-${a.id}`:void 0,className:`${Ke.campaignRow}${i?` ${Ke.manageHighlight}`:""}`,children:t.jsxs(Ro,{name:a.name,status:u,rawStatus:a.rawStatus,children:[t.jsxs(U,{gap:"md",wrap:"wrap",align:"flex-end",children:[t.jsx(Oo,{status:u,disabled:!y,disabledReason:y?void 0:Gn(s,n,"status","campaign"),loading:o.isPending,onToggle:()=>{P().catch(()=>{})}}),I?t.jsx(Gu,{value:l,disabled:!1,saving:c.isPending,onSave:G=>{D(G).catch(()=>{})}},`${a.id}-${l??"empty"}`):C?t.jsx(g,{size:"xs",c:"dimmed",children:s("adLauncher.launchAd.hub.manage.lifetimeBudgetHint")}):a.budgetLevel==="ad_group"?t.jsx(g,{size:"xs",c:"dimmed",children:s("adLauncher.launchAd.hub.manage.aboBudgetHint")}):t.jsx(g,{size:"xs",c:"dimmed",children:Gn(s,n,"budget","campaign")})]}),t.jsx(di,{message:(d==null?void 0:d.message)??null,unsupported:d==null?void 0:d.unsupported}),E?t.jsx(Fu,{title:s("adLauncher.launchAd.hub.manage.adGroups"),children:t.jsx(Ff,{brandId:e,channel:n,campaignId:a.id,campaignBudgetLevel:a.budgetLevel})}):null]})})}function Uf({brandId:e,connectedPlatforms:n,selectedChannel:a,onSelectChannel:i,highlightCampaignId:s}){const{t:r}=de(),o=e?Number(e):NaN,c=S.useMemo(()=>new Set(n),[n]),d=a,m=d?c.has(d):!1,{data:h,isLoading:p,isError:l,error:b}=kf(m&&Number.isFinite(o)?e:void 0,m?d:null),u=l?ei(b,r("adLauncher.launchAd.hub.manage.loadCampaignsFailed")):null,y=S.useMemo(()=>{if(!h)return[];if(!s)return h;const C=h.find(E=>E.id===s);return C?[C,...h.filter(E=>E.id!==s)]:h},[h,s]),I=S.useRef(null);return S.useEffect(()=>{if(!s){I.current=null;return}if(I.current===s)return;const C=document.getElementById(`manage-campaign-${s}`);C&&(C.scrollIntoView({behavior:"smooth",block:"center"}),I.current=s)},[s,y]),t.jsxs(A,{id:"ad-launcher-live-campaigns",className:Ke.campaignsSection,children:[t.jsx(Hi,{variant:"campaigns",icon:t.jsx(Eg,{size:14}),title:r("adLauncher.launchAd.hub.manage.title"),subtitle:r("adLauncher.launchAd.hub.manage.subtitle")}),t.jsx(La,{fullWidth:!0,size:"xs",value:d??"",onChange:C=>i(C),data:zu.map(C=>({value:C,label:r(to[C])})),mb:"sm"}),d?m?p?t.jsx(g,{size:"sm",c:"dimmed",p:"md",children:r("adLauncher.launchAd.hub.manage.loadingCampaigns")}):u?t.jsx(A,{p:"md",children:t.jsx(di,{message:u.message,unsupported:u.unsupported})}):y.length===0?t.jsx(g,{size:"sm",c:"dimmed",p:"md",children:r("adLauncher.launchAd.hub.manage.emptyCampaigns")}):y.map(C=>t.jsx(Bf,{brandId:o,channel:d,campaign:C,highlighted:C.id===s},C.id)):t.jsx(g,{size:"sm",c:"dimmed",p:"md",children:r("adLauncher.launchAd.hub.manage.connectFirst",{channel:r(to[d])})}):t.jsx(g,{size:"sm",c:"dimmed",p:"md",children:r("adLauncher.launchAd.hub.manage.pickPlatform")})]})}function Hf({accounts:e}){const{t:n}=de();return e.length===0?null:t.jsxs(A,{className:`${Ke.section} ${Ke.connectedSection}`,children:[t.jsx(Hi,{variant:"connected",icon:t.jsx(mn,{size:14}),title:n("adLauncher.launchAd.hub.connectedAccounts.title"),subtitle:n("adLauncher.launchAd.hub.connectedAccounts.subtitle")}),t.jsx(ae,{gap:"xs",children:e.map(a=>t.jsx($f,{account:a},a.id))})]})}function $f({account:e}){return t.jsx(A,{className:Ke.clickableCard,role:"button",tabIndex:0,onClick:e.onSelect,onKeyDown:n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),e.onSelect())},children:t.jsxs(U,{align:"center",justify:"space-between",gap:"sm",children:[t.jsxs(U,{align:"center",gap:"sm",style:{minWidth:0},children:[t.jsx(A,{className:Ke.logoCircle,children:t.jsx($s,{platform:e.id})}),t.jsx(g,{fw:600,size:"sm",children:e.label})]}),t.jsxs(U,{align:"center",gap:"xs",style:{flexShrink:0},children:[t.jsx(Bu,{onClick:n=>{n.stopPropagation(),n.preventDefault(),e.onManage()}}),t.jsx(vn,{size:22,radius:"xl",color:"teal",variant:"light",children:t.jsx(mn,{size:13})})]})]})})}const Vf={google:{title:"adLauncher.launchAd.hub.managedGoogle.title",description:"adLauncher.launchAd.hub.managedGoogle.description"},facebook:{title:"adLauncher.launchAd.hub.managedMeta.title",description:"adLauncher.launchAd.hub.managedMeta.description"},openai:{title:"adLauncher.launchAd.hub.managedOpenai.title",description:"adLauncher.launchAd.hub.managedOpenai.description"}};function Wf({options:e}){const{t:n}=de();return e.length===0?null:t.jsxs(A,{className:`${Ke.section} ${Ke.managedSection}`,children:[t.jsx(Hi,{variant:"managed",icon:t.jsx(yo,{size:14}),title:n("adLauncher.launchAd.hub.launchWithoutAccount.title"),subtitle:n("adLauncher.launchAd.hub.launchWithoutAccount.subtitle")}),t.jsx(ae,{gap:"xs",children:e.map(a=>t.jsx(Kf,{option:a},a.id))})]})}function Kf({option:e}){const{t:n}=de(),a=Vf[e.id];return t.jsx(A,{className:Ke.clickableCard,role:"button",tabIndex:0,onClick:e.onSelect,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),e.onSelect())},children:t.jsxs(U,{align:"center",gap:"sm",children:[t.jsx(A,{className:Ke.logoCircle,children:t.jsx($s,{platform:e.id})}),t.jsxs(ae,{gap:2,style:{flex:1,minWidth:0},children:[t.jsxs(U,{align:"center",gap:"xs",wrap:"wrap",children:[t.jsx(g,{fw:700,size:"sm",children:n(a.title)}),t.jsx(Qe,{size:"xs",color:"blue.9",variant:"light",styles:{root:{textTransform:"none",fontWeight:600}},children:n("adLauncher.launchAd.hub.managedBadge")})]}),t.jsx(g,{size:"xs",c:"dimmed",children:n(a.description)})]})]})})}function qf({brandId:e,managedOptions:n,connectedAccounts:a,availableConnections:i,stats:s,campaigns:r,
97isLoadingCampaigns:o,page:c,totalPages:d,onPageChange:m,onViewInsights:h,onResumeDraft:p,onDeleteDraft:l,deletingDraftId:b,connectedPlatforms:u,manageChannel:y,onManageChannel:I,highlightCampaignId:C}){const{t:E}=de();return t.jsxs(Nt,{flex:1,w:"100%",h:"100%",miw:0,mih:0,pb:"xl",type:"none",scrollbars:"y",styles:{viewport:{overflowX:"hidden"}},children:[t.jsxs(ae,{gap:"xxs",mb:"lg",children:[t.jsx(Be,{order:1,children:E("adLauncher.launchAd.hub.pageTitle")}),t.jsx(g,{size:"sm",c:"dimmed",children:E("adLauncher.launchAd.hub.pageSubtitle")})]}),t.jsx(A,{overflow:"hidden",children:t.jsxs(Fa,{gutter:"lg",align:"flex-start",children:[t.jsx(Fa.Col,{span:{base:12,md:4},miw:0,children:t.jsxs(ae,{gap:"md",children:[t.jsx(Wf,{options:n}),t.jsx(Hf,{accounts:a}),t.jsx(ef,{connections:i})]})}),t.jsx(Fa.Col,{span:{base:12,md:8},miw:0,children:t.jsxs(ae,{gap:"md",children:[t.jsx(Qm,{stats:s,onViewInsights:h}),t.jsx(Zm,{campaigns:r,stats:s,isLoading:o,page:c,totalPages:d,onPageChange:m,onResumeDraft:p,onDeleteDraft:l,onManageCampaign:P=>I(P.platform,P.campaignId),deletingDraftId:b,liveManagePlatforms:u}),t.jsx(Uf,{brandId:e,connectedPlatforms:u,selectedChannel:y,onSelectChannel:P=>I(P),highlightCampaignId:C})]})})]})})]})}const je={VALIDATE_ACCOUNT:1,CAMPAIGN:2,BIDDING_TYPE:3,CAMPAIGN_DETAILS:4,ADS:5,AD_SET:6,LOADING:7,SUCCESS:8,PAYMENT:9,REVIEW:10,FIT:11};function Ws(e,n){const a=n??{};return(e??[]).some(i=>a[String(i.id)]?!1:ft(i.size)!=="square")}function Yf(e,n){return Ws(e,n)?je.FIT:je.BIDDING_TYPE}function Xf(e,n){const a=n??{},i=e??[],s=i.some(r=>!!a[String(r.id)]);return Ws(i,a)||s?je.FIT:je.ADS}const Yo=({brandId:e,channel:n,enabled:a=!0})=>hn({queryKey:["validate-ad-account",e,n],queryFn:async()=>{const i=await Sa.post("api/sso/validate_account",{brandId:e,channel:n});return i==null?void 0:i.data},enabled:a}),ir={facebook:t.jsx(du,{size:"120"}),google:t.jsx(uu,{size:"120"}),linkedin:t.jsx(Lu,{}),tiktok:t.jsx(ou,{size:"120"})};function Zf({onCancel:e}){const{brandId:n}=ve(),{selectedAdLauncherChannel:a}=re(k=>k.adGallery),{data:i}=No(n),{data:s}=hu(n),{data:r,refetch:o}=pu(n),{data:c,refetch:d}=gu(n),{accountId:m}=r||{},{accountId:h}=c||{},p=S.useMemo(()=>!!m,[m]),l=S.useMemo(()=>!!h,[h]),{accountId:b,pageId:u}=i||{},{accountId:y}=s||{},I=S.useMemo(()=>!!b&&!!u,[b,u]),C=S.useMemo(()=>!!y,[y]),{t:E}=de(),{data:P,isLoading:D,isError:G,refetch:_}=Yo({brandId:n,channel:a[0],enabled:!0}),O=xe(),f=()=>{e==null||e(),O(fn(!1))};return S.useEffect(()=>{if((P==null?void 0:P.validity)!=="valid")return;const k=a[0];k==="facebook"?O(nt(2)):k==="google"?O(Ze(2)):k==="tiktok"?O(Tt(2)):k==="linkedin"&&O(Mt(2))},[P,O,a]),t.jsxs(A,{py:40,children:[D&&t.jsxs(ae,{align:"center",gap:"md",children:[ir[a[0]],t.jsxs(U,{gap:"md",align:"center",children:[t.jsx(et,{size:"sm"}),t.jsx(g,{size:"sm",fw:500,children:E("adLauncher.validateAdAccount.checkingAccount")})]})]}),G&&t.jsxs(ae,{align:"center",gap:"md",children:[ir[a[0]],t.jsx(g,{fw:600,children:E("adLauncher.validateAdAccount.connectionFailed")}),t.jsxs(ae,{w:"100%",maw:280,gap:"xs",mt:"md",children:[t.jsx(Me,{fullWidth:!0,type:"button",onClick:()=>void _(),children:E("adLauncher.validateAdAccount.retry",{defaultValue:"Retry"})}),t.jsx(Me,{fullWidth:!0,type:"button",variant:"light",color:"gray",onClick:f,children:"Cancel"})]})]}),P&&(P.validity==="invalid"||P.validity==="error")&&t.jsxs(ae,{align:"center",gap:"md",children:[t.jsxs(ae,{align:"center",gap:"md",children:[ir[a[0]],t.jsx(g,{fw:600,children:E("adLauncher.validateAdAccount.connectionFailed")}),t.jsxs(Pt,{size:"sm",spacing:"xs",w:"50%",children:[(P.issues??[]).map((k,R)=>t.jsx(Pt.Item,{children:k.issue},R)),t.jsx(Pt.Item,{style:{listStyleType:"none",paddingLeft:20,paddingTop:10},children:t.jsxs(g,{size:"sm",children:[E("adLauncher.validateAdAccount.emailAtMessage")," ",t.jsx(g,{span:!0,fw:500,td:"underline",children:"[email protected]"})]})})]})]}),t.jsxs(ae,{w:"100%",maw:280,gap:"xs",mt:"md",children:[a[0]==="facebook"?t.jsx(Su,{connected:I,updateBtnText:"Retry Connection"}):a[0]==="google"?t.jsx(jg,{connected:C,updateBtnText:"Retry Connection"}):a[0]==="linkedin"?t.jsx(yu,{connected:l,refetchLinkedInConnection:d}):t.jsx(Au,{connected:p,refetchTiktokConnection:o}),t.jsx(Me,{fullWidth:!0,type:"button",variant:"light",color:"gray",onClick:f,children:"Cancel"})]})]})]})}const Jf=[{id:"facebook",labelKey:"adLauncher.launchAd.hub.platforms.meta"},{id:"google",labelKey:"adLauncher.launchAd.hub.platforms.google"},{id:"tiktok",labelKey:"adLauncher.launchAd.hub.platforms.tiktok"},{id:"reddit",labelKey:"adLauncher.launchAd.hub.platforms.reddit"},{id:"linkedin",labelKey:"adLauncher.launchAd.hub.platforms.linkedin"},{id:"pinterest",labelKey:"adLauncher.launchAd.hub.platforms.pinterest"},{id:"twitter",labelKey:"adLauncher.launchAd.hub.platforms.twitter"}],Qf={id:"openai",labelKey:"adLauncher.launchAd.hub.platforms.open
97ai"},ex={facebook:Il,google:El,tiktok:_p,linkedin:vp,reddit:jp,openai:Cl},Zi="managed",tx=["google","facebook","openai"];function nx(e){return tx.includes(e)?e:null}function ax(e){return{id:String(e.id),title:e.title,accountType:e.accountType,platform:e.channel,status:e.status,currentStep:e.currentStep,campaignId:e.campaignId}}function pt(){var Dn,pn,Ld,Sd,jd;const{t:e}=de(),n=_n(),{brandId:a}=ve(),[i,s]=zi(),r=xe(),{data:o,isLoading:c,isFetched:d}=mu(a),[m,h]=S.useState(1),[p,l]=S.useState(null),[b,u]=S.useState(null),{data:y,isLoading:I}=cm(a,m),C=lm(),[E,P]=S.useState(o??[]),{data:D}=No(a),{data:G}=hu(a),{data:_,refetch:O}=pu(a),{data:f,refetch:k}=fu(a),{data:R,refetch:B}=gu(a),{data:$,refetch:J}=xg(a),{data:z,refetch:V}=yg(a),{data:N}=cu(a),{accountId:L,pageId:x}=D||{},{accountId:v,isOmnekyManaged:T}=G||{},{accountId:H}=_||{},{accountId:F}=f||{},{accountId:w}=R||{},{accountId:K}=$||{},{accountId:M}=z||{},ee=S.useMemo(()=>!!L&&!!x,[L,x]),ne=S.useMemo(()=>!!v,[v]),X=S.useMemo(()=>!!H,[H]),ie=S.useMemo(()=>!!w,[w]),Q=!!T,j=S.useMemo(()=>!!F,[F]),q=S.useMemo(()=>!!K,[K]),se=S.useMemo(()=>!!M,[M]),le=(N==null?void 0:N.connected)??!1,_e=!ne||Q,te=!ee,me=!le,Le=nx(i.get(Zi)),ye=Le==="google"&&_e||Le==="facebook"&&te||Le==="openai"&&me?Le:null,[ge,Ce]=S.useState(!1),Y=Se=>{const jt=new URLSearchParams(i);Se?jt.set(Zi,Se):jt.delete(Zi),s(jt,{replace:!0})};S.useEffect(()=>{i.get("draft")||ye&&(ye==="google"?(r(_d()),r(Bt(!1)),r(Ba(!0)),r(Ua(!1)),r(It(["google"])),r(Kt(!1)),r(qt(!1))):ye==="facebook"?(r(wd()),r(It(["facebook"])),r(Kt(!1)),r(Bt(!1)),r(qt(!1))):ye==="openai"&&(r(Cd()),r(It(["openai"])),r(qt(!1)),r(Bt(!1)),r(Kt(!1))))},[ye,r,i]),S.useEffect(()=>{d&&P(o??[])},[d]),S.useEffect(()=>{var jt;const Se=((jt=y==null?void 0:y.pagination)==null?void 0:jt.totalPages)??0;Se>0&&m>Se&&h(Se)},[(Dn=y==null?void 0:y.pagination)==null?void 0:Dn.totalPages,m]),S.useEffect(()=>{Q&&P(E.filter(Se=>Se!=="google"))},[Q]);const ce=()=>{r(wn()),r(bo()),r(Tl()),r(Ao()),r(Rs()),r(Ml()),r(wi())},Ie=Se=>{Se==="google"?(r(It(["google"])),r(Bt(!1)),r(Kt(!1)),r(qt(!1)),r(Ba(!0)),r(Ua(!1)),r(_d()),r($t(We.ADS))):Se==="facebook"?(r(It(["facebook"])),r(Kt(!1)),r(Bt(!1)),r(qt(!1)),r(wd()),r(Dt(Ve.CREATIVE))):(r(It(["openai"])),r(qt(!1)),r(Bt(!1)),r(Kt(!1)),r(Cd()),r(ct(Ue.CREATIVE)))},fe=()=>{Wi("google"),ce(),Y("google"),Oe(El,{brandId:a}),Ie("google")},Ee=()=>{Wi("facebook"),ce(),Y("facebook"),Oe(Il,{brandId:a}),Ie("facebook")},W=()=>{Wi("openai"),ce(),Y("openai"),Oe(Cl,{brandId:a}),Ie("openai")},oe=()=>{a&&n(jm(a))},ue=Se=>{if(fi(Se)){oe();return}Wi(Se),ce(),Y(null),r(It([Se])),r(Bt(!1)),r(Kt(!1)),r(qt(!1));const jt=ex[Se];jt&&Oe(jt,{brandId:a}),Se==="google"?(r(Bt(Q)),r(Ze(2))):Se==="reddit"?r(ut(1)):Se==="openai"?r($e(je.VALIDATE_ACCOUNT)):Ce(!0)},Z=()=>{a&&n(`/brands/${a}/analyze`)},De=async Se=>{var jt;if(!(Se.status!=="draft"||!a))try{const $i=await Ye.get(`api/launch_drafts/${Se.id}`,{params:{brand_id:Number(a)}}),mp=await Ou(((jt=$i.data)==null?void 0:jt.payloadJson)||"{}");Ti(),ce(),r(Nl({...mp,draftId:Number(Se.id)}));const ca=Se.platform;ca==="google"?(r(It(["google"])),r(Bt(!1)),r(Kt(!1)),r(qt(!1)),r(Ba(!0)),r(Ua(!1)),Y("google")):ca==="facebook"?(r(It(["facebook"])),r(Kt(!1)),r(Bt(!1)),r(qt(!1)),Y("facebook")):ca==="openai"&&(r(It(["openai"])),r(qt(!1)),r(Bt(!1)),r(Kt(!1)),Y("openai"));const Ys=new URLSearchParams(i);Ys.set("draft",Se.id),(ca==="google"||ca==="facebook"||ca==="openai")&&Ys.set(Zi,ca),s(Ys,{replace:!0})}catch{he.show({color:"orange",title:e("adLauncher.launchAd.hub.drafts.resumeFailedTitle"),message:e("adLauncher.launchAd.hub.drafts.resumeFailedMessage")})}},Ge=async Se=>{if(!(Se.status!=="draft"||!a))try{await C.mutateAsync({draftId:Number(Se.id),brandId:Number(a)})}catch{he.show({color:"orange",title:e("adLauncher.launchAd.hub.drafts.deleteFailedTitle"),message:e("adLauncher.launchAd.hub.drafts.deleteFailedMessage")})}},we=[...Jf,Qf],be={openaiConnected:le,googleOmnekyManaged:Q},Je=we.filter(Se=>nr(Se.id,E,be)),St=((pn=Je.find(Se=>!fi(Se.id)))==null?void 0:pn.id)??null;S.useEffect(()=>{p!=null||!St||l(St)},[p,St]);const Vt=we.filter(Se=>!nr(Se.id,E,be)),ke=[];_e&&ke.push({id:"google",onSelect:fe}),te&&ke.push({id:"facebook",onSelect:Ee}),me&&ke.push({id:"openai",onSelect:W});
97const zt=Je.map(Se=>({id:Se.id,label:e(Se.labelKey),onSelect:()=>ue(Se.id),onManage:()=>{if(fi(Se.id)){oe();return}l(Se.id),u(null),requestAnimationFrame(()=>{var jt;(jt=document.getElementById("ad-launcher-live-campaigns"))==null||jt.scrollIntoView({behavior:"smooth",block:"start"})})}})),Gt=Vt.map(Se=>({id:Se.id,label:e(Se.labelKey),connectButton:Se.id==="facebook"?t.jsx(bg,{connected:ee,brandId:a}):Se.id==="google"?t.jsx(Ag,{connected:ne}):Se.id==="reddit"?t.jsx(bu,{connected:j,refetchRedditConnection:k}):Se.id==="linkedin"?t.jsx(yu,{connected:ie,refetchLinkedInConnection:B}):Se.id==="pinterest"?t.jsx(Lg,{connected:q,refetchPinterestConnection:J}):Se.id==="twitter"?t.jsx(Sg,{connected:se,refetchTwitterConnection:V}):Se.id==="openai"&&a?t.jsx(lu,{brandId:a,connected:le}):t.jsx(Au,{connected:X,refetchTiktokConnection:O})}));return c?t.jsx(U,{justify:"center",align:"center",h:300,style:{flex:1},children:t.jsx(et,{size:"sm"})}):ge?t.jsx(Zf,{onCancel:()=>{Ce(!1),ce()}}):t.jsx(qf,{brandId:a,managedOptions:ke,connectedAccounts:zt,availableConnections:Gt,stats:(y==null?void 0:y.stats)||om,campaigns:((y==null?void 0:y.campaigns)||[]).map(ax),isLoadingCampaigns:I,page:((Ld=y==null?void 0:y.pagination)==null?void 0:Ld.page)||m,totalPages:((Sd=y==null?void 0:y.pagination)==null?void 0:Sd.totalPages)||dm.totalPages,onPageChange:h,onViewInsights:Z,onResumeDraft:De,onDeleteDraft:Ge,deletingDraftId:C.isPending&&((jd=C.variables)==null?void 0:jd.draftId)!=null?String(C.variables.draftId):null,connectedPlatforms:Je.map(Se=>Se.id).filter(Se=>!fi(Se)),manageChannel:p,onManageChannel:(Se,jt)=>{if(fi(Se)){oe();return}l(Se),u(nr(Se,E,be)?jt??null:null),requestAnimationFrame(()=>{var $i;($i=document.getElementById("ad-launcher-live-campaigns"))==null||$i.scrollIntoView({behavior:"smooth",block:"start"})})},highlightCampaignId:b})}const ix=!0,no=e=>(e??[]).map(n=>n.trim()).filter(n=>n.length>0),ph=e=>e===!0,hc=e=>no(e).length,gh=(e,n)=>hc(e)>1||hc(n)>1,sx={mismatch:"adLauncher.adsetSettings.dynamicCreative.mismatchBlock",one_ad:"adLauncher.adsetSettings.dynamicCreative.oneAdBlock"},rx=e=>sx[e],ao=({isDynamicCreative:e,headlines:n,primaryTexts:a,adCount:i})=>{const s=ph(e);return s&&i>1?"one_ad":!s&&gh(n,a)?"mismatch":null},Ms=e=>({...e,is_dynamic_creative:ix}),Xo=({headlines:e,primaryTexts:n,dynamicCreative:a=!0})=>{const i=no(e),s=no(n);return a?{headlines:i,bodies:s}:{headlines:i.slice(0,1),bodies:s.slice(0,1)}},Pa=e=>typeof e=="boolean"?e:void 0,qn=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),io=e=>{if(!qn(e))return;const n=qn(e.rawObject)?e.rawObject:qn(e.raw_object)?e.raw_object:void 0;return Pa(e.isDynamicCreative)??Pa(e.is_dynamic_creative)??Pa(n==null?void 0:n.isDynamicCreative)??Pa(n==null?void 0:n.is_dynamic_creative)},ox=e=>Array.isArray(e)?e.filter(qn).map(n=>{const a=io(n);return{value:String(n.id??""),label:String(n.name??""),...a!==void 0?{isDynamicCreative:a}:{}}}).filter(n=>n.value!==""):[],dx=e=>{if(!qn(e))return;const n=Pa(e.isDynamicCreative)??Pa(e.is_dynamic_creative);if(n!==void 0)return n;const a=qn(e.adGroup)?e.adGroup:qn(e.ad_group)?e.ad_group:void 0;if(a){const s=io(a);if(s!==void 0)return s}const i=e.adGroups??e.ad_groups;if(Array.isArray(i))for(const s of i){if(!qn(s))continue;const r=io(s);if(r!==void 0)return r}},cx="adLauncher.launchAd.adGroupOptionDynamicCreative",lx="adLauncher.launchAd.adGroupOptionNotDynamicCreative",ux=e=>e===!0?cx:e===!1?lx:null,hx=async(e,n)=>(await Ye.get(`api/campaigns?brand_id=${n}&channel=${e}&include_unsupported=false`)).data,px=async(e,n,a)=>{var s;const i=await Ye.get(`api/ad_groups?brand_id=${n}&channel=${e}&campaign_id=${a}`);return ox((s=i.data)==null?void 0:s.adGroups)},Zo=(e,n)=>Ig({queries:e.map(a=>({queryKey:["campaigns",a],queryFn:()=>hx(a,n),enabled:!!a}))}),Jo=(e,n,a)=>{const i=xe();S.useEffect(()=>{e==null||e.forEach(s=>{const r=n[s];r&&px(s,a,r).then(o=>{i(wp({channel:s,adGroups:o}))})})},[e,n,i])};function pc(e){return e!=null&&typeof e=="object"}const gx=(...e)=>{for(const n of e){if(n==null)continue;const a=String(n);if(a.trim())return a}};function mx(e){return Array.isArray(e)?e.filter(pc).map(n=>{const a=pc(n.rawObject)?n.rawObject:void 0,i=it(a==null?void 0:a.dailyBudget)??it(a==null?void 0:a.daily_budget),s=it(
97a==null?void 0:a.lifetimeBudget)??it(a==null?void 0:a.lifetime_budget),r=(a==null?void 0:a.campaign_advertising_channel_type)==null?void 0:String(a.campaign_advertising_channel_type),o=(a==null?void 0:a.budgetOptimizeOn)??(a==null?void 0:a.budget_optimize_on),c=gx(n.objective,a==null?void 0:a.objectiveType,a==null?void 0:a.objective_type);return{label:String(n.name??""),value:String(n.id??""),objective:c,campaignBudget:(a==null?void 0:a.budget)??i??s,dailyBudget:i,lifetimeBudget:s,advertisingChannelType:r||c,budgetOptimizeOn:o==null?void 0:!!o}}).filter(n=>n.value!==""):[]}function gc(e){return e?`${e.charAt(0).toUpperCase()}${e.slice(1)} Campaign`:"Campaign"}const fx="https://cgp-assets-thumbnails.omneky.com/";function mh(e,n){return e?e.includes("public/")?`${n}${e}`:`${n}public/${e}`:`${n}public/`}function xx(e){return mh(e,dt)}function yx(e){return mh(e,fx)}function ci(e){const n=e??"",a=Te(n);return{media_url:xx(n),media_type:a?"video":"image",...a&&{thumbnail_url:yx(n)}}}function bx(e,n){return{...ci(e.previewStorageKey),name:e.name,headlines:n.headline,cta_types:[n.callToAction],link_urls:[n.url]}}const Ks="urn:li:adTargetingFacet:locations",js=[{key:"locations",types:["locations"],urn:Ks},{key:"titles",types:["titles","jobTitles"],urn:"urn:li:adTargetingFacet:titles"},{key:"skills",types:["skills"],urn:"urn:li:adTargetingFacet:skills"},{key:"companies",types:["companies"],urn:"urn:li:adTargetingFacet:employers"},{key:"industries",types:["industries"],urn:"urn:li:adTargetingFacet:industries"},{key:"jobFunctions",types:["jobFunctions","functions"],urn:"urn:li:adTargetingFacet:jobFunctions"},{key:"seniorities",types:["seniorities"],urn:"urn:li:adTargetingFacet:seniorities"}],fh=e=>{if(!e)return;const n=js.find(a=>a.key===e||a.types.includes(e));return n==null?void 0:n.urn},Ax=(e,n=Ks)=>fh(e.type)||e.facet||n;function Lx(e){return String(e.urn||e.id||"").trim()}function Sx(e){if(!e||typeof e!="object")return!1;const{include:n}=e,a=n==null?void 0:n.and;return Array.isArray(a)?a.some(i=>{if(!i||typeof i!="object")return!1;const s=i.or,r=s==null?void 0:s[Ks];return Array.isArray(r)&&r.some(o=>typeof o=="string"&&o.trim().length>0)}):!1}function jx(e,n=[]){const a=new Map;for(const i of[...e,...n]){const s=Lx(i);if(!s)continue;const r=Ax(i),o=a.get(r)??[];o.includes(s)||o.push(s),a.set(r,o)}if(a.size!==0)return{include:{and:[...a.entries()].map(([i,s])=>({or:{[i]:s}}))}}}function xh(e,n=Ks){var o;const a=e,i=((o=a==null?void 0:a.body)==null?void 0:o.results)||(a==null?void 0:a.results)||[];if(!Array.isArray(i))return[];const s=[],r=new Set;for(const c of i){if(!c||typeof c!="object")continue;const d=c,m=String(d.urn||d.id||"").trim();if(!m||r.has(m))continue;r.add(m);const h=typeof d.type=="string"?d.type:void 0;s.push({id:m,name:String(d.name||d.label||m),urn:m,...h?{type:h}:{},facet:fh(h)||(typeof d.facet=="string"?d.facet:void 0)||n})}return s}function Qo(e){const n=new Set(e.map(a=>String(a.media_type??a.mediaType??"").toLowerCase()).filter(a=>a==="image"||a==="video"));return n.has("image")&&n.has("video")}function vx(e){const n=[],a=[];for(const i of e)String(i.media_type??i.mediaType??"").toLowerCase()==="video"?a.push(i):n.push(i);return{image:n,video:a}}function _x(e,n){return{...ci(e.previewStorageKey),name:e.name,commentary:n.commentary,...n.title?{title:n.title}:{},...n.description?{description:n.description}:{},landing_page:n.landingPage,cta_label:n.ctaLabel}}function mc(e){return{id:String(e??"")}}function wx(e){return e==="existing_campaign_and_ad_group"}function Cx(e){return e==="CREATE_NEW_CAMPAIGN"?"new_campaign":e==="CREATE_NEW_ADSET"?"existing_campaign_new_ad_group":"existing_campaign_and_ad_group"}const Ex=["BRAND_AWARENESS","WEBSITE_VISITS","ENGAGEMENT","WEBSITE_CONVERSIONS"],sr={BRAND_AWARENESS:"BRAND_AWARENESS","BRAND AWARENESS":"BRAND_AWARENESS",WEBSITE_VISITS:"WEBSITE_VISITS","WEBSITE VISITS":"WEBSITE_VISITS",ENGAGEMENT:"ENGAGEMENT",WEBSITE_CONVERSIONS:"WEBSITE_CONVERSIONS","WEBSITE CONVERSIONS":"WEBSITE_CONVERSIONS",CONVERSIONS:"WEBSITE_CONVERSIONS"};function ba(e){if(typeof e!="string")return;const n=e.trim();if(!n)return;const a=n.toUpperCase().replace(/[\s-]+/g,"_"),i=n.toUpperCase().replace(/[_-]+/g," ");return sr[n]||sr[a]||sr[i]||Ex.find(s=>s===a)}function yh(e,n,a){const i=ba(n),s=ba(a);if(e==="existing_campaign_new_ad_group"){if(i)return i;const r=typeof n=="string"?n.trim():"";if(r)return r}return s||i||"BRAND_AWARENESS"}function Ix(e){const n=Number(e.brandId),a=e.campaignData||{},i=yh(e.path,e.objective,a.objectiveType),s=jx(a.locations||[],a.facetChips||[]);if(e.path==="existing_campaign_and_ad_group"){const o={brand_id:n,channel:"linkedin",campaign_spec:mc(e.campaignId),ad_group_spec:{id:String(e.adGroupId??"")},ad_specs:e.adSpecs};if(Qo(e.adSpecs)){if(e.allowSplit)return[{...o,allow_split:!0}];const{image:c,video:d}=vx(e.adSpecs);return[c,d].filter(m=>m.length>0).map(m=>({...o,ad_specs:m}))}return[o]}const r={name:a.adSetName,daily_budget:a.adSetDailyBudget,objective_type:i,bid_strategy:a.bidStrategy||"MAXIMUM_DELIVERY",...s?{targeting_criteria:s}:{}};return e.path==="new_campaign"?[{brand_id:n,channel:"linkedin",campaign_spec:{name:a.campaignName,objective_type:i,run_schedule_start:e.nowMs??Date.now(),status_on_launch:a.checked?"ENABLED":"PAUSED",daily_budget:a.campaignDailyBudget},ad_group_spec:r,ad_specs:e.adSpecs}]:[{brand_id:n,channel:"linkedin",campaign_spec:mc(e.campaignId),ad_group_spec:{...r,campaign_group_id:String(e.campaignId??"")},ad_specs:e.adSpecs}]}function rr(e){var s,r;const n=e.ad_specs??[],a=n.map(o=>String(o.media_url??o.image_url??o.video_url??"").trim()).filter(o=>o.length>0).sort().join("|");return`${String(((s=e.ad_group_spec)==null?void 0:s.id)??((r=e.ad_group_spec)==null?void 0:r.campaign_id)??"")}:${a||String(n.length)}`}
97function fc(e,n){const a=new Set((n.ad_specs??[]).map(i=>String(i.media_url??"").trim()).filter(i=>i.length>0));return a.size===0?[...e]:e.filter(i=>{const s=ci(i.previewStorageKey);return a.has(String(s.media_url??"").trim())})}const so={demandGen:"DEMAND_GEN",performanceMax:"PERFORMANCE_MAX"},bh=e=>e.trim().toUpperCase().replace(/[\s-]+/g,"_"),Tx=(...e)=>Oa(...e)!=null,Oa=(...e)=>{for(const n of e){if(!(n!=null&&n.trim()))continue;if(n.trim()in so)return null;const i=bh(n);if(i==="DEMAND_GEN"||i==="DEMANDGEN"||i==="PERFORMANCE_MAX"||i==="PERFORMANCEMAX"||i==="PMAX")return null;if(i==="SEARCH"||i==="DISPLAY")return i}return null},ed=(...e)=>{for(const n of e){if(!(n!=null&&n.trim()))continue;const a=n.trim();if(a in so)return so[a];const i=bh(n);if(i==="DEMAND_GEN"||i==="DEMANDGEN")return"DEMAND_GEN";if(i==="PERFORMANCE_MAX"||i==="PERFORMANCEMAX"||i==="PMAX")return"PERFORMANCE_MAX"}return"PERFORMANCE_MAX"},Mx=(...e)=>{const n=Oa(...e);return n||ed(...e)},Ah=e=>{if(e!=null&&e.trim()&&!Tx(e))return ed(e)==="DEMAND_GEN"?"demandGen":"performanceMax"},Nx=e=>{if(e!=null)return Ah(e.advertisingChannelType??e.objective)},kx=(...e)=>ed(...e)==="DEMAND_GEN",Dx="_card_1y4gr_3",Px={card:Dx},td={color:"var(--mantine-color-blue-6)",fontWeight:500,fontSize:14};function Ct({width:e,children:n}){return t.jsx(A,{className:Px.card,style:{maxWidth:e},children:n})}const Ox="_desktopBar_u1cwa_1",Rx="_mobileBar_u1cwa_12",zx="_mobileAccessory_u1cwa_16",Gx="_spacer_u1cwa_20",Fx="_backButton_u1cwa_58",Bx="_nextButton_u1cwa_63",Na={desktopBar:Ox,mobileBar:Rx,mobileAccessory:zx,spacer:Gx,backButton:Fx,nextButton:Bx},He="#333399",ro=46,Ux=16,Lh=ro+Ux*2;function Pe(){return t.jsx("div",{className:Na.spacer,"aria-hidden":"true"})}function Ne({backLabel:e,nextLabel:n,onBack:a,onNext:i,backDisabled:s=!1,nextDisabled:r=!1,nextLoading:o=!1,nextType:c="button",endAccessory:d}){const m=r?void 0:{backgroundColor:He,color:"#fff"};return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:Na.mobileBar,children:[d?t.jsx("div",{className:Na.mobileAccessory,children:d}):null,t.jsx(Me,{className:Na.backButton,color:"dark",size:"lg",h:ro,fw:700,radius:"md",onClick:a,type:"button",disabled:s,children:e}),t.jsx(Me,{className:Na.nextButton,size:"lg",h:ro,fw:700,radius:"md",style:m,variant:r?"default":"filled",onClick:i,disabled:r,loading:o,type:c,children:n})]}),t.jsxs("div",{className:Na.desktopBar,children:[t.jsx(Me,{variant:"default",miw:"120px",onClick:a,type:"button",disabled:s,children:e}),t.jsxs(xt,{gap:"md",children:[d,t.jsx(Me,{miw:"120px",onClick:i,disabled:r,loading:o,type:c,style:m,variant:r?"default":"filled",children:n})]})]})]})}const xc="calc(100vh - 200px)",or={display:"flex",flexDirection:"column",flex:1,minHeight:0};function ze(e){const n=va("(max-width: 768px)",!1,{getInitialValueInEffect:!1}),a=!!(e!=null&&e.pinFooter)||n,i={...or,overflow:"hidden"};return{isMobile:n,shellStyle:a?i:{...or,minHeight:xc},formStyle:a?i:{...or,minHeight:xc},scrollStyle:{flex:1,minHeight:0,overflow:"auto",paddingBottom:"var(--mantine-spacing-md)",WebkitOverflowScrolling:"touch"}}}function An(){const{t:e}=de(),{brandId:n}=ve(),a=xe(),{shellStyle:i}=ze(),[s,r]=S.useState({}),[o,c]=S.useState({}),{adGroupOptions:d}=re(O=>O.briefBuilder),{selectedAdLauncherCampaignId:m,selectedAdLauncherAdGroupId:h,createCampaignPage:p,selectedAdLauncherChannel:l,googleAdLauncherStepNumber:b,tiktokAdLauncherStepNumber:u,tiktokAdLauncherData:y,linkedinAdLauncherStepNumber:I,selectedCampaign:C}=re(O=>O.adGallery),E=l==null?void 0:l[0],P=Zo(l||[],n);Jo(l||[],s,n);const D=S.useMemo(()=>P.map((O,f)=>{var R;const k=Array.isArray((R=O.data)==null?void 0:R.campaigns)?O.data.campaigns:[];return{channel:l==null?void 0:l[f],isLoading:O.isPending,data:mx(k)}}),[P,l]),G=()=>{a(Ze(b-1)),a(nt(p-1)),a(Tt(u-1)),a(Mt(I-1))},_=()=>{if(E==="google"){const O=D.flatMap(k=>k.data).find(k=>k.value===m);if(Oa(O==null?void 0:O.advertisingChannelType,O==null?void 0:O.objective))return;const f=Nx(O);f!==void 0&&a(Pr(f))}a(nt(p+1)),a(Ba(!1)),a(Ze(b+1)),a(Tt(u+1)),a(Mt(I+1)),h?E==="tiktok"?a(ua({type:lt.LAUNCH_INTO_EXISTING_CAMPAIGN})):E==="linkedin"&&a(Wn({type:Jn.LAUNCH_INTO_EXISTING_CAMPAIGN})):E==="facebook"?(a(Cs(!0)),a(nt(6))):E==="google"?a(Ua(!0)):E==="tiktok"?a(ua({type:lt.CREATE_NEW_ADSET})):E==="linkedin"&&a(Wn({type:Jn.CREATE_NEW_ADSET,campaignObjective:ba(C==null?void 0:C.objective)||(C==null?void 0:C.objective)}))};return t.jsxs(A,{style:i,children:[t.jsx(A,{style:{flex:1},children:t.jsx(Ct,{width:520,children:t.jsxs(ae,{children:[t.jsx(g,{fw:600,size:"md",children:e("adLauncher.launchAd.selectCampaignStep2")}),E==="google"&&Oa(C==null?void 0:C.advertisingChannelType,C==null?void 0:C.objective)&&t.jsx(Xt,{color:"red",variant:"light",children:e("adLauncher.googleAdLauncher.campaignObjective.unsupportedSearchDisplay",{type:Oa(C==null?void 0:C.advertisingChannelType,C==null?void 0:C.objective)})}),D.map((O,f)=>
97t.jsxs(qe.Fragment,{children:[t.jsxs(A,{pos:"relative",mih:60,children:[t.jsx(Cp,{visible:O.isLoading,overlayProps:{blur:1},loaderProps:{size:"sm"}}),t.jsx(Re,{data:O.data,label:gc(O.channel),placeholder:O.isLoading?e("adLauncher.common.loading"):O.data.length===0?e("adLauncher.launchAd.noCampaignsFound"):gc(O.channel),value:m||null,onChange:k=>{const R=D.map(B=>B.data.find($=>$.value===k)).find(B=>B!==void 0);c({}),a(Zt(R==null?void 0:R.objective)),O.channel==="google"&&a(Pr(Ah((R==null?void 0:R.advertisingChannelType)??(R==null?void 0:R.objective)))),O.channel==="tiktok"&&a(ua({campaignObjective:R==null?void 0:R.objective})),O.channel==="linkedin"&&a(Wn({campaignObjective:ba(R==null?void 0:R.objective)||(R==null?void 0:R.objective)})),O.channel&&k&&r(B=>({...B,[O.channel]:k})),a(Ci(k)),a(ya("")),a(Or(null)),a(Ei(R))}}),t.jsx(Re,{mt:"sm",placeholder:e("adLauncher.launchAd.selectAdGroupPlaceholderMeta"),data:(d[O.channel??""]||[]).map(k=>{const R=ux(k.isDynamicCreative);return{...k,label:R?e(R,{name:k.label}):k.label}}),value:h||null,label:e("adLauncher.launchAd.adGroupLabel"),onChange:k=>{O.channel&&c(B=>{if(!k){const $={...B};return delete $[O.channel],$}return{...B,[O.channel]:k}});const R=(d[O.channel??""]||[]).find(B=>B.value===k);a(ya(k)),a(Or((R==null?void 0:R.isDynamicCreative)??null))},searchable:!0,clearable:!0})]}),f!==D.length-1&&t.jsx(_t,{mt:"md"}),t.jsxs(Ht,{style:td,onClick:()=>{E==="facebook"?a(nt(5)):E==="google"?(a(Ze(b+1)),a(Ba(!0)),a(Ua(!1))):E==="tiktok"?(a(Ei(void 0)),a(Ci("")),a(ya("")),a(Tt(u+1)),a(ua({type:lt.CREATE_NEW_CAMPAIGN,createNewCampaignData:{...y.createNewCampaignData,budgetOptimizeOn:!1}}))):E==="linkedin"&&(a(Mt(I+1)),a(Wn({type:Jn.CREATE_NEW_CAMPAIGN})))},children:["+ ",e("adLauncher.launchAd.newCampaign")]})]},O.channel??f))]})})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back"),nextLabel:e("adLauncher.common.next"),onBack:G,onNext:_,nextDisabled:!m||E==="google"&&!!Oa(C==null?void 0:C.advertisingChannelType,C==null?void 0:C.objective)})]})}const nd=(...e)=>{for(const n of e){if(!n)continue;const a=n.replace(/[\s-]/g,"_").toUpperCase();if(n==="demandGen"||a==="DEMAND_GEN"||a==="DEMANDGEN")return"DEMAND_GEN";if(n==="performanceMax"||a==="PERFORMANCE_MAX"||a==="PERFORMANCEMAX")return"PERFORMANCE_MAX"}return null},Hx=e=>e.createNewCampaign?"newCampaign":e.launchIntoExistingCampaign?"newAdGroup":"existingAdGroup",$x={REACH:"REACH",RF_REACH:"RF_REACH",TRAFFIC:"TRAFFIC",VIDEO_VIEWS:"VIDEO_VIEWS",VIDEO_VIEW:"VIDEO_VIEWS",ENGAGEMENT:"ENGAGEMENT",APP:"APP_INSTALL",APP_INSTALL:"APP_INSTALL",APP_PROMOTION:"APP_PROMOTION",LEAD_GENERATION:"LEAD_GENERATION",LEADS:"LEAD_GENERATION",WEB_CONVERSIONS:"WEB_CONVERSIONS",CONVERSIONS:"WEB_CONVERSIONS",SALES:"WEB_CONVERSIONS",PRODUCT_SALES:"PRODUCT_SALES",BRAND_AWARENESS:"REACH",AWARENESS:"REACH",OUTCOME_AWARENESS:"REACH",OUTCOME_TRAFFIC:"TRAFFIC",OUTCOME_SALES:"WEB_CONVERSIONS",OUTCOME_LEADS:"LEAD_GENERATION",OUTCOME_ENGAGEMENT:"VIDEO_VIEWS"},Vx={REACH:"REACH",RF_REACH:"RF_REACH",TRAFFIC:"CLICK",VIDEO_VIEWS:"VIDEO_VIEW",ENGAGEMENT:"ENGAGED_VIEW",APP_INSTALL:"INSTALL",APP_PROMOTION:"INSTALL",LEAD_GENERATION:"LEAD_GENERATION",WEB_CONVERSIONS:"CONVERT",PRODUCT_SALES:"CONVERT"},yc=new Set(["REACH","RF_REACH"]),Wx={VIDEO_VIEWS:"VIDEO_VIEW",CLICKS:"CLICK",CONVERSIONS:"CONVERT",SALES:"CONVERT",LEADS:"LEAD_GENERATION"},Sh=e=>e.trim().toUpperCase().replace(/\s+/g,"_"),wa=e=>{if(typeof e!="string")return null;const n=Sh(e);return n?$x[n]??null:null},jh=e=>wa(e),vh=e=>{const n=wa(e);return n?Vx[n]:null},Kx=e=>{if(typeof e!="string")return null;const n=Sh(e);return n?Wx[n]??n:null},qx=(e,n)=>{const a=wa(e),i=vh(e),s=Kx(n);return!s||yc.has(s)&&a&&!yc.has(a)?i:s},Yx=e=>{const n=wa(e);return n==="REACH"||n==="RF_REACH"},ad=e=>{const n=wa(e);return n==="WEB_CONVERSIONS"||n==="PRODUCT_SALES"},Xx=(e,n,a)=>ad(e)&&(!String(n??"").trim()||!String(a??"").trim()),Zx=["COMPLETE_PAYMENT","SHOPPING","INITIATE_CHECKOUT","ADD_TO_CART","FORM","CONTACT","SUBSCRIBE","DOWNLOAD","ON_WEB_ORDER"],Jx="COMPLETE_PAYMENT",Ji=(e,n)=>n?(typeof e=="string"?e.trim():"")||Jx:"",id=(...e)=>{for(const n of e)if(typeof n=="string"&&n.trim()&&wa(n))return n;return null},_h="BUDGET_MODE_INFINITE",wh="BUDGET_MODE_DAY",Qx="REGULAR_CAMPAIGN",ey=e=>{var r;const n=e,a=((r=n==null?void 0:n.body)==null?void 0:r.results)||(n==null?void 0:n.results)||[];if(!Array.isArray(a))return[];const i=[],s=new Set;for(const o of a){const c=o,d=String(c.id||"").trim();!d||s.has(d)||(s.add(d),i.push({id:d,name:String(c.name||d),type:c.type}))}return i},ji="PLACEMENT_TYPE_AUTOMATIC",pa="PLACEMENT_TYPE_NORMAL",ty=["PLACEMENT_TIKTOK","PLACEMENT_PANGLE","PLACEMENT_GLOBAL_APP_BUNDLE"],dr=(e,n)=>String(e||"").trim()!==pa?!1:(Array.isArray(n)?n:[]).map(i=>
97String(i).trim()).filter(Boolean).length===0,vi=e=>{if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const n=Number(e);return Number.isFinite(n)?n:void 0}},zn=e=>e===!0||e==="true"||e==="cbo",ny=e=>e.budgetOptimizeOn?{budget_optimize_on:!0,budget_mode:e.budgetMode||wh,budget:vi(e.budgetAmount)}:{budget_optimize_on:!1},ay=e=>e.budgetOptimizeOn?{budget_mode:_h}:{budget_mode:e.adSetBudgetMode||wh,budget:vi(e.adSetBudgetAmount)},iy=e=>e===!1?"DISABLE":"ACTIVE",sy=(...e)=>jh(id(...e))??"REACH",ry=e=>{const n=e.channel||"tiktok",a=e.ads.map(p=>bx(p,e.copy));if(e.launchType===lt.LAUNCH_INTO_EXISTING_CAMPAIGN)return{brand_id:e.brandId,channel:n,campaign_spec:{campaign_id:e.campaignId},ad_group_spec:{adgroup_id:e.adGroupId},ad_specs:a};const i=sy(e.objective,e.form.optimizationGoal),s=qx(i,e.form.optimizationGoal),r=e.launchType===lt.CREATE_NEW_CAMPAIGN?zn(e.form.budgetOptimizeOn):!!e.existingCampaignIsCbo,o=(e.form.interestTargetingIds||[]).map(p=>String(p).trim()).filter(Boolean),c=(e.form.interestCategoryIds||[]).map(p=>String(p).trim()).filter(Boolean),d=(e.form.placements||[]).map(p=>String(p).trim()).filter(Boolean),m=String(e.form.placementType||ji).trim(),h={adgroup_name:e.form.adSetName,location_ids:e.form.countries??[],optimization_goal:s,bid_price:vi(e.form.bidPrice),...ay({budgetOptimizeOn:r,adSetBudgetAmount:e.form.adSetBudgetAmount,adSetBudgetMode:e.form.adSetBudgetType})};if(o.length>0&&(h.interest_targeting_ids=o),c.length>0&&(h.interest_category_ids=c),m===pa&&d.length>0?(h.placement_type=pa,h.placements=d):h.placement_type=ji,e.launchType!==lt.CREATE_NEW_CAMPAIGN&&e.campaignId&&(h.campaign_id=e.campaignId),s==="REACH"||s==="RF_REACH"){const p=vi(e.form.frequency),l=vi(e.form.frequency_schedule);p!=null&&(h.frequency=p),l!=null&&(h.frequency_schedule=l)}if(ad(i)){const p=typeof e.form.pixelId=="string"?e.form.pixelId.trim():"",l=typeof e.form.optimizationEvent=="string"?e.form.optimizationEvent.trim():"";p&&(h.pixel_id=p),l&&(h.optimization_event=l)}return e.launchType===lt.CREATE_NEW_CAMPAIGN?{brand_id:e.brandId,channel:"tiktok",campaign_spec:{campaign_name:e.form.campaignName,campaign_type:Qx,objective_type:i,operation_status:iy(e.form.checked),...ny({budgetOptimizeOn:r,budgetAmount:e.form.budgetAmount,budgetMode:e.form.budgetType})},ad_group_spec:h,ad_specs:a}:{brand_id:e.brandId,channel:"tiktok",campaign_spec:{campaign_id:e.campaignId},ad_group_spec:h,ad_specs:a}},oy={facebook:{campaign:{requiredIfNew:["objective","status_on_launch"]},adGroup:{requiredIfNew:["optimization_goal"],parentIdField:"campaign_id"},ad:{requiredIfNew:["headlines","bodies","cta_types","link_urls"],parentIdField:"adset_id"}},linkedin:{campaign:{requiredIfNew:["name"]},adGroup:{requiredIfNew:["name","daily_budget"],parentIdField:"campaign_group_id"},ad:{requiredIfNew:["name","commentary","landing_page"],parentIdField:"campaign_id"}},reddit:{campaign:{requiredIfNew:["name","objective"]},adGroup:{requiredIfNew:["name"],parentIdField:"campaign_id"},ad:{requiredIfNew:["name","headline","media_url","media_type","destination_url"],parentIdField:"ad_group_id"}}},dy=e=>{var i;const n=nd(typeof((i=e.campaign_spec)==null?void 0:i.campaign_type)=="string"?e.campaign_spec.campaign_type:void 0),a={requiredIfNew:["budget_amount","campaign_name"],discriminatorField:"campaign_id"};return n==="DEMAND_GEN"?{campaign:a,adGroup:{requiredIfNew:["ad_group_name"],parentIdField:"campaign_id",discriminatorField:"ad_group_id"},ad:{requiredIfNew:["headlines","descriptions","business_name","media_url","logo_image_url","final_urls"],parentIdField:"ad_group_id"}}:{campaign:a,adGroup:{requiredIfNew:["link_url"],parentIdField:"campaign_id",discriminatorField:"ad_group_id"},ad:{requiredIfNew:[],parentIdField:"ad_group_id"}}},cy=e=>{var n,a;return zn((n=e.campaign_spec)==null?void 0:n.budget_optimize_on)?!0:((a=e.ad_group_spec)==null?void 0:a.budget_mode)===_h},ly=e=>{const n=cy(e);return{campaign:{requiredIfNew:n?["objective_type","budget_mode","budget","campaign_type"]:["objective_type","campaign_type"],discriminatorField:"campaign_id"},adGroup:{requiredIfNew:n?["adgroup_name","optimization_goal","budget_mode"]:["adgroup_name","optimization_goal","budget_mode","budget"],parentIdField:"campaign_id",discriminatorField:"adgroup_id"},ad:{requiredIfNew:["name","headlines","cta_types","link_urls","media_type"],parentIdField:"adgroup_id"}}},uy=(e,n)=>e==="google"?dy(n):e==="tiktok"?ly(n):oy[e],vt=e=>e==null?!0:typeof e=="string"?e.trim().length===0:Array.isArray(e)?e.length===0||e.every(vt):!1,vs=(e,n="id")=>!!e&&!vt(e[n]),xi=e=>(e==null?void 0:e.discriminatorField)??"id",bc=e=>Array.isArray(e)?e.filter(n=>typeof n=="string"&&n.trim().length>0).length:0,hy=e=>(e==null?void 0:e.is_dynamic_creative)===!0||(e==null?void 0:e.isDynamicCreative)===!0,Wt=(e,n="id")=>!!e&&!vs(e,n),py=e=>e.join(", "),cr=(e,n,a,i)=>n.requiredIfNew.filter(s=>vt(e[s])).map(s=>({code:"missing_required_field",entity:a,field:s,message:`${i} is missing ${s}.`})),gy=e=>{const n=[];if(!e||typeof e!="object")return[{code:"invalid_request_field",entity:"request",field:"payload",message:"Launch payload is empty."}];const a=Number(e.brand_id);(!Number.isFinite(a)||a<=0)&&n.push({code:"invalid_request_field",entity:"request",field:"brand_id",message:"Launch payload is missing a valid brand_id."});const i=typeof e.channel=="string"?e.channel.trim():"";i||n.push({code:"invalid_request_field",entity:"request",field:"channel",message:"Launch payload is missing a channel."});const{campaign_spec:s,ad_group_spec:r,ad_specs:o}=e,c=i.toLowerCase(),d=uy(c,e);if(d!=null&&d.campaign&&Wt(s,xi(d.campaign))&&(n.push(...cr(s,d.campaign,"campaign_spec","New campaign")),c==="linkedin"&&vt(s.run_schedule_start)&&vt(s.start_date)&&n.push({code:"missing_required_field",entity:"campaign_spec",field:"start_date",message:"New campaign is missing start_date."})),d!=null&&d.adGroup&&Wt(r,xi(d.adGroup))){n.push(...cr(r,d.adGroup,"ad_group_spec","New ad set"));const m=d.adGroup.parentIdField,h=!!s&&Wt(s,xi(d.campaign));m&&!vs(r,m)&&!h&&n.push({code:"missing_parent_id",entity:"ad_group_spec",field:m,message:`New ad set is missing ${m}.`})}if(d!=null&&d.ad&&Array.isArray(o)){const m=d.ad.parentIdField,h=!!r;o.forEach((p,l)=>{if(!Wt(p,xi(d.ad)))return;const b=`Ad ${l+1}`;n.push(...cr(p,d.ad,"ad_specs",b)),m&&!vs(p,m)&&!h&&n.push({code:"missing_parent_id",entity:"ad_specs",field:m,message:`${b} is missing ${m}.`})})}if(c==="facebook"){const m=typeof(s==null?void 0:s.objective)=="str
97ing"?s.objective.trim().toLowerCase():"";Wt(s)&&Wt(r)&&(m==="sales"||m==="outcome_sales")&&vt(r.promoted_pixel_id)&&n.push({code:"facebook_sales_pixel_required",entity:"ad_group_spec",field:"promoted_pixel_id",message:"Sales campaigns require a Meta pixel. Without one, the backend rewrites the goal to landing-page views."})}if(c==="facebook"&&Array.isArray(o)&&(o.forEach((m,h)=>{if(!Wt(m))return;const{headlines:p}=m;!Array.isArray(p)||p.length<2||Kn(p.map(l=>String(l??"")))&&n.push({code:"duplicate_dof_titles",entity:"ad_specs",field:"headlines",message:`Ad ${h+1} has duplicate titles. Meta Degrees of Freedom requires unique titles.`})}),Wt(r)&&o.some(h=>Wt(h)?bc(h.headlines)>1||bc(h.bodies)>1:!1)&&!hy(r)&&n.push({code:"facebook_dynamic_creative_mismatch",entity:"ad_group_spec",field:"is_dynamic_creative",message:"This launch uses more than one headline or primary text. The new ad set must have is_dynamic_creative set to true."})),c==="google"){const m=p=>Array.isArray(p)&&p.filter(l=>typeof l=="string"&&l.trim().length>0).length>ha;if(r&&m(r.headlines)&&n.push({code:"google_headline_limit",entity:"ad_group_spec",field:"headlines",message:`Ad group has more than ${ha} headlines.`}),Array.isArray(o)&&o.forEach((p,l)=>{m(p.headlines)&&n.push({code:"google_headline_limit",entity:"ad_specs",field:"headlines",message:`Ad ${l+1} has more than ${ha} headlines.`})}),s){const p=s.campaign_type??s.campaignType;if(vt(p))n.push({code:"google_campaign_type",entity:"campaign_spec",field:"campaign_type",message:"Google launches must send campaign_type (PERFORMANCE_MAX or DEMAND_GEN), including when launching into an existing campaign."});else{const l=String(p).trim().toUpperCase();l!=="PERFORMANCE_MAX"&&l!=="DEMAND_GEN"&&n.push({code:"google_campaign_type",entity:"campaign_spec",field:"campaign_type",message:`Google SEARCH and DISPLAY cannot be launched as Performance Max (received ${String(p)}). Search RSA is a later wave. Choose Performance Max or Demand Gen, or pick a different campaign.`})}}if(String((s==null?void 0:s.campaign_type)??(s==null?void 0:s.campaignType)??"").trim().toUpperCase()==="DEMAND_GEN"){const p=Array.isArray(o)?o:[],l=!!r&&(!vt(r==null?void 0:r.youtube_videos)||!vt(r==null?void 0:r.marketing_images)||!vt(r==null?void 0:r.square_marketing_images));p.length===0&&l&&n.push({code:"google_demand_gen_media",entity:"ad_specs",field:"ad_specs",message:"Demand Gen launches must send ad_specs with media_url and ad_format, not Performance Max asset-group fields."}),p.forEach((b,u)=>{if(!Wt(b))return;const y=`Ad ${u+1}`,I=b.video_url??b.videoUrl,C=b.media_url??b.mediaUrl,E=String(b.ad_format??b.adFormat??"").toUpperCase(),P=b.long_headlines??b.longHeadlines;vt(I)||n.push({code:"google_demand_gen_media",entity:"ad_specs",field:"video_url",message:`${y} must use media_url with ad_format VIDEO, not video_url.`}),vt(C)&&n.push({code:"google_demand_gen_media",entity:"ad_specs",field:"media_url",message:`${y} is missing media_url.`}),!vt(I)&&E!=="VIDEO"&&n.push({code:"google_demand_gen_media",entity:"ad_specs",field:"ad_format",message:`${y} must set ad_format to VIDEO when launching a video.`}),E==="VIDEO"&&vt(P)&&n.push({code:"google_demand_gen_media",entity:"ad_specs",field:"long_headlines",message:`${y} is a Demand Gen VIDEO ad and needs long_headlines.`})})}}if(c==="linkedin"){if(Wt(r)){const h=r.targeting_criteria??r.targetingCriteria;Sx(h)||n.push({code:"linkedin_locations_required",entity:"ad_group_spec",field:"targeting_criteria",message:"New LinkedIn ad groups require at least one location. Search and select a location before launching."})}const m=e.allow_split===!0||e.allowSplit===!0;vs(r)&&Array.isArray(o)&&Qo(o)&&!m&&n.push({code:"linkedin_mixed_media_without_split",entity:"request",field:"allow_split",message:"This LinkedIn ad group already exists and the request mixes image and video ads. Launch them separately, or opt in to clone a sibling ad group."})}if(c==="reddit"&&Wt(r)){const m=String(r.bid_strategy??r.bidStrategy??"");if(m==="MANUAL_BIDDING"||m==="TARGET_CPX"){const h=Number(r.bid_value??r.bidValue);(vt(r.bid_type??r.bidType)||!Number.isFinite(h)||h<=0)&&n.push({code:"reddit_bid_value_required",entity:"ad_group_spec",field:"bid_value",message:"Manual bidding and Target CPX require bid_type and bid_value (microcurrency)."})}}if(c==="tiktok"&&Wt(r,xi(d==null?void 0:d.adGroup))){const m=String((s==null?void 0:s.objective_type)??(s==null?void 0:s.objectiveType)??""),h=String(r.optimization_goal??r.optimizationGoal??""),p=wa(m);(p==="WEB_CONVERSIONS"||p==="PRODUCT_SALES"||!p&&h.toUpperCase()==="CONVERT")&&(vt(r.pixel_id??r.pixelId)||vt(r.o
97ptimization_event??r.optimizationEvent))&&n.push({code:"tiktok_sales_pixel_required",entity:"ad_group_spec",field:"pixel_id",message:"TikTok Sales / WEB_CONVERSIONS requires a pixel id and an optimization event."})}return n};class my extends Error{constructor(a,i){super(i);vd(this,"issues");this.name="LaunchAdsContractError",this.issues=a}}const fy=e=>{const n=Array.from(new Set(e.map(a=>a.field)));return`This launch is missing required settings (${py(n)}). Go back and complete the campaign and ad set setup, then try again.`},xy=e=>{const n=gy(e);if(n.length)throw new my(n,fy(n));return e},yy="api/launch_ads",by=async e=>(await Ye.post(yy,xy(e))).data,xn=e=>jn({mutationFn:n=>by(n)}),Ch=()=>jn({mutationFn:async e=>await Ye.post("api/managed_ad_account",e)}),Ay=(e,n,a)=>hn({enabled:!!e&&!!n&&!!a,queryKey:["get-minimum-budget",e,n,a],queryFn:async()=>{const i=`api/minimum_budget_for_objective?brand_id=${e}&channel=${n}&objective=${a}`,s=await Ye.get(i);return!s||!s.data?[]:s.data}});function Ly(e){return typeof e=="boolean"?{isManaged:e,channel:"facebook"}:{isManaged:e==null?void 0:e.isManaged,channel:(e==null?void 0:e.channel)??"facebook"}}function Sy(e,n,a){const i=new URLSearchParams({brand_id:e,channel:n,properties:"targeting_countries"});return a&&i.set("is_managed","true"),`api/custom_properties?${i.toString()}`}const sd=(e,n)=>{const{isManaged:a,channel:i}=Ly(n),s=!!e&&(typeof n=="object"?n.enabled!==!1:!0);return hn({enabled:s,queryKey:["get-country",e,i,a],queryFn:async()=>{var d,m,h;const r=Sy(String(e),i,a),o=await Ye.get(r);return!o||!o.data?[]:((h=(m=(d=o.data)==null?void 0:d.customProperties)==null?void 0:m.targetingCountries)==null?void 0:h.map(p=>({value:p.countryCode??p.country_code??"",label:p.name})).filter(p=>p.value&&p.label))??[]}})},Eh=()=>jn({mutationFn:async e=>(await Ye.post("api/google_country_search",e)).data}),Ca=()=>jn({mutationFn:async e=>(await Ye.post("api/targeting_search",e)).data}),jy=()=>jn({mutationFn:async e=>(await Ye.post("api/reach_estimate",e)).data}),li=async e=>(await Sa.post("api/payment/charge",e)).data,ln=async e=>(await Sa.post("api/payment/refund-payment-intent",{paymentIntentId:e})).data;function vy(e){return`api/custom_properties?${new URLSearchParams({brand_id:e,channel:"facebook",properties:"pixels"}).toString()}`}const _y=(e,n)=>hn({enabled:!!e&&(n==null?void 0:n.enabled)!==!1,queryKey:["get-pixel",e],queryFn:async()=>{var r,o;const a=vy(String(e)),i=await Ye.get(a);if(!i||!i.data)return[];const s=(o=(r=i.data)==null?void 0:r.customProperties)==null?void 0:o.pixels;return(s==null?void 0:s.map(c=>({label:c.name,value:c.id})))||[]}}),wy=e=>hn({enabled:!!e,queryKey:["get-tiktok-pixel",e],queryFn:async()=>{var s,r;const n=`api/custom_properties?brand_id=${e}&channel=tiktok&properties=pixels`,a=await Ye.get(n);if(!a||!a.data)return[];const i=(r=(s=a.data)==null?void 0:s.customProperties)==null?void 0:r.pixels;return(i==null?void 0:i.map(o=>({label:o.name||o.id||"",value:String(o.id||"")})))||[]}}),Ac=e=>Array.isArray(e)?e.map(n=>{if(typeof n=="string"||typeof n=="number"){const s=String(n);return{label:s,value:s}}if(!n||typeof n!="object")return null;const a=n,i=String(a.id||a.value||a.fundingInstrumentId||a.pixelId||"");return i?{label:String(a.name||a.label||i),value:i}:null}).filter(n=>n!=null):[],Cy=e=>hn({enabled:!!e,queryKey:["get-reddit-launch-properties",e],queryFn:async()=>{var s,r;const n=`api/custom_properties?brand_id=${e}&channel=reddit&properties=funding_instruments%2Cpixels`,a=await Ye.get(n),i=((s=a==null?void 0:a.data)==null?void 0:s.customProperties)||((r=a==null?void 0:a.data)==null?void 0:r.custom_properties)||{};return{fundingInstruments:Ac(i.fundingInstruments||i.funding_instruments),pixels:Ac(i.pixels)}}});function Ey(e){return`api/custom_properties?${new URLSearchParams({brand_id:e,channel:"facebook",properties:"lead_gen_forms"}).toString()}`}const Ih=(e,n)=>hn({enabled:!!e&&(n==null?void 0:n.enabled)!==!1,queryKey:["get-lead-gen-form-data",e],queryFn:async()=>{var s,r;const a=Ey(String(e)),i=await Ye.get(a);return!i||!i.data?[]:(r=(s=i.data)==null?void 0:s.customProperties)==null?void 0:r.leadGenForms},staleTime:1e3*60*5}),lr=["get-country","get-pixel","get-lead-gen-form-data"],Iy=e=>({needsCountries:!!(e!=null&&e.needsCountries),needsPixels:!!(e!=null&&e.needsPixels),needsLeadForms:!!(e!=null&&e.needsLeadForms)}),Ty=e=>{for(const n of e)if(n.enabled&&Yu(n.error))return n.error};
97function My(e,n){e.invalidateQueries({predicate:a=>{const i=a.queryKey[0];return i!==lr[0]&&i!==lr[1]&&i!==lr[2]?!1:n?a.queryKey[1]==null||a.queryKey[1]===n:!0}})}const rd=(e,n,a)=>{const{needsCountries:i,needsPixels:s,needsLeadForms:r}=Iy(a),o=sd(e,{isManaged:!!n,enabled:i}),c=_y(e,{enabled:s}),d=Ih(e,{enabled:r}),m=!n&&Ty([{enabled:i,error:o.error},{enabled:s,error:c.error},{enabled:r,error:d.error}]);return{countries:o.data,pixels:c.data,leadForms:d.data,permissionBlocked:!!m,permissionError:m?$n(m,""):void 0}};function Tn({error:e,onDismiss:n}){const{t:a}=de(),{brandId:i}=ve(),s=xe(),r=yt(),o=re(b=>b.settings.accessCode),{data:c}=No(i??""),d=!!(c!=null&&c.accountId&&(c!=null&&c.pageId)),m=S.useCallback(()=>{My(r,i),r.invalidateQueries({queryKey:["getChannelConnectionState",i]}),e!=null&&e.requiresMetaReconnect&&s(Xe(null)),n==null||n()},[i,s,e==null?void 0:e.requiresMetaReconnect,n,r]);if(!e)return null;const h=e.requiresMetaReconnect?a("adLauncher.errors.permissionTitle"):a("adLauncher.errors.title"),p=gf(e),l=e.requiresMetaReconnect?Af(e.message,{customPropertiesHint:a("adLauncher.errors.reconnectMetaHint"),launchHint:a("adLauncher.errors.reconnectMetaGenericHint")},e.isMetaCustomPropertiesError):e.message;return t.jsx(Xt,{color:"red",variant:"light",title:h,withCloseButton:!!n,onClose:n,children:t.jsxs(ae,{gap:"xs",children:[e.fieldErrors.length>0?t.jsxs(ae,{gap:4,children:[p&&t.jsx(g,{size:"sm",style:{whiteSpace:"pre-wrap"},children:l}),t.jsx(g,{size:"sm",children:e.fieldErrors.every(b=>b.field.startsWith("ad_specs")||b.field==="ad")?a("adLauncher.errors.adErrorsHeading"):a("adLauncher.errors.fieldErrorsHeading")}),e.fieldErrors.map((b,u)=>t.jsx(g,{size:"sm",children:Vs(b)},`${b.field}-${u}`))]}):t.jsx(g,{size:"sm",style:{whiteSpace:"pre-wrap"},children:l}),e.requiresMetaReconnect&&t.jsxs(t.Fragment,{children:[t.jsx(Su,{connected:d,brandId:i,updateBtnText:a("adLauncher.errors.reconnectMeta"),buttonLabel:a("adLauncher.errors.reconnectMeta")}),o?t.jsx(Tg,{brandId:i,onConnected:m}):null]}),e.retryable&&!e.requiresMetaReconnect&&t.jsx(g,{size:"sm",children:a("adLauncher.errors.retryableHint")})]})})}function Ny({permissionError:e,formOptions:n,onFormChange:a}){const{t:i}=de();return t.jsxs(A,{style:{flexShrink:0},children:[t.jsx(Tn,{error:e}),t.jsx(Re,{data:n,onChange:a,label:i("adLauncher.launchAd.leadForm"),placeholder:"Select Form"})]})}function Th({reason:e}){const{t:n}=de();return t.jsx(Xt,{color:"red",variant:"light",mt:"md",children:n(rx(e))})}function oa({count:e,isPending:n,hasNextPage:a,isFetchingNextPage:i}){if(e>0)return{showLoading:!1,showEmpty:!1};const s=n||i||!!a;return{showLoading:s,showEmpty:!s}}function Sn({isLoading:e=!1,filtered:n=!1}){const{t:a}=de(),i=_n(),{brandId:s}=ve();return e?t.jsxs(U,{align:"center",justify:"center",direction:"column",gap:"sm",mih:280,py:"xl",children:[t.jsx(et,{size:"sm",color:"blue.9"}),t.jsx(g,{size:"sm",c:"dimmed",children:a("adLauncher.common.noAds.loading")})]}):t.jsx(U,{align:"center",justify:"center",mih:280,py:"xl",px:"md",children:t.jsx(Ep,{withBorder:!0,radius:"lg",p:{base:"md",sm:"lg"},maw:520,w:"100%",children:t.jsxs(ae,{align:"center",gap:"md",ta:"center",children:[t.jsx(vn,{color:"blue.9",radius:"md",size:"xl",variant:"light",children:t.jsx(Mg,{size:22})}),t.jsxs(ae,{gap:"xxxs",children:[t.jsx(g,{fw:700,c:{light:"dark.9",dark:"white"},children:a(n?"adLauncher.common.noAds.filterTitle":"adLauncher.common.noAds.title")}),t.jsx(g,{c:"dimmed",size:"sm",children:a(n?"adLauncher.common.noAds.filterDescription":"adLauncher.common.noAds.description")})]}),!n&&t.jsx(Me,{color:"blue.9",variant:"light",onClick:()=>i(`/brands/${s}/ads-central`),children:a("adLauncher.common.noAds.action")})]})})})}const Mh=()=>{const e=S.useRef(null),n=S.useRef(null),a=Lt(),{selectedLauncherAds:i,selectedAdLauncherChannel:s,selectedAdLauncherAdGroupIsDynamicCreative:r,selectedCampaignObjectives:o,selectedMetaLeadGenFormId:c,metaManagedAccount:d}=re(N=>N.adGallery),{brandId:m}=ve(),h=Ip(s[0],o),{leadForms:p,permissionBlocked:l,permissionError:b}=rd(m,d,{needsLeadForms:h}),u=xe(),{t:y}=de(),{shellStyle:I}=ze({pinFooter:!0}),{data:C,fetchNextPage:E,hasNextPage:P,isFetchingNextPage:D,isPending:G}=Cn({mode:"brand",brandId:m||""}),_=S.useMemo(()=>((C==null?void 0:C.pages)||[]).flatMap(N=>N.items),[C]),O=s[0]==="facebook"?_:_==null?void 0:_.filter(N=>!Te(N.previewStorageKey)),f=!d&&s[0]==="facebook"?ao({isDynamicCreative:r,adCount:(i==null?void 0:i.length)??0}):null,{showLoading:k,showEmpty:R}=oa({count:(O==null?void 0:O.length)??0,isPending:G,hasNextPage:P,isFetchingNextPage:D}),B=N=>N!=null&&N.previewStorageKey&&N.previewStorageKey!=="public/"?N.previewStorageKey.includes("public/")?st(`${bt[a]}/${N.previewStorageKey}`):st(`${At[a]}/${N.previewStorageKey}`):"",$=S.useMemo(()=>(p==null?void 0:p.map(N=>({label:N.name,value:N.id})))||[],[p]),J=N=>{const L=i.some(x=>x.id===N.id)?i.filter(x=>x.id!==N.id):[...i,N];u(zs(L))},z=Tp(n,{root:e.current,rootMargin:"180px",threshold:0});S.useEffect(()=>{z&&(!P||D||E==null||E())},[z,P,D,E]);const V={3840:8,2560:6,1920:5,1800:5,1600:4,1400:4,1100:3,700:3,500:1,300:1};return t.jsxs(A,{style:I,children:[h&&t.jsx(Ny,{permissionError:b,formOptions:$,onFormChange:N=>u(kl(N))}),f&&t.jsx(Th,{reason:f}),t.jsx(g,{size:"sm",fw:600,style:{flexShrink:0},children:y("adLauncher.launchAd.eligibleAds")}),t.jsxs(Nt,{style:{flex:1,minHeight:0},viewportRef:e,scrollbars:"y",children:[k||R?t.jsx(Sn,{isLoading:k,filtered:R&&((_==null?void 0:_.length)??0)>0}
97):t.jsx(In,{breakpointCols:V,className:"my-masonry-grid",columnClassName:"my-masonry-grid_column",children:O==null?void 0:O.map(N=>t.jsx(Ae,{shadow:"sm",padding:"0",withBorder:!0,style:{cursor:"pointer",borderColor:i.some(L=>L.id===N.id)?"#322996":"#e9ecef",borderWidth:i.some(L=>L.id===N.id)?"3px":"1px",padding:i.some(L=>L.id===N.id)?"3px":"0",transition:"all 0.3s ease"},onClick:()=>J(N),children:Te(N==null?void 0:N.previewStorageKey)?t.jsx(t.Fragment,{children:t.jsx("video",{src:B(N),autoPlay:!0,muted:!0,loop:!0,playsInline:!0,style:{height:"auto",borderRadius:"8px",width:"100%",border:"none",objectFit:"contain"}})}):t.jsx(ot,{src:B(N),fit:"contain",loading:"lazy",alt:N.name,style:{maxHeight:"auto",flex:"unset"}})},N.id))}),P&&t.jsx("div",{ref:n,style:{height:1,visibility:"hidden"}}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:y("adLauncher.common.back"),nextLabel:y("adLauncher.common.next"),onBack:()=>u(nt(2)),onNext:()=>{f||(Oe(Dl,{brandId:m}),u(nt(4)))},nextDisabled:(i==null?void 0:i.length)===0||l||!!f||h&&!c})]})},ky=3,Qn=50,Dy=24,Py=3,oo=48,Fn=100,Nh=3,tn=255,$a=25,ea=25,ga=.01,ma=.01,fa=5e3,ja="campaign_id={campaign_id}&ad_id={ad_id}",Lc=["web","ios_app","android_app"],Oy=3;function Sc(e){return e==="Traffic"?"clicks":e==="Conversions"?"conversions":"impressions"}function ta(e){return e==="impressions"?"impression":"click"}const kh=new Set(["a","an","the","and","or","but","nor","of","in","on","at","to","for","with","from","by","as","into","onto","upon","over","under","about","than","then","so","if","when","while","because","that","this","these","those","its","our","your","their","my","one","every","each","all","any","some","more","most","very","too","just","also","not","no","easy"]);function Dh(e){var i;const n=e.trim();if(!n)return!0;if(/[.!?]$/.test(n))return!1;const a=((i=n.split(/\s+/).pop())==null?void 0:i.toLowerCase().replace(/[^a-z']/g,""))??"";return kh.has(a)}function Aa(e){const n=e.trim();return n?Dh(n)?n.split(/\s+/).length<=2:!1:!0}function Ry(e){return/[A-Za-z0-9]$/.test(e)}function jc(e){var a;let n=e.trim();for(;n;){const i=n.split(/\s+/);if(i.length<=2)break;const s=((a=i[i.length-1])==null?void 0:a.toLowerCase().replace(/[^a-z']/g,""))??"";if(!kh.has(s))break;i.pop(),n=i.join(" ")}return n}function Ph(e,n){const a=e.trim().replace(/(?:\.{3}|â¦)+\s*$/u,"").trim();if(!a)return"";if(a.length<=n)return a;const i=a.slice(0,n),s=Gy(i);if(s>=2)return i.slice(0,s+1).trim();const r=a[n];if(r!==void 0&&/[.!?]/.test(r))return i.trim();if(!(r!==void 0&&/[A-Za-z0-9]/.test(r)&&Ry(i)))return jc(i);const c=i.trimEnd(),d=c.lastIndexOf(" "),m=d>0?c.slice(0,d).trim():c;return jc(m)}const zy=new Set(["dr","mr","ms","mrs","jr","sr","vs","st"]);function Gy(e){const n=/[.!?](?=\s|$)/g;let a;for(;(a=n.exec(e))!==null;){const i=a.index;if(!(i<2)){if(e[i]==="."){const s=e.slice(0,i);if(/(?:^|[^A-Za-z])[A-Za-z]$/.test(s))continue;const r=s.match(/[A-Za-z]+$/);if(r&&zy.has(r[0].toLowerCase()))continue}return i}}return-1}function ia(e){return Ph(e,Qn)}function od(e,n){const a=e.map(r=>r.trim()).filter(Boolean);if(a.length===0)return"";const i=a.find(r=>r.length<=n&&!Dh(r));if(i)return i;const s=a.find(r=>!Aa(r))??a[0];return Ph(s,n)}function ui(e){return e.length<=Fn?e:e.slice(0,Fn)}function Fy(e,n,a){return Math.min(a,Math.max(n,e))}function ti(e,n){const a=Number(e)||ea;return Number(n==="impressions"?Fy(.04*a,2,15).toFixed(2):Math.max(Oy,.02*a).toFixed(2))}function Oh(e,n,a=new Date){const i=(e==null?void 0:e.trim())||"Brand",s=(n==null?void 0:n.trim())||"Campaign",r=a.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"});return`${i} â ${s} â ${r}`.slice(0,tn)}function Rh(e,n){const a=(e==null?void 0:e.trim())||"Brand",i=(n==null?void 0:n.trim())||"Campaign";return`${a} â ${i} ad group`.slice(0,tn)}function Ns(e){return e==="impressions"?"Awareness":e==="conversions"?"Conversions":"Traffic"}function ki(e,n){if(!(e!=null&&e.trim()))return null;const a=(n==null?void 0:n.trim())||"00:00",i=new Date(`${e}T${a}:00`);return Number.isNaN(i.getTime())?null:Math.floor(i.getTime()/1e3)}function ni(){const e=new Date,n=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0");return`${n}-${a}
97-${i}`}function Di(){const e=new Date;return`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function _s(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||"local time"}catch{return"local time"}}function dd(e,n){return e+Math.max(1,n)*24*60*60}function By(e,n){const a=Math.max(0,n-e);return Math.max(1,Math.ceil(a/(24*60*60)))}function Uy(e,n){return new Date(dd(e,n)*1e3)}function _i(e){return(e||"").toLowerCase().includes("{oppref}")}function Hy(e){const n=(e||"").split(/[\n,]+/).map(i=>i.trim()).filter(Boolean),a=[];for(const i of n)a.includes(i)||a.push(i);return a}function vc(e){const n=(e||"").trim();if(n)return{query_string_template:n}}function sa(e){return e==="maximize_clicks"||e==="maximize_conversions"||e==="maximize"||e==="maximize_results"}function cd(e){return e==="conversions"?"maximize_conversions":"maximize_clicks"}function Ra(e){return e==="impressions"?"impressions":e==="conversions"?"conversions":"clicks"}function Bn(e,n){if(e==="impressions")return"fixed_bid";const a=cd(e);return(n==null?void 0:n.biddingType)==="impressions"||sa(n==null?void 0:n.bidStrategy)?a:(n==null?void 0:n.bidStrategy)||a}function $y(e){const n=ki(e.startDate,e.startTime),a=ki(e.endDate,e.endTime||e.startTime||"23:59");return n==null||a==null?!1:a>n}const co={headlines:[""]},lo={headline:""},zh={title:"",body:""},Vy={primaryText:["",""],headline:["",""]},Wy={headlines:["","",""],longHeadlines:[""],descriptions:["",""]};function ks(e){return Array.isArray(e)?e.filter(n=>typeof n=="string"&&n.trim()!==""):[]}function _c(e){return[e[0]??"",e[1]??""]}function Yn(e,n){if(!e)return"";if(e.length<=n)return e;const a=e.slice(0,n),i=a.lastIndexOf(" ");return(i>0?a.slice(0,i):a)+"â¦"}function Gh(e){if(!e||typeof e!="object"||Array.isArray(e))return{headlines:[],primaryText:[]};const n=e;return{headlines:ks(n.headlines),primaryText:ks(n.primaryText??n.primary_text)}}function Ky(e){const n=Gh(e);return{primaryText:_c(n.primaryText),headline:_c(n.headlines)}}function qy(e){const{headlines:n,primaryText:a}=e;return{headlines:[0,1,2].map(i=>Yn(n[i]??"",30)),longHeadlines:[Yn(a[0]??n[3]??"",90)],descriptions:[Yn(a[1]??a[0]??"",90),Yn(a[2]??n[4]??"",90)]}}function Fh(e){var n,a,i,s;return e?{primaryText:[((n=e.Headlines)==null?void 0:n[0])??"",((a=e.Headlines)==null?void 0:a[1])??""],headline:[((i=e.subHeadline)==null?void 0:i[0])??"",((s=e.subHeadline)==null?void 0:s[1])??""]}:Vy}function Bh(e){var n;return e?{headlines:[0,1,2].map(a=>{var i;return Yn(((i=e.Headlines)==null?void 0:i[a])??"",30)}),longHeadlines:[Yn(((n=e.subHeadline)==null?void 0:n[0])??"",90)],descriptions:[1,2].map(a=>{var i;return Yn(((i=e.subHeadline)==null?void 0:i[a])??"",90)})}:Wy}function Yy(e){if(!e)return co;const n=ks(e.subHeadline);if(n.length>0)return{headlines:[n[0]]};const a=ks(e.Headlines);return a.length>0?{headlines:[a[0]]}:co}function Xy(e){var i,s,r,o;
97if(!e)return lo;const n=(s=(i=e.subHeadline)==null?void 0:i[0])==null?void 0:s.trim();if(n)return{headline:n};const a=(o=(r=e.Headlines)==null?void 0:r[0])==null?void 0:o.trim();return a?{headline:a}:lo}function Uh(e,n){const a=od(n.filter(i=>i.trim()&&i.trim()!==e),Fn);return!a||a===e||Aa(a)?"":a}function Pi(e){var r,o,c,d,m,h,p,l;if(!e)return zh;const n=((o=(r=e.subHeadline)==null?void 0:r[0])==null?void 0:o.trim())||"",a=((d=(c=e.Headlines)==null?void 0:c[0])==null?void 0:d.trim())||"",i=od([n,a],Qn),s=Uh(i,[((h=(m=e.subHeadline)==null?void 0:m[1])==null?void 0:h.trim())||"",((l=(p=e.Headlines)==null?void 0:p[1])==null?void 0:l.trim())||"",n,a]);return{title:i,body:s}}function Zy(e){const{headlines:n,primaryText:a}=e,i=od([...n,...a],Qn),s=Uh(i,[...a,...n]);return!i&&!s?zh:{title:i,body:s}}const Jy=5,Qy=2,eb=1,tb=1;function nb(e){const n=e.headlines.slice(0,Jy).map(i=>ia(i)).filter(i=>i.trim());for(;n.length<Qy;)n.push("");const a=e.primaryText.slice(0,eb).map(i=>ui(i)).filter(i=>i.trim());for(;a.length<tb;)a.push("");return{headlines:n,descriptions:a}}function Ds(e){const n=e.title.trim(),a=e.body.trim();return!n||!a||Aa(n)||Aa(a)||n===a}function uo(e,n){const a=e.title.trim(),i=n.title.trim(),r=(!a||Aa(a)&&i&&!Aa(i))&&i||a,o=e.body.trim(),c=!!o&&o!==r&&!Aa(o);return{title:r,body:c?o:n.body.trim()||o||""}}function ab(e){var s,r;const{headlines:n,primaryText:a}=e,i=((s=n[0])==null?void 0:s.trim())||((r=a[0])==null?void 0:r.trim())||"";return i?{headlines:[i]}:co}const ib=300;function sb(e){var s,r;const{headlines:n,primaryText:a}=e,i=((s=n[0])==null?void 0:s.trim())||((r=a[0])==null?void 0:r.trim())||"";return i?{headline:Yn(i,ib)}:lo}function Hh(e){var n,a,i,s;return!((n=e.primaryText[0])!=null&&n.trim())||!((a=e.primaryText[1])!=null&&a.trim())||!((i=e.headline[0])!=null&&i.trim())||!((s=e.headline[1])!=null&&s.trim())}function $h(e,n){const a=typeof n=="boolean"?Hu({product:n?"PERFORMANCE_MAX":null,mode:n?"newCampaign":"existingAdGroup"}):n;return!lf(e,a)}function rb(e){return!e.headlines.some(n=>n.trim())}function ob(e){return!e.headline.trim()}function Vh(e,n){var a,i,s,r;return{primaryText:[((a=e.primaryText[0])==null?void 0:a.trim())||n.primaryText[0]||"",((i=e.primaryText[1])==null?void 0:i.trim())||n.primaryText[1]||""],headline:[((s=e.headline[0])==null?void 0:s.trim())||n.headline[0]||"",((r=e.headline[1])==null?void 0:r.trim())||n.headline[1]||""]}}function Wh(e,n){return{headlines:e.headlines.map((a,i)=>{var s;return a.trim()||((s=n.headlines[i])==null?void 0:s.trim())||""}),longHeadlines:e.longHeadlines.map((a,i)=>{var s;return a.trim()||((s=n.longHeadlines[i])==null?void 0:s.trim())||""}),descriptions:e.descriptions.map((a,i)=>{var s;return a.trim()||((s=n.descriptions[i])==null?void 0:s.trim())||""})}}function db(e,n){var i,s;const a=((i=e.headlines[0])==null?void 0:i.trim())||((s=n.headlines[0])==null?void 0:s.trim())||"";return{headlines:a?[a]:[""]}}function cb(e,n){return{headline:e.headline.trim()||n.headline.trim()||""}}function un(e){return e.previewStorageKey?Te(e.previewStorageKey)?e.previewStorageKey.includes("public/")?`https://cgp-assets-thumbnails.omneky.com/${e.previewStorageKey}`:`https://cgp-assets-thumbnails.omneky.com/public/${e.previewStorageKey}`:e.previewStorageKey.includes("public/")?`${dt}${e.previewStorageKey}`:`${dt}public/${e.previewStorageKey}`:""}async function hi(e){if(!e.adUrl||!e.brandId||!e.brandName)return null;try{const n=await Pl.post("api/v1/brief/generate_copy",{adUrl:e.adUrl,brandId:e.brandId,brandName:e.brandName,language:e.language,...e.generationId?{generationId:e.generationId}:{}});return Gh(n.data)}catch(n){return console.error("Error generating launcher copy:",n),null}}async function ho(e){const n=await hi(e);return n?Ky(n):null}async function po(e){const n=await hi(e);return n?qy(n):null}async function lb(e){const n=await hi(e);return n?ab(n):null}async function ub(e){const n=await hi(e);return n?sb(n):null}async function Kh(e){const n=await hi(e);return n?Zy(n):null}async function wc(e){const n=await hi(e);return n?nb(n):null}async function hb(e){const n=e.concurrency,a={...e.cache??{}},i=e.ads.filter(c=>
97{const d=String(c.id),m=a[d];return!m||Ds(m)});let s=0;async function r(){for(;s<i.length;){const c=s;s+=1;const d=i[c],m=String(d.id),h=a[m]??Pi(d);if(!Ds(h)){a[m]=h;continue}const p=await Kh({adUrl:un(d),brandId:e.brandId,brandName:e.brandName,language:e.language});a[m]=p?uo(h,p):h}}const o=Array.from({length:Math.min(n,i.length)},()=>r());return await Promise.all(o),a}const qs=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:null,pb=e=>Array.isArray(e)?e.map(n=>n==null?"":String(n).trim()).filter(n=>n.length>0):[],za=(...e)=>{for(const n of e)if(typeof n=="string"&&n.trim())return n.trim()},gb=e=>{const n=e.idx??e.index;if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"&&n.trim()!==""&&Number.isFinite(Number(n)))return Number(n)},Cc=(e,n)=>{if(typeof e=="string"&&e.trim())return{idx:n,error:e.trim()};const a=qs(e);if(!a)return null;const i=za(a.error,a.message,a.humanReadableError,a.human_readable_error)??"",s=gb(a)??n;if(!i&&s==null)return null;const r=a.httpStatusCode??a.http_status_code;return{idx:s,error:i||"Ad failed to launch",errorClass:za(a.errorClass,a.error_class),httpStatusCode:typeof r=="number"?r:void 0,provider:za(a.provider),errorCode:za(a.errorCode,a.error_code)}},mb=e=>!Array.isArray(e)||e.length===0?!1:e.every(n=>{if(typeof n=="string")return n.trim().length>0;const a=qs(n);return a?"idx"in a||"index"in a||"error"in a||"message"in a||"errorClass"in a||"error_class"in a:!1}),fb=e=>{const n=[e.adErrors,e.ad_errors,e.adError,e.ad_error];mb(e.errors)&&n.push(e.errors);for(const a of n){if(a==null)continue;if(Array.isArray(a))return a.map(s=>Cc(s)).filter(s=>s!==null);const i=Cc(a);if(i)return[i]}return[]},xb=e=>{const n=e.error;if(typeof n=="string"&&n.trim())return n.trim();const a=qs(n);return a?za(a.message,a.error,a.humanReadableError)??null:null},Mn=e=>{const n=qs(e);if(!n)return{adIds:[],adErrors:[],adsLaunchedCount:0,hasAdErrors:!1,isFullSuccess:!1,failedIndexes:[]};const a=pb(n.adIds??n.ad_ids),i=fb(n),s=xb(n);s&&!i.some(d=>d.error===s)&&i.push({error:s});const r=za(n.campaignId,n.campaign_id),o=i.map(d=>d.idx).filter(d=>typeof d=="number"),c=i.length>0;return{adIds:a,adErrors:i,campaignId:r,adsLaunchedCount:a.length,hasAdErrors:c,isFullSuccess:!c,failedIndexes:o}},Nn=(e,n,a)=>{const i=e?[...e]:[];if(n.isFullSuccess)return i;if(n.failedIndexes.length===0)return[];if(a!==i.length)return[];const s=new Set(n.failedIndexes);return i.filter((r,o)=>!s.has(o))},yb=(e,n)=>{const a=e.idx!=null?String(e.idx+1):"?";return n?n("adLauncher.errors.adErrorLine",{index:a,message:e.error}):`Ad ${a}: ${e.error}`},bb=(e,n,a)=>e.adErrors.length?e.adErrors.map(i=>yb(i,a)).join(` 98`):n,kn=(e,n,a)=>({message:bb(e,n,a),kind:"server",status:void 0,fieldErrors:e.adErrors.map(i=>({field:i.idx!=null?`ad_specs[${i.idx}]`:"ad",message:i.error})),requiresMetaReconnect:!1,isMetaCustomPropertiesError:!1,retryable:!1}),Ab=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Un(e,n){const a=new Date,i=`${Ab[a.getMonth()]} ${a.getFullYear()}`,s=(e==null?void 0:e.trim())||"Untitled",r=(n==null?void 0:n.trim())||"Traffic";return`${s} â ${r} â ${i}`}function Hn(e){return JSON.stringify({channel:e.channel,selectedAdIds:e.selectedAdIds})}function qh(){var M,ee,ne,X,ie,Q;const e=xe(),{brandId:n}=ve(),{t:a}=de(),{formStyle:i,scrollStyle:s,shellStyle:r}=ze({pinFooter:!0}),{selectedLauncherAds:o,selectedAdLauncherChannel:c,selectedAdLauncherCampaignId:d,selectedAdLauncherAdGroupId:m,selectedAdLauncherAdGroupIsDynamicCreative:h,selectedMetaLeadGenFormId:p,selectedCampaignObjectives:l,selectedCampaign:b,tiktokAdLauncherStepNumber:u,metaManagedAccount:y,metaCampaignFormValues:I,lastLaunchError:C}=re(j=>j.adGallery);yt();const E=En(),P=Bi(),D=localStorage.getItem("user");JSON.parse(D||"{}");const{adInstanceItems:G}=re(j=>j.projectView),_=xn(),O=o==null?void 0:o[0],{brandOverviewData:f}=re(j=>j.library),{data:k}=Ot(n),[R,B]=S.useState(!1),$=S.useRef(null),{permissionBlocked:J,permissionError:z}=rd(n,y,{needsLeadForms:xa(l)}),V=ph(h),N=y||V,L=wt({initialValues:{primaryText:["",""],headline:["",""],callToAction:"",detailedTargeting:"",url:"",checked:!0}
98,validate:{primaryText:j=>{if(!Array.isArray(j))return a("adLauncher.launchAd.validations.primaryText");const q=[];return(!j[0]||j[0].trim()==="")&&(q[0]=a("adLauncher.launchAd.validations.primaryText")),N&&((!j[1]||j[1].trim()==="")&&(q[1]=a("adLauncher.launchAd.validations.primaryText")),Kn(j)&&(q[1]=a("adLauncher.adsetSettings.validations.primaryTextDuplicate"))),q.length>0?q:null},headline:j=>{if(!Array.isArray(j))return a("adLauncher.launchAd.validations.headline");const q=[];return(!j[0]||j[0].trim()==="")&&(q[0]=a("adLauncher.launchAd.validations.headline")),j[0]&&j[0].length>255&&(q[0]=a("adLauncher.adsetSettings.validations.headlineLength")),N&&((!j[1]||j[1].trim()==="")&&(q[1]=a("adLauncher.adsetSettings.validations.headline")),j[1]&&j[1].length>255&&(q[1]=a("adLauncher.adsetSettings.validations.headlineLength")),Kn(j)&&(q[1]=a("adLauncher.adsetSettings.validations.headlineDuplicate"))),q.length>0?q:null},url:j=>j?F(j)?a("adLauncher.launchAd.validations.urlInvalid"):null:a("adLauncher.launchAd.validations.url"),callToAction:j=>j?null:a("adLauncher.launchAd.validations.cta")}}),x=y?null:ao({isDynamicCreative:h,headlines:L.values.headline,primaryTexts:L.values.primaryText,adCount:(o==null?void 0:o.length)??0}),v=N||gh(L.values.headline,L.values.primaryText),T=async j=>{try{return await e(ii(j))}catch(q){return console.error("Failed to fetch brand overview:",q),null}};S.useEffect(()=>{(async()=>{var le;if(!n)return;const se=await T({brandId:n});se&&((le=se==null?void 0:se.payload)!=null&&le.url)&&L.setFieldValue("url",se.payload.url)})()},[n]),S.useEffect(()=>{if(!O)return;let j=!1;return(async()=>{var te;const se=Fh(O);let le=se;if(Hh(se)&&n&&(k==null?void 0:k.name)&&$.current!==O.id){B(!0);const me=await ho({adUrl:un(O),brandId:n,brandName:k.name,language:((te=k.language)==null?void 0:te.langCode)||"us-en"});if(j)return;
98$.current=O.id,me&&(le=Vh(se,me)),B(!1)}j||L.setValues({primaryText:le.primaryText,headline:le.headline,callToAction:L.values.callToAction||"Learn More",detailedTargeting:"",url:(f==null?void 0:f.url)??L.values.url??"",checked:L.values.checked})})(),()=>{j=!0,B(!1)}},[O,n,k==null?void 0:k.name,(M=k==null?void 0:k.language)==null?void 0:M.langCode,f==null?void 0:f.url]);const H=async j=>{if(J||!y&&ao({isDynamicCreative:h,headlines:j.headline,primaryTexts:j.primaryText,adCount:(o==null?void 0:o.length)??0}))return;if(e(Xe(null)),y&&c[0]==="facebook"){e(Np({primaryText:j.primaryText,headline:j.headline,callToAction:j.callToAction,url:j.url,checked:j.checked})),e(nt(9));return}const q=le=>{e(Xe({message:le,kind:"validation",status:void 0,fieldErrors:[],requiresMetaReconnect:!1,isMetaCustomPropertiesError:!1,retryable:!1})),he.show({title:a("adLauncher.errors.title"),message:le,color:"red"})};if(!(c!=null&&c[0])){q(a("adLauncher.launchAd.validations.missingChannel"));return}if(!(o!=null&&o.length)){q(a("adLauncher.launchAd.validations.noAdsSelected"));return}if(!d||!m){q(a("adLauncher.launchAd.validations.missingCampaign"));return}const se=o.map(le=>(le.name??"").trim().toLowerCase()).filter(le=>le.length>0);if(se.length>1&&new Set(se).size!==se.length){q(a("adLauncher.adsetSettings.validations.duplicateAdNames"));return}try{e(nt(7));const le={brand_id:n,channel:c[0],campaign_spec:{id:d},ad_group_spec:{id:m},ad_specs:o==null?void 0:o.map(ye=>({name:ye.name,...ci(ye.previewStorageKey),lead_gen_form_id:p??"",...Xo({headlines:j.headline,primaryTexts:j.primaryText,dynamicCreative:N}),cta_types:[j.callToAction],link_urls:[j.url],status_on_launch:j.checked?"ACTIVE":"PAUSED",...xa(l)&&{lead_gen_form_id:p}}))},_e=await _.mutateAsync(le),te=Mn(_e),me=Nn(o,te,o.length);if(!te.isFullSuccess){const ye=kn(te,a("adLauncher.launchAd.launchFailedFallback"),a);if(e(Xe(ye)),Oe(Ka,{brandId:n,error_message:ye.message}),await P("failed",{channel:"facebook",title:Un((b==null?void 0:b.label)||(I==null?void 0:I.campaignName),l),currentStep:4,payloadJson:Hn({channel:"meta",selectedAdIds:o.map(ge=>ge.id).filter(Boolean)}),campaignId:te.campaignId||d||null,adsLaunchedCount:te.adsLaunchedCount}),he.show({title:a("adLauncher.errors.partialTitle"),message:ye.message,color:"red"}),e(nt(4)),me.length){await Promise.all(me.map(async Ce=>{const{__typename:Y,...ce}=Ce;"id"in ce&&await E.mutateAsync({id:ce.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const ge=G==null?void 0:G.map(Ce=>me.find(Y=>"id"in Y&&Y.id===Ce.id)?{...Ce,status:Fe.launched,updatedAt:new Date().toISOString()}:Ce);e(mt(ge))}return}Oe(Lo,{brandId:n}),e(nt(8)),await P("launched",{channel:"facebook",title:Un((b==null?void 0:b.label)||(I==null?void 0:I.campaignName),l),currentStep:4,payloadJson:Hn({channel:"meta",selectedAdIds:o.map(ye=>ye.id).filter(Boolean)}),campaignId:te.campaignId||d||null,adsLaunchedCount:te.adsLaunchedCount}),Promise.all(me.map(async ye=>{const{__typename:ge,...Ce}=ye;"id"in Ce&&await E.mutateAsync({id:Ce.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const Le=G==null?void 0:G.map(ye=>me.find(ge=>"id"in ge&&ge.id===ye.id)?{...ye,status:Fe.launched,updatedAt:new Date().toISOString()}:ye);e(mt(Le)),setTimeout(()=>{e(wn()),e(fn(!1))},5e3)}catch(le){const _e=a("adLauncher.launchAd.launchFailedFallback"),te=$n(le,_e);console.error("Launch error:",te.message),e(Xe(te)),Oe(Ka,{brandId:n,error_message:cn(le,_e)}),await P("failed",{channel:"facebook",title:Un((b==null?void 0:b.label)||(I==null?void 0:I.campaignName),l),currentStep:4,payloadJson:Hn({channel:"meta",selectedAdIds:(o||[]).map(me=>me.id).filter(Boolean)}),campaignId:d||null,adsLaunchedCount:0}),he.show({title:a("adLauncher.errors.title"),message:cn(le,_e),color:"red"}),e(nt(4))}},F=j=>!Wa.test(j),w=j=>{const q=[null,null];return j.forEach((se,le)=>{se.length>255&&(q[le]=a("adLauncher.adsetSettings.validations.headlineLength"))}),Kn(j)&&(q[1]=a("adLauncher.adsetSettings.validations.headlineDuplicate")),q},K=j=>{const q=[null,null];return Kn(j)&&(q[1]=a("adLauncher.adsetSettings.validations.primaryTextDuplicate")),q};return t.jsx(A,{style:r,children:t.jsxs("form",{style:i,onSubmit:L.onSubmit(j=>{H(j)}),children:[t.jsxs(A,{style:s,children:[t.jsxs(Ct,{width:600,children:[t.jsx(Tn,{error:z??C,onDismiss:C&&!z?()=>e(Xe(null)):void 0}),x?t.jsx(Th,{reason:x}):N?t.jsx(Xt,{color:"blue",variant:"light",mt:"md",children:a("adLauncher.adsetSettings.dynamicCreative.enabled")}):t.jsx(Xt,{color:"yellow",variant:"light",mt:"md",children:a(h===!1?"adLauncher.adsetSettings.dynamicCreative.disabled":"adLauncher.adsetSettings.dynamicCreative.unknown")}),R&&t.jsx(g,{size:"sm",c:"dimmed",mt:"md",children:a("adLauncher.adsetSettings.generatingCopy",{defaultValue:"Generating ad copy..."})}),t.jsx(pe,{label:a("adLauncher.adsetSettings.headline"),placeholder:a("adLauncher.adsetSettings.headline1Placeholder"),value:L.values.headline[0],disabled:R,onChange:j=>{const q=[j.currentTarget.value,L.values.headline[1]];L.setFieldValue("headline",q),L.setFieldError("headline",w(q))},error:(ee=L.errors.headline)==null?void 0:ee[0],mt:"md"}),v&&t.jsx(pe,{placeholder:a("adLauncher.adsetSettings.headline2Placeholder"),value:L.values.headline[1],disabled:R,onChange:j=>{const q=[L.values.headline[0],j.currentTarget.value];L.setFieldValue("headline",q),L.setFieldError("headline",w(q))},error:(ne=L.errors.headline)==null?void 0:ne[1],mt:"xs"}),t.jsx(pe,{mt:"lg",label:a("adLauncher.adsetSettings.primaryText1Label"),placeholder:a("adLauncher.adsetSettings.primaryText1Placeholder"),value:L.values.primaryText[0],disabled:R,onChange:j=>{const q=[j.currentTarget.value,L.values.primaryText[1]];L.setFieldValue("primaryText",q),L.setFieldError("primaryText",K(q))},error:(ie=(X=L==null?void 0:L.errors)==null?void 0:X.primaryText)==null?void 0:ie[0]}),v&&t.jsx(pe,{placeholder:a("adLauncher.adsetSettings.primaryText2Placeholder"),value:L.values.primaryText[1],disabled:R,onChange:j=>{const q=[L.values.primaryText[0],j.currentTarget.value];L.setFieldValue("primaryText",q),L.setFieldError("primaryText",K(q))},error:(Q=L.errors.primaryText)==null?void 0:Q[1],mt:"xs"}),t.jsxs(A,{mt:"lg",children:[t.jsx(Re,{label:a("adLauncher.adsetSettings.ctaLabel"),placeholder:a("adLauncher.adsetSettings.ctaPlaceholder"),data:xa(l)?Mp:Rr,...L.getInputProps("callToAction")}),t.jsx(g,{size:"xs",c:"dimmed",mt:4,children:a("adLauncher.adsetSettings.sendMessageText")})]}),t.jsxs(A,{mt:"lg",children:[t.jsx(g,{fw:600,size:"sm",children:a("adLauncher.adsetSettings.destination")}),t.jsx(g,{size:"xs",mt:"5px",children:a("adLauncher.adsetSettings.redirectPeopleText")}),t.jsx(pe,{label:a("adLauncher.adsetSettings.urlPlaceholder"),placeholder:a("adLauncher.adsetSettings.urlPlaceholder"),value:L.values.url,onChange:j=>{L.setFieldValue("url",j.currentTarget.value),j.currentTarget.value.trim()===""?L.setFieldError("url",a("adLauncher.launchAd.validations.url")):F(j.currentTarget.value)?L.setFieldError("url",a("adLauncher.launchAd.validations.urlInvalid")):L.setFieldError("url",null)},error:L.errors.url,mt:"md"})]}),t.jsx(g,{fw:600,size:"sm",mt:"lg",children:"Ad Status on Launch"}),t.jsx(rt,{label:"Active",defaultChecked:!0,...L.getInputProps("checked")})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:a("adLauncher.common.back"),nextLabel:a("adLauncher.common.launch"),onBack:()=>e(nt(3)),nextType:"submit",nextDisabled:R||J||!!x,nextLoading:R})]})})}function ld({data:e,disabled:n,onClick:a,h:i}){var l,b;const s=e.status==="Coming Soon",{selectedCampaignObjectives:r,selectedAdLauncherChannel:o,tiktokAdLauncherData:c,linkedinAdLauncherData:d}=re(u=>u.adGallery),m=o[0],h=m==="facebook"?So(r)??r:m==="linkedin"?d.campaignObjective:c.campaignObjective,p=(h==null?void 0:h.toLowerCase())===((l=e==null?void 0:e.key)==null?void 0:l.toLowerCase());return t.jsxs(Ae,{onClick:!n&&!s?a:void 0,padding:"md",radius:"md",withBorder:!0,style:{opacity:s||n?.45:1,pointerEvents:s||n?"none":"auto",cursor:s||n?"not-allowed":"pointer",transition:"border-color 0.15s, background 0.15s",borderColor:p?"var(--mantine-color-blue-6)":void 0,borderWidth:p?2:1,background:p?"var(--mantine-color-blue-0)":void 0},children:[t.jsxs(U,{direction:"column",gap:6,align:"center",children:[s&&t.jsx(Qe,{size:"xs",radius:"sm",color:"gray",variant:"light",children:"Coming Soon"}),t.jsx(g,{fw:600,size:"sm",ta:"center",children:e.title})]}),t.jsx(g,{size:"xs",ta:"center",c:"gray.6",mt:4,mb:8,style:{lineHeight:1.4},children:e.description}),t.jsx(xt,{justify:"center",gap:4,children:(b=e.goodFor)==null?void 0:b.map((u,y)=>t.jsx(Qe,{size:"xs",radius:"sm",color:"gray",variant:"light",children:u},y))})]})}
98function Lb(){const e=xe(),{t:n}=de(),{scrollStyle:a,shellStyle:i}=ze({pinFooter:!0}),{selectedCampaignObjectives:s,createCampaignPage:r,metaManagedAccount:o}=re(h=>h.adGallery),c=[{title:"Sales",key:"sales"},{title:"Leads",key:"leads"},{title:"Traffic",key:"traffic"},{title:"Awareness",key:"awareness"},{title:"Engagement",key:"engagement"},{title:"App Promotion",key:"appPromotion"}],d=o?c.filter(h=>h.title==="Traffic"||h.title==="Awareness"):c,m=d.reduce((h,{key:p,title:l})=>(h[p]={title:n(`adLauncher.campaignObjectives.${p}.title`),description:n(`adLauncher.campaignObjectives.${p}.description`),goodFor:Object.values(n(`adLauncher.campaignObjectives.${p}.goodFor`,{returnObjects:!0})),status:n(`adLauncher.campaignObjectives.${p}.status`),key:l},h),{});return t.jsxs(A,{style:i,children:[r===5&&t.jsxs(t.Fragment,{children:[t.jsxs(A,{style:a,children:[t.jsxs(A,{style:{maxWidth:640,margin:"0 auto",width:"100%"},children:[t.jsx(g,{size:"md",fw:600,mb:"xs",children:n("adLauncher.campaignObjectives.heading")}),t.jsx(on,{cols:{base:1,sm:2},spacing:"md",children:Object.entries(m).map(([h,p])=>{const l=p.status==="Coming Soon";return t.jsx(ld,{data:p,disabled:l,onClick:()=>{e(Zt(p.key)),e(Cs(!1))}},h)})})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:n("adLauncher.common.back"),nextLabel:n("adLauncher.common.next"),onBack:()=>e(nt(2)),onNext:()=>{if(!d.some(p=>p.title===s)){he.show({title:n("adLauncher.campaignObjectives.heading"),message:n("adLauncher.campaignObjectives.selectRequired",{defaultValue:"Select a campaign objective before continuing."}),color:"red"});return}e(nt(6)),e(Cs(!1))},nextDisabled:!d.some(h=>h.title===s)})]}),r===7&&t.jsx(Mh,{}),r===8&&t.jsx(qh,{})]})}function Yh({params:e}){const{t:n}=de();return To(e)?t.jsx(Xt,{color:"blue",variant:"light",icon:t.jsx(vl,{size:16}),title:n("adLauncher.agentHandoff.title"),children:t.jsx(g,{size:"sm",children:n("adLauncher.agentHandoff.body")})}):null}function Xh({ageMin:e,ageMax:n,gender:a,onAgeMinChange:i,onAgeMaxChange:s,onGenderChange:r,ageError:o,disabled:c}){const{t:d}=de();return t.jsxs(ae,{gap:"sm",children:[t.jsx(g,{fw:600,size:"sm",children:d("adLauncher.metaTargeting.title")}),t.jsx(g,{size:"xs",c:"dimmed",children:d("adLauncher.metaTargeting.description")}),t.jsxs(U,{gap:"md",wrap:"wrap",children:[t.jsx(at,{style:{flex:1,minWidth:120},hideControls:!0,label:d("adLauncher.metaTargeting.ageMin"),min:tr,max:er,value:e,disabled:c,onChange:m=>i(typeof m=="number"?m:tr),error:o||void 0}),t.jsx(at,{style:{flex:1,minWidth:120},hideControls:!0,label:d("adLauncher.metaTargeting.ageMax"),min:tr,max:er,value:n,disabled:c,onChange:m=>s(typeof m=="number"?m:er)}),t.jsx(Re,{style:{flex:1,minWidth:140},label:d("adLauncher.metaTargeting.gender"),allowDeselect:!1,disabled:c,value:a,onChange:m=>r(m||"all"),data:[{value:"all",label:d("adLauncher.metaTargeting.genderAll")},{value:"female",label:d("adLauncher.metaTargeting.genderFemale")},{value:"male",label:d("adLauncher.metaTargeting.genderMale")}]})]})]})}function ud({label:e,description:n,placeholder:a,nothingFound:i,chips:s,onChange:r,onSearch:o,isSearching:c,error:d,required:m}){const[h,p]=S.useState(""),[l,b]=S.useState(!1),[u,y]=S.useState([]),I=S.useRef(),C=new Set(s.map(D=>D.id)),E=u.filter(D=>!C.has(D.id)),P=D=>{if(!D){y([]);return}o(D).then(G=>y(G)).catch(()=>y([]))};return t.jsxs(A,{mt:"md",children:[t.jsx(pe,{label:e,description:n,placeholder:a,withAsterisk:m,error:d,value:h,leftSection:c?t.jsx(et,{size:"xs"}):void 0,onFocus:()=>b(!0),onBlur:()=>{window.setTimeout(()=>b(!1),150)},onChange:D=>{const G=D.currentTarget.value;p(G),b(!0),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>P(G.trim()),300)}}),l&&h.trim().length>0&&t.jsx(A,{mt:"xxs",p:"xxs",style:{border:"1px solid var(--mantine-color-gray-3)",borderRadius:"var(--mantine-radius-md)",background:"var(--mantine-color-body)",maxHeight:"40vh",overflow:"auto"},children:E.length===0&&!c?t.jsx(g,{size:"sm",c:"dimmed",px:"xs",py:"xxs",children:i}):E.map(D=>t.jsx(A,{px:"xs",py:"xxs",style:{cursor:"pointer",borderRadius:"var(--mantine-radius-sm)"},onMouseDown:G=>{G.preventDefault(),r([...s,D]),p(""),b(!1)},children:t.jsx(g,{size:"sm",children:D.name})},D.id))}),s.length>0&&t.jsx(xt,{gap:"xxs",mt:"xs",children:s.map(D=>t.jsx(ko,{withRemoveButton:!1,children:t.jsxs(xt,{gap:"xxxs",wrap:"nowrap",children:[t.jsx(g,{size:"sm",children:D.name}),t.jsx(Gi,{size:"xs",onClick:()=>r(s.filter(G=>G.id!==D.id)),"aria-label":D.name})]})},D.id))})]})}const Qi=(e,n)=>e.map(a=>({value:a,label:n(`adLauncher.metaTargeting.placements.values.${a}`)})),Ec=e=>Qu(e);function Zh({values:e,onChange:n,showBudgetLevel:a,showSchedule:i}){const{t:s}=de(),{brandId:r}=ve(),o=Ca(),c=async d=>{if(!r||!d.trim())return[];try{const m=await o.mutateAsync({brand_id:parseInt(r,10),channel:"facebook",query:d,limit:8,types:["interests","behaviors"]});return ug(m)}catch{return[]}};return t.jsxs(ae,{gap:"md",children:[a&&t.jsxs(ae,{gap:"xs",children:[t.jsx(g,{size:"sm",fw:500,children:s("adLauncher.campaignDetails.budget.levelLabel")}),t.jsx(La,{fullWidth:!0,value:e.budgetOptimizeOn?"cbo":"abo",onChange:d=>n({budgetOptimizeOn:d==="cbo"}),data:[{value:"cbo",label:s("adLauncher.campaignDetails.budget.levelCbo")},{value:"abo",label:s("adLauncher.campaignDetails.budget.levelAbo")}]}),t.jsx(g,{size:"xs",c:"dimmed",children:e.budgetOptimizeOn?s("adLauncher.campaignDetails.budget.levelCboHelper"):s("adLauncher.campaignDetails.budget.levelAbo
98Helper")})]}),t.jsx(Yt,{label:s("adLauncher.metaTargeting.specialAdCategories.label"),description:s("adLauncher.metaTargeting.specialAdCategories.description"),placeholder:s("adLauncher.metaTargeting.specialAdCategories.placeholder"),data:th.map(d=>({value:d,label:s(`adLauncher.metaTargeting.specialAdCategories.${d}`)})),value:e.specialAdCategories,onChange:d=>n({specialAdCategories:d}),searchable:!0}),t.jsxs(U,{gap:"md",wrap:"wrap",children:[t.jsx(Re,{style:{flex:1,minWidth:180},label:s("adLauncher.metaTargeting.bidStrategy.label"),description:s("adLauncher.metaTargeting.bidStrategy.description"),data:nh.map(d=>({value:d,label:s(`adLauncher.metaTargeting.bidStrategy.${d}`)})),value:e.bidStrategy,onChange:d=>n({bidStrategy:d||"LOWEST_COST_WITHOUT_CAP"}),allowDeselect:!1}),(Fo(e.bidStrategy)||Da(e.bidStrategy))&&t.jsx(at,{style:{flex:1,minWidth:140},withAsterisk:!0,label:Da(e.bidStrategy)?s("adLauncher.metaTargeting.bidStrategy.roasFloorLabel"):s("adLauncher.metaTargeting.bidStrategy.amountLabel"),error:e.bidAmount==null||e.bidAmount<=0?s(Da(e.bidStrategy)?"adLauncher.metaTargeting.bidStrategy.roasFloorRequired":"adLauncher.metaTargeting.bidStrategy.amountRequired"):void 0,min:.01,decimalScale:2,prefix:Da(e.bidStrategy)?void 0:"$ ",value:e.bidAmount,onChange:d=>n({bidAmount:typeof d=="number"?d:void 0})})]}),i&&t.jsxs(U,{gap:"md",wrap:"wrap",children:[t.jsx(an,{style:{flex:1,minWidth:160},label:s("adLauncher.metaTargeting.schedule.startDate"),placeholder:s("adLauncher.metaTargeting.schedule.datePlaceholder"),valueFormat:"YYYY-MM-DD",value:Ec(e.startDate),onChange:d=>n({startDate:d}),clearable:!0}),t.jsx(an,{style:{flex:1,minWidth:160},label:s("adLauncher.metaTargeting.schedule.endDate"),placeholder:s("adLauncher.metaTargeting.schedule.datePlaceholder"),valueFormat:"YYYY-MM-DD",value:Ec(e.endDate),onChange:d=>n({endDate:d}),clearable:!0})]}),t.jsx(ud,{label:s("adLauncher.metaTargeting.detailed.label"),description:s("adLauncher.metaTargeting.detailed.description"),placeholder:s("adLauncher.metaTargeting.detailed.placeholder"),nothingFound:s("adLauncher.metaTargeting.detailed.nothingFound"),chips:e.detailedTargeting,onChange:d=>n({detailedTargeting:d}),onSearch:c,isSearching:o.isPending}),t.jsx(_a,{label:s("adLauncher.metaTargeting.advantageAudience"),checked:e.advantageAudience,onChange:d=>n({advantageAudience:d.currentTarget.checked})}),t.jsxs(ae,{gap:"xs",children:[t.jsx(g,{size:"sm",fw:500,children:s("adLauncher.metaTargeting.placements.label")}),t.jsx(g,{size:"xs",c:"dimmed",children:s("adLauncher.metaTargeting.placements.description")}),t.jsx(La,{fullWidth:!0,value:e.placementMode,onChange:d=>n({placementMode:d}),data:[{value:"advantage_plus",label:s("adLauncher.metaTargeting.placements.advantagePlus")},{value:"manual",label:s("adLauncher.metaTargeting.placements.manual")}]})]}),e.placementMode==="manual"&&t.jsxs(ae,{gap:"sm",children:[t.jsx(Yt,{label:s("adLauncher.metaTargeting.placements.publisherPlatforms"),data:Qi(hg,s),value:e.publisherPlatforms,onChange:d=>n({publisherPlatforms:d})}),t.jsx(Yt,{label:s("adLauncher.metaTargeting.placements.facebookPositions"),data:Qi(pg,s),value:e.facebookPositions,onChange:d=>n({facebookPositions:d})}),t.jsx(Yt,{label:s("adLauncher.metaTargeting.placements.instagramPositions"),data:Qi(gg,s),value:e.instagramPositions,onChange:d=>n({instagramPositions:d})}),t.jsx(Yt,{label:s("adLauncher.metaTargeting.placements.audienceNetworkPositions"),data:Qi(mg,s),value:e.audienceNetworkPositions,onChange:d=>n({audienceNetworkPositions:d})})]})]})}function Sb({setStep:e}){const n=xe();yt();const{t:a}=de(),{isMobile:i,formStyle:s,scrollStyle:r,shellStyle:o}=ze({pinFooter:!0}),{brandId:c}=ve(),{selectedCampaignObjectives:d,launchIntoExistingMetaCampaign:m,selectedCampaign:h,selectedAdLauncherCampaignId:p,selectedAdLauncherChannel:l,metaManagedAccount:b,lastLaunchError:u,metaCampaignFormValues:y}=re(Z=>Z.adGallery),{countries:I,pixels:C,permissionBlocked:E,permissionError:P}=rd(c,b,{needsCountries:!0,needsPixels:Ed(d)}),D=xn(),G=So(d),_=_l(d),O=kp(d),f=jf({launchIntoExisting:m,campaign:h}),k=!m||f,R=wl(d),{data:B,isLoading:$}=Ay(c,l[0],_??void 0),[J,z]=qe.useState("Daily"),[V]=qe.useState(iu),N=su(y,V),[L,x]=qe.useState(N.ageMin),[v,T]=qe.useState(N.ageMax),[H,F]=qe.useState(N.gender),[w,K]=qe.useState((y==null?void 0:y.budgetOptimizeOn)??!0),[M,ee]=qe.useState((y==null?void 0:y.specialAdCategories)??[]),[ne,X]=qe.useState((y==null?void 0:y.bidStrategy)||"LOWEST_COST_WITHOUT_CAP"),[ie,Q]=qe.useState(y==null?void 0:y.bidAmount),[j,q]=qe.useState((y==null?void 0:y.startDate)||null),[se,le]=qe.useState((y==null?void 0:y.detailedTargeting)??[]),[_e,te]=qe.useState((y==null?void 0:y.placementMode)||"advantage_plus"),[me,Le]=qe.useState((y==null?void 0:y.publisherPlatforms)??[]),[ye,ge]=qe.useState((y==null?void 0:y.facebookPositions)??[]),[Ce,Y]=qe.useState((y==null?void 0:y.instagramPositions)??[]),[ce,Ie]=qe.useState((y==null?void 0:y.audienceNetworkPositions)??[]),[fe,Ee]=qe.useState((y==null?void 0:y.advantageAudience)??!1),W=wt({mode:"uncontrolled",initialValues:{campaignName:"",budgetType:"Daily",budgetAmount:N.dailyBudget??(B==null?void 0:B.minDailyBudget)??0,leadForm:"",adSetName:"",checked:!0,optimizationGoal:Dp(d)??"",pixel:"",countries:[],endDate:""},validate:{campaignName:Z=>Z.length>0?null:a("adLauncher.campaignDetails.campaignName.error"),budgetType:Z=>Z||m&&!f?null:a("adLauncher.campaignDetails.budget.typeError"),budgetAmount:(Z,De)=>m&&!f?null:De.budgetType==="Daily"||f?dc(Z)?null:a("adLauncher.campaignDetails.budget.amountError"):null,pixel:Z=>R&&!String(Z??"").trim()?a("adLauncher.campaignDetails.adSet.promotedPixelRequired"):null,endD
98ate:(Z,De)=>De.budgetType==="Lifetime"?Z?null:a("adLauncher.campaignDetails.endDate.error"):null,adSetName:Z=>Z?null:a("adLauncher.campaignDetails.adSet.nameError"),countries:Z=>Z&&Z.length>0?null:"Select at least one country",optimizationGoal:Z=>Z?null:a("adLauncher.campaignDetails.adSet.optimizationGoalError")}});S.useEffect(()=>{B&&N.dailyBudget===void 0&&W.setValues({budgetAmount:(B==null?void 0:B.minDailyBudget)||0})},[B]),S.useEffect(()=>{h&&W.setValues({campaignName:h==null?void 0:h.label})},[h]),S.useEffect(()=>{const Z=O.map(De=>De.value);Z.includes(W.getValues().optimizationGoal)||W.setValues({optimizationGoal:Z[0]??""})},[G]);const oe=Z=>{n(Pp({campaignName:Z.campaignName,budgetType:Z.budgetType,budgetAmount:parseFloat(String(Z.budgetAmount))||0,adSetName:Z.adSetName,optimizationGoal:Z.optimizationGoal,pixel:Z.pixel,countries:Z.countries,checked:Z.checked,endDate:Z.endDate,ageMin:L,ageMax:v,gender:H,budgetOptimizeOn:w,specialAdCategories:M,bidStrategy:ne,bidAmount:ie,startDate:aa(j)??"",detailedTargeting:se,placementMode:_e,publisherPlatforms:me,facebookPositions:ye,instagramPositions:Ce,audienceNetworkPositions:ce,advantageAudience:fe}))},ue=async Z=>{if(E||!ys(L,v)||Zu(d,Z.pixel)||f&&!dc(Z.budgetAmount)||Mi(ne,ie))return;n(Xe(null)),oe(Z);const De=Mo({countries:Z.countries,ageMin:L,ageMax:v,gender:H,detailedTargeting:se,placementMode:_e,publisherPlatforms:me,facebookPositions:ye,instagramPositions:Ce,audienceNetworkPositions:ce,advantageAudience:fe},{includeEmptyLists:!m});if(b){Ti(),n(nt(3));return}let Ge={};if(m)Ge={brand_id:c,channel:"facebook",ad_group_spec:Ms({campaign_id:p,name:Z.adSetName,optimization_goal:Z.optimizationGoal,targeting:De,promoted_pixel_id:Z.pixel,...Ju({include:f,budgetAmount:Z.budgetAmount}),...Cf({isAbo:f,bidStrategy:ne,bidAmount:ie}),...k?ar({startDate:j,endDate:Z.endDate}):{}})};else{const we=ih({budgetOptimizeOn:w,budgetType:Z.budgetType,budgetAmount:Z.budgetAmount,endDate:Z.endDate}),be=wf({budgetOptimizeOn:w,bidStrategy:ne,bidAmount:ie});Ge={brand_id:c,channel:"facebook",campaign_spec:{name:Z.campaignName,objective:_,...we.campaign,...be.campaign,...ah(M),...ar({startDate:j,endDate:Z.endDate}),status_on_launch:Z.checked?"ACTIVE":"PAUSED"},ad_group_spec:Ms({name:Z.adSetName,optimization_goal:Z.optimizationGoal,targeting:De,promoted_pixel_id:Z.pixel,...we.adGroup,...be.adGroup,...ar({startDate:j,endDate:Z.endDate})})}}try{const we=await D.mutateAsync(Ge),be=we.adGroupId,Je=we.campaignId||p,St=we.objective||d;n(Ci(Je)),n(ya(be)),n(Or(dx(we)??null)),n(Zt(St)),n(Ei({...h||{},label:Z.campaignName||(h==null?void 0:h.label),value:Je})),Ti(),n(nt(3))}catch(we){const be=$n(we,a("adLauncher.launchAd.launchFailedFallback"));console.error("Launch error:",be.message),n(Xe(be)),he.show({title:a("adLauncher.errors.title"),message:be.message,color:"red"})}};return t.jsx(A,{style:o,children:t.jsxs("form",{style:s,onSubmit:W.onSubmit(Z=>{ue(Z)}),children:[t.jsxs(A,{style:r,children:[t.jsx(Ct,{width:600,children:t.jsxs(ae,{gap:i?"md":"lg",children:[To(V)&&t.jsx(Yh,{params:V}),t.jsx(pe,{label:a("adLauncher.campaignDetails.campaignName.label"),withAsterisk:!0,readOnly:m,placeholder:a("adLauncher.campaignDetails.campaignName.placeholder"),...W.getInputProps("campaignName")}),!m&&t.jsxs(ae,{gap:"md",children:[w&&t.jsxs(t.Fragment,{children:[t.jsxs(U,{gap:"lg",align:"flex-end",children:[t.jsx(Re,{style:{flex:1},disabled:!0,defaultValue:"Daily",label:a("adLauncher.campaignDetails.budget.typeLabel"),placeholder:a("adLauncher.campaignDetails.budget.typePlaceholder"),data:["Daily","Lifetime"],onChange:Z=>{Z&&(W.setFieldValue("budgetType",Z),z(Z))}}),J==="Daily"?t.jsx(at,{withAsterisk:!0,style:{flex:1},label:a("adLauncher.campaignDetails.budget.amountLabel"),placeholder:(B==null?void 0:B.currency)||a("adLauncher.campaignDetails.budget.amountPlaceholder"),prefix:`${(B==null?void 0:B.currency)||"$"} `,...W.getInputProps("budgetAmount"),min:(B==null?void 0:B.minDailyBudget)||5}):t.jsx(an,{valueFormat:"YYYY MMM DD",label:a("adLauncher.campaignDetails.endDate.title"),style:{flex:1},placeholder:a("adLauncher.campaignDetails.endDate.placeholder"),...W.getInputProps("endDate")})]}),t.jsx(g,{size:"xs",mt:"xxs",children:a("adLauncher.campaignDetails.budget.dailyBudgetHelperText",{currency:(B==null?void 0:B.currency)||"$",amount:Number(W.getValues().budgetAmount)||0,maxDailySpend:Number(W.getValues().budgetAmount)*1.75||0,maxWeeklySpend:Number(W.getValues().budgetAmount)*7||0})})]}),t.jsx(rt,{label:a("adLauncher.campaignDetails.campaignName.statusOnLaunch"),defaultChecked:!0,...W.getInputProps("checked")}),t.jsx(_t,{})]}),t.jsxs(ae,{gap:4,children:[t.jsx(g,{fw:600,size:"sm",children:a("adLauncher.campaignDetails.adSet.title")}),t.jsx(g,{size:"xs",c:"dimmed",children:a("adLauncher.campaignDetails.adSet.description")})]}),!G&&t.jsx(Xt,{color:"red",variant:"light",children:a("adLauncher.campaignDetails.adSet.unknownObjective",{objective:d||"â"})}),t.jsx(Tn,{error:P??u,onDismiss:u&&!P?()=>n(Xe(null)):void 0}),t.jsx(pe,{withAsterisk:!0,label:a("adLauncher.campaignDetails.adSet.nameLabel"),placeholder:a("adLauncher.campaignDetails.adSet.namePlaceholder"),...W.getInputProps("adSetName")}),(f||!m&&!w)&&t.jsx(ae,{gap:"xs",children:t.jsx(at,{withAsterisk:!0,w:"100%",label:a("adLauncher.campaignDetails.adSet.aboBudgetLabel"),description:a("adLauncher.campaignDetails.adSet.aboBudgetDescription"),placeholder:(B==null?void 0:B.currency)||a("adLauncher.campaignDetails.budget.amountPlaceholder"),prefix:`${(B==null?void 0:B.currency)||"$"} `,...W.getInputProps("budgetAmount"),min:(B==null?void 0:B.minDailyBudget)||5})}),!b&&Ed(d)&&t.jsx(Re,{w:"100%",withAsterisk:R,label:a("adLauncher.campaignDetails.adSet.promotedPixel"),description:R?a("adLauncher.campaignDetails.adSet.promotedPixelSalesHint"):void 0,placeholder:a("adLauncher.campaignDetails.adSet.promotedPixelPlaceholder"),data:C,...W.getInputProps("pixel")}),t.jsx(Re,{w:"100%",withAsterisk:!0,label:a("adLauncher.campaignDetails.adSet.optimizationGoals"),placeholder:a("adLauncher.campaignDetails.adSet.optimizationGoals"),data:O,...W.getInputProps("optimizationGoal")}),t.jsx(Yt,{withAsterisk:!0,w:"100%",label:a("adLauncher.campaignDetails.adSet.country"),description:a("adLauncher.campaignDetails.adSet.countryDescription"),placeholder:a("adLauncher.campaignDetails.adSet.countryPlaceholder"),data:I,...W.getInputProps("countries"),searchable:!0}
98),t.jsx(Xh,{ageMin:L,ageMax:v,gender:H,onAgeMinChange:x,onAgeMaxChange:T,onGenderChange:F,ageError:ys(L,v)?null:a("adLauncher.metaTargeting.ageRangeError")}),t.jsx(Zh,{values:{budgetOptimizeOn:w,specialAdCategories:M,bidStrategy:ne,bidAmount:ie,startDate:j,endDate:W.getValues().endDate,detailedTargeting:se,placementMode:_e,publisherPlatforms:me,facebookPositions:ye,instagramPositions:Ce,audienceNetworkPositions:ce,advantageAudience:fe},onChange:Z=>{Z.budgetOptimizeOn!==void 0&&K(Z.budgetOptimizeOn),Z.specialAdCategories&&ee(Z.specialAdCategories),Z.bidStrategy!==void 0&&X(Z.bidStrategy),Z.bidAmount!==void 0&&Q(Z.bidAmount),Z.startDate!==void 0&&q(Z.startDate),Z.endDate!==void 0&&W.setFieldValue("endDate",aa(Z.endDate)??""),Z.detailedTargeting&&le(Z.detailedTargeting),Z.placementMode&&te(Z.placementMode),Z.publisherPlatforms&&Le(Z.publisherPlatforms),Z.facebookPositions&&ge(Z.facebookPositions),Z.instagramPositions&&Y(Z.instagramPositions),Z.audienceNetworkPositions&&Ie(Z.audienceNetworkPositions),Z.advantageAudience!==void 0&&Ee(Z.advantageAudience)},showBudgetLevel:!m,showSchedule:k})]})}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:a("adLauncher.campaignDetails.navigation.back"),nextLabel:a("adLauncher.campaignDetails.navigation.next"),onBack:()=>{oe(W.getValues()),n(m?nt(2):nt(5))},nextType:"submit",nextLoading:D.isPending,nextDisabled:!G||E||!ys(L,v)||Mi(ne,ie)})]})})}const Ic=30;function Tc(){const{t:e}=de(),n=xe(),{formStyle:a,isMobile:i,scrollStyle:s,shellStyle:r}=ze({pinFooter:!0}),[o,c]=qe.useState("Daily"),[d,m]=qe.useState(0),[h,p]=qe.useState(""),{googleAdLauncher:l,googleAdLauncherStepNumber:b,launchIntoExistingGoogleCampaign:u,selectedCampaign:y}=re(f=>f.adGallery),{brandId:I}=ve(),{data:C}=Ot(I),E=wt({initialValues:{campaignName:"",budgetType:"Daily",budgetAmount:"",adSetName:"",campaignStatusOnLaunch:!0,companyName:""},validate:{campaignName:f=>f.length>0||u?null:e("adLauncher.campaignDetails.campaignName.error"),budgetType:f=>f||u?null:e("adLauncher.campaignDetails.budget.typeError"),budgetAmount:(f,k)=>u?null:k.budgetType==="Daily"?/^\d+(\.\d{1,2})?$/.test(f)?null:e("adLauncher.campaignDetails.budget.amountError"):null,adSetName:f=>f?null:e("adLauncher.campaignDetails.adSet.nameError")}}),P=qe.useRef(!1);qe.useEffect(()=>{if(!l||P.current)return;const f=l.campaignName||"";E.setValues({campaignName:f,budgetType:l.budgetType||"Daily",budgetAmount:l.budgetAmount||"",adSetName:l.adSetName||"",campaignStatusOnLaunch:l.campaignStatusOnLaunch??!0,companyName:(C==null?void 0:C.name)??l.companyName}),m(f.length),p(l.budgetAmount||""),c(l.budgetType||"Daily"),P.current=!0},[l,C==null?void 0:C.name]),qe.useEffect(()=>{!(C!=null&&C.name)||E.values.companyName||E.setFieldValue("companyName",C.name)},[C==null?void 0:C.name]),qe.useEffect(()=>{var f;y&&(E.setValues({campaignName:y==null?void 0:y.label}),m(((f=y==null?void 0:y.label)==null?void 0:f.length)??0))},[y]);const D=Number(h)||0,G=f=>{n(Ol(f)),n(Ze(b+1))},_=i?t.jsxs(U,{justify:"space-between",align:"center",w:"100%",children:[t.jsx(g,{component:"span",size:"sm",fw:500,children:e("adLauncher.campaignDetails.campaignName.label")}),t.jsx(g,{component:"span",size:"xs",c:"dimmed",children:e("adLauncher.campaignDetails.campaignName.charCount",{count:d,max:Ic})})]}):e("adLauncher.campaignDetails.campaignName.label"),O=i?t.jsxs(g,{component:"span",size:"sm",children:[t.jsx(g,{component:"span",fw:700,children:e("adLauncher.campaignDetails.campaignName.statusOnLaunchActive")})," ",e("adLauncher.campaignDetails.campaignName.statusOnLaunchSuffix")]}):e("adLauncher.campaignDetails.campaignName.statusOnLaunch");return t.jsx(A,{style:r,children:t.jsxs("form",{style:a,onSubmit:E.onSubmit(f=>{G(f)}),children:[t.jsxs(A,{style:s,children:[t.jsxs(Ct,{width:600,children:[t.jsx(pe,{label:_,withAsterisk:!i,placeholder:e("adLauncher.campaignDetails.campaignName.placeholder"),readOnly:u,maxLength:Ic,...E.getInputProps("campaignName"),onChange:f=>{const k=f.currentTarget.value;E.setFieldValue("campaignName",k),m(k.length)}}),!u&&t.jsxs(t.Fragment,{children:[t.jsxs(A,{mt:"lg",children:[i?t.jsxs(ae,{gap:"md",children:[t.jsx(Re,{disabled:!0,defaultValue:"Daily",label:e("adLauncher.campaignDetails.budget.title"),placeholder:e("adLauncher.campaignDetails.budget.typePlaceholder"),data:["Daily Budget","Lifetime"],value:"Daily Budget",onChange:f=>
98{if(f){const k=f.startsWith("Daily")?"Daily":"Lifetime";E.setFieldValue("budgetType",k),c(k)}}}),t.jsx(pe,{withAsterisk:!i,label:e("adLauncher.campaignDetails.budget.title"),placeholder:"0.00",leftSection:t.jsx(g,{size:"sm",children:"$"}),rightSection:t.jsx(g,{size:"sm",c:"dimmed",pr:"xs",children:"USD"}),rightSectionWidth:52,...E.getInputProps("budgetAmount"),onChange:f=>{const k=f.currentTarget.value;E.setFieldValue("budgetAmount",k),p(k)}})]}):t.jsxs(U,{gap:"lg",align:"flex-end",children:[t.jsx(Re,{style:{flex:1},disabled:!0,defaultValue:"Daily",label:e("adLauncher.campaignDetails.budget.typeLabel"),placeholder:e("adLauncher.campaignDetails.budget.typePlaceholder"),data:["Daily","Lifetime"],onChange:f=>{f&&(E.setFieldValue("budgetType",f),c(f))}}),o==="Daily"?t.jsx(pe,{withAsterisk:!0,style:{flex:1},label:e("adLauncher.campaignDetails.budget.amountLabel"),placeholder:e("adLauncher.campaignDetails.budget.amountPlaceholder"),...E.getInputProps("budgetAmount")}):t.jsx(an,{valueFormat:"YYYY MMM DD",label:e("adLauncher.campaignDetails.endDate.title"),style:{flex:1},placeholder:e("adLauncher.campaignDetails.endDate.placeholder"),...E.getInputProps("endDate")})]}),t.jsx(g,{size:"xs",c:"dimmed",mt:4,children:e("adLauncher.campaignDetails.budget.dailyBudgetHelperText",{currency:"$",amount:D,maxDailySpend:D*1.75||0,maxWeeklySpend:D*7||0})})]}),t.jsx(rt,{mt:"lg",label:O,defaultChecked:!0,...E.getInputProps("campaignStatusOnLaunch",{type:"checkbox"})}),t.jsx(pe,{mt:"lg",withAsterisk:!i,label:e("adLauncher.campaignDetails.budget.companyName"),placeholder:e("adLauncher.campaignDetails.budget.companyNamePlaceholder"),...E.getInputProps("companyName")})]}),t.jsx(pe,{mt:"lg",withAsterisk:!i,label:e(i?"adLauncher.campaignDetails.adSet.nameLabelMobile":"adLauncher.campaignDetails.adSet.nameLabel"),placeholder:e(i?"adLauncher.campaignDetails.adSet.namePlaceholderMobile":"adLauncher.campaignDetails.adSet.namePlaceholder"),...E.getInputProps("adSetName")})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:e("adLauncher.campaignDetails.navigation.back"),nextLabel:e("adLauncher.campaignDetails.navigation.next"),onBack:()=>n(Ze(b-1)),nextType:"submit"})]})})}function Jh(e){if(e.croppedUrl)return e.croppedUrl;const n=Lt(),a=e.previewStorageKey;return!a||a==="public/"?"":a.includes("public/")?`${bt[n]}/${a}`:`${At[n]}/${a}`}function Mc(e){return Jh(e)}function jb(e){return e.croppedUrl?e.croppedUrl:st(Jh(e))}function Qh(e){return e?e.replace(/x/i,"X"):"â"}function ep(e){const n=ft(e);if(n==="square")return"1:1";if(n==="landscape")return"1.91:1";if(!e)return"â";const[a,i]=e.split("x").map(Number);if(!a||!i)return"â";const s=_b(Math.round(a),Math.round(i));return`${a/s}:${i/s}`}function vb(e){const n=ft(e.size);return n!=="square"&&n!=="landscape"}function hd(e,n){if(!(n!=null&&n.length))return e;const a=new Map(n.map(i=>[String(i.sourceAdId),i]));return e.map(i=>{const s=a.get(String(i.id));return s?{...i,previewStorageKey:s.previewStorageKey,size:s.size,croppedUrl:s.url}:i})}function _b(e,n){let a=Math.abs(e),i=Math.abs(n);for(;i;){const s=i;i=a%i,a=s}return a||1}const wb=["MAXIMIZE_CONVERSIONS","MAXIMIZE_CONVERSION_VALUE"],Cb=[{value:"1000",label:"English"},{value:"1003",label:"Spanish"},{value:"1002",label:"French"},{value:"1001",label:"German"},{value:"1004",label:"Italian"},{value:"1014",label:"Portuguese"},{value:"1005",label:"Japanese"},{value:"1012",label:"Korean"},{value:"1017",label:"Chinese (simplified)"},{value:"1018",label:"Chinese (traditional)"},{value:"1009",label:"Dutch"},{value:"1036",label:"Hindi"}],Eb=e=>{if(!(e==null||!Number.isFinite(e)||e<=0))return Math.round(e*1e6)},Ib=e=>{const n=[],a=[],i=new Set,s=new Set;for(const r of e||[]){const o=String(r.resourceName||r.resource_name||"").trim(),c=String(r.criterionId||r.criterion_id||"").trim(),d=String(r.countryCode||r.country_code||"").trim();o&&!i.has(o)?(i.add(o),n.push(o)):d&&!i.has(d)&&(i.add(d),n.push(d)),c&&!s.has(c)?(s.add(c),a.push(c)):d&&!s.has(d)&&(s.add(d),a.push(d))}return{geo_targets:n,location_ids:a}},Tb=e=>{var d,m,h,p,l,b;const{geo_targets:n,location_ids:a}=Ib(e.countries),i={};n.length>0&&(i.geo_targets=n),a.length>0&&(i.location_ids=a);const s=(((d=e.settings)==null?void 0:d.languages)||[]).map(u=>
98String(u).trim()).filter(Boolean);s.length>0&&(i.languages=s,i.language_constants=s);const r=String(((m=e.settings)==null?void 0:m.biddingStrategyType)||"MAXIMIZE_CONVERSIONS").trim();i.bidding_strategy_type=r||"MAXIMIZE_CONVERSIONS";const o=Eb((h=e.settings)==null?void 0:h.targetCpa);if(r==="MAXIMIZE_CONVERSIONS"&&o!=null&&(i.target_cpa=(p=e.settings)==null?void 0:p.targetCpa,i.target_cpa_micros=o),r==="MAXIMIZE_CONVERSION_VALUE"&&((l=e.settings)==null?void 0:l.targetRoas)!=null){const u=Number(e.settings.targetRoas);Number.isFinite(u)&&u>0&&(i.target_roas=u)}const c=(((b=e.settings)==null?void 0:b.conversionGoals)||[]).map(u=>String(u).trim()).filter(Boolean);return c.length>0&&(i.conversion_goals=c),i};function Mb(e){return e.createNewGoogleCampaign?"new_campaign":e.launchIntoExistingGoogleCampaign?"existing_campaign_new_ad_group":"existing_ids"}function Oi(e){const n=e.previewStorageKey||"";return n.includes("public/")?`${dt}${n}`:`${dt}public/${n}`}function Nb(e){var i,s;const n=[],a=r=>{const o=r.adsetSpecFragment||r.adset_spec_fragment||{};Object.keys(o).length>0&&n.push(o)};return(i=e.selectedCountries)==null||i.forEach(a),(s=e.selectedResults)==null||s.forEach(a),n}function kb(e){return!e}function Db(e){return e.createNewCampaign?{loadingStep:e.headlinesStep+2,successStep:e.headlinesStep+3,failureStep:e.headlinesStep}:{loadingStep:e.headlinesStep+1,successStep:e.launchIntoExistingCampaign?8:7,failureStep:e.headlinesStep}}function Pb(e){const n=e.imageAds.map(i=>({ad_name:e.campaignName,ad_format:"IMAGE",headlines:e.headlines,descriptions:e.descriptions,business_name:e.companyName,media_url:Oi(i),logo_image_url:e.primaryLogoUrl,final_urls:[e.destinationUrl],status_on_launch:e.adStatusOnLaunch,...e.adGroupId?{ad_group_id:e.adGroupId}:{}})),a=e.videoAds.map(i=>({ad_name:e.campaignName,ad_format:"VIDEO",headlines:e.headlines,long_headlines:e.longHeadlines,descriptions:e.descriptions,business_name:e.companyName,media_url:Oi(i),logo_image_url:e.primaryLogoUrl,final_urls:[e.destinationUrl],status_on_launch:e.adStatusOnLaunch,...e.adGroupId?{ad_group_id:e.adGroupId}:{}}));return[...n,...a]}const Nc=e=>e&&e.length>0?{targeting_fragments:e}:{};function Ob(e){const n=Mx(...e.campaignTypeSources),a=kx(n),i=e.brandId,s=e.managedDateRange??{},r=d=>Pb({campaignName:e.campaignName,headlines:e.headlines,longHeadlines:e.longHeadlines,descriptions:e.descriptions,companyName:e.companyName,destinationUrl:e.destinationUrl,primaryLogoUrl:e.primaryLogoUrl,adStatusOnLaunch:e.adStatusOnLaunch,imageAds:e.imageAds,videoAds:e.videoAds,adGroupId:d});if(a)return e.mode==="new_campaign"?{brand_id:i,channel:"google",campaign_spec:{campaign_name:e.campaignName,campaign_type:n,budget_amount:Number(e.budgetAmount),status_on_launch:e.campaignStatusOnLaunch,...s},ad_group_spec:{ad_group_name:e.adSetName,status_on_launch:e.adStatusOnLaunch,...Nc(e.targetingFragments)},ad_specs:r()}:e.mode==="existing_campaign_new_ad_group"?{brand_id:i,channel:"google",campaign_spec:{campaign_id:e.campaignId,campaign_type:n},ad_group_spec:{ad_group_name:e.adSetName,status_on_launch:e.adStatusOnLaunch,...Nc(e.targetingFragments)},ad_specs:r()}:{brand_id:i,channel:"google",campaign_spec:{campaign_id:e.campaignId,campaign_type:n},ad_specs:r(e.adGroupId)};const o={link_url:e.destinationUrl,headlines:e.headlines,long_headlines:e.longHeadlines,descriptions:e.descriptions,marketing_images:e.landscapeImageUrls,square_marketing_images:e.squareImageUrls,portrait_marketing_images:e.portraitImageUrls,business_name:e.companyName,logo_image:e.squareLogoUrls,landscape_logos:e.landscapeLogoUrls,status_on_launch:e.adStatusOnLaunch,youtube_videos:e.videoAds.map(d=>Oi(d))},c=n==="PERFORMANCE_MAX"?Tb({countries:e.pmaxCountries,settings:e.pmaxSettings}):{};return e.mode==="new_campaign"?{brand_id:i,channel:"google",campaign_spec:{budget_amount:Number(e.budgetAmount),campaign_name:e.campaignName,campaign_type:n,status_on_launch:e.campaignStatusOnLaunch,...s,...c},ad_group_spec:{ad_group_name:e.adSetName,...o}}:e.mode==="existing_campaign_new_ad_group"?{brand_id:i,channel:"google",campaign_spec:{campaign_id:e.campaignId,campaign_type:n},ad_group_spec:{ad_group_name:e.adSetName,...o}}:{brand_id:i,channel:"google",campaign_spec:{campaign_id:e.campaignId,campaign_type:n},ad_specs:[{ad_group_id:e.adGroupId,link_url:e.destinationUrl,headlines:e.headlines,long_headlines:e.longHeadlines,descriptions:e.descriptions,marketing_images:e.landscapeImageUrls,square_marketing_images:e.squareImageUrls,portrait_marketing_images:e.portraitImageUrls,business_name:e.companyName,logo_image:e.squareLogoUrls,landscape_logos:e.landscapeLogoUrls,status_on_launch:e.adStatusOnLaunch,youtube_videos:e.videoAds.map(d=>Oi(d))}]}}const ur=Oi,kc=(e=0)=>({isFullSuccess:!1,adsLaunchedCount:e});function pd(){const{t:e}=de(),n=xe(),{brandId:a}=ve();yt();const i=e("adLauncher.launchAd.launchFailedFallback"),s=xn(),r=Bi(),o=En(),c=localStorage.getItem("user");JSON.parse(c||"{}");const d=re(J=>J.adGallery),m=re(J=>J.adLauncher),h=m.channel==="google",p=h?m.google.form:d.googleAdLauncher,l=h?m.google.adsSelection:d.googleAdsSelection,b=h?m.google.logos:d.googleAdLauncherLogos,u=h?m.google.logosByDim:d.googleAdLauncherLogosByDim,y=h?m.google.campaignType:d.googleCampaignType,I=y==="demandGen"?"Demand Gen":y==="performanceMax"?"Performance Max":"Traffic",C=h?m.google.durationDays:d.googleDurationDays,E=h?m.google.skipVideos:d.googleSkipVideos,{createNewGoogleCampaign:P,launchIntoExistingGoogleCampaign:D,googleTargeting:G,selectedAdLauncherCampaignId:_,selectedAdLauncherAdGroupId:O,selectedCampaignObjectives:f}=d,k=nd(y,f),R=kb(h),{adInstanceItems:B}=re(J=>J.projectView);return{launch:async(J,z,V,N)=>{var x,v,T;const L=H=>{n(Xe(H)),n(h?Id(!0):Td(!0))};try{n(Xe(null)),h?(n(Id(!1)),n($t(J))):(n(Td(!1)),n(Ze(J)));const{budgetAmount:H,campaignName:F,adSetName:w,companyName:K,headlines:M,longHeadlines:ee,descriptions:ne,destinationUrl:X,adStatusOnLaunch:ie}={...p,...N},{squareAds:Q=[],landscapeAds:j=[],portraitAds:q=[],ads:se=[]}=l,le=h?hd(se,m.google.adsSelection.croppedVariants):se,_e=E?[]:le.filter(ke=>Te(ke.previewStorageKey)),te=le.filter(ke=>!Te(ke.previewStorageKey)),me=te.filter(ke=>ft(ke.size)==="square"),Le=te.filter(ke=>ft(ke.size)==="landscape"),ye=Q.length>0?Q:me.length>0?me:te,ge=j.length>0?j:Le.length>0?Le:te,Ce=q,{squareLogos:Y=[],landscapeLogos:ce=[]}=u,Ie=((x=Y[0])==null?void 0:x.url)||((v=b[0])==null?void 0:v.url)||"",fe=ie?"ENABLED":"PAUSED",Ee=p.campaignStatusOnLaunch?"ENABLED":"PAUSED",W=Nb(G),oe=(()=>
98{if(!h)return;const ke=pn=>String(pn).padStart(2,"0"),zt=new Date,Gt=new Date;Gt.setDate(Gt.getDate()+(C||1));const Dn=pn=>`${pn.getFullYear()}-${ke(pn.getMonth()+1)}-${ke(pn.getDate())}`;return{start_date:Dn(zt),end_date:Dn(Gt)}})(),ue=Ob({brandId:a,mode:Mb({createNewGoogleCampaign:P,launchIntoExistingGoogleCampaign:D}),campaignTypeSources:[y,f],campaignId:_,adGroupId:O,campaignName:F,adSetName:w,budgetAmount:Number(H),campaignStatusOnLaunch:Ee,adStatusOnLaunch:fe,headlines:M,longHeadlines:ee,descriptions:ne,destinationUrl:X,companyName:K,imageAds:te,videoAds:_e,landscapeImageUrls:ge.map(ke=>ur(ke)),squareImageUrls:ye.map(ke=>ur(ke)),portraitImageUrls:Ce.map(ke=>ur(ke)),squareLogoUrls:P||D?(Y==null?void 0:Y.map(ke=>ke.url))||[]:(b==null?void 0:b.map(ke=>ke.url))||[],landscapeLogoUrls:(ce==null?void 0:ce.map(ke=>ke.url))||[],primaryLogoUrl:P||D?Ie:((T=b==null?void 0:b[0])==null?void 0:T.url)||Ie,targetingFragments:W,managedDateRange:oe,pmaxCountries:G.selectedCountries,pmaxSettings:{languages:G.languages,biddingStrategyType:G.biddingStrategyType,targetCpa:G.targetCpa,targetRoas:G.targetRoas,conversionGoals:G.conversionGoals}}),Z=await s.mutateAsync(ue),De=[...Q,...j,...q,..._e],Ge=k==="DEMAND_GEN"?[...te,..._e]:De,we=k==="DEMAND_GEN"&&Array.isArray(ue.ad_specs)?ue.ad_specs.length:k==="DEMAND_GEN"?Ge.length:1,be=Mn(Z),Je=Nn(Ge,be,we);if(!be.isFullSuccess){const ke=kn(be,i,e);if(Oe(Md,{brandId:a,error_message:ke.message}),he.show({title:e("adLauncher.errors.title"),message:ke.message,color:"red"}),L(ke),h?await r("failed",{campaignId:be.campaignId||null,adsLaunchedCount:be.adsLaunchedCount}):R&&await r("failed",{channel:"google",title:Un(F,I),currentStep:V??J,payloadJson:Hn({channel:"google",selectedAdIds:Ge.map(zt=>zt.id).filter(Boolean)}),campaignId:be.campaignId||_||null,adsLaunchedCount:be.adsLaunchedCount}),Je.length){await Promise.all(Je.map(async Gt=>{const{__typename:Dn,...pn}=Gt;"id"in pn&&await o.mutateAsync({id:pn.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const zt=B==null?void 0:B.map(Gt=>Je.find(Dn=>"id"in Dn&&Dn.id===Gt.id)?{...Gt,status:Fe.launched,updatedAt:new Date().toISOString()}:Gt);n(mt(zt))}return kc(be.adsLaunchedCount)}he.show({title:"Ads launched successfully",message:"Ads launched successfully",color:"green"}),Oe(Op,{brandId:a}),h?(n($t(z)),await r("launched",{campaignId:be.campaignId||null,adsLaunchedCount:be.adsLaunchedCount})):(n(Ze(z)),R&&await r("launched",{channel:"google",title:Un(F,I),currentStep:z,payloadJson:Hn({channel:"google",selectedAdIds:Ge.map(ke=>ke.id).filter(Boolean)}),campaignId:be.campaignId||_||null,adsLaunchedCount:be.adsLaunchedCount}));const St=!0;Promise.all(Je.map(async ke=>{const{__typename:zt,...Gt}=ke;"id"in Gt&&await o.mutateAsync({id:Gt.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const Vt=B==null?void 0:B.map(ke=>Je.find(zt=>"id"in zt&&zt.id===ke.id)?{...ke,status:Fe.launched,updatedAt:new Date().toISOString()}:ke);return n(mt(Vt)),setTimeout(()=>{n(h?wi():bo()),n(wn()),n(fn(!1))},1e3),{isFullSuccess:St,adsLaunchedCount:be.adsLaunchedCount}}catch(H){const F=$n(H,i);return console.error("Launch error:",F.message),Oe(Md,{brandId:a,error_message:cn(H,i)}),he.show({title:e("adLauncher.errors.title"),message:cn(H,i),color:"red"}),L(F),h?r("failed"):R&&r("failed",{channel:"google",title:Un(p.campaignName,I),currentStep:V??J,payloadJson:Hn({channel:"google",selectedAdIds:[]}),campaignId:_||null,adsLaunchedCount:0}),kc()}}}}function hr(){var N,L;const e=xe(),{googleAdLauncher:n,googleAdLauncherStepNumber:a,googleAdsSelection:i,createNewGoogleCampaign:s,launchIntoExistingGoogleCampaign:r,googleCampaignType:o,googleManagedAccount:c,lastLaunchError:d,selectedCampaignObjectives:m}=re(x=>x.adGallery),{t:h}=de(),{formStyle:p,scrollStyle:l,shellStyle:b}=ze({pinFooter:!0}),{launch:u}=pd(),{brandOverviewData:y}=re(x=>x.library),{brandId:I}=ve(),C=i.squareAds||[],E=i.landscapeAds||[],P=C[0]??E[0]??((N=i.ads)==null?void 0:N[0]),{data:D}=Ot(I),[G,_]=S.useState(!1),O=S.useRef(null),f=nd(o,m),k=Hu({product:f,mode:Hx({createNewCampaign:s,launchIntoExistingCampaign:r}),hasVideo:(i.ads||[]).some(x=>Te(x.previewStorageKey))}),R={maxHeadlines:ha,maxLongHeadlines:Yi,maxDescriptions:Xi},B=(x,v)=>{const T=uf(x,v,k,R);if(!T)return null;if(x==="destinationUrl")return h("adLauncher.googleAdLauncher.adsetHeadlines.destinationUrl.error");const H=`adLauncher.googleAdLauncher.adsetHeadlines.${x}`;return T==="max"?h(`${H}.maxError`,{max:x==="headlines"?ha:x==="longHeadlines"?Yi:Xi}):T==="unique"?h(`${H}.uniqueError`):T==="charLimit"?h(`${H}.charLimitError`,{max:x==="headlines"?k.headlineMaxChars:x==="longHeadlines"?k.longHeadlineMaxChars:k.descriptionMaxChars}):h(`${H}.error`,{min:x==="headlines"?k.minHeadlines:x==="longHeadlines"?k.minLongHeadlines:k.minDescriptions})},$=wt({initialValues:{headlines:["","",""],longHeadlines:[""],descriptions:["",""],destinationUrl:"",adStatusOnLaunch:!0}
98,validate:{headlines:x=>B("headlines",x),longHeadlines:x=>B("longHeadlines",x),descriptions:x=>B("descriptions",x),destinationUrl:x=>B("destinationUrl",x)}});S.useEffect(()=>{if(!n&&!P)return;let x=!1;return(async()=>{var w,K,M,ee;const T=Bh(P);let H={headlines:((w=n==null?void 0:n.headlines)==null?void 0:w.length)>0?n.headlines:T.headlines,longHeadlines:((K=n==null?void 0:n.longHeadlines)==null?void 0:K.length)>0?n.longHeadlines:T.longHeadlines,descriptions:((M=n==null?void 0:n.descriptions)==null?void 0:M.length)>0?n.descriptions:T.descriptions};if(P&&I&&(D==null?void 0:D.name)&&O.current!==P.id&&$h(H,k)){_(!0);const ne=await po({adUrl:un(P),brandId:I,brandName:D.name,language:((ee=D.language)==null?void 0:ee.langCode)||"us-en"});if(x)return;O.current=P.id,ne&&(H=Wh(H,ne)),_(!1)}x||$.setValues({headlines:H.headlines,longHeadlines:H.longHeadlines,descriptions:H.descriptions,destinationUrl:(y==null?void 0:y.url)??(n==null?void 0:n.destinationUrl)??"",adStatusOnLaunch:(n==null?void 0:n.adStatusOnLaunch)??!0})})(),()=>{x=!0,_(!1)}},[P,I,D==null?void 0:D.name,(L=D==null?void 0:D.language)==null?void 0:L.langCode,y==null?void 0:y.url,s,r,o,m,n==null?void 0:n.headlines,n==null?void 0:n.longHeadlines,n==null?void 0:n.descriptions,n==null?void 0:n.destinationUrl,n==null?void 0:n.adStatusOnLaunch]);const J={headlines:ha,longHeadlines:Yi,descriptions:Xi},z=x=>{$.values[x].length>=J[x]||$.insertListItem(x,"")},V=x=>{const v=s?x:{...x,headlines:x.headlines.filter(K=>K.trim()!==""),longHeadlines:x.longHeadlines.filter(K=>K.trim()!==""),descriptions:x.descriptions.filter(K=>K.trim()!=="")};if(e(Ol(v)),s&&c){e(Ze(a+1));return}const T=a,{loadingStep:H,successStep:F,failureStep:w}=Db({headlinesStep:T,createNewCampaign:s,launchIntoExistingCampaign:r});u(H,F,w,{headlines:v.headlines,longHeadlines:v.longHeadlines,descriptions:v.descriptions,destinationUrl:v.destinationUrl,adStatusOnLaunch:v.adStatusOnLaunch}).then(K=>{K.isFullSuccess||e(Ze(w))})};return t.jsx(A,{style:b,children:t.jsxs("form",{onSubmit:$.onSubmit(x=>V(x)),style:p,children:[t.jsxs(A,{style:l,children:[t.jsxs(Ct,{width:600,children:[t.jsx(Tn,{error:d,onDismiss:()=>e(Xe(null))}),G&&t.jsx(g,{size:"sm",c:"dimmed",mb:"sm",children:h("adLauncher.adsetSettings.generatingCopy",{defaultValue:"Generating ad copy..."})}),t.jsxs(A,{children:[t.jsx(g,{fw:600,size:"sm",mb:4,children:h("adLauncher.googleAdLauncher.adsetHeadlines.headlines.text",{min:k.minHeadlines})}),$.values.headlines.map((x,v)=>t.jsx(pe,{placeholder:`Enter Headline ${v+1}`,disabled:G,...$.getInputProps(`headlines.${v}`),mb:"xs"},v)),$.errors.headlines&&t.jsx(g,{c:"var(--mantine-color-error)",size:"xs",children:$.errors.headlines}),t.jsxs(Me,{variant:"subtle",size:"xs",disabled:$.values.headlines.length>=ha,onClick:()=>z("headlines"),children:["+ ",h("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew")]})]}),t.jsxs(A,{mt:"lg",children:[t.jsx(g,{fw:600,size:"sm",mb:4,children:h("adLauncher.googleAdLauncher.adsetHeadlines.longHeadlines.text",{min:k.minLongHeadlines})}),$.values.longHeadlines.map((x,v)=>t.jsx(pe,{placeholder:`Enter Long Headline ${v+1}`,disabled:G,...$.getInputProps(`longHeadlines.${v}`),mb:"xs"},v)),$.errors.longHeadlines&&t.jsx(g,{c:"var(--mantine-color-error)",size:"xs",children:$.errors.longHeadlines}),t.jsxs(Me,{variant:"subtle",size:"xs",disabled:$.values.longHeadlines.length>=Yi,onClick:()=>z("longHeadlines"),children:["+ ",h("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew")]})]}),t.jsxs(A,{mt:"lg",children:[t.jsx(g,{fw:600,size:"sm",mb:4,children:h("adLauncher.googleAdLauncher.adsetHeadlines.descriptions.text",{min:k.minDescriptions})}),$.values.descriptions.map((x,v)=>t.jsx(pe,{placeholder:`Enter Description ${v+1}`,disabled:G,...$.getInputProps(`descriptions.${v}`),mb:"xs"},v)),$.errors.descriptions&&t.jsx(g,{c:"var(--mantine-color-error)",size:"xs",children:$.errors.descriptions}),t.jsxs(Me,{variant:"subtle",size:"xs",disabled:$.values.descriptions.length>=Xi,onClick:()=>z("descriptions"),children:["+ ",h("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew")]})]}),t.jsxs(A,{mt:"lg",children:[t.jsx(g,{fw:600,size:"sm",mb:4,children:h("adLauncher.googleAdLauncher.adsetHeadlines.destinationUrl.text")}),t.jsx(g,{size:"xs",c:"dimmed",mb:4,children:h("adLauncher.googleAdLauncher.adsetHeadlines.destinationUrl.helperText")}),t.jsx(pe,{placeholder:"Enter URL",...$.getInputProps("destinationUrl")})]}),t.jsxs(xt,{mt:"md",children:[t.jsx(g,{fw:600,size:"sm",children:h("adLauncher.googleAdLauncher.adsetHeadlines.adStatusOnLaunch.text")}),t.jsx(rt,{label:"Active",checked:$.values.adStatusOnLaunch,onChange:x=>$.setFieldValue("adStatusOnLaunch",x.currentTarget.checked)})]})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:h("adLauncher.googleAdLauncher.adsetHeadlines.common.back"),nextLabel:h("adLauncher.googleAdLauncher.adsetHeadlines.common.next"),onBack:()=>
98e(Ze(a-1)),nextType:"submit",nextDisabled:G,nextLoading:G})]})})}const pr=({adOrientation:e})=>{const n=S.useRef(null),{adInstanceItems:a}=re(te=>te.projectView),i=Lt(),{googleAdLauncherStepNumber:s,googleAdsSelection:r,createNewGoogleCampaign:o,launchIntoExistingGoogleCampaign:c,googleCampaignType:d,googleSkipVideos:m}=re(te=>te.adGallery),{brandId:h}=ve(),p=xe(),{t:l}=de(),[b,u]=S.useState(null),[y,I]=S.useState(null),[C,E]=S.useState(!1),P=_n();r.updatedAds;const D=r.ads,G=r.squareAds??[],_=r.landscapeAds??[],O=G.length>0,f=_.length>0,k=d==="demandGen",R=va("(max-width: 768px)",!1,{getInitialValueInEffect:!1}),B=k?D.length>=1:O&&f&&D.length>0,J=o||c?k?D.length<1:D.length<2||!O||!f:!1,{data:z}=xu(h),{accountId:V}=z||{};S.useMemo(()=>!!V,[V]);const{data:N,isLoading:L,isFetched:x}=mu(h,"youtube"),v=Array.isArray(N)&&N.includes("youtube"),{data:T,fetchNextPage:H,hasNextPage:F,isFetchingNextPage:w,isPending:K}=Cn({mode:"brand",brandId:h}),M=S.useMemo(()=>((T==null?void 0:T.pages)||[]).flatMap(te=>te.items),[T]),ee=te=>te!=null&&te.previewStorageKey&&te.previewStorageKey!=="public/"?te.previewStorageKey.includes("public/")?st(`${bt[i]}/${te.previewStorageKey}`):st(`${At[i]}/${te.previewStorageKey}`):"",ne=te=>{const me=D.some(ye=>ye.id===te.id);let Le;if(me)Le=D.filter(ye=>ye.id!==te.id);else{if(D.length>=20)return;Le=[...D,te]}p(zr({ads:Le})),p(Gr({ads:Le}))},X=S.useMemo(()=>M?M.filter(te=>{const me=Te(te.previewStorageKey),Le=!Te(te.previewStorageKey);return m&&me||me&&te.videoDuration<=10?!1:C?me:Le?!0:me}):[],[M,C,m]);S.useEffect(()=>{C&&(X.length>0||F&&(w||H==null||H()))},[C,X.length,F,w,H]);const ie=Rp(()=>{const te=n.current;if(!te)return;const{scrollTop:me}=te,{scrollHeight:Le}=te,{clientHeight:ye}=te,ge=me/(Le-ye);F&&!w&&H&&ge>.85&&H()},300),Q={default:5,1200:4,1100:3,700:2,500:1},j=()=>{J||(Oe(Rl,{brandId:h}),p(Ze(s+1)))},q=te=>{u(te)},se=te=>{p(jo({open:!0,adsToCrop:[te],step:e==="square"?"squareAds":"landscapeAds"})),I(te)},_e=D.length>0;return t.jsxs(ae,{pos:"relative",style:{flex:1,minHeight:0,overflow:"hidden",paddingBottom:R?Lh:0,boxSizing:"border-box"},children:[t.jsxs(U,{align:"center",justify:"space-between",children:[t.jsx(g,{fw:500,size:"sm",children:l(o?"adLauncher.googleAdLauncher.adsSelection.select2Ads":"adLauncher.googleAdLauncher.adsSelection.selectAds")}),!m&&t.jsx(U,{children:t.jsx(_a,{label:"Show videos only",onChange:te=>E(te.target.checked)})})]}),!v&&t.jsx(A,{bg:"#FFFEEF",style:{border:"1px solid #CAA100",borderRadius:"5px",padding:"8px 12px"},children:t.jsxs(g,{fz:"sm",c:"#CAA100",children:["Videos can't be launched. Connect your YouTube account to launch videos."," ",t.jsx(g,{span:!0,fz:"sm",td:"underline",fw:600,style:{cursor:"pointer"},onClick:()=>P(`/brands/${h}/settings?tab=brandsAndUsers&from=analyze`),c:"#A28100",children:"Connect Now?"})]})}),t.jsxs(Nt,{style:{flex:1,minHeight:0},mb:"md",onScrollPositionChange:ie,viewportRef:n,scrollbars:"y",children:[X.length===0&&(w||F||K)?t.jsx(Sn,{isLoading:!0}):null,X.length===0&&!w&&!F&&!K?t.jsx(Sn,{filtered:((M==null?void 0:M.length)??0)>0}):null,X.length>0&&t.jsx(In,{breakpointCols:Q,className:"my-masonry-grid p-0",columnClassName:"my-masonry-grid_column p-0",children:X==null?void 0:X.map(te=>t.jsx(Ae,{shadow:"sm",padding:"0",withBorder:!0,style:{cursor:Te(te.previewStorageKey)&&!v?"not-allowed":"pointer",borderColor:D.some(me=>me.id===te.id)?"#322996":"#e9ecef",borderWidth:D.some(me=>me.id===te.id)?"4px":"1px",padding:D.some(me=>me.id===te.id)?"5px":"0",transition:"all 0.3s ease",opacity:Te(te.previewStorageKey)&&!v?.5:1},onClick:()=>{Te(te.previewStorageKey)&&!v||ne(te)},children:Te(te==null?void 0:te.previewStorageKey)?v?t.jsxs("div",{style:{position:"relative"},children:[t.jsx("video",{src:ee(te),autoPlay:!0,muted:!0,loop:!0,playsInline:!0,style:{height:"auto",borderRadius:"8px",width:"100%",border:"none",objectFit:"contain"}}),t.jsx("div",{style:{position:"absolute",right:"5px",top:"5px"},children:t.jsx(fs,{})})]}):t.jsx(Ri,{label:"Connect your YouTube account to start launching videos. Click to Connect now.This may take you out of the flow and you might lose your progress.",multiline:!0,w:"200px",position:"bottom-end",children:t.jsxs("div",{style:{position:"relative"},children:[t.jsx("video",{src:ee(te),autoPlay:!0,muted:!0,loop:!0,playsInl
98ine:!0,style:{height:"auto",borderRadius:"8px",width:"100%",border:"none",objectFit:"contain"}}),t.jsx("div",{style:{position:"absolute",right:"5px",top:"5px"},children:t.jsx(fs,{})})]})}):t.jsx(ot,{src:ee(te),fit:"contain",loading:"lazy",alt:te.name,style:{maxHeight:"auto",flex:"unset"}})},te.id))})]}),_e&&t.jsxs(ae,{gap:"xs",style:{flex:"0 0 auto",...R?{borderTop:"1px solid var(--mantine-color-gray-3)",paddingTop:12,background:"var(--mantine-color-body)"}:{}},children:[t.jsxs(U,{align:R?"stretch":"center",direction:R?"column":"row",gap:R?"xs":0,children:[t.jsxs(g,{size:"xs",fw:600,style:{flexShrink:0},children:[l("adLauncher.googleAdLauncher.adsSelection.imagesAdset")," (",D.length," / 20)"]}),B?t.jsx(A,{ml:R?0:"sm",bg:"#D6FFE2",p:R?"sm":"5px",style:{borderRadius:"4px",width:R?"100%":void 0,boxSizing:"border-box"},children:t.jsx(g,{c:"#00A42E",size:"xs",style:{lineHeight:1.45},children:l("adLauncher.googleAdLauncher.adsSelection.readyToPost")})}):t.jsx(A,{ml:R?0:"sm",bg:"#FFEFEF",p:R?"sm":"5px",style:{borderRadius:"4px",width:R?"100%":void 0,boxSizing:"border-box"},children:t.jsx(g,{c:"#FF0000",size:"xs",style:{lineHeight:1.45},children:k?l("adLauncher.googleAdLauncher.adsSelection.demandGenImageError",{defaultValue:"Select at least 1 image (1:1 or 1.91:1) or video"}):l("adLauncher.googleAdLauncher.cropModal.launchErrorHelperMessage")})})]}),t.jsx(Es,{withIndicators:!1,slideSize:"80px",height:R?88:100,slideGap:"sm",align:"start",draggable:!0,withControls:!1,styles:{viewport:{overflow:"visible"},root:{flexShrink:0}},children:D.map((te,me)=>{var Le;return t.jsxs(Es.Slide,{style:{position:"relative"},onMouseLeave:()=>!R&&u(null),onMouseEnter:()=>!R&&q(te),children:[t.jsx(A,{style:{width:70,height:70,border:"1px solid #ccc",borderRadius:8,cursor:"pointer",overflow:"hidden"},children:Te(te==null?void 0:te.previewStorageKey)?t.jsx("div",{style:{position:"relative"},children:t.jsx("video",{src:ee(te),autoPlay:!0,muted:!0,loop:!0,playsInline:!0,style:{height:"auto",borderRadius:"8px",width:"100%",border:"none",objectFit:"contain"}})}):t.jsx(ot,{src:((Le=D.find(ye=>ye.id===te.id))==null?void 0:Le.croppedUrl)||ee(te),alt:"Preview",fit:"cover",height:"100%",width:"100%"},te.id)}),((b==null?void 0:b.id)===te.id||R)&&t.jsxs(A,{onClick:()=>{Te(te.previewStorageKey)||se(te)},style:{position:"absolute",top:0,left:0,width:70,height:70,backgroundColor:"rgba(0,0,0,0.6)",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",gap:"10px",padding:"10px",transition:"all 0.3s ease",backdround:"white",borderRadius:"4px",cursor:"pointer"},children:[t.jsx("div",{style:{position:"absolute",top:"2px",right:"5px"},onClick:ye=>{ye.stopPropagation();const ge=D.filter(Ce=>Ce.id!==te.id);p(zr({ads:ge})),p(Gr({ads:ge}))},children:t.jsx(Us,{size:"16",color:"white"})}),Te(te.previewStorageKey)?t.jsx(A,{bg:"#FFFFFF",style:{borderRadius:"100%",padding:"3px",display:"flex",alignItems:"center",justifyContent:"center"},children:t.jsx(fs,{})}):t.jsx(A,{bg:"#FFFFFF",px:"10px",py:"4px",style:{borderRadius:"4px"},children:t.jsx(g,{size:"xs",children:l("adLauncher.googleAdLauncher.adsSelection.edit")})})]})]},te.id)})})]}),t.jsx(Ne,{backLabel:l("adLauncher.common.back"),nextLabel:l("adLauncher.common.next"),onBack:()=>p(Ze(s-1)),onNext:j,nextDisabled:J})]})};function Rb(){const{scrollStyle:e,shellStyle:n}=ze({pinFooter:!0}),a=xe(),{t:i}=de(),s=yt(),{brandId:r}=ve(),o=va("(max-width: 768px)",!1,{getInitialValueInEffect:!1}),c=[{key:"performanceMax",title:i("adLauncher.googleAdLauncher.campaignObjective.performanceMax.title"),description:i("adLauncher.googleAdLauncher.campaignObjective.performanceMax.description"),goodFor:i("adLauncher.googleAdLauncher.campaignObjective.performanceMax.goodFor",{returnObjects:!0})},{key:"demandGen",title:i("adLauncher.googleAdLauncher.campaignObjective.demandGen.title"),description:i("adLauncher.googleAdLauncher.campaignObjective.demandGen.description"),goodFor:i("adLauncher.googleAdLauncher.campaignObjective.demandGen.goodFor",{returnObjects:!0})}],{googleAdLauncherStepNumber:d,googleCampaignType:m,googleManagedAccount:h}=re(b=>b.adGallery),p=()=>
98{if(!h){a(Fr(!1)),a(Ze(d+2));return}const b=s.getQueryData(["getChannelConnectionStateYoutube",parseInt(r||"0")]);!!(b!=null&&b.accountId)?(a(Fr(!1)),a(Ze(d+2))):a(Ze(d+1))},l=b=>{const u=m===b.key,y=u?o?He:"var(--mantine-color-blue-6)":void 0;return t.jsxs(Ae,{flex:o?void 0:1,padding:o?"lg":"md",radius:"md",withBorder:!0,style:{cursor:"pointer",transition:"border-color 0.15s, background 0.15s",borderColor:y,borderWidth:u?2:1,background:u&&!o?"var(--mantine-color-blue-0)":void 0},onClick:()=>a(Pr(b.key)),children:[t.jsx(g,{fw:700,size:o?"md":"sm",ta:"center",children:b.title}),t.jsx(g,{size:"sm",ta:"center",c:o?"dark":"gray.6",mt:4,mb:8,style:{lineHeight:1.4},children:b.description}),t.jsx(g,{size:"sm",fw:700,ta:"center",mt:"xs",children:i("adLauncher.googleAdLauncher.campaignObjective.goodForLabel")}),t.jsx(U,{justify:"center",gap:6,mt:8,wrap:"wrap",children:b.goodFor.map(I=>t.jsx(Qe,{size:o?"sm":"xs",radius:"sm",color:"gray",variant:"light",styles:{root:{textTransform:"none",fontWeight:500}},children:I},I))})]},b.key)};return t.jsxs(A,{style:n,children:[t.jsxs(A,{style:e,children:[t.jsxs(A,{style:{maxWidth:640,margin:"0 auto",width:"100%",flex:1},children:[o?t.jsx(Be,{order:4,mb:"md",children:i("adLauncher.googleAdLauncher.campaignObjective.heading")}):t.jsx(g,{fw:600,size:"md",mb:"md",children:i("adLauncher.googleAdLauncher.campaignObjective.heading")}),o?t.jsx(ae,{gap:"md",children:c.map(l)}):t.jsx(U,{gap:"md",children:c.map(l)})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:i("adLauncher.common.back"),nextLabel:i("adLauncher.common.next"),onBack:()=>a(Ze(h?1:d-1)),onNext:p,nextDisabled:!m})]})}const tp="ad-launcher-payment-failed";function zb({message:e,onUpdateCard:n}){const{t:a}=de();return t.jsxs(ae,{gap:"xs",children:[t.jsx(g,{size:"sm",children:e}),t.jsx(Me,{size:"xs",color:"blue.9",variant:"white",onClick:()=>{he.hide(tp),n()},children:a("adLauncher.common.paymentFailed.updateCard")})]})}function pi({title:e,message:n,onUpdateCard:a}){he.show({id:tp,title:e,message:t.jsx(zb,{message:n,onUpdateCard:a}),color:"red",autoClose:!1})}function gi(e){return`/brands/${e}/settings?tab=payment`}function Gb(e){const n=Lt(),a=e.previewStorageKey;return!a||a==="public/"?"":a.includes("public/")?`${bt[n]}/${a}`:`${At[n]}/${a}`}function Fb({ad:e,index:n,headline:a,website:i,ctaLabel:s}){const r=Gb(e),o=Te(e.previewStorageKey);return t.jsxs(A,{style:{background:"#fff",borderRadius:0,overflow:"hidden",borderBottom:"6px solid #f1f3f4"},children:[t.jsxs(U,{align:"center",justify:"space-between",px:10,py:6,style:{background:"#fff"},children:[t.jsxs(U,{align:"center",gap:6,children:[t.jsx(A,{style:{width:28,height:28,borderRadius:"50%",background:"linear-gradient(135deg, #4285f4, #34a853)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(g,{size:"xs",c:"white",fw:700,style:{fontSize:11},children:"G"})}),t.jsxs(A,{children:[t.jsx(g,{size:"xs",fw:600,style:{fontSize:11,lineHeight:1.2},children:"Sponsored"}),t.jsxs(g,{size:"xs",c:"gray.5",style:{fontSize:10,lineHeight:1.2},children:["Ad ",n+1]})]})]}),t.jsx(g,{size:"xs",c:"gray.4",style:{fontSize:10},children:"···"})]}),t.jsx(A,{style:{width:"100%",aspectRatio:"1 / 1",background:"#f1f3f4"},children:r?o?t.jsx("video",{src:r,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}}):t.jsx("img",{src:r,alt:`Ad ${n+1}`,style:{width:"100%",height:"100%",objectFit:"contain",display:"block"},onError:c=>{c.target.style.opacity="0"}}):t.jsx(U,{justify:"center",align:"center",style:{width:"100%",height:"100%"},children:t.jsx(Fs,{size:24,color:"#ccc"})})}),t.jsxs(U,{align:"center",justify:"space-between",px:10,py:8,children:[t.jsxs(A,{children:[t.jsx(g,{style:{fontSize:12,fontWeight:600,lineHeight:1.3},children:a}),t.jsx(g,{style:{fontSize:10,color:"#5f6368",lineHeight:1.3},children:i})]}),t.jsx(A,{style:{background:"#1a73e8",borderRadius:4,padding:"4px 10px",cursor:"pointer"},children:t.jsx(g,{style:{fontSize:11,color:"#fff",fontWeight:600},children:s})})]})]})}function np({ads:e,headline:n="Your Ad Headline",website:a="yourwebsite.com",ctaLabel:i="Learn more"}){const[s,r]=S.useState(0),o=e.length,c=o>0?e[Math.min(s,o-1)]:null,d=()=>r(h=>(h-1+o)%o),m=()=>r(h=>(h+1)%o);return t.jsxs(A,{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[t.jsx(g,{size:"xs",fw:600,c:"gray.6",tt:"uppercase",style:{letterSpacing:"0.08em",fontSize:10},children:"Ad Preview"}),t.jsxs(U,{align:"center",gap:6,children:[t.jsx(gt,{variant:"subtle",color:"gray",radius:"xl",size:"lg",disabled:o<=1,onClick:d,children:t.jsx(Fi,{size:18})}),t.jsxs(A,{style:{width:230,background:"#111",borderRadius:40,padding:"10px 5px",boxShadow:"0 0 0 2px #333, 0 0 0 4px #222, 0 16px 32px rgba(0,0,0,0.5)",position:"relative"},children:[t.jsx(A,{style:{position:"absolute",left:-3,top:72,width:3,height:28,background:"#2a2a2a",borderRadius:"2px 0 0 2px"}}),t.jsx(A,{style:{position:"absolute",left:-3,top:108,width:3,height:44,background:"#2a2a2a",borderRadius:"2px 0 0 2px"}}),t.jsx(A,{style:{position:"absolute",right:-3,top:96,width:3,height:56,background:"#2a2a2a",borderRadius:"0 2px 2px 0"}}),t.jsxs(A,{style:{background:"#fff",borderRadius:32,overflow:"hidden",height:440,display:"flex",flexDirection:"column"},children:[t.jsxs(A,{style:{background:"#fff",padding:"10px 16px 4px",display:"flex",justifyContent:"space-between",alignItems:"center",flexShrink:0,position:"relative"},children:[t.jsx(g,{style:{fontSize:11,fontWeight:700,color:"#000"},children:"9:41"}),t.jsx(A,{style:{width:80,height:20,background:"#000",borderRadius:12,position:"absolute",left:"50%",transform:"translateX(-50%)",to
98p:10}}),t.jsxs(U,{gap:4,align:"center",children:[t.jsx(ku,{size:12,color:"#000"}),t.jsx(Tu,{size:14,color:"#000"})]})]}),t.jsx(A,{style:{background:"#f1f3f4",margin:"4px 8px",borderRadius:20,padding:"5px 12px",flexShrink:0},children:t.jsx(g,{style:{fontSize:10,color:"#5f6368",textAlign:"center"},children:"google.com/search"})}),t.jsx(A,{style:{flex:1,overflowY:"auto",overflowX:"hidden"},children:c?t.jsx(Fb,{ad:c,index:s,headline:n,website:a,ctaLabel:i},`${c.id}-${s}`):t.jsxs(U,{direction:"column",justify:"center",align:"center",style:{height:"100%"},gap:"xs",children:[t.jsx(Fs,{size:32,color:"#ccc"}),t.jsx(g,{style:{fontSize:11,color:"#aaa",textAlign:"center",padding:"0 16px"},children:"Your ads will appear here"})]})}),t.jsx(A,{style:{background:"#fff",padding:"8px 0 6px",display:"flex",justifyContent:"center",flexShrink:0},children:t.jsx(A,{style:{width:100,height:4,background:"#000",borderRadius:3,opacity:.2}})})]})]}),t.jsx(gt,{variant:"subtle",color:"gray",radius:"xl",size:"lg",disabled:o<=1,onClick:m,children:t.jsx(si,{size:18})})]}),o>1&&t.jsxs(t.Fragment,{children:[t.jsx(U,{gap:5,align:"center",children:e.map((h,p)=>t.jsx(A,{onClick:()=>r(p),style:{width:p===s?20:7,height:7,borderRadius:4,background:p===s?"#228be6":"#dee2e6",cursor:"pointer",transition:"width 0.2s ease, background 0.2s ease",flexShrink:0}},p))}),t.jsxs(g,{size:"xs",c:"gray.5",children:[s+1," / ",o]})]})]})}const gd=.12,ap="USD";function ip(){try{const e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e!=null&&e.trim()?e:"UTC"}catch{return"UTC"}}const Bb=gd,Dc=1,Pc=90;function Ub(){const{scrollStyle:e,shellStyle:n}=ze({pinFooter:!0}),{t:a}=de(),i=xe(),s=_n(),{brandId:r}=ve(),{googleAdLauncherStepNumber:o,googleDurationDays:c,googleAdLauncher:d,googleAdsSelection:m,lastLaunchError:h}=re(f=>f.adGallery),{launch:p}=pd(),l=Ch(),{data:b}=ri(),u=Number(d==null?void 0:d.budgetAmount)||0,y=u*c,I=parseFloat((y*Bb).toFixed(2)),C=parseFloat((y+I).toFixed(2)),E=Math.round(C*100),P=m.ads||[],[D,G]=S.useState(!1),_=l.isPending||D,O=async()=>{var $,J,z,V;const f=b==null?void 0:b.stripeCustomerId;if(!f){he.show({title:"Payment method missing",message:"Please add a payment method in Settings before continuing.",color:"red"});return}if(!String((d==null?void 0:d.companyName)||"").trim()){he.show({title:a("adLauncher.googleManaged.setup.companyNameRequired"),message:a("adLauncher.googleManaged.setup.companyNameRequiredPay"),color:"red"});return}G(!0);let k=null;const R=o;let B=!1;try{const N=await li({stripeCustomerId:f,amount:E,description:`Google Managed Ad â ${c} day${c===1?"":"s"} campaign`,confirm:!0});k=N==null?void 0:N.paymentIntentId;const L=3;let x=!1;for(let T=1;T<=L;T++)try{const H=await l.mutateAsync({brand_id:parseInt(r||"0"),customer_name:String((d==null?void 0:d.companyName)||"").trim(),currency_code:ap,time_zone:ip()});if(H.status===201||H.status===200){x=!0;break}}catch{if(T===L)break}if(!x)throw new Error("Could not set up managed account after multiple attempts.");const v=await p(R+1,R+2,R);v.isFullSuccess||(B=!0,k&&v.adsLaunchedCount===0&&(await ln(k).catch(()=>{}),he.show({title:"Launch failed",message:"Ad launch failed. Your payment has been refunded.",color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})))}catch(N){B=!0,k?(await ln(k).catch(()=>{}),he.show({title:"Something went wrong",message:"Your payment has been refunded. Please try again.",color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})):pi({title:"Payment failed",message:(N==null?void 0:N.message)||((J=($=N==null?void 0:N.response)==null?void 0:$.data)==null?void 0:J.message)||((V=(z=N==null?void 0:N.response)==null?void 0:z.data)==null?void 0:V.detail)||"Could not process payment. Please try again.",onUpdateCard:()=>s(gi(r))})}finally{B&&i(Ze(R)),G(!1)}};return t.jsxs(A,{style:n,children:[t.jsxs(A,{style:e,children:[t.jsxs(A,{style:{maxWidth:800,margin:"0 auto",width:"100%"},children:[t.jsx(Tn,{error:h,onDismiss:()=>i(Xe(null))}),t.jsx(Be,{order:3,mb:4,children:"Omneky Managed Ad Account"}),t.jsx(g,{size:"sm",c:"gray.6",mb:"xl",children:"Let Omneky's team manage your ad account for optimal performance - handling optimisations, budgets and reporting"}),t.jsxs(U,{gap:"xl",align:"flex-start",style:{overflow:"hidden"},children:[t.jsx(A,{style:{flexShrink:0},children:t.jsx(np,{ads:P})}),t.jsxs(ae,{flex:1,gap:"xl",style:{minWidth:0},children:[t.jsxs(ae,{gap:"sm",children:[t.jsxs(U,{justify:"space-between",align:"center",children:[t.jsx(g,{fw:500,size:"sm",children:"Duration"}),t.jsxs(U,{align:"center",gap:"xs",children:[t.jsx(at,{value:c,onChange:f=>i(Nd(Number(f)||1)),min:Dc,max:Pc,w:80,size:"xs"}),t.jsx(g,{size:"sm",c:"gray.6",children:"days"})]})]}),t.jsx(A,{pb:"lg",children:t.jsx(Ln,{value:c,onChange:f=>i(Nd(f)),min:Dc,max:Pc,step:1,color:"blue",size:"sm",marks:[{value:7,label:"7d"},{value:30,label:"30d"},{value:60,label:"60d"},{value:90,label:"90d"}]})})]}
98),t.jsxs(Ae,{withBorder:!0,padding:"lg",radius:"md",children:[t.jsx(g,{fw:600,mb:"md",children:"Price Breakdown"}),t.jsxs(U,{justify:"space-between",align:"center",py:"xs",children:[t.jsx(g,{size:"sm",children:"Daily Budget"}),t.jsxs(g,{size:"sm",fw:500,children:["$",u.toFixed(2)]})]}),t.jsxs(U,{justify:"space-between",align:"center",py:"xs",children:[t.jsx(g,{size:"sm",children:"Duration"}),t.jsxs(g,{size:"sm",fw:500,children:[c," ",c===1?"day":"days"]})]}),t.jsxs(U,{justify:"space-between",align:"center",py:"xs",children:[t.jsx(g,{size:"sm",children:"Ad Budget"}),t.jsxs(g,{size:"sm",fw:500,children:["$",y.toFixed(2)]})]}),t.jsx(_t,{my:"xs"}),t.jsxs(U,{justify:"space-between",align:"flex-start",py:"xs",children:[t.jsxs(ae,{gap:2,children:[t.jsx(g,{size:"sm",children:"Omneky fee 12%"}),t.jsx(g,{size:"xs",c:"gray.6",children:"Added on top of your ad budget. You pay the ad budget plus 12%."})]}),t.jsxs(g,{size:"sm",fw:500,children:["$",I.toFixed(2)]})]}),t.jsx(_t,{my:"xs"}),t.jsxs(U,{justify:"space-between",align:"center",pt:"xs",children:[t.jsx(g,{fw:700,children:"Total Due today"}),t.jsxs(g,{fw:700,c:"blue",size:"lg",children:["$",C.toFixed(2)]})]})]})]})]})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:"Back",nextLabel:"Continue to pay",onBack:()=>i(Ze(o-1)),onNext:O,backDisabled:_,nextLoading:_})]})}const Hb=({size:e="24"})=>t.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[t.jsxs("g",{clipPath:"url(#clip0_5242_147237)",children:[t.jsx("path",{d:"M23.5055 6.23876C23.2288 5.21063 22.4182 4.4002 21.3903 4.12335C19.5122 3.60938 11.9998 3.60938 11.9998 3.60938C11.9998 3.60938 4.48753 3.60938 2.60943 4.10376C1.60125 4.38043 0.770871 5.21081 0.4942 6.23876C0 8.11668 0 12.0113 0 12.0113C0 12.0113 0 15.9255 0.4942 17.7839C0.771054 18.8118 1.58148 19.6224 2.60961 19.8993C4.50731 20.4133 12 20.4133 12 20.4133C12 20.4133 19.5122 20.4133 21.3903 19.9189C22.4184 19.6422 23.2288 18.8316 23.5057 17.8037C23.9999 15.9255 23.9999 12.0311 23.9999 12.0311C23.9999 12.0311 24.0197 8.11668 23.5055 6.23876Z",fill:"#FF0000"}),t.jsx("path",{d:"M9.60791 15.6091L15.8549 12.0111L9.60791 8.41309V15.6091Z",fill:"white"})]}),t.jsx("defs",{children:t.jsx("clipPath",{id:"clip0_5242_147237",children:t.jsx("rect",{width:"24",height:"24",fill:"white"})})})]});var Oc={API_URL:"https://omneky-nexus-production.omneky.com/",FRONTEND_URL:"https://cgp.omneky.com"};function $b(){const{scrollStyle:e,shellStyle:n}=ze({pinFooter:!0}),a=xe(),{t:i}=de(),{brandId:s}=ve(),r=va("(max-width: 768px)",!1,{getInitialValueInEffect:!1}),{googleAdLauncherStepNumber:o}=re(y=>y.adGallery),{data:c}=zp(),d=c==null?void 0:c.id,[m,h]=S.useState(!1),p=()=>{window.open(`${Oc.API_URL}api/auth/google?type=youtube&user_id=${d}&brand_id=${s}&redirect_url=${Oc.FRONTEND_URL}/brands/${s}/ads-central`,"_blank")},l=()=>{a(Fr(m)),a(Ze(o+1))},b=()=>{a(Ze(o-1))},u=()=>{h(y=>!y)};return t.jsxs(A,{style:n,children:[t.jsxs(A,{style:{...e,display:"flex",flexDirection:"column"},children:[t.jsxs(U,{direction:"column",align:"center",justify:"center",flex:1,gap:"lg",py:"xl",px:"md",children:[t.jsx(Hb,{size:r?"72":"56"}),r?t.jsx(Be,{order:4,ta:"center",maw:320,children:i("adLauncher.googleAdLauncher.youtubeConnection.title")}):t.jsxs(ae,{gap:4,align:"center",children:[t.jsx(Be,{order:4,ta:"center",children:"Create your own YouTube channel"}),t.jsx(g,{c:"gray.6",ta:"center",children:"and link it here to launch ads"})]}),t.jsxs(ae,{gap:4,align:"center",children:[t.jsx(g,{fw:r?700:400,c:r?"dark":"gray.7",ta:"center",children:i("adLauncher.googleAdLauncher.youtubeConnection.alreadyHaveChannel")}),t.jsx(kd,{component:"button",fw:700,c:"#333399",onClick:p,children:i("adLauncher.googleAdLauncher.youtubeConnection.connectNow")})]}),r?t.jsxs(A,{mt:"lg",children:[t.jsx(kd,{component:"button",fw:700,c:"dark",td:"underline",onClick:u,children:i("adLauncher.googleAdLauncher.youtubeConnection.continueWithout")}),m&&t.jsx(g,{size:"xs",c:"orange.6",mt:6,ta:"center",children:i("adLauncher.googleAdLauncher.youtubeConnection.skipWarning")})]}):t.jsxs(A,{mt:"lg",children:[t.jsx(_a,{label:i("adLauncher.googleAdLauncher.youtubeConnection.continueWithout"),checked:m,onChange:y=>h(y.currentTarget.checked),styles:{label:{cursor:"pointer"}}}),m&&t.jsx(g,{size:"xs",c:"orange.6",mt:6,children:i("adLauncher.googleAdLauncher.youtubeConnection.skipWarning")})]})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:i("adLauncher.common.back"),nextLabel:i("adLauncher.common.next"),onBack:b,onNext:l,nextDisabled:!r&&!m})]})}const es=e=>String(e.countryCode||e.country_code||e.name||"").trim();function sp({values:e,onChange:n,showCountries:a=!1}){const{t:i}=de(),{brandId:s}=ve(),r=Eh(),[o,c]=S.useState(""),[d,m]=S.useState([]),[h,p]=S.useState(!1),l=S.useRef(),b=e.selectedCountries||[],u=e.biddingStrategyType||"MAXIMIZE_CONVERSIONS",y=S.useCallback(I=>{if(c(I),p(!0),l.current&&clearTimeout(l.current),I.trim().length<1){m([]);return}l.current=setTimeout(()=>{r.mutate({brand_id:parseInt(s||"0",10),query:I.trim(),limit:5},{onSuccess:C=>{var E;m(((E=C==null?void 0:C.body)==null?void 0:E.results)||(C==null?void 0:C.results)||[])}})},300)},[s,r.mutate]);return t.jsxs(ae,{gap:"md",children:[a&&t.jsxs(ae,{gap:"xs",children:[t.jsx(g,{size:"sm",fw:500,children:i("adLauncher.googleAdLauncher.pmaxSettings.markets")}),t.jsx(g,{size:"xs",c:"dimmed",children:i("adLauncher.googleAdLauncher.pmaxSettings.marketsHint")}),b.length>0&&t.jsx(U,{gap:"xs",wrap:"wrap",children:b.map(I=>{const C=es(I);return t.jsx(Qe,{size:"lg",variant:"light",color:"blue",pr:"xxs",rightSection:t.jsx(Gi,{size:"xs",onClick:()=>n({selectedCountries:b.filter(E=>es(E)!==C)})}),children:I.name||C},C)})}),t.jsxs(A,{pos:"relative",children:[t.jsx(pe,{placeholder:i("adLauncher.googleAdLauncher.pmaxSettings.marketsPlaceholder"),value:o,onChange:I=>y(I.currentTarget.value),onFocus:()=>o&&p(!0),onBlur:()=>setTimeout(()=>p(!1),200)}),h&&d.length>0&&t.jsx(ae,{gap:0,mt:"xxs",p:"xxs",style:{position:"absolute",zIndex:5,left:0,right:0,background:"var(--mantine-color-body)",border:"1px solid var(--mantine-color-gray-3)",borderRadius:"var(--mantine-radius-md)",maxHeight:"40vh",overflowY:"auto"},children:d.map(I=>{const C=es(I),E=b.some(P=>es(P)===C);return t.jsx(A,{p:"xs",style:{cursor:E?"default":"pointer",opacity:E?.5:1},onMouseDown:P=>{P.preventDefault(),!E&&(n({selectedCountries:[...b,I]}),c(""),m([]),p(!1))}
98,children:t.jsxs(g,{size:"sm",children:[I.name," (",C,")"]})},C)})})]})]}),t.jsx(Yt,{label:i("adLauncher.googleAdLauncher.pmaxSettings.languages"),description:i("adLauncher.googleAdLauncher.pmaxSettings.languagesHint"),data:[...Cb],value:e.languages||["1000"],onChange:I=>n({languages:I}),searchable:!0}),t.jsx(Re,{label:i("adLauncher.googleAdLauncher.pmaxSettings.bidStrategy"),description:i("adLauncher.googleAdLauncher.pmaxSettings.bidStrategyHint"),data:wb.map(I=>({value:I,label:i(`adLauncher.googleAdLauncher.pmaxSettings.bids.${I}`)})),value:u,onChange:I=>n({biddingStrategyType:I||"MAXIMIZE_CONVERSIONS"}),allowDeselect:!1}),u==="MAXIMIZE_CONVERSIONS"&&t.jsx(at,{label:i("adLauncher.googleAdLauncher.pmaxSettings.targetCpa"),description:i("adLauncher.googleAdLauncher.pmaxSettings.targetCpaHint"),min:0,decimalScale:2,prefix:"$ ",value:e.targetCpa,onChange:I=>n({targetCpa:typeof I=="number"?I:void 0})}),u==="MAXIMIZE_CONVERSION_VALUE"&&t.jsx(at,{label:i("adLauncher.googleAdLauncher.pmaxSettings.targetRoas"),description:i("adLauncher.googleAdLauncher.pmaxSettings.targetRoasHint"),min:0,decimalScale:2,value:e.targetRoas,onChange:I=>n({targetRoas:typeof I=="number"?I:void 0})}),t.jsx(ru,{label:i("adLauncher.googleAdLauncher.pmaxSettings.conversionGoals"),description:i("adLauncher.googleAdLauncher.pmaxSettings.conversionGoalsHint"),value:e.conversionGoals||[],onChange:I=>n({conversionGoals:I}),placeholder:i("adLauncher.googleAdLauncher.pmaxSettings.conversionGoalsPlaceholder")})]})}function gr(e){return e>=1e9?`${(e/1e9).toFixed(1)}B`:e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toString()}function Vb(e){return{USER_INTEREST:"INTEREST",LOCATION:"LOCATION",GENDER:"GENDER",AGE_RANGE:"AGE",PARENTAL_STATUS:"PARENTAL"}[e]||e.replace(/_/g," ")}function Rc(e){return e.adsetSpecFragment||e.adset_spec_fragment||{}}function Vn(e){return e.countryCode||e.country_code||""}function Wb(){var ne,X,ie;const{scrollStyle:e,shellStyle:n}=ze({pinFooter:!0}),a=xe(),{brandId:i}=ve(),{googleAdLauncherStepNumber:s,googleTargeting:r,googleCampaignType:o}=re(Q=>Q.adGallery),c=o==="demandGen",[d,m]=S.useState({languages:r.languages||["1000"],biddingStrategyType:r.biddingStrategyType||"MAXIMIZE_CONVERSIONS",targetCpa:r.targetCpa,targetRoas:r.targetRoas,conversionGoals:r.conversionGoals||[]}),[h,p]=S.useState(""),[l,b]=S.useState([]),[u,y]=S.useState(r.selectedCountries||[]),[I,C]=S.useState(!1),E=S.useRef(null),P=Eh(),[D,G]=S.useState(""),[_,O]=S.useState([]),[f,k]=S.useState(new Set(r.selectedResults.map(Q=>Q.id))),R=Ca(),B=jy(),$=S.useMemo(()=>_.filter(Q=>f.has(Q.id)),[_,f]),J=S.useRef(),z=S.useCallback(Q=>{if(p(Q),C(!0),J.current&&clearTimeout(J.current),Q.trim().length<1){b([]);return}J.current=setTimeout(()=>{P.mutate({brand_id:parseInt(i||"0"),query:Q.trim(),limit:5},{onSuccess:j=>{var se;const q=((se=j==null?void 0:j.body)==null?void 0:se.results)||(j==null?void 0:j.results)||[];b(q)}})},300)},[i]),V=Q=>{const j=Vn(Q);u.some(q=>Vn(q)===j)||(y(q=>[...q,Q]),p(""),b([]),C(!1))},N=Q=>{y(j=>j.filter(q=>Vn(q)!==Q))};S.useEffect(()=>{if($.length===0&&u.length===0)return;const Q=[];u.forEach(j=>{const q=Rc(j);Object.keys(q).length>0&&Q.push(q)}),$.forEach(j=>{const q=Rc(j);Object.keys(q).length>0&&Q.push(q)}),Q.length!==0&&B.mutate({brand_id:parseInt(i||"0"),channel:"google",targeting_fragments:Q})},[f,_,u]);const L=()=>
98{if(!D.trim())return;const Q=u.map(j=>Vn(j)).filter(Boolean);R.mutate({brand_id:parseInt(i||"0"),channel:"google",query:D.trim(),limit:10,google_country_code:Q[0]||"US",google_include_estimates:!1},{onSuccess:j=>{var se;const q=((se=j==null?void 0:j.body)==null?void 0:se.results)||(j==null?void 0:j.results)||[];O(q),k(new Set(q.map(le=>le.id)))},onError:j=>{var q,se;he.show({title:"Search failed",message:((se=(q=j==null?void 0:j.response)==null?void 0:q.data)==null?void 0:se.message)||"Could not search targeting. Please try again.",color:"red"})}})},x=Q=>{k(j=>{const q=new Set(j);return q.has(Q)?q.delete(Q):q.add(Q),q})},v=()=>{a(zl({selectedCountries:u,selectedResults:c?$:[],languages:d.languages,biddingStrategyType:d.biddingStrategyType,targetCpa:d.targetCpa,targetRoas:d.targetRoas,conversionGoals:d.conversionGoals})),a(Ze(s+1))},T=()=>{a(Ze(s-1))},H=((ne=B.data)==null?void 0:ne.body)||B.data,F=u.map(Q=>Q.name).join(", ")||"â",w=H?{estimatedReach:H.estimatedReach??H.estimated_reach??0,estimatedReachLower:H.estimatedReachLower??H.estimated_reach_lower??0,estimatedReachUpper:H.estimatedReachUpper??H.estimated_reach_upper??0,calculationSource:H.calculationSource??H.calculation_source??"",isAuthoritative:H.isAuthoritative??H.is_authoritative??!1,meta:H.meta||{}}:null,K=((X=w==null?void 0:w.meta)==null?void 0:X.interestTiers)||((ie=w==null?void 0:w.meta)==null?void 0:ie.interest_tiers),M=K?[...new Set(Object.values(K))].join(", "):"",ee=w?Math.min(w.estimatedReach/(w.estimatedReachUpper||1)*100,100):0;return t.jsxs(A,{style:n,children:[t.jsxs(A,{style:e,children:[t.jsxs(Ct,{width:1e3,children:[t.jsxs(U,{gap:"xl",align:"flex-start",children:[t.jsxs(A,{w:340,style:{flexShrink:0},children:[t.jsxs(A,{mb:"lg",children:[t.jsx(g,{size:"sm",fw:500,mb:2,children:"Markets"}),t.jsx(g,{size:"xs",c:"gray.5",mb:6,children:"Type to search, or select from defaults below"}),u.length>0&&t.jsx(U,{gap:6,wrap:"wrap",mb:8,children:u.map(Q=>t.jsx(Qe,{size:"lg",variant:"light",color:"#322996",pr:3,rightSection:t.jsx(Gi,{size:"xs",onClick:()=>N(Vn(Q))}),children:Q.name},Vn(Q)))}),t.jsxs(A,{style:{position:"relative"},children:[t.jsx(pe,{ref:E,placeholder:"Search country...",value:h,onChange:Q=>z(Q.currentTarget.value),onFocus:()=>h&&C(!0),onBlur:()=>setTimeout(()=>C(!1),200),rightSection:P.isPending?t.jsx(et,{size:"xs"}):null}),I&&l.length>0&&t.jsx(Ae,{shadow:"md",padding:0,radius:"sm",withBorder:!0,style:{position:"absolute",top:"100%",left:0,right:0,zIndex:100,maxHeight:200,overflowY:"auto"},children:l.map(Q=>{const j=Vn(Q),q=u.some(se=>Vn(se)===j);return t.jsx(A,{py:"xs",px:"sm",style:{cursor:q?"default":"pointer",opacity:q?.5:1,borderBottom:"1px solid #f1f3f5"},onClick:()=>!q&&V(Q),children:t.jsxs(g,{size:"sm",children:[Q.name," (",j,")"]})},j)})})]})]}),c&&t.jsxs(t.Fragment,{children:[t.jsx(qa,{label:"Audiences",placeholder:"e.g. Fitness enthusiast interested in Yoga",value:D,onChange:Q=>G(Q.currentTarget.value),minRows:4,mb:"md"}),t.jsx(Me,{fullWidth:!0,color:"#322996",onClick:L,loading:R.isPending,children:"Search"})]}),!c&&t.jsx(sp,{values:d,onChange:Q=>m(j=>({...j,...Q}))})]}),c&&t.jsxs(A,{flex:1,style:{minWidth:0},children:[R.isPending&&_.length===0&&t.jsx(U,{h:300,justify:"center",align:"center",children:t.jsx(et,{size:"sm"})}),!R.isPending&&_.length===0&&t.jsx(U,{h:300,justify:"center",align:"center",children:t.jsx(g,{size:"sm",c:"gray.5",children:"Search for audiences to see results here"})}),_.length>0&&t.jsx(Nt,{h:"400px",children:t.jsx(ae,{gap:0,children:_.map(Q=>{const j=f.has(Q.id);return t.jsx(A,{py:"sm",px:"md",style:{cursor:"pointer",background:j?"#f0eeff":"transparent",borderBottom:"1px solid #e9ecef",transition:"background 0.15s ease"},onClick:()=>x(Q.id),children:t.jsxs(U,{align:"center",gap:"md",children:[t.jsx(_a,{checked:j,onChange:()=>x(Q.id),color:"#322996",styles:{input:{cursor:"pointer"}}}),t.jsxs(A,{flex:1,children:[t.jsx(g,{size:"sm",fw:500,children:Q.name}),t.jsx(Qe,{size:"xs",color:"#322996",variant:"filled",radius:"sm",tt:"uppercase",children:Vb(Q.type)})]})]})},Q.id)})})})]})]}),(u.length>0||f.size>
980)&&t.jsx(Ae,{withBorder:!0,padding:"md",mt:"lg",radius:"md",style:{background:"linear-gradient(135deg, #f8f7ff 0%, #eef0fb 40%, #e8eaf6 100%)",borderColor:"#d8daf0"},children:t.jsxs(U,{align:"center",gap:"md",wrap:"wrap",children:[t.jsxs(A,{style:{minWidth:160},children:[t.jsx(g,{size:"sm",fw:600,mb:4,children:"Estimated Reach:"}),B.isPending?t.jsx(et,{size:"lg",my:"xs"}):w&&w.estimatedReach>0?t.jsxs(t.Fragment,{children:[t.jsx(g,{fz:48,fw:700,c:"#322996",lh:1.1,children:gr(w.estimatedReach)}),t.jsxs(g,{size:"sm",c:"gray.6",children:[gr(w.estimatedReachLower)," â"," ",gr(w.estimatedReachUpper)]})]}):null]}),w&&!B.isPending&&w.estimatedReach>0&&t.jsxs(A,{flex:1,style:{minWidth:200},children:[t.jsx(Gp,{value:ee,color:"#322996",size:"md",radius:"xl",mb:"xs"}),t.jsxs(U,{gap:"xs",mb:"xs",children:[t.jsx(Qe,{variant:"outline",color:"gray",size:"sm",radius:"sm",children:w.calculationSource==="llm_approximate"||w.calculationSource==="llmApproximate"?"AI estimate":w.calculationSource}),!w.isAuthoritative&&t.jsx(Qe,{variant:"outline",color:"gray",size:"sm",radius:"sm",children:"± Approximate"})]}),t.jsxs(g,{size:"sm",fw:500,children:["Markets: ",F]}),t.jsxs(g,{size:"xs",c:"gray.6",children:["±2x uncertainty bounds shown",M?` · Interest tier: ${M}`:""]})]})]})})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:"Back",nextLabel:"Next",onBack:T,onNext:v})]})}function md(){const e=xe(),[n,a]=zi();return S.useCallback(()=>{e(Gl(null));const i=new URLSearchParams(n);let s=!1;i.has("draft")&&(i.delete("draft"),s=!0),i.has("managed")&&(i.delete("managed"),s=!0),s&&a(i,{replace:!0})},[e,n,a])}function Rt(){const{t:e}=de(),n=xe(),a=Fl(),{brandId:i}=ve(),[s,r]=zi(),o=Du(),c=Pu(),d=S.useRef(!1);return{persist:S.useCallback(async h=>{const p=a.getState().adLauncher,l=hm(p.channel);if(!i||!l||!Ru(p)||d.current)return;d.current=!0;const b={brandId:Number(i),channel:l,title:xm(p),currentStep:Lm(p),payloadJson:mm(p)};try{if(p.draftId==null){const u=await o.mutateAsync(b);n(Gl(u.id));const y=new URLSearchParams(s);y.set("draft",String(u.id)),r(y,{replace:!0})}else await c.mutateAsync({draftId:p.draftId,brandId:Number(i),title:b.title,currentStep:b.currentStep,payloadJson:b.payloadJson});h!=null&&h.notify&&he.show({color:"teal",title:e("adLauncher.launchAd.hub.drafts.savedTitle"),message:e("adLauncher.launchAd.hub.drafts.savedMessage")})}catch{h!=null&&h.notify&&he.show({color:"red",title:e("adLauncher.launchAd.hub.drafts.saveFailedTitle"),message:e("adLauncher.launchAd.hub.drafts.saveFailedMessage")})}finally{d.current=!1}},[i,o,n,s,r,a,e,c]),isSaving:o.isPending||c.isPending}}const Kb=20,zc=2,qb={default:4,1200:3,700:2,500:1};function Yb(){const{t:e}=de(),n=xe(),a=_n(),{persist:i}=Rt(),s=md(),{brandId:r}=ve(),o=S.useRef(null),[c,d]=S.useState(null),{shellStyle:m,scrollStyle:h,formStyle:p,isMobile:l}=ze({pinFooter:!0}),{selectedAds:b,google:{adsSelection:u}}=re(v=>v.adLauncher),y=b.length?b:u.ads||[],{data:I}=xu(r),C=!!(I!=null&&I.accountId),{data:E,fetchNextPage:P,hasNextPage:D,isFetchingNextPage:G,isPending:_}=Cn({mode:"brand",brandId:r??""}),O=S.useMemo(()=>((E==null?void 0:E.pages)||[]).flatMap(v=>v.items),[E]),f=S.useMemo(()=>O.filter(v=>!(!v.previewStorageKey||Te(v.previewStorageKey)&&(v.videoDuration??0)<=10)),[O]),{showLoading:k,showEmpty:R}=oa({count:f.length,isPending:_,hasNextPage:D,isFetchingNextPage:G}),B=y.filter(v=>!Te(v.previewStorageKey)),$=B.filter(v=>ft(v.size)==="square").length,J=B.filter(v=>ft(v.size)==="landscape").length,z=B.length>=1&&($===0||J===0),V=v=>Te(v.previewStorageKey)&&!C,N=v=>{if(V(v))return;const T=y.some(F=>F.id===v.id);let H;if(T)H=y.filter(F=>F.id!==v.id);else{if(y.length>=Kb)return;H=[...y,v]}n(Gs(H)),n(Bl(H)),n(Ul(H)),n(Fp((u.croppedVariants||[]).filter(F=>H.some(w=>String(w.id)===F.sourceAdId))))},L=()=>{y.length<zc||(n(Bp(!C)),Oe(Rl,{brandId:r}),n($t(We.FORMATS)),i())},x=()=>{a(`/brands/${r}/settings?tab=brandsAndUsers&from=analyze`)};return t.jsx(A,{style:m,children:t.jsxs(A,{style:p,children:[t.jsx(A,{style:h,children:t.jsxs(A,{style:{maxWidth:960,margin:"0 auto",width:"100%"},px:l?"md":0,children:[t.jsxs(U,{align:l?"stretch":"flex-start",justify:"space-between",gap:"md",direction:l?"column":"row",mb:"md",children:[t.jsxs(A,{children:[t.jsx(Be,{order:3,children:e("adLauncher.googleManaged.adsPick.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,children:e("adLauncher.googleManaged.adsPick.subtitle")})]}
98),!C&&t.jsx(Me,{variant:"default",radius:"xl",size:"sm",leftSection:t.jsx(Vd,{size:16,color:"#FF0000"}),rightSection:t.jsx(si,{size:14}),onClick:x,style:{flexShrink:0,background:"var(--mantine-color-gray-1)",border:"1px solid var(--mantine-color-gray-3)",fontWeight:500},children:e("adLauncher.googleManaged.adsPick.connectYoutube")})]}),z&&t.jsxs(U,{gap:"sm",align:"flex-start",mb:"md",p:"sm",style:{background:"var(--mantine-color-yellow-0)",border:"1px solid var(--mantine-color-yellow-3)",borderRadius:10},children:[t.jsx(vo,{size:18,color:"var(--mantine-color-yellow-7)",style:{flexShrink:0,marginTop:2}}),t.jsx(g,{size:"sm",c:"dark",children:e("adLauncher.googleManaged.adsPick.formatWarning")})]}),t.jsx(Nt,{style:{flex:1,minHeight:280},viewportRef:o,onScrollPositionChange:({y:v})=>{const T=o.current;!T||!D||G||v>T.scrollHeight-T.clientHeight-120&&(P==null||P())},scrollbars:"y",children:k||R?t.jsx(Sn,{isLoading:k}):t.jsx(In,{breakpointCols:qb,className:"my-masonry-grid",columnClassName:"my-masonry-grid_column",children:f.map(v=>{const T=y.some(ee=>ee.id===v.id),H=Te(v.previewStorageKey),F=V(v),w=!H&&vb(v),K=jb(v),M=F&&(l||c===v.id);return t.jsxs(Ae,{padding:0,radius:"md",withBorder:!0,mb:"sm",style:{cursor:F?"default":"pointer",borderColor:T?He:void 0,borderWidth:T?3:1,position:"relative",overflow:"hidden"},onClick:()=>N(v),onMouseEnter:()=>{F&&d(v.id)},onMouseLeave:()=>{c===v.id&&d(null)},children:[T&&!F&&t.jsx(vn,{size:22,radius:"xl",color:"blue",style:{position:"absolute",top:8,right:8,zIndex:3},children:t.jsx(mn,{size:13})}),t.jsxs(A,{style:{position:"relative"},children:[H?t.jsx("video",{src:K,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,style:{width:"100%",height:"auto",maxHeight:280,display:"block",objectFit:"cover"}}):t.jsx(ot,{src:K,alt:v.name||"Ad",fit:"cover",mah:280}),H&&!M&&t.jsx(A,{style:{position:"absolute",top:8,right:8,zIndex:2},children:t.jsx(fs,{size:18})}),w&&t.jsx(Qe,{size:"sm",radius:"xl",color:"gray",variant:"white",style:{position:"absolute",bottom:8,right:8,zIndex:2,boxShadow:"0 1px 3px rgba(0,0,0,0.15)"},children:e("adLauncher.googleManaged.adsPick.cropNeeded")}),M&&t.jsxs(ae,{gap:6,align:"center",justify:"center",p:"md",style:{position:"absolute",inset:0,background:"rgba(255,255,255,0.82)",backdropFilter:"blur(2px)",zIndex:2},onClick:ee=>ee.stopPropagation(),children:[t.jsx(g,{fw:700,size:"sm",c:"dark",ta:"center",children:e("adLauncher.googleManaged.adsPick.videosCantLaunch")}),t.jsx(g,{size:"xs",c:"dimmed",ta:"center",maw:160,children:e("adLauncher.googleManaged.adsPick.videosCantLaunchHint")}),t.jsx(Me,{color:"red",size:"xs",radius:"sm",leftSection:t.jsx(Vd,{size:14}),onClick:x,mt:4,children:e("adLauncher.googleManaged.adsPick.connectYoutubeShort")})]})]}),t.jsxs(U,{justify:"space-between",px:"sm",py:"xs",children:[t.jsx(g,{size:"xs",c:"dimmed",children:Qh(v.size)}),t.jsx(g,{size:"xs",fw:700,children:H?e("adLauncher.googleManaged.adsPick.videoLabel"):ep(v.size)})]})]},v.id)})})}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>{s(),n($t(We.PLATFORM))},onNext:L,nextDisabled:y.length<zc})]})})}function Xb(){const{t:e}=de(),n=xe(),{persist:a}=Rt(),{shellStyle:i,formStyle:s,scrollStyle:r,isMobile:o}=ze({pinFooter:!0}),{selectedAds:c,google:{adsSelection:d,skipVideos:m}}=re(E=>E.adLauncher),h=S.useMemo(()=>{var P;const E=(P=d.ads)!=null&&P.length?d.ads:c;return hd(E,d.croppedVariants)},[d.ads,d.croppedVariants,c]),p=S.useMemo(()=>h.filter(E=>!Te(E.previewStorageKey)),[h]),l=S.useMemo(()=>m?p:h,[m,p,h]),b=p.some(E=>ft(E.size)==="square"),u=p.some(E=>ft(E.size)==="landscape"),y=b&&u,I=(E,P)=>{Te(E.previewStorageKey)||n(wo({open:!0,adsToCrop:[E],step:P==="landscape"?"landscapeAds":"squareAds"}))},C=E=>{const P=ft(E.size);return u?b?P==="square"||P==="landscape"?P:"landscape":"square":"landscape"};return t.jsx(A,{style:i,children:t.jsxs(A,{style:s,children:[t.jsx(A,{style:r,children:t.jsxs(A,{style:{maxWidth:720,margin:"0 auto",width:"100%"},px:o?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.googleManaged.formats.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"md",children:e("adLauncher.googleManaged.formats.subtitle")}),!y&&t.jsxs(U,{gap:"sm",align:"flex-start",mb:"lg",p:"sm",style:{background:"var(--mantine-color-red-0)",border:"1px solid var(--mantine-color-red-3)",borderRadius:10},children:[t.jsx(vo,{size:18,color:"var(--mantine-color-red-6)"}),t.jsx(g,{size:"sm",children:e("adLauncher.googleManaged.formats.warning",{covered:b?"1:1":u?"1.91:1":"â",missing:u?"1:1":"1.91:1"})})]}),t.jsx(U,{gap:"md",wrap:"wrap",children:l.map(E=>
98{const P=Te(E.previewStorageKey),D=ft(E.size),G=!P&&(D==="square"||D==="landscape"),_=C(E);return t.jsxs(Ae,{padding:"sm",radius:"md",withBorder:!0,style:{width:o?"100%":220},children:[t.jsx(A,{style:{cursor:P?"default":"pointer",position:"relative",height:160,borderRadius:6,overflow:"hidden",background:"var(--mantine-color-gray-1)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>{P||I(E,_)},children:P?t.jsx("video",{src:Mc(E),muted:!0,playsInline:!0,style:{width:"100%",height:"100%",objectFit:"contain",display:"block"}}):t.jsx(ot,{src:Mc(E),alt:E.name||"Ad",h:160,w:"100%",fit:"contain"})}),t.jsxs(U,{justify:"space-between",mt:"xs",mb:"xs",children:[t.jsx(g,{size:"xs",c:"dimmed",children:Qh(E.size)}),t.jsx(Qe,{size:"sm",color:P?"gray":G?"teal":"dark",variant:G?"light":"filled",children:P?e("adLauncher.googleManaged.adsPick.videoLabel"):ep(E.size)})]}),P?t.jsx(Qe,{color:"gray",variant:"light",fullWidth:!0,children:e("adLauncher.googleManaged.formats.compatible")}):G?t.jsxs(U,{gap:"xs",align:"center",children:[t.jsx(Qe,{color:"teal",variant:"light",style:{flex:1},children:e("adLauncher.googleManaged.formats.compatible")}),t.jsx(Me,{size:"xs",variant:"default",px:8,onClick:()=>I(E,_),children:t.jsx(_o,{size:14})})]}):t.jsx(Me,{fullWidth:!0,size:"sm",color:"orange",variant:"light",onClick:()=>I(E,_),children:e("adLauncher.googleManaged.formats.cropIntoAnother")})]},E.id)})}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>n($t(We.ADS)),onNext:()=>{y&&(n($t(We.OBJECTIVE)),a())},nextDisabled:!y})]})})}const Zb="rgba(51, 51, 153, 0.1)";function Jb(){const{t:e}=de(),n=xe(),{persist:a}=Rt(),{shellStyle:i,formStyle:s,scrollStyle:r,isMobile:o}=ze({pinFooter:!0}),{google:{campaignType:c}}=re(h=>h.adLauncher),d=[{key:"performanceMax",icon:t.jsx(Nu,{size:22,color:He}),tagline:e("adLauncher.googleManaged.objective.performanceMax.tagline"),goodFor:Object.values(e("adLauncher.googleManaged.objective.performanceMax.goodFor",{returnObjects:!0}))},{key:"demandGen",icon:t.jsx(Mu,{size:22,color:He}),tagline:e("adLauncher.googleManaged.objective.demandGen.tagline"),goodFor:Object.values(e("adLauncher.googleManaged.objective.demandGen.goodFor",{returnObjects:!0}))}],m=c==="performanceMax"||c==="demandGen";return t.jsx(A,{style:i,children:t.jsxs(A,{style:s,children:[t.jsx(A,{style:r,children:t.jsxs(A,{style:{maxWidth:880,margin:"0 auto",width:"100%"},px:o?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.googleManaged.objective.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"lg",children:e("adLauncher.googleManaged.objective.subtitle")}),t.jsx(on,{cols:{base:1,sm:2},spacing:"md",children:d.map(h=>{const p=c===h.key;return t.jsxs(Ae,{padding:"lg",radius:"md",withBorder:!0,bg:"white",style:{cursor:"pointer",borderColor:p?He:"var(--mantine-color-gray-3)",borderWidth:p?2:1,position:"relative",height:"100%"},onClick:()=>n(Up(h.key)),children:[p&&t.jsx(vn,{size:22,radius:"xl",color:"blue",style:{position:"absolute",top:12,right:12},children:t.jsx(mn,{size:13})}),t.jsxs(ae,{gap:"md",children:[t.jsx(A,{style:{width:44,height:44,borderRadius:10,background:Zb,display:"flex",alignItems:"center",justifyContent:"center"},children:h.icon}),t.jsxs(A,{children:[t.jsx(g,{fw:700,size:"lg",children:e(`adLauncher.googleAdLauncher.campaignObjective.${h.key}.title`)}),t.jsx(g,{size:"sm",c:"dimmed",mt:2,children:h.tagline})]}),t.jsx(g,{size:"sm",children:e(`adLauncher.googleAdLauncher.campaignObjective.${h.key}.description`)}),t.jsx(_t,{color:"gray.3"}),t.jsxs(A,{children:[t.jsx(g,{fw:700,size:"sm",mb:"xs",children:e("adLauncher.googleManaged.objective.goodForLabel")}),t.jsx(U,{gap:8,wrap:"wrap",children:h.goodFor.map(l=>t.jsx(Qe,{size:"md",variant:"light",color:"gray",radius:"xl",tt:"none",fw:500,children:l},l))})]})]})]},h.key)})}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>n($t(We.FORMATS)),onNext:()=>{m&&(n($t(We.SETUP)),a())},nextDisabled:!m})]})})}function da(e,n,a){const i=Object.keys(e);let s;
98for(const o of n){if(e[o]!=null&&e[o]!==!1){s=o;break}const c=i.filter(d=>d.startsWith(`${o}.`)).sort((d,m)=>{const[,h="0"]=d.split("."),[,p="0"]=m.split(".");return Number(h)-Number(p)});if(c.length){const[d]=c;s=d;break}}if(!s&&(a!=null&&a.extraTarget)&&(s=a.extraTarget),!s&&i.length){const[o]=i;s=o}if(!s)return;const r=()=>{var d;const o=document.querySelector(`[data-managed-field="${CSS.escape(s)}"]`);if(!o)return;o.scrollIntoView({behavior:"smooth",block:"center"});const c=o instanceof HTMLElement&&(o.matches("input, textarea, select, button")?o:o.querySelector("input, textarea, select, button"));(d=c==null?void 0:c.focus)==null||d.call(c,{preventScroll:!0})};requestAnimationFrame(()=>{requestAnimationFrame(r)})}const Qb=["campaignName","adSetName","companyName","budgetAmount"],eA=gd,ts=7,Gc=90,yi=10,Fc=500,tA=1.25;function nA(){const{t:e}=de(),n=xe(),{brandId:a}=ve(),{data:i}=Ot(a),{shellStyle:s,formStyle:r,scrollStyle:o,isMobile:c}=ze({pinFooter:!0}),{persist:d}=Rt(),{selectedAds:m,google:{form:h,campaignType:p,durationDays:l,adsSelection:b}}=re(x=>x.adLauncher),{googleTargeting:u}=re(x=>x.adGallery),[y,I]=S.useState({selectedCountries:u.selectedCountries||[],languages:u.languages||["1000"],biddingStrategyType:u.biddingStrategyType||"MAXIMIZE_CONVERSIONS",targetCpa:u.targetCpa,targetRoas:u.targetRoas,conversionGoals:u.conversionGoals||[]}),C=m.length?m:b.ads||[],E=C.filter(x=>!Te(x.previewStorageKey)).length,P=C.length-E,D=S.useMemo(()=>{const x=[];return E>0&&x.push(e("adLauncher.googleManaged.setup.adsImages",{count:E,defaultValue:"{{count}} Images"})),P>0&&x.push(e("adLauncher.googleManaged.setup.adsVideos",{count:P,defaultValue:"{{count}} Videos"})),x.length?x.join(", "):e("adLauncher.googleManaged.setup.adsCount",{count:0})},[E,P,e]),G=e(p==="demandGen"?"adLauncher.googleAdLauncher.campaignObjective.demandGen.title":"adLauncher.googleAdLauncher.campaignObjective.performanceMax.title"),_=S.useMemo(()=>{const x=(i==null?void 0:i.name)||"Brand",v=new Date().toLocaleString("en-US",{month:"short",year:"numeric"});return`${x} â ${G} â ${v}`},[i==null?void 0:i.name,G]),O=S.useMemo(()=>`${(i==null?void 0:i.name)||"Brand"} â Broad`,[i==null?void 0:i.name]),f=wt({initialValues:{campaignName:h.campaignName||_,adSetName:h.adSetName||O,companyName:h.companyName||(i==null?void 0:i.name)||"",budgetAmount:h.budgetAmount||50,budgetType:h.budgetType||"Daily",durationDays:Math.max(l||7,ts),adStatusOnLaunch:h.adStatusOnLaunch??!0},validate:{campaignName:x=>String(x).trim()?null:e("adLauncher.common.required",{defaultValue:"Required"}),adSetName:x=>String(x).trim()?null:e("adLauncher.common.required",{defaultValue:"Required"}),companyName:x=>String(x).trim()?null:e("adLauncher.googleManaged.setup.companyNameRequired",{defaultValue:"Company name is required before payment"}),budgetAmount:x=>Number(x)<yi?e("adLauncher.googleManaged.setup.budgetMinError",{defaultValue:`Minimum daily budget is $${yi}`,min:yi}):null}});S.useEffect(()=>{!f.values.companyName&&(i!=null&&i.name)&&f.setFieldValue("companyName",i.name)},[i==null?void 0:i.name]);const k=Number(f.values.budgetAmount)||0,R=Number(f.values.durationDays)||ts,B=k*R,$=parseFloat((B*eA).toFixed(2)),J=parseFloat((B+$).toFixed(2)),z=k*tA,V=k*7,N=()=>{const x=f.validate();if(x.hasErrors){da(x.errors,Qb);return}n(Hl({campaignName:f.values.campaignName,adSetName:f.values.adSetName,companyName:f.values.companyName.trim(),budgetAmount:f.values.budgetAmount,budgetType:f.values.budgetType,adStatusOnLaunch:f.values.adStatusOnLaunch})),n(Hp(f.values.durationDays)),n(zl({selectedCountries:y.selectedCountries,languages:y.languages,biddingStrategyType:y.biddingStrategyType,targetCpa:y.targetCpa,targetRoas:y.targetRoas,conversionGoals:y.conversionGoals})),n($t(We.FINAL_PREVIEW)),d()},L=x=>x.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2});return t.jsx(A,{style:s,children:t.jsxs(A,{style:r,children:[t.jsxs(A,{style:o,children:[t.jsxs(U,{gap:"xl",direction:c?"column":"row",style:{maxWidth:1040,margin:"0 auto",width:"100%"},px:c?"md":0,pb:"md",children:[t.jsxs(ae,{style:{flex:1,minWidth:0},gap:"lg",children:[t.jsxs(A,{children:[t.jsx(Be,{order:3,children:e("adLauncher.googleManaged.setup.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,children:e("adLauncher.googleManaged.setup.subtitle")})]}),t.jsxs(A,{children:[t.jsxs(U,{justify:"space-between",align:"baseline",mb:"xs",gap:"sm",children:[t.jsx(g,{fw:600,children:e("adLauncher.googleManaged.setup.names")}),t.jsx(g,{size:"xs",c:"dimmed",children:e("adLauncher.googleManaged.setup.shownInAdsManager")})]}),t.jsx(pe,{label:e("adLauncher.googleManaged.setup.campaignName"),withAsterisk:!0,mb:"sm","data-managed-field":"campaignName",...f.getInputProps("campaignName")}),t.jsx(pe,{label:e("adLauncher.googleManaged.setup.adGroupName"),withAsterisk:!0,"data-managed-field":"adSetName",...f.getInputProps("adSetName")}),t.jsx(pe,{mt:"sm",label:e("adLauncher.campaignDetails.budget.companyName"),placeholder:e("adLauncher.campaignDetails.budget.companyNamePlaceholder"),withAsterisk:!0,"data-managed-field":"companyName",...f.getInputProps("companyName")}),t.jsx(g,{size:"xs",c:"dimmed",mt:6,children:e("adLauncher.googleManaged.setup.namesHint")})]}),(p==="performanceMax"||!p)&&t.jsxs(A,{children:[t.jsx(g,{fw:600,mb:"xs",children:e("adLauncher.googleAdLauncher.pmaxSettings.title")}),t.jsx(sp,{showCountries:!0,values:y,onChange:x=>I(v=>({...v,...x}))})]}),t.jsxs(A,{children:[t.jsxs(g,{fw:600,mb:"xs",children:[e("adLauncher.googleManaged.setup.budgetAmount"),t.jsxs(g,{span:!0,c:"red",children:[" ","*"]})]}),t.jsxs(U,{gap:"sm",align:"flex-end",mb:"xs",children:[t.jsx(at,{style:{flex:1},min:yi,max:Fc,prefix:"$",decimalScale:0,"data-managed-field":"budgetAmount",...f.getInputProps("budgetAmount")}),t.jsx(Re,{w:110,data:[{value:"Daily",label:e("adLauncher.googleManaged.setup.daily")}],allowDeselect:!1,...f.getInputProps("budgetType")})]}),t.jsx(Ln,{min:yi,max:Fc,value:f.values.budgetAmount,onChange:x=>f.setFieldValue("budgetAmount",x),mb:"xs",color:"blue"}),t.jsx(g,{size:"xs",c:"dimmed",mb:"lg",children:e("adLauncher.googleManaged.setup.budgetHelp",{daily:L(k),maxDaily:L(z),maxWeekly:L(V)})}),t.jsx(g,{fw:600,mb:"xs",children:e("adLauncher.googleManaged.setup.duration")}),t.jsx(at,{min:ts,max:Gc,mb:"xs",...f.getInputProps("durationDays")}),t.jsx(Ln,{min:ts,max:Gc,value:f.values.durationDays,onChange:x=>f.setFieldValue("durationDays",x),marks:[{value:7,label:"7d"},{value:30,label:"30d"},{value:60,label:"60d"},{value:90,label:"90d"}],color:"blue",mb:"md"})]})]}),t.jsxs(ae,{gap:"md",style:{width:c?"100%":320,flexShrink:0,alignSelf:"flex-start"},children:[t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"lg",children:[t.jsx(g,{fw:700,mb:"sm",children:e("adLauncher.googleManaged.setup.summaryTitle")}),t.jsxs(ae,{gap:8,children:[t.jsx(Pn,{label:e("adLauncher.googleManaged.setup.platform"),value:e("adLauncher.googleManaged.setup.platformValue")}),t.jsx(Pn,{label:e("adLauncher.googleManaged.setup.objective"),value:G}),t.jsx(Pn,{label:e("adLauncher.googleManaged.setup.campaign"),value:f.values.campaignName}),t.jsx(Pn,{label:e("adLauncher.googleManaged.setup.adGroup"),value:f.values.adSetName}),t.jsx(Pn,{label:e("adLauncher.googleManaged.setup.ads"),value:D}),t.jsx(Pn,{label:e("adLauncher.googleManaged.setup.status"),value:f.values.adStatusOnLaunch?e("adLauncher.googleManaged.setup.activeOnLaunch"):e("adLauncher.googleManaged.setup.pausedOnLaunch")})]})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"lg",children:[t.jsx(g,{fw:700,mb:"sm",children:e("adLauncher.googleManaged.setup.priceBreakdown")}),t.jsxs(ae,{gap:8,children:[t.jsx(Pn,{label:e("adLauncher.googleManaged.setup.dailyBudget"),value:`$${L(k)}`}),t.jsx(Pn,{label:e("adLauncher.googleManaged.setup.duration"),value:`${R} ${e("adLauncher.googleManaged.setup.days")}`}),t.jsx(Pn,{label:e("adLauncher.googleManaged.setup.adBudget"),value:`$${L(B)}`}
98),t.jsxs(U,{justify:"space-between",align:"flex-start",gap:"sm",children:[t.jsxs(ae,{gap:2,children:[t.jsx(g,{size:"sm",c:"dimmed",children:e("adLauncher.googleManaged.setup.omnekyFee")}),t.jsx(g,{size:"xs",c:"dimmed",children:e("adLauncher.googleManaged.setup.feeHint")})]}),t.jsxs(g,{size:"sm",fw:600,children:["$",L($)]})]})]}),t.jsx(_t,{my:"sm"}),t.jsxs(U,{justify:"space-between",align:"center",children:[t.jsx(g,{fw:700,c:He,children:e("adLauncher.googleManaged.setup.totalDue")}),t.jsxs(g,{fw:800,size:"lg",c:He,children:["$",L(J)]})]})]})]})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>n($t(We.OBJECTIVE)),onNext:N,endAccessory:t.jsx(rt,{label:e("adLauncher.googleManaged.setup.activeOnLaunchToggle"),checked:f.values.adStatusOnLaunch,onChange:x=>f.setFieldValue("adStatusOnLaunch",x.currentTarget.checked)})})]})})}function Pn({label:e,value:n}){return t.jsxs(U,{justify:"space-between",gap:"sm",children:[t.jsx(g,{size:"sm",c:"dimmed",children:e}),t.jsx(g,{size:"sm",fw:600,ta:"right",style:{maxWidth:"60%"},lineClamp:2,children:n})]})}function mr({title:e,hint:n,values:a,field:i,min:s,max:r,maxChars:o,disabled:c,form:d,onRegenerateItem:m,onRegenerateSection:h,onAdd:p,onRemove:l,addLabel:b,regenerateLabel:u,mt:y}){const I=a.length>s;return t.jsxs(A,{mt:y,p:"md",style:{border:"1px solid var(--mantine-color-gray-3)",borderRadius:10,background:"var(--mantine-color-body)"},children:[t.jsxs(U,{justify:"space-between",align:"center",mb:4,children:[t.jsxs(A,{children:[t.jsx(g,{fw:600,size:"sm",children:e}),t.jsx(g,{size:"xs",c:"dimmed",children:n})]}),t.jsx(Ht,{onClick:h,disabled:c,style:{color:He,fontSize:12,fontWeight:600},children:u})]}),a.map((C,E)=>t.jsxs(U,{gap:"xs",align:"center",mb:"xs",children:[t.jsx(pe,{style:{flex:1},disabled:c,maxLength:o,"data-managed-field":`${i}.${E}`,rightSection:t.jsxs(g,{size:"xs",c:"dimmed",pr:4,children:[(d.values[i][E]||"").length,"/",o]}),rightSectionWidth:54,...d.getInputProps(`${i}.${E}`),error:d.errors[`${i}.${E}`]||d.errors[i]?d.errors[`${i}.${E}`]||!0:void 0}),t.jsx(gt,{variant:"subtle",color:"gray",disabled:c,onClick:()=>m(E),children:t.jsx(Ts,{size:16})}),t.jsx(gt,{variant:"subtle",color:"gray",disabled:c||!I,onClick:()=>l(E),"aria-label":"Remove",children:t.jsx(Us,{size:16})})]},`${i}-${E}`)),d.errors[i]&&t.jsx(g,{c:"var(--mantine-color-error)",size:"xs",mb:4,children:String(d.errors[i])}),t.jsxs(U,{justify:"space-between",align:"center",children:[t.jsxs(Me,{variant:"subtle",size:"xs",disabled:c||a.length>=r,onClick:p,style:{color:He},children:["+ ",b]}),t.jsxs(g,{size:"xs",c:"dimmed",children:[a.filter(C=>C.trim()).length," / ",r]})]})]})}function fr({label:e,value:n}){return t.jsxs(U,{justify:"space-between",gap:"sm",children:[t.jsx(g,{size:"sm",c:"dimmed",children:e}),t.jsx(g,{size:"sm",fw:600,children:n})]})}var aA={ENV:"prod",CHAT_WITH_DATA_API_URL:"https://delphi.omneky.com/",API_URL:"https://omneky-nexus-production.omneky.com/",CGP_BACKEND_API_URL:"https://cgp-backend.omneky.com/",DATA_API_URL:"https://data.omneky.com",EXPORT_ADS_API_URL:"https://adlauncher.omneky.com/",AI_CB_API_URL:"https://ai-creative-brief.omneky.com/",KEYWORDS_URL:"https://ai-regression.omneky.com/api/v1/gen_keywords/",REGRESSIONS_API_URL:"https://regression-prod.omneky.com/",STRIPE_API_KEY:"pk_live_4mVoF8lghE61vAr9m325o7qb00Qy68HbIh",GTM_ID:"GTM-PTZP7SCT",GTM_ID_SIGNUP:"GTM-5MDD544",FRONTEND_URL:"https://cgp.omneky.com",RECOMMENDATION_URL:"https://ai-analytics-prod.omneky.com",DATADOG_API_KEY:"1cbf363cbdd5a7cb61562067821e240c",VITE_PUBLIC_POSTHOG_PROJECT_TOKEN:"phc_CgAWduXWep9WYRbgGFN9qU9fUjV4QT45CbzHKJoHkFCS",VITE_POSTHOG_HOST:"https://s.omneky.com"};const iA=["campaignName","adSetName","headlines","longHeadlines","descriptions","destinationUrl","companyName","logos"],sA=gd,Bc=15,Uc=5,Hc=5,ns=3,xr=1,yr=2,br=30,Ar=90,Lr=90;function $c(e,n,a=2){return Math.abs(e-n)<=a}function rA(){var Ie,fe,Ee;const{t:e}=de(),n=xe(),a=_n(),{brandId:i}=ve(),s=S.useRef(null),r=S.useRef(null),[o,c]=S.useState(!1),[d,m]=S.useState(!1),[h,p]=S.useState(!1),{shellStyle:l,formStyle:b,scrollStyle:u,isMobile:y}=ze({pinFooter:!0}),{selectedAds:I,google:{form:C,durationDays:E,adsSelection:P,logos:D}}=re(W=>W.adLauncher),G=re(W=>W.adGallery.lastLaunchError),{logosData:_}=re(W=>W.library),{brandOverviewData:O}=re(W=>W.library),{data:f}=Ot(i),{data:k}=ri(),{launch:R}=pd(),B=Ch(),$=re(W=>W.adLauncher.paymentInFlight),J=B.isPending||h||$,z=S.useMemo(()=>(I.length?I:P.ads||[]).map(oe=>{var Z;return((Z=P.updatedAds)==null?void 0:Z.find(De=>De.id===oe.id))||oe}),[I,P.ads,P.updatedAds]),V=S.useMemo(()=>{var oe;const W=(oe=P.ads)!=null&&oe.length?P.ads:z;return hd(W,P.croppedVariants)},[P.ads,P.croppedVariants,z]),N=V[0],L=wt({initialValues:{campaignName:C.campaignName||"",adSetName:C.adSetName||"",headlines:(Ie=C.headlines)!=null&&Ie.length?C.headlines:["","",""],longHeadlines:(fe=C.longHeadlines)!=null&&fe.length?C.longHeadlines:[""],descriptions:(Ee=C.descriptions)!=null&&Ee.length?C.descriptions:["",""],destinationUrl:C.destinationUrl||(O==null?void 0:O.url)||"",companyName:C.companyName||(f==null?void 0:f.name)||"",adStatusOnLaunch:C.adStatusOnLaunch??!0},validate:{campaignName:W=>W.trim()?null:"Required",adSetName:W=>W.trim()?null:"Required",headlines:W=>{const oe=W.filter(ue=>ue.trim());return oe.length<3?e("adLauncher.googleAdLauncher.adsetHeadlines.headlines.error"):new Set(oe.map(ue=>ue.trim().toLowerCase())).size!==oe.length?e("adLauncher.googleAdLauncher.adsetHeadlines.headlines.uniqueError"):oe.some(ue=>ue.length>br)?e("adLauncher.googleAdLauncher.adsetHeadlines.headlines.charLimitError"):null},longHeadlines:W=>{const oe=W.filter(ue=>ue.trim());return oe.length<1?e("adLauncher.googleAdLauncher.adsetHeadlines.longHeadlines.error"):oe.some(ue=>ue.length>Ar)?e("adLauncher.googleAdLauncher.adsetHeadlines.longHeadlines.charLimitError"):null},descriptions:W=>{const oe=W.filter(ue=>ue.trim());return oe.length<2?e("adLauncher.googleAdLauncher.adsetHeadlines.descriptions.error"):oe.some(ue=>ue.length>Lr)?e("adLauncher.googleAdLauncher.adsetHeadlines.descriptions.charLimitError"):null},destinationUrl:W=>/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/g.test(W)?null:e("adLauncher.googleAdLauncher.adsetHeadlines.destinationUrl.error"),companyName:W=>W.trim()?null:e("adLauncher.googleManaged.setup.companyNameRequired",{defaultValue:"Company name is required before payment"})}});S.useEffect(()=>
98{i&&(_!=null&&_.length||n(Ii({brandId:i})))},[i,_==null?void 0:_.length,n]),S.useEffect(()=>{if(!N)return;let W=!1;return(async()=>{var Ge,we,be,Je;const ue=Bh(N);let Z={headlines:((Ge=C==null?void 0:C.headlines)==null?void 0:Ge.length)>0?C.headlines:ue.headlines,longHeadlines:((we=C==null?void 0:C.longHeadlines)==null?void 0:we.length)>0?C.longHeadlines:ue.longHeadlines,descriptions:((be=C==null?void 0:C.descriptions)==null?void 0:be.length)>0?C.descriptions:ue.descriptions};if(i&&(f==null?void 0:f.name)&&r.current!==N.id&&$h(Z,!0)){c(!0);const St=await po({adUrl:un(N),brandId:i,brandName:f.name,language:((Je=f.language)==null?void 0:Je.langCode)||"us-en"});if(W)return;r.current=N.id??null,St&&(Z=Wh(Z,St)),c(!1)}W||L.setValues({...L.values,headlines:Z.headlines,longHeadlines:Z.longHeadlines,descriptions:Z.descriptions,destinationUrl:L.values.destinationUrl||(O==null?void 0:O.url)||(C==null?void 0:C.destinationUrl)||""})})().catch(()=>{c(!1)}),()=>{W=!0,c(!1)}},[N==null?void 0:N.id,i,f==null?void 0:f.name]);const x=Number(C.budgetAmount)||0,v=Number(E)||7,T=x*v,H=parseFloat((T*sA).toFixed(2)),F=parseFloat((T+H).toFixed(2)),w=Math.round(F*100),K=W=>W.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),M=D.some(W=>$c(W.width,W.height)),ee=D.find(W=>!$c(W.width,W.height)),[ne,X]=S.useState(!1),ie=e("adLauncher.common.required",{defaultValue:"Required"}),Q=()=>{const W={};L.values.campaignName.trim()||(W.campaignName=ie),L.values.adSetName.trim()||(W.adSetName=ie);const oe=(we,be)=>{const Je=L.values[we];Je.filter(Vt=>Vt.trim()).length>=be||(Je.forEach((Vt,ke)=>{Vt.trim()||(W[`${we}.${ke}`]=ie)}),W[we]=ie)};oe("headlines",ns),oe("longHeadlines",xr),oe("descriptions",yr),L.values.headlines.forEach((we,be)=>{we.trim()&&we.length>br&&(W[`headlines.${be}`]=e("adLauncher.googleAdLauncher.adsetHeadlines.headlines.charLimitError"))}),L.values.longHeadlines.forEach((we,be)=>{we.trim()&&we.length>Ar&&(W[`longHeadlines.${be}`]=e("adLauncher.googleAdLauncher.adsetHeadlines.longHeadlines.charLimitError"))}),L.values.descriptions.forEach((we,be)=>{we.trim()&&we.length>Lr&&(W[`descriptions.${be}`]=e("adLauncher.googleAdLauncher.adsetHeadlines.descriptions.charLimitError"))});const ue=L.values.headlines.map(we=>we.trim().toLowerCase()).filter(Boolean);ue.length>=ns&&new Set(ue).size!==ue.length&&(W.headlines=e("adLauncher.googleAdLauncher.adsetHeadlines.headlines.uniqueError")),/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/g.test(L.values.destinationUrl||"")||(W.destinationUrl=e("adLauncher.googleAdLauncher.adsetHeadlines.destinationUrl.error")),L.values.companyName.trim()||(W.companyName=e("adLauncher.googleManaged.setup.companyNameRequired",{defaultValue:"Company name is required before payment"})),L.clearErrors(),L.setErrors(W);const De=D.length>=1&&M;X(!De);const Ge=Object.keys(W).length===0&&De;return Ge||da(W,iA,{extraTarget:De?null:"logos"}),Ge},j=async()=>{var W;return!N||!i||!(f!=null&&f.name)?null:po({adUrl:un(N),brandId:i,brandName:f.name,language:((W=f.language)==null?void 0:W.langCode)||"us-en"})},q=(W,oe)=>{var De;return W!=null&&W.length?((De=W[oe])==null?void 0:De.trim())?W[oe]:W.find(Ge=>Ge.trim())??null:null},se=async()=>{c(!0);try{const W=await j();if(!W)return;L.setValues(oe=>({...oe,headlines:W.headlines,longHeadlines:W.longHeadlines,descriptions:W.descriptions}))}finally{c(!1)}},le=async W=>{c(!0);try{const oe=await j();if(!oe)return;const ue=oe[W];L.setFieldValue(W,L.values[W].map((Z,De)=>q(ue,De)??""))}finally{c(!1)}},_e=async(W,oe)=>{c(!0);try{const ue=await j(),Z=q(ue==null?void 0:ue[W],oe);Z!=null&&L.setFieldValue(`${W}.${oe}`,Z)}finally{c(!1)}},te=(W,oe)=>{L.values[W].length>=oe||L.insertListItem(W,"")},me=(W,oe,ue)=>{L.values[W].length<=ue||L.removeListItem(W,oe)},Le=W=>{if(D.some(ue=>ue.id===W.id)){n(Br(D.filter(ue=>ue.id!==W.id)));return}D.length>=2||(n(Br([...D,W])),X(!1))},ye=W=>{n(wo({open:!0,adsToCrop:[W],step:"logos"}))},ge=async W=>{i&&(m(!0),await Promise.all(W.map(async oe=>{const ue=oe.name,Z=oe.name.split(".").pop(),De=`${oi()}.${Z}`;try{const Ge=await fetch(`${aA.API_URL+$l.library.signedUrlUpload}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Vl.get("cgpToken")}`},body:JSON.stringify({objects:[`library/brands/${i}/logos/${De}`]})});if(!Ge.ok)throw new Error("Failed to obtain signed URL");const we=await Ge.json(),be=new FormData;for(const zt of Object.keys(we[0].fields))be.append(zt,we[0].fields[zt]);if(be.append("file",oe),(await ai.post(we[0].url,be)).status!==204)throw new Error("Upload failed");const{width:St,height:Vt}=await Wl(oe),ke={brandId:i,name:ue,url:`${we[0].url}/library/brands/${i}/logos/${De}`,height:Vt||0,width:St||0};await n(Kl(ke))}catch(Ge){console.error("Error uploading logo:",Ge)}})),await n(Ii({brandId:i})),m(!1))},Ce=async()=>{var ue,Z,De,Ge;if(J||o||!Q())return;const W=k==null?void 0:k.stripeCustomerId;if(!W){he.show({title:e("adLauncher.googleManaged.finalPreview.paymentMissingTitle",{defaultValue:"Payment method missing"}),message:e("adLauncher.googleManaged.finalPreview.paymentMissingMessage",{defaultValue:"Please add a payment method in Settings before continuing."}),color:"red"});return}n(Hl({campaignName:L.values.campaignName,adSetName:L.values.adSetName,headlines:L.values.headlines,longHeadlines:L.values.longHeadlines,descriptions:L.values.descriptions,destinationUrl:L.values.destinationUrl,companyName:L.values.companyName.trim(),adStatusOnLaunch:L.values.adStatusOnLaunch})),n(nn(!0)),p(!0);let oe=null;try{const we=await li({stripeCustomerId:W,amount:w,description:`Google Managed Ad â ${v} day${v===1?"":"s"} campaign`,confirm:!0});oe=(we==null?void 0:we.paymentIntentId)??null;const be=3;let Je=!1;for(let Vt=1;Vt<=be;Vt++)try{const ke=await B.mutateAsync({brand_id:parseInt(i||"0",10),customer_name:L.values.companyName.trim(),currency_code:ap,time_zone:ip()});if(ke.status===201||ke.status===200){Je=!0;break}}catch{if(Vt===be)break}if(!Je)throw new Error("Could not set up managed account after multiple attempts.");const St=await R(We.PROGRESS,We.SUCCESS,We.FINAL_PREVIEW,{campaignName:L.values.campaignName,adSetName:L.values.adSetName,headlines:L.values.headlines,longHeadlines:L.values.longHeadlines,descriptions:L.values.descriptions,destinationUrl:L.values.destinationUrl,companyName:L.values.companyName.trim(),adStatusOnLaunch:L.values.adStatusOnLaunch});!St.isFullSuccess&&oe&&St.adsLaunchedCount===0&&(await ln(oe),he.show({title:e("adLauncher.googleManaged.finalPreview.launchFailedTitle",{defaultValue:"Launch failed"}),message:e("adLauncher.googleManaged.finalPreview.launchFailedMessage",{defaultValue:"Ad launch failed. Your payment has been refunded."}),color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})),St.isFullSuccess||(n(nn(!1)),n($t(We.FINAL_PREVIEW)))}catch(we){const be=we;oe?(await ln(oe).catch(()=>{}),he.show({title:e("adLauncher.googleManaged.finalPreview.refundedT
98itle",{defaultValue:"Something went wrong"}),message:e("adLauncher.googleManaged.finalPreview.refundedMessage",{defaultValue:"Your payment has been refunded. Please try again."}),color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})):pi({title:e("adLauncher.googleManaged.finalPreview.paymentFailedTitle",{defaultValue:"Payment failed"}),message:(be==null?void 0:be.message)||((Z=(ue=be==null?void 0:be.response)==null?void 0:ue.data)==null?void 0:Z.message)||((Ge=(De=be==null?void 0:be.response)==null?void 0:De.data)==null?void 0:Ge.detail)||e("adLauncher.googleManaged.finalPreview.paymentFailedMessage",{defaultValue:"Could not process payment. Please try again."}),onUpdateCard:()=>a(gi(i))}),n(nn(!1)),n($t(We.FINAL_PREVIEW))}finally{n(nn(!1)),p(!1)}},Y=L.values.headlines.find(W=>W.trim())||e("adLauncher.googleManaged.finalPreview.previewHeadlineFallback",{defaultValue:"Your headline"}),ce=(()=>{const W=L.values.destinationUrl||(O==null?void 0:O.url)||"yourwebsite.com";try{return new URL(W.startsWith("http")?W:`https://${W}`).hostname.replace(/^www\./,"")}catch{return W.replace(/^https?:\/\//,"").replace(/^www\./,"").split("/")[0]||"yourwebsite.com"}})();return t.jsx(A,{style:l,children:t.jsxs(A,{style:b,children:[t.jsx(A,{style:u,children:t.jsxs(A,{style:{maxWidth:1100,margin:"0 auto",width:"100%"},px:y?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.googleManaged.finalPreview.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"md",children:e("adLauncher.googleManaged.finalPreview.subtitle")}),t.jsx(Tn,{error:G,onDismiss:()=>n(Xe(null))}),t.jsx(Ae,{withBorder:!0,radius:"md",padding:"md",mb:"md",bg:"white",children:t.jsxs(U,{gap:"md",direction:y?"column":"row",children:[t.jsx(pe,{style:{flex:1},label:e("adLauncher.googleManaged.setup.campaignName"),withAsterisk:!0,"data-managed-field":"campaignName",...L.getInputProps("campaignName")}),t.jsx(pe,{style:{flex:1},label:e("adLauncher.googleManaged.setup.adGroupName"),withAsterisk:!0,"data-managed-field":"adSetName",...L.getInputProps("adSetName")})]})}),t.jsxs(U,{gap:"xl",direction:y?"column":"row",align:"flex-start",children:[t.jsxs(ae,{style:{flex:1,minWidth:0},gap:"lg",children:[t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsx(g,{fw:700,mb:"sm",children:e("adLauncher.googleManaged.setup.priceBreakdown")}),t.jsxs(ae,{gap:6,children:[t.jsx(fr,{label:e("adLauncher.googleManaged.setup.dailyBudget"),value:`$${K(x)}`}),t.jsx(fr,{label:e("adLauncher.googleManaged.setup.duration"),value:`${v} ${e("adLauncher.googleManaged.setup.days")}`}),t.jsx(fr,{label:e("adLauncher.googleManaged.setup.adBudget"),value:`$${K(T)}`}),t.jsxs(U,{justify:"space-between",align:"flex-start",children:[t.jsxs(ae,{gap:2,children:[t.jsx(g,{size:"sm",c:"dimmed",children:e("adLauncher.googleManaged.setup.omnekyFee")}),t.jsx(g,{size:"xs",c:"dimmed",children:e("adLauncher.googleManaged.setup.feeHint")})]}),t.jsxs(g,{size:"sm",fw:600,children:["$",K(H)]})]})]}),t.jsx(_t,{my:"sm"}),t.jsxs(U,{justify:"space-between",children:[t.jsx(g,{fw:700,c:He,children:e("adLauncher.googleManaged.setup.totalDue")}),t.jsxs(g,{fw:800,size:"lg",c:He,children:["$",K(F)]})]})]}),t.jsxs(A,{children:[t.jsxs(U,{justify:"space-between",align:"center",mb:"sm",children:[t.jsx(g,{fw:700,children:e("adLauncher.googleManaged.finalPreview.adCopyTitle")}),t.jsx(Ht,{onClick:()=>{se().catch(()=>{})},disabled:o,style:{color:He,fontSize:13,fontWeight:600},children:e("adLauncher.googleManaged.finalPreview.regenerateAll")})]}),o&&t.jsx(g,{size:"sm",c:"dimmed",mb:"sm",children:e("adLauncher.adsetSettings.generatingCopy",{defaultValue:"Generating ad copy..."})}),t.jsx(mr,{title:e("adLauncher.googleManaged.finalPreview.headline"),hint:e("adLauncher.googleManaged.finalPreview.headlineHint"),values:L.values.headlines,field:"headlines",min:ns,max:Bc,maxChars:br,disabled:o,form:L,onRegenerateItem:W=>{_e("headlines",W).catch(()=>{})},onRegenerateSection:()=>{le("headlines").catch(()=>{})},onAdd:()=>te("headlines",Bc),onRemove:W=>me("headlines",W,ns),addLabel:e("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew"),regenerateLabel:e("adLauncher.googleManaged.finalPreview.regenerateAll")}),t.jsx(mr,{title:e("adLauncher.googleManaged.finalPreview.longHeadline"),hint:e("adLauncher.googleManaged.finalPreview.longHeadlineHint"),values:L.values.longHeadlines,field:"longHeadlines",min:xr,max:Uc,maxChars:Ar,disabled:o,form:L,onRegenerateItem:W=>{_e("longHeadlines",W).catch(()=>{})},onRegenerateSection:()=>{le("longHeadlines").catch(()=>{})},onAdd:()=>te("longHeadlines",Uc),onRemove:W=>me("longHeadlines",W,xr),addLabel:e("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew"),regenerateLabel:e("adLauncher.googleManaged.finalPreview.regenerateAll"),mt:"lg"}),t.jsx(mr,{title:e("adLauncher.googleManaged.finalPreview.description"),hint:e("adLauncher.googleManaged.finalPreview.descriptionHint"),values:L.values.descriptions,field:"descriptions",min:yr,max:Hc,maxChars:Lr,disabled:o,form:L,onRegenerateItem:W=>{_e("descriptions",W).catch(()=>{})},onRegenerateSection:()=>{le("descriptions").catch(()=>{})},onAdd:()=>te("descriptions",Hc),onRemove:W=>me("descriptions",W,yr),addLabel:e("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew"),regenerateLabel:e("adLauncher.googleManaged.finalPreview.regenerateAll"),mt:"lg"}),t.jsxs(A,{mt:"lg",p:"md",style:{border:"1px solid var(--mantine-color-gray-3)",borderRadius:10,background:"var(--mantine-color-body)"},children:[t.jsx(g,{fw:600,size:"sm",mb:4,children:e("adLauncher.googleAdLauncher.adsetHeadlines.destinationUrl.text")}),t.jsx(g,{size:"xs",c:"dimmed",mb:4,children:e("adLauncher.googleAdLauncher.adsetHeadlines.destinationUrl.helperText")}),t.jsx(pe,{"data-managed-field":"destinationUrl",...L.getInputProps("destinationUrl")}),t.jsx(pe,{mt:"md",withAsterisk:!0,label:e("adLauncher.campaignDetails.budget.companyName"),placeholder:e("adLauncher.campaignDetails.budget.companyNamePlaceholder"),"data-managed-field":"companyName",...L.getInputProps("companyName")})]})]})]}),t.jsxs(ae,{gap:"md",style:{width:y?"100%":320,flexShrink:0},children:[t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white","data-managed-field":"logos",style:ne?{borderColor:"var(--mantine-color-red-6)",borderWidth:2}:void 0,children:[t.jsxs(U,{justify:"space-between",align:"center",mb:"sm",children:[t.jsx(g,{fw:700,children:e("adLauncher.googleManaged.finalPreview.selectLogo")}),t.jsx(Qe,{color:"orange",variant:"light",radius:"sm",children:e("adLauncher.googleManaged.finalPreview.squareLogoRequired")})]}),ne&&t.jsx(g,{size:"xs",c:"red",mb:"sm",children:e("adLauncher.googleManaged.finalPreview.logoEmptyHint")}),t.jsx(Nt,{type:"hover",offsetScrollbars:!0,children:t.jsxs(U,{gap:"sm",pb:4,children:[t.jsxs(Ht,{onClick:()=>{var W;return(W=s.current)==null?void 0:W.click()},style:{width:72,height:72,border:"1px dashed #ccc",borderRadius:8,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",background:"#F6F6F6",flexShrink:0},children:[d?t.jsx(et,{size:"xs"}):t.jsx(yo,{size:18}),t.jsx(g,{size:"xs",fw:600,ta:"center",px:4,children:e("adLauncher.googleManaged.finalPreview.uploadNew")}
98),t.jsx("input",{ref:s,type:"file",accept:".png,.jpeg,.jpg,.gif,image/png,image/jpeg,image/gif",multiple:!0,style:{display:"none"},onChange:W=>{W.target.files&&ge(Array.from(W.target.files)).catch(()=>{})}})]}),_==null?void 0:_.map(W=>{const oe=D.some(ue=>ue.id===W.id);return t.jsxs(A,{style:{width:72,height:72,borderRadius:8,border:oe?`3px solid ${He}`:"1px solid #e9ecef",overflow:"hidden",position:"relative",cursor:"pointer",flexShrink:0,background:"#f9f9f9"},onClick:()=>Le(W),children:[t.jsx(ot,{src:W.url,fit:"contain",h:72,w:72}),oe&&t.jsx(gt,{size:"sm",variant:"filled",color:"dark",radius:"xl",style:{position:"absolute",top:4,right:4},onClick:ue=>{ue.stopPropagation(),ye(W)},children:t.jsx(Ng,{size:12})})]},W.id)})]})}),ee&&t.jsx(A,{mt:"sm",p:"sm",style:{background:"var(--mantine-color-orange-0)",border:"1px solid var(--mantine-color-orange-3)",borderRadius:8},children:t.jsxs(g,{size:"sm",c:"orange.8",children:[e("adLauncher.googleManaged.finalPreview.logoAspectError")," ",t.jsx(g,{span:!0,inherit:!0,td:"underline",fw:600,style:{cursor:"pointer"},onClick:()=>ye(ee),children:e("adLauncher.googleManaged.finalPreview.cropLogoImage")})]})}),!D.length&&t.jsx(g,{size:"xs",c:"dimmed",mt:"sm",children:e("adLauncher.googleManaged.finalPreview.logoEmptyHint")})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsx(g,{fw:700,mb:4,children:e("adLauncher.googleManaged.finalPreview.managedAccountTitle")}),t.jsx(g,{size:"xs",c:"dimmed",mb:"md",children:e("adLauncher.googleManaged.finalPreview.managedAccountBody")}),t.jsx(U,{justify:"center",children:t.jsx(np,{ads:V,headline:Y,website:ce,ctaLabel:"Learn more"})})]})]})]}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.cancel",{defaultValue:"Cancel"}),nextLabel:e("adLauncher.googleManaged.finalPreview.continueToPay"),onBack:()=>n($t(We.SETUP)),onNext:()=>{Ce().catch(()=>{})},nextDisabled:J,nextLoading:J,backDisabled:J,endAccessory:t.jsx(rt,{label:e("adLauncher.googleManaged.setup.activeOnLaunchToggle"),checked:L.values.adStatusOnLaunch,disabled:J,onChange:W=>L.setFieldValue("adStatusOnLaunch",W.currentTarget.checked)})})]})})}const Vc=2,oA=20,dA={default:4,1200:3,700:2,500:1};function cA(e){return e?e.replace(/x/i,"X"):"â"}function lA(e){if(!e)return"â";const[n,a]=e.toLowerCase().split("x").map(Number);if(!n||!a)return"â";const i=(r,o)=>o?i(o,r%o):r,s=i(Math.round(n),Math.round(a))||1;return`${n/s}:${a/s}`}function uA(e){const n=Lt(),a=e.previewStorageKey;return!a||a==="public/"?"":a.includes("public/")?st(`${bt[n]}/${a}`):st(`${At[n]}/${a}`)}function hA(){const{t:e}=de(),n=xe(),{persist:a}=Rt(),i=md(),{brandId:s}=ve(),r=S.useRef(null),{shellStyle:o,formStyle:c,scrollStyle:d,isMobile:m}=ze({pinFooter:!0}),{selectedAds:h}=re(G=>G.adLauncher),{data:p,fetchNextPage:l,hasNextPage:b,isFetchingNextPage:u,isPending:y}=Cn({mode:"brand",brandId:s??""}),I=S.useMemo(()=>((p==null?void 0:p.pages)||[]).flatMap(G=>G.items),[p]),{showLoading:C,showEmpty:E}=oa({count:I.length,isPending:y,hasNextPage:b,isFetchingNextPage:u}),P=G=>{const _=h.some(f=>f.id===G.id);let O;if(_)O=h.filter(f=>f.id!==G.id);else{if(h.length>=oA)return;O=[...h,G]}n(Gs(O))},D=()=>{h.length<Vc||(Oe(Dl,{brandId:s}),n(Dt(Ve.CAMPAIGN)),a())};return t.jsx(A,{style:o,children:t.jsxs(A,{style:c,children:[t.jsx(A,{style:d,children:t.jsxs(A,{style:{maxWidth:960,margin:"0 auto",width:"100%"},px:m?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.metaManaged.adsPick.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"md",children:e("adLauncher.metaManaged.adsPick.subtitle")}),t.jsx(Nt,{style:{flex:1,minHeight:280},viewportRef:r,onScrollPositionChange:({y:G})=>{const _=r.current;!_||!b||u||G>_.scrollHeight-_.clientHeight-120&&(l==null||l())},scrollbars:"y",children:C||E?t.jsx(Sn,{isLoading:C}):t.jsx(In,{breakpointCols:dA,className:"my-masonry-grid",columnClassName:"my-masonry-grid_column",children:I.map(G=>{const _=h.some(k=>k.id===G.id),O=Te(G.previewStorageKey),f=uA(G);return t.jsxs(Ae,{padding:0,radius:"md",withBorder:!0,mb:"sm",style:{cursor:"pointer",borderColor:_?He:void 0,borderWidth:_?3:1,position:"relative",overflow:"hidden"},onClick:()=>P(G),children:[_&&t.jsx(vn,{size:22,radius:"xl",color:"blue",style:{position:"absolute",top:8,right:8,zIndex:2},children:t.jsx(mn,{size:13})}
98),O?t.jsx("video",{src:f,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,style:{width:"100%",height:"auto",maxHeight:280,display:"block",objectFit:"cover"}}):t.jsx(ot,{src:f,alt:G.name||"Ad",fit:"cover",mah:280}),t.jsxs(U,{justify:"space-between",px:"sm",py:"xs",children:[t.jsx(g,{size:"xs",c:"dimmed",children:cA(G.size)}),t.jsx(g,{size:"xs",fw:700,children:lA(G.size)})]})]},G.id)})})}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>{i(),n(Dt(Ve.PLATFORM))},onNext:D,nextDisabled:h.length<Vc})]})})}const pA="rgba(51, 51, 153, 0.1)";function gA(){const{t:e}=de(),n=xe(),{persist:a}=Rt(),{shellStyle:i,formStyle:s,scrollStyle:r,isMobile:o}=ze({pinFooter:!0}),{meta:{objective:c}}=re(h=>h.adLauncher),d=[{key:"traffic",storedTitle:"Traffic",icon:t.jsx(Nu,{size:22,color:He}),tagline:e("adLauncher.metaManaged.objective.traffic.tagline"),goodFor:Object.values(e("adLauncher.metaManaged.objective.traffic.goodFor",{returnObjects:!0}))},{key:"awareness",storedTitle:"Awareness",icon:t.jsx(Mu,{size:22,color:He}),tagline:e("adLauncher.metaManaged.objective.awareness.tagline"),goodFor:Object.values(e("adLauncher.metaManaged.objective.awareness.goodFor",{returnObjects:!0}))}],m=c==="Traffic"||c==="Awareness";return t.jsx(A,{style:i,children:t.jsxs(A,{style:s,children:[t.jsx(A,{style:r,children:t.jsxs(A,{style:{maxWidth:880,margin:"0 auto",width:"100%"},px:o?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.metaManaged.objective.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"lg",children:e("adLauncher.metaManaged.objective.subtitle")}),t.jsx(on,{cols:{base:1,sm:2},spacing:"md",children:d.map(h=>{const p=c===h.storedTitle;return t.jsxs(Ae,{padding:"lg",radius:"md",withBorder:!0,bg:"white",style:{cursor:"pointer",borderColor:p?He:"var(--mantine-color-gray-3)",borderWidth:p?2:1,position:"relative",height:"100%"},onClick:()=>{n($p(h.storedTitle)),n(Cs(!1))},children:[p&&t.jsx(vn,{size:22,radius:"xl",color:"blue",style:{position:"absolute",top:12,right:12},children:t.jsx(mn,{size:13})}),t.jsxs(ae,{gap:"md",children:[t.jsx(A,{style:{width:44,height:44,borderRadius:10,background:pA,display:"flex",alignItems:"center",justifyContent:"center"},children:h.icon}),t.jsxs(A,{children:[t.jsx(g,{fw:700,size:"lg",children:e(`adLauncher.campaignObjectives.${h.key}.title`)}),t.jsx(g,{size:"sm",c:"dimmed",mt:2,children:h.tagline})]}),t.jsx(g,{size:"sm",children:e(`adLauncher.campaignObjectives.${h.key}.description`)}),t.jsx(_t,{color:"gray.3"}),t.jsxs(A,{children:[t.jsx(g,{fw:700,size:"sm",mb:"xs",children:e("adLauncher.metaManaged.objective.goodForLabel")}),t.jsx(U,{gap:8,wrap:"wrap",children:h.goodFor.map(l=>t.jsx(Qe,{size:"md",variant:"light",color:"gray",radius:"xl",tt:"none",fw:500,children:l},l))})]})]})]},h.key)})}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>n(Dt(Ve.CREATIVE)),onNext:()=>{m&&(n(Dt(Ve.SETUP)),a())},nextDisabled:!m})]})})}const mA=["campaignName","adSetName","budgetAmount","countries","ageMin"],fA=.12,as=7,Wc=90,bi=10,Kc=500,xA=1.25;function yA(){var H,F;const{t:e}=de(),n=xe(),{brandId:a}=ve(),{data:i}=Ot(a),{data:s}=sd(a,!0),{shellStyle:r,formStyle:o,scrollStyle:c,isMobile:d}=ze({pinFooter:!0}),{persist:m}=Rt(),{selectedAds:h,meta:{objective:p,campaign:l,durationDays:b}}=re(w=>w.adLauncher),u=So(p),y=u||p||"â",I=u?Vp[u]:[],C=S.useMemo(()=>{const w=(i==null?void 0:i.name)||"Brand",K=new Date().toLocaleString("en-US",{month:"short",year:"numeric"});return`${w} â ${y} â ${K}`},[i==null?void 0:i.name,y]),E=S.useMemo(()=>`${(i==null?void 0:i.name)||"Brand"} â Broad`,[i==null?void 0:i.name]),P=S.useMemo(()=>(s||[]).filter(w=>!!w.value&&!!w.label),[s]),D=S.useMemo(()=>iu(),[]),G=su(l,D),[_,O]=S.useState({budgetOptimizeOn:!0,specialAdCategories:(l==null?void 0:l.specialAdCategories)??[],bidStrategy:(l==null?void 0:l.bidStrategy)||"LOWEST_COST_WITHOUT_CAP",bidAmount:l==null?void 0:l.bidAmount,startDate:(l==null?void 0:l.startDate)||null,endD
98ate:(l==null?void 0:l.endDate)||null,detailedTargeting:(l==null?void 0:l.detailedTargeting)??[],placementMode:(l==null?void 0:l.placementMode)||"advantage_plus",publisherPlatforms:(l==null?void 0:l.publisherPlatforms)??[],facebookPositions:(l==null?void 0:l.facebookPositions)??[],instagramPositions:(l==null?void 0:l.instagramPositions)??[],audienceNetworkPositions:(l==null?void 0:l.audienceNetworkPositions)??[],advantageAudience:(l==null?void 0:l.advantageAudience)??!1}),f=wt({initialValues:{campaignName:(l==null?void 0:l.campaignName)||C,adSetName:(l==null?void 0:l.adSetName)||E,budgetAmount:G.dailyBudget??50,budgetType:(l==null?void 0:l.budgetType)||"Daily",durationDays:Math.max(b||7,as),countries:(H=l==null?void 0:l.countries)!=null&&H.length?l.countries:[],audienceMode:"platform",optimizationGoal:(l==null?void 0:l.optimizationGoal)||((F=I[0])==null?void 0:F.value)||"",adStatusOnLaunch:(l==null?void 0:l.checked)??!0,ageMin:G.ageMin,ageMax:G.ageMax,gender:G.gender},validate:{campaignName:w=>String(w).trim()?null:e("adLauncher.common.required",{defaultValue:"Required"}),adSetName:w=>String(w).trim()?null:e("adLauncher.common.required",{defaultValue:"Required"}),budgetAmount:w=>Number(w)<bi?e("adLauncher.metaManaged.setup.budgetMinError",{defaultValue:`Minimum daily budget is $${bi}`,min:bi}):null,countries:w=>w!=null&&w.length?null:e("adLauncher.metaManaged.setup.countriesRequired",{defaultValue:"Select at least one country"}),ageMin:(w,K)=>ys(Number(w),Number(K.ageMax))?null:e("adLauncher.metaTargeting.ageRangeError")}}),k=Number(f.values.budgetAmount)||0,R=Number(f.values.durationDays)||as,B=k*R,$=parseFloat((B*fA).toFixed(2)),J=parseFloat((B+$).toFixed(2)),z=k*xA,V=k*7,N=w=>w.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),L=h.filter(w=>!Te(w.previewStorageKey)).length,x=h.length-L,v=[L>0?e("adLauncher.metaManaged.setup.adsImages",{count:L}):null,x>0?e("adLauncher.metaManaged.setup.adsVideos",{count:x}):null].filter(Boolean).join(", "),T=()=>{const w=f.validate();if(w.hasErrors){da(w.errors,mA);return}Mi(_.bidStrategy,_.bidAmount)||(n(Ur({campaignName:f.values.campaignName,budgetType:f.values.budgetType,budgetAmount:f.values.budgetAmount,adSetName:f.values.adSetName,optimizationGoal:f.values.optimizationGoal,pixel:"",countries:f.values.countries,checked:f.values.adStatusOnLaunch,endDate:"",ageMin:f.values.ageMin,ageMax:f.values.ageMax,gender:f.values.gender,budgetOptimizeOn:!0,specialAdCategories:_.specialAdCategories,bidStrategy:_.bidStrategy,bidAmount:_.bidAmount,startDate:aa(_.startDate)??"",detailedTargeting:_.detailedTargeting,placementMode:_.placementMode,publisherPlatforms:_.publisherPlatforms,facebookPositions:_.facebookPositions,instagramPositions:_.instagramPositions,audienceNetworkPositions:_.audienceNetworkPositions,advantageAudience:_.advantageAudience})),Ti(),n(Is(f.values.durationDays)),n(Dt(Ve.AD_COPY)),m())};return t.jsx(A,{style:r,children:t.jsxs(A,{style:o,children:[t.jsxs(A,{style:c,children:[t.jsxs(U,{gap:"xl",direction:d?"column":"row",style:{maxWidth:1040,margin:"0 auto",width:"100%"},px:d?"md":0,pb:"md",children:[t.jsxs(ae,{style:{flex:1,minWidth:0},gap:"md",children:[To(D)&&t.jsx(Yh,{params:D}),t.jsxs(A,{children:[t.jsx(Be,{order:3,children:e("adLauncher.metaManaged.setup.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,children:e("adLauncher.metaManaged.setup.subtitle")})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsx(g,{fw:600,mb:"sm",children:e("adLauncher.metaManaged.setup.names")}),t.jsx(pe,{label:e("adLauncher.metaManaged.setup.campaignName"),withAsterisk:!0,mb:"sm","data-managed-field":"campaignName",...f.getInputProps("campaignName")}),t.jsx(pe,{label:e("adLauncher.metaManaged.setup.adSetName"),withAsterisk:!0,"data-managed-field":"adSetName",...f.getInputProps("adSetName")})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsxs(g,{fw:600,mb:"xs",children:[e("adLauncher.metaManaged.setup.budgetAmount")," *"]}),t.jsxs(U,{gap:"sm",align:"flex-end",mb:"xs",children:[t.jsx(at,{style:{flex:1},min:bi,max:Kc,prefix:"$",decimalScale:0,"data-managed-field":"budgetAmount",...f.getInputProps("budgetAmount")}),t.jsx(Re,{w:110,data:[{value:"Daily",label:e("adLauncher.metaManaged.setup.daily")}],allowDeselect:!1,...f.getInputProps("budgetType")})]}),t.jsx(Ln,{min:bi,max:Kc,value:f.values.budgetAmount,onChange:w=>f.setFieldValue("budgetAmount",w),mb:"xs",color:"blue"}),t.jsx(g,{size:"xs",c:"dimmed",mb:"lg",children:e("adLauncher.metaManaged.setup.budgetHelp",{daily:N(k),maxDaily:N(z),maxWeekly:N(V)})}),t.jsx(g,{fw:600,mb:"xs",children:e("adLauncher.metaManaged.setup.duration")}),t.jsx(at,{min:as,max:Wc,mb:"xs",...f.getInputProps("durationDays")}),t.jsx(Ln,{min:as,max:Wc,value:f.values.durationDays,onChange:w=>f.setFieldValue("durationDays",w),marks:[{value:7,label:"7d"},{value:30,label:"30d"},{value:60,label:"60d"},{value:90,label:"90d"}],color:"blue"})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsx(g,{fw:600,mb:"sm",children:e("adLauncher.metaManaged.setup.targeting")}),t.jsx(Yt,{label:e("adLauncher.metaManaged.setup.country"),data:P,searchable:!0,mb:"md","data-managed-field":"countries",...f.getInputProps("countries")}),t.jsx(A,{mb:"md","data-managed-field":"ageMin",children:t.jsx(Xh,{ageMin:f.values.ageMin,ageMax:f.values.ageMax,gender:f.values.gender,onAgeMinCh
98ange:w=>f.setFieldValue("ageMin",w),onAgeMaxChange:w=>f.setFieldValue("ageMax",w),onGenderChange:w=>f.setFieldValue("gender",w),ageError:typeof f.errors.ageMin=="string"?f.errors.ageMin:null})}),t.jsx(Zh,{values:_,onChange:w=>O(K=>({...K,...w})),showBudgetLevel:!1,showSchedule:!1}),t.jsx(g,{size:"sm",fw:600,mb:6,children:e("adLauncher.metaManaged.setup.audienceSignals")}),t.jsx(La,{fullWidth:!0,mb:"md",data:[{value:"platform",label:e("adLauncher.metaManaged.setup.letPlatformDecide")},{value:"signals",label:e("adLauncher.metaManaged.setup.illAddSignals"),disabled:!0}],...f.getInputProps("audienceMode")}),t.jsx(Re,{label:e("adLauncher.metaManaged.setup.optimizationGoals"),data:I,allowDeselect:!1,...f.getInputProps("optimizationGoal")})]})]}),t.jsxs(ae,{gap:"md",style:{width:d?"100%":320,flexShrink:0,alignSelf:"flex-start"},children:[t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"lg",bg:"white",children:[t.jsx(g,{fw:700,mb:"sm",children:e("adLauncher.metaManaged.setup.summaryTitle")}),t.jsxs(ae,{gap:8,children:[t.jsx(On,{label:e("adLauncher.metaManaged.setup.platform"),value:e("adLauncher.metaManaged.setup.platformValue")}),t.jsx(On,{label:e("adLauncher.metaManaged.setup.objective"),value:y}),t.jsx(On,{label:e("adLauncher.metaManaged.setup.campaign"),value:f.values.campaignName}),t.jsx(On,{label:e("adLauncher.metaManaged.setup.adSet"),value:f.values.adSetName}),t.jsx(On,{label:e("adLauncher.metaManaged.setup.ads"),value:v||"â"}),t.jsx(On,{label:e("adLauncher.metaManaged.setup.status"),value:f.values.adStatusOnLaunch?e("adLauncher.metaManaged.setup.activeOnLaunch"):e("adLauncher.metaManaged.setup.pausedOnLaunch")})]})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"lg",bg:"white",children:[t.jsx(g,{fw:700,mb:"sm",children:e("adLauncher.metaManaged.setup.priceBreakdown")}),t.jsxs(ae,{gap:8,children:[t.jsx(On,{label:e("adLauncher.metaManaged.setup.dailyBudget"),value:`$${N(k)}`}),t.jsx(On,{label:e("adLauncher.metaManaged.setup.duration"),value:`${R} ${e("adLauncher.metaManaged.setup.days")}`}),t.jsx(On,{label:e("adLauncher.metaManaged.setup.adBudget"),value:`$${N(B)}`}),t.jsxs(U,{justify:"space-between",align:"flex-start",children:[t.jsxs(ae,{gap:2,children:[t.jsx(g,{size:"sm",c:"dimmed",children:e("adLauncher.metaManaged.setup.omnekyFee")}),t.jsx(g,{size:"xs",c:"dimmed",children:e("adLauncher.metaManaged.setup.feeHint")})]}),t.jsxs(g,{size:"sm",fw:600,children:["$",N($)]})]})]}),t.jsx(_t,{my:"sm"}),t.jsxs(U,{justify:"space-between",children:[t.jsx(g,{fw:700,c:He,children:e("adLauncher.metaManaged.setup.totalDue")}),t.jsxs(g,{fw:800,size:"lg",c:He,children:["$",N(J)]})]})]})]})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>{n(Ur({campaignName:f.values.campaignName,budgetType:f.values.budgetType,budgetAmount:f.values.budgetAmount,adSetName:f.values.adSetName,optimizationGoal:f.values.optimizationGoal,pixel:"",countries:f.values.countries,checked:f.values.adStatusOnLaunch,endDate:"",ageMin:f.values.ageMin,ageMax:f.values.ageMax,gender:f.values.gender,budgetOptimizeOn:!0,specialAdCategories:_.specialAdCategories,bidStrategy:_.bidStrategy,bidAmount:_.bidAmount,startDate:aa(_.startDate)??"",detailedTargeting:_.detailedTargeting,placementMode:_.placementMode,publisherPlatforms:_.publisherPlatforms,facebookPositions:_.facebookPositions,instagramPositions:_.instagramPositions,audienceNetworkPositions:_.audienceNetworkPositions,advantageAudience:_.advantageAudience})),n(Is(f.values.durationDays)),n(Dt(Ve.CAMPAIGN))},onNext:T,endAccessory:t.jsx(rt,{label:e("adLauncher.metaManaged.setup.activeOnLaunchToggle"),checked:f.values.adStatusOnLaunch,onChange:w=>f.setFieldValue("adStatusOnLaunch",w.currentTarget.checked)})})]})})}function On({label:e,value:n}){return t.jsxs(U,{justify:"space-between",gap:"sm",children:[t.jsx(g,{size:"sm",c:"dimmed",children:e}),t.jsx(g,{size:"sm",fw:600,ta:"right",style:{maxWidth:"60%"},lineClamp:2,children:n})]})}const bA=["headline","primaryText","callToAction","url"],go=5,mo=2;function is(e){const n=Lt(),a=e.previewStorageKey;return!a||a==="public/"?"":a.includes("public/")?`${bt[n]}/${a}`:`${At[n]}/${a}`}function AA(){var L,x;const{t:e}=de(),n=xe(),{brandId:a}=ve(),{data:i}=Ot(a),{brandOverviewData:s}=re(v=>v.library),{shellStyle:r,formStyle:o,scrollStyle:c,isMobile:d}=ze({pinFooter:!0}),{persist:m}=Rt(),{selectedAds:h,meta:{campaign:p,adCopy:l}}=re(v=>v.adLauncher),[b,u]=S.useState(0),[y,I]=S.useState(!1),C=S.useRef(null),E=h[0],P=wt({initialValues:{headline:(L=l==null?void 0:l.headline)!=null&&L.length?l.headline:["",""],primaryText:(x=l==null?void 0:l.primaryText)!=null&&x.length?l.primaryText:["",""],callToAction:(l==null?void 0:l.callToAction)||Rr[0]||"Learn More",url:(l==null?void 0:l.url)||(s==null?void 0:s.url)||"",checked:(l==null?void 0:l.checked)??(p==null?void 0:p.checked)??!0}});S.useEffect(()=>{if(!E)return;let v=!1;return(async()=>{var K,M,ee,ne,X,ie,Q;const H=Fh(E);let F=(K=l==null?void 0:l.headline)!=null&&K.some(j=>j.trim())||(M=l==null?void 0:l.primaryText)!=null&&M.some(j=>j.trim())?{headline:[((ee=l.headline)==null?void 0:ee[0])||H.headline[0],((ne=l.headline)==null?void 0:ne[1])||H.headline[1]],primaryText:[((X=l.primaryText)==null?void 0:X[0])||H.primaryText[0],((ie=l.primaryText)==null?void 0:ie[1])||H.primaryText[1]]}:H;if(a&&(i==null?void 0:i.name)&&C.current!==E.id&&Hh(F)){I(!0);const j=await ho({adUrl:un(E),brandId:a,brandName:i.name,language:((Q=i.language)==null?void 0:Q.langCode)||"us-en"});if(v)return;
98C.current=E.id??null,j&&(F=Vh(F,j)),I(!1)}v||P.setValues({...P.values,headline:[...F.headline],primaryText:[...F.primaryText],url:P.values.url||(s==null?void 0:s.url)||""})})().catch(()=>I(!1)),()=>{v=!0,I(!1)}},[E==null?void 0:E.id,a,i==null?void 0:i.name]);const D=e("adLauncher.common.required",{defaultValue:"Required"}),G=()=>{const v={},T=F=>{const w=P.values[F];w.filter(M=>M.trim()).length>=mo||(w.forEach((M,ee)=>{M.trim()||(v[`${F}.${ee}`]=D)}),v[F]=D)};T("headline"),T("primaryText"),Kn(P.values.primaryText)&&(v.primaryText=e("adLauncher.adsetSettings.validations.primaryTextDuplicate")),Kn(P.values.headline)&&(v.headline=e("adLauncher.adsetSettings.validations.headlineDuplicate")),P.values.callToAction||(v.callToAction=D),Wa.test(P.values.url||"")||(v.url=e("adLauncher.launchAd.validations.urlInvalid",{defaultValue:"Enter a valid URL"})),P.clearErrors(),P.setErrors(v);const H=Object.keys(v).length===0;return H||da(v,bA),H},_=async()=>{var v;return!E||!a||!(i!=null&&i.name)?null:ho({adUrl:un(E),brandId:a,brandName:i.name,language:((v=i.language)==null?void 0:v.langCode)||"us-en"})},O=(v,T)=>{var w;return v!=null&&v.length?((w=v[T])==null?void 0:w.trim())?v[T]:v.find(K=>K.trim())??null:null},f=async v=>{I(!0);try{const T=await _();if(!T)return;const H=T[v];P.setFieldValue(v,P.values[v].map((F,w)=>O(H,w)??""))}finally{I(!1)}},k=async(v,T)=>{I(!0);try{const H=await _(),F=O(H==null?void 0:H[v],T);F!=null&&P.setFieldValue(`${v}.${T}`,F)}finally{I(!1)}},R=v=>{P.values[v].length>=go||P.insertListItem(v,"")},B=(v,T)=>{P.values[v].length<=mo||P.removeListItem(v,T)},$=()=>{G()&&(n(ql({primaryText:P.values.primaryText,headline:P.values.headline,callToAction:P.values.callToAction,url:P.values.url,checked:P.values.checked})),n(Dt(Ve.REVIEW)),m())},J=h[Math.min(b,Math.max(h.length-1,0))],z=P.values.headline.find(v=>v.trim())||"Headline",V=P.values.primaryText.find(v=>v.trim())||"",N=P.values.callToAction||"Learn More";return t.jsx(A,{style:r,children:t.jsxs(A,{style:o,children:[t.jsx(A,{style:c,children:t.jsxs(A,{style:{maxWidth:1100,margin:"0 auto",width:"100%"},px:d?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.metaManaged.adCopy.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"md",children:e("adLauncher.metaManaged.adCopy.subtitle")}),t.jsx(g,{size:"sm",fw:600,mb:"xs",children:e("adLauncher.metaManaged.adCopy.adOf",{current:Math.min(b+1,h.length||1),total:h.length||1})}),t.jsx(U,{gap:"sm",mb:"lg",children:h.slice(0,6).map((v,T)=>t.jsx(A,{onClick:()=>u(T),style:{width:56,height:56,borderRadius:8,overflow:"hidden",border:b===T?`2px solid ${He}`:"1px solid var(--mantine-color-gray-3)",cursor:"pointer"},children:Te(v.previewStorageKey)?t.jsx("video",{src:is(v),muted:!0,style:{width:"100%",height:"100%",objectFit:"cover"}}):t.jsx(ot,{src:is(v),h:56,w:56,fit:"cover"})},v.id))}),t.jsxs(U,{gap:"xl",direction:d?"column":"row",align:"flex-start",children:[t.jsxs(ae,{style:{flex:1,minWidth:0},gap:"md",children:[t.jsx(qc,{title:e("adLauncher.metaManaged.adCopy.headline"),hint:e("adLauncher.metaManaged.adCopy.fieldHint"),values:P.values.headline,field:"headline",disabled:y,form:P,onRegenerateSection:()=>{f("headline").catch(()=>{})},onRegenerateItem:v=>{k("headline",v).catch(()=>{})},onAdd:()=>R("headline"),onRemove:v=>B("headline",v),regenerateLabel:e("adLauncher.metaManaged.adCopy.regenerateAll"),addLabel:e("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew")}),t.jsx(qc,{title:e("adLauncher.metaManaged.adCopy.primaryText"),hint:e("adLauncher.metaManaged.adCopy.fieldHint"),values:P.values.primaryText,field:"primaryText",disabled:y,form:P,onRegenerateSection:()=>{f("primaryText").catch(()=>{})},onRegenerateItem:v=>{k("primaryText",v).catch(()=>{})},onAdd:()=>R("primaryText"),onRemove:v=>B("primaryText",v),regenerateLabel:e("adLauncher.metaManaged.adCopy.regenerateAll"),addLabel:e("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew")}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsx(g,{fw:600,mb:4,children:e("adLauncher.metaManaged.adCopy.cta")}),t.jsx(Re,{data:Rr,allowDeselect:!1,mb:"xs","data-managed-field":"callToAction",...P.getInputProps("callToAction")}),t.jsx(g,{size:"xs",c:"dimmed",children:e("adLauncher.metaManaged.adCopy.ctaHint")})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsx(g,{fw:600,mb:4,children:e("adLauncher.metaManaged.adCopy.destination")}),t.jsx(pe,{"data-managed-field":"url",...P.getInputProps("url")})]})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",style:{width:d?"100%":320,flexShrink:0},children:[t.jsx(g,{fw:700,mb:"md",tt:"uppercase",size:"xs",c:"dimmed",children:e("adLauncher.metaManaged.adCopy.adPreview")}),t.jsxs(U,{align:"center",justify:"center",gap:"xs",children:[t.jsx(gt,{variant:"subtle",disabled:h.length<=1,onClick:()=>u(v=>(v-1+h.length)%h.length),children:t.jsx(Fi,{size:18})}),t.jsx(A,{style:{width:220,borderRadius:28,background:"#111",padding:6},children:t.jsxs(A,{style:{background:"#fff",borderRadius:22,overflow:"hidden",minHeight:340},children:[t.jsxs(A,{p:"sm",style:{borderBottom:"1px solid #eee"},children:[t.jsx(g,{size:"sm",fw:700,children:(i==null?void 0:i.name)||"Brand"}),t.jsx(g,{size:"xs",c:"dimmed",children:"Sponsored"})]}),J?t.jsx(A,{style:{width:"100%",aspectRatio:"1 / 1",background:"#f0f2f5"},children:Te(J.previewStorageKey)?t.jsx("video",{src:is(J),muted:!0,playsInl
98ine:!0,autoPlay:!0,loop:!0,style:{width:"100%",height:"100%",objectFit:"contain",display:"block"}}):t.jsx("img",{src:is(J),alt:"",style:{width:"100%",height:"100%",objectFit:"contain",display:"block"}})}):t.jsx(A,{style:{width:"100%",aspectRatio:"1 / 1",background:"#f0f2f5"}}),t.jsxs(A,{p:"sm",children:[t.jsx(g,{size:"sm",fw:700,lineClamp:2,mb:4,children:z}),t.jsx(g,{size:"xs",lineClamp:3,mb:"sm",children:V}),t.jsx(Me,{fullWidth:!0,size:"xs",color:"gray",variant:"light",children:N})]})]})}),t.jsx(gt,{variant:"subtle",disabled:h.length<=1,onClick:()=>u(v=>(v+1)%h.length),children:t.jsx(si,{size:18})})]}),h.length>0&&t.jsxs(g,{size:"xs",c:"dimmed",ta:"center",mt:"xs",children:[Math.min(b+1,h.length)," /"," ",h.length]})]})]}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>n(Dt(Ve.SETUP)),onNext:$,endAccessory:t.jsx(rt,{label:e("adLauncher.metaManaged.setup.activeOnLaunchToggle"),checked:P.values.checked,onChange:v=>P.setFieldValue("checked",v.currentTarget.checked)})})]})})}function qc({title:e,hint:n,values:a,field:i,disabled:s,form:r,onRegenerateSection:o,onRegenerateItem:c,onAdd:d,onRemove:m,regenerateLabel:h,addLabel:p}){const l=a.length>mo;return t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsxs(U,{justify:"space-between",align:"center",mb:"sm",children:[t.jsxs(A,{children:[t.jsx(g,{fw:600,children:e}),t.jsx(g,{size:"xs",c:"dimmed",children:n})]}),t.jsx(Ht,{onClick:o,disabled:s,style:{color:He,fontSize:12,fontWeight:600},children:h})]}),a.map((b,u)=>t.jsxs(U,{gap:"xs",mb:"xs",align:"center",children:[t.jsx(pe,{style:{flex:1},disabled:s,"data-managed-field":`${i}.${u}`,...r.getInputProps(`${i}.${u}`),error:r.errors[`${i}.${u}`]||r.errors[i]?r.errors[`${i}.${u}`]||!0:void 0}),t.jsx(gt,{variant:"subtle",color:"gray",disabled:s,onClick:()=>c(u),children:t.jsx(Ts,{size:16})}),t.jsx(gt,{variant:"subtle",color:"gray",disabled:s||!l,onClick:()=>m(u),"aria-label":"Remove",children:t.jsx(Us,{size:16})})]},`${i}-${u}`)),t.jsxs(U,{justify:"space-between",align:"center",children:[t.jsxs(Me,{variant:"subtle",size:"xs",disabled:s||a.length>=go,onClick:d,style:{color:He},children:["+ ",p]}),t.jsxs(g,{size:"xs",c:"dimmed",children:[a.filter(b=>b.trim()).length," / ",go]})]})]})}const LA=["campaignName","adSetName"],SA=.12,Ia=7,Sr=90;function Yc(e){const n=Lt(),a=e.previewStorageKey;return!a||a==="public/"?"":a.includes("public/")?`${bt[n]}/${a}`:`${At[n]}/${a}`}function jA(){var Le,ye;const{t:e}=de(),n=xe();yt();const a=_n(),{brandId:i}=ve(),{data:s}=Ot(i),{data:r}=ri(),o=xn(),c=Bi(),d=En(),{shellStyle:m,formStyle:h,scrollStyle:p,isMobile:l}=ze({pinFooter:!0}),{selectedAds:b,meta:{campaign:u,adCopy:y,durationDays:I,objective:C}}=re(ge=>ge.adLauncher),{selectedAdLauncherChannel:E,selectedMetaLeadGenFormId:P}=re(ge=>ge.adGallery),{data:D}=Ih(i,{enabled:xa(C)}),G=(D==null?void 0:D.map(ge=>({label:ge.name??"",value:ge.id??""})))??[],_=sh({objective:C,leadFormId:P,pixel:u==null?void 0:u.pixel}),O=Go(C),{adInstanceItems:f}=re(ge=>ge.projectView),[k,R]=S.useState((u==null?void 0:u.campaignName)||""),[B,$]=S.useState((u==null?void 0:u.adSetName)||""),[J,z]=S.useState((y==null?void 0:y.checked)??(u==null?void 0:u.checked)??!0),[V,N]=S.useState(0),[L,x]=S.useState(!1),[v,T]=S.useState({}),H=e("adLauncher.common.required",{defaultValue:"Required"}),F=Math.max(Number(I)||Ia,Ia),w=Number(u==null?void 0:u.budgetAmount)||0,K=w*F,M=parseFloat((K*SA).toFixed(2)),ee=parseFloat((K+M).toFixed(2)),ne=Math.round(ee*100),X=ge=>ge.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),ie=o.isPending||L,Q=()=>{const ge={campaignName:k.trim()?void 0:H,adSetName:B.trim()?void 0:H};T(ge);const Ce={};ge.campaignName&&(Ce.campaignName=ge.campaignName),ge.adSetName&&(Ce.adSetName=ge.adSetName);const Y=Object.keys(Ce).length===0;return Y||da(Ce,LA),Y},j=b[Math.min(V,Math.max(b.length-1,0))],q=((Le=y==null?void 0:y.headline)==null?void 0:Le.find(ge=>ge.trim()))||e("adLauncher.metaManaged.adCopy.headline"),se=((ye=y==null?void 0:y.primaryText)==null?void 0:ye.find(ge=>ge.trim()))||"",le=(y==null?void 0:y.callToAction)||"Learn More",_e=()=>{u&&n(Ur({...u,campaignName:k,adSetName:B,checked:J})),y&&n(ql({...y,checked:J}))},te=()=>{const ge=new Date,Ce=new Date(ge);Ce.setDate(ge.getDate()+F);const Y=Ie=>Ie.toISOString().split("T")[0],ce=ih({budgetOptimizeOn:!0,budgetType:(u==null?void 0:u.budgetType)||"Daily",budgetAmount:(u==null?void 0:u.budgetAmount)??w,endDate:Y(Ce)});return{brand_id:i,channel:E[0]||"facebook",is_managed:!0,campaign_spec:{name:k||(u==null?void 0:u.campaignName)||"Managed Meta Campaign",objective:O,...ce.campaign,...ah(u==null?void 0:u.specialAdCategories),...Bo({bidStrategy:u==null?void 0:u.bidStrategy,bidAmount:u==null?void 0:u.bidAmount}),status_on_launch:J?"ACTIVE":"PAUSED",start_date:Y(ge),end_date:Y(Ce)},ad_group_spec:Ms({name:B||(u==null?void 0:u.adSetName)||"Managed Ad Set",optimization_goal:(u==null?void 0:u.optimizationGoal)??"",billing_event:"IMPRESSIONS",status_on_launch:J?"ACTIVE":"PAUSED",start_date:Y(ge),end_date:Y(Ce),targeting:Mo({countries:(u==null?void 0:u.countries)??[],ageMin:u==null?void 0:u.ageMin,ageMax:u==null?void 0:u.ageMax,gender:u==null?void 0:u.gender,detailedTargeting:u==null?void 0:u.detailedTargeting,placementMode:u==null?void 0:u.placementMode,publisherPlatforms:u==null?void 0:u.publisherPlatforms,facebookPositions:u==null?void 0:u.facebookPositions,instagramPositions:u==null?void 0:u.instagramPositions,audienceNetworkPositions:u==null?void 0:u.audienceNetworkPositions,advantageAudience:u==null?void 0:u.advantageAudience}),...(u==null?void 0:u.pixel)&&{promoted_pixel_id:u.pixel}}),ad_specs:b==null?void 0:b.map(Ie=>({name:Ie.name,...ci(Ie.previewStorageKey),...Xo({headlines:y==null?void 0:y.headline,primaryTexts:y==null?void 0:y.primaryText}),cta_types:[(y==null?void 0:y.callToAction)??""],link_urls:[(y==null?void 0:y.url)??""],status_on_launch:J?"ACTIVE":"PAUSED",...eh(C,P)}))}},me=async()=>
98{if(ie||_||Mi(u==null?void 0:u.bidStrategy,u==null?void 0:u.bidAmount)||!Q())return;const ge=r==null?void 0:r.stripeCustomerId;if(!ge){he.show({title:e("adLauncher.metaManaged.review.paymentMissingTitle",{defaultValue:"Payment method missing"}),message:e("adLauncher.metaManaged.review.paymentMissingMessage",{defaultValue:"Please add a payment method in Settings before continuing."}),color:"red"});return}_e(),x(!0),n(nn(!0));let Ce=null;try{const Y=await li({stripeCustomerId:ge,amount:ne,description:`Meta Managed Ad â ${F} day${F===1?"":"s"} campaign`,confirm:!0});Ce=(Y==null?void 0:Y.paymentIntentId)??null,n(Dt(Ve.PROGRESS));const ce=await o.mutateAsync(te()),Ie=Mn(ce),fe=b||[],Ee=Nn(fe,Ie,fe.length);if(!Ie.isFullSuccess){const W=kn(Ie,e("adLauncher.launchAd.launchFailedFallback"),e);if(Oe(Ka,{brandId:i,error_message:W.message}),await c("failed",{campaignId:Ie.campaignId||null,adsLaunchedCount:Ie.adsLaunchedCount}),he.show({title:e("adLauncher.errors.partialTitle"),message:W.message,color:"red"}),Ee.length){await Promise.all(Ee.map(async ue=>{const{__typename:Z,...De}=ue;De.id&&await d.mutateAsync({id:De.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const oe=f==null?void 0:f.map(ue=>Ee.find(Z=>Z.id===ue.id)?{...ue,status:Fe.launched,updatedAt:new Date().toISOString()}:ue);n(mt(oe))}Ce&&Ie.adsLaunchedCount===0&&(await ln(Ce).catch(()=>{}),he.show({title:e("adLauncher.metaManaged.review.refundedTitle",{defaultValue:"Something went wrong"}),message:e("adLauncher.metaManaged.review.refundedMessage",{defaultValue:"Your payment has been refunded. Please try again."}),color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})),n(nn(!1)),n(Dt(Ve.REVIEW));return}if(Oe(Lo,{brandId:i}),n(Dt(Ve.SUCCESS)),await c("launched",{campaignId:Ie.campaignId||null,adsLaunchedCount:Ie.adsLaunchedCount}),Ee.length){await Promise.all(Ee.map(async oe=>{const{__typename:ue,...Z}=oe;Z.id&&await d.mutateAsync({id:Z.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const W=f==null?void 0:f.map(oe=>Ee.find(ue=>ue.id===oe.id)?{...oe,status:Fe.launched,updatedAt:new Date().toISOString()}:oe);n(mt(W))}}catch(Y){await c("failed");const ce=e("adLauncher.metaManaged.review.paymentFailedMessage",{defaultValue:"Could not process payment. Please try again."}),Ie=cn(Y,ce);Oe(Ka,{brandId:i,error_message:cn(Y,"launch_failed")}),Ce?(await ln(Ce).catch(()=>{}),he.show({title:e("adLauncher.metaManaged.review.refundedTitle",{defaultValue:"Something went wrong"}),message:e("adLauncher.metaManaged.review.refundedWithLaunchError",{launchError:Ie}),color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})):pi({title:e("adLauncher.metaManaged.review.paymentFailedTitle",{defaultValue:"Payment failed"}),message:Ie,onUpdateCard:()=>a(gi(i))}),n(nn(!1)),n(Dt(Ve.REVIEW))}finally{x(!1),n(nn(!1))}};return t.jsx(A,{style:m,children:t.jsxs(A,{style:h,children:[t.jsx(A,{style:p,children:t.jsxs(A,{style:{maxWidth:1100,margin:"0 auto",width:"100%"},px:l?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.metaManaged.review.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"md",children:e("adLauncher.metaManaged.review.subtitle")}),_==="unknown_objective"&&t.jsx(Xt,{color:"red",variant:"light",mb:"md",children:e("adLauncher.metaManaged.review.unknownObjective",{objective:C||"â"})}),_==="missing_lead_form"&&t.jsx(Xt,{color:"red",variant:"light",mb:"md",children:e("adLauncher.metaManaged.review.leadFormRequired")}),_==="missing_sales_pixel"&&t.jsx(Xt,{color:"red",variant:"light",mb:"md",children:e("adLauncher.metaManaged.review.salesPixelRequired")}),xa(C)&&t.jsx(Re,{mb:"md",withAsterisk:!0,data:G,value:P||null,onChange:ge=>n(kl(ge)),label:e("adLauncher.metaManaged.review.leadForm"),placeholder:e("adLauncher.metaManaged.review.leadFormPlaceholder")}),t.jsx(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",mb:"md",children:t.jsxs(U,{gap:"md",direction:l?"column":"row",children:[t.jsx(pe,{style:{flex:1},label:e("adLauncher.metaManaged.setup.campaignName"),withAsterisk:!0,value:k,error:v.campaignName,"data-managed-field":"campaignName",onChange:ge=>{R(ge.currentTarget.value),v.campaignName&&T(Ce=>({...Ce,campaignName:void 0}))}}),t.jsx(pe,{style:{flex:1},label:e("adLauncher.metaManaged.setup.adSetName"),withAsterisk:!0,value:B,error:v.adSetName,"data-managed-field":"adSetName",onChange:ge=>{$(ge.currentTarget.value),v.adSetName&&T(Ce=>({...Ce,adSetName:void 0}))}})]})}),t.jsxs(U,{gap:"xl",direction:l?"column":"row",align:"flex-start",children:[t.jsxs(ae,{style:{flex:1,minWidth:0},gap:"md",children:[t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsxs(U,{justify:"space-between",align:"center",mb:"sm",children:[t.jsx(g,{fw:700,children:e("adLauncher.metaManaged.setup.duration")}),t.jsxs(U,{align:"center",gap:"xs",children:[t.jsx(at,{value:F,onChange:ge=>n(Is(Math.min(Sr,Math.max(Ia,Number(ge)||Ia)))),min:Ia,max:Sr,w:80,size:"xs"}),t.jsx(g,{size:"sm",c:"dimmed",children:e("adLauncher.metaManaged.setup.days")})]})]}),t.jsx(A,{pb:"lg",children:t.jsx(Ln,{value:F,onChange:ge=>n(Is(ge)),min:Ia,max:Sr,step:1,color:"blue",size:"sm",marks:[{value:7,label:"7d"},{value:30,label:"30d"},{value:60,label:"60d"},{value:90,label:"90d"}]})})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsx(g,{fw:700,mb:"sm",children:e("adLauncher.metaManaged.setup.priceBreakdown")}),t.jsxs(ae,{gap:8,children:[t.jsx(jr,{label:e("adLauncher.metaManaged.setup.dailyBudget"),value:`$${X(w)}`}),t.jsx(jr,{label:e("adLauncher.metaManaged.setup.duration"),value:`${F} ${e("adLauncher.metaManaged.setup.days")}`}),t.jsx(jr,{label:e("adLauncher.metaManaged.setup.adBudget"),value:`$${X(K)}`}),t.jsxs(U,{justify:"space-between",align:"flex-start",children:[t.jsxs(ae,{gap:2,children:[t.jsx(g,{size:"sm",c:"dimmed",children:e("adLauncher.metaManaged.setup.om
98nekyFee")}),t.jsx(g,{size:"xs",c:"dimmed",children:e("adLauncher.metaManaged.setup.feeHint")})]}),t.jsxs(g,{size:"sm",fw:600,children:["$",X(M)]})]})]}),t.jsx(_t,{my:"sm"}),t.jsxs(U,{justify:"space-between",children:[t.jsx(g,{fw:700,c:He,children:e("adLauncher.metaManaged.setup.totalDue")}),t.jsxs(g,{fw:800,size:"lg",c:He,children:["$",X(ee)]})]}),t.jsx(g,{size:"xs",c:"dimmed",mt:"md",children:e("adLauncher.metaManaged.review.summaryHint",{objective:C||"â",ads:b.length})})]})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",style:{width:l?"100%":320,flexShrink:0},children:[t.jsx(g,{fw:700,mb:4,children:e("adLauncher.metaManaged.review.managedAccountTitle")}),t.jsx(g,{size:"xs",c:"dimmed",mb:"md",children:e("adLauncher.metaManaged.review.managedAccountBody")}),t.jsx(g,{fw:700,mb:"sm",tt:"uppercase",size:"xs",c:"dimmed",children:e("adLauncher.metaManaged.adCopy.adPreview")}),t.jsxs(U,{align:"center",justify:"center",gap:"xs",children:[t.jsx(gt,{variant:"subtle",disabled:b.length<=1||ie,onClick:()=>N(ge=>(ge-1+b.length)%b.length),children:t.jsx(Fi,{size:18})}),t.jsx(A,{style:{width:200,borderRadius:28,background:"#111",padding:6},children:t.jsxs(A,{style:{background:"#fff",borderRadius:22,overflow:"hidden",minHeight:300},children:[t.jsxs(A,{p:"sm",children:[t.jsx(g,{size:"sm",fw:700,children:(s==null?void 0:s.name)||"Brand"}),t.jsx(g,{size:"xs",c:"dimmed",children:"Sponsored"})]}),j?t.jsx(A,{style:{width:"100%",aspectRatio:"1 / 1",background:"#f0f2f5"},children:Te(j.previewStorageKey)?t.jsx("video",{src:Yc(j),muted:!0,playsInline:!0,autoPlay:!0,loop:!0,style:{width:"100%",height:"100%",objectFit:"contain",display:"block"}}):t.jsx("img",{src:Yc(j),alt:"",style:{width:"100%",height:"100%",objectFit:"contain",display:"block"}})}):t.jsx(A,{style:{width:"100%",aspectRatio:"1 / 1",background:"#f0f2f5"}}),t.jsxs(A,{p:"sm",children:[t.jsx(g,{size:"sm",fw:700,lineClamp:2,children:q}),t.jsx(g,{size:"xs",lineClamp:2,mb:"sm",children:se}),t.jsx(Me,{fullWidth:!0,size:"xs",color:"gray",variant:"light",children:le})]})]})}),t.jsx(gt,{variant:"subtle",disabled:b.length<=1||ie,onClick:()=>N(ge=>(ge+1)%b.length),children:t.jsx(si,{size:18})})]})]})]}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.cancel",{defaultValue:"Cancel"}),nextLabel:e("adLauncher.metaManaged.review.continueToPay"),onBack:()=>n(Dt(Ve.AD_COPY)),onNext:()=>{me().catch(()=>{})},nextDisabled:ie||!!_,nextLoading:ie,backDisabled:ie,endAccessory:t.jsx(rt,{label:e("adLauncher.metaManaged.setup.activeOnLaunchToggle"),checked:J,disabled:ie,onChange:ge=>z(ge.currentTarget.checked)})})]})})}function jr({label:e,value:n}){return t.jsxs(U,{justify:"space-between",gap:"sm",children:[t.jsx(g,{size:"sm",c:"dimmed",children:e}),t.jsx(g,{size:"sm",fw:600,children:n})]})}var vA={ENV:"prod",CHAT_WITH_DATA_API_URL:"https://delphi.omneky.com/",API_URL:"https://omneky-nexus-production.omneky.com/",CGP_BACKEND_API_URL:"https://cgp-backend.omneky.com/",DATA_API_URL:"https://data.omneky.com",EXPORT_ADS_API_URL:"https://adlauncher.omneky.com/",AI_CB_API_URL:"https://ai-creative-brief.omneky.com/",KEYWORDS_URL:"https://ai-regression.omneky.com/api/v1/gen_keywords/",REGRESSIONS_API_URL:"https://regression-prod.omneky.com/",STRIPE_API_KEY:"pk_live_4mVoF8lghE61vAr9m325o7qb00Qy68HbIh",GTM_ID:"GTM-PTZP7SCT",GTM_ID_SIGNUP:"GTM-5MDD544",FRONTEND_URL:"https://cgp.omneky.com",RECOMMENDATION_URL:"https://ai-analytics-prod.omneky.com",DATADOG_API_KEY:"1cbf363cbdd5a7cb61562067821e240c",VITE_PUBLIC_POSTHOG_PROJECT_TOKEN:"phc_CgAWduXWep9WYRbgGFN9qU9fUjV4QT45CbzHKJoHkFCS",VITE_POSTHOG_HOST:"https://s.omneky.com"};function _A(e,n,a=2){return Math.abs(e-n)<=a}const vr=()=>{const e=xe(),{logosData:n}=re($=>$.library),{googleAdLauncherLogos:a,googleAdLauncherStepNumber:i,createNewGoogleCampaign:s,launchIntoExistingGoogleCampaign:r}=re($=>$.adGallery),{t:o}=de(),c=S.useRef(null),{brandId:d}=ve(),[m,h]=S.useState(!1),p=va("(max-width: 768px)",!1,{getInitialValueInEffect:!1}),l=()=>{var $;return($=c.current)==null?void 0:$.click()},[b,u]=S.useState(null),y=async $=>{h(!0),await Promise.all($.map(async J=>{const z=J.name,V=J.name.split(".").pop(),N=`${oi()}.${V}`;try{const L=await fetch(`${vA.API_URL+$l.library.signedUrlUpload}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Vl.get("cgpToken")}`},body:JSON.stringify({objects:[`library/brands/${d}/logos/${N}`]})});if(!L.ok)throw new Error("Failed to obtain signed URL");const x=await L.json(),v=new FormData;for(const K in x[0].fields)v.append(K,x[0].fields[K]);if(v.append("file",J),(await ai.post(x[0].url,v)).status!==204)throw new Error("Upload failed");const{width:H,height:F}=await Wl(J),w={brandId:d,name:z,url:`${x[0].url}/library/brands/${d}/logos/${N}`,height:F||0,width:H||0};await e(Kl(w))}catch(L){console.error("Error uploading:",L)}})),await e(Ii({brandId:d})),h(!1)},I=$=>{$.target.files&&y(Array.from($.target.files))},C=()=>{e(Ii({brandId:d}))};S.useEffect(()=>{n!=null&&n.length||C()},[d]);const E=$=>{const J=a.some(V=>V.id===$.id);let z;if(J)z=a.filter(V=>V.id!==$.id);else{if(a.length>=2)return;z=[...a,$]}e(Yl(z))},P=a.some($=>_A($.width,$.height)),G=s||r?a.length<1||!P:!1,_=()=>{G||e(Ze(i+1))},O=$=>{u($)},f=P&&a.length>0,k=Lt(),R=$=>$!=null&&$.previewStorageKey&&$.previewStorageKey!=="public/"?$.previewStorageKey.includes("public/")?st(`${bt[k]}/${$.previewStorageKey}`):st(`${At[k]}/${$.previewStorageKey}`):"",B=$=>{e(jo({open:!0,adsToCrop:[$],step:"logos"}))};return t.jsxs(A,{pos:"relative",style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:[m&&t.jsx(U,{pos:"absolute",top:0,left:0,w:"100%",h:"100%",style:{zIndex:10,backgroundColor:"rgba(255,255,255,0.7)"},display:"flex",align:"center",justify:"center",children:t.jsx(et,{size:"lg"})}),t.jsxs(ae,{style:{flex:1,minHeight:0,overflow:"hidden",paddingBottom:p?Lh:0,boxSizing:"border-box"},children:[t.jsx(g,{fw:500,children:o("adLauncher.googleAdLauncher.logoSelection.text")}),t.jsx(Nt,{style:{flex:1,minHeight:0},children:t.jsxs(on,{cols:{base:2,sm:3,md:4},spacing:"md",children:[t.jsxs(U,{h:214,bg:"#F6F6F6",direction:"column",align:"center",justify:"center",style:{width:"100%",maxWidth:"100%",boxSizing:"border-box",border:"2px dashed #ccc",borderRadius:4,cursor:"pointer"},onClick:l,children:[t.jsx(yo,{size:28}),t.jsx(g,{fw:600,size:"sm",children:o("adLauncher.googleAdLauncher.logoSelection.upload")}),t.jsx("input",{ref:c,type:"file",accept:".png, .jpeg, .jpg, .gif, image/png, image/jpeg, image/gif",multiple:!0,style:{display:"none"},onChange:I})]}),n==null?void 0:n.map($=>t.jsx(Ae,{shadow:"sm",withBorder:!0,h:214,padding:"sm",style:{width:"100%",maxWidth:"100%",boxSizing:"border-box",border:a.some(J=>J.id===$.id)?"3px solid #322996":"1px solid #e9ecef",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",background:"var(--mantine-color-gray-0)"},onClick:()=>E($),children:t.jsx(ot,{radius:"md",h:"100px",w:"100%",fit:"contain",src:$.url,loading:"lazy"})},$.id))]})}),(a==null?void 0:a.length)>0&&t.jsxs(ae,{gap:"xs",style:{flex:"0 0 auto"},children:[t.jsxs(U,{align:p?"stretch":"center",direction:p?"column":"row",gap:p?"xs":0,children:[t.jsxs(g,{size:"xs",fw:600,style:{flexShrink:0},children:[o("adLauncher.googleAdLauncher.logoSelection.logoImages")," (",a.length," / 2)"]}),f?t.jsx(A,{ml:p?0:"sm",bg:"#D6FFE2",p:p?"sm":"5px",style:{borderRadius:"4px",width:p?"100%":void 0,boxSizing:"border-box"},children:t.jsx(g,{c:"#00A42E",size:"xs",style:{lineHeight:1.45},children:o("adLauncher.googleAdLauncher.logoSelection.readyToPost")})}):t.jsx(A,{ml:p?0:"sm",bg:"#FFEFEF",p:p?"sm":"5px",style:{borderRadius:"4px",width:p?"100%":void 0,boxSizing:"border-box"},children:t.jsx(g,{c:"#FF0000",size:"xs",style:{lineHeight:1.45},children:o("adLauncher.googleAdLauncher.logoSelection.helperErrorText")})})]}),t.jsx(Es,{withIndicators:!1,slideSize:"80px",height:100,slideGap:"sm",align:"start",draggable:!0,withControls:!1,styles:{viewport:{overflow:"visible"}},children:a.map(($,J)=>{var z;return t.jsxs(Es.Slide,{children:[t.jsx(A,{onMouseEnter:()=>O($),style:{width:"100%",height:"100%",border:"1px solid #ccc",borderRadius:8,cursor:"pointer",overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",background:"#f9f9f9"},children:t.jsx(ot,{src:((z=a.find(V=>
98V.id===$.id))==null?void 0:z.url)||R($),alt:"Preview",fit:"contain",height:"100%",width:"100%",p:4},$.id)}),(b==null?void 0:b.id)===$.id&&t.jsx(A,{onClick:()=>B($),style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(0,0,0,0.6)",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",gap:"10px",padding:"10px",transition:"all 0.3s ease",backdround:"white",borderRadius:"4px",cursor:"pointer"},children:t.jsx(A,{bg:"#FFFFFF",px:"10px",py:"4px",style:{borderRadius:"4px"},children:t.jsx(g,{size:"xs",children:o("adLauncher.googleAdLauncher.logoSelection.edit")})})})]},$.id)})})]}),t.jsx(Ne,{backLabel:o("adLauncher.common.back"),nextLabel:o("adLauncher.common.next"),onBack:()=>e(Ze(i-1)),onNext:_,nextDisabled:G})]})]})};function ss(){const e=xe(),{channel:n,google:{launchFailed:a}}=re(c=>c.adLauncher),{googleAdLaunchFailed:i,lastLaunchError:s}=re(c=>c.adGallery),r=n==="google"?a:i,{t:o}=de();return r?t.jsxs(ae,{h:"500px",justify:"center",align:"center",gap:"md",px:"md",children:[t.jsx(Wp,{style:{color:"var(--mantine-color-red-6)",height:"50px",width:"50px"}}),t.jsx(g,{fw:600,children:o("adLauncher.adsetSettings.launchFailed")}),t.jsx(Tn,{error:s,onDismiss:()=>e(Xe(null))})]}):t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:600,mt:"sm",children:o("adLauncher.adsetSettings.launchingAd")})]})}function rs(){const{t:e}=de();return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:600,mt:"sm",children:e("adLauncher.googleAdLauncher.success.adLaunched")})]})}function wA(e,n="https://cgp-assets.omneky.com"){try{const a=new URL(e);return/\.s3[\.-][a-z0-9-]+\.amazonaws\.com$/.test(a.hostname)?`${n}${a.pathname}`:e}catch{return console.error("Invalid URL passed to replaceS3BaseUrl:",e),e}}const _r=e=>{if(e!=null&&e.croppedUrl)return e.croppedUrl;const n=Lt();return e!=null&&e.previewStorageKey&&e.previewStorageKey!=="public/"?e.previewStorageKey.includes("public/")?`${bt[n]}/${e.previewStorageKey}`:`${At[n]}/${e.previewStorageKey}`:wA((e==null?void 0:e.url)||"")},CA=e=>{if(!e)return"other";const[n,a]=e.split("x").map(Number);if(!n||!a)return"other";const i=n/a,s=.05;return Math.abs(i-1)<s?"square":Math.abs(i-1.91)<s?"landscape":Math.abs(i-.8)<s?"portrait":"other"},EA=(e,n)=>{const a=e/n,i=.05;if(Math.abs(a-1)<i)return"square";if(Math.abs(a-4)<i)return"horizontal"},Xc={square:1/1,landscape:1.91/1,portrait:4/5,horizontal:4/1},IA=()=>{var ne;const e=xe(),{t:n}=de(),{persist:a}=Rt(),[i]=S.useState(0),[s,r]=S.useState({}),o=S.useRef({}),[c,d]=S.useState([]),[m,h]=S.useState({}),[p,l]=S.useState({x:0,y:0}),[b,u]=S.useState(1),[y,I]=S.useState(!1),{brandId:C}=ve(),{logosData:E}=re(X=>X.library),{channel:P}=re(X=>X.adLauncher),D=P==="google",G=re(X=>X.adGallery),_=re(X=>X.adLauncher.google),O=re(X=>X.adLauncher.selectedAds),f=D?_.adsSelection:G.googleAdsSelection,k=D?_.logos:G.googleAdLauncherLogos,R=D?O:G.selectedLauncherAds,B=f.cropping.adsToCrop||[],$=!!f.cropping.open&&B.length>0,J=D,z=f.ads,V=f.cropping.step,N=B[i],[L,x]=S.useState(V==="landscapeAds"?"landscape":"square"),v=()=>{if(D){e(wo({open:!1,adsToCrop:[],step:f.cropping.step}));return}e(jo({open:!1,adsToCrop:[]}))},T=()=>{e(Ii({brandId:C}))};S.useEffect(()=>{E!=null&&E.length||T()},[C]),S.useEffect(()=>{if(!N)return;if(V==="logos"){const ie=k.find(Q=>Q.id===N.id);ie&&x(EA(ie.width,ie.height));return}if(V==="landscapeAds"){x("landscape");return}if(V==="squareAds"){x("square");return}const X=z.find(ie=>ie.id===N.id);if(X){const ie=CA(X.size);x(D&&ie!=="landscape"?"square":ie)}},[N,z,k,V,D]);const H=(X,ie)=>{N&&(o.current={...o.current,[String(N.id)]:ie},r(Q=>({...Q,[String(N.id)]:ie})))},F=()=>L==="square"?"1024x1024":L==="landscape"?"1200x628":L==="portrait"?"960x1200":"1024x1024",w=async()=>{if(!N)return!1;const X=o.current[String(N.id)]||s[String(N.id)];if(!X)return he.show({title:n("adLauncher.googleAdLauncher.cropModal.actions.saveFailed"),message:n("adLauncher.googleAdLauncher.cropModal.actions.adjustFirst"),color:"red"}),!1;if(L==="other"||!Xc[L])return he.show({title:n("adLauncher.googleAdLauncher.cropModal.actions.saveFailed"),message:n("adLauncher.googleAdLauncher.cropModal.actions.pickRatio"),color:"red"}),!1;try{I(!0);const ie=await Po(_r(N),X,L),Q=await fetch(ie);if(!Q.ok)throw new Error(`Could not read cropped image (${Q.status})`);const j=await Q.blob(),q=new File([j],`${N.id}.jpg`,{type:"image/jpeg"}),se=oi(),le=`brands/${C}/media-items/uploads`,_e=Co.getExtension(q.type),te=await Eo(q,`${le}/${se}${_e?`.${_e}`:""}`);if(!te)throw new Error(n("adLauncher.googleAdLauncher.cropModal.actions.uploadFailed"));const me=`${dt}public/${te}`;if(d(Le=>[...Le.filter(ye=>ye.id!==N.id),{id:N.id,croppedUrl:me}]),V==="logos"){const Le=k.map(ye=>ye.id===N.id?{...ye,url:me,height:L==="horizontal"?300:1024,width:L==="horizontal"?1200:1024}:ye);e(D?Br(Le):Yl(Le))}else{const Le=String(N.id).split("::")[0],ye=z!=null&&z.length?z:R||[],ge=F(),Ce=ye.map(Y=>String(Y.id)===Le?{...Y,previewStorageKey:te,size:ge,croppedUrl:me}:Y);if(D){const Y=L==="landscape"?"landscape":"square";e(Bl(Ce)),e(Ul(Ce)),e(Gs(Ce)),e(Kp({sourceAdId:Le,aspect:Y,previewStorageKey:te,size:Y==="landscape"?"1200x628":"1024x1024",url:me})),a()}else e(zr({ads:Ce})),e(Gr({ads:Ce}))}return I(!1),!0}catch(ie){return console.log(ie),he.show({title:n("adLauncher.googleAdLauncher.cropModal.actions.saveFailed"),message:(ie==null?void 0:ie.message)||n("adLauncher.googleAdLauncher.cropModal.actions.saveFailed"),color:"red"}),I(!1),!1}};if(!$||!N)return null;const K=m[N.id]||!1,M=V==="logos"?[{key:"square",label:n("adLauncher.googleAdLauncher.cropModal.squareAspectRatio")},{key:"horizontal",label:n("adLauncher.googleAdLauncher.cropModal.horizontalAspectRatio")}]:[{key:"square",label:n("adLauncher.googleAdLauncher.cropModal.squareAspectRatio")},{key:"landscape",label:n("adLauncher.googleAdLauncher.cropModal.landscapeAspectRatio")},...D?[]:[{key:"portrait",label:n("adLauncher.googleAdLauncher.cropModal.portraitAspectRatio")}]],ee=t.jsxs(ae,{children:[t.jsxs(Fa,{children:[t.jsx(Fa.Col,{span:{base:12,sm:8},children:t.jsx("div",{style:{position:"relative",width:"100%",height:500,background:"#F1F3F5"},children:K?t.jsx(Ae,{withBorder:!0,children:t.jsx(ot,{src:((ne=c.find(X=>X.id===N.id))==null?void 0:ne.croppedUrl)||_r(N),alt:"Pending Preview",maw:500,radius:"md",fit:"contain"})}
98):t.jsx(Do,{image:_r(N),crop:p,zoom:b,aspect:Xc[L],onCropChange:l,onCropComplete:H,minZoom:1,onZoomChange:u,onMediaLoaded:X=>{const{width:ie,height:Q,naturalWidth:j,naturalHeight:q}=X,se=ie/j,le=Q/q,_e=Math.max(se,le);u(_e)}})})}),t.jsx(Fa.Col,{span:{base:12,sm:4},children:t.jsx(U,{direction:"column",h:"100%",children:t.jsxs(ae,{gap:"xs",w:"100%",children:[t.jsx(g,{fw:600,children:n("adLauncher.googleAdLauncher.cropModal.selectAspectRatio")}),t.jsx(ae,{children:M.map(X=>t.jsx(Ht,{bg:L===X.key?"blue.3":"gray.1",c:L===X.key?"white":"gray.7",p:"md",onClick:()=>x(X.key),style:{border:L===X.key?"1px solid #322996":""},children:X.label},X.key))})]})})})]}),t.jsxs(xt,{justify:"center",children:[t.jsx(Me,{variant:"default",onClick:v,w:"100px",children:n("adLauncher.googleAdLauncher.cropModal.actions.cancel")}),t.jsx(Me,{w:"100px",loading:y,disabled:!L,onClick:async()=>{await w()&&v()},children:n("adLauncher.googleAdLauncher.cropModal.actions.saveText")})]})]});return J?t.jsx(Ya,{opened:$,onClose:v,title:n("adLauncher.googleAdLauncher.cropModal.cropAds"),size:"xl",centered:!0,zIndex:400,children:ee}):t.jsx(A,{children:ee})};function TA(e){const[n,a]=e.split("x"),i=parseInt(n,10),s=parseInt(a,10);return{width:i,height:s}}function MA(e){if(!e.size||!e.previewStorageKey)return!1;const{width:n,height:a}=TA(e.size);return!Number.isFinite(n)||!Number.isFinite(a)?!1:Te(e.previewStorageKey)?n>=540&&a>=960:n>=540&&a>=540}const wr=()=>{var L;const e=S.useRef(null),n=Lt(),{tiktokAdLauncherStepNumber:a,tiktokAdLauncherData:i}=re(x=>x.adGallery),{galleryList:s,successImagePreview:r,successVideoPreview:o,hasNextPage:c,isFetchingNextPage:d,galleryListPaginated:m,callAdsList:h}=re(x=>x.videoAds),{brandId:p}=ve(),l=xe(),{t:b}=de(),u=i.ads,{data:y,fetchNextPage:I,hasNextPage:C,isFetchingNextPage:E,isPending:P}=Cn({mode:"brand",brandId:p??""}),D=S.useMemo(()=>((y==null?void 0:y.pages)||[]).flatMap(x=>x.items),[y]),G=((L=y==null?void 0:y.pages)==null?void 0:L.length)??0;S.useEffect(()=>{l(Dd({brandId:p,limit:10}))},[r,o,p,h]);const _=x=>x!=null&&x.previewStorageKey&&x.previewStorageKey!=="public/"?x.previewStorageKey.includes("public/")?st(`${bt[n]}/${x.previewStorageKey}`):st(`${At[n]}/${x.previewStorageKey}`):"",O=x=>{const v=u.some(H=>H.id===x.id);let T;v?T=u.filter(H=>H.id!==x.id):T=[...u,x],l(ua({ads:T}))},f=[...D||[],...s||[]].filter((x,v,T)=>v===T.findIndex(H=>H.previewStorageKey===x.previewStorageKey)).filter(x=>x.size&&MA(x)),{showLoading:k,showEmpty:R}=oa({count:f.length,isPending:P,hasNextPage:C||c,isFetchingNextPage:E||d}),B=S.useCallback(()=>{!C||E||I==null||I()},[C,E,I]),$=S.useCallback(()=>{!c||d||l(Dd({brandId:p,lastEvaluatedKey:m==null?void 0:m.lastEvaluatedKey,limit:10}))},[p,l,m==null?void 0:m.lastEvaluatedKey,c,d]),J=S.useCallback(({y:x})=>{const v=e.current;if(!v)return;const{scrollHeight:T,clientHeight:H}=v,F=Math.max(0,T-H);F<=0||x<F-120||(B(),$())},[B,$]),z=S.useRef({gallery:B,video:$});z.current.gallery=B,z.current.video=$,S.useLayoutEffect(()=>{if(E||d)return;let x=!1;const v=()=>{if(x)return;const H=e.current;if(!H)return;const{scrollHeight:F,clientHeight:w}=H;F>w+12||(z.current.gallery(),z.current.video())},T=requestAnimationFrame(()=>{requestAnimationFrame(v)});return()=>{x=!0,cancelAnimationFrame(T)}},[G,c,C,d,E]);const V={default:5,1200:4,1100:3,700:2,500:1},N=()=>{u!=null&&u.length&&(Oe(qp,{brandId:p}),l(Tt(a+1)))};return t.jsxs(A,{style:{display:"flex",flexDirection:"column",flex:1,minHeight:0,overflow:"hidden"},children:[t.jsx(g,{fw:500,mb:"md",style:{flexShrink:0},children:b("adLauncher.tiktokAdLauncher.adsSelection.title")}),t.jsxs(Nt,{style:{flex:1,minHeight:0},onScrollPositionChange:J,viewportRef:e,scrollbars:"y",children:[k||R?t.jsx(Sn,{isLoading:k,filtered:R&&((D==null?void 0:D.length)??0)>0}):t.jsx(In,{breakpointCols:V,className:"my-masonry-grid p-0",columnClassName:"my-masonry-grid_column p-0",children:f==null?void 0:f.map(x=>t.jsx(Ae,{shadow:"sm",padding:"0",withBorder:!0,style:{cursor:"pointer",borderColor:u.some(v=>v.id===x.id)?"#322996":"#e9ecef",borderWidth:u.some(v=>v.id===x.id)?"4px":"1px",padding:u.some(v=>v.id===x.id)?"5px":"0",transition:"all 0.3s ease"},onClick:()=>O(x),children:Te(x==null?void 0:x.previewStorageKey)?t.jsx(t.Fragment,{children:t.jsx("video",{src:_(x),autoPlay:!0,muted:!0,loop:!0,playsInl
98ine:!0,style:{height:"auto",borderRadius:"8px",width:"100%",border:"none",objectFit:"contain"}})}):t.jsx(ot,{src:_(x),fit:"contain",loading:"lazy",alt:x.name,style:{maxHeight:"auto",flex:"unset"}})},x.id))}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:b("adLauncher.common.back"),nextLabel:b("adLauncher.common.next"),onBack:()=>l(Tt(a-1)),onNext:N,nextDisabled:!(u!=null&&u.length)})]})};function Cr(){var J,z;const e=xe(),{brandId:n}=ve(),{t:a}=de(),{formStyle:i,scrollStyle:s,shellStyle:r}=ze({pinFooter:!0}),{tiktokAdLauncherData:o,selectedAdLauncherChannel:c,selectedAdLauncherCampaignId:d,selectedAdLauncherAdGroupId:m,selectedCampaign:h,selectedCampaignObjectives:p,tiktokAdLauncherStepNumber:l,lastLaunchError:b}=re(V=>V.adGallery);yt();const u=En(),{adInstanceItems:y}=re(V=>V.projectView),I=xn(),C=o==null?void 0:o.ads,E=(J=o==null?void 0:o.ads)==null?void 0:J[0],{brandOverviewData:P}=re(V=>V.library),{data:D}=Ot(n),[G,_]=S.useState(!1),O=S.useRef(null),f=()=>{switch(o.type){case lt.LAUNCH_INTO_EXISTING_CAMPAIGN:return 6;case lt.CREATE_NEW_ADSET:return 7;case lt.CREATE_NEW_CAMPAIGN:return 8}},k=wt({initialValues:{headline:[""],callToAction:"",url:""},validate:{headline:V=>{if(!Array.isArray(V)||V.length===0)return[a("adLauncher.launchAd.validations.headline")];const N=[];return(!V[0]||V[0].trim()==="")&&(N[0]=a("adLauncher.launchAd.validations.headline")),N.length?N:null},url:V=>{if(!V)return a("adLauncher.launchAd.validations.url");let N=V.trim();return/^https?:\/\//i.test(N)||(N=`https://${N}`,k.setFieldValue("url",N)),/^(https?:\/\/)([^\s$.?#].[^\s]*)$/i.test(N)?null:a("adLauncher.launchAd.validations.url")},callToAction:V=>V?null:a("adLauncher.launchAd.validations.cta")}}),R=async V=>{try{return await e(ii(V))}catch(N){return console.error("Failed to fetch brand overview:",N),null}};S.useEffect(()=>{(async()=>{var x;if(!n)return;const L=await R({brandId:n});if(L&&((x=L==null?void 0:L.payload)!=null&&x.url)){let v=L.payload.url.trim();/^https?:\/\//i.test(v)||(v=`https://${v}`),k.setFieldValue("url",v)}})()},[n]),S.useEffect(()=>{if(!E)return;let V=!1;return(async()=>{var v;let L=Yy(E);if(n&&(D==null?void 0:D.name)&&O.current!==E.id&&rb(L)){_(!0);const T=await lb({adUrl:un(E),brandId:n,brandName:D.name,language:((v=D.language)==null?void 0:v.langCode)||"us-en"});if(V)return;O.current=E.id,T&&(L=db(L,T)),_(!1)}V||k.setValues({headline:L.headlines,callToAction:k.getValues().callToAction||"LEARN_MORE",url:k.getValues().url||(P==null?void 0:P.url)||""})})(),()=>{V=!0,_(!1)}},[E,n,D==null?void 0:D.name,(z=D==null?void 0:D.language)==null?void 0:z.langCode,P==null?void 0:P.url]);const B=()=>{k.setFieldValue("headline",[...k.values.headline,""])},$=async V=>{const N=l,L=o.createNewCampaignData??{},x=id(p,o.campaignObjective,h==null?void 0:h.objective);if(o.type!==lt.LAUNCH_INTO_EXISTING_CAMPAIGN&&Xx(x,L.pixelId,L.optimizationEvent)){he.show({title:a("adLauncher.tiktokAdLauncher.salesPixel.blockedTitle",{defaultValue:"Pixel required"}),message:a("adLauncher.tiktokAdLauncher.salesPixel.blockedMessage",{defaultValue:"TikTok Sales campaigns need a pixel and optimization event before launch."}),color:"red"});return}try{e(Xe(null)),e(Tt(N+1));const v=ry({brandId:n,channel:c[0],launchType:o.type,campaignId:o.type===lt.CREATE_NEW_CAMPAIGN?void 0:d,adGroupId:o.type===lt.LAUNCH_INTO_EXISTING_CAMPAIGN?m:void 0,objective:x,existingCampaignIsCbo:zn(L.budgetOptimizeOn??(h==null?void 0:h.budgetOptimizeOn)),form:L,ads:C??[],copy:V}),T=await I.mutateAsync(v),H=Mn(T),F=C??[],w=Nn(F,H,F.length);if(!H.isFullSuccess){const M=kn(H,a("adLauncher.launchAd.launchFailedFallback"),a);if(Oe(Pd,{brandId:n,error_message:M.message}),e(Xe(M)),e(Tt(N)),he.show({title:a("adLauncher.errors.partialTitle"),message:M.message,color:"red"}),w.length){await Promise.all(w.map(async ne=>{const{__typename:X,...ie}=ne;"id"in ie&&await u.mutateAsync({id:ie.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const ee=y==null?void 0:y.map(ne=>w.find(X=>"id"in X&&X.id===ne.id)?{...ne,status:Fe.launched,updatedAt:new Date().toISOString()}:ne);e(mt(ee))}return}Oe(Xp,{brandId:n}),e(Tt(f())),await Promise.all(w.map(async M=>{const{__typename:ee,...ne}=M;"id"in ne&&await u.mutateAsync({id:ne.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const K=y==null?void 0:y.map(M=>w.find(ee=>"id"in ee&&ee.id===M.id)?{...M,status:Fe.launched,updatedAt:new Date().toISOString()}:M);e(mt(K)),setTimeout(()=>{e(wn()),e(fn(!1))},5e3)}catch(v){const T=$n(v,a("adLauncher.launchAd.launchFailedFallback"));console.error("Launch error:",T.message),Oe(Pd,{brandId:n,error_message:T.message}),e(Xe(T)),e(Tt(N)),he.show({title:a("adLauncher.errors.title"),message:T.message,color:"red"})}};return t.jsx(A,{style:r,children:t.jsxs("form",{style:i,onSubmit:k.onSubmit(V=>$(V)),children:[t.jsxs(A,{style:s,children:[t.jsxs(Ct,{width:600,children:[t.jsx(Tn,{error:b,onDismiss:()=>e(Xe(null))}),G&&t.jsx(g,{size:"sm",c:"dimmed",mb:"sm",children:a("adLauncher.adsetSettings.generatingCopy",{defaultValue:"Generating ad copy..."})}),k.values.headline.map((V,N)=>{var L;return t.jsx(xt,{mt:N>0?"xs":0,children:t.jsx(pe,{w:"100%",label:N===0?a("adLauncher.adsetSettings.headline"):void 0,placeholder:a("adLauncher.adsetSettings.headline1Placeholder"),value:V,disabled:G,onChange:x=>{const v=[...k.values.headline];v[N]=x.currentTarget.value,k.setFieldValue("headline",v)},error:(L=k.errors.headline)==null?void 0:L[N]})},N)}),t.jsxs(Me,{variant:"subtle",size:"xs",onClick:B,disabled:G,children:["+ ",a("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew")]}),t.jsx(A,{mt:"md",children:t.jsx(Re,{w:"100%",label:a("adLauncher.adsetSettings.ctaLabel"),placeholder:a("adLauncher.adsetSettings.ctaPlaceholder"),data:Yp,...k.getInputProps("callToAction")})}),t.jsxs(A,{mt:"md",children:[t.jsx(g,{size:"md",children:a("adLauncher.adsetSettings.destination")}),t.jsx(g,{size:"xs",mt:"5px",children:a("adLauncher.adsetSettings.redirectPeopleText")}),t.jsx(pe,{label:a("adLauncher.adsetSettings.urlPlaceholder"),placeholder:a("adLauncher.adsetSettings.urlPlaceholder"),...k.getInputProps("url"),mt:"md"}),t.jsx(g,{size:"xs",mt:"5px",c:"dimmed",children:a("adLauncher.adsetSettings.urlHelper")})]})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:a("adLauncher.common.back"),nextLabel:a("adLauncher.common.launch"),onBack:()=>
98e(Tt(l-1)),nextType:"submit",nextDisabled:G,nextLoading:G})]})})}const NA=(e,n)=>hn({enabled:!!e,queryKey:["get-locations",e,n],queryFn:async()=>{const a=`api/tiktok/location_ids?brand_id=${e}&campaign_objective=${n}`,i=await Ye.get(a);return!i||!i.data?[]:i.data.locationIds},staleTime:1e3*60*5});function Zc({setStep:e}){const n=xe(),{t:a}=de(),{formStyle:i,scrollStyle:s,shellStyle:r}=ze({pinFooter:!0}),{brandId:o}=ve(),{selectedCampaign:c,selectedCampaignObjectives:d,tiktokAdLauncherStepNumber:m,tiktokAdLauncherData:h}=re(F=>F.adGallery),p=h.type===lt.CREATE_NEW_ADSET,l=zn(c==null?void 0:c.budgetOptimizeOn),b=id(d,h.campaignObjective,c==null?void 0:c.objective),u=jh(b)??"REACH",y=vh(b)??"REACH",I=Yx(b),{data:C}=NA(o,u),{data:E}=wy(o),P=Ca(),D=ad(b)&&h.type!==lt.LAUNCH_INTO_EXISTING_CAMPAIGN,G=h==null?void 0:h.createNewCampaignData,_=Ji(G==null?void 0:G.optimizationEvent,D),O=qe.useRef(!1),[f,k]=qe.useState(!1),R=(G==null?void 0:G.interestChips)||[],[B,$]=qe.useState(R),[J,z]=qe.useState(typeof(G==null?void 0:G.placementType)=="string"?G.placementType:ji),[V,N]=qe.useState(Array.isArray(G==null?void 0:G.placements)?G.placements:[]),L=wt({mode:"uncontrolled",initialValues:{campaignName:"",budgetType:"BUDGET_MODE_DAY",budgetAmount:"",budgetOptimizeOn:!1,adSetBudgetType:"BUDGET_MODE_DAY",adSetBudgetAmount:"",adSetName:"",checked:!0,optimizationGoal:y,countries:[],bidPrice:"",frequency:2,frequency_schedule:1,pixelId:typeof(G==null?void 0:G.pixelId)=="string"?G.pixelId:"",optimizationEvent:_},onValuesChange:()=>{O.current&&L.validate()},validate:{campaignName:F=>p||F.length>0?null:a("adLauncher.campaignDetails.campaignName.error"),budgetType:(F,w)=>{const K=p?l:zn(w.budgetOptimizeOn);
98return p||!K||F?null:a("adLauncher.campaignDetails.budget.typeError")},budgetAmount:(F,w)=>{const K=p?l:zn(w.budgetOptimizeOn);return p||!K?null:/^\d+(\.\d{1,2})?$/.test(F)?parseFloat(F)<50?a("adLauncher.campaignDetails.adSet.errors.campaignBudget"):null:a("adLauncher.campaignDetails.budget.amountError")},adSetBudgetAmount:(F,w)=>(p?l:zn(w.budgetOptimizeOn))?null:/^\d+(\.\d{1,2})?$/.test(F)?parseFloat(F)<20?a("adLauncher.campaignDetails.adSet.errors.adsetBudget"):null:a("adLauncher.campaignDetails.budget.amountError"),bidPrice:F=>F.length>0?null:a("adLauncher.campaignDetails.adSet.bidPrice.error"),adSetName:F=>F?null:a("adLauncher.campaignDetails.adSet.nameError"),countries:F=>F&&F.length>0?null:a("adLauncher.campaignDetails.adSet.errors.country"),frequency:F=>!I||F>0?null:a("adLauncher.campaignDetails.adSet.errors.frequency"),frequency_schedule:F=>!I||F>0?null:a("adLauncher.campaignDetails.adSet.errors.frequencySchedule"),pixelId:F=>!D||String(F).trim()?null:a("adLauncher.tiktokAdLauncher.salesPixel.pixelRequired",{defaultValue:"Select or enter a TikTok pixel for Sales campaigns."}),optimizationEvent:F=>!D||String(F).trim()?null:a("adLauncher.tiktokAdLauncher.salesPixel.eventRequired",{defaultValue:"Select a conversion event for Sales campaigns."})}}),x=!p&&f,v=p?!l:!f,T=S.useMemo(()=>C==null?void 0:C.map(F=>({label:F.name,value:F.locationId})),[C]);S.useEffect(()=>{if(h!=null&&h.createNewCampaignData){const F=h.createNewCampaignData;L.setValues({...F,optimizationEvent:Ji(F.optimizationEvent,D),optimizationGoal:y,budgetOptimizeOn:p?l:zn(F.budgetOptimizeOn)}),k(p?l:zn(F.budgetOptimizeOn))}},[h]),S.useEffect(()=>{if(!D)return;const F=L.getValues().optimizationEvent,w=Ji(F,!0);w!==F&&L.setFieldValue("optimizationEvent",w)},[D,h]),S.useEffect(()=>{p&&c&&(L.setValues({campaignName:c==null?void 0:c.label,budgetOptimizeOn:l,optimizationGoal:y}),k(l))},[c,p,l,y]),S.useEffect(()=>{L.setFieldValue("optimizationGoal",y)},[y]);const H=F=>{if(dr(J,V)){O.current=!0;return}n(ua({createNewCampaignData:{...F,budgetOptimizeOn:p?l:f,optimizationGoal:y,optimizationEvent:Ji(F.optimizationEvent,D),interestTargetingIds:B.map(K=>K.id),interestChips:B,placementType:J,placements:V},campaignObjective:h.campaignObjective||b})),n(Tt(m+1))};return t.jsx(A,{style:r,children:t.jsxs("form",{style:i,onSubmit:L.onSubmit(F=>{H(F)},()=>{O.current=!0}),children:[t.jsxs(A,{style:s,children:[t.jsxs(Ct,{width:600,children:[t.jsx(pe,{label:a("adLauncher.campaignDetails.campaignName.label"),withAsterisk:!0,readOnly:p,placeholder:a("adLauncher.campaignDetails.campaignName.placeholder"),...L.getInputProps("campaignName")}),!p&&t.jsxs(A,{w:"100%",mt:"sm",children:[t.jsx(g,{size:"sm",fw:500,mb:4,children:a("adLauncher.campaignDetails.budget.levelLabel")}),t.jsx(La,{fullWidth:!0,value:f?"cbo":"abo",onChange:F=>{const w=F==="cbo";k(w),L.setFieldValue("budgetOptimizeOn",w),O.current&&L.validate()},data:[{label:a("adLauncher.campaignDetails.budget.levelCbo"),value:"cbo"},{label:a("adLauncher.campaignDetails.budget.levelAbo"),value:"abo"}]}),t.jsx(g,{size:"xs",mt:4,c:"dimmed",children:a(x?"adLauncher.campaignDetails.budget.levelCboHelper":"adLauncher.campaignDetails.budget.levelAboHelper")}),x&&t.jsxs(U,{gap:"md",align:"flex-start",mt:"sm",children:[t.jsx(A,{style:{flex:1,minWidth:0},children:t.jsx(Re,{disabled:!0,defaultValue:"BUDGET_MODE_DAY",label:a("adLauncher.campaignDetails.budget.typeLabel"),placeholder:a("adLauncher.campaignDetails.budget.typePlaceholder"),data:[{label:a("adLauncher.campaignDetails.budget.daily"),value:"BUDGET_MODE_DAY"},{label:a("adLauncher.campaignDetails.budget.lifetime"),value:"BUDGET_MODE_LIFETIME"}],onChange:F=>{F&&L.setFieldValue("budgetType",F)}})}),t.jsxs(A,{style:{flex:1,minWidth:0},children:[t.jsx(pe,{withAsterisk:!0,label:a("adLauncher.campaignDetails.budget.amountLabel"),placeholder:a("adLauncher.campaignDetails.budget.amountPlaceholder"),...L.getInputProps("budgetAmount")}),t.jsx(g,{size:"xs",mt:4,c:"dimmed",children:a("adLauncher.campaignDetails.budget.tiktokCampaignBudgetHelperText")})]})]}),t.jsx(Be,{mt:"sm",order:3,children:a("adLauncher.campaignDetails.campaignName.statusOnLaunch")}),t.jsx(rt,{mt:"sm",label:a("adLauncher.campaignDetails.campaignName.statusOnLaunchActive"),defaultChecked:!0,...L.getInputProps("checked")}),t.jsx(_t,{my:"md"})]}),t.jsxs(A,{mb:"md",mt:"md",children:[t.jsx(Be,{fw:700,style:{fontSize:"20px",lineHeight:"26px"},children:a("adLauncher.campaignDetails.adSet.title")}),t.jsx(g,{size:"xs",mt:"5px",children:a("adLauncher.campaignDetails.adSet.description")})]}),t.jsx(pe,{withAsterisk:!0,label:a("adLauncher.campaignDetails.adSet.nameLabel"),placeholder:a("adLauncher.campaignDetails.adSet.namePlaceholder"),...L.getInputProps("adSetName")}),v&&t.jsxs(U,{gap:"md",align:"flex-start",mt:"sm",children:[t.jsx(A,{style:{flex:1,minWidth:0},children:t.jsx(Re,{disabled:!0,label:a("adLauncher.campaignDetails.budget.typeLabel"),placeholder:a("adLauncher.campaignDetails.budget.typePlaceholder"),data:[{label:a("adLauncher.campaignDetails.budget.daily"),value:"BUDGET_MODE_DAY"},{label:a("adLauncher.campaignDetails.budget.lifetime"),value:"BUDGET_MODE_LIFETIME"}
98],defaultValue:"BUDGET_MODE_DAY",onChange:F=>F&&L.setFieldValue("adSetBudgetType",F)})}),t.jsxs(A,{style:{flex:1,minWidth:0},children:[t.jsx(pe,{withAsterisk:!0,label:a("adLauncher.campaignDetails.adSet.budgetAmount.title"),placeholder:a("adLauncher.campaignDetails.adSet.budgetAmount.placeholder"),...L.getInputProps("adSetBudgetAmount")}),t.jsx(g,{size:"xs",mt:4,c:"dimmed",children:a("adLauncher.campaignDetails.adSet.budgetAmount.aboHelperText",{min:20})})]})]}),p&&l&&t.jsx(g,{size:"xs",mt:"sm",c:"dimmed",children:a("adLauncher.campaignDetails.budget.existingCboHelper")}),t.jsx(pe,{withAsterisk:!0,w:"48%",label:a("adLauncher.campaignDetails.adSet.bidPrice.title"),placeholder:a("adLauncher.campaignDetails.adSet.bidPrice.placeholder"),...L.getInputProps("bidPrice"),mt:"sm"}),t.jsx(Re,{w:"100%",disabled:!0,label:a("adLauncher.campaignDetails.adSet.optimizationGoals"),placeholder:a("adLauncher.campaignDetails.adSet.optimizationGoals"),data:[{label:y,value:y}],value:y,mt:"xs"}),D&&t.jsxs(t.Fragment,{children:[E&&E.length>0?t.jsx(Re,{withAsterisk:!0,mt:"sm",label:a("adLauncher.tiktokAdLauncher.salesPixel.pixelLabel",{defaultValue:"TikTok pixel"}),description:a("adLauncher.tiktokAdLauncher.salesPixel.pixelHint",{defaultValue:"Sales / web conversions need a pixel and event. Launch is blocked without both."}),placeholder:a("adLauncher.tiktokAdLauncher.salesPixel.pixelPlaceholder",{defaultValue:"Select a pixel"}),data:E,searchable:!0,...L.getInputProps("pixelId")}):t.jsx(pe,{withAsterisk:!0,mt:"sm",label:a("adLauncher.tiktokAdLauncher.salesPixel.pixelLabel",{defaultValue:"TikTok pixel ID"}),description:a("adLauncher.tiktokAdLauncher.salesPixel.pixelHint",{defaultValue:"Sales / web conversions need a pixel and event. Enter the pixel ID from TikTok Ads Manager."}),placeholder:a("adLauncher.tiktokAdLauncher.salesPixel.pixelIdPlaceholder",{defaultValue:"Pixel ID"}),...L.getInputProps("pixelId")}),t.jsx(Re,{withAsterisk:!0,mt:"sm",label:a("adLauncher.tiktokAdLauncher.salesPixel.eventLabel",{defaultValue:"Optimization event"}),data:[...Zx],...L.getInputProps("optimizationEvent")},`tiktok-optimization-event-${_}`)]}),t.jsx(Yt,{withAsterisk:!0,w:"100%",label:a("adLauncher.campaignDetails.adSet.country"),description:a("adLauncher.campaignDetails.adSet.countryDescription"),placeholder:a("adLauncher.campaignDetails.adSet.countryPlaceholder"),data:T,...L.getInputProps("countries"),mt:"xs",searchable:!0}),t.jsx(Xt,{color:"blue",variant:"light",mt:"sm",children:a("adLauncher.tiktokAdLauncher.smartPlusUnsupported")}),t.jsx(ud,{label:a("adLauncher.tiktokAdLauncher.interests.label"),description:a("adLauncher.tiktokAdLauncher.interests.description"),placeholder:a("adLauncher.tiktokAdLauncher.interests.placeholder"),nothingFound:a("adLauncher.tiktokAdLauncher.interests.nothingFound"),chips:B,onChange:$,isSearching:P.isPending,onSearch:async F=>{if(!o||!F.trim())return[];try{const w=await P.mutateAsync({brand_id:parseInt(o,10),channel:"tiktok",query:F,limit:8,types:["interests"]});return ey(w)}catch{return[]}}}),t.jsxs(ae,{gap:"xs",mt:"sm",children:[t.jsx(g,{size:"sm",fw:500,children:a("adLauncher.tiktokAdLauncher.placements.label")}),t.jsx(g,{size:"xs",c:"dimmed",children:a("adLauncher.tiktokAdLauncher.placements.description")}),t.jsx(La,{fullWidth:!0,value:J===pa?pa:ji,onChange:z,data:[{value:ji,label:a("adLauncher.tiktokAdLauncher.placements.automatic")},{value:pa,label:a("adLauncher.tiktokAdLauncher.placements.manual")}]})]}),J===pa&&t.jsx(Yt,{mt:"sm",label:a("adLauncher.tiktokAdLauncher.placements.manualLabel"),data:ty.map(F=>({value:F,label:a(`adLauncher.tiktokAdLauncher.placements.${F}`)})),value:V,onChange:N,error:dr(J,V)?a("adLauncher.tiktokAdLauncher.placements.required"):void 0}),I&&t.jsxs(t.Fragment,{children:[t.jsx(Be,{mt:"sm",order:3,children:a("adLauncher.campaignDetails.adSet.frequency.frequencyCap")}),t.jsx(g,{size:"xs",mt:"5px",children:a("adLauncher.campaignDetails.adSet.frequency.helperText")}),t.jsxs(U,{align:"center",gap:"xs",mt:"xs",wrap:"wrap",children:[t.jsx(g,{size:"sm",children:a("adLauncher.campaignDetails.adSet.frequency.showNoMoreThan")}),t.jsx(pe,{type:"number",w:80,min:1,...L.getInputProps("frequency")}),t.jsx(g,{size:"sm",children:a("adLauncher.campaignDetails.adSet.frequency.timesEvery")}),t.jsx(pe,{type:"number",w:80,min:1,...L.getInputProps("frequency_schedule")}),t.jsx(g,{size:"sm",children:a("adLauncher.campaignDetails.adSet.frequency.days")})]})]})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:a("adLauncher.campaignDetails.navigation.back"),nextLabel:a("adLauncher.campaignDetails.navigation.next"),onBack:()=>n(Tt(m-1)),nextType:"submit",nextDisabled:dr(J,V)})]})})}function kA(){const e=xe(),{t:n}=de(),{scrollStyle:a,shellStyle:i}=ze({pinFooter:!0}),{tiktokAdLauncherStepNumber:s}=re(c=>c.adGallery),o=["reach","traffic","sales"].reduce((c,d)=>(c[d]={key:d,title:n(`adLauncher.tiktokAdLauncher.campaignObjectives.${d}.title`),description:n(`adLauncher.tiktokAdLauncher.campaignObjectives.${d}.description`),status:n(`adLauncher.tiktokAdLauncher.campaignObjectives.${d}.status`)},c),{});return t.jsxs(A,{style:i,children:[t.jsxs(A,{style:a,children:[t.jsxs(A,{style:{maxWidth:640,margin:"0 auto",width:"100%"},children:[t.jsx(g,{size:"md",fw:600,mb:"xs",children:n("adLauncher.campaignObjectives.heading")}),t.jsx(on,{cols:{base:1,sm:2,md:3},spacing:"md",children:Object.entries(o).map(([c,d])=>t.jsx(ld,{data:d,disabled:!1,onClick:()=>{e(Zt(d.title)),e(ua({campaignObjective:c}))}},c))})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:n("adLauncher.common.back"),nextLabel:n("adLauncher.common.next"),onBack:()=>e(Tt(s-1)),onNext:()=>e(Tt(s+1))})]})}const tt={VALIDATE_ACCOUNT:1,CAMPAIGN:2,OBJECTIVE:3,CAMPAIGN_DETAILS:4,ADS:5,AD_SET:6,LOADING:7,SUCCESS:8};function DA(){var O;const e=S.useRef(null),n=Lt(),{selectedLauncherAds:a,selectedAdLauncherChannel:i,redditAdsSelectionBackStep:s}=re(f=>f.adGallery),{brandId:r}=ve(),o=xe(),{t:c}=de(),{data:d,fetchNextPage:m,hasNextPage:h,isFetchingNextPage:p,isPending:l}=Cn({mode:"brand",brandId:r??""}),b=S.useMemo(()=>((d==null?void 0:d.pages)||[]).flatMap(f=>f.items),[d]),u=((O=d==null?void 0:d.pages)==null?void 0:O.length)??0,y=i[0]==="reddit"?b:b==null?void 0:b.filter(f=>!Te(f.previewStorageKey)),{showLoading:I,showEmpty:C}=oa({count:(y==null?void 0:y.length)??0,isPending:l,hasNextPage:h,isFetchingNextPage:p}),E=f=>f!=null&&f.previewStorageKey&&f.previewStorageKey!=="public/"?f.previewStorageKey.includes("public/")?st(`${bt[n]}/${f.previewStorageKey}`):st(`${At[n]}/${f.previewStorageKey}`):"",P=f=>{const k=a.some(R=>R.id===f.id)?a.filter(R=>R.id!==f.id):[...a,f];o(zs(k))},D=S.useCallback(()=>{!h||p||m==null||m()},[h,p,m]),G=S.useCallback(({y:f})=>{const k=e.current;if(!k)return;const{scrollHeight:R,clientHeight:B}=k,$=Math.max(0,R-B);$<=0||f<$-120||D()},[D]);S.useLayoutEffect(()=>{if(p||!h)return;let f=!1;const k=()=>
98{if(f)return;const B=e.current;if(!B)return;const{scrollHeight:$,clientHeight:J}=B;$>J+12||D()},R=requestAnimationFrame(()=>{requestAnimationFrame(k)});return()=>{f=!0,cancelAnimationFrame(R)}},[u,h,p,D]);const _={default:5,1200:4,1100:3,700:2,500:1};return t.jsxs(A,{style:{display:"flex",flexDirection:"column",flex:1,minHeight:0,overflow:"hidden"},children:[t.jsxs(A,{style:{flexShrink:0},children:[t.jsx(Be,{order:4,children:c("adLauncher.redditAdLauncher.adsSelection.title")}),t.jsx(g,{size:"sm",fw:600,mt:"sm",children:c("adLauncher.launchAd.eligibleAds")})]}),t.jsxs(Nt,{style:{flex:1,minHeight:0},onScrollPositionChange:G,viewportRef:e,scrollbars:"y",children:[I||C?t.jsx(Sn,{isLoading:I,filtered:C&&((b==null?void 0:b.length)??0)>0}):t.jsx(In,{breakpointCols:_,className:"my-masonry-grid p-0",columnClassName:"my-masonry-grid_column p-0",children:y==null?void 0:y.map(f=>t.jsx(Ae,{shadow:"sm",padding:"0",withBorder:!0,style:{cursor:"pointer",borderColor:a.some(k=>k.id===f.id)?"#322996":"#e9ecef",borderWidth:a.some(k=>k.id===f.id)?"4px":"1px",padding:a.some(k=>k.id===f.id)?"5px":"0",transition:"all 0.3s ease"},onClick:()=>P(f),children:Te(f==null?void 0:f.previewStorageKey)?t.jsx("video",{src:E(f),autoPlay:!0,muted:!0,loop:!0,playsInline:!0,style:{height:"auto",borderRadius:"8px",width:"100%",border:"none",objectFit:"contain"}}):t.jsx(ot,{src:E(f),fit:"contain",loading:"lazy",alt:f.name,style:{maxHeight:"auto",flex:"unset"}})},f.id))}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:c("adLauncher.common.back"),nextLabel:c("adLauncher.common.next"),onBack:()=>o(ut(s)),onNext:()=>{Oe(Zp,{brandId:r}),o(ut(tt.AD_SET))},nextDisabled:(a==null?void 0:a.length)===0})]})}function PA(e){const n=Number(e.brandId),{channel:a,adSpecs:i}=e;if(e.mode===Ut.CREATE_NEW_CAMPAIGN&&e.draft)return{brand_id:n,channel:a,campaign_spec:e.draft.campaign_spec,ad_group_spec:e.draft.ad_group_spec,ad_specs:i};if(e.mode===Ut.EXISTING_CAMPAIGN_NEW_AD_GROUP&&e.draft)return{brand_id:n,channel:a,campaign_spec:e.draft.campaign_spec,ad_group_spec:e.draft.ad_group_spec,ad_specs:i};const s=i.map(r=>({...r,ad_group_id:e.selectedAdGroupId}));return{brand_id:n,channel:a,campaign_spec:{id:e.selectedCampaignId},ad_group_spec:{id:e.selectedAdGroupId},ad_specs:s}}const OA=[{value:"MAXIMIZE_VOLUME",label:"Maximize volume (lowest cost)"},{value:"MANUAL_BIDDING",label:"Manual bidding"},{value:"BIDLESS",label:"Bidless"},{value:"TARGET_CPX",label:"Target CPX (cost cap)"}],RA=["MANUAL_BIDDING","TARGET_CPX"],zA=[{value:"CPC",label:"CPC"},{value:"CPM",label:"CPM"},{value:"CPV",label:"CPV"},{value:"CPV6",label:"CPV6"}],os=e=>RA.includes(String(e||"")),GA=e=>Math.round(e*1e6),FA=[{value:"LEARN_MORE",label:"Learn more"},{value:"SHOP_NOW",label:"Shop now"},{value:"SIGN_UP",label:"Sign up"},{value:"DOWNLOAD",label:"Download"},{value:"APPLY_NOW",label:"Apply now"},{value:"CONTACT_US",label:"Contact us"},{value:"WATCH_NOW",label:"Watch now"},{value:"SUBSCRIBE",label:"Subscribe"},{value:"GET_QUOTE",label:"Get quote"},{value:"BOOK_NOW",label:"Book now"},{value:"ORDER_NOW",label:"Order now"},{value:"INSTALL_NOW",label:"Install now"},{value:"GET_STARTED",label:"Get started"},{value:"PLAY_NOW",label:"Play now"},{value:"DONATE_NOW",label:"Donate now"},{value:"BET_NOW",label:"Bet now"}],Er=300,ds=255,Ir=5;function BA(e){const n=Lt(),a=e.includes("public/")?`${bt[n]}/${e}`:`${At[n]}/${e}`;let i=st(a);return i||(i=e.includes("public/")?`https://cgp-assets-thumbnails.omneky.com/public/${e}`:`https://cgp-assets-thumbnails.omneky.com/${e}`),i.replace(/\.(mp4|webm|ogg|mov|avi|wmv|flv|mkv|m4v|qt)(?=[?#]|$)/i,".jpg")}function UA(e){return e==="Traffic"?"CLICKS":"IMPRESSIONS"}function Ga(e){if(!e)return"";const n=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0");return`${n}-${a}-${i}`}function rp(e){const n=e.getFullYear(),a=e.getMonth(),i=e.getDate();return Date.UTC(n,a,i,0,0,0)>=Date.now()}function HA(){const e=new Date;e.setHours(0,0,0,0);for(let n=0;n<800;n++){if(rp(e))return new Date(e.getFullYear(),e.getMonth(),e.getDate());e.setDate(e.getDate()+1)}return e}function $A(){return{campaignName:"",campaignObjective:"IMPRESSIONS",startDate:null,endD
98ate:null,campaignActive:!0,adSetName:"",adSetDailyBudget:20,adSetActive:!0,bidStrategy:"MAXIMIZE_VOLUME",bidType:"CPC",bidValue:void 0,geolocations:[],communities:[],expandTargeting:!0,fundingInstrumentId:"",pixelId:""}}function Jc(e){if(!e||!/^\d{4}-\d{2}-\d{2}$/.test(e))return null;const[n,a,i]=e.split("-").map(Number);return new Date(n,a-1,i)}function VA(e){return{campaignName:e.campaignName,campaignObjective:e.campaignObjective,startDate:Jc(e.startDateYmd),endDate:Jc(e.endDateYmd),campaignActive:e.campaignActive,adSetName:e.adSetName,adSetDailyBudget:e.adSetDailyBudget,adSetActive:e.adSetActive,bidStrategy:e.bidStrategy,bidType:e.bidType||"CPC",bidValue:e.bidValue??void 0,geolocations:[...e.geolocations],communities:[...e.communities],expandTargeting:e.expandTargeting,fundingInstrumentId:e.fundingInstrumentId||"",pixelId:e.pixelId||""}}function Qc(e){return{campaignName:e.campaignName,campaignObjective:e.campaignObjective,startDateYmd:e.startDate?Ga(e.startDate):null,endDateYmd:e.endDate?Ga(e.endDate):null,campaignActive:e.campaignActive,adSetName:e.adSetName,adSetDailyBudget:e.adSetDailyBudget,adSetActive:e.adSetActive,bidStrategy:e.bidStrategy,bidType:e.bidType,bidValue:e.bidValue??null,geolocations:[...e.geolocations],communities:[...e.communities],expandTargeting:e.expandTargeting,fundingInstrumentId:e.fundingInstrumentId||null,pixelId:e.pixelId||null}}function WA(){return{headline:"",callToAction:"LEARN_MORE",url:"",checked:!0,sourceAdId:null}}function Tr(e){return{headline:e.headline,callToAction:e.callToAction,url:e.url,checked:e.checked}}function KA(){var J;const e=xe(),{brandId:n}=ve(),{t:a}=de(),{selectedLauncherAds:i,selectedAdLauncherChannel:s,selectedAdLauncherCampaignId:r,selectedAdLauncherAdGroupId:o,redditAdLauncherFlow:c,redditLaunchSpecDraft:d,redditAdSpecsForm:m,lastLaunchError:h}=re(z=>z.adGallery);yt();const p=En(),l=localStorage.getItem("user");JSON.parse(l||"{}");const{adInstanceItems:b}=re(z=>z.projectView),u=xn(),y=i==null?void 0:i[0],I=(y==null?void 0:y.id)??null,{brandOverviewData:C}=re(z=>z.library),{data:E}=Ot(n),[P,D]=S.useState(!1),G=S.useRef(null),_=m!==null&&m.sourceAdId===I,O=wt({initialValues:Tr(_&&m?m:WA()),onValuesChange:z=>{var V;e(Od({headline:z.headline,callToAction:z.callToAction,url:z.url,checked:z.checked,sourceAdId:((V=i==null?void 0:i[0])==null?void 0:V.id)??null}))},validate:{headline:z=>z!=null&&z.trim()?z.length>Er?a("adLauncher.redditAdLauncher.validation.headlineMaxLength",{max:Er}):null:a("adLauncher.launchAd.validations.headline"),url:z=>z?Wa.test(z)?z.trim().toLowerCase().startsWith("https://")?null:a("adLauncher.redditAdLauncher.validation.destinationUrlHttps"):a("adLauncher.launchAd.validations.urlInvalid"):a("adLauncher.launchAd.validations.url"),callToAction:z=>z?null:a("adLauncher.launchAd.validations.cta")}}),f=async z=>{try{return await e(ii(z))}catch(V){return console.error("Failed to fetch brand overview:",V),null}};S.useEffect(()=>{if(_||!y||!n)return;let z=!1;return(async()=>{var w,K;let N=Xy(y);if((E==null?void 0:E.name)&&G.current!==y.id&&ob(N)){D(!0);const M=await ub({adUrl:un(y),brandId:n,brandName:E.name,language:((w=E.language)==null?void 0:w.langCode)||"us-en"});if(z)return;G.current=y.id,M&&(N=cb(N,M)),D(!1)}if(z)return;const v=await f({brandId:n}),H=(v&&typeof v=="object"&&"payload"in v?(K=v.payload)==null?void 0:K.url:void 0)||(C==null?void 0:C.url)||"",F={headline:N.headline,callToAction:O.values.callToAction||"LEARN_MORE",url:H||O.values.url||"",checked:O.values.checked??!0,sourceAdId:I};O.setValues(Tr(F)),e(Od(F))})(),()=>{z=!0,D(!1)}},[y,n,E==null?void 0:E.name,(J=E==null?void 0:E.language)==null?void 0:J.langCode,_,C==null?void 0:C.url,I]);const k=async z=>{try{if((c===Ut.CREATE_NEW_CAMPAIGN||c===Ut.EXISTING_CAMPAIGN_NEW_AD_GROUP)&&!d){he.show({title:a("adLauncher.redditAdLauncher.launchValidation.missingDraftTitle"),message:a("adLauncher.redditAdLauncher.launchValidation.missingDraftMessage"),color:"red"});return}if(c!==Ut.CREATE_NEW_CAMPAIGN&&c!==Ut.EXISTING_CAMPAIGN_NEW_AD_GROUP&&(!r||!o)){he.show({title:a("adLauncher.redditAdLauncher.launchValidation.missingIdsTitle"),message:a("adLauncher.redditAdLauncher.launchValidation.missingIdsMessage"),color:"red"});return}e(Xe(null)),e(ut(tt.LOADING));const V=z.headline.trim(),N=(i==null?void 0:i.map(w=>{const K=Te(w==null?void 0:w.previewStorageKey),M=w.previewStorageKey.includes("public/")?`${dt}${w.previewStorageKey}`:`${dt}public/${w.previewStorageKey}`;return{name:w.name,configured_status:z.checked?"ACTIVE":"PAUSED",media_type:K?"video":"image",media_url:M,headline:V||w.name,destination_url:z.url,call_to_action:z.callToAction,...K&&{thumbnail_url:BA(w.previewStorageKey)}}}))??[],L=PA({mode:c,draft:d,brandId:n,channel:s[0],selectedCampaignId:r,selectedAdGroupId:o,adSpecs:N}),x=await u.mutateAsync(L),v=Mn(x),T=i??[],H=Nn(T,v,T.length);if(!v.isFullSuccess){const w=kn(v,a("adLauncher.launchAd.launchFailedFallback"),a);if(Oe(Rd,{brandId:n,error_message:w.message}),e(Xe(w)),he.show({title:a("adLauncher.errors.partialTitle"),message:w.message,color:"red"}),e(ut(tt.AD_SET)),H.length){await Promise.all(H.map(async M=>{const{__typename:ee,...ne}=M;"id"in ne&&await p.mutateAsync({id:ne.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const K=b==null?void 0:b.map(M=>H.find(ee=>"id"in ee&&ee.id===M.id)?{...M,status:Fe.launched,updatedAt:new Date().toISOString()}:M);e(mt(K))}return}Oe(Jp,{brandId:n}),e(ut(tt.SUCCESS)),Promise.all(H.map(async w=>{const{__typename:K,...M}=w;
98"id"in M&&await p.mutateAsync({id:M.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const F=b==null?void 0:b.map(w=>H.find(K=>"id"in K&&K.id===w.id)?{...w,status:Fe.launched,updatedAt:new Date().toISOString()}:w);e(mt(F)),setTimeout(()=>{e(wn()),e(Ao()),e(fn(!1))},5e3)}catch(V){const N=$n(V,a("adLauncher.launchAd.launchFailedFallback"));Oe(Rd,{brandId:n,error_message:N.message}),e(Xe(N)),he.show({title:a("adLauncher.errors.title"),message:N.message,color:"red"}),e(ut(tt.AD_SET))}},{formStyle:R,scrollStyle:B,shellStyle:$}=ze({pinFooter:!0});return t.jsx(A,{style:$,children:t.jsxs("form",{style:R,onSubmit:O.onSubmit(z=>{k(z)}),children:[t.jsxs(A,{style:B,children:[t.jsxs(Ct,{width:600,children:[t.jsx(Tn,{error:h,onDismiss:()=>e(Xe(null))}),P&&t.jsx(g,{size:"sm",c:"dimmed",mb:"sm",children:a("adLauncher.adsetSettings.generatingCopy",{defaultValue:"Generating ad copy..."})}),t.jsx(pe,{withAsterisk:!0,label:a("adLauncher.redditAdLauncher.adSpecsStep.headlineLabel"),placeholder:a("adLauncher.redditAdLauncher.adSpecsStep.headlinePlaceholder"),maxLength:Er,disabled:P,...O.getInputProps("headline"),mt:"xs"}),t.jsx(A,{mt:"md",children:t.jsx(Re,{w:"100%",label:a("adLauncher.redditAdLauncher.adSpecsStep.callToActionLabel"),data:[...FA],comboboxProps:{withinPortal:!0},...O.getInputProps("callToAction")})}),t.jsxs(A,{mt:"md",children:[t.jsx(g,{size:"md",children:a("adLauncher.adsetSettings.destination")}),t.jsx(g,{size:"xs",mt:"5px",children:a("adLauncher.adsetSettings.redirectPeopleText")}),t.jsx(pe,{label:a("adLauncher.adsetSettings.urlPlaceholder"),placeholder:a("adLauncher.adsetSettings.urlPlaceholder"),value:O.values.url,onChange:z=>{const V=z.currentTarget.value;O.setFieldValue("url",V),V.trim()===""?O.setFieldError("url",a("adLauncher.launchAd.validations.url")):Wa.test(V)?V.trim().toLowerCase().startsWith("https://")?O.setFieldError("url",null):O.setFieldError("url",a("adLauncher.redditAdLauncher.validation.destinationUrlHttps")):O.setFieldError("url",a("adLauncher.launchAd.validations.urlInvalid"))},error:O.errors.url,mt:"md"})]}),t.jsx(g,{size:"md",mt:"sm",children:a("adLauncher.redditAdLauncher.adSpecsStep.adStatusOnLaunch")}),t.jsx(rt,{label:a("adLauncher.redditAdLauncher.adSpecsStep.activeLabel"),...O.getInputProps("checked",{type:"checkbox"})})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:a("adLauncher.common.back"),nextLabel:a("adLauncher.common.launch"),onBack:()=>e(ut(tt.ADS)),nextType:"submit"})]})})}function qA(){var D,G;const e=xe(),{t:n}=de(),{brandId:a}=ve(),{data:i}=sd(a,{channel:"reddit"}),{data:s}=Cy(a),{selectedCampaignObjectives:r,redditAdLauncherFlow:o,redditCampaignDetailsForm:c,selectedCampaign:d,selectedAdLauncherCampaignId:m}=re(_=>_.adGallery),h=o===Ut.EXISTING_CAMPAIGN_NEW_AD_GROUP,p=wt({initialValues:c?VA(c):$A(),onValuesChange:_=>{e(zd(Qc(_)))},validate:{campaignName:_=>h?null:_!=null&&_.trim()?_.length>ds?n("adLauncher.redditAdLauncher.validation.nameMaxLength"):null:n("adLauncher.campaignDetails.campaignName.error"),startDate:_=>_?rp(_)?null:n("adLauncher.redditAdLauncher.validation.startDateNotInPast"):null,endDate:(_,O)=>{if(!_)return null;if(O.startDate){const f=new Date(O.startDate);f.setHours(0,0,0,0);const k=new Date(_);if(k.setHours(0,0,0,0),k<f)return n("adLauncher.redditAdLauncher.validation.endDateBeforeStart")}return null},adSetName:_=>_!=null&&_.trim()?_.length>ds?n("adLauncher.redditAdLauncher.validation.nameMaxLength"):null:n("adLauncher.campaignDetails.adSet.nameError"),adSetDailyBudget:_=>_==null?n("adLauncher.redditAdLauncher.validation.dailyBudget"):Number(_)<Ir?n("adLauncher.redditAdLauncher.validation.dailyBudgetMin",{min:Ir}):null,bidType:(_,O)=>os(O.bidStrategy)?_?null:n("adLauncher.redditAdLauncher.validation.bidType"):null,bidValue:(_,O)=>
98os(O.bidStrategy)&&(_==null||Number(_)<=0)?n("adLauncher.redditAdLauncher.validation.bidValue"):null}}),l=HA(),b=p.values.startDate,u=b!=null?new Date(Math.max(l.getTime(),new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime())):l;S.useEffect(()=>{c||d&&h&&p.setFieldValue("campaignName",(d==null?void 0:d.label)??"")},[d,h,c]),S.useEffect(()=>{c||h||p.setFieldValue("campaignObjective",UA(r))},[r,h,c]),S.useEffect(()=>{e(zd(Qc(p.getValues())))},[]);const{formStyle:y,scrollStyle:I,shellStyle:C}=ze({pinFooter:!0}),E=_=>{var B;const O=Ga(_.startDate),f=Ga(_.endDate),k={communities:_.communities.map($=>$.trim()).filter(Boolean),expand_targeting:_.expandTargeting};_.geolocations.length>0&&(k.geolocations=_.geolocations);const R=(B=_.pixelId)==null?void 0:B.trim();return R&&(k.pixel_id=R),{name:_.adSetName.trim(),configured_status:_.adSetActive?"ACTIVE":"PAUSED",bid_strategy:_.bidStrategy,...os(_.bidStrategy)&&_.bidValue?{bid_type:_.bidType,bid_value:GA(Number(_.bidValue))}:{},daily_budget:Number(_.adSetDailyBudget),targeting:k,...O&&{start_date:O},...f&&{end_date:f}}},P=_=>{const O=E(_);if(h)e(Li({campaign_spec:{id:m},ad_group_spec:O}));else{const f=Ga(_.startDate),k=Ga(_.endDate);e(Li({campaign_spec:{name:_.campaignName.trim(),objective:_.campaignObjective,configured_status:_.campaignActive?"ACTIVE":"PAUSED",...f&&{start_date:f},...k&&{end_date:k},...String(_.fundingInstrumentId??"").trim()&&{funding_instrument_id:String(_.fundingInstrumentId??"").trim()},...String(_.pixelId??"").trim()&&{pixel_id:String(_.pixelId??"").trim()}},ad_group_spec:O}))}e(Xl(tt.CAMPAIGN_DETAILS)),e(ut(tt.ADS))};return t.jsx(A,{style:C,children:t.jsxs("form",{style:y,onSubmit:p.onSubmit(_=>{P(_)}),children:[t.jsxs(A,{style:I,children:[t.jsxs(Ct,{width:600,children:[!h&&t.jsxs(A,{mb:"lg",children:[t.jsx(pe,{mt:"md",label:n("adLauncher.campaignDetails.campaignName.label"),withAsterisk:!0,placeholder:n("adLauncher.campaignDetails.campaignName.placeholder"),maxLength:ds,...p.getInputProps("campaignName")}),t.jsxs(U,{gap:"md",mt:"md",wrap:"wrap",children:[t.jsx(an,{flex:1,miw:200,label:n("adLauncher.redditAdLauncher.fields.startDate"),placeholder:n("adLauncher.redditAdLauncher.fields.datePlaceholder"),valueFormat:"YYYY-MM-DD",minDate:l,...p.getInputProps("startDate")}),t.jsx(an,{flex:1,miw:200,label:n("adLauncher.redditAdLauncher.fields.endDate"),placeholder:n("adLauncher.redditAdLauncher.fields.datePlaceholder"),valueFormat:"YYYY-MM-DD",minDate:u,...p.getInputProps("endDate")})]}),t.jsx(rt,{mt:"md",label:n("adLauncher.redditAdLauncher.fields.campaignActive"),...p.getInputProps("campaignActive",{type:"checkbox"})})]}),t.jsxs(A,{mb:"md",mt:"md",children:[t.jsx(Be,{order:3,children:n("adLauncher.redditAdLauncher.adGroupSection.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,children:n("adLauncher.redditAdLauncher.adGroupSection.subtitle")})]}),h&&t.jsxs(U,{gap:"md",mt:"md",wrap:"wrap",children:[t.jsx(an,{flex:1,miw:200,label:n("adLauncher.redditAdLauncher.fields.startDate"),placeholder:n("adLauncher.redditAdLauncher.fields.datePlaceholder"),valueFormat:"YYYY-MM-DD",minDate:l,...p.getInputProps("startDate")}),t.jsx(an,{flex:1,miw:200,label:n("adLauncher.redditAdLauncher.fields.endDate"),placeholder:n("adLauncher.redditAdLauncher.fields.datePlaceholder"),valueFormat:"YYYY-MM-DD",minDate:u,...p.getInputProps("endDate")})]}),t.jsx(pe,{mt:"md",withAsterisk:!0,label:n("adLauncher.campaignDetails.adSet.nameLabel"),placeholder:n("adLauncher.campaignDetails.adSet.namePlaceholder"),maxLength:ds,...p.getInputProps("adSetName")}),t.jsx(at,{mt:"md",withAsterisk:!0,label:n("adLauncher.redditAdLauncher.fields.dailyBudget"),description:n("adLauncher.redditAdLauncher.fields.dailyBudgetHint"),min:Ir,decimalScale:2,...p.getInputProps("adSetDailyBudget")}),t.jsx(Re,{mt:"md",label:n("adLauncher.redditAdLauncher.fields.bidStrategy"),description:n("adLauncher.redditAdLauncher.fields.bidStrategyHint"),data:[...OA],comboboxProps:{withinPortal:!0},...p.getInputProps("bidStrategy")}),os(p.values.bidStrategy)&&t.jsxs(U,{gap:"md",mt:"md",wrap:"wrap",children:[t.jsx(Re,{flex:1,miw:160,withAsterisk:!0,label:n("adLauncher.redditAdLauncher.fields.bidType"),data:[...zA],comboboxProps:{withinPortal:!0},...p.getInputProps("bidType")}),t.jsx(at,{flex:1,miw:160,withAsterisk:!0,label:n("adLauncher.redditAdLauncher.fields.bidValue"),description:n("adLauncher.redditAdLauncher.fields.bidValueHint"),min:.01,decimalScale:2,prefix:"$ ",...p.getInputProps("bidValue")})]}),t.jsx(Yt,{mt:"md",label:n("adLauncher.redditAdLauncher.fields.geolocations"),description:n("adLauncher.campaignDetails.adSet.countryDescription"),placeholder:n("adLauncher.campaignDetails.adSet.countryPlaceholder"),data:i??[],searchable:!0,comboboxProps:{withinPortal:!0},...p.getInputProps("geolocations")}),t.jsx(Re,{mt:"md",label:n("adLauncher.redditAdLauncher.fields.fundingInstrument"),description:n("adLauncher.redditAdLauncher.fields.fundingInstrumentHint"),placeholder:n("adLauncher.redditAdLauncher.fields.fundingInstrumentPlaceholder"),data:(s==null?void 0:s.fundingInstruments)??[],searchable:!0,clearable:!0,comboboxProps:{withinPortal:!0},...p.getInputProps("fundingInstrumentId")}),!((D=s==null?void 0:s.fundingInstruments)!=null&&D.length)&&t.jsx(pe,{mt:"xs",label:n("adLauncher.redditAdLauncher.fields.fundingInstrumentManual"),placeholder:n("adLauncher.redditAdLauncher.fields.fundingInstrumentManualPlaceholder"),...p.getInputProps("fundingInstrumentId")}),t.jsx(Re,{mt:"md",label:n("adLauncher.redditAdLauncher.fields.pixel"),description:n("adLauncher.redditAdLauncher.fields.pixelHint"),placeholder:n("adLauncher.redditAdLauncher.fields.pixelPlaceholder"),data:(s==null?void 0:s.pixels)??[],searchable:!0,clearable:!0,comboboxProps:{withinPortal:!0},...p.getInputProps("pixelId")}),!((G=s==null?void 0:s.pixels)!=null&&G.length)&&t.jsx(pe,{mt:"xs",label:n("adLauncher.redditAdLauncher.fields.pixelManual"),placeholder:n("adLauncher.redditAdLauncher.fields.pixelManualPlaceholder"),...p.getInputProps("pixelId")}),t.jsx(ru,{mt:"md",label:n("adLauncher.redditAdLauncher.fields.communities"),description:n("adLauncher.redditAdLauncher.fields.communitiesDescription"),placeholder:n("adLauncher.redditAdLauncher.fields.communitiesPlaceholder"),...p.getInputProps("communities")}),t.jsx(rt,{mt:"md",label:n("adLauncher.redditAdLauncher.fields.expandTargeting"),...p.getInputProps("expandTargeting",{type:"checkbox"})}),t.jsx(rt,{mt:"md",label:n("adLauncher.redditAdLauncher.fields.adSetActive"),...p.getInputProps("adSetActive",{type:"checkbox"})})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:n("adLauncher.campaignDetails.navigation.back"),nextLabel:n("adLauncher.campaignDetails.navigation.next"),onBack:()=>{e(h?ut(tt.CAMPAIGN):ut(tt.OBJECTIVE))},nextType:"submit"})]})})}const el=["reddit"],YA=new Set(["IMPRESSIONS","CLICKS","CONVERSIONS","
98LEAD_GENERATION","VIDEO_VIEWABLE_IMPRESSIONS","APP_INSTALLS","CATALOG_SALES"]);function XA(){const{t:e}=de(),{brandId:n}=ve(),a=xe(),[i,s]=S.useState({}),{adGroupOptions:r}=re(h=>h.briefBuilder),{selectedAdLauncherCampaignId:o,selectedAdLauncherAdGroupId:c}=re(h=>h.adGallery),d=Zo([...el],n);Jo([...el],i,n);const m=S.useMemo(()=>d.map(h=>{var l;return{channel:"reddit",data:(((l=h.data)==null?void 0:l.campaigns)||[]).filter(b=>{const u=String(b.objective||"").toUpperCase();return!u||YA.has(u)}).map(b=>{var u;return{label:b.name,value:b.id,objective:b.objective,campaignBudget:(u=b.rawObject)==null?void 0:u.budget}})}}),[d]);return t.jsxs(A,{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:[t.jsx(A,{style:{flex:1},children:t.jsx(Ct,{width:520,children:t.jsxs(ae,{children:[t.jsx(g,{fw:600,size:"md",children:e("adLauncher.launchAd.selectCampaignStep2")}),m.map((h,p)=>t.jsxs("div",{children:[t.jsx(Re,{data:h.data,label:"Reddit Campaign",placeholder:"Reddit Campaign",value:o,onChange:l=>{const b=h.data.find(y=>y.value===l),u=b==null?void 0:b.objective;a(Zt(u)),s(y=>({...y,reddit:l||""})),a(Ci(l||"")),a(Ei(b))}}),t.jsx(Re,{mt:"sm",placeholder:e("adLauncher.launchAd.selectAdGroupPlaceholderMeta"),data:r[h.channel]||[],value:c,label:e("adLauncher.launchAd.adGroupLabel"),onChange:l=>{a(ya(l||""))},searchable:!0,clearable:!0}),t.jsx(Zl,{h:"md"}),t.jsxs(Ht,{style:td,onClick:()=>{a(Li(null)),a(Xs(Ut.CREATE_NEW_CAMPAIGN)),a(ut(tt.OBJECTIVE))},children:["+ ",e("adLauncher.launchAd.newCampaign")]})]},p))]})})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back"),nextLabel:e("adLauncher.common.next"),onBack:()=>a(ut(0)),onNext:()=>{c?(a(Li(null)),a(Xs(Ut.EXISTING_CAMPAIGN_AND_AD_GROUP)),a(Xl(tt.CAMPAIGN)),a(ut(tt.ADS))):(a(Li(null)),a(Xs(Ut.EXISTING_CAMPAIGN_NEW_AD_GROUP)),a(ut(tt.CAMPAIGN_DETAILS)))},nextDisabled:!o})]})}function ZA(){const{brandId:e}=ve(),{t:n}=de(),a=xe(),{data:i,refetch:s}=fu(e),{accountId:r}=i||{},o=S.useMemo(()=>!!r,[r]),{data:c,isLoading:d,isError:m,refetch:h}=Yo({brandId:e,channel:"reddit",enabled:!0});return S.useEffect(()=>{(c==null?void 0:c.validity)==="valid"&&a(ut(tt.CAMPAIGN))},[c,a]),t.jsxs(A,{py:40,children:[d&&t.jsxs(ae,{align:"center",gap:"md",children:[t.jsx(Wr,{size:"120"}),t.jsxs(U,{gap:"md",align:"center",children:[t.jsx(et,{size:"sm"}),t.jsx(g,{size:"sm",fw:500,children:n("adLauncher.validateAdAccount.checkingAccount")})]})]}),c&&(c==null?void 0:c.validity)==="invalid"&&t.jsxs(ae,{align:"center",gap:"md",children:[t.jsxs(ae,{align:"center",gap:"md",children:[t.jsx(Wr,{size:"120"}),t.jsx(g,{fw:600,children:n("adLauncher.validateAdAccount.connectionFailed")}),t.jsxs(Pt,{size:"sm",spacing:"xs",w:"50%",children:[c.issues.map((p,l)=>t.jsx(Pt.Item,{children:p.issue},l)),t.jsx(Pt.Item,{style:{listStyleType:"none",paddingLeft:20,paddingTop:10},children:t.jsxs(g,{size:"sm",children:[n("adLauncher.validateAdAccount.emailAtMessage")," ",t.jsx(g,{span:!0,fw:500,td:"underline",children:"[email protected]"})]})})]})]}),t.jsxs(ae,{w:"25%",gap:"xs",mt:"md",children:[t.jsx(bu,{connected:o,refetchRedditConnection:s}),t.jsx(Me,{fullWidth:!0,variant:"light",color:"gray",onClick:()=>a(fn(!1)),children:"Cancel"})]})]})]})}function JA(){const{t:e}=de(),{scrollStyle:n,shellStyle:a}=ze({pinFooter:!0}),i=xe(),[s,r]=S.useState(null),o=[{id:"traffic",titleKey:"adLauncher.redditAdLauncher.campaignObjective.traffic.title",descriptionKey:"adLauncher.redditAdLauncher.campaignObjective.traffic.description",bulletKeys:["adLauncher.redditAdLauncher.campaignObjective.traffic.bullet1","adLauncher.redditAdLauncher.campaignObjective.traffic.bullet2"]},{id:"brand_awareness",titleKey:"adLauncher.redditAdLauncher.campaignObjective.brandAwareness.title",descriptionKey:"adLauncher.redditAdLauncher.campaignObjective.brandAwareness.description",bulletKeys:["adLauncher.redditAdLauncher.campaignObjective.brandAwareness.bullet1","adLauncher.redditAdLauncher.campaignObjective.brandAwareness.bullet2"]}],c=()=>{s&&(i(s==="traffic"?Zt("Traffic"):Zt("Awareness")),i(ut(tt.CAMPAIGN_DETAILS)))};return t.jsxs(A,{style:a,children:[t.jsxs(ae,{gap:"lg",style:n,children:[t.jsx(g,{fw:600,size:"sm",children:e("adLauncher.redditAdLauncher.campaignObjective.sectionLabel")}),t.jsx(on,{cols:{base:1,sm:2},spacing:"md",children:o.map(d=>{const m=s===d.id;
98return t.jsx(Ae,{withBorder:!0,padding:"lg",radius:"md",style:{cursor:"pointer",borderColor:m?"#322996":void 0,borderWidth:m?2:1},onClick:()=>r(d.id),children:t.jsxs(ae,{gap:"sm",align:"center",children:[t.jsx(g,{fw:700,ta:"center",children:e(d.titleKey)}),t.jsx(g,{size:"sm",c:"dimmed",ta:"center",children:e(d.descriptionKey)}),t.jsx(Pt,{size:"sm",spacing:"xs",w:"100%",mt:"xs",children:d.bulletKeys.map(h=>t.jsx(Pt.Item,{children:e(h)},h))})]})},d.id)})}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:e("adLauncher.common.back"),nextLabel:e("adLauncher.common.next"),onBack:()=>i(ut(tt.CAMPAIGN)),onNext:c,nextDisabled:!s})]})}const QA=.05;function op(e,n,a=QA){return!e||!n?!1:Math.abs(e/n-1)<a}function fd(e){if(!e)return null;const n=e.trim().match(/^(\d+(?:\.\d+)?)\s*[xXÃ:]\s*(\d+(?:\.\d+)?)/);if(!n)return null;const a=Number(n[1]),i=Number(n[2]);return!a||!i?null:{w:a,h:i}}function eL(e){const n=fd(e);return n?op(n.w,n.h):!1}function na(e){return e.resized?!0:e.measured?op(e.measured.w,e.measured.h):eL(e.size)}function tL(){var J;const e=S.useRef(null),n=Lt(),{selectedLauncherAds:a,openaiResizedMediaByAd:i}=re(z=>z.adGallery),{brandId:s}=ve(),r=xe(),{t:o}=de(),[c,d]=S.useState(!1),[m,h]=S.useState({}),{data:p,fetchNextPage:l,hasNextPage:b,isFetchingNextPage:u,isPending:y}=Cn({mode:"brand",brandId:s??""}),I=S.useMemo(()=>((p==null?void 0:p.pages)||[]).flatMap(z=>z.items),[p]),C=((J=p==null?void 0:p.pages)==null?void 0:J.length)??0,E=S.useCallback((z,V,N)=>{!V||!N||h(L=>{const x=L[z];return x&&x.w===V&&x.h===N?L:{...L,[z]:{w:V,h:N}}})},[]),P=S.useMemo(()=>(I||[]).filter(z=>!Te(z.previewStorageKey)),[I]),D=S.useMemo(()=>{const z=P.map(N=>{const L=String(N.id),x=na({size:N.size,resized:!!i[L],measured:m[L]??null});return{ad:N,isSquare:x}});return(c?z.filter(N=>N.isSquare):z).sort((N,L)=>Number(L.isSquare)-Number(N.isSquare))},[P,c,i,m]),G=S.useMemo(()=>c?P.filter(z=>{const V=String(z.id);return i[V]||m[V]?!1:!na({size:z.size})}):[],[P,c,i,m]),{showLoading:_,showEmpty:O}=oa({count:D.length,isPending:y||G.length>0,hasNextPage:b,isFetchingNextPage:u}),f=z=>{const V=i[String(z.id)];return V||(z!=null&&z.previewStorageKey&&z.previewStorageKey!=="public/"?z.previewStorageKey.includes("public/")?st(`${bt[n]}/${z.previewStorageKey}`):st(`${At[n]}/${z.previewStorageKey}`):"")},k=z=>{const V=a.some(N=>N.id===z.id)?a.filter(N=>N.id!==z.id):[...a,z];r(zs(V))},R=S.useCallback(()=>{!b||u||l==null||l()},[b,u,l]),B=S.useCallback(({y:z})=>{const V=e.current;if(!V)return;const{scrollHeight:N,clientHeight:L}=V,x=Math.max(0,N-L);x<=0||z<x-120||R()},[R]);S.useLayoutEffect(()=>{if(u||!b)return;let z=!1;const V=()=>{if(z)return;const L=e.current;if(!L)return;const{scrollHeight:x,clientHeight:v}=L;x>v+12||R()},N=requestAnimationFrame(()=>{requestAnimationFrame(V)});return()=>{z=!0,cancelAnimationFrame(N)}},[C,b,u,R]);const $={default:5,1200:4,1100:3,700:2,500:1};return t.jsxs(A,{style:{display:"flex",flexDirection:"column",flex:1,minHeight:0,overflow:"hidden"},children:[t.jsxs(A,{style:{flexShrink:0},children:[t.jsx(Be,{order:4,children:o("adLauncher.openaiAdLauncher.adsSelection.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,children:o("adLauncher.openaiAdLauncher.adsSelection.mediaHint")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,children:o("adLauncher.openaiAdLauncher.adsSelection.squareHelper")}),t.jsxs(U,{mt:"sm",gap:"md",align:"center",wrap:"wrap",children:[t.jsx(g,{size:"sm",fw:600,children:o("adLauncher.launchAd.eligibleAds")}),t.jsx(rt,{size:"sm",label:o("adLauncher.openaiAdLauncher.adsSelection.squareOnly"),checked:c,onChange:z=>d(z.currentTarget.checked)})]})]}),t.jsxs(Nt,{style:{flex:1,minHeight:0},onScrollPositionChange:B,viewportRef:e,scrollbars:"y",children:[t.jsxs(A,{px:8,pt:4,children:[G.map(z=>{const V=f(z);return V?t.jsx("img",{src:V,alt:"","aria-hidden":!0,style:{position:"absolute",width:1,height:1,opacity:0,pointerEvents:"none"},onLoad:N=>{const L=N.currentTarget;E(String(z.id),L.naturalWidth,L.naturalHeight)}},`measure-${z.id}`):null}),_||O?t.jsx(Sn,{isLoading:_,filtered:O&&P.length>0}):t.jsx(In,{breakpointCols:$,className:"my-masonry-grid",columnClassName:"my-masonry-grid_column",children:D.map(({ad:z,isSquare:V}
98)=>{const N=a.some(L=>L.id===z.id);return t.jsxs(Ae,{shadow:"sm",padding:"0",withBorder:!0,"data-selected":N||void 0,"aria-pressed":N,style:{cursor:"pointer",borderColor:N?"#322996":"#e9ecef",borderWidth:N?4:1,padding:N?4:0,boxShadow:N?"0 0 0 2px rgba(50, 41, 150, 0.28)":void 0,transition:"all 0.3s ease",position:"relative"},onClick:()=>k(z),children:[N&&t.jsx(vn,{size:22,radius:"xl",color:"violet",style:{position:"absolute",top:8,right:8,zIndex:2},children:t.jsx(mn,{size:13,stroke:3})}),!V&&t.jsx(Qe,{size:"xs",color:"orange",style:{position:"absolute",top:8,left:8,zIndex:1},children:o("adLauncher.openaiAdLauncher.adsSelection.nonSquareBadge")}),t.jsx(ot,{src:f(z),fit:"contain",loading:"lazy",alt:z.name,style:{maxHeight:"auto",flex:"unset"},onLoad:L=>{const x=L.currentTarget;x instanceof HTMLImageElement&&E(String(z.id),x.naturalWidth,x.naturalHeight)}})]},z.id)})})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:o("adLauncher.common.back"),nextLabel:o("adLauncher.common.next"),onBack:()=>r($e(0)),onNext:()=>{Oe(Jl,{brandId:s}),r($e(Yf(a,i)))},nextDisabled:(a==null?void 0:a.length)===0})]})}const Va={id:"US",type:"country",name:"United States",countryCode:"US",label:"United States"};function nL(e){const n=(e.type||"").toLowerCase(),a=(e.countryCode||"").toUpperCase();return n==="country"&&/^[A-Z]{2}$/.test(a)?!0:/^[A-Z]{2}$/.test(e.id)&&(!n||n==="country")}function aL(e){return(e.countryCode||e.id).toUpperCase()}function iL(e){const n={id:String(e.id)};return e.type&&(n.type=e.type),e.countryCode&&(n.country_code=e.countryCode.toUpperCase()),e.name&&(n.name=e.name),n}function tl(e){const n=[],a=[];for(const s of e)if(nL(s)){const r=aL(s);n.includes(r)||n.push(r)}else s.id&&a.push(iL(s));const i={};return n.length&&(i.countries=n),a.length&&(i.include=a),Object.keys(i).length?i:void 0}function dp(e){const n=[...new Set((e||[]).map(a=>a.trim().toUpperCase()).filter(Boolean))];return n.length===0?[{...Va}]:n.map(a=>a==="US"?{...Va}:{id:a,type:"country",name:a,countryCode:a,label:a})}function sL(e){const n={},a=tl(e.includedLocations),i=tl(e.excludedLocations);a&&(n.locations=a),i&&(n.excluded_locations=i);const s=e.includedAudiences.map(c=>c.id).filter(Boolean),r=e.excludedAudiences.map(c=>c.id).filter(Boolean);s.length&&(n.custom_audiences={ids:s}),r.length&&(n.excluded_custom_audiences={ids:r});const o=e.platforms.filter(c=>Lc.includes(c));return o.length>0&&o.length<Lc.length&&(n.platforms={included:o}),Object.keys(n).length?n:void 0}function cp(e){const n=e.billingEventType||ta(e.biddingType),a=e.biddingType==="impressions",i=!a&&sa(e.bidStrategy),s={name:e.campaignName.trim(),bidding_type:e.biddingType,daily_budget:Number(e.campaignDailyBudget),configured_status:e.campaignActive?"ACTIVE":"PAUSED"},r=ki(e.startDate,e.startTime);if(r!=null&&(s.start_time=r),e.setEndDate){const l=ki(e.endDate,e.endTime||e.startTime||"23:59");l!=null&&(r==null||l>r)&&(s.end_time=l)}const o=sL(e);o&&(s.targeting=o);const c=vc(e.trackingTemplate||ja);c&&(s.landing_page_configuration=c),e.conversionEventSettingIds.length&&(s.conversion_event_setting_ids=e.conversionEventSettingIds);const d={name:e.adSetName.trim(),configured_status:e.adSetActive?"ACTIVE":"PAUSED",billing_event_type:n};a?(d.bid_strategy="fixed_bid",d.max_bid_dollars=Number(e.maxBidDollars)):i?d.bid_strategy=e.biddingType==="conversions"?"maximize_conversions":"maximize_clicks":(d.bid_strategy="fixed_bid",d.max_bid_dollars=Number(e.maxBidDollars));const m=vc(e.adGroupTrackingTemplate||e.trackingTemplate||ja);m&&(d.landing_page_configuration=m);const h=Hy(e.contextHints);h.length&&(d.context_hints=h);const p=e.defaultDestinationUrl.trim();return p&&(d.default_destination_url=p),{campaign_spec:s,ad_group_spec:d}}function lp(){const e="clicks";return{campaignName:"",biddingType:e,campaignDailyBudget:ea,campaignActive:!1,countries:["US"],includedLocations:dp(["US"]),excludedLocations:[],includedAudiences:[],excludedAudiences:[],platforms:[],trackingTemplate:ja,adSetName:"",billingEventType:"click",bidStrategy:"maximize_clicks",maxBidDollars:ti(ea,e),maxBidUserEdited:!1,adSetActive:!1,adGroupTrackingTemplate:ja,defaultDestinationUrl:"",contextHints:"",startDate:ni(),startTime:Di(),setEndDate:!1,endDate:"",endTime:"",conversionEventSettingIds:[]}}function rL(e){var a;const n=lp();return{campaignName:e.campaignName,biddingType:e.biddingType,campaignDailyBudget:e.campaignDailyBudget,campaignActive:e.campaignActive,countries:[...e.countries],includedLocations:(a=e.includedLocations)!=null&&a.length?[...e.includedLocations]:dp(e.countries),excludedLocations:[...e.excludedLocations??[]],includedAudiences:[...e.includedAudiences??[]],excludedAudiences:[...e.excludedAudiences??[]],platforms:[...e.platforms??[]],trackingTemplate:e.trackingTemplate||n.trackingTemplate,adSetName:e.adSetName,billingEventType:e.billingEventType,bidStrategy:Bn(e.biddingType,e),maxBidDollars:e.maxBidDollars,maxBidUserEdited:e.maxBidUserEdited??!1,adSetActive:e.adSetActive,adGroupTrackingTemplate:e.adGroupTrackingTemplate||e.trackingTemplate||n.adGroupTrackingTemplate,defaultDestinationUrl:e.defaultDestinationUrl||"",contextHints:e.contextHints||"",startDate:e.startDate||ni(),startTime:e.startTime||Di(),setEndDate:e.setEndDate??!1,endDate:e.endDate||"",endTime:e.endTime||"",conversionEventSettingIds:[...e.conversionEventSettingIds??[]]}}function nl(e){return{campaignName:e.campaignName,biddingType:e.biddingType,campaignDailyBudget:e.campaignDailyBudget,campaignActive:e.campaignActive,countries:e.includedLocations.map(n=>(n.countryCode||n.id).toUpperCase()).filter(n=>/^[A-Z]{2}$/.test(n)),includedLocations:[...e.includedLocations],excludedLocations:[...e.excludedLocations],includedAudiences:[...e.includedAudiences],excludedAudiences:[...e.excludedAudiences],platforms:[...e.platforms],trackingTemplate:e.trackingTemplate,adSetName:e.adSetName,billingEventType:e.billingEventType,bidStrategy:e.bidStrategy,maxBidDollars:e.maxBidDollars,maxBidUserEdited:e.maxBidUserEdited,adSetActive:e.adSetActive,adGroupTrackingTemplate:e.adGroupTrackingTemplate,defaultDestinationUrl:e.defaultDestinationUrl,contextHints:e.contextHints,startDate:e.startDate,
98startTime:e.startTime,setEndDate:e.setEndDate,endDate:e.endDate,endTime:e.endTime,conversionEventSettingIds:[...e.conversionEventSettingIds]}}function oL(){return{url:"",checked:!1}}const cs=96;function xd({imageUrl:e,brandName:n,title:a,body:i}){const{t:s}=de(),r=n||s("adLauncher.openaiAdLauncher.preview.brandFallback"),o=a.trim(),c=i.trim();return t.jsxs(U,{wrap:"nowrap",align:"flex-start",gap:12,p:12,w:"100%",maw:440,style:{border:"1px solid #e9ecef",borderRadius:12,overflow:"hidden",background:"#fff"},children:[t.jsx(A,{style:{width:cs,height:cs,flexShrink:0,borderRadius:8,overflow:"hidden",background:"#f1f3f5"},children:e?t.jsx(ot,{src:e,alt:o||r,fit:"cover",h:cs,w:cs}):null}),t.jsxs(A,{style:{flex:1,minWidth:0},children:[t.jsxs(U,{align:"center",gap:8,wrap:"nowrap",mb:6,children:[t.jsx(g,{size:"sm",fw:600,style:{flex:1,minWidth:0},lineClamp:1,children:r}),t.jsx(Qe,{size:"xs",variant:"light",color:"gray",tt:"none",style:{flexShrink:0},children:s("adLauncher.openaiAdLauncher.preview.adBadge")}),t.jsx(Qp,{size:16,color:"#868e96","aria-hidden":!0,style:{flexShrink:0}})]}),t.jsx(g,{size:"sm",fw:700,style:{lineHeight:1.35,wordBreak:"break-word"},children:o||s("adLauncher.openaiAdLauncher.preview.titlePlaceholder")}),t.jsx(g,{size:"xs",c:"dimmed",mt:4,style:{lineHeight:1.4,wordBreak:"break-word"},children:c||s("adLauncher.openaiAdLauncher.preview.bodyPlaceholder")})]})]})}function fo({value:e,preferredMax:n,hardMax:a}){const i=(e==null?void 0:e.length)??0,s=i>n;return t.jsxs(g,{size:"xs",c:s?"orange":"dimmed",ta:"right",mt:4,children:[i,"/",a]})}function al(e,n){return n||(e?e.includes("public/")?`${dt}${e}`:`${dt}public/${e}`:"")}function dL(){const e=xe(),{brandId:n}=ve(),{t:a}=de(),{selectedLauncherAds:i,openaiAdSpecsByAd:s,openaiAdSpecsShared:r,openaiResizedMediaByAd:o,openaiAdLauncherFlow:c,openaiCampaignDetailsForm:d}=re(T=>T.adGallery),{brandOverviewData:m}=re(T=>T.library),{data:h}=Ot(n),p=S.useMemo(()=>(i==null?void 0:i.filter(T=>!Te(T==null?void 0:T.previewStorageKey)))??[],[i]),[l,b]=S.useState(p[0]?String(p[0].id):null),[u,y]=S.useState(!1),[I,C]=S.useState((r==null?void 0:r.url)??""),[E,P]=S.useState((r==null?void 0:r.checked)??!1),[D,G]=S.useState(null),_=S.useRef(!1);S.useEffect(()=>{!l&&p[0]&&b(String(p[0].id))},[p,l]);const O=p.find(T=>String(T.id)===l)??p[0],f=O?String(O.id):"",k=s[f]??{title:"",body:""},R=(T,H)=>{e(Hr({url:T,checked:H}))};S.useEffect(()=>{r&&(C(r.url),P(r.checked))},[r]),S.useEffect(()=>{if(_.current||!n||!(h!=null&&h.name)||p.length===0)return;let T=!1;return(async()=>{var M,ee;_.current=!0,y(!0);const F={...s};for(const ne of p){const X=String(ne.id);F[X]?Ds(F[X])&&(F[X]=uo(F[X],Pi(ne))):F[X]=Pi(ne)}e(xs(F));let w=(r==null?void 0:r.url)||(d==null?void 0:d.defaultDestinationUrl)||"";if(!w)try{const ne=await e(ii({brandId:n}));w=(ne&&typeof ne=="object"&&"payload"in ne?(M=ne.payload)==null?void 0:M.url:void 0)||(m==null?void 0:m.url)||""}catch{w=(m==null?void 0:m.url)||""}if(!T){const ne=r??oL(),X={...ne,url:ne.url||w};C(X.url),P(X.checked),e(Hr(X))}const K=await hb({ads:p,brandId:n,brandName:h.name,language:((ee=h.language)==null?void 0:ee.langCode)||"us-en",concurrency:3,cache:F});T||(e(xs(K)),y(!1))})(),()=>{T=!0}},[n,p.length,h==null?void 0:h.name]);const B=T=>{if(!f)return;const H={title:T.title!==void 0?T.title:k.title,body:T.body!==void 0?T.body:k.body};e(Gd({adId:f,copy:H}))},$=()=>{if(!f)return;const T=s[f];if(!T)return;const H={};for(const F of p)H[String(F.id)]={title:T.title,body:T.body};e(xs(H)),he.show({message:a("adLauncher.openaiAdLauncher.adSpecsStep.applyToAllDone"),color:"green"})},J=async()=>{var H;if(!O||!n||!(h!=null&&h.name))return;y(!0);const T=await Kh({adUrl:un(O),brandId:n,brandName:h.name,language:((H=h.language)==null?void 0:H.langCode)||"us-en"});if(T){const F=uo({title:"",body:""},T);e(Gd({adId:String(O.id),copy:{title:ia(F.title),body:ui(F.body)}}))}y(!1)},z=T=>T?Wa.test(T)?T.trim().toLowerCase().startsWith("https://")?null:a("adLauncher.openaiAdLauncher.validation.destinationUrlHttps"):a("adLauncher.launchAd.validations.urlInvalid"):a("adLauncher.launchAd.validations.url"),V=()=>{var H,F;const T=z(I);if(G(T),!T){for(const w of p){const K=s[String(w.id)]??{title:"",body:""},M=((H=K.title)==null?void 0:H.trim())??"",ee=((F=K.body)==null?void 0:F.trim())??"";if(!M||M.length<ky||M.length>Qn){he.show({title:a("adLauncher.openaiAdLauncher.validation.titleRequired"),message:a("adLauncher.openaiAdLauncher.adSpecsStep.fixIncomplete"),color:"red"}),b(String(w.id));return}if(!ee||ee.length<Py||ee.length>Fn){he.show({title:a("adLauncher.openaiAdLauncher.validation.bodyRequired"),message:a("adLauncher.openaiAdLauncher.adSpecsStep.formIncomplete"),color:"red"}),b(String(w.id));return}}R(I,E),e($e(je.REVIEW))}},{formStyle:N,scrollStyle:L,shellStyle:x}=ze({pinFooter:!0}),v=O?al(O.previewStorageKey,o[String(O.id)]):"";return t.jsx(A,{style:x,children:t.jsxs(A,{style:N,children:[t.jsxs(A,{style:L,children:[t.jsx(Ct,{width:1160,children:t.jsxs(U,{gap:"lg",align:"flex-start",direction:{base:"column",sm:"row"},children:[t.jsxs(A,{style:{width:96,flexShrink:0},children:[t.jsx(g,{size:"xs",c:"dimmed",mb:"xs",children:a("adLauncher.openaiAdLauncher.adSpecsStep.selectedAds")}),t.jsx(Nt.Autosize,{mah:420,children:t.jsx(U,{direction:"column",gap:"xs",children:p.map(T=>{const H=String(T.id),F=H===f;return t.jsxs(A,{onClick:()=>b(H),"data-selected":F||void 0,"aria-pressed":F,style:{cursor:"pointer",borderRadius:8,border:F?"3px solid #322996":"1px solid #e9ecef",boxShadow:F?"0 0 0 3px rgba(50, 41, 150, 0.28)":void 0,overflow:"hidden",
98width:72,height:72,position:"relative"},children:[t.jsx(ot,{src:al(T.previewStorageKey,o[H]),fit:"cover",w:72,h:72,alt:""}),F&&t.jsx(vn,{size:20,radius:"xl",color:"violet",style:{position:"absolute",top:4,right:4,zIndex:1},children:t.jsx(mn,{size:12,stroke:3})})]},H)})})})]}),t.jsxs(A,{style:{flex:1,minWidth:0,maxWidth:520},children:[u&&t.jsx(g,{size:"sm",c:"dimmed",mb:"sm",children:a("adLauncher.adsetSettings.generatingCopy")}),t.jsxs(U,{gap:"sm",mb:"sm",children:[t.jsx(Me,{size:"xs",variant:"light",onClick:$,disabled:!f||u,children:a("adLauncher.openaiAdLauncher.adSpecsStep.applyToAll")}),t.jsx(Me,{size:"xs",variant:"default",onClick:()=>void J(),loading:u,disabled:!f,children:a("adLauncher.openaiAdLauncher.adSpecsStep.regenerate")})]}),t.jsx(pe,{withAsterisk:!0,label:a("adLauncher.openaiAdLauncher.adSpecsStep.headlineLabel"),placeholder:a("adLauncher.openaiAdLauncher.adSpecsStep.titlePlaceholder"),description:a("adLauncher.openaiAdLauncher.adSpecsStep.titlePreferredHint"),maxLength:Qn,disabled:u||!f,value:k.title,onChange:T=>B({title:T.currentTarget.value}),mt:"xs"}),t.jsx(fo,{value:k.title,preferredMax:Dy,hardMax:Qn}),t.jsx(qa,{withAsterisk:!0,mt:"md",label:a("adLauncher.openaiAdLauncher.adSpecsStep.descriptionLabel"),placeholder:a("adLauncher.openaiAdLauncher.adSpecsStep.bodyPlaceholder"),description:a("adLauncher.openaiAdLauncher.adSpecsStep.bodyPreferredHint"),maxLength:Fn,disabled:u||!f,autosize:!0,minRows:2,value:k.body,onChange:T=>B({body:T.currentTarget.value})}),t.jsx(fo,{value:k.body,preferredMax:oo,hardMax:Fn}),t.jsxs(A,{mt:"md",children:[t.jsx(g,{size:"md",children:a("adLauncher.adsetSettings.destination")}),t.jsx(g,{size:"xs",mt:"5px",children:a("adLauncher.adsetSettings.redirectPeopleText")}),t.jsx(pe,{label:a("adLauncher.adsetSettings.urlPlaceholder"),placeholder:a("adLauncher.adsetSettings.urlPlaceholder"),value:I,onChange:T=>{const H=T.currentTarget.value;C(H),G(z(H)),R(H,E)},error:D,mt:"md"})]}),t.jsx(g,{size:"md",mt:"sm",children:a("adLauncher.openaiAdLauncher.adSpecsStep.adStatusOnLaunch")}),t.jsx(rt,{label:a("adLauncher.openaiAdLauncher.adSpecsStep.activeLabel"),checked:E,onChange:T=>{const H=T.currentTarget.checked;P(H),R(I,H)}})]}),t.jsxs(A,{style:{flex:"1 1 280px",minWidth:280,maxWidth:480},children:[t.jsx(g,{size:"xs",c:"dimmed",mb:"xs",children:a("adLauncher.openaiAdLauncher.adSpecsStep.preview")}),t.jsx(xd,{imageUrl:v,brandName:(h==null?void 0:h.name)||"",title:k.title,body:k.body})]})]})}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:a("adLauncher.common.back"),nextLabel:a("adLauncher.common.next"),onBack:()=>e($e(c===ht.EXISTING_CAMPAIGN_AND_AD_GROUP?je.CAMPAIGN:je.CAMPAIGN_DETAILS)),onNext:V})]})})}function Xn({label:e,description:n,placeholder:a,items:i,getKey:s,getLabel:r,onRemove:o,suggestions:c,loading:d,onSearch:m,onSelect:h,nothingFound:p}){const[l,b]=S.useState(""),[u,y]=S.useState(!1),I=S.useRef(),C=new Set(i.map(s)),E=c.filter(P=>!C.has(s(P)));return t.jsxs(A,{mt:"md",children:[t.jsx(pe,{label:e,description:n,placeholder:a,value:l,leftSection:d?t.jsx(et,{size:14}):void 0,onFocus:()=>y(!0),onBlur:()=>{window.setTimeout(()=>y(!1),150)},onChange:P=>{const D=P.currentTarget.value;b(D),y(!0),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>m(D.trim()),300)}}),u&&l.trim().length>0&&t.jsx(A,{mt:4,p:4,style:{border:"1px solid var(--mantine-color-gray-3)",borderRadius:8,background:"var(--mantine-color-white)",maxHeight:220,overflow:"auto"},children:E.length===0&&!d?t.jsx(g,{size:"sm",c:"dimmed",px:"xs",py:6,children:p}):E.map(P=>t.jsx(A,{px:"xs",py:6,style:{cursor:"pointer",borderRadius:6},onMouseDown:D=>{D.preventDefault(),h(P),b(""),y(!1)},children:t.jsx(g,{size:"sm",children:r(P)})},s(P)))}),i.length>0&&t.jsx(xt,{gap:6,mt:"xs",children:i.map(P=>t.jsx(ko,{withRemoveButton:!1,children:t.jsxs(xt,{gap:4,wrap:"nowrap",children:[t.jsx(g,{size:"sm",children:r(P)}),t.jsx(Gi,{size:"xs",onClick:()=>o(s(P)),"aria-label":r(P)})]})},s(P)))})]})}function up(e){const n=String(e.id||"");if(!n)return null;const a=String(e.countryCode||e.country_code||""),i=String(e.name||e.canonicalName||e.canonical_name||n),s=String(e.label||i),r=e.type?String(e.type):void 0;return{id:n,type:r,name:i,countryCode:a||void 0,label:s}}function hp(e){const n=String(e.id||"");return n?{id:n,name:String(e.name||e.label||n)}:null}function Ps(e){var i;const n=e,a=((i=n==null?void 0:n.body)==null?void 0:i.results)||(n==null?void 0:n.results)||[];return(Array.isArray(a)?a:[]).filter(s=>!!s&&typeof s=="object")}function xo(e,n){return e.some(a=>n.some(i=>i.id===a.id))}function il(e){const n=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0");return`${n}-${a}
98-${i}`}function cL(){const e=xe(),{t:n}=de(),{brandId:a}=ve(),{data:i}=Ot(a),s=Ca(),{selectedCampaignObjectives:r,openaiAdLauncherFlow:o,openaiCampaignDetailsForm:c,openaiAdSpecsShared:d,selectedCampaign:m,selectedAdLauncherCampaignId:h}=re(j=>j.adGallery),[p,l]=S.useState([]),[b,u]=S.useState(!1),[y,I]=S.useState(!1),[C,E]=S.useState(null),[P,D]=S.useState(""),[G,_]=S.useState(!1),[O,f]=S.useState([]),[k,R]=S.useState([]),[B,$]=S.useState([]),[J,z]=S.useState([]),V=S.useMemo(()=>[{value:"clicks",label:n("adLauncher.openaiAdLauncher.options.objectiveClicks")},{value:"impressions",label:n("adLauncher.openaiAdLauncher.options.objectiveReach")},{value:"conversions",label:n("adLauncher.openaiAdLauncher.options.biddingConversions")}],[n]),N=S.useMemo(()=>[{value:"web",label:n("adLauncher.openaiAdLauncher.options.platformWeb")},{value:"ios_app",label:n("adLauncher.openaiAdLauncher.options.platformIos")},{value:"android_app",label:n("adLauncher.openaiAdLauncher.options.platformAndroid")}],[n]),L=o===ht.EXISTING_CAMPAIGN_NEW_AD_GROUP,x=wt({initialValues:c?rL(c):lp(),onValuesChange:j=>{e($r(nl(j)))},validate:{campaignName:j=>L?null:!(j!=null&&j.trim())||j.trim().length<Nh?n("adLauncher.openaiAdLauncher.validation.campaignNameMin"):j.length>tn?n("adLauncher.openaiAdLauncher.validation.nameMaxLength"):null,campaignDailyBudget:j=>L?null:j==null?n("adLauncher.openaiAdLauncher.validation.dailyBudget"):Number(j)<$a?n("adLauncher.openaiAdLauncher.validation.dailyBudgetMin",{min:$a}):null,includedLocations:(j,q)=>L?null:j!=null&&j.length?j.some(le=>q.excludedLocations.some(_e=>_e.id===le.id))?n("adLauncher.openaiAdLauncher.validation.locationOverlap"):null:n("adLauncher.openaiAdLauncher.validation.locationRequired"),includedAudiences:(j,q)=>xo(j,q.excludedAudiences)?n("adLauncher.openaiAdLauncher.validation.audienceOverlap"):null,trackingTemplate:j=>_i(j)?n("adLauncher.openaiAdLauncher.validation.opprefReserved"):null,adGroupTrackingTemplate:j=>_i(j)?n("adLauncher.openaiAdLauncher.validation.opprefReserved"):null,defaultDestinationUrl:j=>_i(j)?n("adLauncher.openaiAdLauncher.validation.opprefReserved"):null,adSetName:j=>j!=null&&j.trim()?j.length>tn?n("adLauncher.openaiAdLauncher.validation.nameMaxLength"):null:n("adLauncher.campaignDetails.adSet.nameError"),maxBidDollars:(j,q)=>{const se=q.biddingType==="impressions",le=sa(q.bidStrategy);return!se&&le?null:j==null?se?n("adLauncher.openaiAdLauncher.validation.cpmRange",{min:ma.toFixed(2),max:fa.toFixed(2)}):n("adLauncher.openaiAdLauncher.validation.maxBid"):se?Number(j)<ma||Number(j)>fa?n("adLauncher.openaiAdLauncher.validation.cpmRange",{min:ma.toFixed(2),max:fa.toFixed(2)}):null:Number(j)<ga?n("adLauncher.openaiAdLauncher.validation.maxBidMin",{min:ga}):null},startDate:j=>L||j!=null&&j.trim()?null:n("adLauncher.openaiAdLauncher.validation.startDateRequired"),endDate:(j,q)=>L||!q.setEndDate?null:j!=null&&j.trim()?$y({startDate:q.startDate,startTime:q.startTime,endDate:j,endTime:q.endTime})?null:n("adLauncher.openaiAdLauncher.validation.endAfterStart"):n("adLauncher.openaiAdLauncher.validation.endDateRequired"),conversionEventSettingIds:(j,q)=>q.biddingType!=="conversions"||j!=null&&j.length?null:n("adLauncher.openaiAdLauncher.validation.pixelRequired")}}),v=x.values.biddingType==="conversions",T=x.values.biddingType==="impressions",H=!T&&sa(x.values.bidStrategy),F=Number(x.values.campaignDailyBudget)||ea;S.useEffect(()=>{c||m&&L&&x.setFieldValue("campaignName",(m==null?void 0:m.label)??"")},[m,L,c]),S.useEffect(()=>{if(c||L||!r)return;const j=Sc(r);x.setFieldValue("biddingType",j),x.setFieldValue("billingEventType",ta(j)),x.setFieldValue("bidStrategy",Bn(j,{biddingType:x.values.biddingType,bidStrategy:x.values.bidStrategy})),x.values.maxBidUserEdited||x.setFieldValue("maxBidDollars",ti(x.values.campaignDailyBudget||ea,j))},[r,L,c]),S.useEffect(()=>{if(c)return;const j=(i==null?void 0:i.name)||"";if(!j)return;const q=Ns(x.values.biddingType||Sc(r||"Traffic"));!L&&!x.values.campaignName.trim()&&x.setFieldValue("campaignName",Oh(j,q)),x.values.adSetName.trim()||x.setFieldValue("adSetName",Rh(j,q))},[i==null?void 0:i.name,c]),S.useEffect(()=>{e($r(nl(x.getValues())))},[]),S.useEffect(()=>{if(!a)return;let j=!1;return(async()=>{var se,le;u(!0);try{const _e=await Sa.get(`api/brands/${a}
98/openai-ads/pixels`),te=((se=_e.data)==null?void 0:se.pixels)||((le=_e.data)==null?void 0:le.items)||[];if(j)return;const me=(Array.isArray(te)?te:[]).map(Le=>{const ye=String(Le.eventSettingId||Le.event_setting_id||Le.conversion_event_setting_id||"");return{value:ye,label:Le.name||ye||"Pixel"}}).filter(Le=>Le.value);l(me)}catch{j||l([])}finally{j||u(!1)}})(),()=>{j=!0}},[a]);const w=(j,q)=>{x.values.maxBidUserEdited||x.setFieldValue("maxBidDollars",ti(j,q))},K=(j,q)=>{if(!a||j.length<1){q==="include"?f([]):R([]);return}s.mutate({brand_id:parseInt(a,10),channel:"openai",query:j,limit:8,types:["locations"]},{onSuccess:se=>{const le=Ps(se).map(up).filter(_e=>!!_e);q==="include"?f(le):R(le)}})},M=(j,q)=>{if(!a||j.length<1){q==="include"?$([]):z([]);return}s.mutate({brand_id:parseInt(a,10),channel:"openai",query:j,limit:8,types:["custom_audiences"]},{onSuccess:se=>{const le=Ps(se).map(hp).filter(_e=>!!_e);q==="include"?$(le):z(le)}})},{formStyle:ee,scrollStyle:ne,shellStyle:X}=ze({pinFooter:!0}),ie=async()=>{if(!(!a||!P.trim())){_(!0);try{const q=(await Sa.post(`api/brands/${a}/openai-ads/pixels`,{name:P.trim()})).data,se=String(q.eventSettingId||q.event_setting_id||q.conversion_event_setting_id||"");if(se){const _e={value:se,label:q.name||P.trim()};l(te=>[...te,_e]),x.setFieldValue("conversionEventSettingIds",[se])}const le=q.installSnippet||q.install_snippet||null;E(le),I(!1),D(""),he.show({message:n("adLauncher.openaiAdLauncher.pixels.createSuccess"),color:"green"})}catch{he.show({title:n("adLauncher.openaiAdLauncher.pixels.createFailedTitle"),message:n("adLauncher.openaiAdLauncher.pixels.createFailedMessage"),color:"red"})}finally{_(!1)}}},Q=j=>{const{campaign_spec:q,ad_group_spec:se}=cp(j);e(L?Si({campaign_spec:{id:h},ad_group_spec:se}):Si({campaign_spec:q,ad_group_spec:se}));const le=j.defaultDestinationUrl.trim();le&&!(d!=null&&d.url)&&e(Hr({url:le,checked:(d==null?void 0:d.checked)??!1})),e($e(je.AD_SET))};return t.jsxs(A,{style:X,children:[t.jsxs("form",{style:ee,onSubmit:x.onSubmit(j=>{Q(j)}),children:[t.jsxs(A,{style:ne,children:[t.jsxs(Ct,{width:600,children:[!L&&t.jsxs(A,{mb:"lg",children:[t.jsx(pe,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.campaignName"),withAsterisk:!0,placeholder:n("adLauncher.campaignDetails.campaignName.placeholder"),maxLength:tn,...x.getInputProps("campaignName")}),t.jsx(Re,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.campaignType"),description:n("adLauncher.openaiAdLauncher.fields.campaignTypeHint"),data:[{value:"standard",label:n("adLauncher.openaiAdLauncher.options.campaignTypeStandard")}],value:"standard",disabled:!0}),t.jsx(Re,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.objective"),description:n("adLauncher.openaiAdLauncher.fields.objectiveHint"),data:V,comboboxProps:{withinPortal:!0},...x.getInputProps("biddingType"),onChange:j=>{const q=j||"clicks";x.setFieldValue("biddingType",q),x.setFieldValue("billingEventType",ta(q)),x.setFieldValue("bidStrategy",Bn(q,{biddingType:x.values.biddingType,bidStrategy:x.values.bidStrategy})),w(x.values.campaignDailyBudget,q)}}),t.jsxs(A,{mt:"md",children:[t.jsx(Re,{label:n(v?"adLauncher.openaiAdLauncher.pixels.label":"adLauncher.openaiAdLauncher.pixels.optionalLabel"),description:n(v?"adLauncher.openaiAdLauncher.pixels.description":"adLauncher.openaiAdLauncher.pixels.optionalDescription"),withAsterisk:v,placeholder:n(b?"adLauncher.openaiAdLauncher.pixels.loading":"adLauncher.openaiAdLauncher.pixels.placeholder"),data:p,searchable:!0,clearable:!0,comboboxProps:{withinPortal:!0},value:x.values.conversionEventSettingIds[0]||null,onChange:j=>{x.setFieldValue("conversionEventSettingIds",j?[j]:[])},error:x.errors.conversionEventSettingIds,nothingFoundMessage:n("adLauncher.openaiAdLauncher.pixels.empty")}),t.jsx(Me,{mt:"xs",size:"xs",variant:"light",onClick:()=>I(!0),children:n("adLauncher.openaiAdLauncher.pixels.setupConversions")})]}),t.jsx(Xn,{label:n("adLauncher.openaiAdLauncher.fields.locationsInclude"),description:n("adLauncher.openaiAdLauncher.fields.locationsIncludeHint"),placeholder:n("adLauncher.openaiAdLauncher.fields.locationsIncludePlaceholder"),items:x.values.includedLocations,getKey:j=>j.id,getLabel:j=>j.label||j.name,onRemove:j=>x.setFieldValue("includedLocations",x.values.includedLocations.filter(q=>q.id!==j)),suggestions:O,loading:s.isPending,onSearch:j=>K(j,"include"),onSelect:j=>{x.values.includedLocations.some(q=>q.id===j.id)||x.setFieldValue("includedLocations",[...x.values.includedLocations,j])},nothingFound:n("adLauncher.openaiAdLauncher.fields.locationEmpty")}),x.errors.includedLocations&&t.jsx(g,{size:"xs",c:"red",mt:4,children:String(x.errors.includedLocations)}),t.jsx(Xn,{label:n("adLauncher.openaiAdLauncher.fields.locationsExclude"),description:n("adLauncher.openaiAdLauncher.fields.locationsExcludeHint"),placeholder:n("adLauncher.openaiAdLauncher.fields.locationsExcludePlaceholder"),items:x.values.excludedLocations,getKey:j=>j.id,getLabel:j=>j.label||j.name,onRemove:j=>x.setFieldValue("excludedLocations",x.values.excludedLocations.filter(q=>q.id!==j)),suggestions:k,loading:s.isPending,onSearch:j=>K(j,"exclude"),onSelect:j=>{x.values.excludedLocations.some(q=>q.id===j.id)||x.setFieldValue("excludedLocations",[...x.values.excludedLocations,j])},nothingFound:n("adLauncher.openaiAdLauncher.fields.locationEmpty")}),t.jsx(Yt,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.platforms"),description:n("adLauncher.openaiAdLauncher.fields.platformsHint"),placeholder:n("adLauncher.openaiAdLauncher.options.platformsAll"),data:N,comboboxProps:{withinPortal:!0},...x.getInputProps("platforms")}),t.jsx(pe,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.tracking"),description:n("adLauncher.openaiAdLauncher.fields.trackingHint"),...x.getInputProps("trackingTemplate")}),t.jsx(g,{fw:600,size:"sm",mt:"md",children:n("adLauncher.openaiAdLauncher.fields.customAudiences")}),t.jsx(Xn,{label:n("adLauncher.openaiAdLauncher.fields.audienceInclude"),description:n("adLauncher.openaiAdLauncher.fields.audienceIncludeHint"),placeholder:n("adLauncher.openaiAdLauncher.fields.audienceSearchPlaceholder"),items:x.values.includedAudiences,getKey:j=>j.id,getLabel:j=>j.name,onRemove:j=>x.setFieldValue("includedAudiences",x.values.includedAudiences.filter(q=>q.id!==j)),suggestions:B,loading:s.isPending,onSearch:j=>M(j,"include"),onSelect:j=>{x.values.includedAudiences.some(q=>q.id===j.id)||x.setFieldValue("includedAudiences",[...x.values.includedAudiences,j])},nothingFound:n("adLauncher.openaiAdLauncher.fields.audienceEmpty")}),x.errors.includedAudiences&&t.jsx(g,{size:"xs",c:"red",mt:4,children:String(x.errors.includedAudiences)}),t.jsx(Xn,{label:n("adLauncher.openaiAdLauncher.fields.audienceExclude"),description:n("adLauncher.openaiAdLauncher.fields.audienceExcludeHint"),placeholder:n("adLauncher.openaiAdLauncher.fields.audienceSearchPlaceholder"),items:x.values.excludedAudiences,getKey:j=>j.id,getLabel:j=>j.name,onRemove:j=>x.setFieldValue("excludedAudiences",x.values.excludedAudiences.filter(q=>q.id!==j)),suggestions:J,loading:s.isPending,onSearch:j=>M(j,"exclude"),onSelect:j=>{x.values.excludedAudiences.some(q=>q.id===j.id)||x.setFieldValue("excludedAudiences",[...x.values.excludedAudiences,j])},nothingFound:n("adLauncher.openaiAdLauncher.fields.audienceEmpty")}),t.jsxs(xt,{grow:!0,mt:"md",align:"flex-end",children:[t.jsx(Re,{label:n("adLauncher.openaiAdLauncher.fields.budgetType"),data:[{value:"daily",label:n("adLauncher.openaiAdLauncher.options.dailyBudget")}],value:"daily",disabled:!0}),t.jsx(at,{withAsterisk:!0,label:n("adLauncher.openaiAdLauncher.fields.dailyBudget"),min:$a,decimalScale:2,suffix:" USD",...x.getInputProps("campaignDailyBudget"),onChange:j=>{const q=Number(j)||ea;x.setFieldValue("campaignDailyBudget",q),w(q,x.values.biddingType)}})]}),t.jsx(g,{size:"xs",c:"dimmed",mt:4,children:n("adLauncher.openaiAdLauncher.fields.dailyBudgetFig4",{avg:F.toFixed(2),maxDay:(F*2).toFixed(2),maxWeek:(F*7).toFixed(2)})}),t.jsxs(xt,{grow:!0,mt:"md",align:"flex-end",children:[t.jsx(an,{label:n("adLauncher.openaiAdLauncher.fields.startDate"),value:x.values.startDate?new Date(`${x.values.startDate}T00:00:00`):null,onChange:j=>{if(!j){x.setFieldValue("startDate","");return}const q=j instanceof Date?j:new Date(j);x.setFieldValue("startDate",il(q))},error:x.errors.startDate,withAsterisk:!0}),t.jsx(pe,{label:n("adLauncher.openaiAdLauncher.fields.startTime"),description:n("adLauncher.openaiAdLauncher.fields.startTimeTz",{tz:_s()}),type:"time",...x.getInputProps("startTime")})]}),t.jsx(_a,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.setEndDate"),checked:x.values.setEndDate,onChange:j=>x.setFieldValue("setEndDate",j.currentTarget.checked)}),x.values.setEndDate&&t.jsxs(xt,{grow:!0,mt:"sm",align:"flex-end",children:[t.jsx(an,{label:n("adLauncher.openaiAdLauncher.fields.endDate"),value:x.values.endDate?new Date(`${x.values.endDate}T00:00:00`):null,onChange:j=>{if(!j){x.setFieldValue("endDate","");return}const q=j instanceof Date?j:new Date(j);x.setFieldValue("endDate",il(q))},error:x.errors.endDate}),t.jsx(pe,{label:n("adLauncher.openaiAdLauncher.fields.endTime"),type:"time",...x.getInputProps("endTime")}
98)]}),v&&t.jsx(A,{mt:"md",children:t.jsx(g,{size:"sm",c:"dimmed",children:n("adLauncher.openaiAdLauncher.pixels.description")})}),t.jsx(rt,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.campaignActive"),...x.getInputProps("campaignActive",{type:"checkbox"})})]}),t.jsxs(A,{mb:"md",mt:"md",children:[t.jsx(Be,{order:3,children:n("adLauncher.openaiAdLauncher.adGroupSection.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,children:n("adLauncher.openaiAdLauncher.adGroupSection.subtitle")})]}),t.jsx(pe,{mt:"md",withAsterisk:!0,label:n("adLauncher.campaignDetails.adSet.nameLabel"),placeholder:n("adLauncher.campaignDetails.adSet.namePlaceholder"),maxLength:tn,...x.getInputProps("adSetName")}),!T&&t.jsxs(Ha.Group,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.bidStrategy"),value:x.values.bidStrategy,onChange:j=>x.setFieldValue("bidStrategy",j),children:[t.jsx(Ha,{mt:"xs",value:cd(x.values.biddingType),label:n("adLauncher.openaiAdLauncher.options.maximizeResults"),description:n("adLauncher.openaiAdLauncher.fields.maximizeResultsHint")}),t.jsx(Ha,{mt:"sm",value:"fixed_bid",label:n(v?"adLauncher.openaiAdLauncher.options.manualMaxCpa":"adLauncher.openaiAdLauncher.options.manualMaxCpc")})]}),(T||!H)&&t.jsx(at,{mt:"md",withAsterisk:!0,label:n(T?"adLauncher.openaiAdLauncher.fields.maxCpm":v?"adLauncher.openaiAdLauncher.fields.targetCpa":"adLauncher.openaiAdLauncher.fields.maxCpc"),description:n(T?"adLauncher.openaiAdLauncher.fields.maxCpmHint":v?"adLauncher.openaiAdLauncher.fields.targetCpaHint":"adLauncher.openaiAdLauncher.fields.maxCpcHint"),min:T?ma:ga,max:T?fa:void 0,decimalScale:2,suffix:" USD",...x.getInputProps("maxBidDollars"),onChange:j=>{x.setFieldValue("maxBidDollars",Number(j)||0),x.setFieldValue("maxBidUserEdited",!0)}}),t.jsx(pe,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.tracking"),description:n("adLauncher.openaiAdLauncher.fields.trackingHint"),...x.getInputProps("adGroupTrackingTemplate")}),t.jsx(pe,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.defaultDestinationUrl"),description:n("adLauncher.openaiAdLauncher.fields.defaultDestinationUrlHint"),placeholder:"https://",...x.getInputProps("defaultDestinationUrl")}),t.jsx(qa,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.contextHints"),description:n("adLauncher.openaiAdLauncher.fields.contextHintsHint"),placeholder:n("adLauncher.openaiAdLauncher.fields.contextHintsPlaceholder"),minRows:3,...x.getInputProps("contextHints")}),t.jsx(rt,{mt:"md",label:n("adLauncher.openaiAdLauncher.fields.adSetActive"),...x.getInputProps("adSetActive",{type:"checkbox"})})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:n("adLauncher.campaignDetails.navigation.back"),nextLabel:n("adLauncher.campaignDetails.navigation.next"),onBack:()=>{e(L?$e(je.CAMPAIGN):$e(je.BIDDING_TYPE))},nextType:"submit"})]}),C&&t.jsxs(A,{mt:"md",p:"md",style:{border:"1px solid var(--mantine-color-gray-3)",borderRadius:8},children:[t.jsx(g,{size:"sm",fw:600,mb:6,children:n("adLauncher.openaiAdLauncher.pixels.installSnippetLabel")}),t.jsx(g,{component:"pre",size:"xs",style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0},children:C})]}),t.jsxs(Ya,{opened:y,onClose:()=>I(!1),title:n("adLauncher.openaiAdLauncher.pixels.createTitle"),children:[t.jsx(pe,{label:n("adLauncher.openaiAdLauncher.pixels.nameLabel"),value:P,onChange:j=>D(j.currentTarget.value),mb:"md"}),t.jsxs(xt,{justify:"flex-end",children:[t.jsx(Me,{variant:"default",onClick:()=>I(!1),children:n("common.cancel",{defaultValue:"Cancel"})}),t.jsx(Me,{loading:G,onClick:()=>void ie(),children:n("adLauncher.openaiAdLauncher.pixels.createSubmit")})]})]})]})}const sl=["openai"];function lL(){const{t:e}=de(),{brandId:n}=ve(),a=xe(),[i,s]=S.useState({}),{adGroupOptions:r}=re(h=>h.briefBuilder),{selectedAdLauncherCampaignId:o,selectedAdLauncherAdGroupId:c}=re(h=>h.adGallery),d=Zo([...sl],n);Jo([...sl],i,n);const m=S.useMemo(()=>d.map(h=>{var p;return{channel:"openai",data:(((p=h.data)==null?void 0:p.campaigns)||[]).map(l=>{var b;return{label:l.name,value:l.id,objective:l.objective,campaignBudget:(b=l.rawObject)==null?void 0:b.budget}})}}),[d]);return t.jsxs(A,{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:[t.jsx(A,{style:{flex:1},children:t.jsx(Ct,{width:520,children:t.jsxs(ae,{children:[t.jsx(g,{fw:600,size:"md",children:e("adLauncher.launchAd.selectCampaignStep2")}),m.map((h,p)=>t.jsxs("div",{children:[t.jsx(Re,{data:h.data,label:e("adLauncher.openaiAdLauncher.fields.campaignLabel"),placeholder:e("adLauncher.openaiAdLauncher.fields.campaignLabel"),value:o,onChange:l=>{const b=h.data.find(y=>y.value===l),u=b==null?void 0:b.objective;a(Zt(u)),s(y=>
98({...y,openai:l||""})),a(Ci(l||"")),a(ya("")),a(Ei(b))}}),t.jsx(Re,{mt:"sm",placeholder:e("adLauncher.launchAd.selectAdGroupPlaceholderMeta"),data:r[h.channel]||[],value:c,label:e("adLauncher.launchAd.adGroupLabel"),onChange:l=>{a(ya(l||""))},searchable:!0,clearable:!0}),t.jsx(Zl,{h:"md"}),t.jsxs(Ht,{style:td,onClick:()=>{a(Si(null)),a(Zs(ht.CREATE_NEW_CAMPAIGN)),a($e(je.CAMPAIGN_DETAILS))},children:["+ ",e("adLauncher.launchAd.newCampaign")]})]},p))]})})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back"),nextLabel:e("adLauncher.common.next"),onBack:()=>a($e(je.BIDDING_TYPE)),onNext:()=>{c?(a(Si(null)),a(Zs(ht.EXISTING_CAMPAIGN_AND_AD_GROUP)),a($e(je.AD_SET))):(a(Si(null)),a(Zs(ht.EXISTING_CAMPAIGN_NEW_AD_GROUP)),a($e(je.CAMPAIGN_DETAILS)))},nextDisabled:!o})]})}function uL(){const{brandId:e}=ve(),{t:n}=de(),a=xe(),{data:i}=cu(e),s=(i==null?void 0:i.connected)??!1,{data:r,isLoading:o,refetch:c}=Yo({brandId:e??"",channel:"openai",enabled:!!e});return S.useEffect(()=>{(r==null?void 0:r.validity)==="valid"&&a($e(je.ADS))},[r,a]),t.jsxs(A,{py:40,children:[o&&t.jsxs(ae,{align:"center",gap:"md",children:[t.jsx(Vr,{size:120}),t.jsxs(U,{gap:"md",align:"center",children:[t.jsx(et,{size:"sm"}),t.jsx(g,{size:"sm",fw:500,children:n("adLauncher.validateAdAccount.checkingAccount")})]})]}),r&&(r==null?void 0:r.validity)==="invalid"&&t.jsxs(ae,{align:"center",gap:"md",children:[t.jsxs(ae,{align:"center",gap:"md",children:[t.jsx(Vr,{size:120}),t.jsx(g,{fw:600,children:n("adLauncher.validateAdAccount.connectionFailed")}),t.jsxs(Pt,{size:"sm",spacing:"xs",w:"50%",children:[r.issues.map((d,m)=>t.jsx(Pt.Item,{children:d.issue},m)),t.jsx(Pt.Item,{style:{listStyleType:"none",paddingLeft:20,paddingTop:10},children:t.jsxs(g,{size:"sm",children:[n("adLauncher.validateAdAccount.emailAtMessage")," ",t.jsx(g,{span:!0,fw:500,td:"underline",children:"[email protected]"})]})})]})]}),t.jsxs(ae,{w:"25%",gap:"xs",mt:"md",children:[e&&t.jsx(lu,{brandId:e,connected:s,onConnected:()=>{c()}}),t.jsx(Me,{fullWidth:!0,variant:"light",color:"gray",onClick:()=>a(fn(!1)),children:n("common.cancel")})]})]})]})}function hL(e,n){const a=n==null?void 0:n[String(e.id)];return a||(e.previewStorageKey?e.previewStorageKey.includes("public/")?`${dt}${e.previewStorageKey}`:`${dt}public/${e.previewStorageKey}`:"")}function yd(e){var s,r;const n=(e.ads??[]).filter(o=>!Te(o==null?void 0:o.previewStorageKey)),a=((s=e.shared)==null?void 0:s.url)??"",i=((r=e.shared)==null?void 0:r.checked)??!1;return n.map(o=>{var b;const c=String(o.id),d=e.copyByAd[c],m=((d==null?void 0:d.headlines)??[]).map(u=>ia(u.trim())).filter(u=>u.length>0),h=ia(((b=d==null?void 0:d.title)==null?void 0:b.trim())||m[0]||""),p=ui(((d==null?void 0:d.body)||"").trim()),l=m.length>0?m:h?[h]:[];return{name:o.name,configured_status:i?"ACTIVE":"PAUSED",media_type:"image",media_url:hL(o,e.resizedMediaByAd),title:h,body:p,headlines:l,destination_url:a}})}function bd(e){const n=Number(e.brandId),{channel:a,adSpecs:i}=e,s=e.isManaged?{is_managed:!0}:{};if(e.mode===ht.CREATE_NEW_CAMPAIGN&&e.draft)return{brand_id:n,channel:a,...s,campaign_spec:{...e.draft.campaign_spec,...e.campaignSpecOverrides??{}},ad_group_spec:e.draft.ad_group_spec,ad_specs:i};if(e.mode===ht.EXISTING_CAMPAIGN_NEW_AD_GROUP&&e.draft)return{brand_id:n,channel:a,...s,campaign_spec:{...e.draft.campaign_spec,...e.campaignSpecOverrides??{}},ad_group_spec:e.draft.ad_group_spec,ad_specs:i};const r=i.map(o=>({...o,ad_group_id:e.selectedAdGroupId}));return{brand_id:n,channel:a,...s,campaign_spec:{id:e.selectedCampaignId},ad_group_spec:{id:e.selectedAdGroupId},ad_specs:r}}const Ad="openai_launch_draft_v1",pL=30*60*1e3;function pp(e){try{const n={...e,savedAt:Date.now()};sessionStorage.setItem(Ad,JSON.stringify(n))}catch(n){console.error("Failed to save OpenAI launch draft",n)}}function gL(e){try{const n=sessionStorage.getItem(Ad);if(!n)return null;const a=JSON.parse(n);return!(a!=null&&a.savedAt)||Date.now()-a.savedAt>pL?(gp(),null):String(a.brandId)!==String(e)?null:a}catch{return null}}function gp(){try{sessionStorage.removeItem(Ad)}catch{}}const mL=.12,ls=2,us=90;function fL(){var ne;const{formStyle:e,scrollStyle:n,shellStyle:a}=ze({pinFooter:!0}),i=xe();yt();const s=_n(),{brandId:r}=ve(),{t:o}
98=de(),{openaiDurationDays:c,openaiLaunchSpecDraft:d,openaiAdSpecsByAd:m,openaiAdSpecsShared:h,openaiResizedMediaByAd:p,openaiAdLauncherFlow:l,openaiAdsSelectionBackStep:b,openaiCampaignDetailsForm:u,openaiManagedAccount:y,selectedLauncherAds:I,selectedAdLauncherChannel:C,selectedAdLauncherCampaignId:E,selectedAdLauncherAdGroupId:P,selectedCampaignObjectives:D}=re(X=>X.adGallery),{adInstanceItems:G}=re(X=>X.projectView),_=xn(),O=En(),{data:f}=ri(),{data:k,isLoading:R}=Ql((f==null?void 0:f.stripeCustomerId)||null),B=S.useMemo(()=>{var ie;const X=Number((ie=d==null?void 0:d.campaign_spec)==null?void 0:ie.start_time);return X&&!Number.isNaN(X)?X:Math.floor(Date.now()/1e3)},[d]),$=Math.max($a,Number((ne=d==null?void 0:d.campaign_spec)==null?void 0:ne.daily_budget)||Number(u==null?void 0:u.campaignDailyBudget)||$a),J=$*c,z=parseFloat((J*mL).toFixed(2)),V=parseFloat((J+z).toFixed(2)),N=Math.round(V*100),[L,x]=S.useState(!1),[v,T]=S.useState(!1),H=_.isPending||L||v,F=Uy(B,c),w=()=>{const X=dd(B,c),ie=(I==null?void 0:I.filter(j=>!Te(j==null?void 0:j.previewStorageKey)))??[],Q=yd({ads:ie,copyByAd:m,shared:h,resizedMediaByAd:p});return bd({mode:l,draft:d,brandId:r,channel:C[0]||"openai",selectedCampaignId:E,selectedAdGroupId:P,adSpecs:Q,isManaged:!0,campaignSpecOverrides:{start_time:B,end_time:X}})},K=async()=>{if(r){T(!0);try{pp({brandId:r,openaiAdLauncherStepNumber:je.PAYMENT,openaiAdsSelectionBackStep:b,openaiAdLauncherFlow:l,openaiLaunchSpecDraft:d,openaiCampaignDetailsForm:u,openaiAdSpecsByAd:m,openaiAdSpecsShared:h,openaiResizedMediaByAd:p,openaiManagedAccount:y,openaiDurationDays:c,selectedLauncherAds:I||[],selectedAdLauncherChannel:C,selectedAdLauncherCampaignId:E,selectedAdLauncherAdGroupId:P,selectedCampaignObjectives:D??null});const{successUrl:X,cancelUrl:ie}=eu("setup",{returnTo:`/brands/${r}/ad-launcher?resumeOpenaiLaunch=1`}),Q=await tu({successUrl:X,cancelUrl:ie});nu(Q.url)}catch(X){console.error(X),he.show({title:o("adLauncher.openaiAdLauncher.payment.setupFailedTitle"),message:o("adLauncher.openaiAdLauncher.payment.setupFailedMessage"),color:"red"}),T(!1)}}},M=async()=>{if(!k){await K();return}const X=f==null?void 0:f.stripeCustomerId;if(!X){he.show({title:o("adLauncher.openaiAdLauncher.payment.missingMethodTitle"),message:o("adLauncher.openaiAdLauncher.payment.missingMethodMessage"),color:"red"});return}x(!0);let ie=null;try{const Q=await li({stripeCustomerId:X,amount:N,description:`OpenAI Managed Ad â ${c} day${c===1?"":"s"} campaign`,confirm:!0});ie=Q==null?void 0:Q.paymentIntentId,i($e(je.LOADING));const j=w(),q=await _.mutateAsync(j),se=Mn(q),le=(I==null?void 0:I.filter(te=>!Te(te==null?void 0:te.previewStorageKey)))??[],_e=Nn(le,se,le.length);if(!se.isFullSuccess){const te=kn(se,o("adLauncher.launchAd.launchFailedFallback"),o);if(Oe(Xa,{brandId:r,error_message:te.message}),he.show({title:o("adLauncher.errors.partialTitle"),message:te.message,color:"red"}),_e.length){await Promise.all(_e.map(async Le=>{Le.id&&await O.mutateAsync({id:Le.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const me=G==null?void 0:G.map(Le=>_e.find(ye=>ye.id===Le.id)?{...Le,status:Fe.launched,updatedAt:new Date().toISOString()}:Le);i(mt(me))}ie&&se.adsLaunchedCount===0&&(await ln(ie).catch(()=>{}),he.show({title:o("adLauncher.openaiAdLauncher.payment.refundedTitle"),message:o("adLauncher.openaiAdLauncher.payment.refundedWithLaunchError",{launchError:te.message}),color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})),i($e(je.PAYMENT));return}if(Oe(Io,{brandId:r}),i($e(je.SUCCESS)),_e.length){await Promise.all(_e.map(async me=>
98{me.id&&await O.mutateAsync({id:me.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const te=G==null?void 0:G.map(me=>_e.find(Le=>Le.id===me.id)?{...me,status:Fe.launched,updatedAt:new Date().toISOString()}:me);i(mt(te))}setTimeout(()=>{i(wn()),i(Rs()),i(fn(!1))},5e3)}catch(Q){const j=cn(Q,o("adLauncher.launchAd.launchFailedFallback"));Oe(Xa,{brandId:r,error_message:j}),ie?(await ln(ie).catch(()=>{}),he.show({title:o("adLauncher.openaiAdLauncher.payment.refundedTitle"),message:o("adLauncher.openaiAdLauncher.payment.refundedWithLaunchError",{launchError:j}),color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})):pi({title:o("adLauncher.openaiAdLauncher.payment.failedTitle"),message:cn(Q,o("adLauncher.openaiAdLauncher.payment.failedMessage")),onUpdateCard:()=>s(gi(r))}),i($e(je.PAYMENT))}finally{x(!1)}},ee=k!=null&&k.card?`${k.card.brand||"Card"} â¢â¢â¢â¢ ${k.card.last4}`:null;return t.jsxs(A,{style:a,children:[t.jsx(A,{style:e,children:t.jsxs(A,{style:n,children:[t.jsxs(A,{style:{maxWidth:640,margin:"0 auto",width:"100%"},children:[t.jsx(Be,{order:3,mb:4,children:o("adLauncher.openaiAdLauncher.payment.title")}),t.jsx(g,{size:"sm",c:"gray.6",mb:"xl",children:o("adLauncher.openaiAdLauncher.payment.subtitle")}),t.jsxs(ae,{gap:"xl",children:[t.jsx(Ae,{withBorder:!0,padding:"md",radius:"md",children:t.jsxs(U,{justify:"space-between",align:"center",children:[t.jsxs(U,{align:"center",gap:"sm",children:[t.jsx(im,{size:20}),t.jsxs(A,{children:[t.jsx(g,{size:"sm",fw:600,children:o("adLauncher.openaiAdLauncher.payment.cardSection")}),t.jsx(g,{size:"xs",c:"dimmed",children:R?o("adLauncher.openaiAdLauncher.payment.cardLoading"):ee||o("adLauncher.openaiAdLauncher.payment.noCard")})]})]}),!R&&!k&&t.jsx(Me,{size:"xs",variant:"light",loading:v,onClick:()=>void K(),children:o("adLauncher.openaiAdLauncher.payment.addCard")})]})}),t.jsxs(ae,{gap:"sm",children:[t.jsxs(U,{justify:"space-between",align:"center",children:[t.jsx(g,{fw:500,size:"sm",children:o("adLauncher.openaiAdLauncher.payment.duration")}),t.jsxs(U,{align:"center",gap:"xs",children:[t.jsx(at,{value:c,onChange:X=>i(Js(Number(X)||1)),min:ls,max:us,w:80,size:"xs"}),t.jsx(g,{size:"sm",c:"gray.6",children:o("adLauncher.openaiAdLauncher.payment.days")})]})]}),t.jsx(A,{pb:"lg",children:t.jsx(Ln,{value:c,onChange:X=>i(Js(X)),min:ls,max:us,step:1,color:"blue",size:"sm",marks:[{value:7,label:"7d"},{value:30,label:"30d"},{value:60,label:"60d"},{value:90,label:"90d"}]})}),t.jsx(an,{label:o("adLauncher.openaiAdLauncher.payment.endDate"),description:o("adLauncher.openaiAdLauncher.payment.endDateHint"),value:F,minDate:new Date((B+ls*24*60*60)*1e3),maxDate:new Date((B+us*24*60*60)*1e3),onChange:X=>{if(!X)return;const ie=X instanceof Date?X:new Date(X),Q=Math.floor(ie.getTime()/1e3),j=By(B,Q);i(Js(Math.min(us,Math.max(ls,j))))}})]}),t.jsxs(Ae,{withBorder:!0,padding:"lg",radius:"md",children:[t.jsx(g,{fw:600,mb:"md",children:o("adLauncher.openaiAdLauncher.payment.priceBreakdown")}),t.jsxs(U,{justify:"space-between",align:"center",py:"xs",children:[t.jsx(g,{size:"sm",children:o("adLauncher.openaiAdLauncher.fields.dailyBudget")}),t.jsxs(g,{size:"sm",fw:500,children:["$",$.toFixed(2)]})]}),t.jsxs(U,{justify:"space-between",align:"center",py:"xs",children:[t.jsx(g,{size:"sm",children:o("adLauncher.openaiAdLauncher.payment.duration")}),t.jsxs(g,{size:"sm",fw:500,children:[c," ",o(c===1?"adLauncher.openaiAdLauncher.payment.day":"adLauncher.openaiAdLauncher.payment.days")]})]}),t.jsxs(U,{justify:"space-between",align:"center",py:"xs",children:[t.jsx(g,{size:"sm",children:o("adLauncher.openaiAdLauncher.payment.adBudget")}),t.jsxs(g,{size:"sm",fw:500,children:["$",J.toFixed(2)]})]}),t.jsx(_t,{my:"xs"}),t.jsxs(U,{justify:"space-between",align:"flex-start",py:"xs",children:[t.jsxs(ae,{gap:2,children:[t.jsx(g,{size:"sm",children:o("adLauncher.openaiAdLauncher.payment.omnekyFee")}),t.jsx(g,{size:"xs",c:"gray.6",children:o("adLauncher.openaiAdLauncher.payment.omnekyFeeHint")})]}),t.jsxs(g,{size:"sm",fw:500,children:["$",z.toFixed(2)]})]}),t.jsx(_t,{my:"xs"}),t.jsxs(U,{justify:"space-between",align:"center",pt:"xs",children:[t.jsx(g,{fw:700,children:o("adLauncher.openaiAdLauncher.payment.totalDue")}),t.jsxs(g,{fw:700,c:"blue",size:"lg",children:["$",V.toFixed(2)]})]})]})]})]}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:o("adLauncher.common.back"),nextLabel:o(k?"adLauncher.openaiAdLauncher.payment.continueToPay":"adLauncher.openaiAdLauncher.payment.addCardAndContinue"),onBack:()=>i($e(je.REVIEW)),onNext:()=>void M(),backDisabled:H,nextLoading:H})]})}function Mr({title:e,editAriaLabel:n,onEdit:a,children:i}){return t.jsxs(A,{mb:"lg",p:"md",style:{border:"1px solid #e9ecef",borderRadius:12},children:[t.jsxs(U,{justify:"space-between",align:"center",mb:"sm",children:[t.jsx(Be,{order:5,children:e}),t.jsx(gt,{variant:"subtle","aria-label":n,onClick:a,children:t.jsx(_o,{size:16})})]}),i]})}function xL(){const e=xe(),{brandId:n}=ve(),{t:a}=de();yt();const{selectedLauncherAds:i,selectedAdLauncherChannel:s,selectedAdLauncherCampaignId:r,selectedAdLauncherAdGroupId:o,selectedCampaign:c,selectedCampaignObjectives:d,openaiAdLauncherFlow:m,openaiLaunchSpecDraft:h,openaiCampaignDetailsForm:p,openaiAdSpecsByAd:l,openaiAdSpecsShared:b,openaiResizedMediaByAd:u,openaiManagedAccount:y}=re(v=>v.adGallery),{adInstanceItems:I}=re(v=>v.projectView),{data:C}=Ot(n),E=xn(),P=En(),D=Bi(),[G,_]=S.useState(!1),O=m===ht.EXISTING_CAMPAIGN_AND_AD_GROUP,f=O?je.CAMPAIGN:je.CAMPAIGN_DETAILS,k=O?je.CAMPAIGN:je.CAMPAIGN_DETAILS,R=(i==null?void 0:i.filter(v=>!Te(v==null?void 0:v.previewStorageKey)))??[],B=h==null?void 0:h.campaign_spec,$=h==null?void 0:h.ad_group_spec,J=(p==null?void 0:p.biddingType)==="impressions",z=!J&&(($==null?void 0:$.bid_strategy)==="maximize_clicks"||sa(p==null?void 0:p.bidStrategy)),{formStyle:V,scrollStyle:N,shellStyle:L}=ze({pinFooter:!0}),x=async()=>
98{if(y){e($e(je.PAYMENT));return}try{if((m===ht.CREATE_NEW_CAMPAIGN||m===ht.EXISTING_CAMPAIGN_NEW_AD_GROUP)&&!h){he.show({title:a("adLauncher.openaiAdLauncher.launchValidation.missingDraftTitle"),message:a("adLauncher.openaiAdLauncher.launchValidation.missingDraftMessage"),color:"red"});return}if(m!==ht.CREATE_NEW_CAMPAIGN&&m!==ht.EXISTING_CAMPAIGN_NEW_AD_GROUP&&(!r||!o)){he.show({title:a("adLauncher.openaiAdLauncher.launchValidation.missingIdsTitle"),message:a("adLauncher.openaiAdLauncher.launchValidation.missingIdsMessage"),color:"red"});return}if(R.length===0){he.show({title:a("adLauncher.openaiAdLauncher.launchValidation.imagesOnlyTitle"),message:a("adLauncher.openaiAdLauncher.launchValidation.imagesOnlyMessage"),color:"red"});return}_(!0),e($e(je.LOADING));const v=yd({ads:R,copyByAd:l,shared:b,resizedMediaByAd:u}),T=bd({mode:m,draft:h,brandId:n,channel:s[0]||"openai",selectedCampaignId:r,selectedAdGroupId:o,adSpecs:v,isManaged:!1}),H=await E.mutateAsync(T),F=Mn(H),w=Nn(R,F,R.length);if(!F.isFullSuccess){const M=kn(F,a("adLauncher.launchAd.launchFailedFallback"),a);if(Oe(Xa,{brandId:n,error_message:M.message}),await D("failed",{channel:"openai",title:Un((p==null?void 0:p.campaignName)||(c==null?void 0:c.label),(p==null?void 0:p.biddingType)||d),currentStep:je.REVIEW,payloadJson:Hn({channel:"openai",selectedAdIds:R.map(ee=>ee.id).filter(Boolean)}),campaignId:F.campaignId||r||null,adsLaunchedCount:F.adsLaunchedCount}),he.show({title:a("adLauncher.errors.partialTitle"),message:M.message,color:"red"}),e($e(je.REVIEW)),w.length){await Promise.all(w.map(async ne=>{const{__typename:X,...ie}=ne;"id"in ie&&await P.mutateAsync({id:ie.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const ee=I==null?void 0:I.map(ne=>w.find(X=>"id"in X&&X.id===ne.id)?{...ne,status:Fe.launched,updatedAt:new Date().toISOString()}:ne);e(mt(ee))}return}Oe(Io,{brandId:n}),e($e(je.SUCCESS)),await D("launched",{channel:"openai",title:Un((p==null?void 0:p.campaignName)||(c==null?void 0:c.label),(p==null?void 0:p.biddingType)||d),currentStep:je.REVIEW,payloadJson:Hn({channel:"openai",selectedAdIds:R.map(M=>M.id).filter(Boolean)}),campaignId:F.campaignId||r||null,adsLaunchedCount:F.adsLaunchedCount}),await Promise.all(w.map(async M=>{const{__typename:ee,...ne}=M;"id"in ne&&await P.mutateAsync({id:ne.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const K=I==null?void 0:I.map(M=>w.find(ee=>"id"in ee&&ee.id===M.id)?{...M,status:Fe.launched,updatedAt:new Date().toISOString()}:M);e(mt(K)),setTimeout(()=>{e(wn()),e(Rs()),e(fn(!1))},5e3)}catch(v){const T=cn(v,a("adLauncher.launchAd.launchFailedFallback"));Oe(Xa,{brandId:n,error_message:T}),await D("failed",{channel:"openai",title:Un((p==null?void 0:p.campaignName)||(c==null?void 0:c.label),(p==null?void 0:p.biddingType)||d),currentStep:je.REVIEW,payloadJson:Hn({channel:"openai",selectedAdIds:R.map(H=>H.id).filter(Boolean)}),campaignId:r||null,adsLaunchedCount:0}),he.show({title:a("adLauncher.adsetSettings.launchFailed"),message:T,color:"red"}),e($e(je.REVIEW))}finally{_(!1)}};return t.jsx(A,{style:L,children:t.jsxs(A,{style:V,children:[t.jsxs(A,{style:N,children:[t.jsxs(Ct,{width:720,children:[t.jsx(Be,{order:4,mb:"md",children:a("adLauncher.openaiAdLauncher.review.title")}),t.jsx(Mr,{title:a("adLauncher.openaiAdLauncher.review.campaign"),editAriaLabel:a("adLauncher.openaiAdLauncher.review.editAriaLabel",{section:a("adLauncher.openaiAdLauncher.review.campaign")}),onEdit:()=>e($e(f)),children:t.jsxs(ae,{gap:4,children:[t.jsxs(g,{size:"sm",children:[t.jsxs(g,{span:!0,c:"dimmed",children:[a("adLauncher.openaiAdLauncher.fields.campaignLabel"),":"," "]}),String((B==null?void 0:B.name)||(p==null?void 0:p.campaignName)||r||"â")]}),t.jsxs(g,{size:"sm",children:[t.jsxs(g,{span:!0,c:"dimmed",children:[a("adLauncher.openaiAdLauncher.fields.biddingType"),":"," "]}),String((B==null?void 0:B.bidding_type)||(p==null?void 0:p.biddingType)||"â")]}),t.jsxs(g,{size:"sm",children:[t.jsxs(g,{span:!0,c:"dimmed",children:[a("adLauncher.openaiAdLauncher.fields.dailyBudget"),":"," "]}),(B==null?void 0:B.daily_budget)!=null?`$${Number(B.daily_budget).toFixed(2)}`:(p==null?void 0:p.campaignDailyBudget)!=null?`$${Number(p.campaignDailyBudget).toFixed(2)}`:"â"]})]})}),t.jsx(Mr,{title:a("adLauncher.openaiAdLauncher.review.adGroup"),editAriaLabel:a("adLauncher.openaiAdLauncher.review.editAriaLabel",{section:a("adLauncher.openaiAdLauncher.review.adGroup")}),onEdit:()=>e($e(k)),children:t.jsxs(ae,{gap:4,children:[t.jsxs(g,{size:"sm",children:[t.jsxs(g,{span:!0,c:"dimmed",children:[a("adLauncher.campaignDetails.adSet.nameLabel"),":"," "]}),String(($==null?void 0:$.name)||(p==null?void 0:p.adSetName)||o||"â")]}),t.jsxs(g,{size:"sm",children:[t.jsxs(g,{span:!0,c:"dimmed",children:[J?a("adLauncher.openaiAdLauncher.fields.maxCpm"):z?a("adLauncher.openaiAdLauncher.fields.bidStrategy"):(p==null?void 0:p.biddingType)==="conversions"?a("adLauncher.openaiAdLauncher.fields.targetCpa"):a("adLauncher.openaiAdLauncher.fields.maxCpc"),":"," "]}),z?a("adLauncher.openaiAdLauncher.options.maximizeResults"):($==null?void 0:$.max_bid_dollars)!=null?`$${Number($.max_bid_dollars).toFixed(2)}`:(p==null?void 0:p.maxBidDollars)!=null?`$${Number(p.maxBidDollars).toFixed(2)}`:"â"]})]})}),t.jsxs(Mr,{title:a("adLauncher.openaiAdLauncher.review.ads"),editAriaLabel:a("adLauncher.openaiAdLauncher.review.editAriaLabel",{section:a("adLauncher.openaiAdLauncher.review.ads")}),onEdit:()=>e($e(je.AD_SET)),children:[t.jsxs(g,{size:"sm",mb:"sm",c:"dimmed",children:[a("adLauncher.openaiAdLauncher.review.destination"),":"," ",(b==null?void 0:b.url)||"â"]}
98),t.jsx(ae,{gap:"md",children:R.map((v,T)=>{const H=String(v.id),F=l[H]??{title:"",body:""},K=u[H]||(v.previewStorageKey?v.previewStorageKey.includes("public/")?`${dt}${v.previewStorageKey}`:`${dt}public/${v.previewStorageKey}`:"");return t.jsxs(A,{children:[t.jsx(g,{size:"sm",fw:700,mb:6,children:a("adLauncher.openaiAdLauncher.review.adItem",{n:T+1})}),t.jsx(xd,{imageUrl:K,brandName:(C==null?void 0:C.name)||"",title:F.title,body:F.body})]},H)})})]})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:a("adLauncher.common.back"),nextLabel:a(y?"adLauncher.common.next":"adLauncher.common.launch"),onBack:()=>e($e(je.AD_SET)),onNext:()=>void x(),nextLoading:G})]})})}function yL(e){return e.previewStorageKey?e.previewStorageKey.includes("public/")?`${dt}${e.previewStorageKey}`:`${dt}public/${e.previewStorageKey}`:""}function hs(e,n){const a=Lt();return e!=null&&e.previewStorageKey&&e.previewStorageKey!=="public/"?e.previewStorageKey.includes("public/")?st(`${bt[a]}/${e.previewStorageKey}`):st(`${At[a]}/${e.previewStorageKey}`):""}function bL(){const{t:e}=de(),{brandId:n}=ve(),a=xe(),{checkIfSufficientCredits:i,processCreditTransaction:s}=eg(),{selectedLauncherAds:r,openaiResizedMediaByAd:o,openaiAdSpecsByAd:c}=re(T=>T.adGallery),[d,m]=S.useState(null),[h,p]=S.useState(!1),[l,b]=S.useState(null),[u,y]=S.useState({x:0,y:0}),[I,C]=S.useState(1),[E,P]=S.useState(null),[D,G]=S.useState(!1),[_,O]=S.useState(null),f=S.useMemo(()=>r.filter(T=>o[String(T.id)]?!1:ft(T.size)!=="square"),[r,o]),k=!Ws(r,o),{data:R,fetchNextPage:B,hasNextPage:$,isFetchingNextPage:J}=Cn({mode:"brand",brandId:n??""}),z=S.useMemo(()=>{const T=new Set(r.map(F=>String(F.id)));return((R==null?void 0:R.pages)||[]).flatMap(F=>F.items).filter(F=>!Te(F.previewStorageKey)&&ft(F.size)==="square"&&!T.has(String(F.id)))},[R,r]),V=S.useCallback((T,H)=>{P(H)},[]),N=async T=>{var M,ee,ne;if(!n||T.length===0)return;const H=Fd.RESIZED_AD*T.length;if(!i(H))return;T.length===1?m(String(T[0].id)):p(!0);let w=0,K=0;try{for(const X of T)try{const ie=await Pl.post("api/v1/ads/resize_ad",{adUrl:yL(X),aspectRatio:"1:1",brandId:Number(n)}),Q=((M=ie.data)==null?void 0:M.resizedAdUrl)||((ee=ie.data)==null?void 0:ee.resized_ad_url)||((ne
98=ie.data)==null?void 0:ne.url)||"";Q?(a(Bd({adId:String(X.id),mediaUrl:Q})),await s(Fd.RESIZED_AD),w+=1):K+=1}catch(ie){console.error(ie),K+=1}w>0&&K===0?he.show({message:e("adLauncher.openaiAdLauncher.fitStep.resizeDone",{count:w}),color:"green"}):w>0?he.show({title:e("adLauncher.openaiAdLauncher.fitStep.resizePartialTitle"),message:e("adLauncher.openaiAdLauncher.fitStep.resizePartialMessage",{succeeded:w,failed:K}),color:"orange"}):he.show({title:e("adLauncher.openaiAdLauncher.fitStep.resizeFailedTitle"),message:e("adLauncher.openaiAdLauncher.fitStep.resizeFailedMessage"),color:"red"})}finally{m(null),p(!1)}},L=async()=>{if(!(!l||!E||!n)){G(!0);try{const T=await Po(hs(l),E,"square"),F=await(await fetch(T)).blob(),w=new File([F],`${l.id}.jpg`,{type:"image/jpeg"}),K=oi(),M=`brands/${n}/media-items/uploads`,ee=Co.getExtension(w.type),ne=await Eo(w,`${M}/${K}${ee?`.${ee}`:""}`),X=`${dt}public/${ne}`;a(Bd({adId:String(l.id),mediaUrl:X})),he.show({message:e("adLauncher.openaiAdLauncher.fitStep.cropDone"),color:"green"}),b(null),y({x:0,y:0}),C(1),P(null)}catch(T){console.error(T),he.show({title:e("adLauncher.openaiAdLauncher.fitStep.cropFailedTitle"),message:e("adLauncher.openaiAdLauncher.fitStep.cropFailedMessage"),color:"red"})}finally{G(!1)}}},x=T=>{if(!_)return;const H=String(_.id),F=r.map(w=>String(w.id)===H?T:w);if(a(zs(F)),a(tg(H)),c[H]){const w={...c};delete w[H],a(xs(w))}he.show({message:e("adLauncher.openaiAdLauncher.fitStep.replaceDone"),color:"green"}),O(null)},v={default:4,1100:3,700:2,500:1};return t.jsxs(A,{style:{display:"flex",flexDirection:"column",flex:1,minHeight:0,overflow:"hidden"},children:[t.jsxs(A,{style:{flexShrink:0},children:[t.jsx(Be,{order:4,children:e("adLauncher.openaiAdLauncher.fitStep.title")}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,children:e("adLauncher.openaiAdLauncher.fitStep.helper")}),f.length>1&&t.jsx(Me,{mt:"sm",size:"xs",variant:"light",loading:h,onClick:()=>void N(f),children:e("adLauncher.openaiAdLauncher.fitStep.resizeAll",{count:f.length})})]}),t.jsxs(Nt,{style:{flex:1,minHeight:0},scrollbars:"y",children:[t.jsx(ae,{gap:"md",px:8,pt:"sm",children:f.length===0?t.jsx(g,{size:"sm",c:"dimmed",children:e("adLauncher.openaiAdLauncher.fitStep.allReady")}):f.map(T=>t.jsx(Ae,{withBorder:!0,padding:"md",radius:"md",children:t.jsxs(U,{gap:"md",align:"flex-start",wrap:"wrap",children:[t.jsxs(A,{style:{width:120,flexShrink:0,position:"relative"},children:[t.jsx(Qe,{size:"xs",color:"orange",style:{position:"absolute",top:6,left:6,zIndex:1},children:e("adLauncher.openaiAdLauncher.adsSelection.nonSquareBadge")}),t.jsx(ot,{src:hs(T),fit:"contain",alt:T.name||"",radius:"sm"})]}),t.jsxs(ae,{gap:"xs",style:{flex:1,minWidth:200},children:[t.jsx(g,{fw:600,size:"sm",lineClamp:1,children:T.name||e("adLauncher.openaiAdLauncher.fitStep.untitledAd")}),t.jsx(g,{size:"xs",c:"dimmed",children:e("adLauncher.openaiAdLauncher.fitStep.actionsHint")}),t.jsxs(xt,{gap:"xs",children:[t.jsx(Me,{size:"xs",variant:"default",onClick:()=>b(T),children:e("adLauncher.openaiAdLauncher.fitStep.manualCrop")}),t.jsx(Me,{size:"xs",variant:"light",loading:d===String(T.id),disabled:h,onClick:()=>void N([T]),children:e("adLauncher.openaiAdLauncher.fitStep.aiResize")}),t.jsx(Me,{size:"xs",variant:"subtle",onClick:()=>O(T),children:e("adLauncher.openaiAdLauncher.fitStep.replace")})]})]})]})},T.id))}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:e("adLauncher.common.back"),nextLabel:e("adLauncher.common.next"),onBack:()=>a($e(je.ADS)),onNext:()=>a($e(je.BIDDING_TYPE)),nextDisabled:!k}),t.jsx(Ya,{opened:!!l,onClose:()=>{D||(b(null),y({x:0,y:0}),C(1),P(null))},title:e("adLauncher.openaiAdLauncher.fitStep.cropModalTitle"),size:"lg",children:l&&t.jsxs(ae,{gap:"md",children:[t.jsx(A,{style:{position:"relative",width:"100%",height:360,background:"#111"},children:t.jsx(Do,{image:hs(l),crop:u,zoom:I,aspect:1,onCropChange:y,onZoomChange:C,onCropComplete:V})}),t.jsxs(xt,{justify:"flex-end",children:[t.jsx(Me,{variant:"default",disabled:D,onClick:()=>{b(null),y({x:0,y:0}),C(1),P(null)},children:e("common.cancel",{defaultValue:"Cancel"})}),t.jsx(Me,{loading:D,disabled:!E,onClick:()=>void L(),children:e("adLauncher.openaiAdLauncher.fitStep.saveCrop")})]})]})}),t.jsxs(Ya,{opened:!!_,onClose:()=>O(null),title:e("adLauncher.openaiAdLauncher.fitStep.replaceModalTitle"),size:"xl",children:[t.jsx(g,{size:"sm",c:"dimmed",mb:"sm",children:e("adLauncher.openaiAdLauncher.fitStep.replaceHelper")}),t.jsx(Nt,{h:420,children:z.length===0?t.jsx(g,{size:"sm",c:"dimmed",children:e("adLauncher.openaiAdLauncher.fitStep.replaceEmpty")}):t.jsx(In,{breakpointCols:v,className:"my-masonry-grid",columnClassName:"my-masonry-grid_column",children:z.map(T=>t.jsx(Ae,{shadow:"sm",padding:"0",withBorder:!0,style:{cursor:"pointer"},onClick:()=>x(T),children:t.jsx(ot,{src:hs(T),fit:"contain",alt:T.name||""})},T.id))})}),$&&t.jsx(Me,{mt:"sm",variant:"light",fullWidth:!0,loading:J,onClick:()=>B==null?void 0:B(),children:e("adLauncher.openaiAdLauncher.fitStep.loadMore")})]})]})}function AL(){const{t:e}=de(),{scrollStyle:n,shellStyle:a}=ze({pinFooter:!0}),i=xe(),{openaiCampaignDetailsForm:s,openaiManagedAccount:r,selectedLauncherAds:o,openaiResizedMediaByAd:c}=re(l=>l.adGallery),[d,m]=S.useState(null),h=[{id:"traffic",titleKey:"adLauncher.openaiAdLauncher.biddingType.clicks.title",descriptionKey:"adLauncher.openaiAdLauncher.biddingType.clicks.description",bulletKeys:["adLauncher.openaiAdLauncher.biddingType.clicks.bullet1","adLauncher.openaiAdLauncher.biddingType.clicks.bullet2"]},{id:"brand_awareness",titleKey:"adLauncher.openaiAdLauncher.biddingType.impressions.title",descriptionKey:"adLauncher.openaiAdLauncher.biddingType.impressions.description",bulletKeys:["adLauncher.openaiAdLauncher.biddingType.impressions.bullet1","adLauncher.openaiAdLauncher.biddingType.impressions.bullet2"]},{id:"conversions",titleKey:"adLauncher.openaiAdLauncher.biddingType.conversions.title",descriptionKey:"adLauncher.openaiAdLauncher.biddingType.conversions.description",bulletKeys:["adLauncher.openaiAdLauncher.biddingType.conversions.bullet1","adLauncher.openaiAdLauncher.biddingType.conversions.bullet2"]}],p=()=>
98{if(!d)return;const l=Ra(d==="traffic"?"clicks":d==="conversions"?"conversions":"impressions");if(i(d==="traffic"?Zt("Traffic"):d==="conversions"?Zt("Conversions"):Zt("Awareness")),s){const b=s.maxBidUserEdited?s.maxBidDollars:ti(s.campaignDailyBudget,l);i($r({...s,biddingType:l,billingEventType:ta(l),bidStrategy:Bn(l,s),maxBidDollars:b}))}i($e(r?je.CAMPAIGN_DETAILS:je.CAMPAIGN))};return t.jsxs(A,{style:a,children:[t.jsxs(ae,{gap:"lg",style:n,children:[t.jsx(g,{fw:600,size:"sm",children:e("adLauncher.openaiAdLauncher.biddingType.sectionLabel")}),t.jsx(on,{cols:{base:1,sm:3},spacing:"md",children:h.map(l=>{const b=d===l.id,u=t.jsx(Ae,{withBorder:!0,padding:"lg",radius:"md",style:{cursor:l.disabled?"not-allowed":"pointer",opacity:l.disabled?.55:1,borderColor:b?"#322996":void 0,borderWidth:b?2:1},onClick:()=>{l.disabled||m(l.id)},children:t.jsxs(ae,{gap:"sm",align:"center",children:[t.jsx(g,{fw:700,ta:"center",children:e(l.titleKey)}),t.jsx(g,{size:"sm",c:"dimmed",ta:"center",children:e(l.descriptionKey)}),t.jsx(Pt,{size:"sm",spacing:"xs",w:"100%",mt:"xs",children:l.bulletKeys.map(y=>t.jsx(Pt.Item,{children:e(y)},y))})]})},l.id);return l.disabled&&l.disabledReasonKey?t.jsx(Ri,{label:e(l.disabledReasonKey),multiline:!0,maw:240,children:t.jsx("div",{children:u})},l.id):u})}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:e("adLauncher.common.back"),nextLabel:e("adLauncher.common.next"),onBack:()=>i($e(Xf(o,c))),onNext:p,nextDisabled:!d})]})}const rl=1,LL=20,SL={default:4,1200:3,700:2,500:1};function jL(e){return e?e.replace(/x/i,"X"):"â"}function vL(e){if(!e)return"â";const n=fd(e);if(!n)return"â";const a=(s,r)=>r?a(r,s%r):s,i=a(Math.round(n.w),Math.round(n.h))||1;return`${n.w/i}:${n.h/i}`}function ol(e,n){if(n)return n;const a=Lt(),i=e.previewStorageKey;return!i||i==="public/"?"":i.includes("public/")?st(`${bt[a]}/${i}`):st(`${At[a]}/${i}`)}function _L(){var N;const{t:e}=de(),n=xe(),{persist:a}=Rt(),i=md(),{brandId:s}=ve(),r=S.useRef(null),{shellStyle:o,formStyle:c,scrollStyle:d,isMobile:m}=ze({pinFooter:!0}),{selectedAds:h,openai:{showOnlySquare:p,resizedMediaByAd:l}}=re(L=>L.adLauncher),[b,u]=S.useState({}),{data:y,fetchNextPage:I,hasNextPage:C,isFetchingNextPage:E,isPending:P}=Cn({mode:"brand",brandId:s??""}),D=S.useMemo(()=>((y==null?void 0:y.pages)||[]).flatMap(L=>L.items),[y]),G=((N=y==null?void 0:y.pages)==null?void 0:N.length)??0,_=S.useCallback((L,x,v)=>{!x||!v||u(T=>{const H=T[L];return H&&H.w===x&&H.h===v?T:{...T,[L]:{w:x,h:v}}})},[]),O=S.useMemo(()=>D.filter(L=>!Te(L.previewStorageKey)),[D]),f=S.useMemo(()=>{const L=O.map(v=>{const T=String(v.id),H=na({size:v.size,resized:!!l[T],measured:b[T]??null});return{ad:v,isSquare:H}});return(p?L.filter(v=>v.isSquare):L).sort((v,T)=>Number(T.isSquare)-Number(v.isSquare))},[O,p,l,b]),k=S.useMemo(()=>p?O.filter(L=>{const x=String(L.id);return l[x]||b[x]?!1:!na({size:L.size})}):[],[O,p,l,b]),{showLoading:R,showEmpty:B}=oa({count:f.length,isPending:P||k.length>0,hasNextPage:C,isFetchingNextPage:E}),$=S.useCallback(()=>{!C||E||I==null||I()},[C,E,I]);S.useLayoutEffect(()=>{if(E||!C)return;let L=!1;const x=()=>{if(L)return;const T=r.current;T&&(T.scrollHeight>T.clientHeight+12||$())},v=requestAnimationFrame(()=>{requestAnimationFrame(x)});return()=>{L=!0,cancelAnimationFrame(v)}},[G,C,E,$]);const J=L=>{const x=h.some(T=>T.id===L.id);let v;if(x)v=h.filter(T=>T.id!==L.id);else{if(h.length>=LL)return;v=[...h,L]}n(Gs(v))},z=h.some(L=>{const x=String(L.id);if(l[x])return!1;const v=b[x];return v?!na({measured:v}):ft(L.size)!=="square"}),V=()=>{h.length<rl||(Oe(Jl,{brandId:s}),n(ct(z?Ue.FORMATS:Ue.CAMPAIGN)),a())};return t.jsx(A,{style:o,children:t.jsxs(A,{style:c,children:[t.jsx(A,{style:d,children:t.jsxs(A,{style:{maxWidth:960,margin:"0 auto",width:"100%"},px:m?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.openaiManaged.adsPick.title",{defaultValue:"Pick the ads you want to run"})}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"sm",children:e("adLauncher.openaiManaged.adsPick.subtitle",{defaultValue:"Images only. Square (1:1) works best â non-square ads are marked for cropping on the next step."})}),t.jsx(_a,{mb:"md",label:e("adLauncher.openaiManaged.adsPick.showOnlySquare",{defaultValue:"Show only square images"}),checked:p,onChange:L=>n(ng(L.currentTarget.checked))}),p&&k.map(L=>{const x=ol(L,l[String(L.id)]);return x?t.jsx("img",{src:x,alt:"",style:{position:"absolute",width:1,height:1,opacity:0,pointerEvents:"none"},onLoad:v=>{const T=v.currentTarget;
98_(String(L.id),T.naturalWidth,T.naturalHeight)}},`measure-${L.id}`):null}),t.jsx(Nt,{style:{flex:1,minHeight:280},viewportRef:r,onScrollPositionChange:({y:L})=>{const x=r.current;!x||!C||E||L>x.scrollHeight-x.clientHeight-120&&$()},scrollbars:"y",children:R||B?t.jsx(Sn,{isLoading:R,filtered:B&&O.length>0}):t.jsx(In,{breakpointCols:SL,className:"my-masonry-grid",columnClassName:"my-masonry-grid_column",children:f.map(({ad:L,isSquare:x})=>{const v=h.some(H=>H.id===L.id),T=ol(L,l[String(L.id)]);return t.jsxs(Ae,{padding:0,radius:"md",withBorder:!0,mb:"sm",style:{cursor:"pointer",borderColor:v?He:void 0,borderWidth:v?3:1,position:"relative",overflow:"hidden"},onClick:()=>J(L),children:[v&&t.jsx(vn,{size:22,radius:"xl",color:"blue",style:{position:"absolute",top:8,right:8,zIndex:2},children:t.jsx(mn,{size:13})}),t.jsx(ot,{src:T,alt:L.name||"Ad",fit:"cover",mah:280,onLoad:H=>{const F=H.currentTarget;_(String(L.id),F.naturalWidth,F.naturalHeight)}}),t.jsxs(U,{justify:"space-between",px:"sm",py:"xs",align:"center",children:[t.jsx(g,{size:"xs",c:"dimmed",children:jL(L.size)}),t.jsx(g,{size:"xs",fw:700,c:x?void 0:"orange",children:vL(L.size)})]})]},L.id)})})}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>{i(),n(ct(Ue.PLATFORM))},onNext:V,nextDisabled:h.length<rl})]})})}function wL(e){return e?e.replace(/x/i,"X"):"â"}function CL(e){if(!e)return"â";const n=fd(e);if(!n)return"â";const a=(s,r)=>r?a(r,s%r):s,i=a(Math.round(n.w),Math.round(n.h))||1;return`${n.w/i}:${n.h/i}`}function Nr(e,n){if(n)return n;const a=Lt(),i=e.previewStorageKey;return!i||i==="public/"?"":i.includes("public/")?st(`${bt[a]}/${i}`):st(`${At[a]}/${i}`)}function EL(){const{t:e}=de(),n=xe(),{persist:a}=Rt(),{brandId:i}=ve(),{shellStyle:s,formStyle:r,scrollStyle:o,isMobile:c}=ze({pinFooter:!0}),{selectedAds:d,openai:{resizedMediaByAd:m}}=re(R=>R.adLauncher),h=S.useMemo(()=>d.filter(R=>!Te(R.previewStorageKey)),[d]),p=S.useMemo(()=>h.filter(R=>{const B=String(R.id);return m[B]?!1:!na({size:R.size})&&ft(R.size)!=="square"}),[h,m]),l=h.every(R=>{const B=String(R.id);return m[B]?!0:na({size:R.size})||ft(R.size)==="square"}),[b,u]=S.useState(null),[y,I]=S.useState({x:0,y:0}),[C,E]=S.useState(1),[P,D]=S.useState(null),[G,_]=S.useState(!1),O=S.useCallback((R,B)=>{D(B)},[]),f=async()=>{if(!(!b||!i)){if(!P){he.show({title:e("adLauncher.openaiManaged.formats.cropFailedTitle",{defaultValue:"Crop failed"}),message:e("adLauncher.openaiManaged.formats.cropFailedMessage",{defaultValue:"Could not crop this image. Please try again."}),color:"red"});return}_(!0);try{const R=await Po(Nr(b,m[String(b.id)]),P,"square"),$=await(await fetch(R)).blob(),J=new File([$],`${b.id}.jpg`,{type:"image/jpeg"}),z=oi(),V=`brands/${i}/media-items/uploads`,N=Co.getExtension(J.type),L=await Eo(J,`${V}/${z}${N?`.${N}`:""}`);if(!L)throw new Error("upload failed");const x=`${dt}public/${L}`;n(ag({adId:String(b.id),url:x})),he.show({message:e("adLauncher.openaiManaged.formats.cropDone",{defaultValue:"Cropped to 1:1"}),color:"green"}),u(null),I({x:0,y:0}),E(1),D(null),a()}catch(R){console.error(R),he.show({title:e("adLauncher.openaiManaged.formats.cropFailedTitle",{defaultValue:"Crop failed"}),message:e("adLauncher.openaiManaged.formats.cropFailedMessage",{defaultValue:"Could not crop this image. Please try again."}),color:"red"})}finally{_(!1)}}},k=R=>{const B=String(R.id);return m[B]?!0:na({size:R.size})||ft(R.size)==="square"};return t.jsxs(A,{style:s,children:[t.jsxs(A,{style:r,children:[t.jsx(A,{style:o,children:t.jsxs(A,{style:{maxWidth:720,margin:"0 auto",width:"100%"},px:c?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.openaiManaged.formats.title",{defaultValue:"Check your formats"})}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"md",children:e("adLauncher.openaiManaged.formats.subtitle",{defaultValue:"OpenAI Ads runs only square (1:1) images. Tap an ad to crop."})}),p.length>0&&t.jsxs(U,{gap:"sm",align:"flex-start",mb:"lg",p:"sm",style:{background:"var(--mantine-color-red-0)",border:"1px solid var(--mantine-color-red-3)",borderRadius:10},children:[t.jsx(vo,{size:18,color:"var(--mantine-color-red-6)"}),t.jsx(g,{size:"sm",children:e("adLauncher.openaiManaged.formats.warning",{count:p.length,defaultValue:"{{count}} ad(s) wonât run as-is. Crop each into 1:1 before continuing."})})]}),t.jsx(U,{gap:"md",wrap:"wrap",children:h.map(R=>{const B=k(R),$=m[String(R.id)];
98return t.jsxs(Ae,{padding:"sm",radius:"md",withBorder:!0,style:{width:c?"100%":220},children:[t.jsx(A,{style:{cursor:"pointer",position:"relative",height:160,borderRadius:6,overflow:"hidden",background:"var(--mantine-color-gray-1)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>u(R),children:t.jsx(ot,{src:Nr(R,$),alt:R.name||"Ad",h:160,w:"100%",fit:"contain"})}),t.jsxs(U,{justify:"space-between",mt:"xs",mb:"xs",children:[t.jsx(g,{size:"xs",c:"dimmed",children:wL(R.size)}),t.jsx(Qe,{size:"sm",color:B?"teal":"dark",variant:B?"light":"filled",children:$?"1:1":CL(R.size)})]}),B?t.jsxs(U,{gap:"xs",align:"center",children:[t.jsx(Qe,{color:"teal",variant:"light",style:{flex:1},children:e("adLauncher.openaiManaged.formats.compatible",{defaultValue:"Compatible"})}),t.jsx(Me,{size:"xs",variant:"default",px:8,onClick:()=>u(R),children:t.jsx(_o,{size:14})})]}):t.jsx(Me,{fullWidth:!0,size:"sm",color:"orange",variant:"light",onClick:()=>u(R),children:e("adLauncher.openaiManaged.formats.cropInto",{defaultValue:"Crop into 1:1"})})]},R.id)})}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>n(ct(Ue.CREATIVE)),onNext:()=>{l&&(n(ct(Ue.CAMPAIGN)),a())},nextDisabled:!l})]}),t.jsx(Ya,{opened:!!b,onClose:()=>{G||(u(null),I({x:0,y:0}),E(1),D(null))},title:e("adLauncher.openaiManaged.formats.cropTitle",{defaultValue:"Crop to 1:1"}),size:"lg",children:b&&t.jsxs(t.Fragment,{children:[t.jsx(A,{style:{position:"relative",height:360,background:"#111"},children:t.jsx(Do,{image:Nr(b,m[String(b.id)]),crop:y,zoom:C,aspect:1,onCropChange:I,onZoomChange:E,onCropComplete:O})}),t.jsxs(U,{justify:"flex-end",gap:"sm",mt:"md",children:[t.jsx(Me,{variant:"default",disabled:G,onClick:()=>{u(null),I({x:0,y:0}),E(1),D(null)},children:e("adLauncher.common.cancel",{defaultValue:"Cancel"})}),t.jsx(Me,{loading:G,onClick:()=>void f(),children:e("adLauncher.openaiManaged.formats.saveCrop",{defaultValue:"Save crop"})})]})]})})]})}function IL(){const{t:e}=de(),n=xe(),{persist:a}=Rt(),{shellStyle:i,formStyle:s,scrollStyle:r,isMobile:o}=ze({pinFooter:!0}),{selectedAds:c,openai:{biddingType:d,resizedMediaByAd:m}}=re(b=>b.adLauncher),h=[{id:"clicks",stored:"clicks",titleKey:"adLauncher.openaiAdLauncher.biddingType.clicks.title",titleDefault:"Clicks",descriptionKey:"adLauncher.openaiAdLauncher.biddingType.clicks.description",descriptionDefault:"Optimize for clicks to your destination URL in ChatGPT.",bulletKeys:[{key:"adLauncher.openaiAdLauncher.biddingType.clicks.bullet1",defaultValue:"Bid for clicks"},{key:"adLauncher.openaiAdLauncher.biddingType.clicks.bullet2",defaultValue:"Best for traffic and measurable site visits"}]},{id:"impressions",stored:"impressions",titleKey:"adLauncher.openaiAdLauncher.biddingType.impressions.title",titleDefault:"Impressions",descriptionKey:"adLauncher.openaiAdLauncher.biddingType.impressions.description",descriptionDefault:"Optimize for impressions and brand presence.",bulletKeys:[{key:"adLauncher.openaiAdLauncher.biddingType.impressions.bullet1",defaultValue:"Bid for impressions"},{key:"adLauncher.openaiAdLauncher.biddingType.impressions.bullet2",defaultValue:"Best for reach and awareness"}]},{id:"conversions",stored:"conversions",titleKey:"adLauncher.openaiAdLauncher.biddingType.conversions.title",titleDefault:"Conversions",descriptionKey:"adLauncher.openaiAdLauncher.biddingType.conversions.description",descriptionDefault:"Optimize for conversion events using an OpenAI Ads pixel.",bulletKeys:[{key:"adLauncher.openaiAdLauncher.biddingType.conversions.bullet1",defaultValue:"Bid toward a target CPA"},{key:"adLauncher.openaiAdLauncher.biddingType.conversions.bullet2",defaultValue:"Requires a conversion pixel on your site"}]}],p=d==="clicks"||d==="impressions"||d==="conversions",l=()=>{const b=c.filter(I=>!Te(I.previewStorageKey)),u=b.some(I=>!!m[String(I.id)]);return b.some(I=>m[String(I.id)]?!1:ft(I.size)!=="square")||u};return t.jsx(A,{style:i,children:t.jsxs(A,{style:s,children:[t.jsx(A,{style:r,children:t.jsxs(A,{style:{maxWidth:880,margin:"0 auto",width:"100%"},px:o?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.openaiManaged.objective.title",{defaultValue:"What should these ads do?"})}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"lg",children:e("adLauncher.openaiManaged.objective.subtitle",{defaultValue:"Choose how OpenAI Ads should bid. You can change it in Setup."})}),t.jsx(on,{cols:{base:1,sm:3},spacing:"md",children:h.map(b=>{const u=b.stored!==""&&d===b.stored,y=t.jsxs(Ae,{withBorder:!0,padding:"lg",radiu
98s:"md",bg:"white",style:{cursor:b.disabled?"not-allowed":"pointer",opacity:b.disabled?.55:1,borderColor:u?He:"var(--mantine-color-gray-3)",borderWidth:u?2:1,position:"relative",height:"100%"},onClick:()=>{b.disabled||!b.stored||n(au(b.stored))},children:[u&&t.jsx(vn,{size:22,radius:"xl",color:"blue",style:{position:"absolute",top:12,right:12},children:t.jsx(mn,{size:13})}),t.jsxs(ae,{gap:"sm",align:"center",children:[t.jsx(g,{fw:700,ta:"center",children:e(b.titleKey,{defaultValue:b.titleDefault})}),t.jsx(g,{size:"sm",c:"dimmed",ta:"center",children:e(b.descriptionKey,{defaultValue:b.descriptionDefault})}),t.jsx(Pt,{size:"sm",spacing:"xs",w:"100%",mt:"xs",children:b.bulletKeys.map(I=>t.jsx(Pt.Item,{children:e(I.key,{defaultValue:I.defaultValue})},I.key))})]})]},b.id);return b.disabled?t.jsx(Ri,{label:e("adLauncher.openaiAdLauncher.biddingType.conversions.comingSoon",{defaultValue:"Conversions are coming soon for OpenAI Ads."}),multiline:!0,maw:240,children:t.jsx("div",{children:y})},b.id):y})}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>n(ct(l()?Ue.FORMATS:Ue.CREATIVE)),onNext:()=>{p&&(n(ct(Ue.SETUP)),a())},nextDisabled:!p})]})})}const TL=["campaignName","adGroupName","budgetAmount","includedLocations","includedAudiences","conversionEventSettingIds","maxBid","startDate"],ML=.12,Ai=2,dl=90,Ta=$a,cl=500,NL=2;function kL(){var Ce;const{t:e}=de(),n=xe(),{brandId:a}=ve(),{data:i}=Ot(a),{shellStyle:s,formStyle:r,scrollStyle:o,isMobile:c}=ze({pinFooter:!0}),{persist:d}=Rt(),m=Ca(),{selectedAds:h,openai:{biddingType:p,campaign:l,durationDays:b}}=re(Y=>Y.adLauncher),u=Ra(p),[y,I]=S.useState([]),[C,E]=S.useState(!1),[P,D]=S.useState(!1),[G,_]=S.useState(""),[O,f]=S.useState(!1),[k,R]=S.useState(null),[B,$]=S.useState([]),[J,z]=S.useState([]),[V,N]=S.useState([]),[L,x]=S.useState([]),v=Ns(u),T=S.useMemo(()=>Oh((i==null?void 0:i.name)||"Brand",v),[i==null?void 0:i.name,v]),H=S.useMemo(()=>Rh((i==null?void 0:i.name)||"Brand",v),[i==null?void 0:i.name,v]),F=S.useMemo(()=>[{value:"clicks",label:e("adLauncher.openaiAdLauncher.options.biddingClicks",{defaultValue:"Clicks (traffic)"})},{value:"impressions",label:e("adLauncher.openaiAdLauncher.options.biddingImpressions",{defaultValue:"Impressions (awareness)"})},{value:"conversions",label:e("adLauncher.openaiAdLauncher.options.biddingConversions",{defaultValue:"Conversions"})}],[e]),w=S.useMemo(()=>[{value:"web",label:e("adLauncher.openaiAdLauncher.options.platformWeb")},{value:"ios_app",label:e("adLauncher.openaiAdLauncher.options.platformIos")},{value:"android_app",label:e("adLauncher.openaiAdLauncher.options.platformAndroid")}],[e]),K=Ra((l==null?void 0:l.biddingType)||u),M=wt({initialValues:{campaignName:(l==null?void 0:l.campaignName)||T,adGroupName:(l==null?void 0:l.adGroupName)||H,budgetAmount:(l==null?void 0:l.budgetAmount)||ea,budgetType:(l==null?void 0:l.budgetType)||"Daily",durationDays:Math.max(b||Ai,Ai),biddingType:K,billingEvent:(l==null?void 0:l.billingEvent)||ta(K),maxBid:(l==null?void 0:l.maxBid)||ti(ea,K),maxBidUserEdited:(l==null?void 0:l.maxBidUserEdited)??!1,bidStrategy:Bn(K,l||void 0),trackingTemplate:(l==null?void 0:l.trackingTemplate)||ja,contextHints:(l==null?void 0:l.contextHints)||"",platforms:(l==null?void 0:l.platforms)??[],includedLocations:(Ce=l==null?void 0:l.includedLocations)!=null&&Ce.length?l.includedLocations:[{...Va}],excludedLocations:(l==null?void 0:l.excludedLocations)??[],includedAudiences:(l==null?void 0:l.includedAudiences)??[],excludedAudiences:(l==null?void 0:l.excludedAudiences)??[],conversionEventSettingIds:(l==null?void 0:l.conversionEventSettingIds)??[],startDate:(l==null?void 0:l.startDate)||ni(),startTime:(l==null?void 0:l.startTime)||Di(),timezone:(l==null?void 0:l.timezone)||_s(),scheduleMode:(l==null?void 0:l.scheduleMode)||"today",campaignStatusOnLaunch:(l==null?void 0:l.campaignStatusOnLaunch)??!1,adGroupActiveOnLaunch:(l==null?void 0:l.adGroupActiveOnLaunch)??!1,destinationUrl:(l==null?void 0:l.destinationUrl)||"",adStatusOnLaunch:(l==null?void 0:l.adStatusOnLaunch)??!1},validate:{campaignName:Y=>!String(Y).trim()||String(Y).trim().length<Nh?e("adLauncher.openaiAdLauncher.validation.campaignNameMin",{defaultValue:"Enter a campaign name with at least 3 characters."}):String(Y).length>tn?e("adLauncher.openaiAdLauncher.validation.nameMaxLength",{defaultValue:`Max ${tn} characters`}):null,adGroupName:Y=>String(Y).trim()?String(Y).length>tn?e("adLauncher.openaiAdLauncher.validation.nameMaxLength",{defaultValue:`Max ${tn} characters`}):null:e("adLauncher.common.required",{defaultValue:"Required"}),budgetAmount:Y=>
98Number(Y)<Ta?e("adLauncher.openaiManaged.setup.budgetMinError",{defaultValue:`Minimum daily budget is $${Ta}`,min:Ta}):null,maxBid:(Y,ce)=>{const Ie=ce.biddingType==="impressions";return!Ie&&sa(ce.bidStrategy)?null:Ie?Number(Y)<ma||Number(Y)>fa?e("adLauncher.openaiAdLauncher.validation.cpmRange",{min:ma.toFixed(2),max:fa.toFixed(2)}):null:Number(Y)<ga?e("adLauncher.openaiAdLauncher.validation.maxBidMin",{defaultValue:`Minimum max bid is $${ga}`,min:ga}):null},startDate:(Y,ce)=>ce.scheduleMode==="pick"&&!String(Y).trim()?e("adLauncher.openaiAdLauncher.validation.startDateRequired",{defaultValue:"Start date is required"}):null,trackingTemplate:Y=>_i(Y)?e("adLauncher.openaiAdLauncher.validation.opprefReserved",{defaultValue:"Do not include {oppref} â OpenAI appends it automatically."}):null,includedLocations:(Y,ce)=>Y!=null&&Y.length?xo(Y,ce.excludedLocations)?e("adLauncher.openaiAdLauncher.validation.locationOverlap",{defaultValue:"Cannot include and exclude the same location."}):null:e("adLauncher.openaiAdLauncher.validation.locationRequired",{defaultValue:"Select at least one location to include."}),includedAudiences:(Y,ce)=>xo(Y,ce.excludedAudiences)?e("adLauncher.openaiAdLauncher.validation.audienceOverlap",{defaultValue:"Cannot include and exclude the same audience."}):null,conversionEventSettingIds:(Y,ce)=>ce.biddingType==="conversions"&&!(Y!=null&&Y.length)?e("adLauncher.openaiAdLauncher.validation.pixelRequired",{defaultValue:"Select a conversion pixel"}):null}});S.useEffect(()=>{l!=null&&l.campaignName||i!=null&&i.name&&(M.values.campaignName.trim()||M.setFieldValue("campaignName",T),M.values.adGroupName.trim()||M.setFieldValue("adGroupName",H))},[i==null?void 0:i.name,T,H]),S.useEffect(()=>{if(!a)return;let Y=!1;return(async()=>{var Ie,fe;E(!0);try{const Ee=await Sa.get(`api/brands/${a}/openai-ads/pixels`),W=((Ie=Ee.data)==null?void 0:Ie.pixels)||((fe=Ee.data)==null?void 0:fe.items)||[];if(Y)return;I((Array.isArray(W)?W:[]).map(oe=>{const ue=String(oe.eventSettingId||oe.event_setting_id||oe.conversion_event_setting_id||"");return{value:ue,label:oe.name||ue||"Pixel"}}).filter(oe=>oe.value))}catch{Y||I([])}finally{Y||E(!1)}})(),()=>{Y=!0}},[a]);const ee=async()=>{if(!(!a||!G.trim())){f(!0);try{const ce=(await Sa.post(`api/brands/${a}/openai-ads/pixels`,{name:G.trim()})).data,Ie=String(ce.eventSettingId||ce.event_setting_id||ce.conversion_event_setting_id||"");if(Ie){const fe={value:Ie,label:ce.name||G.trim()};I(Ee=>[...Ee,fe]),M.setFieldValue("conversionEventSettingIds",[Ie])}R(ce.installSnippet||ce.install_snippet||null),D(!1),_(""),he.show({title:e("adLauncher.openaiAdLauncher.pixels.createSuccess"),message:e("adLauncher.openaiManaged.setup.pausedDefault"),color:"green"})}catch{he.show({title:e("adLauncher.openaiAdLauncher.pixels.createFailedTitle",{defaultValue:"Could not create pixel"}),message:e("adLauncher.openaiAdLauncher.pixels.createFailedMessage",{defaultValue:"Try again, or create the pixel in OpenAI Ads Manager."}),color:"red"})}finally{f(!1)}}},ne=(Y,ce)=>{if(!a||Y.length<1){ce==="include"?$([]):z([]);return}m.mutate({brand_id:parseInt(a,10),channel:"openai",query:Y,limit:8,types:["locations"]},{onSuccess:Ie=>{const fe=Ps(Ie).map(up).filter(Ee=>!!Ee);ce==="include"?$(fe):z(fe)}})},X=(Y,ce)=>{if(!a||Y.length<1){ce==="include"?N([]):x([]);return}m.mutate({brand_id:parseInt(a,10),channel:"openai",query:Y,limit:8,types:["custom_audiences"]},{onSuccess:Ie=>{const fe=Ps(Ie).map(hp).filter(Ee=>!!Ee);ce==="include"?N(fe):x(fe)}})},ie=(Y,ce)=>{M.values.maxBidUserEdited||M.setFieldValue("maxBid",ti(Y,ce))},Q=Number(M.values.budgetAmount)||0,j=Number(M.values.durationDays)||Ai,q=Q*j,se=parseFloat((q*ML).toFixed(2)),le=parseFloat((q+se).toFixed(2)),_e=Q*NL,te=Q*7,me=Y=>Y.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),Le=h.filter(Y=>!Te(Y.previewStorageKey)).length,ye=Le>0?e("adLauncher.openaiManaged.setup.adsImages",{count:Le,defaultValue:"{{count}} Images"}):"â",ge=()=>{const Y=M.validate();if(Y.hasErrors){da(Y.errors,TL);return}const ce=M.values.scheduleMode==="today"?ni():M.values.startDate,Ie=Ra(M.values.biddingType),fe=Bn(Ie,{biddingType:M.values.biddingType,bidStrategy:M.values.bidStrategy});n(au(Ie)),n(ka({campaignName:M.values.campaignName.trim(),adGroupName:M.values.adGroupName.trim(),budgetAmount:M.values.budgetAmount,budgetType:M.values.budgetType,biddingType:Ie,billingEvent:ta(Ie),maxBid:M.values.maxBid,maxBidUserEdited:M.values.maxBidUserEdited,bidStrategy:fe,trackingTemplate:M.values.trackingTemplate,contextHints:M.values.contextHints,platforms:M.values.platforms,includedLocations:M.values.includedLocations,excludedLocations:M.values.excludedLocations,includedAudiences:M.values.includedAudiences,excludedAudiences:M.values.excludedAudiences,conversionEventSettingIds:M.values.conversionEventSettingIds,startDate:ce,startTime:M.values.startTime,timezone:M.values.timezone||_s(),scheduleMode:M.values.scheduleMode,campaignStatusOnLaunch:M.values.campaignStatusOnLaunch,adGroupActiveOnLaunch:M.values.adGroupActiveOnLaunch,destinationUrl:M.values.destinationUrl,adStatusOnLaunch:M.values.adStatusOnLaunch})),n(ig(M.values.durationDays)),n(ct(Ue.AD_COPY)),d()};return t.jsxs(A,{style:s,children:[t.jsxs(A,{style:r,children:[t.jsxs(A,{style:o,children:[t.jsxs(U,{gap:"xl",direction:c?"column":"row",style:{maxWidth:1040,margin:"0 auto",width:"100%"},px:c?"md":0,pb:"md",children:[t.jsxs(ae,{style:{flex:1,minWidth:0},gap:"md",children:[t.jsxs(A,{children:[t.jsx(Be,{order:3,children:e("adLauncher.openaiManaged.setup.title",{defaultValue:"Set up the campaign"})}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,children:e("adLauncher.openaiManaged.setup.subtitle",{defaultValue:"Named and budgeted for you â change whatever you like."})})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsx(g,{fw:600,mb:"sm",children:e("adLauncher.openaiManaged.setup.names",{defaultValue:"Names"})}),t.jsx(pe,{label:e("adLauncher.openaiManaged.setup.campaignName",{defaultValue:"Campaign Name"}),withAsterisk:!0,mb:"sm",maxLength:tn,"data-managed-field":"campaignName",...M.getInputProps("campaignName")}),t.jsx(pe,{label:e("adLauncher.openaiManaged.setup.adGroupName",{defaultValue:"Ad Group Name"}),withAsterisk:!0,maxLength:tn,"data-managed-field":"adGroupName",...M.getInputProps("adGroupName")})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsxs(g,{fw:600,mb:"xs",children:[e("adLauncher.openaiManaged.setup.budgetAmount",{defaultValue:"Budget Amount"})," ","*"]}),t.jsxs(U,{gap:"sm",align:"flex-end",mb:"xs",children:[t.jsx(at,{style:{flex:1},min:Ta,max:cl,prefix:"$",decimalScale:0,"data-managed-field":"budgetAmount",...M.getInputProps("budgetAmount"),onChange:Y=>{const ce=Number(Y)||Ta;M.setFieldValue("budgetAmount",ce),ie(ce,M.values.biddingType)}}),t.jsx(Re,{w:110,data:[{value:"Daily",label:e("adLauncher.openaiManaged.setup.daily",{defaultValue:"Daily"})}],allowDeselect:!1,...M.getInputProps("budgetType")})]}),t.jsx(Ln,{min:Ta,max:cl,value:M.values.budgetAmount,onChange:Y=>{M.setFieldValue("budgetAmount",Y),ie(Y,M.values.biddingType)},mb:"xs",color:"blue"}),t.jsx(g,{size:"xs",c:"dimmed",mb:"lg",children:e("adLauncher.openaiManaged.setup.budgetHelp",{daily:me(Q),maxDaily:me(_e),maxWeekly:me(te),defaultValue:"You'll spend an average of USD {{daily}} per day. Max daily spend USD {{maxDaily}}; max weekly USD {{maxWeekly}}."})}),t.jsx(g,{fw:600,mb:"xs",children:e("adLauncher.openaiManaged.setup.duration",{defaultValue:"Duration"})}),t.jsx(at,{min:Ai,max:dl,mb:"xs",...M.getInputProps("durationDays")}),t.jsx(Ln,{min:Ai,max:dl,value:M.values.durationDays,onChange:Y=>M.setFieldValue("durationDays",Y),marks:[{value:2,label:"2d"},{value:30,label:"30d"},{value:60,label:"60d"},{value:90,label:"90d"}],color:"blue"})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsx(g,{fw:600,mb:"sm",children:e("adLauncher.openaiManaged.setup.biddingSection",{defaultValue:"Bidding & schedule"})}),t.jsx(Re,{label:e("adLauncher.openaiAdLauncher.fields.biddingType",{defaultValue:"Bidding type"}),data:F,mb:"sm",allowDeselect:!1,comboboxProps:{withinPortal:!0}
98,value:M.values.biddingType,onChange:Y=>{const ce=Ra(Y||"clicks");M.setFieldValue("biddingType",ce),M.setFieldValue("billingEvent",ta(ce)),M.setFieldValue("bidStrategy",Bn(ce,{biddingType:M.values.biddingType,bidStrategy:M.values.bidStrategy})),ie(M.values.budgetAmount,ce)}}),M.values.biddingType==="conversions"&&t.jsxs(ae,{gap:"xs",mb:"sm",children:[t.jsx(Re,{label:e("adLauncher.openaiAdLauncher.pixels.label"),description:e("adLauncher.openaiAdLauncher.pixels.description"),withAsterisk:!0,placeholder:e(C?"adLauncher.openaiAdLauncher.pixels.loading":"adLauncher.openaiAdLauncher.pixels.placeholder"),data:y,searchable:!0,clearable:!0,comboboxProps:{withinPortal:!0},value:M.values.conversionEventSettingIds[0]||null,onChange:Y=>{M.setFieldValue("conversionEventSettingIds",Y?[Y]:[])},error:M.errors.conversionEventSettingIds,nothingFoundMessage:e("adLauncher.openaiAdLauncher.pixels.empty"),"data-managed-field":"conversionEventSettingIds"}),t.jsx(Me,{variant:"subtle",size:"xs",onClick:()=>D(!0),children:e("adLauncher.openaiAdLauncher.pixels.create")}),k&&t.jsx(g,{component:"pre",size:"xs",style:{whiteSpace:"pre-wrap"},children:k})]}),t.jsx(Xn,{label:e("adLauncher.openaiAdLauncher.fields.locationsInclude"),description:e("adLauncher.openaiAdLauncher.fields.locationsIncludeHint"),placeholder:e("adLauncher.openaiAdLauncher.fields.locationsIncludePlaceholder"),items:M.values.includedLocations,getKey:Y=>Y.id,getLabel:Y=>Y.label||Y.name,onRemove:Y=>M.setFieldValue("includedLocations",M.values.includedLocations.filter(ce=>ce.id!==Y)),suggestions:B,loading:m.isPending,onSearch:Y=>ne(Y,"include"),onSelect:Y=>{M.values.includedLocations.some(ce=>ce.id===Y.id)||M.setFieldValue("includedLocations",[...M.values.includedLocations,Y])},nothingFound:e("adLauncher.openaiAdLauncher.fields.locationEmpty")}),M.errors.includedLocations&&t.jsx(g,{size:"xs",c:"red",mt:4,"data-managed-field":"includedLocations",children:String(M.errors.includedLocations)}),t.jsx(Xn,{label:e("adLauncher.openaiAdLauncher.fields.locationsExclude"),description:e("adLauncher.openaiAdLauncher.fields.locationsExcludeHint"),placeholder:e("adLauncher.openaiAdLauncher.fields.locationsExcludePlaceholder"),items:M.values.excludedLocations,getKey:Y=>Y.id,getLabel:Y=>Y.label||Y.name,onRemove:Y=>M.setFieldValue("excludedLocations",M.values.excludedLocations.filter(ce=>ce.id!==Y)),suggestions:J,loading:m.isPending,onSearch:Y=>ne(Y,"exclude"),onSelect:Y=>{M.values.excludedLocations.some(ce=>ce.id===Y.id)||M.setFieldValue("excludedLocations",[...M.values.excludedLocations,Y])},nothingFound:e("adLauncher.openaiAdLauncher.fields.locationEmpty")}),t.jsx(Yt,{mt:"sm",mb:"sm",label:e("adLauncher.openaiAdLauncher.fields.platforms"),description:e("adLauncher.openaiAdLauncher.fields.platformsHint"),placeholder:e("adLauncher.openaiAdLauncher.options.platformsAll"),data:w,comboboxProps:{withinPortal:!0},...M.getInputProps("platforms")}),t.jsx(g,{fw:600,size:"sm",mt:"xs",children:e("adLauncher.openaiAdLauncher.fields.customAudiences")}),t.jsx(Xn,{label:e("adLauncher.openaiAdLauncher.fields.audienceInclude"),description:e("adLauncher.openaiAdLauncher.fields.audienceIncludeHint"),placeholder:e("adLauncher.openaiAdLauncher.fields.audienceSearchPlaceholder"),items:M.values.includedAudiences,getKey:Y=>Y.id,getLabel:Y=>Y.name,onRemove:Y=>M.setFieldValue("includedAudiences",M.values.includedAudiences.filter(ce=>ce.id!==Y)),suggestions:V,loading:m.isPending,onSearch:Y=>X(Y,"include"),onSelect:Y=>{M.values.includedAudiences.some(ce=>ce.id===Y.id)||M.setFieldValue("includedAudiences",[...M.values.includedAudiences,Y])},nothingFound:e("adLauncher.openaiAdLauncher.fields.audienceEmpty")}),M.errors.includedAudiences&&t.jsx(g,{size:"xs",c:"red",mt:4,"data-managed-field":"includedAudiences",children:String(M.errors.includedAudiences)}),t.jsx(Xn,{label:e("adLauncher.openaiAdLauncher.fields.audienceExclude"),description:e("adLauncher.openaiAdLauncher.fields.audienceExcludeHint"),placeholder:e("adLauncher.openaiAdLauncher.fields.audienceSearchPlaceholder"),items:M.values.excludedAudiences,getKey:Y=>Y.id,getLabel:Y=>Y.name,onRemove:Y=>M.setFieldValue("excludedAudiences",M.values.excludedAudiences.filter(ce=>ce.id!==Y)),suggestions:L,loading:m.isPending,onSearch:Y=>X(Y,"exclude"),onSelect:Y=>{M.values.excludedAudiences.some(ce=>ce.id===Y.id)||M.setFieldValue("excludedAudiences",[...M.values.excludedAudiences,Y])},nothingFound:e("adLauncher.openaiAdLauncher.fields.audienceEmpty")}),M.values.biddingType!=="impressions"&&t.jsxs(Ha.Group,{mb:"sm",mt:"sm",label:e("adLauncher.openaiAdLauncher.fields.bidStrategy",{defaultValue:"Bid strategy"}),value:M.values.bidStrategy,onChange:Y=>M.setFieldValue("bidStrategy",Y),children:[t.jsx(Ha,{mt:"xs",value:cd(M.values.biddingType),label:e("adLauncher.openaiAdLauncher.options.maximizeResults",{defaultValue:"Maximize results"}),description:e("adLauncher.openaiAdLauncher.fields.maximizeResultsHint",{defaultValue:"We'll automatically adjust your bid to get the most results from your budget."})}),t.jsx(Ha,{mt:"sm",value:"fixed_bid",label:M.values.biddingType==="conversions"?e("adLauncher.openaiAdLauncher.options.manualMaxCpa",{defaultValue:"Manual: Max CPA"}):e("adLauncher.openaiAdLauncher.options.manualMaxCpc",{defaultValue:"Manual: Max CPC"})})]}),(M.values.biddingType==="impressions"||!sa(M.values.bidStrategy))&&t.jsx(at,{label:M.values.biddingType==="impressions"?e("adLauncher.openaiAdLauncher.fields.maxCpm",{defaultValue:"Maximum CPM bid"}):M.values.biddingType==="conversions"?e("adLauncher.openaiAdLauncher.fields.targetCpa",{defaultValue:"Target CPA (USD)"}):e("adLauncher.openaiAdLauncher.fields.maxCpc",{defaultValue:"Maximum CPC bid"}),description:M.values.biddingType==="impressions"?e("adLauncher.openaiAdLauncher.fields.maxCpmHint",{defaultValue:"Set the maximum amount you'll pay per 1,000 impressions. A higher bid can win more auctions."}):M.values.biddingType==="conversions"?e("adLauncher.openaiAdLauncher.fields.targetCpaHint",{defaultValue:"Target cost per conversion. Suggested from daily budget until you edit."}):e("adLauncher.openaiAdLauncher.fields.maxCpcHint",{defaultValue:"Set the maximum amount you'll pay per
98click."}),min:M.values.biddingType==="impressions"?ma:ga,max:M.values.biddingType==="impressions"?fa:void 0,decimalScale:2,mb:"md",prefix:"$","data-managed-field":"maxBid",...M.getInputProps("maxBid"),onChange:Y=>{M.setFieldValue("maxBid",Number(Y)||0),M.setFieldValue("maxBidUserEdited",!0)}}),t.jsx(qa,{mb:"sm",label:e("adLauncher.openaiAdLauncher.fields.tracking",{defaultValue:"Tracking parameters"}),description:e("adLauncher.openaiAdLauncher.fields.trackingHint",{defaultValue:"Optional. Added to your link when someone clicks your ad. Supported placeholders: {campaign_id}, {ad_group_id}, {ad_id}, {ad_account_id}. OpenAI appends {oppref} automatically â do not include it."}),minRows:2,...M.getInputProps("trackingTemplate")}),t.jsx(qa,{mb:"md",label:e("adLauncher.openaiAdLauncher.fields.contextHints",{defaultValue:"Context hints (optional)"}),description:e("adLauncher.openaiAdLauncher.fields.contextHintsHint",{defaultValue:"Describe the conversations, topics, or keywords where your products or services may be relevant; these hints guide matching but aren't exact-match targeting rules."}),placeholder:e("adLauncher.openaiAdLauncher.fields.contextHintsPlaceholder",{defaultValue:"Enter some context hints"}),minRows:2,...M.getInputProps("contextHints")}),t.jsx(g,{size:"sm",fw:600,mb:6,children:e("adLauncher.openaiManaged.setup.schedule",{defaultValue:"Schedule"})}),t.jsx(La,{fullWidth:!0,mb:"sm",data:[{value:"today",label:e("adLauncher.openaiManaged.setup.startToday",{defaultValue:"Start today"})},{value:"pick",label:e("adLauncher.openaiManaged.setup.pickDate",{defaultValue:"Pick a date"})}],value:M.values.scheduleMode,onChange:Y=>M.setFieldValue("scheduleMode",Y)}),M.values.scheduleMode==="pick"&&t.jsxs(U,{gap:"sm",mb:"sm",direction:c?"column":"row",children:[t.jsx(an,{style:{flex:1},label:e("adLauncher.openaiAdLauncher.fields.startDate",{defaultValue:"Start date"}),withAsterisk:!0,"data-managed-field":"startDate",value:M.values.startDate?new Date(`${M.values.startDate}T00:00:00`):null,onChange:Y=>{if(!Y){M.setFieldValue("startDate","");return}const ce=Y instanceof Date?Y:new Date(Y),Ie=ce.getFullYear(),fe=String(ce.getMonth()+1).padStart(2,"0"),Ee=String(ce.getDate()).padStart(2,"0");M.setFieldValue("startDate",`${Ie}-${fe}-${Ee}`)},error:M.errors.startDate}),t.jsx(pe,{style:{flex:1},label:e("adLauncher.openaiAdLauncher.fields.startTime",{defaultValue:"Start time"}),description:e("adLauncher.openaiAdLauncher.fields.startTimeTz",{tz:_s(),defaultValue:"Timezone: {{tz}}"}),type:"time",...M.getInputProps("startTime")})]}),t.jsx(rt,{mt:"sm",label:e("adLauncher.openaiManaged.setup.activateCampaign"),description:e("adLauncher.openaiManaged.setup.pausedDefault"),...M.getInputProps("campaignStatusOnLaunch",{type:"checkbox"})}),t.jsx(rt,{mt:"sm",label:e("adLauncher.openaiManaged.setup.activateAdGroup"),description:e("adLauncher.openaiManaged.setup.pausedDefault"),...M.getInputProps("adGroupActiveOnLaunch",{type:"checkbox"})})]})]}),t.jsxs(ae,{gap:"md",style:{width:c?"100%":320,flexShrink:0,alignSelf:"flex-start"},children:[t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"lg",bg:"white",children:[t.jsx(g,{fw:700,mb:"sm",children:e("adLauncher.openaiManaged.setup.summaryTitle",{defaultValue:"What you're launching"})}),t.jsxs(ae,{gap:8,children:[t.jsx(Rn,{label:e("adLauncher.openaiManaged.setup.platform",{defaultValue:"Platform"}),value:e("adLauncher.openaiManaged.setup.platformValue",{defaultValue:"OpenAI - Managed"})}),t.jsx(Rn,{label:e("adLauncher.openaiManaged.setup.objective",{defaultValue:"Objective"}),value:Ns(M.values.biddingType)}),t.jsx(Rn,{label:e("adLauncher.openaiManaged.setup.campaign",{defaultValue:"Campaign"}),value:M.values.campaignName}),t.jsx(Rn,{label:e("adLauncher.openaiManaged.setup.adGroup",{defaultValue:"Ad Group"}),value:M.values.adGroupName}),t.jsx(Rn,{label:e("adLauncher.openaiManaged.setup.ads",{defaultValue:"Ads"}),value:ye}),t.jsx(Rn,{label:e("adLauncher.openaiManaged.setup.status",{defaultValue:"Status"}),value:M.values.campaignStatusOnLaunch?e("adLauncher.openaiManaged.setup.activeOnLaunch",{defaultValue:"Active on launch"}):e("adLauncher.openaiManaged.setup.pausedOnLaunch",{defaultValue:"Paused on launch"})})]})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"lg",bg:"white",children:[t.jsx(g,{fw:700,mb:"sm",children:e("adLauncher.openaiManaged.setup.priceBreakdown",{defaultValue:"Price Breakdown"})}),t.jsxs(ae,{gap:8,children:[t.jsx(Rn,{label:e("adLauncher.openaiManaged.setup.dailyBudget",{defaultValue:"Daily Budget"}),value:`$${me(Q)}`}),t.jsx(Rn,{label:e("adLauncher.openaiManaged.setup.duration",{defaultValue:"Duration"}),value:`${j} ${e("adLauncher.openaiManaged.setup.days",{defaultValue:"days"})}`}),t.jsx(Rn,{label:e("adLauncher.openaiManaged.setup.adBudget",{defaultValue:"Ad Budget"}),value:`$${me(q)}`}),t.jsxs(U,{justify:"space-between",align:"flex-start",children:[t.jsxs(ae,{gap:2,children:[t.jsx(g,{size:"sm",c:"dimmed",children:e("adLauncher.openaiManaged.setup.om
98nekyFee",{defaultValue:"Omneky fee 12%"})}),t.jsx(g,{size:"xs",c:"dimmed",children:e("adLauncher.openaiManaged.setup.feeHint",{defaultValue:"Added on top of your ad budget. You pay the ad budget plus 12%."})})]}),t.jsxs(g,{size:"sm",fw:600,children:["$",me(se)]})]})]}),t.jsx(_t,{my:"sm"}),t.jsxs(U,{justify:"space-between",children:[t.jsx(g,{fw:700,c:He,children:e("adLauncher.openaiManaged.setup.totalDue",{defaultValue:"Total Due today"})}),t.jsxs(g,{fw:800,size:"lg",c:He,children:["$",me(le)]})]})]})]})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>n(ct(Ue.CAMPAIGN)),onNext:ge})]}),t.jsxs(Ya,{opened:P,onClose:()=>D(!1),title:e("adLauncher.openaiAdLauncher.pixels.createTitle"),children:[t.jsx(pe,{label:e("adLauncher.openaiAdLauncher.pixels.nameLabel"),value:G,onChange:Y=>_(Y.currentTarget.value),mb:"md"}),t.jsxs(xt,{justify:"flex-end",children:[t.jsx(Me,{variant:"default",onClick:()=>D(!1),children:e("common.cancel",{defaultValue:"Cancel"})}),t.jsx(Me,{loading:O,onClick:()=>void ee(),children:e("adLauncher.openaiAdLauncher.pixels.createSubmit")})]})]})]})}function Rn({label:e,value:n}){return t.jsxs(U,{justify:"space-between",gap:"sm",children:[t.jsx(g,{size:"sm",c:"dimmed",children:e}),t.jsx(g,{size:"sm",fw:600,ta:"right",style:{maxWidth:"60%"},lineClamp:2,children:n})]})}function ll({title:e,hint:n,helperText:a,values:i,field:s,min:r,max:o,maxChars:c,showCharCounter:d,preferredMax:m,disabled:h,form:p,onChangePersist:l,onRegenerateSection:b,onRegenerateItem:u,onAdd:y,onRemove:I,regenerateLabel:C,addLabel:E}){const P=i.length>r,D=i.length<o;return t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsxs(U,{justify:"space-between",align:"center",mb:"sm",children:[t.jsxs(A,{children:[t.jsxs(g,{fw:600,children:[e," ",t.jsx(g,{span:!0,size:"sm",c:"dimmed",fw:500,children:n})]}),a?t.jsx(g,{size:"xs",c:"dimmed",mt:2,children:a}):null]}),t.jsxs(Ht,{onClick:b,disabled:h,style:{color:He,fontSize:12,fontWeight:600,display:"inline-flex",alignItems:"center",gap:4},children:[t.jsx(Ts,{size:14}),C]})]}),i.map((G,_)=>t.jsxs(A,{mb:"xs",children:[t.jsxs(U,{gap:"xs",align:"center",children:[t.jsx(pe,{style:{flex:1},disabled:h,maxLength:c,"data-managed-field":`${s}.${_}`,...p.getInputProps(`${s}.${_}`),onChange:O=>{const f=O.currentTarget.value;p.setFieldValue(`${s}.${_}`,f);const k=p.values[s].map((R,B)=>B===_?f:R);l({headlines:s==="headlines"?k:p.values.headlines,descriptions:s==="descriptions"?k:p.values.descriptions})},error:p.errors[`${s}.${_}`]||p.errors[s]?p.errors[`${s}.${_}`]||!0:void 0}),t.jsx(gt,{variant:"subtle",color:"gray",disabled:h,onClick:()=>u(_),"aria-label":"Regenerate",children:t.jsx(Ts,{size:16})}),o>r&&t.jsx(gt,{variant:"subtle",color:"gray",disabled:h||!P,onClick:()=>I(_),"aria-label":"Remove",children:t.jsx(Us,{size:16})})]}),d?t.jsx(fo,{value:p.values[s][_]||"",preferredMax:m??c,hardMax:c}):null]},`${s}-${_}`)),p.errors[s]&&t.jsx(g,{c:"var(--mantine-color-error)",size:"xs",mb:4,children:String(p.errors[s])}),t.jsxs(Me,{variant:"subtle",size:"xs",leftSection:t.jsx(g,{size:"sm",children:"+"}),disabled:h||!D,onClick:y,style:{color:D?He:void 0},children:[E," ",i.length," / ",o]})]})}const gn=2,Zn=5,bn=1,ws=1;function en(){return{headlines:Array.from({length:gn},()=>""),descriptions:Array.from({length:bn},()=>"")}}function DL(e){var c,d,m,h;const n=(((c=e.Headlines)==null?void 0:c[0])||((d=e.subHeadline)==null?void 0:d[0])||"").trim(),a=(((m=e.Headlines)==null?void 0:m[1])||((h=e.subHeadline)==null?void 0:h[1])||"").trim(),i=Pi(e),s=en().headlines;s[0]=ia(n||i.title),s[1]=ia(a);const r=en().descriptions,o=i.body.trim();return r[0]=ui(o&&o!==s[0]?o:a&&a!==s[0]?"":o),{headlines:s,descriptions:r}}function PL(e,n,a){var c,d,m,h;const i=((e==null?void 0:e.headlines)??[]).filter(p=>p.trim()).length,s=((e==null?void 0:e.descriptions)??[]).filter(p=>p.trim()).length;if(i===0){const p=[...n.headlines];for(;p.length<gn;)p.push("");const l=s===0?[...n.descriptions]:[...(e==null?void 0:e.descriptions)??en().descriptions];for(;l.length<bn;)l.push("");return!((c=l[0])!=null&&c.trim())&&((d=n.descriptions[0])!=null&&d.trim())&&(l[0]=n.descriptions[0]),{headlines:p.slice(0,Zn),descriptions:l}}const r=[...(e==null?void 0:e.headlines)??en().headlines];for(;r.length<gn;)r.push("");
98n.headlines.forEach((p,l)=>{var b;l>=Zn||p.trim()&&(l<r.length?(b=r[l])!=null&&b.trim()||(r[l]=p):r.push(p))});const o=[...(e==null?void 0:e.descriptions)??en().descriptions];for(;o.length<bn;)o.push("");return!((m=o[0])!=null&&m.trim())&&((h=n.descriptions[0])!=null&&h.trim())&&(o[0]=n.descriptions[0]),{headlines:r.slice(0,Zn),descriptions:o.slice(0,ws)}}function Os(e){var a;const n=((e==null?void 0:e.headlines)??[]).map(i=>ia(i)).filter(i=>i.trim().length>0).slice(0,Zn);return{title:n[0]||"",body:ui(((a=e==null?void 0:e.descriptions)==null?void 0:a.find(i=>i.trim()))||""),headlines:n}}function ul(e){return Object.fromEntries(Object.entries(e).map(([n,a])=>[n,Os(a)]))}function hl(e,n){var r,o,c,d;if(n){const m=!!(((r=n.Headlines)==null?void 0:r[0])||((o=n.subHeadline)==null?void 0:o[0])||"").trim(),h=!!(((c=n.Headlines)==null?void 0:c[1])||((d=n.subHeadline)==null?void 0:d[1])||"").trim(),p=Pi(n);if(!m||!h||Ds(p)){const l=Os(e),b=((e==null?void 0:e.headlines)??[]).filter(u=>u.trim()).length;return!(l.title&&l.body&&b>=gn&&((e==null?void 0:e.descriptions)??[]).filter(u=>u.trim()).length>=bn&&l.title!==l.body)}}const a=Os(e),i=((e==null?void 0:e.headlines)??[]).filter(m=>m.trim()).length,s=((e==null?void 0:e.descriptions)??[]).filter(m=>m.trim()).length;return!a.title||!a.body||i<gn||s<bn||a.title===a.body}const OL=["headlines","descriptions","destinationUrl"];function pl(e,n){return n||(e?e.includes("public/")?`${dt}${e}`:`${dt}public/${e}`:"")}function RL(){var H,F;const{t:e}=de(),n=xe(),{brandId:a}=ve(),{data:i}=Ot(a),{brandOverviewData:s}=re(w=>w.library),{shellStyle:r,formStyle:o,scrollStyle:c,isMobile:d}=ze({pinFooter:!0}),{persist:m}=Rt(),{selectedAds:h,openai:{campaign:p,adCopyByAd:l,resizedMediaByAd:b}}=re(w=>w.adLauncher),u=S.useMemo(()=>h.filter(w=>!Te(w.previewStorageKey)),[h]),[y,I]=S.useState(0),[C,E]=S.useState(!1),P=S.useRef(0),D=Math.min(y,Math.max(u.length-1,0)),G=u[D],_=G?String(G.id):"",O=_?l[_]:void 0,f=wt({initialValues:{headlines:(H=O==null?void 0:O.headlines)!=null&&H.length?[...O.headlines]:en().headlines,descriptions:(F=O==null?void 0:O.descriptions)!=null&&F.length?[...O.descriptions]:en().descriptions,destinationUrl:(p==null?void 0:p.destinationUrl)||(s==null?void 0:s.url)||""}}),k=(w,K)=>{var M,ee;f.setValues({headlines:((M=w.headlines)==null?void 0:M.length)>=gn?[...w.headlines]:en().headlines,descriptions:((ee=w.descriptions)==null?void 0:ee.length)>=bn?[...w.descriptions]:en().descriptions,destinationUrl:K??(p==null?void 0:p.destinationUrl)??f.values.destinationUrl??""})};S.useEffect(()=>{if(!_)return;const w=l[_]??en();k(w)},[_]),S.useEffect(()=>{if(!a||!(i!=null&&i.name)||u.length===0)return;const w=P.current+1;P.current=w;let K=!1;return(async()=>{var Q,j,q;E(!0);const ee={...l};for(const se of u){const le=String(se.id);hl(ee[le],se)&&(ee[le]=DL(se))}if(K||P.current!==w)return;n(Ud(ee));let ne=(p==null?void 0:p.destinationUrl)||f.values.destinationUrl||"";if(!ne)try{const se=await n(ii({brandId:a}));ne=(se&&typeof se=="object"&&"payload"in se?(Q=se.payload)==null?void 0:Q.url:void 0)||(s==null?void 0:s.url)||""}catch{ne=(s==null?void 0:s.url)||""}!K&&ne&&p&&n(ka({...p,destinationUrl:ne}));const X={...ee};for(const se of u){if(K||P.current!==w)return;const le=String(se.id);if(!hl(X[le],se))continue;const _e=await wc({adUrl:un(se),brandId:a,brandName:i.name,language:((j=i.language)==null?void 0:j.langCode)||"us-en"});if(!_e)continue;const te=PL(X[le],_e);X[le]=te,n(Vi({adId:le,copy:te}))}if(K||P.current!==w)return;n(Ud(X));const ie=X[String((q=u[D])==null?void 0:q.id)]??en();k(ie,ne||void 0),E(!1)})(),()=>{K=!0}},[a,u.map(w=>w.id).join(","),i==null?void 0:i.name]);const R=w=>{_&&n(Vi({adId:_,copy:{headlines:(w==null?void 0:w.headlines)??f.values.headlines,descriptions:(w==null?void 0:w.descriptions)??f.values.descriptions}}))},B=async()=>{var w;return!G||!a||!(i!=null&&i.name)?null:wc({adUrl:un(G),brandId:a,brandName:i.name,language:((w=i.language)==null?void 0:w.langCode)||"us-en",generationId:oi()})},$=async w=>{if(_){E(!0);try{const K=await B();if(!K)return;if(w==="descriptions"){const X=K.descriptions.filter(j=>j.trim());if(!X.length)return;const ie=f.values.descriptions.map((j,q)=>X[q]||X[q%X.length]),Q={headlines:[...f.values.headlines],descriptions:ie,destinationUrl:f.values.destinationUrl};f.setValues(Q),R({headlines:Q.headlines,descriptions:Q.descriptions});return}const M=K.headlines.filter(X=>X.trim());if(!M.length)return;let ee=M.length>=f.values.headlines.length?M.slice(0,Zn):f.values.headlines.map((X,ie)=>M[ie]||M[ie%M.length]);for(;ee.length<gn;)ee.push("");const ne={headlines:ee,descriptions:[...f.values.descriptions],destinationUrl:f.values.destinationUrl};f.setValues(ne),R({headlines:ne.headlines,descriptions:ne.descriptions})}finally{E(!1)}}},J=async(w,K)=>{if(_){E(!0);try{const M=await B();if(!M)return;if(w==="headlines"){const ee=M.headlines.filter(Q=>Q.trim()),ne=ee[K]||ee[0];if(!(ne!=null&&ne.trim()))return;const ie={headlines:f.values.headlines.map((Q,j)=>j===K?ia(ne):Q),descriptions:[...f.values.descriptions],destinationUrl:f.values.destinationUrl};f.setValues(ie),R({headlines:ie.headlines,descriptions:ie.descriptions})}if(w==="descriptions"){const ee=M.descriptions.filter(Q=>Q.trim()),ne=ee[K]||ee[0];if(!(ne!=null&&ne.trim()))return;const X=f.values.descriptions.map((Q,j)=>j===K?ui(ne):Q),ie={headlines:[...f.values.headlines],descriptions:X,destinationUrl:f.values.destinationUrl};f.setValues(ie),R({headlines:ie.headlines,descriptions:ie.descriptions})}}finally{E(!1)}}},z=w=>{const K=w==="headlines"?Zn:ws;if(f.values[w].length>=K)return;f.insertListItem(w,"");const M=[...f.values[w],""];R({headlines:w==="headlines"?M:f.values.headlines,descriptions:w==="descriptions"?M:f.values.descriptions})},V=(w,K)=>{const M=w==="headlines"?gn:bn;if(f.values[w].length<=M)return;f.removeListItem(w,K);const ee=f.values[w].filter((ne,X)=>X!==K);R({headlines:w==="headlines"?ee:f.values.headlines,descriptions:w==="descriptions"?ee:f.values.descriptions})},N=e("adLauncher.common.required",{defaultValue:"Required"}),L=()=>{_&&n(Vi({adId:_,copy:{headlines:f.values.headlines,descriptions:f.values.descriptions}}));const w={},K=f.values.destinationUrl.trim();K?Wa.test(K)?K.toLowerCase().startsWith("https://")?_i(K)&&(w.destinationUrl=e("adLauncher.openaiAdLauncher.validation.opprefReserved",{defaultValue:"Do not include {oppref} â OpenAI appends it automatically."})):w.destinationUrl=e("adLauncher.openaiAdLauncher.validation.destinationUrlHttps",{defaultValue:"Destination URL must start with https://"}):w.destinationUrl=e("adLauncher.launchAd.validations.urlInvalid",{defaultValue:"Enter a valid URL"}):w.destinationUrl=e("adLauncher.launchAd.validations.url",{defaultValue:"URL is required"});const M={...l,..._?{[_]:{headlines:f.values.headlines,descriptions:f.values.descriptions}}:{}};for(let ee=0;ee<u.length;ee+=1){const ne=u[ee],X=M[String(ne.id)]??en(),ie=X.headlines.filter(se=>se.trim()).length,Q=X.descriptions.filter(se=>se.trim()).length;
98if(ie<gn){I(ee),X.headlines.forEach((se,le)=>{se.trim()||(w[`headlines.${le}`]=N)}),w.headlines=N;break}if(Q<bn){I(ee),X.descriptions.forEach((se,le)=>{se.trim()||(w[`descriptions.${le}`]=N)}),w.descriptions=N;break}const j=X.headlines.find(se=>se.trim())||"",q=X.descriptions.find(se=>se.trim())||"";if(j.length>Qn){I(ee),w.headlines=e("adLauncher.openaiAdLauncher.validation.titleRequired",{defaultValue:"Title is required (3â50 characters)"});break}if(q.length>Fn){I(ee),w.descriptions=e("adLauncher.openaiAdLauncher.validation.bodyRequired",{defaultValue:"Body is required (3â100 characters)"});break}}if(f.clearErrors(),f.setErrors(w),Object.keys(w).length>0){da(w,OL);return}p&&n(ka({...p,destinationUrl:K})),n(ct(Ue.REVIEW)),m()},x=f.values.headlines.find(w=>w.trim())||e("adLauncher.openaiManaged.adCopy.headline",{defaultValue:"Headline"}),v=f.values.descriptions.find(w=>w.trim())||"",T=G?pl(G.previewStorageKey,b[String(G.id)]):"";return t.jsx(A,{style:r,children:t.jsxs(A,{style:o,children:[t.jsx(A,{style:c,children:t.jsxs(A,{style:{maxWidth:1100,margin:"0 auto",width:"100%"},px:d?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.openaiManaged.adCopy.title",{defaultValue:"Ad Copy"})}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"md",children:e("adLauncher.openaiManaged.adCopy.subtitle",{defaultValue:"Generated for you â rewrite any line, or regenerate the lot."})}),t.jsx(g,{size:"sm",fw:600,mb:"xs",children:e("adLauncher.openaiManaged.adCopy.adOf",{current:u.length?D+1:0,total:u.length,defaultValue:"Ad {{current}} of {{total}}"})}),t.jsx(U,{gap:"sm",mb:"lg",wrap:"wrap",children:u.map((w,K)=>t.jsx(A,{onClick:()=>{_&&n(Vi({adId:_,copy:{headlines:f.values.headlines,descriptions:f.values.descriptions}})),I(K)},style:{width:56,height:56,borderRadius:8,overflow:"hidden",border:D===K?`2px solid ${He}`:"1px solid var(--mantine-color-gray-3)",cursor:"pointer"},children:t.jsx(ot,{src:pl(w.previewStorageKey,b[String(w.id)]),h:56,w:56,fit:"cover",alt:""})},w.id))}),t.jsxs(U,{gap:"xl",direction:d?"column":"row",align:"flex-start",children:[t.jsxs(ae,{style:{flex:1,minWidth:0},gap:"md",children:[C&&t.jsx(g,{size:"sm",c:"dimmed",children:e("adLauncher.adsetSettings.generatingCopy",{defaultValue:"Generating copyâ¦"})}),t.jsx(ll,{title:e("adLauncher.openaiManaged.adCopy.headline",{defaultValue:"Headline"}),hint:e("adLauncher.openaiManaged.adCopy.headlineHint",{defaultValue:"{{min}} required · max {{max}}",min:gn,max:Zn}),values:f.values.headlines,field:"headlines",min:gn,max:Zn,maxChars:Qn,disabled:C||!_,form:f,onChangePersist:w=>R(w),onRegenerateSection:()=>{$("headlines").catch(()=>{})},onRegenerateItem:w=>{J("headlines",w).catch(()=>{})},onAdd:()=>z("headlines"),onRemove:w=>V("headlines",w),regenerateLabel:e("adLauncher.openaiManaged.adCopy.regenerateAll",{defaultValue:"Regenerate"}),addLabel:e("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew",{defaultValue:"Add New"})}),t.jsx(ll,{title:e("adLauncher.openaiManaged.adCopy.description",{defaultValue:"Description"}),hint:e("adLauncher.openaiManaged.adCopy.descriptionHint",{defaultValue:"{{min}} required · max {{max}}",min:bn,max:ws}),helperText:e("adLauncher.openaiManaged.adCopy.descriptionHelper",{defaultValue:"Preferred â¤{{preferred}} characters. Hard max {{max}}.",preferred:oo,max:Fn}),values:f.values.descriptions,field:"descriptions",min:bn,max:ws,maxChars:Fn,showCharCounter:!0,preferredMax:oo,disabled:C||!_,form:f,onChangePersist:w=>R(w),onRegenerateSection:()=>{$("descriptions").catch(()=>{})},onRegenerateItem:w=>{J("descriptions",w).catch(()=>{})},onAdd:()=>z("descriptions"),onRemove:w=>V("descriptions",w),regenerateLabel:e("adLauncher.openaiManaged.adCopy.regenerateAll",{defaultValue:"Regenerate"}),addLabel:e("adLauncher.googleAdLauncher.adsetHeadlines.common.addNew",{defaultValue:"Add New"})}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",children:[t.jsx(g,{fw:600,mb:4,children:e("adLauncher.openaiManaged.adCopy.destination",{defaultValue:"Destination"})}),t.jsx(g,{size:"xs",c:"dimmed",mb:"sm",children:e("adLauncher.openaiManaged.adCopy.destinationHint",{defaultValue:"Tell us where to send people immediately after they tap or click your ad."})}),t.jsx(pe,{"data-managed-field":"destinationUrl",...f.getInputProps("destinationUrl"),onBlur:()=>{p&&n(ka({...p,destinationUrl:f.values.destinationUrl.trim()}))}})]})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"md",bg:"white",style:{width:d?"100%":360,flexShrink:0},children:[t.jsx(g,{fw:700,mb:"md",tt:"uppercase",size:"xs",c:"dimmed",ta:"center",children:e("adLauncher.openaiManaged.adCopy.adPreview",{defaultValue:"Ad Preview"})}),t.jsxs(U,{align:"center",justify:"center",gap:"xs",children:[t.jsx(gt,{variant:"subtle",radius:"xl",disabled:u.length<=1,onClick:()=>{_&&R({headlines:f.values.headlines,descriptions:f.values.descriptions}),I(w=>(w-1+u.length)%Math.max(u.length,1))},children:t.jsx(Fi,{size:18})}),t.jsx(A,{style:{flex:1,minWidth:0},children:t.jsx(xd,{imageUrl:T,brandName:(i==null?void 0:i.name)||"",title:x,body:v})}),t.jsx(gt,{variant:"subtle",radius:"xl",disabled:u.length<=1,onClick:()=>{_&&R({headlines:f.values.headlines,descriptions:f.values.descriptions}),I(w=>(w+1)%Math.max(u.length,1))},children:t.jsx(si,{size:18})})]}),u.length>0&&t.jsxs(g,{size:"xs",c:"dimmed",ta:"center",mt:"xs",children:[D+1," / ",u.length]})]})]}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.back",{defaultValue:"Back"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>{_&&R({headlines:f.values.headlines,descriptions:f.values.descriptions}),p&&n(ka({...p,destinationUrl:f.values.destinationUrl.trim()})),n(ct(Ue.SETUP))},onNext:L,nextDisabled:C||u.length===0})]})})}const zL=["campaignName","adGroupName"],GL=.12,gl=2;function FL(e,n){return n||(e?e.includes("public/")?`${dt}${e}`:`${dt}public/${e}`:"")}function BL(){const{t:e}=de(),n=xe();yt();const a=_n(),{brandId:i}=ve(),{data:s}=ri(),{data:r}=Ql((s==null?void 0:s.stripeCustomerId)||null),o=xn(),c=Bi(),d=En(),{shellStyle:m,formStyle:h,scrollStyle:p,isMobile:l}=ze({pinFooter:!0}),{selectedAds:b,openai:{campaign:u,adCopyByAd:y,resizedMediaByAd:I,durationDays:C,bid
98dingType:E}}=re(fe=>fe.adLauncher),{adInstanceItems:P}=re(fe=>fe.projectView),D=S.useMemo(()=>b.filter(fe=>!Te(fe.previewStorageKey)),[b]),[G,_]=S.useState((u==null?void 0:u.campaignName)||""),[O,f]=S.useState((u==null?void 0:u.adGroupName)||""),[k,R]=S.useState((u==null?void 0:u.adStatusOnLaunch)??!1),[B,$]=S.useState({}),[J,z]=S.useState(!1),[V,N]=S.useState(!1),L=e("adLauncher.common.required",{defaultValue:"Required"}),x=Math.max(Number(C)||gl,gl),v=Number(u==null?void 0:u.budgetAmount)||0,T=v*x,H=parseFloat((T*GL).toFixed(2)),F=parseFloat((T+H).toFixed(2)),w=Math.round(F*100),K=fe=>fe.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),M=o.isPending||J||V,ee=Ra((u==null?void 0:u.biddingType)||E),ne=Ns(ee),X=()=>{const fe={campaignName:G.trim()?G.trim().length<3?e("adLauncher.openaiAdLauncher.validation.campaignNameMin",{defaultValue:"Enter a campaign name with at least 3 characters."}):void 0:L,adGroupName:O.trim()?void 0:L};$(fe);const Ee={};fe.campaignName&&(Ee.campaignName=fe.campaignName),fe.adGroupName&&(Ee.adGroupName=fe.adGroupName);const W=Object.keys(Ee).length===0;return W||da(Ee,zL),W},ie=()=>{u&&n(ka({...u,campaignName:G.trim(),adGroupName:O.trim(),adStatusOnLaunch:k}))},Q=()=>{var Ge;const fe=(u==null?void 0:u.scheduleMode)==="today"||!(u!=null&&u.startDate)?ni():u.startDate,Ee=(u==null?void 0:u.startTime)||Di(),W=ki(fe,Ee)??Math.floor(Date.now()/1e3),oe=dd(W,x),ue=(u==null?void 0:u.trackingTemplate)||ja,Z=Bn(ee,u||void 0),De=cp({campaignName:G.trim()||(u==null?void 0:u.campaignName)||"Managed OpenAI Campaign",biddingType:ee,campaignDailyBudget:(u==null?void 0:u.budgetAmount)??v,campaignActive:(u==null?void 0:u.campaignStatusOnLaunch)??!1,includedLocations:(Ge=u==null?void 0:u.includedLocations)!=null&&Ge.length?u.includedLocations:[{...Va}],excludedLocations:(u==null?void 0:u.excludedLocations)??[],includedAudiences:(u==null?void 0:u.includedAudiences)??[],excludedAudiences:(u==null?void 0:u.excludedAudiences)??[],platforms:(u==null?void 0:u.platforms)??[],trackingTemplate:ue,conversionEventSettingIds:(u==null?void 0:u.conversionEventSettingIds)??[],startDate:fe,startTime:Ee,setEndDate:!1,endDate:"",endTime:"",adSetName:O.trim()||(u==null?void 0:u.adGroupName)||"Managed Ad Group",bidStrategy:Z,billingEventType:(u==null?void 0:u.billingEvent)||ta(ee),maxBidDollars:Number(u==null?void 0:u.maxBid)||0,adSetActive:(u==null?void 0:u.adGroupActiveOnLaunch)??!0,adGroupTrackingTemplate:ue,defaultDestinationUrl:(u==null?void 0:u.destinationUrl)||"",contextHints:(u==null?void 0:u.contextHints)||""});return De.campaign_spec.start_time=W,De.campaign_spec.end_time=oe,De},j=()=>{const fe=Q(),Ee=yd({ads:D,copyByAd:ul(y),shared:{url:(u==null?void 0:u.destinationUrl)||"",checked:k},resizedMediaByAd:I});return bd({mode:ht.CREATE_NEW_CAMPAIGN,draft:fe,brandId:i,channel:"openai",selectedCampaignId:"",selectedAdGroupId:"",adSpecs:Ee,isManaged:!0})},q=async()=>{var fe;if(i){N(!0);try{const Ee=Q();pp({brandId:i,openaiAdLauncherStepNumber:je.PAYMENT,openaiAdsSelectionBackStep:je.ADS,openaiAdLauncherFlow:ht.CREATE_NEW_CAMPAIGN,openaiLaunchSpecDraft:Ee,openaiCampaignDetailsForm:u?{campaignName:G.trim(),biddingType:ee,campaignDailyBudget:u.budgetAmount,campaignActive:u.campaignStatusOnLaunch,countries:(u.includedLocations??[{...Va}]).map(Z=>(Z.countryCode||Z.id).toUpperCase()).filter(Z=>/^[A-Z]{2}$/.test(Z)),includedLocations:(fe=u.includedLocations)!=null&&fe.length?u.includedLocations:[{...Va}],excludedLocations:u.excludedLocations??[],includedAudiences:u.includedAudiences??[],excludedAudiences:u.excludedAudiences??[],adSetName:O.trim(),billingEventType:u.billingEvent,maxBidDollars:u.maxBid,maxBidUserEdited:u.maxBidUserEdited,adSetActive:u.adGroupActiveOnLaunch,startDate:u.startDate,startTime:u.startTime,conversionEventSettingIds:u.conversionEventSettingIds??[],trackingTemplate:u.trackingTemplate||ja,bidStrategy:Bn(ee,u),defaultDestinationUrl:u.destinationUrl||"",contextHints:u.contextHints||"",platforms:u.platforms??[]}:null,openaiAdSpecsByAd:ul(y),openaiAdSpecsShared:{url:(u==null?void 0:u.destinationUrl)||"",checked:k}
98,openaiResizedMediaByAd:I,openaiManagedAccount:!0,openaiDurationDays:x,selectedLauncherAds:b||[],selectedAdLauncherChannel:["openai"],selectedAdLauncherCampaignId:"",selectedAdLauncherAdGroupId:"",selectedCampaignObjectives:ne});const{successUrl:W,cancelUrl:oe}=eu("setup",{returnTo:`/brands/${i}/ad-launcher?resumeOpenaiLaunch=1`}),ue=await tu({successUrl:W,cancelUrl:oe});nu(ue.url)}catch(Ee){console.error(Ee),he.show({title:e("adLauncher.openaiAdLauncher.payment.setupFailedTitle",{defaultValue:"Could not open card setup"}),message:e("adLauncher.openaiAdLauncher.payment.setupFailedMessage",{defaultValue:"Please try again or add a card in Settings."}),color:"red"}),N(!1)}}},se=async()=>{if(M||!X())return;if(!r){await q();return}const fe=s==null?void 0:s.stripeCustomerId;if(!fe){he.show({title:e("adLauncher.openaiManaged.review.paymentMissingTitle",{defaultValue:"Payment method missing"}),message:e("adLauncher.openaiManaged.review.paymentMissingMessage",{defaultValue:"Please add a payment method in Settings before continuing."}),color:"red"});return}ie(),z(!0),n(nn(!0)),n(Qs(!1));let Ee=null;try{const W=await li({stripeCustomerId:fe,amount:w,description:`OpenAI Managed Ad â ${x} day${x===1?"":"s"} campaign`,confirm:!0});Ee=(W==null?void 0:W.paymentIntentId)??null,n(ct(Ue.PROGRESS));const oe=await o.mutateAsync(j()),ue=Mn(oe),Z=Nn(D,ue,D.length);if(!ue.isFullSuccess){const De=kn(ue,e("adLauncher.launchAd.launchFailedFallback",{defaultValue:"Launch failed. Please try again."}),e);if(Oe(Xa,{brandId:i,error_message:De.message}),n(Qs(!0)),await c("failed",{campaignId:ue.campaignId||null,adsLaunchedCount:ue.adsLaunchedCount}),he.show({title:e("adLauncher.errors.partialTitle"),message:De.message,color:"red"}),Z.length){await Promise.all(Z.map(async we=>{we.id&&await d.mutateAsync({id:we.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const Ge=P==null?void 0:P.map(we=>Z.find(be=>be.id===we.id)?{...we,status:Fe.launched,updatedAt:new Date().toISOString()}:we);n(mt(Ge))}Ee&&ue.adsLaunchedCount===0&&(await ln(Ee).catch(()=>{}),he.show({title:e("adLauncher.openaiManaged.review.refundedTitle",{defaultValue:"Something went wrong"}),message:e("adLauncher.openaiManaged.review.refundedMessage",{defaultValue:"Your payment has been refunded. Please try again."}),color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})),n(nn(!1)),n(ct(Ue.REVIEW));return}if(Oe(Io,{brandId:i}),n(ct(Ue.SUCCESS)),await c("launched",{campaignId:ue.campaignId||null,adsLaunchedCount:ue.adsLaunchedCount}),Z.length){await Promise.all(Z.map(async Ge=>{Ge.id&&await d.mutateAsync({id:Ge.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const De=P==null?void 0:P.map(Ge=>Z.find(we=>we.id===Ge.id)?{...Ge,status:Fe.launched,updatedAt:new Date().toISOString()}:Ge);n(mt(De))}setTimeout(()=>{n(wi()),n(wn()),n(fn(!1))},1e3)}catch(W){await c("failed");const oe=cn(W,e("adLauncher.launchAd.launchFailedFallback",{defaultValue:"Launch failed. Please try again."}));Oe(Xa,{brandId:i,error_message:oe}),n(Qs(!0)),Ee?(await ln(Ee).catch(()=>{}),he.show({title:e("adLauncher.openaiManaged.review.refundedTitle",{defaultValue:"Something went wrong"}),message:e("adLauncher.openaiManaged.review.refundedMessage",{defaultValue:"Your payment has been refunded. Please try again."}),color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})):pi({title:e("adLauncher.openaiManaged.review.paymentFailedTitle",{defaultValue:"Payment failed"}),message:oe,onUpdateCard:()=>a(gi(i))}),n(nn(!1)),n(ct(Ue.REVIEW))}finally{z(!1),n(nn(!1))}},le=(u==null?void 0:u.scheduleMode)==="today"||!(u!=null&&u.startDate)?ni():u.startDate,_e=(u==null?void 0:u.startTime)||Di(),te=(u==null?void 0:u.timezone)||Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC",me=ee==="impressions"?e("adLauncher.openaiAdLauncher.options.objectiveReach",{defaultValue:"Reach"}):ee==="conversions"?e("adLauncher.openaiAdLauncher.options.biddingConversions",{defaultValue:"Conversions"}):e("adLauncher.openaiAdLauncher.options.objectiveClicks",{defaultValue:"Clicks"}),Le=ee==="impressions",ye=ee==="conversions",ge=!Le&&sa(u==null?void 0:u.bidStrategy),Ce=Le?e("adLauncher.openaiAdLauncher.fields.maxCpm",{defaultValue:"Maximum CPM bid"}):ge?e("adLauncher.openaiAdLauncher.fields.bidStrategy",{defaultValue:"Bid strategy"}):ye?e("adLauncher.openaiAdLauncher.fields.targetCpa",{defaultValue:"Target CPA (USD)"}):e("adLauncher.openaiAdLauncher.fields.maxCpc",{defaultValue:"Maximum CPC bid"}),Y=ge?e("adLauncher.openaiAdLauncher.options.maximizeResults",{defaultValue:"Maximize results"}):`$${K(Number(u==null?void 0:u.maxBid)||0)}`,ce=UL((u==null?void 0:u.destinationUrl)||""),Ie=[{label:e("adLauncher.openaiManaged.setup.platform",{defaultValue:"Platform"}),value:e("adLauncher.openaiManaged.review.platformValue",{defaultValue:"OpenAI Ads · Managed"})},{label:e("adLauncher.openaiManaged.setup.objective",{defaultValue:"Objective"}),value:me},{label:e("adLauncher.openaiManaged.review.budget",{defaultValue:"Budget"}),value:`$${K(v)} ${e("adLauncher.openaiManaged.setup.daily",{defaultValue:"daily"}).toLowerCase()} · ${x} ${e("adLauncher.openaiManaged.setup.days",{defaultValue:"days"})}`},{label:e("adLauncher.openaiManaged.review.campaignStatus",{defaultValue:"Campaign status"}),value:u!=null&&u.campaignStatusOnLaunch?e("adLauncher.openaiManaged.setup.activeOnLaunch",{defaultValue:"Active"}):e("adLauncher.openaiManaged.setup.pausedOnLaunch",{defaultValue:"Paused"})},{label:e("adLauncher.openaiManaged.review.start",{defaultValue:"Start"}),value:`${le} · ${HL(_e)} (${te})`},{label:Ce,value:Y},{label:e("adLauncher.openaiManaged.review.adGroupStatus",{defaultValue:"Ad group status"}),value:u!=null&&u.adGroupActiveOnLaunch?e("adLauncher.openaiManaged.setup.activeOnLaunch",{defaultValue:"Active"}):e("adLauncher.openaiManaged.setup.pausedOnLaunch",{defaultValue:"Paused"})}];return t.jsx(A,{style:m,children:t.jsxs(A,{style:h,children:[t.jsx(A,{style:p,children:t.jsxs(A,{style:{maxWidth:960,margin:"0 auto",width:"100%"},px:l?"md":0,children:[t.jsx(Be,{order:3,children:e("adLauncher.openaiManaged.review.title",{defaultValue:"Review and launch"})}),t.jsx(g,{size:"sm",c:"dimmed",mt:4,mb:"lg",children:e("adLauncher.openaiManaged.review.subtitle",{defaultValue:"Last look at everything before it goes live."})}),t.jsxs(U,{gap:"md",direction:l?"column":"row",mb:"md",children:[t.jsx(pe,{style:{flex:1},label:e("adLauncher.openaiManaged.setup.campaignName",{defaultValue:"Campaign Name"}),withAsterisk:!0,value:G,error:B.campaignName,"data-managed-field":"campaignName",onChange:fe=>{_(fe.currentTarget.value),B.campaignName&&$(Ee=>({...Ee,campaignName:void 0}))}}),t.jsx(pe,{style:{flex:1},label:e("adLauncher.openaiManaged.setup.adGroupName",{defaultValue:"Ad Group Name"}),withAsterisk:!0,value:O,error:B.adGroupName,"data-managed-field":"adGroupName",onChange:fe=>{f(fe.currentTarget.value),B.adGroupName&&$(Ee=>({...Ee,adGroupName:void 0}))}})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"lg",bg:"white",mb:"md",children:[t.jsxs(U,{justify:"space-between",align:"flex-start",ga
98p:"md",mb:"xs",children:[t.jsx(g,{fw:700,children:e("adLauncher.openaiManaged.review.managedAccountTitle",{defaultValue:"Omneky Managed OpenAI Ads Account"})}),t.jsx(Qe,{color:"teal",variant:"light",tt:"none",style:{flexShrink:0},children:e("adLauncher.openaiManaged.review.chargedOnce",{defaultValue:"Charged once, today"})})]}),t.jsx(g,{size:"sm",c:"dimmed",mb:"lg",maw:640,children:e("adLauncher.openaiManaged.review.managedAccountBody",{defaultValue:"Let Omneky's team manage your ChatGPT sponsored responses â handling optimisations, budgets and reporting."})}),t.jsxs(on,{cols:{base:2,sm:3,md:5},spacing:"md",children:[t.jsx(ps,{label:e("adLauncher.openaiManaged.setup.dailyBudget",{defaultValue:"Daily Budget"}),value:`$${K(v)}`}),t.jsx(ps,{label:e("adLauncher.openaiManaged.setup.duration",{defaultValue:"Duration"}),value:`${x} ${e("adLauncher.openaiManaged.setup.days",{defaultValue:"days"})}`}),t.jsx(ps,{label:e("adLauncher.openaiManaged.setup.adBudget",{defaultValue:"Ad Budget"}),value:`$${K(T)}`}),t.jsx(ps,{label:e("adLauncher.openaiManaged.setup.omnekyFee",{defaultValue:"Omneky fee 12%"}),value:`$${K(H)}`,hint:e("adLauncher.openaiManaged.setup.feeHint",{defaultValue:"Added on top of your ad budget. You pay the ad budget plus 12%."})}),t.jsxs(A,{p:"sm",style:{borderRadius:10,background:"rgba(51, 51, 153, 0.08)",border:"1px solid rgba(51, 51, 153, 0.15)"},children:[t.jsx(g,{size:"xs",c:"dimmed",mb:4,children:e("adLauncher.openaiManaged.setup.totalDue",{defaultValue:"Total Due today"})}),t.jsxs(g,{fw:800,size:"lg",c:He,children:["$",K(F)]})]})]})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"lg",bg:"white",mb:"md",children:[t.jsxs(U,{justify:"space-between",align:"center",mb:"md",children:[t.jsx(g,{fw:700,children:e("adLauncher.openaiManaged.review.campaignSettings",{defaultValue:"Campaign settings"})}),t.jsx(Ht,{onClick:()=>n(ct(Ue.SETUP)),style:{color:He,fontSize:13,fontWeight:600},children:e("adLauncher.openaiManaged.review.editSetup",{defaultValue:"Edit setup"})})]}),t.jsx(on,{cols:{base:1,sm:2,md:3},spacing:"lg",children:Ie.map(fe=>t.jsxs(A,{children:[t.jsx(g,{size:"xs",c:"dimmed",mb:2,children:fe.label}),t.jsx(g,{size:"sm",fw:600,children:fe.value})]},fe.label))})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"lg",bg:"white",mb:"md",children:[t.jsxs(U,{justify:"space-between",align:"center",mb:"sm",children:[t.jsx(g,{fw:700,children:e("adLauncher.openaiManaged.review.formatsTitle",{defaultValue:"Formats running"})}),t.jsx(Ht,{onClick:()=>n(ct(Ue.FORMATS)),style:{color:He,fontSize:13,fontWeight:600},children:e("adLauncher.openaiManaged.review.adjustCrops",{defaultValue:"Adjust crops"})})]}),t.jsx(Qe,{color:"teal",variant:"light",tt:"none",children:e("adLauncher.openaiManaged.review.formatsSquareCount",{count:D.length,defaultValue:"1:1 - {{count}}"})})]}),t.jsxs(Ae,{withBorder:!0,radius:"md",padding:"lg",bg:"white",mb:"md",children:[t.jsxs(U,{justify:"space-between",align:"center",mb:"md",children:[t.jsx(g,{fw:700,children:e("adLauncher.openaiManaged.review.yourAds",{count:D.length,defaultValue:"Your ads ({{count}} ads)"})}),t.jsx(Ht,{onClick:()=>n(ct(Ue.AD_COPY)),style:{color:He,fontSize:13,fontWeight:600},children:e("adLauncher.openaiManaged.review.editCopy",{defaultValue:"Edit copy"})})]}),t.jsx(ae,{gap:"md",children:D.map((fe,Ee)=>{const W=String(fe.id),oe=y[W],ue=((oe==null?void 0:oe.headlines)??[]).filter(Je=>Je.trim()),Z=((oe==null?void 0:oe.descriptions)??[]).filter(Je=>Je.trim()),De=Os(oe),Ge=ue[0]||De.title||fe.name||`Ad ${Ee+1}`,we=ue[1]||"",be=Z[0]||De.body||"";return t.jsxs(U,{gap:"md",align:"flex-start",children:[t.jsx(ot,{src:FL(fe.previewStorageKey,I[W]),w:72,h:72,fit:"cover",radius:"md",alt:fe.name||"",style:{flexShrink:0,border:"1px solid var(--mantine-color-gray-3)"}}),t.jsxs(A,{style:{flex:1,minWidth:0},children:[t.jsx(g,{fw:700,size:"sm",mb:2,children:Ge}),we?t.jsx(g,{size:"sm",mb:2,children:we}):null,be?t.jsx(g,{size:"sm",c:"dimmed",mb:"xs",lineClamp:3,children:be}):null,t.jsx(Qe,{color:"gray",variant:"light",tt:"none",fw:500,children:ce?`1:1 ${ce}`:e("adLauncher.openaiManaged.review.formatsSquare",{defaultValue:"1:1"})})]})]},W)})})]}),t.jsx(Pe,{})]})}),t.jsx(Ne,{backLabel:e("adLauncher.common.cancel",{defaultValue:"Cancel"}),nextLabel:e("adLauncher.common.continue",{defaultValue:"Continue"}),onBack:()=>n(ct(Ue.AD_COPY)),onNext:()=>{se()},nextDisabled:M,nextLoading:M,backDisabled:M,endAccessory:t.jsx(rt,{label:e("adLauncher.openaiManaged.setup.activeOnLaunchToggle",{defaultValue:"Active on Launch"}),checked:k,disabled:M,onChange:fe=>R(fe.currentTarget.checked)})})]})})}function UL(e){if(!(e!=null&&e.trim()))return"";try{return new URL(e).hostname.replace(/^www\./,"")}catch{return e.replace(/^https?:\/\//i,"").split("/")[0]||""}}function HL(e){if(!e)return"";const n=e.match(/^(\d{1,2}):(\d{2})/);if(!n)return e;let a=Number(n[1]);const i=n[2],s=a>=12?"PM":"AM";return a=a%12||12,`${a}:${i} ${s}`}function ps({label:e,value:n,hint:a}){return t.jsxs(A,{children:[t.jsx(g,{size:"xs",c:"dimmed",mb:4,children:e}),t.jsx(g,{size:"sm",fw:700,children:n}),a?t.jsx(g,{size:"xs",c:"dimmed",mt:2,children:a}):null]})}const $L=[{key:"BRAND_AWARENESS",titleKey:"adLauncher.linkedinAdLauncher.objectives.brandAwareness.title",descriptionKey:"adLauncher.linkedinAdLauncher.objectives.brandAwareness.description",status:"Available"},{key:"WEBSITE_VISITS",titleKey:"adLauncher.linkedinAdLauncher.objectives.traffic.title",descriptionKey:"adLauncher.linkedinAdLauncher.objectives.traffic.description",status:"Available"},{key:"ENGAGEMENT",titleKey:"adLauncher.linkedinAdLauncher.objectives.engagement.title",descriptionKey:"adLauncher.linkedinAdLauncher.objectives.engagement.description",status:"Available"},{key:"WEBSITE_CONVERSIONS",titleKey:"adLauncher.linkedinAdLauncher.objectives.conversions.title",descriptionKey:"adLauncher.linkedinAdLauncher.objectives.conversions.description",status:"Available"}];function VL(){const e=xe(),{t:n}=de(),{scrollStyle:a,shellStyle:i}=ze({pinFooter:!0}),{linkedinAdLauncherStepNumber:s,linkedinAdLauncherData:r}=re(o=>o.adGallery);return S.useEffect(()=>{r.campaignObjective||(e(Zt("Brand Awareness")),e(Wn({campaignObjective:"BRAND_AWARENESS"})))},[]),t.jsxs(A,{style:i,children:[t.jsxs(A,{style:a,children:[t.jsxs(A,{style:{maxWidth:640,margin:"0 auto",width:"100%"},children:[t.jsx(g,{size:"md",fw:600,mb:"xs",children:n("adLauncher.campaignObjectives.heading")}),t.jsx(on,{cols:{base:1,sm:2},spacing:"md",children:$L.map(o=>t.jsx(ld,{h:"150px",data:{key:o.key,title:n(o.titleKey),description:n(o.descriptionKey),status:o.status},disabled:!1,onClick:()=>{e(Zt(n(o.titleKey))),e(Wn({campaignObjective:o.key}
98))}},o.key))})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:n("adLauncher.common.back"),nextLabel:n("adLauncher.common.next"),onBack:()=>e(Mt(s-1)),onNext:()=>e(Mt(s+1))})]})}function WL({locations:e,onChange:n,error:a}){const{t:i}=de(),{brandId:s}=ve(),r=Ca(),[o,c]=S.useState(""),[d,m]=S.useState(!1),[h,p]=S.useState([]),l=S.useRef(),b=new Set(e.map(I=>I.id)),u=h.filter(I=>!b.has(I.id)),y=I=>{if(!I||!s){p([]);return}r.mutate({brand_id:parseInt(s,10),channel:"linkedin",query:I,limit:8,types:["locations"]},{onSuccess:C=>{p(xh(C))},onError:()=>{he.show({title:i("adLauncher.errors.title"),message:i("adLauncher.linkedinAdLauncher.locations.searchFailed"),color:"red"})}})};return t.jsxs(A,{mt:"md",children:[t.jsx(pe,{label:i("adLauncher.linkedinAdLauncher.locations.label"),description:i("adLauncher.linkedinAdLauncher.locations.description"),placeholder:i("adLauncher.linkedinAdLauncher.locations.placeholder"),withAsterisk:!0,error:a,value:o,leftSection:r.isPending?t.jsx(et,{size:14}):void 0,onFocus:()=>m(!0),onBlur:()=>{window.setTimeout(()=>m(!1),150)},onChange:I=>{const C=I.currentTarget.value;c(C),m(!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>y(C.trim()),300)}}),d&&o.trim().length>0&&t.jsx(A,{mt:4,p:4,style:{border:"1px solid var(--mantine-color-gray-3)",borderRadius:8,background:"var(--mantine-color-white)",maxHeight:220,overflow:"auto"},children:u.length===0&&!r.isPending?t.jsx(g,{size:"sm",c:"dimmed",px:"xs",py:6,children:i("adLauncher.linkedinAdLauncher.locations.nothingFound")}):u.map(I=>t.jsx(A,{px:"xs",py:6,style:{cursor:"pointer",borderRadius:6},onMouseDown:C=>{C.preventDefault(),n([...e,I]),c(""),m(!1)},children:t.jsx(g,{size:"sm",children:I.name})},I.id))}),e.length>0&&t.jsx(xt,{gap:6,mt:"xs",children:e.map(I=>t.jsx(ko,{withRemoveButton:!1,children:t.jsxs(xt,{gap:4,wrap:"nowrap",children:[t.jsx(g,{size:"sm",children:I.name}),t.jsx(Gi,{size:"xs",onClick:()=>n(e.filter(C=>C.id!==I.id)),"aria-label":I.name})]})},I.id))})]})}const KL=["titles","skills","companies","industries","jobFunctions","seniorities"];function qL({facetChips:e,onChange:n}){const{t:a}=de(),{brandId:i}=ve(),s=Ca(),r=c=>e.filter(d=>{const m=js.find(h=>h.key===c);return d.facet===(m==null?void 0:m.urn)||d.type===c}),o=async(c,d)=>{const m=js.find(h=>h.key===c);if(!i||!d.trim()||!m)return[];try{const h=await s.mutateAsync({brand_id:parseInt(i,10),channel:"linkedin",query:d,limit:8,types:[...m.types]});return xh(h,m.urn).map(p=>({...p,facet:m.urn,type:c}))}catch{return[]}};return t.jsx(ae,{gap:"sm",children:KL.map(c=>t.jsx(ud,{label:a(`adLauncher.linkedinAdLauncher.facets.${c}.label`),description:a(`adLauncher.linkedinAdLauncher.facets.${c}.description`),placeholder:a(`adLauncher.linkedinAdLauncher.facets.${c}.placeholder`),nothingFound:a("adLauncher.linkedinAdLauncher.facets.nothingFound"),chips:r(c),onChange:d=>{const m=e.filter(h=>{const p=js.find(l=>l.key===c);return h.facet!==(p==null?void 0:p.urn)&&h.type!==c});n([...m,...d])},onSearch:d=>o(c,d),isSearching:s.isPending},c))})}const YL=[{value:"BRAND_AWARENESS",label:"Brand Awareness"},{value:"WEBSITE_VISITS",label:"Website Visits"},{value:"ENGAGEMENT",label:"Engagement"},{value:"WEBSITE_CONVERSIONS",label:"Website Conversions"}];function ml(){var D,G;const e=xe(),{t:n}=de(),{formStyle:a,scrollStyle:i,shellStyle:s}=ze({pinFooter:!0}),{selectedCampaign:r,linkedinAdLauncherStepNumber:o,linkedinAdLauncherData:c}=re(_=>_.adGallery),d=c.type===Jn.CREATE_NEW_ADSET,m=ba(r==null?void 0:r.objective)||ba(c.campaignObjective),h=((D=c.createNewCampaignData)==null?void 0:D.locations)||[],p=((G=c.createNewCampaignData)==null?void 0:G.facetChips)||[],[l,b]=S.useState(h),[u,y]=S.useState(p),[I,C]=S.useState(),E=wt({mode:"uncontrolled",initialValues:{campaignName:"",checked:!1,campaignDailyBudget:100,objectiveType:m||ba(c.campaignObjective)||"BRAND_AWARENESS",adSetName:"",adSetDailyBudget:50,bidStrategy:"MAXIMUM_DELIVERY"},validate:{campaignName:_=>_.length>0?null:n("adLauncher.campaignDetails.campaignName.error"),adSetName:_=>_?null:n("adLauncher.campaignDetails.adSet.nameError"),campaignDailyBudget:_=>d?null:!_||_<=0?n("adLauncher.campaignDetails.budget.amountError"):null,adSetDailyBudget:_=>!_||_<=0?"Ad group daily budget is required":null}});S.useEffect(()=>{r&&E.setValues({campaignName:r==null?void 0:r.label})},[r]),S.useEffect(()=>{c.campaignObjective&&E.setFieldValue("objectiveType",c.campaignObjective)},[c.campaignObjective]);const P=_=>{if(l.length===0){C(n("adLauncher.linkedinAdLauncher.locations.required"));return}C(void 0);const O=d&&m||_.objectiveType;e(Wn({createNewCampaignData:{..._,locations:l,facetChips:u,objectiveType:O},campaignObjective:O})),e(Mt(o+1))};return t.jsx(A,{style:s,children:t.jsxs("form",{style:a,onSubmit:E.onSubmit(_=>P(_)),children:[t.jsxs(A,{style:i,children:[t.jsxs(Ct,{width:600,children:[t.jsx(pe,{label:n("adLauncher.campaignDetails.campaignName.label"),withAsterisk:!0,readOnly:d,placeholder:n("adLauncher.campaignDetails.campaignName.placeholder"),...E.getInputProps("campaignName")}),d&&m&&t.jsx(g,{mt:"sm",size:"sm",children:n("adLauncher.linkedinAdLauncher.inheritedObjective",{defaultValue:"Objective (from campaign): {{objective}}",objective:m})}),!d&&t.jsxs(A,{w:"100%",mt:"sm",children:[t.jsxs(U,{justify:"space-between",align:"center",mt:"sm",children:[t.jsx(Re,{w:"48%",label:"Objective Type",data:YL,...E.getInputProps("objectiveType")}),t.jsx(at,{withAsterisk:!0,w:"48%",label:"Campaign Daily Budget ($)",placeholder:"Enter daily budget",prefix:"$ ",...E.getInputProps("campaignDailyBudget"),min:10})]}),t.jsx(Be,{mt:"sm",order:3,children:"Campaign Status on Launch"}),t.jsx(rt,{mt:"sm",label:"Enabled",...E.getInputProps("checked")}),t.jsx(_t,{my:"md"})]}),t.jsxs(A,{mb:"md",mt:"md",children:[t.jsx(Be,{fw:700,style:{fontSize:"20px",lineHeight:"26px"},children:n("adLauncher.campaignDetails.adSet.title")}),t.jsx(g,{size:"xs",mt:"5px",children:n("adLauncher.campaignDetails.adSet.description")})]}),t.jsx(pe,{withAsterisk:!0,label:n("adLauncher.campaignDetails.adSet.nameLabel"),placeholder:n("adLauncher.campaignDetails.adSet.namePlaceholder"),...E.getInputProps("adSetName")}),t.jsx(at,{withAsterisk:!0,w:"48%",label:"Ad Group Daily Budget ($)",placeholder:"Enter daily budget",prefix:"$ ",...E.getInputProps("adSetDailyBudget"),min:10,mt:"sm"}),t.jsx(WL,{locations:l,error:I,onChange:_=>{b(_),C(_.length===0?n("adLauncher.linkedinAdLauncher.locations.required"):void 0)}}),t.jsx(qL,{facetChips:u,onChange:y})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:n("adLauncher.campaignDetails.navigation.back"),nextLabel:n("adLauncher.campaignDetails.navigation.next"),onBack:()=>e(Mt(o-1)),nextType:"submit"})]})})}const kr=()=>{var O;const e=S.useRef(null),n=Lt(),{linkedinAdLauncherStepNumber:a,linkedinAdLauncherData:i}=re(f=>f.adGallery),{brandId:s}=ve(),r=xe(),{t:o}=de(),c=i.ads||[],{data:d,fetchNextPage:m,hasNextPage:h,isFetchingNextPage:p,isPending:l}=Cn({mode:"brand",brandId:s??""}),b=S.useMemo(()=>((d==null?void 0:d.pages)||[]).flatMap(f=>f.items),[d]),u=((O=d==null?void 0:d.pages)==null?void 0:O.length)??0,y=f=>f!=null&&f.previewStorageKey&&f.previewStorageKey!=="public/"?f.previewStorageKey.includes("public/")?st(`${bt[n]}/${f.previewStorageKey}`):st(`${At[n]}/${f.previewStorageKey}`):"",I=f=>{const k=c.some(B=>B.id===f.id);let R;
98k?R=c.filter(B=>B.id!==f.id):R=[...c,f],r(Wn({ads:R}))},C=(b==null?void 0:b.filter(f=>f.previewStorageKey))||[],{showLoading:E,showEmpty:P}=oa({count:C.length,isPending:l,hasNextPage:h,isFetchingNextPage:p}),D=S.useCallback(()=>{!h||p||m==null||m()},[h,p,m]),G=S.useCallback(({y:f})=>{const k=e.current;if(!k)return;const{scrollHeight:R,clientHeight:B}=k,$=Math.max(0,R-B);$<=0||f<$-120||D()},[D]);S.useLayoutEffect(()=>{if(p||!h)return;let f=!1;const k=()=>{if(f)return;const B=e.current;if(!B)return;const{scrollHeight:$,clientHeight:J}=B;$>J+12||D()},R=requestAnimationFrame(()=>{requestAnimationFrame(k)});return()=>{f=!0,cancelAnimationFrame(R)}},[u,h,p,D]);const _={default:5,1200:4,1100:3,700:2,500:1};return t.jsxs(A,{style:{display:"flex",flexDirection:"column",flex:1,minHeight:0,overflow:"hidden"},children:[t.jsx(g,{fw:500,mb:"md",style:{flexShrink:0},children:"Select ads to launch on LinkedIn"}),t.jsxs(Nt,{style:{flex:1,minHeight:0},onScrollPositionChange:G,viewportRef:e,scrollbars:"y",children:[E||P?t.jsx(Sn,{isLoading:E}):t.jsx(In,{breakpointCols:_,className:"my-masonry-grid p-0",columnClassName:"my-masonry-grid_column p-0",children:C==null?void 0:C.map(f=>t.jsx(Ae,{shadow:"sm",padding:"0",withBorder:!0,style:{cursor:"pointer",borderColor:c.some(k=>k.id===f.id)?"#322996":"#e9ecef",borderWidth:c.some(k=>k.id===f.id)?"4px":"1px",padding:c.some(k=>k.id===f.id)?"5px":"0",transition:"all 0.3s ease"},onClick:()=>I(f),children:Te(f==null?void 0:f.previewStorageKey)?t.jsx("video",{src:y(f),autoPlay:!0,muted:!0,loop:!0,playsInline:!0,style:{height:"auto",borderRadius:"8px",width:"100%",border:"none",objectFit:"contain"}}):t.jsx(ot,{src:y(f),fit:"contain",loading:"lazy",alt:f.name,style:{maxHeight:"auto",flex:"unset"}})},f.id))}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:o("adLauncher.common.back"),nextLabel:o("adLauncher.common.next"),onBack:()=>r(Mt(a-1)),onNext:()=>{Oe(sg,{brandId:s}),r(Mt(a+1))},nextDisabled:!(c!=null&&c.length)})]})};function Dr(){var J;const e=xe(),{brandId:n}=ve(),{t:a}=de(),{formStyle:i,scrollStyle:s,shellStyle:r}=ze({pinFooter:!0}),{linkedinAdLauncherData:o,selectedAdLauncherCampaignId:c,selectedAdLauncherAdGroupId:d,linkedinAdLauncherStepNumber:m,selectedCampaign:h,lastLaunchError:p}=re(z=>z.adGallery);yt();const l=En(),{adInstanceItems:b}=re(z=>z.projectView),u=xn(),y=(o==null?void 0:o.ads)||[],I=(J=o==null?void 0:o.ads)==null?void 0:J[0],{brandOverviewData:C}=re(z=>z.library),E=Cx(o.type),[P,D]=S.useState(!1),G=S.useRef(new Set),_=()=>m+2,O=wt({initialValues:{commentary:"",title:"",description:"",ctaLabel:"LEARN_MORE",landingPage:""},validate:{commentary:z=>z!=null&&z.trim()?null:"Commentary is required",landingPage:z=>{if(!z)return a("adLauncher.launchAd.validations.url");let V=z.trim();return/^https?:\/\//i.test(V)||(V=`https://${V}`,O.setFieldValue("landingPage",V)),/^(https?:\/\/)([^\s$.?#].[^\s]*)$/i.test(V)?null:a("adLauncher.launchAd.validations.urlInvalid")},ctaLabel:z=>z?null:a("adLauncher.launchAd.validations.cta")}}),f=async z=>{try{return await e(ii(z))}catch{return null}};S.useEffect(()=>{(async()=>{var L;if(!n)return;const N=await f({brandId:n});if(N&&((L=N==null?void 0:N.payload)!=null&&L.url)){let x=N.payload.url.trim();/^https?:\/\//i.test(x)||(x=`https://${x}`),O.setFieldValue("landingPage",x)}})()},[n]),S.useEffect(()=>{var z,V,N,L;I&&O.setValues({commentary:((z=I==null?void 0:I.Headlines)==null?void 0:z[0])||((V=I==null?void 0:I.subHeadline)==null?void 0:V[0])||"",title:((N=I==null?void 0:I.subHeadline)==null?void 0:N[0])||"",description:((L=I==null?void 0:I.Headlines)==null?void 0:L[1])||"",ctaLabel:"LEARN_MORE",landingPage:(C==null?void 0:C.url)??""})},[I]);const k=wx(E)&&Qo(y.map(z=>({media_type:Te(z==null?void 0:z.previewStorageKey)?"video":"image"}))),R=async z=>{if(!z.length)return;await Promise.all(z.map(async N=>{const{__typename:L,...x}=N;x.id&&await l.mutateAsync({id:x.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const V=b==null?void 0:b.map(N=>z.find(L=>L.id===N.id)?{...N,status:Fe.launched,updatedAt:new Date().toISOString()}:N);e(mt(V))},B=async(z,V)=>{const N=kn(z,a("adLauncher.launchAd.launchFailedFallback"),a);Oe(Hd,{brandId:n,error_message:N.message}),e(Xe(N)),he.show({title:a("adLauncher.errors.partialTitle"),message:N.message,color:"red"}),e(Mt(m)),await R(V)},$=async z=>{var N,L;const V=[];try{e(Xe(null)),e(Mt(m+1));const x=yh(E,(h==null?void 0:h.objective)||o.campaignObjective,(N=o.createNewCampaignData)==null?void 0:N.objectiveType),v=y.map(F=>
98_x(F,{commentary:z.commentary,title:z.title,description:z.description,landingPage:z.landingPage,ctaLabel:z.ctaLabel})),T=Ix({brandId:n||"",path:E,campaignId:c,adGroupId:d,campaignData:o.createNewCampaignData||{},objective:x,adSpecs:v,allowSplit:k&&P}),H=T.filter(F=>!G.current.has(rr(F)));for(const F of T)G.current.has(rr(F))&&V.push(...fc(y,F));for(const F of H){const w=await u.mutateAsync(F),K=Mn(w),M=fc(y,F);if(V.push(...Nn(M,K,((L=F.ad_specs)==null?void 0:L.length)??0)),K.isFullSuccess){G.current.add(rr(F));continue}await B(K,V);return}Oe(og,{brandId:n}),e(Mt(_())),await R(V.length?V:y),G.current.clear(),setTimeout(()=>{e(wn()),e(fn(!1))},5e3)}catch(x){const v=$n(x,a("adLauncher.launchAd.launchFailedFallback"));Oe(Hd,{brandId:n,error_message:v.message}),e(Xe(v)),he.show({title:a("adLauncher.errors.title"),message:v.message,color:"red"}),e(Mt(m)),V.length&&await R(V)}};return t.jsx(A,{style:r,children:t.jsxs("form",{style:i,onSubmit:O.onSubmit(z=>$(z)),children:[t.jsxs(A,{style:s,children:[t.jsxs(Ct,{width:600,children:[t.jsx(Tn,{error:p,onDismiss:()=>e(Xe(null))}),t.jsx(qa,{label:"Description",placeholder:"Scale pipeline with AI-native ad operations.",withAsterisk:!0,autosize:!0,minRows:2,maxRows:4,...O.getInputProps("commentary"),mt:"xs"}),t.jsx(pe,{label:"Title",placeholder:"Book a strategy call",...O.getInputProps("title"),mt:"sm"}),t.jsx(pe,{label:"Description",placeholder:"See how top teams automate paid social.",...O.getInputProps("description"),mt:"sm"}),t.jsx(A,{mt:"md",children:t.jsx(Re,{w:"100%",label:a("adLauncher.adsetSettings.ctaLabel"),placeholder:a("adLauncher.adsetSettings.ctaPlaceholder"),data:rg,...O.getInputProps("ctaLabel")})}),t.jsxs(A,{mt:"md",children:[t.jsx(g,{size:"md",children:"Landing Page"}),t.jsx(g,{size:"xs",mt:"5px",children:a("adLauncher.adsetSettings.redirectPeopleText")}),t.jsx(pe,{label:"Landing Page URL",placeholder:"https://example.com/book-demo",withAsterisk:!0,...O.getInputProps("landingPage"),mt:"md"})]}),k&&t.jsxs(Xt,{color:"blue",mt:"md",title:a("adLauncher.linkedinAdLauncher.mixedMedia.title"),children:[t.jsx(g,{size:"sm",children:a("adLauncher.linkedinAdLauncher.mixedMedia.separate")}),t.jsx(_a,{mt:"sm",checked:P,onChange:z=>D(z.currentTarget.checked),label:a("adLauncher.linkedinAdLauncher.mixedMedia.allowSplit"),description:a("adLauncher.linkedinAdLauncher.mixedMedia.allowSplitHint")})]})]}),t.jsx(Pe,{})]}),t.jsx(Ne,{backLabel:a("adLauncher.common.back"),nextLabel:a("adLauncher.common.launch"),onBack:()=>e(Mt(m-1)),nextType:"submit"})]})})}const XL=.12,fl=2,xl=90;function ZL(e){const n=Lt(),a=e.previewStorageKey;return!a||a==="public/"?"":a.includes("public/")?`${bt[n]}/${a}`:`${At[n]}/${a}`}function JL({ad:e,index:n}){const a=ZL(e),i=Te(e.previewStorageKey);return t.jsxs(A,{style:{background:"#fff",borderRadius:0,overflow:"hidden",borderBottom:"6px solid #f0f2f5"},children:[t.jsxs(U,{align:"center",justify:"space-between",px:10,py:8,style:{background:"#fff"},children:[t.jsxs(U,{align:"center",gap:8,children:[t.jsx(A,{style:{width:32,height:32,borderRadius:"50%",background:"linear-gradient(135deg, #0866ff, #23a6d5)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(g,{size:"xs",c:"white",fw:700,style:{fontSize:12},children:"f"})}),t.jsxs(A,{children:[t.jsx(g,{size:"xs",fw:700,style:{fontSize:12,lineHeight:1.2},children:"Your Brand"}),t.jsxs(g,{size:"xs",c:"gray.5",style:{fontSize:10,lineHeight:1.2},children:["Sponsored · ",t.jsx("span",{style:{color:"#0866ff"},children:"ð"})]})]})]}),t.jsx(g,{size:"xs",c:"gray.4",fw:700,style:{fontSize:16},children:"···"})]}),t.jsx(A,{px:10,pb:6,children:t.jsxs(g,{style:{fontSize:12,color:"#1c1e21",lineHeight:1.4},children:["Ad ",n+1," â click to learn more about this offer."]})}),t.jsx(A,{style:{width:"100%",aspectRatio:"1 / 1",background:"#f0f2f5"},children:a?i?t.jsx("video",{src:a,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}}):t.jsx("img",{src:a,alt:`Ad ${n+1}`,style:{width:"100%",height:"100%",objectFit:"contain",display:"block"},onError:s=>{s.target.style.opacity="0"}}):t.jsx(U,{justify:"center",align:"center",style:{width:"100%",height:"100%"},children:t.jsx(Fs,{size:24,color:"#ccc"})})}),t.jsxs(U,{align:"center",justify:"space-between",px:10,py:8,style:{background:"#f0f2f5"},children:[t.jsxs(A,{children:[t.jsx(g,{style:{fontSize:11,color:"#606770",lineHeight:1.2},children:"yourwebsite.com"}),t.jsx(g,{style:{fontSize:13,fontWeight:700,color:"#1c1e21",lineHeight:1.3},children:"Your Ad Headline"})]}),t.jsx(A,{style:{background:"#e4e6eb",borderRadius:6,padding:"6px 12px",cursor:"pointer",flexShrink:0},children:t.jsx(g,{style:{fontSize:12,color:"#1c1e21",fontWeight:600},children:"Learn More"})})]})]})}function QL({ads:e}){const[n,a]=S.useState(0),i=e.length,s=i>0?e[Math.min(n,i-1)]:null,r=()=>a(c=>(c-1+i)%i),o=()=>a(c=>(c+1)%i);return t.jsxs(A,{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[t.jsx(g,{size:"xs",fw:600,c:"gray.6",tt:"uppercase",style:{letterSpacing:"0.08em",fontSize:10},children:"Ad Preview"}),t.jsxs(U,{align:"center",gap:6,children:[t.jsx(gt,{variant:"subtle",color:"gray",radius:"xl",size:"lg",disabled:i<=1,onClick:r,children:t.jsx(Fi,{size:18})}),t.jsxs(A,{style:{width:230,background:"#111",borderRadius:40,padding:"10px 5px",boxShadow:"0 0 0 2px #333, 0 0 0 4px #222, 0 16px 32px rgba(0,0,0,0.5)",position:"relative"},children:[t.jsx(A,{style:{position:"absolute",left:-3,top:72,width:3,height:28,background:"#2a2a2a",borderRadius:"2px 0 0 2px"}}),t.jsx(A,{style:{position:"absolute",left:-3,top:108,width:3,height:44,background:"#2a2a2a",borderRadius:"2px 0 0 2px"}}),t.jsx(A,{style:{position:"absolute",right:-3,top:96,width:3,height:56,background:"#2a2a2a",borderRadius:"0 2px 2px 0"}}),t.jsxs(A,{style:{background:"#f0f2f5",borderRadius:32,overflow:"hidden",height:440,display:"flex",flexDirection:"column"},children:[t.jsxs(A,{style:{background:"#fff",padding:"10px 16px 4px",display:"flex",justifyContent:"space-between",alignItems:"center",flexShrink:0,position:"relative"},children:[t.jsx(g,{style:{fontSize:11,fontWeight:700,color:"#000"},children:"9:41"}),t.jsx(A,{style:{width:80,height:20,background:"#000",borderRadius:12,position:"absolute",left:"50%",transform:"translateX(-50%)",to
98p:10}}),t.jsxs(U,{gap:4,align:"center",children:[t.jsx(ku,{size:12,color:"#000"}),t.jsx(Tu,{size:14,color:"#000"})]})]}),t.jsx(U,{justify:"space-around",align:"center",style:{background:"#fff",padding:"6px 0",borderBottom:"1px solid #e4e6eb",flexShrink:0},children:["ð ","ð¥","â¶ï¸","ðï¸","ð"].map((c,d)=>t.jsx(g,{style:{fontSize:14,padding:"2px 8px",borderBottom:d===0?"2px solid #0866ff":"none"},children:c},d))}),t.jsx(A,{style:{flex:1,overflowY:"auto",overflowX:"hidden",background:"#f0f2f5"},children:s?t.jsx(JL,{ad:s,index:n},`${s.id}-${n}`):t.jsxs(U,{direction:"column",justify:"center",align:"center",style:{height:"100%"},gap:"xs",children:[t.jsx(Fs,{size:32,color:"#ccc"}),t.jsx(g,{style:{fontSize:11,color:"#aaa",textAlign:"center",padding:"0 16px"},children:"Your ads will appear here"})]})}),t.jsx(A,{style:{background:"#fff",padding:"8px 0 6px",display:"flex",justifyContent:"center",flexShrink:0},children:t.jsx(A,{style:{width:100,height:4,background:"#000",borderRadius:3,opacity:.2}})})]})]}),t.jsx(gt,{variant:"subtle",color:"gray",radius:"xl",size:"lg",disabled:i<=1,onClick:o,children:t.jsx(si,{size:18})})]}),i>1&&t.jsxs(t.Fragment,{children:[t.jsx(U,{gap:5,align:"center",children:e.map((c,d)=>t.jsx(A,{onClick:()=>a(d),style:{width:d===n?20:7,height:7,borderRadius:4,background:d===n?"#228be6":"#dee2e6",cursor:"pointer",transition:"width 0.2s ease, background 0.2s ease",flexShrink:0}},d))}),t.jsxs(g,{size:"xs",c:"gray.5",children:[n+1," / ",i]})]})]})}function eS(){const{t:e}=de(),n=xe();yt();const a=_n(),{brandId:i}=ve(),{createCampaignPage:s,metaDurationDays:r,metaCampaignFormValues:o,metaAdSetFormValues:c,selectedLauncherAds:d,selectedAdLauncherChannel:m,selectedAdLauncherCampaignId:h,selectedAdLauncherAdGroupId:p,selectedMetaLeadGenFormId:l,selectedCampaignObjectives:b,metaManagedAccount:u}=re(N=>N.adGallery),{adInstanceItems:y}=re(N=>N.projectView),I=xn(),C=En(),{data:E}=ri(),P=(o==null?void 0:o.budgetAmount)||50,D=P*r,G=parseFloat((D*XL).toFixed(2)),_=parseFloat((D+G).toFixed(2)),O=Math.round(_*100),f=d||[],[k,R]=S.useState(!1),B=I.isPending||k,$=Go(b),J=sh({objective:b,leadFormId:l,pixel:o==null?void 0:o.pixel}),z=()=>{const N=new Date,L=new Date(N);L.setDate(N.getDate()+r);const x=H=>H.toISOString().split("T")[0],v=c,T=o;return{brand_id:i,channel:m[0],is_managed:!0,campaign_spec:{name:(T==null?void 0:T.campaignName)??"Managed Meta Campaign",objective:$,daily_budget:(T==null?void 0:T.budgetAmount)??P,status_on_launch:T!=null&&T.checked?"ACTIVE":"PAUSED",start_date:x(N),end_date:x(L)},ad_group_spec:Ms({name:(T==null?void 0:T.adSetName)??"Managed Ad Set",optimization_goal:(T==null?void 0:T.optimizationGoal)??"",billing_event:"IMPRESSIONS",status_on_launch:T!=null&&T.checked?"ACTIVE":"PAUSED",start_date:x(N),end_date:x(L),targeting:Mo({countries:(T==null?void 0:T.countries)??[],ageMin:T==null?void 0:T.ageMin,ageMax:T==null?void 0:T.ageMax,gender:T==null?void 0:T.gender}),...(T==null?void 0:T.pixel)&&{promoted_pixel_id:T.pixel}}),ad_specs:d==null?void 0:d.map(H=>({name:H.name,...ci(H.previewStorageKey),...Xo({headlines:v==null?void 0:v.headline,primaryTexts:v==null?void 0:v.primaryText}),cta_types:[(v==null?void 0:v.callToAction)??""],link_urls:[(v==null?void 0:v.url)??""],status_on_launch:v!=null&&v.checked?"ACTIVE":"PAUSED",...eh(b,l)}))}},V=async()=>{if(J){he.show({title:e("adLauncher.errors.title"),message:J==="unknown_objective"?e("adLauncher.metaManaged.review.unknownObjective",{objective:b||"â"}):e(J==="missing_lead_form"?"adLauncher.metaManaged.review.leadFormRequired":"adLauncher.metaManaged.review.salesPixelRequired"),color:"red"});return}const N=E==null?void 0:E.stripeCustomerId;if(!N){he.show({title:"Payment method missing",message:"Please add a payment method in Settings before continuing.",color:"red"});return}R(!0);let L=null;try{const x=await li({stripeCustomerId:N,amount:O,description:`Meta Managed Ad â ${r} day${r===1?"":"s"} campaign`,confirm:!0});L=x==null?void 0:x.paymentIntentId,n(nt(10));const v=z(),T=await I.mutateAsync(v),H=Mn(T),F=d||[],w=Nn(F,H,F.length);if(!H.isFullSuccess){const K=kn(H,e("adLauncher.launchAd.launchFailedFallback"),e);if(Oe(Ka,{brandId:i,error_message:K.message}),he.show({title:e("adLauncher.errors.partialTitle"),message:K.message,color:"red"}),w.length){await Promise.all(w.map(async ee=>{const{__typename:ne,...X}=ee;X.id&&await C.mutateAsync({id:X.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const M=y==null?void 0:y.map(ee=>w.find(ne=>
98ne.id===ee.id)?{...ee,status:Fe.launched,updatedAt:new Date().toISOString()}:ee);n(mt(M))}L&&H.adsLaunchedCount===0&&(await ln(L).catch(()=>{}),he.show({title:e("adLauncher.metaAdLauncher.payment.refundedTitle"),message:e("adLauncher.metaAdLauncher.payment.refundedWithLaunchError",{launchError:K.message}),color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})),n(nt(9));return}if(Oe(Lo,{brandId:i}),n(nt(11)),w.length){await Promise.all(w.map(async M=>{const{__typename:ee,...ne}=M;ne.id&&await C.mutateAsync({id:ne.id,status:Fe.launched,updatedAt:new Date().toISOString()})}));const K=y==null?void 0:y.map(M=>w.find(ee=>ee.id===M.id)?{...M,status:Fe.launched,updatedAt:new Date().toISOString()}:M);n(mt(K))}}catch(x){const v=e("adLauncher.metaAdLauncher.payment.failedMessage");Oe(Ka,{brandId:i,error_message:cn(x,"launch_failed")});const T=cn(x,v);L?(await ln(L).catch(()=>{}),he.show({title:e("adLauncher.metaAdLauncher.payment.refundedTitle"),message:e("adLauncher.metaAdLauncher.payment.refundedWithLaunchError",{launchError:T}),color:"orange",icon:t.jsx(dn,{}),autoClose:8e3})):pi({title:e("adLauncher.metaAdLauncher.payment.failedTitle"),message:T,onUpdateCard:()=>a(gi(i))}),n(nt(9))}finally{R(!1)}};return t.jsxs(A,{mih:"calc(100vh - 200px)",style:{display:"flex",flexDirection:"column"},children:[t.jsxs(A,{style:{maxWidth:800,margin:"0 auto",width:"100%"},children:[t.jsx(Be,{order:3,mb:4,children:"Omneky Managed Meta Account"}),t.jsx(g,{size:"sm",c:"gray.6",mb:"xl",children:"Let Omneky's team manage your Facebook & Instagram campaigns â handling optimisations, budgets and reporting."}),t.jsxs(U,{gap:"xl",align:"flex-start",style:{overflow:"hidden"},children:[t.jsx(A,{style:{flexShrink:0},children:t.jsx(QL,{ads:f})}),t.jsxs(ae,{flex:1,gap:"xl",style:{minWidth:0},children:[t.jsxs(ae,{gap:"sm",children:[t.jsxs(U,{justify:"space-between",align:"center",children:[t.jsx(g,{fw:500,size:"sm",children:"Duration"}),t.jsxs(U,{align:"center",gap:"xs",children:[t.jsx(at,{value:r,onChange:N=>n($d(Number(N)||1)),min:fl,max:xl,w:80,size:"xs"}),t.jsx(g,{size:"sm",c:"gray.6",children:"days"})]})]}),t.jsx(A,{pb:"lg",children:t.jsx(Ln,{value:r,onChange:N=>n($d(N)),min:fl,max:xl,step:1,color:"blue",size:"sm",marks:[{value:7,label:"7d"},{value:30,label:"30d"},{value:60,label:"60d"},{value:90,label:"90d"}]})})]}),t.jsxs(Ae,{withBorder:!0,padding:"lg",radius:"md",children:[t.jsx(g,{fw:600,mb:"md",children:"Price Breakdown"}),t.jsxs(U,{justify:"space-between",align:"center",py:"xs",children:[t.jsx(g,{size:"sm",children:"Daily Budget"}),t.jsxs(g,{size:"sm",fw:500,children:["$",P.toFixed(2)]})]}),t.jsxs(U,{justify:"space-between",align:"center",py:"xs",children:[t.jsx(g,{size:"sm",children:"Duration"}),t.jsxs(g,{size:"sm",fw:500,children:[r," ",r===1?"day":"days"]})]}),t.jsxs(U,{justify:"space-between",align:"center",py:"xs",children:[t.jsx(g,{size:"sm",children:"Ad Budget"}),t.jsxs(g,{size:"sm",fw:500,children:["$",D.toFixed(2)]})]}),t.jsx(_t,{my:"xs"}),t.jsxs(U,{justify:"space-between",align:"flex-start",py:"xs",children:[t.jsxs(ae,{gap:2,children:[t.jsx(g,{size:"sm",children:"Omneky fee 12%"}),t.jsx(g,{size:"xs",c:"gray.6",children:"Added on top of your ad budget. You pay the ad budget plus 12%."})]}),t.jsxs(g,{size:"sm",fw:500,children:["$",G.toFixed(2)]})]}),t.jsx(_t,{my:"xs"}),t.jsxs(U,{justify:"space-between",align:"center",pt:"xs",children:[t.jsx(g,{fw:700,children:"Total Due today"}),t.jsxs(g,{fw:700,c:"blue",size:"lg",children:["$",_.toFixed(2)]})]})]})]})]})]}),t.jsx(Ne,{backLabel:"Back",nextLabel:"Continue to pay",onBack:()=>n(nt(u?Ve.REVIEW:s-1)),onNext:V,backDisabled:B,nextDisabled:B||!!J,nextLoading:B})]})}function tS({steps:e,activeStep:n,onStepClick:a}){return t.jsx(A,{mb:"lg",pb:"sm",style:{borderBottom:"1px solid var(--mantine-color-gray-2)"},children:t.jsx(U,{gap:0,align:"center",justify:"center",children:e.map((i,s)=>{const r=s===n,o=s<n,c=o&&!!a,d=t.jsx(U,{align:"center",justify:"center",style:{width:28,height:28,borderRadius:"50%",fontSize:13,fontWeight:600,transition:"all 0.2s",...r?{background:"var(--mantine-color-blue-6)",color:"#fff"}:o?{background:"var(--mantine-color-blue-1)",color:"var(--mantine-color-blue-6)"}:{background:"var(--mantine-color-gray-1)",color:"var(--mantine-color-gray-5)"}},children:o?t.jsx(mn,{size:14,stroke:3}):s+1}
98),m=t.jsx(g,{size:"xs",fw:r?600:400,c:r?"dark":o?"blue.6":"gray.5",style:{whiteSpace:"nowrap",transition:"all 0.2s"},children:i.label}),h=t.jsxs(U,{direction:"column",align:"center",gap:4,px:"sm",children:[d,m]});return t.jsxs(U,{align:"center",gap:0,children:[c?t.jsx(Ht,{onClick:()=>a(i.rawStep),style:{cursor:"pointer"},children:h}):h,s<e.length-1&&t.jsx(A,{style:{width:32,height:2,borderRadius:1,background:o?"var(--mantine-color-blue-4)":"var(--mantine-color-gray-3)",transition:"background 0.2s",alignSelf:"center",marginBottom:20}})]},i.label)})})})}const nS=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Objective",rawStep:5},{label:"Setup",rawStep:6},{label:"Ads",rawStep:3},{label:"Ad Settings",rawStep:4}],aS=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Ads",rawStep:3},{label:"Ad Settings",rawStep:4}],iS=[{label:"Creative",rawStep:3},{label:"Campaign",rawStep:5},{label:"Setup",rawStep:6},{label:"Ad Copy",rawStep:4},{label:"Review",rawStep:12}],sS=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Type",rawStep:3},{label:"Setup",rawStep:5},{label:"Targeting",rawStep:6},{label:"Ads",rawStep:7},{label:"Logo",rawStep:8},{label:"Headlines",rawStep:9}],rS=[{label:"Ads",rawStep:2},{label:"Formats",rawStep:3},{label:"Objective",rawStep:4},{label:"Setup",rawStep:5},{label:"Preview",rawStep:6}],oS=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Setup",rawStep:3},{label:"Ads",rawStep:4},{label:"Logo",rawStep:5},{label:"Headlines",rawStep:6}],dS=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Ads",rawStep:3},{label:"Logo",rawStep:4},{label:"Headlines",rawStep:5}],yl=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Ads",rawStep:3},{label:"Ad Settings",rawStep:4}],bl=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Objective",rawStep:3},{label:"Setup",rawStep:4},{label:"Ads",rawStep:5},{label:"Ad Settings",rawStep:6}],Al=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Setup",rawStep:3},{label:"Ads",rawStep:4},{label:"Ad Settings",rawStep:5}],Ll=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Ads",rawStep:3},{label:"Ad Settings",rawStep:4}],Sl=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Objective",rawStep:3},{label:"Setup",rawStep:4},{label:"Ads",rawStep:5},{label:"Ad Settings",rawStep:6}],jl=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Setup",rawStep:3},{label:"Ads",rawStep:4},{label:"Ad Settings",rawStep:5}],cS=[{label:"Platform",rawStep:1},{label:"Campaign",rawStep:2},{label:"Objective",rawStep:3},{label:"Setup",rawStep:4},{label:"Ads",rawStep:5},{label:"Ad Settings",rawStep:6}],lS=[{label:"Platform",rawStep:1},{label:"Ads",rawStep:5},{label:"Objective",rawStep:3},{label:"Setup",rawStep:4},{label:"Ad Settings",rawStep:6},{label:"Review",rawStep:10}],uS=[{label:"Platform",rawStep:1},{label:"Ads",rawStep:5},{label:"Fit",rawStep:11},{label:"Objective",rawStep:3},{label:"Setup",rawStep:4},{label:"Ad Settings",rawStep:6},{label:"Review",rawStep:10}],hS=[{label:"Ads",rawStep:5},{label:"Objective",rawStep:3},{label:"Setup",rawStep:4},{label:"Ad Settings",rawStep:6},{label:"Review",rawStep:10},{label:"Payment",rawStep:9}],pS=[{label:"Ads",rawStep:5},{label:"Fit",rawStep:11},{label:"Objective",rawStep:3},{label:"Setup",rawStep:4},{label:"Ad Settings",rawStep:6},{label:"Review",rawStep:10},{label:"Payment",rawStep:9}],gS=[{label:"Creative",rawStep:2},{label:"Campaign",rawStep:4},{label:"Setup",rawStep:5},{label:"Ad Copy",rawStep:6},{label:"Review",rawStep:7}],mS=(e,n,a,i,s)=>{if(i)switch(s){case Ve.PLATFORM:return t.jsx(pt,{});case Ve.CREATIVE:return t.jsx(hA,{});case Ve.CAMPAIGN:return t.jsx(gA,{});case Ve.SETUP:return t.jsx(yA,{});case Ve.AD_COPY:return t.jsx(AA,{});case Ve.REVIEW:case Ve.PAYMENT:return t.jsx(jA,{});case Ve.PROGRESS:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:a("adLauncher.adsetSettings.launchingAd")})]});case Ve.SUCCESS:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:"Ad Launched on Meta"})]});default:return t.jsx(pt,{})}switch(e){case 1:return t.jsx(pt,{});case 2:return t.jsx(An,{});case 3:return t.jsx(Mh,{});case 4:return t.jsx(qh,{});case 5:return t.jsx(Lb,{});case 6:return t.jsx(Sb,{});case 7:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:a("adLauncher.adsetSettings.launchingAd")})]});case 8:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:`Ad Launched on ${n}`})]});case 9:return t.jsx(eS,{});case 10:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:a("adLauncher.adsetSettings.launchingAd")})]});case 11:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:"Ad Launched on Meta"})]});default:return t.jsx(pt,{})}},fS=(e,n,a,i)=>{if(i===lt.LAUNCH_INTO_EXISTING_CAMPAIGN)switch(e){case 1:return t.jsx(pt,{});case 2:return t.jsx(An,{});case 3:return t.jsx(wr,{});case 4:return t.jsx(Cr,{});case 5:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:a("adLauncher.adsetSettings.launchingAd")})]});case 6:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:`Ad Launched on ${n}`})]})}else if(i===lt.CREATE_NEW_CAMPAIGN)switch(e){case 1:return t.jsx(pt,{});case 2:return t.jsx(An,{});case 3:return t.jsx(kA,{});case 4:return t.jsx(Zc,{});case 5:return t.jsx(wr,{});case 6:return t.jsx(Cr,{});case 7:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:a("adLauncher.adsetSettings.launchingAd")})]});case 8:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:`Ad Launched on ${n}`})]})}else switch(e){case 1:return t.jsx(pt,{});case 2:return t.jsx(An,{});case 3:return t.jsx(Zc,{});case 4:return t.jsx(wr,{});case 5:return t.jsx(Cr,{});case 6:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:a("adLauncher.adsetSettings.launchingAd")})]});case 7:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:`Ad Launched on ${n}`})]})}},xS=(e,n,a,i,s,r)=>{if(a&&s)switch(r){case We.PLATFORM:return t.jsx(pt,{});case We.ADS:return t.jsx(Yb,{});case We.FORMATS:return t.jsx(Xb,{});case We.OBJECTIVE:return t.jsx(Jb,{});case We.SETUP:return t.jsx(nA,{});case We.FINAL_PREVIEW:case We.PAYMENT:return t.jsx(rA,{});case We.PROGRESS:return t.jsx(ss,{});case We.SUCCESS:return t.jsx(rs,{});default:return t.jsx(t.Fragment,{})}if(a)switch(e){case 1:return t.jsx(pt,{});case 2:return t.jsx(An,{});case 3:return t.jsx(Rb,{});case 4:return t.jsx($b,{});case 5:return t.jsx(Tc,{});case 6:return t.jsx(Wb,{});case 7:return t.jsx(pr,{adOrientation:"square"});case 8:return t.jsx(vr,{});case 9:return t.jsx(hr,{});case 10:return t.jsx(Ub,{});case 11:return t.jsx(ss,{});case 12:return t.jsx(rs,{});default:return t.jsx(t.Fragment,{})}else if(i)switch(e){case 1:return t.jsx(pt,{});case 2:return t.jsx(An,{});case 3:return t.jsx(Tc,{});case 4:return t.jsx(pr,{adOrientation:"square"});case 5:return t.jsx(vr,{});case 6:return t.jsx(hr,{});case 7:return t.jsx(ss,{});case 8:return t.jsx(rs,{});default:return t.jsx(t.Fragment,{})}else switch(e){case 1:return t.jsx(pt,{});case 2:return t.jsx(An,{});case 3:return t.jsx(pr,{adOrientation:"square"});case 4:return t.jsx(vr,{});case 5:return t.jsx(hr,{});case 6:return t.jsx(ss,{});case 7:return t.jsx(rs,{});default:return t.jsx(t.Fragment,{})}},gs=(e,n,a)=>{switch(e){case 0:return t.jsx(pt,{});case tt.VALIDATE_ACCOUNT:return t.jsx(ZA,{});case tt.CAMPAIGN:return t.jsx(XA,{});case tt.OBJECTIVE:return t.jsx(JA,{});case tt.CAMPAIGN_DETAILS:return t.jsx(qA,{});case tt.ADS:return t.jsx(DA,{});case tt.AD_SET:return t.jsx(KA,{});case tt.LOADING:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:a("adLauncher.adsetSettings.launchingAd")})]});case tt.SUCCESS:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:a("adLauncher.launchAd.adLaunchedOn",{platform:n})})]});default:return t.jsx(t.Fragment,{})}},yS=(e,n,a,i)=>(n===Ut.CREATE_NEW_CAMPAIGN||n===Ut.EXISTING_CAMPAIGN_NEW_AD_GROUP||n===Ut.EXISTING_CAMPAIGN_AND_AD_GROUP,gs(e,a,i)),ms=(e,n,a)=>{switch(e){case 0:return t.jsx(pt,{});case je.VALIDATE_ACCOUNT:return t.jsx(uL,{});case je.CAMPAIGN:return t.jsx(lL,{});case je.BIDDING_TYPE:return t.jsx(AL,{});case je.CAMPAIGN_DETAILS:return t.jsx(cL,{});case je.ADS:return t.jsx(tL,{});case je.FIT:return t.jsx(bL,{});case je.AD_SET:return t.jsx(dL,{});case je.REVIEW:return t.jsx(xL,{});case je.PAYMENT:return t.jsx(fL,{});case je.LOADING:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:a("adLauncher.adsetSettings.launchingAd")})]});case je.SUCCESS:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:a("adLauncher.launchAd.adLaunchedOn",{platform:n})})]});default:return t.jsx(t.Fragment,{})}},bS=(e,n,a,i,s,r)=>{if(s)switch(r){case Ue.PLATFORM:return t.jsx(pt,{});case Ue.CREATIVE:return t.jsx(_L,{});case Ue.FORMATS:return t.jsx(EL,{});case Ue.CAMPAIGN:return t.jsx(IL,{});case Ue.SETUP:return t.jsx(kL,{});case Ue.AD_COPY:return t.jsx(RL,{});case Ue.REVIEW:return t.jsx(BL,{});case Ue.PROGRESS:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:i("adLauncher.adsetSettings.launchingAd")})]});case Ue.SUCCESS:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:i("adLauncher.launchAd.adLaunchedOn",{platform:a})})]});default:return t.jsx(pt,{})}return n===ht.CREATE_NEW_CAMPAIGN||n===ht.EXISTING_CAMPAIGN_NEW_AD_GROUP||n===ht.EXISTING_CAMPAIGN_AND_AD_GROUP,ms(e,a,i)},AS=(e,n,a)=>
98{if(a===Jn.LAUNCH_INTO_EXISTING_CAMPAIGN)switch(e){case 1:return t.jsx(pt,{});case 2:return t.jsx(An,{});case 3:return t.jsx(kr,{});case 4:return t.jsx(Dr,{});case 5:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:n("adLauncher.adsetSettings.launchingAd")})]});case 6:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:"Ad Launched on LinkedIn"})]})}else if(a===Jn.CREATE_NEW_CAMPAIGN)switch(e){case 1:return t.jsx(pt,{});case 2:return t.jsx(An,{});case 3:return t.jsx(VL,{});case 4:return t.jsx(ml,{});case 5:return t.jsx(kr,{});case 6:return t.jsx(Dr,{});case 7:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:n("adLauncher.adsetSettings.launchingAd")})]});case 8:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:"Ad Launched on LinkedIn"})]})}else switch(e){case 1:return t.jsx(pt,{});case 2:return t.jsx(An,{});case 3:return t.jsx(ml,{});case 4:return t.jsx(kr,{});case 5:return t.jsx(Dr,{});case 6:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(et,{}),t.jsx(g,{fw:"600",mt:"sm",children:n("adLauncher.adsetSettings.launchingAd")})]});case 7:return t.jsxs(U,{h:"500px",justify:"center",align:"center",direction:"column",children:[t.jsx(Jt,{style:{color:"green",height:"50px",width:"50px"}}),t.jsx(g,{fw:"600",mt:"sm",children:"Ad Launched on LinkedIn"})]})}};function Ma(e,n){return e<1||e>n?-1:e-1}function LS(e){if(e.isManagedMeta)return e.metaManagedStep===Ve.PLATFORM;if(e.isManagedGoogle)return e.googleManagedStep===We.PLATFORM;if(e.isManagedOpenai)return e.openaiManagedStep===Ue.PLATFORM;const n=e.channel;return n==="facebook"||!n?e.createCampaignPage===1:n==="google"?e.googleAdLauncherStepNumber===1:n==="tiktok"?e.tiktokAdLauncherStepNumber===1:n==="linkedin"?e.linkedinAdLauncherStepNumber===1:n==="reddit"?e.redditAdLauncherStepNumber===0:n==="openai"?e.openaiAdLauncherStepNumber===0:!1}const SS=()=>{const e=va("(max-width: 768px)",!1,{getInitialValueInEffect:!1}),[n]=zi(),{createCampaignPage:a,selectedAdLauncherChannel:i,googleAdLauncherStepNumber:s,googleAdsSelection:r,createNewGoogleCampaign:o,launchIntoExistingGoogleCampaign:c,tiktokAdLauncherStepNumber:d,tiktokAdLauncherData:m,redditAdLauncherStepNumber:h,redditAdLauncherFlow:p,openaiAdLauncherStepNumber:l,openaiAdLauncherFlow:b,openaiManagedAccount:u,openaiResizedMediaByAd:y,selectedLauncherAds:I,linkedinAdLauncherStepNumber:C,linkedinAdLauncherData:E,launchIntoExistingMetaCampaign:P}=re(K=>K.adGallery),{channel:D,paymentInFlight:G,meta:{step:_},google:{step:O,adsSelection:f},openai:{step:k}}=re(K=>K.adLauncher),R=D==="meta",B=D==="google",$=D==="openai",{t:J}=de(),z=xe(),V=m.type,N=E.type;S.useEffect(()=>{i[0]==="reddit"&&z(It(["reddit"])),i[0]==="openai"&&z(It(["openai"]))},[i[0],z]);const{steps:L,activeStep:x}=S.useMemo(()=>{const K=i[0];if(K==="facebook")return R?{steps:iS,activeStep:{3:0,5:1,6:2,4:3,12:4,9:4}[_]??-1}:P?{steps:aS,activeStep:{1:0,2:1,3:2,4:3}[a]??-1}:{steps:nS,activeStep:{1:0,2:1,3:4,4:5,5:2,6:3}[a]??-1};if(K==="google")return o?{steps:B?rS:sS,activeStep:(B?{2:0,3:1,4:2,5:3,6:4,7:4}:{1:0,2:1,3:2,4:2,5:3,6:4,7:5,8:6,9:7,10:8})[B?O:s]??-1}:c?{steps:oS,activeStep:{1:0,2:1,3:2,4:3,5:4,6:5}[s]??-1}:{steps:dS,activeStep:{1:0,2:1,3:2,4:3,5:4}[s]??-1};if(K==="tiktok")return V===lt.LAUNCH_INTO_EXISTING_CAMPAIGN?{steps:yl,activeStep:Ma(d,yl.length)}:V===lt.CREATE_NEW_CAMPAIGN?{steps:bl,activeStep:Ma(d,bl.length)}:{steps:Al,activeStep:Ma(d,Al.length)};if(K==="linkedin")return N===Jn.LAUNCH_INTO_EXISTING_CAMPAIGN?{steps:Ll,activeStep:Ma(C,Ll.length)}:N===Jn.CREATE_NEW_CAMPAIGN?{steps:Sl,activeStep:Ma(C,Sl.length)}:{steps:jl,activeStep:Ma(C,jl.length)};if(K==="reddit")return{steps:cS,activeStep:{1:0,2:1,3:2,4:3,5:4,6:5}[h]??-1};if(K==="openai"){if($)return{steps:gS,activeStep:{2:0,3:0,4:1,5:2,6:3,7:4}[k]??-1};const M=l===je.FIT||Ws(I,y),ee=b===ht.EXISTING_CAMPAIGN_AND_AD_GROUP?je.CAMPAIGN:je.CAMPAIGN_DETAILS,ne=Q=>Q.map(j=>j.label==="Setup"?{...j,rawStep:ee}:j);if(u){const Q={5:0,11:1,3:2,2:3,4:3,6:4,10:5,9:6},j={5:0,3:1,2:2,4:2,6:3,10:4,9:5};return{steps:ne(M?pS:hS),activeStep:(M?Q:j)[l]??-1}}const X={1:0,5:1,11:2,3:3,2:4,4:4,6:5,10:6},ie={1:0,5:1,3:2,2:3,4:3,6:4,10:5};return{steps:ne(M?uS:lS),activeStep:(M?X:ie)[l]??-1}}return{steps:[],activeStep:-1}},[i,a,s,o,c,B,R,$,_,O,k,P,d,V,C,N,h,l,b,u,I,y]),v=LS({channel:i[0],createCampaignPage:a,googleAdLauncherStepNumber:s,tiktokAdLauncherStepNumber:d,linkedinAdLauncherStepNumber:C,redditAdLauncherStepNumber:h,openaiAdLauncherStepNumber:l,isManagedMeta:R,isManagedGoogle:B,isManagedOpenai:$,metaManagedStep:_,googleManagedStep:O,openaiManagedStep:k}),T=!R&&!B&&!$&&!!i[0],H=!n.get("draft")&&!n.get("managed")&&n.get("resumeOpenaiLaunch")!=="1"&&!T?!0:v,F=!e&&!H&&L.length>0&&x>=0&&(T||R||B||$),w=K=>{const M=i[0];
98if(!G&&!(M==="google"&&B)){if(M==="facebook"&&R){z(Dt(K));return}if(M==="openai"&&$){z(ct(K));return}M==="facebook"?z(nt(K)):M==="google"?z(Ze(K)):M==="tiktok"?z(Tt(K)):M==="linkedin"?z(Mt(K)):M==="reddit"?z(ut(K)):M==="openai"&&z($e(K))}};return t.jsxs(A,{style:{display:"flex",flexDirection:"column",flex:1,minHeight:0},children:[F&&t.jsx(A,{style:{flexShrink:0},children:t.jsx(tS,{steps:L,activeStep:x,onStepClick:G?void 0:w})}),H?t.jsx(A,{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:t.jsx(pt,{})}):t.jsxs(t.Fragment,{children:[i[0]==="facebook"&&t.jsx(A,{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:mS(a,"facebook",J,R,_)}),i[0]==="google"&&(!(B?f.cropping.open:r.cropping.open)||B)&&xS(s,J,o,c,B,O),i[0]==="tiktok"&&fS(d,"tiktok",J,V),i[0]==="reddit"&&yS(h,p,"reddit",J),i[0]==="openai"&&t.jsx(A,{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:bS(l,b,"openai",J,$,k)}),i[0]==="linkedin"&&AS(C,J,N)]}),(B?f.cropping.open:r.cropping.open)&&t.jsx(IA,{})]})},jS=({onSaveDraft:e,isSavingDraft:n})=>{const{t:a}=de(),i=re(r=>r.adLauncher),s=!!e&&Ru(i);return dg({pageName:a("adLauncher.launchAd.title"),actionSection:s?t.jsx(Me,{variant:"default",size:"sm",loading:n,onClick:e,children:a("adLauncher.launchAd.hub.drafts.save")}):void 0},[a,s,n,e]),null},d0=()=>{const e=xe(),{t:n}=de(),{brandId:a}=ve(),[i,s]=zi(),r=va("(max-width: 768px)",!1,{getInitialValueInEffect:!1}),o=S.useRef(null),c=S.useRef(!1),d=Fl(),{persist:m,isSaving:h}=Rt(),p=i.get("draft"),l=i.get("managed"),b=i.get("resumeOpenaiLaunch")==="1";return S.useEffect(()=>{c.current||(c.current=!0,e(bo()),e(Tl()),e(Ao()),e(Ml()),e(cg()))},[e]),S.useEffect(()=>()=>Ti(),[]),S.useEffect(()=>{if(b&&a){const u=gL(a),y=new URLSearchParams(i);if(y.delete("resumeOpenaiLaunch"),s(y,{replace:!0}),u){e(lg(u)),e(It(["openai"])),e($e(u.openaiAdLauncherStepNumber||je.PAYMENT)),gp();return}he.show({title:n("adLauncher.openaiAdLauncher.resume.missingTitle"),message:n("adLauncher.openaiAdLauncher.resume.missingMessage"),color:"orange"});return}if(p&&a){if(o.current===p||(o.current=p,d.getState().adLauncher.draftId===Number(p)))return;const u=p;(async()=>{var y;try{const I=await Ye.get(`api/launch_drafts/${u}`,{params:{brand_id:Number(a)}});if(o.current!==u)return;const C=await Ou(((y=I.data)==null?void 0:y.payloadJson)||"{}");if(o.current!==u)return;e(Nl({...C,draftId:Number(u)}));const E=C.channel;E==="google"?(e(It(["google"])),e(Bt(!1)),e(Kt(!1)),e(qt(!1)),e(Ba(!0)),e(Ua(!1))):E==="meta"?(e(It(["facebook"])),e(Kt(!1)),e(Bt(!1)),e(qt(!1))):E==="openai"&&(e(It(["openai"])),e(qt(!1)),e(Bt(!1)),e(Kt(!1)))}catch{if(o.current!==u)return;o.current=null,e(wn()),e(Rs()),e(wi()),he.show({color:"orange",title:n("adLauncher.launchAd.hub.drafts.resumeFailedTitle"),message:n("adLauncher.launchAd.hub.drafts.resumeFailedMessage")})}})();return}o.current=null,!l&&e(wi())},[a,e,p,l,b,i,s,d,n]),t.jsxs(A,{px:{base:"md",sm:"xl"},pb:0,style:{display:"flex",flexDirection:"column",overflow:"hidden",...r?{height:"100dvh",boxSizing:"border-box"}:{height:"100vh"}},children:[t.jsx(A,{style:{flexShrink:0},children:t.jsx(jS,{onSaveDraft:()=>{m({notify:!0})},isSavingDraft:h})}),t.jsx(A,{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:t.jsx(SS,{})})]})};export{d0 as default}; 99//# sourceMappingURL=AdLauncherPage-CU46zRee.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.