1import{c as Xt,r,d as Pe,j as e,u as $e,i as En,m as La,q as Tn,D as wn,X as ca,C as us,y as de,bj as Nn,a5 as In,ag as Gs,ad as Oa,w as Rn,x as kn,ab as _n,bk as An,T as Pn,au as Fn,U as da,J as Ua,bl as Mn,G as ua,bm as Ln,_ as Ha,M as On,bn as Un,K as _s,L as Hn,ae as Gn,ay as as,F as Wn,f as ns,a as Yn}from"./vendor-core-CSqf0onn.js";import{b as ct}from"./vendor-router-bax5p2Kx.js";import{U as ke,g2 as Bn,W as ha,X as Ot,jl as Vn,ey as Lt,kK as Cs,nL as ps,nM as Re,gY as Ls,e7 as ma,jh as gs,kR as qn,kD as zn,iI as Ga,nN as $n,kT as Qn,k_ as Kn,kV as Zn,eD as ae,hE as Xn,I as Ke,d as Wa,B as L,ep as Jn,eq as Ct,af as er,nO as tr,bn as sr,es as ar,ag as Ya,a6 as ge,ex as rs,nP as nr,ew as rr,bK as ue,a0 as Oe,fs as Ba,b_ as Qe,b$ as Va,bL as Fe,a1 as Ws,mV as As,Z as He,_ as Ge,$ as We,nQ as tt,l3 as fa,l4 as lr,aD as or,mX as pa,Y as bs,nR as ir,nS as cr,ig as dr,nT as ur,nU as hr,ij as mr,Q as ga,S as fr,V as Os,aZ as Ys,nV as qa,bX as pr,bY as gr,bZ as vr,bf as qt,bg as zt,bh as $t,bi as Qt,bj as Kt,fF as xr,aG as za,aN as $a,aI as Qa,aX as be,A as Us,eW as Sr,gA as yr,D as Cr,H as br,eb as Zt,eg as Dr,jm as jr,aO as xt,ef as Er,ee as Tr,bJ as wr,aP as bt,aQ as Dt,aR as jt,aS as Et,bO as Tt,aY as Ps,aM as Nr,eG as Ka,L as St,bP as Ht,c4 as Bs,c5 as Vs,c6 as qs,c7 as zs,c8 as $s,c9 as Qs,fq as Ir,nW as ls,bR as Ks,bk as Za,nX as Rr,nY as kr,aW as se,c0 as _r,c1 as Ar,c2 as va,c3 as xa,eo as Pr,nZ as Xa,b1 as Sa,e4 as ya,nH as Fr,l1 as Mr,n_ as Lr,f_ as Or,n$ as Ur,l5 as Hr}from"./index-BLvPBB0_.js";import{i as Ja}from"./folder-security-SIJtsJQg.js";import{m as Hs,a as Ca}from"./pagination-BhDSwEE_.js";import{u as ba,b as Gr,M as Wr}from"./MoveToFolderDialog-uJPE-RHk.js";import{b as Yr,c as Br,e as Vr,s as qr,g as zr,h as $r,i as Qr,j as Kr,C as Zr,F as Zs}from"./useDocPageUrls-dCFf0V2l.js";import{S as Xr,e as et,D as vt,f as Mt,g as Jr,d as el,c as tl,R as sl,h as al,E as Fs,i as Da,j as nl,k as rl,b as ll,l as en,m as ol}from"./constants-DQ-K3J1b.js";import{u as il}from"./useScrollViewport-BXwtlhab.js";import{b as cl,F as tn,L as ja,u as dl,a as ul,S as hl}from"./FavoriteMenuItem-BNahJz-_.js";import{u as le}from"./vendor-i18n-CsG5WAan.js";import{ax as sn,X as an,s as Xs,c as nn,aP as Ds,T as js,Y as it,d as Ut,bZ as ml,q as rn,aS as Vt,b9 as fl,_ as Js,c0 as pl,c9 as ln,P as gl,aT as vl,Z as on,k as ea,c2 as xl,cc as cn,a_ as dn,n as ta,i as sa,j as Sl,as as un,br as hn,z as Jt,bg as vs,G as yl,m as Cl,a3 as bl,F as Dl,l as xs,bh as jl,bf as El,L as yt,o as mn,b as Tl,E as wl}from"./vendor-icons-DiwvYKnv.js";import{S as Nl,a as Il,b as Rl,C as kl,c as Ea,E as _l,e as fn,g as pn,d as gn,i as vn}from"./cache-utils-DopksM_W.js";import"./vendor-posthog-DjDKwFVN.js";import{R as hs}from"./DevicePickerCombobox-DoDzIxEf.js";import{u as xn}from"./useFolderSecurityCheck-B6XrCXz5.js";import{u as Al}from"./useEntityDeleteDetection-BZc6AflT.js";import{i as Ss,b as ms,S as Pl}from"./ScheduleEventFormFields-Kx7jzkyA.js";import{l as Fl,a as Ml,b as Ll,c as Ol,d as Ul,e as Hl,f as Gl,k as fs,i as Wl,g as Yl,h as Bl,j as Vl,m as ql}from"./detect-overlap-CzTFtqJ1.js";import{P as zl}from"./PerPageDurationReview-BrSOHfFC.js";import{c as $l,P as Ql}from"./PushToScreensDialog-DyXf4dGM.js";import{p as Kl,a as Zl}from"./build-rrule-string-Cjyn0LFW.js";import{P as aa}from"./PlaylistPickerCombobox-kgWyWRZB.js";import{u as Sn}from"./useHideOptiSignsBranding-CRPgkor9.js";import{R as Xl}from"./RecurrenceDialog-CcZRdqn4.js";import{u as Jl}from"./usePostFolderDeleteNavigation-C7rJqizV.js";import{S as eo,a as to,F as so}from"./SelectAssetModal-BzJUGjmJ.js";import{C as ao}from"./ContentPreviewDialog-e1sOUL1L.js";import"./vendor-firebase-B4mX4twW.js";import"./index-B8AlBU93.js";import"./device-status-CrFedK84.js";import"./useAuth-Czgvshzv.js";import"./useAssetActions-C2mK9gx1.js";import"./TruncatedTooltip-qIdKXPej.js";import"./ContentPreviewPanel-DnG9ny3k.js";import"./utils-BbP3fNf-.js";import"./ScreenTargetSelector-d6vjIToZ.js";import"./MultiSelectCombobox-OQDq_jRn.js";import"./TagInput-Cjz3a_5J.js";import"./AssetThumbnail-DCAC6AGR.js";import"./useAssetPreviewUrl-Cp6iqWYE.js";import"./purify.es-CEBYger9.js";import"./useAssetTags-D4ZMHjgG.js";import"./PostSaveDialog-BeCioyEx.js";import"./feed-thumbnail-DYX1iOs-.js";
1import"./useConvertingAssetPoller-CN0_1qWp.js";function no(t,a){const s=Xt(),{activeTeamId:n}=ke(),o=r.useCallback(async i=>{n&&await s.query({query:Bn,variables:{ids:i,teamId:n},fetchPolicy:"network-only"})},[s,n]);ha("schedule",t,{batchFetchByIds:o});const l=r.useCallback(()=>{t(),a?.()},[t,a]);ha("group",l,{subType:Ot.SCHEDULE,refetchOnUpdate:!0})}function Es(t){const{activeTeamId:a}=ke(),{data:s,loading:n,refetch:o}=Pe(Vn,{variables:{_id:t,teamId:a},skip:!a||!t,fetchPolicy:"cache-and-network"});return{schedule:s?.getScheduleDetail??null,loading:n,refetch:o}}const os=1e3,Ta=50,ro=async()=>({hasMore:!1});function na(t,a){const s=Xt(),n=Lt(oe=>oe.newItemObjects),{activeTeamId:o}=ke(),l=Cs(t??null,a),{sortField:i,sortDirection:u}=ps(),{searchText:c,searchScope:f,mode:m,favoritesOnly:h}=Re(),g=!t||t==="/",p=c.length>=1,x=h&&!(p&&f==="all"),S=m===ae.SHARE_WITH_ME||t===ae.SHARE_WITH_ME,v=p&&!x,D=!!o&&!S&&!x,I=Kn(Xr),P=Zn(),j={},C=t&&t!=="/"&&t!==ae.SHARE_WITH_ME;!x&&!(c&&f==="all")&&(j.path=C?t:null,l&&C&&(j.teamId=l)),x&&c&&(j.name_regex=c);const b={};!x&&!(c&&f==="all")&&(b.path=C?t:null,l&&C&&(b.teamId=l));const N={[i]:u},{sharedFolders:A,loading:R,refetch:k}=Yr(Ot.SCHEDULE,{skip:!S}),F=f==="all"?void 0:t??void 0,O=I,{data:w,loading:G,fetchMore:B,refetch:$}=Pe($n,{variables:{teamId:o,input:{query:c||"",limit:O,path:F}},skip:!o||!v||S&&f!=="all",fetchPolicy:"network-only"}),{data:ne,loading:Y}=Pe(Qn,{variables:{teamId:o,input:{query:c||"",limit:Ta,type:Ot.SCHEDULE}},skip:!o||!v||S&&f!=="all",fetchPolicy:"network-only"}),{extraGroups:V,hasMore:ce,fetchNextChunk:ve}=Br({enabled:!!o&&v&&!(S&&f!=="all"),teamId:o,query:c||"",type:Ot.SCHEDULE,pageOneCount:ne?.searchGroups?.length??0,pageSize:Ta}),De={type:"SCHEDULE",...g||S||x?{}:{teamId:l},...x?{}:{path:g||S?null:t??null},...x&&c?{name_contains:c}:{}},pe={type:"SCHEDULE",...g||S||x?{}:{teamId:l},...x?{}:{path:g||S?null:t??null}},Ee={[i]:u},E=Ls(oe=>oe.reconcile),{data:Q,error:J,refetch:he}=Pe(ma,{variables:{first:os,teamId:o,query:b,sort:N,extendParams:{favoritesOnly:!0}},skip:!D,fetchPolicy:"cache-and-network"}),{data:d,error:y,refetch:_}=Pe(gs,{variables:{first:os,teamId:o,query:pe,sort:Ee,extendParams:{favoritesOnly:!0}},skip:!D,fetchPolicy:"cache-and-network"}),H=r.useCallback(()=>{D&&(he(),_())},[D,he,_]),X=!(!D||Q!==void 0||J!==void 0)||!(!D||d!==void 0||y!==void 0),ee={first:I,teamId:o,query:j,sort:N,...x?{extendParams:{favoritesOnly:!0}}:{}},re=!o||S||v,ye=r.useRef(ee);v||(ye.current=ee);const{data:te,loading:me,fetchMore:xe,refetch:W}=Pe(ma,{variables:ye.current,skip:re,fetchPolicy:"cache-and-network"}),Ye=r.useRef(!1),Me=r.useRef(te);te&&(Me.current=te);const Be=Ye.current?Me.current??te:te,dt=r.useRef(h),st=h!==dt.current&&!te;te&&(dt.current=h);const at=r.useRef(ee);at.current=ee;const ut=r.useRef(I),Ze=r.useRef(P),Se=r.useCallback(()=>{re||Lt.getState().newItemObjects.length>0||(Ye.current=!0,W({...at.current,first:ut.current}).finally(()=>{Ye.current=!1}))},[W,re]),Ve={first:P,teamId:o,query:De,sort:Ee,...x?{extendParams:{favoritesOnly:!0}}:{}},nt=!o||S||v,ht=r.useRef(Ve);v||(ht.current=Ve);const{data:qe,loading:T,fetchMore:K,refetch:Ce}=Pe(gs,{variables:ht.current,skip:nt,fetchPolicy:"cache-and-network"}),ie=r.useRef(!1),Te=r.useRef(qe);qe&&(Te.current=qe);const we=ie.current?Te.current??qe:qe,Le=r.useRef(Ve);Le.current=Ve;const Ae=r.useCallback(()=>{nt||(ie.current=!0,Ce({...Le.current,first:Ze.current}).finally(()=>{ie.current=!1}))},[Ce,nt]),Ue=we?.groups?.page?.pageInfo,It=(Ue?.hasNextPage??!1)&&!T,es=r.useRef(Ue);es.current=Ue;const Rt=r.useRef(null),rt=r.useRef(0),Ts=r.useCallback(async()=>{const oe=rt.current,je=Rt.current??es.current?.endCursor??null;if(!je)return{hasMore:!1};let Ie=!1;const fe=await K({variables:{after:je,first:qn()},updateQuery:(Ft,{fetchMoreResult:gt})=>oe!==rt.current||!gt||!Ft?.groups?.page?.edges?Ft:(Ie=!0,{groups:{...gt.groups,page:{...gt.groups.page,edges:Hs(Ft.groups.page.edges,gt.groups.page.edges)}}})});if(oe!==rt.current||!Ie)return{hasMore:!1,stale:!0};const Pt=fe.data?.groups?.page?.pageInfo;return Rt.current=Pt?.endCursor??null,{hasMore:Pt?.hasNextPage??!1}},[K]),Gt=Be?.schedules?.page?.edges??[],ws=D?Q?.schedules?.page?.edges??[]:[],Ns=Gt,ts=[...Q?.schedules?.extensions?.groups??[],...Be?.schedules?.extensions?.groups??[]],Is=Ns.map(oe=>{const je=oe.node;if(!je.parentGroupInfo&&je.path&&ts.length){const Ie=ts.find(fe=>(fe.path??"")+"/"+fe.name===je.path&&fe.teamId===je.teamId);if(Ie)return{...je,parentGroupInfo:Ie}}return je}),lt=ba(Is),Wt=r.useMemo(()=>
1{if(!n.length||x)return lt;const oe=new Set(n.map(fe=>fe._id)),je=new Map(lt.map(fe=>[fe._id,fe])),Ie=n.map(fe=>je.get(fe._id)??(Object.keys(fe).length>1&&zn(fe,"Schedule")?fe:void 0)).filter(fe=>fe!==void 0);return Ie.length?[...Ie,...lt.filter(fe=>!oe.has(fe._id))]:lt},[lt,n,x]),mt=D?d?.groups?.page?.edges?.map(oe=>oe.node)??[]:[],kt=we?.groups?.page?.edges?.map(oe=>oe.node)??[],Yt=ba(kt),Xe=Be?.schedules?.page?.pageInfo,ot=(x?Gt:ws).map(oe=>oe.node._id),ft=(x?kt:mt).map(oe=>oe._id),pt=ot.join(","),Rs=ft.join(","),_t=D||x,M=x?Be!==void 0:Q!==void 0,q=x?we!==void 0:d!==void 0;r.useEffect(()=>{!_t||!M||(D&&ot.length>=os&&console.warn(`[favorites] schedules view has ⥠${os} favorites â the pinned section is truncated; all favorites remain reachable via the Favorites tab.`),E("schedules:item",ot))},[pt,_t,M,E]),r.useEffect(()=>{!_t||!q||E("schedules:group",ft)},[Rs,_t,q,E]);const Z=Be?.schedules?.pageData?.total,_e=we?.groups?.pageData?.total;ut.current=Math.max(I,Gt.length),Ze.current=Math.max(P,Yt.length);const[Ne,Bt]=r.useState(!1),At=r.useRef(null),oa=r.useRef(""),ks=JSON.stringify(j)+(o??"")+(p?c:"")+`|${i}:${u}|${x?"fav":""}`;ks!==oa.current&&(oa.current=ks,At.current=null,Rt.current=null,rt.current+=1,Me.current=void 0),r.useEffect(()=>()=>Lt.getState().clearNewItemObjects(),[ks]),r.useEffect(()=>{const{newItemObjects:oe}=Lt.getState();if(!te||!oe.length)return;const je=new Set(te?.schedules?.page?.edges?.map(Ie=>Ie.node._id)??[]);oe.forEach(({_id:Ie})=>{je.has(Ie)&&Ga(s.cache,{rootField:"schedules",newItemTypename:"Schedule",newItemId:Ie,match:{path:!t||t==="/"?null:t,teamId:o??"",engage:!1}})})},[te]);const Dn=r.useCallback(()=>{const oe=rt.current,je=Xe?.endCursor;!Xe?.hasNextPage||!je||je!==At.current&&(At.current=je,Bt(!0),xe({variables:{after:je},updateQuery:(Ie,{fetchMoreResult:fe})=>oe!==rt.current||!fe||!Ie?.schedules?.page?.edges?Ie:{schedules:{...fe.schedules,page:{...fe.schedules.page,edges:Hs(Ie.schedules.page.edges,fe.schedules.page.edges)}}}}).finally(()=>{Bt(!1)}))},[Xe?.hasNextPage,Xe?.endCursor,xe]);if(S&&!(p&&f==="all")){const oe=A??[];return{schedules:[],groups:oe,loading:R,totalCount:0,folderTotalCount:oe.length,hasNextPage:!1,loadMore:()=>{},isLoadingMore:!1,hasFolderNextPage:!1,fetchNextFolderChunk:ro,refetch:k}}if(v){const oe=w?.searchSchedules??[],je=Ca(ne?.searchGroups??[],V),fe=f==="folder"&&!g?je.filter(ss=>ss.path===t):je,Pt=oe.length>0&&oe.length%O===0,Ft=()=>{Pt&&B({variables:{input:{query:c||"",limit:O,offset:oe.length,path:F}},updateQuery:(ss,{fetchMoreResult:ia})=>ia?{searchSchedules:Ca(ss?.searchSchedules??[],ia.searchSchedules)}:ss})},gt=Vr(oe,i,u),jn=qr(fe,i,u);return{schedules:gt,groups:jn,loading:G||Y,totalCount:gt.length,folderTotalCount:fe.length,hasNextPage:Pt,loadMore:Ft,isLoadingMore:!1,hasFolderNextPage:ce&&!Y,fetchNextFolderChunk:ve,refetch:$}}return{schedules:st?[]:Wt,groups:st?[]:Yt,loading:me||T||st||X,totalCount:Z,folderTotalCount:_e,hasNextPage:Xe?.hasNextPage??!1,loadMore:Dn,isLoadingMore:Ne,hasFolderNextPage:It,fetchNextFolderChunk:Ts,refetch:()=>{Se(),Ae(),H()}}}function wt(t,a){const s=ke(v=>v.activeTeamId),n=Cs(t??null,a),o=t??"/",l=o!=="/"&&o.length>1&&o.startsWith("/"),i=o.lastIndexOf("/"),u=i>0?o.substring(0,i):null,c=l?o.substring(i+1):null,f=!l||!n||!c,m=!!a&&a!==s,{data:h,loading:g,refetch:p}=Pe(gs,{variables:{teamId:s,query:{type:"SCHEDULE",...u?{teamId:n}:{},path:u,name:c},first:1},skip:f,fetchPolicy:m?"network-only":"cache-and-network"}),x=h?.groups?.page?.edges?.[0]?.node??null,S=r.useCallback(()=>{f||p()},[f,p]);return{currentGroup:x,loading:f?!1:g,refetch:S}}function lo(){const t=Re(l=>l.searchText),a=Re(l=>l.setSearchText),s=Re(l=>l.clearSearch),n=r.useRef(void 0),o=l=>{n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{a(l),l.trim()&&Xn({queryLength:l.trim().length,entityType:"schedules"})},300)};return r.useEffect(()=>()=>{n.current&&clearTimeout(n.current)},[]),{searchText:t,handleSearchChange:o,clearSearch:s}}function oo({scopeChip:t,onScopeChipRemove:a}){const{t:s}=le(),{searchText:n,handleSearchChange:o,clearSearch:l}=lo(),[i,u]=r.useState(n),[c,f]=r.useState(!1),m=r.useRef(""),h=S=>{u(S),m.current=S,o(S)},g=()=>{u(""),m.current="",l()};r.useEffect(()=>{n!==m.current&&(u(n),m.current=n)},[n]);const p=c||!!i,x=!!t&&p;return e.jsxs("div",{className:"relative flex h-9 flex-1 items-center rounded-md border border-input bg-card",children:[!p&&e.jsx(sn,{className:"pointer-events-none absolute left-2.5 h-4 w-4 text-muted-foreground"}),x&&e.jsx("div",{className:"ml-2 mr-1 flex min-w-0 items-center",children:t}),e.jsx(Ke,{placeholder:s("Search Schedules"),value:i,onChange:S=>h(S.target.value),onFocus:()=>f(!0),onBlur:()=>f(!1),onKeyDown:S=>{x&&cl(S)&&(S.preventDefault(),a?.())},className:Wa("h-9 min-w-0 flex-1 border-0 bg-transparent text-sm shadow-none focus-visible:ring-0 dark:bg-transparent",x?"pl-0":p?"pl-3":"pl-9",i?"pr-8":"pr-3"),"data-testid":"schedule-search-input"}),i&&e.jsx(L,{variant:"ghost",size:"icon-sm",className:"absolute right-1 h-6 w-6","aria-label":s("Clear search"),onClick:g,children:e.jsx(an,{className:"h-3 w-3"})})]})}const io=En` 2 fragment NewSchedule on Schedule { 3 _id 4 name 5 teamId 6 path 7 tags 8 defaultAssetId 9 createdAt 10 lastUpdatedDate 11 } 12`;function wa(t,a,s){t.writeFragment({fragment:io,data:{__typename:"Schedule",_id:a._id,name:a.name,teamId:a.teamId??null,path:a.path??null,tags:a.tags??[],defaultAssetId:a.defaultAssetId??null,createdAt:a.createdAt??null,lastUpdatedDate:a.lastUpdatedDate??null}}),s&&Ga(t,{rootField:"schedules",newItemTypename:"Schedule",newItemId:a._id,match:s})}function is(t,a){a.length!==0&&rr(t,{rootField:"schedules",removedIds:a})}function cs(t){const s=Lt.getState().newItemObjects,n=new Set(t),o=s.length>0,l=t.length>0&&o&&s.some(i=>n.has(i._id));return{affectedSet:n,hasPinnedItems:o,hasAffectedPinnedItems:l}}function Nt(){const{t}=le(),{activeTeamId:a}=ke(),s=Jn(),o=Ct()===ae.SHARE_WITH_ME,l=o?["Schedules","GroupShareds"]:["Schedules","ScheduleGroups"],i=o?["GroupShareds"]:["ScheduleGroups"],[u]=$e(er),[c]=$e(tr),[f]=$e(sr,{refetchQueries:l}),[m]=$e(ar),[h]=$e(Ya);return{createSchedule:async(j,C,b,N)=>{try{const A={name:j,path:C,...b&&{teamId:b}},R=await u({variables:{teamId:a,payload:A},refetchQueries:i,update:(k,{data:F})=>
12{const O=F?.saveSchedule;O?._id&&wa(k,O,N)}});return ge.success(t("Schedule created")),nr(()=>s("firstScheduleCreated")),R.data?.saveSchedule??null}catch{return ge.error(t("Failed to create schedule")),null}},renameSchedule:async(j,C)=>{try{await u({variables:{teamId:a,payload:{_id:j,name:C}},update:(b,{data:N})=>{const A=N?.saveSchedule;if(!A?._id)return;const R=b.identify({__typename:"Schedule",_id:A._id});R&&b.modify({id:R,fields:{name:()=>A.name}})}}),ge.success(t("Schedule renamed"))}catch{ge.error(t("Failed to rename schedule"))}},duplicateSchedule:async j=>{try{const C=await c({variables:{teamId:a,_id:j},refetchQueries:l,update:(N,{data:A})=>{const R=A?.cloneSchedule;R?._id&&wa(N,R)}}),b=C.data?.cloneSchedule;return b?._id&&Lt.getState().requestScrollToNewItems([b._id],[b]),ge.success(t("Schedule duplicated")),C.data?.cloneSchedule??null}catch{return ge.error(t("Failed to duplicate schedule")),null}},moveSchedule:async(j,C)=>{try{const{affectedSet:b,hasPinnedItems:N,hasAffectedPinnedItems:A}=cs([j]);await u({variables:{teamId:a,payload:{_id:j,path:C}},update:N?R=>{is(R,[j])}:void 0,refetchQueries:N?i:l}),A&&rs(b),ge.success(t("Schedule moved"))}catch{ge.error(t("Failed to move schedule"))}}
12,moveToFolder:async(j,C,b,N)=>{const A={type:"SCHEDULE",newPath:b??void 0,ids:j.length>0?j:void 0,groupIds:C.length>0?C:void 0,toTeamId:N||a},{affectedSet:R,hasPinnedItems:k,hasAffectedPinnedItems:F}=cs(j),O=await m({variables:{teamId:a,payload:A},update:k?w=>{is(w,j)}:void 0,refetchQueries:k?i:l});return F&&rs(R),O},deleteSchedule:async j=>{try{const{affectedSet:C,hasPinnedItems:b,hasAffectedPinnedItems:N}=cs([j]);await h({variables:{teamId:a,payload:{ids:[j],type:"SCHEDULE"}},update:b?A=>{is(A,[j])}:void 0,refetchQueries:b?i:l}),ge.success(t("Schedule deleted")),N&&rs(C)}catch{ge.error(t("Failed to delete schedule"))}},createFolder:async(j,C)=>{try{const b={name:j,type:"SCHEDULE",...C?{path:C}:{}};return await f({variables:{teamId:a,payload:b}}),ge.success(t("Folder created")),!0}catch{return ge.error(t("Failed to create folder")),null}},bulkDelete:async(j,C=[])=>{try{const{affectedSet:b,hasPinnedItems:N,hasAffectedPinnedItems:A}=cs(j);await h({variables:{teamId:a,payload:{ids:j.length>0?j:void 0,groupIds:C.length>0?C:void 0,type:"SCHEDULE"}},update:N?k=>{is(k,j)}:void 0,refetchQueries:N?i:l});const R=j.length+C.length;ge.success(t("Deleted {{count}} item(s)",{count:R})),A&&rs(b)}catch{ge.error(t("Failed to delete schedules"))}}}}const co=r.memo(function({schedule:a,isActive:s,isSelected:n=!1,currentFolder:o,isSearchActive:l,isHighlighted:i,onSelect:u,onDuplicate:c,onToggleSelect:f,prevSelected:m,nextSelected:h}){const{t:g}
12=le(),p=ue(k=>k.openDialog),{duplicateSchedule:x}=Nt(),S=Oe(),v=S.canEdit("schedule"),D=S.canDelete("schedule"),I=S.canEdit("schedule"),P=l&&a.parentGroupInfo?a.parentGroupInfo:o,C=Oe(P?{folder:P}:{}),b=C.canEdit("schedule"),N=C.canDelete("schedule"),A=C.canEdit("schedule"),R=Ba(a._id);return e.jsx(Nl,{"data-testid":"schedule-list-item",name:a.name||g("Untitled Schedule"),isActive:s,isSelected:n,className:Fe(i&&"animate-folder-blink-bg"),prevSelected:m,nextSelected:h,onClick:u,onToggleSelect:f,icon:e.jsx(Ut,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),statusIcon:R?e.jsx(hs,{icon:it,label:g("Favorited"),className:"h-3 w-3 fill-none"}):void 0,dropdownLabel:g("Schedule actions"),dropdownContent:e.jsxs(e.Fragment,{children:[v&&e.jsxs(Qe,{disabled:!b,onClick:()=>p("renameSchedule",{schedule:a}),children:[e.jsx(Xs,{className:"mr-2 h-4 w-4"}),g("Rename")]}),v&&e.jsxs(Qe,{disabled:!b,onClick:async()=>{if(!b)return;const k=await x(a._id);k&&c(k._id)},children:[e.jsx(nn,{className:"mr-2 h-4 w-4"}),g("Duplicate")]}),I&&e.jsxs(Qe,{disabled:!A,onClick:()=>p("moveSchedule",{schedule:a}),children:[e.jsx(Ds,{className:"mr-2 h-4 w-4"}),g("Move To")]}),e.jsx(tn,{objectId:a._id,type:"SCHEDULE"}),D&&e.jsxs(e.Fragment,{children:[e.jsx(Va,{}),e.jsxs(Qe,{className:"hover:text-destructive focus:text-destructive",disabled:!N,onClick:()=>p("deleteSchedule",{schedule:a}),children:[e.jsx(js,{className:"mr-2 h-4 w-4"}),g("Delete")]})]})]})})},(t,a)=>t.schedule._id===a.schedule._id&&t.schedule.lastUpdatedDate===a.schedule.lastUpdatedDate&&t.schedule.name===a.schedule.name&&t.isActive===a.isActive&&t.isSelected===a.isSelected&&t.prevSelected===a.prevSelected&&t.nextSelected===a.nextSelected&&t.isSearchActive===a.isSearchActive&&t.currentFolder?._id===a.currentFolder?._id&&t.currentFolder?.isFolderSecurityEdit===a.currentFolder?.isFolderSecurityEdit&&t.isHighlighted===a.isHighlighted);function uo({folder:t,onNavigate:a,parentFolder:s,isSelected:n=!1,onToggleSelect:o,prevSelected:l,nextSelected:i}){const{t:u}=le(),{openDialog:c}=ue(),{folderLevelSecurity:f}=Ws(),{checkFolderDeletePermission:m,checkFolderEditPermission:h}=xn("schedule"),g=ke(B=>B.activeTeamId),p=Oe(),{isRootAdmin:x,isTeamAdmin:S,isRootSuperAdmin:v}=p,D=v||x||S,I=p.canEdit("schedule"),P=p.canEdit("schedule"),j=p.canDelete("schedule"),C=D,b=Oe({folder:t,parentFolder:s??void 0}),N=b.canEdit("schedule"),A=b.canDelete("schedule"),R=g===t.teamId,k=f&&(v||(x||S)&&R),F=t.path?`${t.path}/${t.name}`:`/${t.name}`,O=Ja(t,f),w=Ba(t._id),G=e.jsx(Js,{className:"h-4 w-4 shrink-0 text-muted-foreground"});return e.jsx(Il,{testId:`schedule-folder-row-${t._id}`,name:t.name,isSelected:n,prevSelected:l,nextSelected:i,onClick:()=>a(F,t.teamId),onToggleSelect:o,icon:G,suffix:w||O||t.sharedLink?e.jsxs(e.Fragment,{children:[w&&e.jsx(hs,{icon:it,label:u("Favorited"),className:"fill-none"}),O&&e.jsx(hs,{icon:Vt,label:u("Shared")}),t.sharedLink&&e.jsx(hs,{icon:fl,label:u("Share link")})]}):void 0,dropdownLabel:u("Folder actions"),dropdownTestId:"schedule-folder-actions-btn",dropdownContent:e.jsxs(e.Fragment,{children:[P&&e.jsxs(Qe,{disabled:!N,onClick:()=>{N&&c("moveSchedule",{groupIds:[t._id],folder:t})},"data-testid":"schedule-folder-move-menuitem",children:[e.jsx(Ds,{className:"mr-2 h-4 w-4"}),u("Move To")]}),e.jsx(tn,{objectId:t._id,type:"SCHEDULE"}),I&&e.jsxs(Qe,{disabled:!N,onClick:()=>{N&&h([t])&&c("renameFolder",{folder:t})},"data-testid":"schedule-folder-rename-menuitem",children:[e.jsx(Xs,{className:"mr-2 h-4 w-4"}),u("Rename")]}),f&&C&&e.jsxs(Qe,{disabled:!k,onClick:()=>c("changePermission",{folder:t}),"data-testid":"schedule-folder-change-permission-menuitem",children:[e.jsx(ml,{className:"mr-2 h-4 w-4"}),u("Change Permission")]}),f&&!C&&e.jsxs(Qe,{onClick:()=>c("viewPermission",{folder:t}),"data-testid":"schedule-folder-view-permission-menuitem",children:[e.jsx(rn,{className:"mr-2 h-4 w-4"}),u("View Permission")]}),j&&e.jsxs(e.Fragment,{children:[e.jsx(Va,{}),e.jsxs(Qe,{className:"hover:text-destructive focus:text-destructive",disabled:!A,onClick:()=>{A&&m([t])&&c("deleteFolder",{folder:t})},"data-testid":"schedule-folder-delete-menuitem",children:[e.jsx(js,{className:"mr-2 h-4 w-4"}),u("Delete")]})]})]})})}function ho({searchText:t,hasPath:a,isFavoritesLocation:s=!1}){const{t:n}=le();return s&&!t?e.jsx(ja,{size:"panel",className:"py-12",icon:it,title:n("No favorites yet"),description:n("Star schedules and folders to find them here.")}):e.jsx(ja,{size:"panel",className:"py-12",icon:Ut,...Gr(n,{query:t||void 0,emptyTitle:n(a?"This folder is empty":"No schedules
12yet"),emptyDescription:a?void 0:n("Create a schedule to start managing content")})})}function mo({selectedCount:t,selectedScheduleIds:a,selectedGroupIds:s,groups:n,currentFolder:o,onClearSelection:l,schedules:i,isSearchActive:u}){const{t:c}=le(),{openDialog:f}=ue(),{folderLevelSecurity:m,roleSecurity:h}=Ws(),{checkFolderDeletePermission:g}=xn("schedule"),p=ke(Y=>Y.activeTeamId),x=Oe(),{isRootOwner:S,isSuperAdmin:v,isTeamAdmin:D}=x,I=S||v,P=x.canEdit("schedule"),j=x.canDelete("schedule"),{canEdit:C,canDelete:b}=Oe(o?{folder:o}:{}),N=dl(),A=[...a,...s],R=Ls(Y=>A.length===0?!1:A.every(V=>As(Y,V))),k=()=>{const Y=Ls.getState(),V=!A.every(ve=>As(Y,ve)),ce=A.filter(ve=>As(Y,ve)!==V);if(ce.forEach(ve=>N({objectId:ve,type:"SCHEDULE",isFavorite:!V,silent:!0})),ce.length>0){const ve=V?ce.length===1?c("Added to favorites"):c("Added {{count}} to favorites",{count:ce.length}):ce.length===1?c("Removed from favorites"):c("Removed {{count}} from favorites",{count:ce.length});ge.success(ve)}},F=n.filter(Y=>s.includes(Y._id)),O=F.length===0||I||!m||!h?!1:D?F.some(Y=>Y.isFolderSecurityEdit===!1&&Y.teamId!==p):F.some(Y=>Y.isFolderSecurityEdit===!1),w=(()=>{if(!u||!i||a.length===0||I||!m||!h)return!1;const Y=i.filter(V=>a.includes(V._id));return D?Y.some(V=>V.parentGroupInfo?.isFolderSecurityEdit===!1&&V.parentGroupInfo?.teamId!==p):Y.some(V=>V.parentGroupInfo?.isFolderSecurityEdit===!1)})(),G=C("schedule")&&!O&&!w,B=b("schedule")&&!O&&!w;if(t===0)return null;const $=()=>{const Y=F.filter(V=>V.securities&&V.securities.length>0||V.securityTeams&&V.securityTeams.length>0);f("moveSchedule",{scheduleIds:a,groupIds:s,...Y.length>0?{sharedFolders:Y}:{}})},ne=()=>{if(s.length>0){const Y=n.filter(V=>s.includes(V._id));if(!g(Y))return}f("deleteSchedule",{scheduleIds:a,groupIds:s,deletedGroups:F})};return e.jsxs("div",{className:"mb-2 rounded-lg bg-card px-2 py-1.5 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(L,{"data-testid":"cancel-btn",variant:"ghost",size:"icon-sm",className:"h-7 w-7 shrink-0 hover:bg-foreground
12/10",onClick:l,"aria-label":c("Cancel"),children:e.jsx(an,{className:"h-3.5 w-3.5"})}),e.jsxs("span",{className:"text-xs font-medium text-muted-foreground",children:[t," ",c("selected")]})]}),e.jsxs("div",{className:"flex items-center gap-0.5",children:[e.jsxs(He,{children:[e.jsx(Ge,{asChild:!0,children:e.jsx(L,{variant:"ghost",size:"icon-sm",className:"h-7 w-7 shrink-0 hover:bg-foreground/10",onClick:k,"aria-label":c(R?"Unfavorite":"Favorite"),"data-testid":"bulk-favorite-btn",children:R?e.jsx(pl,{className:"h-3.5 w-3.5"}):e.jsx(it,{className:"h-3.5 w-3.5"})})}),e.jsx(We,{children:c(R?"Unfavorite":"Favorite")})]}),P&&e.jsxs(He,{children:[e.jsx(Ge,{asChild:!0,children:e.jsx(L,{variant:"ghost",size:"icon-sm",className:"h-7 w-7 shrink-0 hover:bg-foreground/10",disabled:!G,onClick:$,"aria-label":c("Move to"),children:e.jsx(Ds,{className:"h-3.5 w-3.5"})})}),e.jsx(We,{children:c("Move to")})]}),j&&e.jsxs(He,{children:[e.jsx(Ge,{asChild:!0,children:e.jsx(L,{"data-testid":"delete-btn",variant:"ghost",size:"icon-sm",className:"h-7 w-7 shrink-0 hover:bg-foreground
12/10 hover:text-destructive",disabled:!B,onClick:ne,"aria-label":c("Delete"),children:e.jsx(js,{className:"h-3.5 w-3.5"})})}),e.jsx(We,{children:c("Delete")})]})]})]})}function fo(){return ul({getSearchText:()=>Re.getState().searchText,resetForNavigation:()=>Re.getState().setMode(ae.DEFAULT),setSearchText:t=>Re.getState().setSearchText(t)})}const po=32,go=5,vo=()=>po;function xo(){const{t}=le(),[a,s]=ct(),n=Ct()??void 0,o=fo(),l=a.get("teamId")||void 0,{schedules:i,groups:u,loading:c,totalCount:f,folderTotalCount:m,loadMore:h,hasNextPage:g,isLoadingMore:p,hasFolderNextPage:x,fetchNextFolderChunk:S}=na(n,l),{selectedScheduleId:v,selectSchedule:D,checkedIds:I,checkedGroupIds:P,toggleChecked:j,toggleCheckedGroup:C,clearChecked:b,uncheck:N}=tt(),{openDialog:A}=ue(),{searchText:R,mode:k,setMode:F,searchScope:O,clearSearch:w,favoritesOnly:G,setFavoritesOnly:B}=Re(),$=R.length>0,ne=G&&!($&&O==="all"),Y=fa(i,ne),V=fa(u,ne),ce=r.useMemo(()=>new Set([...I,...P]),[I,P]);lr(ne,ce,N);const{folderMode:ve,sortField:De,sortDirection:pe,setSort:Ee,setFolderMode:E}=ps(),{activeTeamId:Q}=ke(),{folderLevelSecurity:J}=Ws(),he=Oe(),d=he.canCreate("schedule"),y=he.canCreate("schedule"),[_,H]=r.useState(!1),[U,z]=r.useState("createSchedule"),[X,ee]=r.useState(!0),[re,ye]=r.useState(!0),{currentGroup:te,refetch:me}=wt(n||void 0),xe=r.useCallback(M=>{D(M),s(q=>{const Z=new URLSearchParams(q);return Z.set("id",M),Z.delete("date"),Z},{replace:!0})},[D,s]),W=r.useCallback(M=>xe(M),[xe]),Ye=te?{folder:te}:{},{canCreate:Me,canEdit:Be,hasFolderAccess:dt}=Oe(Ye),st=Me("schedule"),at=Me("schedule"),ut=Be("schedule"),Ze=J&&!dt,Se=k===ae.SHARE_WITH_ME,Ve=Se||G,nt=Ve?t("Not available in {{location}}. Go to Home to create.",{location:t(Se?"Shared with me":"Favorites")}):void 0,ht=Se&&$&&O==="all",qe=r.useMemo(()=>ut?n?!V.some(q=>q.teamId&&q.teamId!==Q):!0:!1,[ut,n,V,Q]),T=I.size+P.size,K=ve==="mixed",Ce=r.useMemo(()=>{if(!K)return[];const M=[...V.map(Z=>({type:"folder",data:Z})),...Y.map(Z=>({type:"item",data:Z}))],q=Z=>De==="name"?(Z.data.name??"").toLowerCase():(De==="createdAt"?Z.data.createdAt:Z.data.lastUpdatedDate)??"";return M.sort((Z,_e)=>{const Ne=q(Z),Bt=q(_e),At=Ne<Bt?-1:Ne>Bt?1:0;return pe===or.ASC?At:-At}),M},[K,V,Y,De,pe]),ie=async()=>{if(!Ze){if(Ja(te,J)){z("createSchedule"),H(!0);return}A("createSchedule")}},Te=()=>{Ze||A("createFolder")},we=async()=>{H(!1),A(U)},Le=M=>{H(M)},{rows:Ae,virtualizer:Ue,folderFill:It,getItemKey:es,scrollRef:Rt,externalHeaderRef:rt,containerRef:Ts,scrollMargin:Gt,activeStickyIndex:ws,stickyNextIndex:Ns}=zr({folderSource:{folders:V,total:pa(m,u.length,V.length)??V.length,hasMore:x,fetchNextChunk:S},itemSource:{items:Y,total:pa(f,i.length,Y.length)??Y.length,hasMore:g&&(K||re),isFetching:p,fetchMore:h,label:t("Schedules")},layout:{mode:"list",placement:K?"interleaved":"on-top",estimateSize:vo,dynamicHeights:!1,overscan:go},getFolderId:M=>M._id,getItemId:M=>M._id,itemType:"schedule",collapsed:K?void 0:{folders:!(X||Se),items:!re},mixedEntries:K?Ce:void 0,stickyHeaders:!0,hasExternalStickyHeader:K&&(V.length>0||Y.length>0)}),{newFolderId:ts,newItemIds:Is}=$r(Ae,Ue),lt=r.useMemo(()=>{const M=Z=>Z.kind==="folder"?P.has(Z.data._id):Z.kind==="item"?I.has(Z.data._id):Z.kind==="mixed"?Z.entry.type==="folder"?P.has(Z.entry.data._id):I.has(Z.entry.data._id):!1,q=new Map;return Ae.forEach((Z,_e)=>{let Ne=null;Z.kind==="folder"?Ne=`folder-${Z.data._id}`:Z.kind==="item"?Ne=`item-${Z.data._id}`:Z.kind==="mixed"&&(Ne=`${Z.entry.type}-${Z.entry.data._id}`),Ne&&q.set(Ne,{isSel:M(Z),prevSel:_e>0?M(Ae[_e-1]):!1,nextSel:_e<Ae.length-1?M(Ae[_e+1]):!1})}),q},[Ae,I,P]),{scrollTo:Wt}=il(Rt),mt=Re(M=>M.scrollToItemId),kt=Re(M=>M.clearScrollToItem),Yt=r.useRef(null);Yt.current=mt,r.useLayoutEffect(()=>{if(Yt.current)return;Wt({top:0});const M=requestAnimationFrame(()=>Wt({top:0}));return()=>cancelAnimationFrame(M)},[n,Wt]),r.useEffect(()=>{if(!mt)return;const M=()=>{if(c)return!1;const _e=Ae.findIndex(Ne=>Ne.kind==="item"?Ne.data._id===mt:Ne.kind==="mixed"?Ne.entry.type==="item"&&Ne.entry.data._id===mt:!1);return _e<0?!1:(requestAnimationFrame(()=>{requestAnimationFrame(()=>
12{Ue.scrollToIndex(_e,{align:"center"}),requestAnimationFrame(()=>kt())})}),!0)};if(M())return;let q=0;const Z=setInterval(()=>{q++,(M()||q>=20)&&(clearInterval(Z),q>=20&&kt())},100);return()=>clearInterval(Z)},[mt,Ae,c,Ue,kt]);const Xe=Re(M=>M.setItemVisible),ot=Ue.range;r.useEffect(()=>{if(!v){Xe(!1);return}const M=Ae.findIndex(q=>q.kind==="item"&&q.data._id===v||q.kind==="mixed"&&q.entry.type==="item"&&q.entry.data._id===v);Xe(M>=0&&!!ot&&M>=ot.startIndex&&M<=ot.endIndex)},[v,Ae,ot,Xe]);const ft=a.get("shared")==="1",pt=a.get("sharedRoot")??void 0,Rs=r.useCallback((M,q)=>{b(),w(),B(!1);const Z=Se;Z&&F(ae.DEFAULT);const _e={path:M},Ne=q||l;Ne&&(_e.teamId=Ne),(Z||ft)&&(_e.shared="1",_e.sharedRoot=Z?M:pt??M),v&&(_e.id=v),s(_e)},[Se,l,v,s,F,b,w,B,ft,pt]),_t=r.useCallback(()=>{b(),F(ae.SHARE_WITH_ME);const M={path:ae.SHARE_WITH_ME};v&&(M.id=v),s(M)},[b,F,v,s]);return e.jsxs("div",{className:"flex h-full w-full flex-col",children:[e.jsxs("div",{className:"-ml-4 pl-4",children:[e.jsx("div",{className:"space-y-2 py-2 pr-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(oo,{scopeChip:n||G?e.jsx(hl,{label:G?t("Favorites"):n===ae.SHARE_WITH_ME?t("Shared with me"):n?.split("/").filter(Boolean).pop()??t("Current folder"),icon:G?it:n===ae.SHARE_WITH_ME?Vt:void 0,clearLabel:t("Search all schedules"),iconOnly:G||n===ae.SHARE_WITH_ME,onClear:o,labelClassName:"max-w-[44px]",hoverClear:!0}):void 0,onScopeChipRemove:o}),e.jsx(Rl,{options:kl,sortField:De,sortDirection:pe,onSort:Ee,variant:"ghost",triggerClassName:"hover:bg-sidebar-active/60",sections:[{label:"Folders",options:[{value:"on-top",labelKey:"On top"},{value:"mixed",labelKey:"Mixed with schedules"}],value:ve,onChange:M=>E(M)}]}),qe&&e.jsx(L,{variant:"ghost",size:"icon-sm",className:"hover:bg-sidebar-active/60","aria-label":t("Global default settings"),onClick:()=>A("globalDefault"),children:e.jsx(ln,{className:"h-4 w-4"})})]})}),d&&e.jsx("div",{className:"pb-2 pr-3",children:e.jsx(bs,{delayDuration:300,children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(L,{className:"min-w-0 flex-1",onClick:ie,disabled:!st||Ze||Ve,disabledTooltip:nt,disabledTooltipSide:"right","data-testid":"create-schedule-btn",children:[e.jsx(gl,{className:"h-4 w-4"}),t("Create Schedule")]}),y&&e.jsx(L,{variant:"outline",size:"icon-md",className:"shrink-0 bg-transparent hover:bg-sidebar-active/60",onClick:Te,disabled:!at||Ze||Ve,disabledTooltip:nt,disabledTooltipSide:"right","aria-label":t("Add Folder"),"data-testid":"add-folder-btn",children:e.jsx(vl,{className:"h-4 w-4"})})]})})})]}),e.jsxs("div",{className:"flex flex-col gap-1 py-1 pr-3 mb-1",children:[e.jsxs(L,{"data-testid":"schedule-home-tab",variant:"ghost",className:Fe("h-8 justify-start gap-2 px-2 text-sm",!Se&&!G?"bg-sidebar-active font-medium text-foreground hover:bg-sidebar-active":"text-muted-foreground hover:bg-sidebar-active/60 hover:text-foreground"),onClick:()=>{(Se||n||a.has("id")||G)&&(b(),w(),ee(!0),ye(!0),F(ae.DEFAULT),B(!1),s(v?{id:v}:{}))},children:[e.jsx(on,{className:"h-4 w-4 shrink-0"}),t("Home")]}),J&&e.jsxs(L,{variant:"ghost",className:Fe("h-8 justify-start gap-2 px-2 text-sm",Se?"bg-sidebar-active font-medium text-foreground hover:bg-sidebar-active":"text-muted-foreground hover:bg-sidebar-active/60 hover:text-foreground"),onClick:()=>{Se||(b(),ee(!0),ye(!0),F(ae.SHARE_WITH_ME),B(!1),s({path:ae.SHARE_WITH_ME}))},children:[e.jsx(Vt,{className:"h-4 w-4 shrink-0"}),t("Shared with me")]}),e.jsxs(L,{variant:"ghost","data-testid":"schedule-favorites-filter-btn","aria-pressed":G&&!Se,className:Fe("h-8 justify-start gap-2 px-2 text-sm",G&&!Se?"bg-sidebar-active font-medium text-foreground hover:bg-sidebar-active":"text-muted-foreground hover:bg-sidebar-active/60 hover:text-foreground"),onClick:()=>{Se?(b(),w(),ee(!0),ye(!0),F(ae.DEFAULT),B(!0),s(v?{id:v}:{})):B(!G)},children:[e.jsx(it,{className:"h-4 w-4 shrink-0"}),t("Favorites")]})]}),T>0&&e.jsx("div",{className:"pr-3",children:e.jsx(mo,{selectedCount:T,selectedScheduleIds:Array.from(I),selectedGroupIds:Array.from(P),groups:V,currentFolder:te,onClearSelection:b,schedules:Y,isSearchActive:$})}),n&&n!==ae.SHARE_WITH_ME&&!Se&&!G&&e.jsx("div",{className:"py-2 pr-3",children:e.jsx(Qr,{currentPath:n,onNavigate:M=>{if(b(),w(),M==="/")s(v?{id:v}:{});else{const q={path:M};
12l&&(q.teamId=l),ft&&(q.shared="1",pt&&(q.sharedRoot=pt)),v&&(q.id=v),s(q)}},fromShared:ft,onNavigateShared:_t,sharedRoot:pt,size:"sm"})}),e.jsx(Kr,{rows:Ae,virtualizer:Ue,folderFill:It,getItemKey:es,itemsPerRow:1,gridGap:0,scrollRef:Rt,externalHeaderRef:rt,containerRef:Ts,scrollMargin:Gt,activeStickyIndex:ws,stickyNextIndex:Ns,stickyHeaderClassName:"bg-muted",hideStuckHairline:!0,persistentScrollbar:!0,className:"relative pb-4 -ml-4 pl-4 pr-3",isLoading:c,loadingContent:e.jsx("div",{className:"space-y-2 p-3",children:Array.from({length:5}).map((M,q)=>e.jsx("div",{className:"h-8 animate-pulse rounded bg-muted"},q))}),emptyContent:Se?e.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 py-16 text-center px-6",children:[e.jsx(Vt,{className:"h-10 w-10 text-muted-foreground",strokeWidth:1.5}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:t("No shared folders yet")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t("Folders shared with you will appear here")})]})]}):e.jsx(ho,{searchText:R,hasPath:!!n,isFavoritesLocation:G}),headerContent:K&&(V.length>0||Y.length>0)?e.jsxs("div",{className:"sticky top-0 z-10 flex h-8 items-center gap-1 bg-muted px-2 pb-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:[e.jsx(Ut,{className:"h-3.5 w-3.5"}),t("Schedules")," (",(m??V.length)+(f??Y.length),")"]}):void 0,renderFolderHeader:M=>!Se||ht?e.jsx("div",{className:"pt-1 pb-1 -ml-4 pl-4 -mr-3 pr-3 bg-muted sticky-section-divider",children:e.jsxs(L,{variant:"ghost",size:"sm",className:"flex h-8 w-full items-center justify-start gap-1.5 px-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground hover:bg-sidebar-active/60",onClick:()=>ee(q=>!q),"aria-expanded":X||Se,children:[e.jsx(Js,{className:"h-3.5 w-3.5 shrink-0"}),t("Folders")," (",M.total,")",e.jsx(Ea,{isOpen:X||Se})]})}):null,renderItemHeader:(M,q)=>!Se||ht?e.jsx("div",{className:"pb-1 -ml-4 pl-4 -mr-3 pr-3 bg-muted sticky-section-divider",children:e.jsxs(L,{variant:"ghost",size:"sm",className:"flex h-8 w-full items-center justify-start gap-1.5 px-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground hover:bg-sidebar-active/60",onClick:()=>ye(Z=>!Z),"aria-expanded":re,children:[e.jsx(Ut,{className:"h-3.5 w-3.5 shrink-0"}),M," (",q,")",e.jsx(Ea,{isOpen:re})]})}):null,renderFolder:M=>{const q=lt.get(`folder-${M._id}`);return e.jsx("div",{className:Fe("pb-1",q?.isSel&&q?.nextSel&&"after:absolute after:bottom-0 after:inset-x-0 after:h-1 after:bg-primary/10"),children:e.jsx("div",{className:Fe(M._id===ts&&"animate-folder-blink-bg rounded-md"),children:e.jsx(uo,{folder:M,onNavigate:Rs,parentFolder:te,isSelected:q?.isSel??!1,onToggleSelect:()=>C(M._id),prevSelected:q?.prevSel??!1,nextSelected:q?.nextSel??!1})})})},renderItem:M=>{const q=lt.get(`item-${M._id}`);return e.jsx("div",{className:Fe("pb-1",q?.isSel&&q?.nextSel&&"after:absolute after:bottom-0 after:inset-x-0 after:h-1 after:bg-primary/10"),children:e.jsx(co,{schedule:M,isActive:v===M._id,isSelected:q?.isSel??!1,currentFolder:te,isSearchActive:$,isHighlighted:Is.includes(M._id),onSelect:()=>xe(M._id),onDuplicate:W,onToggleSelect:()=>j(M._id),prevSelected:q?.prevSel??!1,nextSelected:q?.nextSel??!1})})}}),e.jsx(Zr,{open:_,onOpenChange:Le,onConfirm:we,confirmMessageKey:"confirmShareScheduleService",currentGroup:te,refetchGroup:me})]})}function yn(t){const{activeTeamId:a}=ke(),{startDate:s,endDate:n}=r.useMemo(()=>ir(),[]),o={scheduleId:t??"",startDate:s,endDate:n},{data:l,previousData:i,loading:u,refetch:c}=Pe(dr,{variables:{query:o,teamId:a,first:cr},skip:!a||!t,fetchPolicy:"cache-and-network",errorPolicy:"all"}),f=l??i,m=r.useMemo(()=>(f?.scheduleItems?.page?.edges??[]).map(g=>g.node),[f]),h=f?.scheduleItems?.page?.pageInfo?.hasNextPage??!1;return{items:m,hasMore:h,loading:u&&!l,refetch:c}}
12class ys extends Error{constructor(a){super(a),this.name="ScheduleConflictError"}}const Na=t=>fr(t)===409;function ra(){const{t}=le(),{activeTeamId:a}=ke(),[s]=$e(ur,{refetchQueries:["ScheduleItems"],awaitRefetchQueries:!0}),[n]=$e(hr,{refetchQueries:["ScheduleItems"],awaitRefetchQueries:!0}),[o]=$e(mr,{refetchQueries:["ScheduleItems"],awaitRefetchQueries:!0});return{addItem:async(c,f=!1)=>{try{const m=await s({variables:{teamId:a,payload:c,force:f}});return ge.success(t("Event added")),m.data?.addScheduleItem??null}catch(m){const h=ga(m,t,"Failed to add event");if(Na(m))throw new ys(h);return ge.error(h),null}},updateItem:async(c,f,m=!1)=>{try{const h=await n({variables:{teamId:a,payload:c,force:m,scope:f}});return ge.success(t("Event updated")),h.data?.updateScheduleItem??null}catch(h){const g=ga(h,t,"Failed to update event");if(Na(h))throw new ys(g);return ge.error(g),null}},removeItem:async(c,f)=>{try{await o({variables:{teamId:a,payload:c,scope:f}}),ge.success(t("Event deleted"))}catch{ge.error(t("Failed to delete event"))}}}}function Cn(t){const a=ke(l=>l.activeTeamId),s=r.useMemo(()=>[...new Set(t.filter(l=>l.type!=="playlist"&&l.assetId).map(l=>l.assetId))],[t]),{data:n}=Pe(Os,{variables:{ids:s,teamId:a},skip:!a||s.length===0,fetchPolicy:"cache-and-network"}),o=r.useMemo(()=>{const l=new Map;for(const i of n?.assetsByIds??[])i._id&&l.set(i._id,i);return l},[n?.assetsByIds]);return r.useMemo(()=>{const l=new Set;for(const i of t){if(i.type==="playlist"){i.isHide&&l.add(i._id);continue}const u=i.assetId?o.get(i.assetId):void 0;(u?Ss({isHide:u.isHide,assetExpired:u.assetExpired}):Ss({isHide:i.isHide}))&&l.add(i._id)}return l},[t,o])}function So({schedule:t,loading:a,canEdit:s=!0}){const{t:n}=le(),[,o]=ct(),l=Re(w=>w.setMode),i=Re(w=>w.requestScrollToItem),u=Re(w=>w.isItemVisible),c=ke(w=>w.activeTeamId),[f,m]=r.useState(!1),[h,g]=r.useState(""),p=r.useRef(null),x=r.useRef(null),S=r.useRef(null),[v,D]=r.useState(!1),[I,P]=r.useState(),{renameSchedule:j}=Nt();r.useEffect(()=>{t?.name!=null&&g(t.name)},[t?.name]),r.useLayoutEffect(()=>{S.current&&P(S.current.scrollWidth+20)},[h,f]);const C=()=>{s&&(m(!0),setTimeout(()=>p.current?.focus(),0))},b=async()=>{m(!1),t&&h!==t.name&&h.trim()?await j(t._id,h.trim()):t&&!h.trim()&&g(t.name??"")},N=w=>{Ys(w)&&b(),w.key==="Escape"&&(m(!1),t?.name&&g(t.name))},A=!!(t?.teamId&&t.teamId!==c),R=t?.path?t.path.split("/").filter(Boolean).pop():null,k=R?Js:A?Vt:on,F=R||n(A?"Shared with me":"Home"),O=()=>{t&&(i(t._id),A&&!R?(l(ae.SHARE_WITH_ME),o({path:ae.SHARE_WITH_ME,id:t._id})):(l(ae.DEFAULT),t?.path?o({path:t.path,id:t._id}):o({id:t._id})))};return e.jsx("div",{className:"flex h-9 min-w-0 flex-1 items-center gap-1.5 overflow-hidden",children:t?e.jsxs(e.Fragment,{children:[e.jsxs(L,{variant:"ghost",size:"sm",className:Wa("shrink-0 gap-1 pr-1 text-muted-foreground",u&&"pointer-events-none opacity-50"),onClick:u?void 0:O,tabIndex:u?-1:void 0,children:[e.jsx(k,{className:"h-3.5 w-3.5"}),e.jsx("span",{className:"max-w-[120px] truncate",children:F}),e.jsx(ea,{className:"h-3.5 w-3.5"})]}),e.jsx("span",{ref:S,className:"invisible fixed whitespace-pre text-base font-medium","aria-hidden":"true",children:h||" "}),f?e.jsx(Ke,{ref:p,value:h,onChange:w=>g(w.target.value),onBlur:b,onKeyDown:N,style:{width:I},className:"h-auto min-w-[60px] max-w-full shrink rounded-lg border-input px-2 py-1 text-base font-medium ring-0 focus-visible:ring-0 md:text-base"}):e.jsx(bs,{delayDuration:500,children:e.jsxs("div",{className:"group flex min-w-0 cursor-pointer items-center gap-1.5 rounded-md border border-transparent px-2 py-1 transition-colors hover:bg-muted",children:[e.jsxs(He,{open:v,onOpenChange:w=>{if(w){const G=x.current;G&&G.scrollWidth>G.clientWidth&&D(!0)}else D(!1)},children:[e.jsx(Ge,{asChild:!0,children:e.jsx("h2",{ref:x,className:"truncate text-base font-medium text-muted-foreground",onClick:C,children:t.name||n("Untitled Schedule")})}),e.jsx(We,{side:"bottom",align:"start",className:"max-w-xs break-words",children:t.name||n("Untitled Schedule")})]}),e.jsx(Xs,{className:"h-3 w-3 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100",onClick:C})]})})]}):e.jsx("div",{className:"h-full w-48 animate-pulse rounded bg-muted"})})}function yo({schedule:t}){const{t:a}=le(),{openDialog:s}=ue(),{currentGroup:n}=wt(t?.path||"/",t?.teamId),{canEdit:o}=Oe(n?{parentFolder:n}:{});return!t||!o("screen")?null:e.jsxs(L,{"data-testid":"push-btn",variant:"outline",size:"sm",onClick:()=>s("pushToScreens",{schedule:t}),"aria-label":a("Push To Screens"),children:[e.jsx(xl,{className:"h-4 w-4"}),a("Push To Screens")]})}function Co({schedule:t}){const{t:a}=le(),{openDialog:s}=ue(),{currentGroup:n}=wt(t?.path||"/",t?.teamId),{canEdit:o}=Oe(n?{parentFolder:n}:{}),l=o("schedule");return t?e.jsxs(L,{variant:"outline",size:"sm",onClick:()=>s("editEvent",{isNew:!0,schedule:t}),disabled:!l,"aria-label":a("Add event"),"data-testid":"add-event-btn",children:[e.jsx(cn,{className:"h-4 w-4"}),a("Add Event")]}):null}function bo({schedule:t}){const{t:a}=le(),[,s]=ct(),{openDialog:n}=ue(),{duplicateSchedule:o}=Nt(),{selectSchedule:l}=tt(),{currentGroup:i}=wt(t?.path||"/",t?.teamId),u=Oe(i?{parentFolder:i}:{}),c=u.canEdit("schedule"),f=u.canCreate("schedule"),m=u.canDelete("schedule"),h=u.canEdit("schedule");return t?e.jsxs("div",{className:"flex items-center gap-0.5",children:[e.jsxs(He,{children:[e.jsx(Ge,{asChild:!0,children:e.jsx(L,{variant:"ghost",size:"icon-sm",className:"h-8 w-8 shrink-0",onClick:()=>n("preview",{schedule:t}),"aria-label":a("Preview"),children:e.jsx(rn,{className:"h-4 w-4"})})}),e.jsx(We,{children:a("Preview")})]}),e.jsxs(He,{children:[e.jsx(Ge,{asChild:!0,children:e.jsx("span",{children:e.jsx(L,{variant:"ghost",size:"icon-sm",className:"h-8 w-8 shrink-0",onClick:async()=>{const g=await o(t._id);g&&(l(g._id),qa(s,g._id))},disabled:!f,"aria-label":a("Duplicate schedule"),children:e.jsx(nn,{className:"h-4 w-4"})})})}),e.jsx(We,{children:a("Duplicate")})]}),e.jsxs(He,{children:[e.jsx(Ge,{asChild:!0,children:e.jsx("span",{children:e.jsx(L,{variant:"ghost",size:"icon-sm",className:"h-8 w-8 shrink-0",onClick:()=>n("moveSchedule",{schedule:t}),disabled:!h,"aria-label":a("Move to folder"),children:e.jsx(Ds,{className:"h-4 w-4"})})})}),e.jsx(We,{children:a("Move")}
12)]}),e.jsxs(He,{children:[e.jsx(Ge,{asChild:!0,children:e.jsx("span",{children:e.jsx(L,{"data-testid":"delete-schedule-button",variant:"ghost",size:"icon-sm",className:"h-8 w-8 shrink-0",onClick:()=>n("deleteSchedule",{schedule:t}),disabled:!m,"aria-label":a("Delete schedule"),children:e.jsx(js,{className:"h-4 w-4"})})})}),e.jsx(We,{children:a("Delete")})]}),e.jsxs(He,{children:[e.jsx(Ge,{asChild:!0,children:e.jsx("span",{children:e.jsx(L,{variant:"ghost",size:"icon-sm",className:"h-8 w-8 shrink-0",onClick:()=>n("defaultContent",{schedule:t}),disabled:!c,"aria-label":a("Schedule options"),"data-testid":"schedule-options-btn",children:e.jsx(dn,{className:"h-4 w-4"})})})}),e.jsx(We,{children:a("Options")})]})]}):null}const Ia=[{type:et.MONTH,labelKey:"Month"},{type:et.WEEK,labelKey:"Week"},{type:et.DAY,labelKey:"Day"}];function Do({calendarRef:t,currentView:a}){const{t:s}=le(),n=Ia.find(l=>l.type===a)?.labelKey??"Week",o=l=>{t.current?.getApi().changeView(l)};return e.jsxs(pr,{children:[e.jsx(gr,{asChild:!0,children:e.jsxs(L,{variant:"outline",size:"sm",children:[s(n),e.jsx(ta,{className:"ml-1 h-3.5 w-3.5"})]})}),e.jsx(vr,{align:"start",children:Ia.map(l=>e.jsxs(Qe,{onClick:()=>o(l.type),children:[s(l.labelKey),a===l.type&&e.jsx(sa,{className:"ml-auto h-4 w-4"})]},l.type))})]})}function Ms(t){return new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())}function jo(t){return new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate()))}function Eo(t,a){const s=new Date(t);return s.setDate(s.getDate()+a),s}function To(t){return`${t.getFullYear()}-${t.getMonth()}`}function Ra(t,a){return t.getFullYear()===a.getFullYear()&&t.getMonth()===a.getMonth()&&t.getDate()===a.getDate()}const wo=1440*60*1e3,No=7,ka=5,ds=[];function Io({calendarRef:t,dateInfo:a,todayJumpToken:s,onDayPick:n}){const{t:o}=le(),l=Ms(a?.activeDate??new Date),i=To(l),[u,c]=r.useState(l),[f,m]=r.useState(i);f!==i&&(m(i),c(l));const h=r.useRef(null),[g,p]=r.useState(s);g!==s&&(p(s),c(new Date));const x=r.useCallback((k,F,O)=>{const w=t.current?.getApi();if(!w)return;const G=jo(k);if(n?.(G.toISOString().slice(0,10)),O.detail<2){w.gotoDate(G);return}const B=w.view.type;if(B!==et.DAY){h.current=B,w.changeView(et.DAY,G);return}if(h.current){const $=h.current;h.current=null,w.changeView($,G);return}w.gotoDate(G)},[t,n]),S=r.useCallback(()=>{c(new Date)},[]),v=r.useCallback((k,F)=>{c(new Date(k,F,1))},[]),D=r.useCallback(k=>{c(F=>new Date(F.getFullYear(),F.getMonth()+k,1))},[]),I=r.useMemo(()=>{const k=new Intl.DateTimeFormat(document.documentElement.lang||void 0,{month:"short"});return Array.from({length:12},(F,O)=>k.format(new Date(2e3,O,1)))},[]),P=r.useMemo(()=>{const k=new Date().getFullYear();return Array.from({length:ka*2+1},(F,O)=>k-ka+O)},[]);if(!a)return null;const j=Ms(a.rangeStart),C=Eo(Ms(a.rangeEnd),-1),b=Math.round((a.rangeEnd.getTime()-a.rangeStart.getTime())/wo),N=b>1&&b<=No,A=b===1&&!Ra(j,new Date),R=k=>(k.getFullYear()!==u.getFullYear()||k.getMonth()!==u.getMonth())&&!Ra(k,new Date);return e.jsxs("div",{className:"pt-2 pb-2","data-testid":"schedule-mini-month",children:[e.jsxs("div",{className:"mb-2 flex items-center gap-1 px-2",children:[e.jsxs(qt,{value:String(u.getMonth()),onValueChange:k=>v(u.getFullYear(),Number(k)),children:[e.jsx(zt,{className:"h-7 w-auto gap-1 border-0 bg-transparent px-2 text-sm font-semibold shadow-none hover:bg-sidebar-active/60 focus:ring-0 focus-visible:ring-0","data-testid":"mini-month-month-select",children:e.jsx($t,{})}),e.jsx(Qt,{children:I.map((k,F)=>e.jsx(Kt,{value:String(F),children:k},k))})]}),e.jsxs(qt,{value:String(u.getFullYear()),onValueChange:k=>v(Number(k),u.getMonth()),children:[e.jsx(zt,{className:"h-7 w-auto gap-1 border-0 bg-transparent px-2 text-sm font-semibold shadow-none hover:bg-sidebar-active/60 focus:ring-0 focus-visible:ring-0","data-testid":"mini-month-year-select",children:e.jsx($t,{})}),e.jsx(Qt,{children:P.map(k=>e.jsx(Kt,{value:String(k),children:k},k))})]}),e.jsxs("div",{className:"ml-auto flex items-center gap-0.5",children:[e.jsx(L,{variant:"ghost",size:"icon-sm",className:"h-7 w-7 hover:bg-sidebar-active/60","aria-label":o("Previous month"),onClick:()=>D(-1),"data-testid":"mini-month-prev",children:e.jsx(Sl,{className:"h-4 w-4"})}),e.jsx(L,{variant:"ghost",size:"icon-sm",className:"h-7 w-7 hover:bg-sidebar-active/60","aria-label":o("Next month"),onClick:()=>D(1),"data-testid":"mini-month-next",children:e.jsx(ea,{className:"h-4 w-4"})})]})]}
12),e.jsx(xr,{month:u,onMonthChange:c,onDayClick:x,className:"p-0",modifiers:{inRange:N?{from:j,to:C}:ds,bandStart:N?[j,{dayOfWeek:[0]}]:ds,bandEnd:N?[C,{dayOfWeek:[6]}]:ds,activeDay:A?j:ds,outsideDim:R},modifiersClassNames:{inRange:"bg-sidebar-active/50",activeDay:"[&>button]:rounded-md [&>button]:bg-sidebar-active/50",bandStart:"rounded-l-xl",bandEnd:"rounded-r-xl",outsideDim:"[&>button]:text-muted-foreground [&>button]:opacity-50"},classNames:{root:"w-full",months:"relative flex w-full flex-col",month:"flex w-full flex-col gap-2",nav:"hidden",month_caption:"hidden",weekdays:"flex w-full",weekday:"flex-1 text-muted-foreground font-normal text-[0.7rem]",week:"mt-1 flex w-full",day:"relative h-7 flex-1 p-0 text-center text-xs",day_button:"mx-auto inline-flex h-7 w-7 cursor-pointer items-center justify-center rounded-md p-0 font-normal transition-colors hover:bg-foreground/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-foreground/25 focus-visible:ring-offset-2 focus-visible:ring-offset-transparent",today:"[&>button]:rounded-md [&>button]:bg-primary [&>button]:font-semibold [&>button]:text-primary-foreground [&>button]:hover:bg-primary",outside:""}}),e.jsx("div",{className:"mt-1 flex justify-start px-2",children:e.jsx(L,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs font-medium text-muted-foreground hover:bg-sidebar-active/60 hover:text-foreground",onClick:S,"data-testid":"mini-month-today",children:o("Today")})})]})}function Ro({calendarRef:t,dateInfo:a,todayJumpToken:s,onDayPick:n}){const[o,l]=r.useState(!1);return e.jsxs(za,{open:o,onOpenChange:l,children:[e.jsx($a,{asChild:!0,children:e.jsxs(L,{variant:"ghost",size:"sm",className:"h-8 shrink-0 gap-2 whitespace-nowrap px-2 text-[1.0625rem] font-semibold tracking-[-0.01em] text-foreground hover:bg-muted [&_svg]:size-4","data-testid":"schedule-period-dropdown",children:[e.jsx("span",{"data-testid":"schedule-period-title",children:a?.title}),e.jsx(ta,{className:"h-4 w-4 shrink-0"})]})}),e.jsx(Qa,{align:"start",className:"w-[19rem] p-2","data-testid":"schedule-period-dropdown-content",children:e.jsx(Io,{calendarRef:t,dateInfo:a,todayJumpToken:s,onDayPick:n})})]})}class ko extends Ua{constructor(){super(...arguments),this.state={textId:us()}}render(){let{theme:a,dateEnv:s,options:n,viewApi:o}=this.context,{cellId:l,dayDate:i,todayRange:u}=this.props,{textId:c}=this.state,f=Mn(i,u),m=n.listDayFormat?s.format(i,n.listDayFormat):"",h=n.listDaySideFormat?s.format(i,n.listDaySideFormat):"",g=Object.assign({date:s.toDate(i),view:o,textId:c,text:m,sideText:h,navLinkAttrs:ua(this.context,i),sideNavLinkAttrs:ua(this.context,i,"day",!1)},f);return de(Gs,{elTag:"tr",elClasses:["fc-list-day",...Ln(f,a)],elAttrs:{"data-date":Oa(i)},renderProps:g,generatorName:"dayHeaderContent",customGenerator:n.dayHeaderContent,defaultGenerator:_o,classNameGenerator:n.dayHeaderClassNames,didMount:n.dayHeaderDidMount,willUnmount:n.dayHeaderWillUnmount},p=>de("th",{scope:"colgroup",colSpan:3,id:l,"aria-labelledby":c},de(p,{elTag:"div",elClasses:["fc-list-day-cushion",a.getClass("tableCellShaded")]})))}}function _o(t){return de(Ha,null,t.text&&de("a",Object.assign({id:t.textId,className:"fc-list-day-text"},t.navLinkAttrs),t.text),t.sideText&&de("a",Object.assign({"aria-hidden":!0,className:"fc-list-day-side-text"},t.sideNavLinkAttrs),t.sideText))}const Ao=La({hour:"numeric",minute:"2-digit",meridiem:"short"});class Po extends Ua{render(){let{props:a,context:s}=this,{options:n}=s,{seg:o,timeHeaderId:l,eventHeaderId:i,dateHeaderId:u}=a,c=n.eventTimeFormat||Ao;return de(On,Object.assign({},a,{elTag:"tr",elClasses:["fc-list-event",o.eventRange.def.url&&"fc-event-forced-url"],defaultGenerator:()=>Fo(o,s),seg:o,timeText:"",disableDragging:!0,disableResizing:!0}),(f,m)=>de(Ha,null,Mo(o,c,s,l,u),de("td",{"aria-hidden":!0,className:"fc-list-event-graphic"},de("span",{className:"fc-list-event-dot",style:{borderColor:m.borderColor||m.backgroundColor}})),de(f,{elTag:"td",elClasses:["fc-list-event-title"],elAttrs:{headers:`${i} ${u}`}})))}}function Fo(t,a){let s=Hn(t,a);return de("a",Object.assign({},s),t.eventRange.def.title)}function Mo(t,a,s,n,o){let{options:l}=s;if(l.displayEventTime!==!1){let i=t.eventRange.def,u=t.eventRange.instance,c=!1,f;if(i.allDay?c=!0:Un(t.eventRange.range)?t.isStart?f=_s(t,a,s,null,null,u.range.start,t.end):t.isEnd?f=_s(t,a,s,null,null,t.start,u.range.end):c=!0:f=_s(t,a,s),c){let m={text:s.options.allDayText,view:s.viewApi};return de(Gs,{elTag:"td",elClasses:["fc-list-event-time"],elAttrs:{headers:`${n} ${o}`},renderProps:m,generatorName:"allDayContent",customGenerator:l.allDayContent,defaultGenerator:Lo,classNameGenerator:l.allDayClassNames,didMount:l.allDayDidMount,willUnmount:l.allDayWillUnmount})}return de("td",{className:"fc-list-event-time"},f)}return null}function Lo(t){return t.text}class Oo extends wn{constructor(){super(...arguments),this.computeDateVars=ca(Ho),this.eventStoreToSegs=ca(this._eventStoreToSegs),this.state={t
12imeHeaderId:us(),eventHeaderId:us(),dateHeaderIdRoot:us()},this.setRootEl=a=>{a?this.context.registerInteractiveComponent(this,{el:a}):this.context.unregisterInteractiveComponent(this)}}render(){let{props:a,context:s}=this,{dayDates:n,dayRanges:o}=this.computeDateVars(a.dateProfile),l=this.eventStoreToSegs(a.eventStore,a.eventUiBases,o);return de(In,{elRef:this.setRootEl,elClasses:["fc-list",s.theme.getClass("table"),s.options.stickyHeaderDates!==!1?"fc-list-sticky":""],viewSpec:s.viewSpec},de(Nn,{liquid:!a.isHeightAuto,overflowX:a.isHeightAuto?"visible":"hidden",overflowY:a.isHeightAuto?"visible":"auto"},l.length>0?this.renderSegList(l,n):this.renderEmptyMessage()))}renderEmptyMessage(){let{options:a,viewApi:s}=this.context,n={text:a.noEventsText,view:s};return de(Gs,{elTag:"div",elClasses:["fc-list-empty"],renderProps:n,generatorName:"noEventsContent",customGenerator:a.noEventsContent,defaultGenerator:Uo,classNameGenerator:a.noEventsClassNames,didMount:a.noEventsDidMount,willUnmount:a.noEventsWillUnmount},o=>de(o,{elTag:"div",elClasses:["fc-list-empty-cushion"]}))}renderSegList(a,s){let{theme:n,options:o}=this.context,{timeHeaderId:l,eventHeaderId:i,dateHeaderIdRoot:u}=this.state,c=Go(a);return de(_n,{unit:"day"},(f,m)=>{let h=[];for(let g=0;g<c.length;g+=1){let p=c[g];if(p){let x=Oa(s[g]),S=u+"-"+x;h.push(de(ko,{key:x,cellId:S,dayDate:s[g],todayRange:m})),p=Rn(p,o.eventOrder);for(let v of p)h.push(de(Po,Object.assign({key:x+":"+v.eventRange.instance.instanceId,seg:v,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,timeHeaderId:l,eventHeaderId:i,dateHeaderId:S},kn(v,m,f))))}}return de("table",{className:"fc-list-table "+n.getClass("table")},de("thead",null,de("tr",null,de("th",{scope:"col",id:l},o.timeHint),de("th",{scope:"col","aria-hidden":!0}),de("th",{scope:"col",id:i},o.eventHint))),de("tbody",null,h))})}_eventStoreToSegs(a,s,n){return this.eventRangesToSegs(An(a,s,this.props.dateProfile.activeRange,this.context.options.nextDayThreshold).fg,n)}eventRangesToSegs(a,s){let n=[];for(let o of a)n.push(...this.eventRangeToSegs(o,s));return n}eventRangeToSegs(a,s){let{dateEnv:n}=this.context,{nextDayThreshold:o}=this.context.options,l=a.range,i=a.def.allDay,u,c,f,m=[];for(u=0;u<s.length;u+=1)if(c=Pn(l,s[u]),c&&(f={component:this,eventRange:a,start:c.start,end:c.end,isStart:a.isStart&&c.start.valueOf()===l.start.valueOf(),isEnd:a.isEnd&&c.end.valueOf()===l.end.valueOf(),dayIndex:u},m.push(f),!f.isEnd&&!i&&u+1<s.length&&l.end<n.add(s[u+1].start,o))){f.end=l.end,f.isEnd=!0;break}return m}}function Uo(t){return t.text}function Ho(t){let a=Fn(t.renderRange.start),s=t.renderRange.end,n=[],o=[];for(;a<s;)n.push(a),o.push({start:a,end:da(a,1)}),a=da(a,1);return{dayDates:n,dayRanges:o}}function Go(t){let a=[],s,n;for(s=0;s<t.length;s+=1)n=t[s],(a[n.dayIndex]||(a[n.dayIndex]=[])).push(n);return a}var Wo=':root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:"";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}';Tn(Wo);const Yo={listDayFormat:_a,listDaySideFormat:_a,noEventsClassNames:as,noEventsContent:as,noEventsDidMount:as,noEventsWillUnmount:as};function _a(t){return t===!1?null:La(t)}var Bo=Gn({name:"@fullcalendar/list",optionRefiners:Yo,views:{list:{component:Oo,buttonTextKey:"list",listDayFormat:{month:"long",day:"numeric",year:"numeric"}},listDay:{type:"list",duration:{days:1},listDayFormat:{weekday:"long"}},listWeek:{type:"list",duration:{weeks:1},listDayFormat:{weekday:"long"},listDaySideFormat:{month:"long",day:"numeric",year:"numeric"}},listMonth:{type:"list",duration:{month:1},listDaySideFormat:{weekday:"long"}},listYear:{type:"list",duration:{year:1},listDaySideFormat:{weekday:"long"}}}});function Vo(t,a={}){const{expiredEventIds:s,missingContentEventIds:n}=a;return t.map(o=>{const l=!o.single&&o.repeatObject?.rrule&&o.repeatObject?.id!==be.NONE,i=s?s.has(o._id):!!o.isHide,u=n?.has(o._id)??!1,c=i||u,m={isRecurring:!!l,hasWarning:c,warningType:u?"missing":i?"expired":void 0},h=o.name||(o.type==="asset"?"Asset":"Playlist"),g=o.color||vt;let p=g;u?p="#ef4444":i&&(p="#f97316");const x={id:o._id,title:h,backgroundColor:g,borderColor:p,textColor:o.eventTextColor||Mt,extendedProps:{scheduleItem:o,indicators:m},display:"block",classNames:[c?"event-has-warning":"",l?"event-is-recurring":""].filter(
12Boolean)};if(l&&o.repeatObject?.rrule){let v=o.repeatObject.rrule;v.includes("DTSTART")||(v=`DTSTART:${o.range.startDate.replace(/[-:]/g,"").replace(/\.\d{3}Z$/,"Z")} 13${v}`);const D=Aa(o.range.startDate,o.range.endDate);return{...x,rrule:v,duration:D?{days:1}:qo(o.range.startDate,o.range.endDate),allDay:D}}const S=Aa(o.range.startDate,o.range.endDate);return{...x,start:o.range.startDate,end:o.range.endDate,allDay:S}})}function Aa(t,a){const s=new Date(t),l=new Date(a).getTime()-s.getTime()===1440*60*1e3,i=s.getUTCHours()===0&&s.getUTCMinutes()===0&&s.getUTCSeconds()===0;return l&&i}function qo(t,a){const s=new Date(a).getTime()-new Date(t).getTime(),n=Math.floor(s/36e5),o=Math.floor(s%36e5/6e4),l=Math.floor(s%6e4/1e3);return`${String(n).padStart(2,"0")}:${String(o).padStart(2,"0")}:${String(l).padStart(2,"0")}`}function Pa(t){const a=t?.extendedProps?.scheduleItem?.lastUpdated;return new Date(a??0).getTime()}function zo(t,a){return Pa(t)-Pa(a)}const $o="start,-duration,allDay,title",Qo={dayGridMonth:{eventOrder:$o},timeGridWeek:{eventOrderStrict:!0},timeGridDay:{eventOrderStrict:!0}};function ze(t){return t.current?.elRef?.current}const Ko={es:Gl,de:Hl,fr:Ul,it:Ol,nl:Ll,pt:Ml,sv:Fl};function Zo(t){return t?.replace(/^(DTSTART|EXDATE):[^\n]*\n?/gm,"").replace(/\n$/,"")}function Xo(t){const a=new Date(t);return a.getUTCHours()===0&&a.getUTCMinutes()===0&&a.getUTCSeconds()===0?new Date(a.getTime()-1).toISOString():t}function Jo(){const t=new Date;return new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()))}const ei=120,ti=500,si=200;function ai(t,a){const s=t?.querySelector(".fc-daygrid-body");!s||typeof s.animate!="function"||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches||s.animate([{transform:`translateY(${a==="next"?"1.75rem":"-1.75rem"})`,opacity:.3},{transform:"translateY(0)",opacity:1}],{duration:220,easing:"cubic-bezier(0.22, 1, 0.36, 1)"})}function ni({items:t,loading:a,canEdit:s=!0,calendarRef:n,currentView:o="timeGridWeek",onViewChange:l,onDatesChange:i,onTodayJump:u,spotlightDay:c,spotlightSeq:f}){const m=r.useRef(null),h=n??m,{t:g,i18n:p}=le(),{openDialog:x,closeDialog:S}=ue(),{updateItem:v}=ra(),D=r.useRef(!1),I=r.useRef(!1),P=r.useRef(null),j=r.useRef(!1),C=r.useRef(null),b=r.useRef(!1),N=Cn(t),A=r.useMemo(()=>Vo(t,{expiredEventIds:N}),[t,N]),R=r.useMemo(()=>Ko[p.language],[p.language]),k=r.useCallback(d=>{if(!s)return!1;const y=h.current?.getApi();if(!y)return!0;if(D.current=!1,ze(h)?.classList.remove("select-box-active"),y.view.type==="timeGridWeek"){const _=y.getEventById("selectBox");_&&_.remove();let H=d.start.toISOString().substring(11,19),U=d.end.toISOString().substring(11,19);const z=U==="00:00:00";z&&(U="23:59:59"),H>U&&([H,U]=[U,H]);const X=(d.start.getUTCDate()!==d.end.getUTCDate()||d.start.getUTCMonth()!==d.end.getUTCMonth())&&d.end.getTime()-d.start.getTime()>1800*1e3;y.addEvent({id:"selectBox",startTime:H,endTime:U,startRecur:d.start,endRecur:d.end,display:"auto",editable:!1,color:"var(--fc-event-bg-color, #3788d8)"}),D.current=!0,I.current=!0,(X||z)&&ze(h)?.classList.add("select-box-active")}return j.current=!0,C.current={start:d.start,end:d.end},!0},[s,h]);r.useEffect(()=>{const d=y=>{if(!j.current)return;!ze(h)?.contains(y.target)&&C.current&&h.current?.getApi().select({start:C.current.start,end:C.current.end}),P.current=setTimeout(()=>{if(I.current){const H=h.current?.getApi().getEventById("selectBox");H&&H.remove(),D.current=!1,I.current=!1,ze(h)?.classList.remove("select-box-active")}P.current=null},100),j.current=!1,C.current=null};return document.addEventListener("mouseup",d),()=>{document.removeEventListener("mouseup",d),P.current&&clearTimeout(P.current)}},[h]);const F=r.useCallback(d=>d.event.id==="selectBox"&&h.current?.getApi().view.type==="timeGridWeek"?["timeGridWeekEventSelect"]:[],[h]),O=r.useCallback(d=>{if(!s)return;const y=Xo(d.endStr),_=new Date(y),H=(d.start.getUTCDate()!==_.getUTCDate()||d.start.getUTCMonth()!==_.getUTCMonth())&&d.end.getTime()-d.start.getTime()>1800*1e3,U=D.current&&H&&h.current?.getApi().view.type==="timeGridWeek",z=[];if(U){const te=Date.UTC(_.getUTCFullYear(),_.getUTCMonth(),_.getUTCDate()),me=new Date(d.start);for(;Date.UTC(me.getUTCFullYear(),me.getUTCMonth(),me.getUTCDate())<=te;)z.push(me.getUTCDay()),me.setUTCDate(me.getUTCDate()+1)}
13let X=y;if(!d.allDay&&!H){const te=d.start.getUTCHours()*60+d.start.getUTCMinutes();if(_.getUTCHours()*60+_.getUTCMinutes()-te<30){const xe=new Date(d.start),W=Math.min(te+30,1439);xe.setUTCHours(Math.floor(W/60),W%60,0,0),X=xe.toISOString()}}let ee,re=d.startStr;if(U){ee={start:re,end:X};const te=d.start.getUTCHours(),me=d.start.getUTCMinutes(),xe=_.getUTCHours(),W=_.getUTCMinutes();if(xe*60+W<te*60+me){const Ye=new Date(d.start);Ye.setUTCHours(xe,W,0,0);const Me=new Date(_);Me.setUTCHours(te,me,0,0),re=Ye.toISOString(),X=Me.toISOString(),ee={start:re,end:X}}}x("editEvent",{isNew:!0,dateRange:{start:re,end:X},originalDateRange:ee,eventSelectBox:U||void 0,selectedDays:U?z:void 0}),I.current=!1;const ye=h.current?.getApi().getEventById("selectBox");ye&&ye.remove(),D.current=!1,ze(h)?.classList.remove("select-box-active"),d.view.calendar.unselect()},[x,h,s]),w=r.useCallback(d=>{if(!s)return;const y=d.event.extendedProps.scheduleItem;x("editEvent",{scheduleItem:y,isNew:!1,occurrenceStart:d.event.startStr})},[x,s]),G=r.useCallback((d,y,_)=>{let H=_;if(d.single&&d.parentScheduleId){const U=t.find(z=>z._id===d.parentScheduleId);U&&(H=U.range)}return{_id:d._id,scheduleId:d.scheduleId,type:d.type?.toUpperCase(),assetId:d.assetId,playlistId:d.playlistId,range:{startDate:y.startDate,endDate:y.endDate},rangeOrg:{startDate:H.startDate,endDate:H.endDate},color:d.color,eventTextColor:d.eventTextColor,scale:d.scale,documentDuration:d.documentDuration,single:d.single,repeatObject:d.repeatObject?ms(d.repeatObject.id??be.NONE,y.startDate,Zo(d.repeatObject.rrule)):void 0}},[t]),B=r.useCallback(async(d,y,_,H,U=!1)=>{const z=d.repeatObject?.rrule&&d.repeatObject?.id!==be.NONE,X=G(d,y,_);if(z)x("confirmScope",{scheduleItem:d,scopeMode:"edit",onScopeConfirm:async ee=>{try{await v(X,ee,ee==="ALL"?!0:U),S()}catch(re){re instanceof ys?x("confirmOverlap",{scheduleItem:d,overlappingItems:[],onOverlapConfirm:async()=>{try{await v(X,ee,!0),S()}catch{H(),S()}},onOverlapCancel:H}):(H(),S())}},onScopeCancel:H});else try{await v(X,"ALL",U),S()}catch{H(),S()}},[x,S,v,G]),$=r.useCallback((d,y,_,H)=>{const U=fs(y,t,d._id);U.hasOverlap?x("confirmOverlap",{scheduleItem:d,overlappingItems:U.overlappingEvents,dateRange:{start:y.startDate,end:y.endDate},onOverlapConfirm:()=>B(d,y,_,H,!0),onOverlapCancel:H}):B(d,y,_,H)},[t,x,B]),ne=r.useCallback(d=>{if(d.event.allDay){const U=d.event.extendedProps.scheduleItem,z=d.event.startStr,X={startDate:`${z}T00:00:00Z`,endDate:`${z}T23:59:59Z`},ee={startDate:d.oldEvent.startStr,endDate:d.oldEvent.endStr};$(U,X,ee,()=>d.revert());return}const y=d.event.extendedProps.scheduleItem,_={startDate:d.event.startStr,endDate:d.event.endStr},H={startDate:d.oldEvent.startStr,endDate:d.oldEvent.endStr};$(y,_,H,()=>d.revert())},[$]),Y=r.useCallback(d=>{const y=d.event.extendedProps.scheduleItem,_={startDate:d.event.startStr,endDate:d.event.endStr},H={startDate:d.oldEvent.startStr,endDate:d.oldEvent.endStr};$(y,_,H,()=>d.revert())},[$]),V=r.useCallback(d=>{const y=d.event.extendedProps.indicators;return e.jsxs("div",{className:"fc-event-main-frame relative overflow-hidden",children:[y?.hasWarning&&e.jsx(un,{className:"absolute top-0.5 right-0.5 h-3 w-3 text-white/80","data-testid":"expired-warning-icon"}),d.timeText&&e.jsx("div",{className:"fc-event-time","data-testid":"event-time",children:d.timeText}),e.jsx("div",{className:`fc-event-title-container${y?.hasWarning?" has-warning-icon":""}`,children:e.jsxs("div",{className:"fc-event-title",children:[y?.isRecurring&&e.jsx(hn,{className:"inline h-2.75 w-2.75 align-[-1px] mr-0.75"}),d.event.title]})})]})},[]),ce=r.useRef(new Map),ve=r.useCallback(d=>{const y=d.event.extendedProps.scheduleItem,_=d.event.extendedProps.indicators;if(!y)return;d.el.setAttribute("data-testid","schedule-event"),requestAnimationFrame(()=>{const re=d.el.closest(".fc-timegrid-event-harness"),ye=re?.closest(".fc-timegrid-col-events");re&&ye&&re.offsetWidth<ye.offsetWidth*.95&&d.el.classList.add("event-has-overlap")});const H=[];if(_?.isRecurring&&H.push(g("Recurring event")),_?.warningType==="missing"?H.push(g("Content not found")):_?.warningType==="expired"&&H.push(y.type==="playlist"?g("tooltipPlaylistExpire","Your playlist has expired content"):g("Content has expired")),H.length===0)return;let U=null,z=null;const X=()=>{z&&(clearTimeout(z),z=null),U&&(U.remove(),U=null)},ee=()=>{z=setTimeout(()=>{U=document.createElement("div"),U.className="schedule-event-tooltip",U.textContent=H.join(` 14`),document.body.appendChild(U);const re=d.el.getBoundingClientRect(),ye=U.getBoundingClientRect();U.style.left=`${re.left+re.width/2-ye.width/2}px`,U.style.top=`${re.top-ye.height-4}px`,U.offsetHeight,U.classList.add("visible")},300)};d.el.addEventListener("mouseenter",ee),d.el.addEventListener("mouseleave",X),d.el.addEventListener("mousedown",X),ce.current.set(d.el,()=>{X(),d.el.removeEventListener("mouseenter",ee),d.el.removeEventListener("mouseleave",X),d.el.removeEventListener("mousedown",X)})},[g]),De=r.useMemo(()=>({today:{text:g("Today"),click:()=>{h.current?.getApi().today(),u?.()}}}),[g,h,u]),pe=r.useRef(null),Ee=r.useCallback(d=>{const y=pe.current,_=d.view.currentStart.getTime();pe.current={view:d.view.type,start:_},y&&y.view===d.view.type&&d.view.type===et.MONTH&&_!==y.start&&ai(ze(h),_>y.start?"next":"prev"),l?.(d.view.type),i?.({activeDate:d.view.currentStart,rangeStart:d.start,rangeEnd:d.end,title:d.view.title})},[l,i,h]),E=r.useCallback(d=>d.view.type===et.MONTH?d.text:e.jsxs("span",{className:"fc-dayhead",children:[e.jsx("span",{className:"fc-dayhead-weekday",children:d.view.calendar.formatDate(d.date,{weekday:"short"})}),e.jsx("span",{className:"fc-dayhead-num",children:d.date.getUTCDate()})]}),[]),Q=r.useCallback(d=>d.isAxis?null:e.jsx("span",{className:"fc-now-indicator-cap","aria-hidden":"true"}),[]),J=r.useCallback(d=>!c||d.view.type===et.DAY?[]:d.date.toISOString().slice(0,10)===c?["fc-day-spotlight"]:[],[c]);r.useEffect(()=>{if(!c)return;const d=ze(h);d&&d.querySelectorAll(".fc-day-spotlight").forEach(y=>
14{typeof y.getAnimations=="function"&&y.getAnimations().forEach(_=>{_.cancel(),_.play()})})},[f,c,h,o]),r.useEffect(()=>{if(o!==et.MONTH)return;const d=ze(h);if(!d)return;let y=0,_=0,H=0;const U=z=>{if(z.ctrlKey||Math.abs(z.deltaY)<=Math.abs(z.deltaX))return;const X=z.target?.closest?.(".fc-scroller, .fc-popover");if(X&&X.scrollHeight>X.clientHeight+1)return;z.preventDefault();const ee=performance.now();if(ee<_||(ee-H>si&&(y=0),H=ee,y+=z.deltaY,Math.abs(y)<ei))return;const re=h.current?.getApi();re&&(y>0?re.next():re.prev(),y=0,_=ee+ti)};return d.addEventListener("wheel",U,{passive:!1}),()=>d.removeEventListener("wheel",U)},[o,h]),r.useEffect(()=>{let d=null;const y=()=>{const H=ze(h);if(!H)return!1;const U=H.querySelector(".fc-scroller-liquid-absolute");if(!U)return!1;const z=()=>{H.classList.toggle("is-scrolled",U.scrollTop>0)};return U.addEventListener("scroll",z),z(),d=()=>U.removeEventListener("scroll",z),!0},_=requestAnimationFrame(()=>{if(!y()){const H=setTimeout(y,200);d=()=>clearTimeout(H)}});return()=>{cancelAnimationFrame(_),d?.()}},[h,o]),r.useEffect(()=>{if(typeof ResizeObserver>"u")return;let d=0,y=0,_=null;const H=()=>{const U=ze(h);if(!U){d=requestAnimationFrame(H);return}_=new ResizeObserver(()=>{cancelAnimationFrame(y),y=requestAnimationFrame(()=>{h.current?.getApi().updateSize()})}),_.observe(U)};return d=requestAnimationFrame(H),()=>{cancelAnimationFrame(d),cancelAnimationFrame(y),_?.disconnect()}},[h]);const he=r.useCallback(d=>{const y=ce.current.get(d.el);y&&(y(),ce.current.delete(d.el))},[]);return a&&t.length===0&&!b.current?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}):(b.current=!0,e.jsx("div",{className:`schedule-cal-hscroll h-full${o==="timeGridWeek"?" is-week":""}`,children:e.jsx(Wn,{ref:h,plugins:[Wl,Yl,Bl,Bo,Vl],initialView:o,headerToolbar:{left:"today prev,next",center:"",right:""},customButtons:De,editable:s,selectable:s,selectAllow:k,selectMirror:!0,dayMaxEvents:!0,dayPopoverFormat:{weekday:"short",day:"numeric"},dayHeaderContent:E,fixedWeekCount:!1,timeZone:"UTC",defaultTimedEventDuration:Jr,forceEventDuration:!0,eventDisplay:"block",nowIndicator:!0,now:Jo,allDayText:g("All Day"),height:"100%",events:A,eventOrder:zo,views:Qo,select:O,eventClick:w,eventDrop:ne,eventResize:Y,eventContent:V,eventClassNames:F,eventDidMount:ve,eventWillUnmount:he,moreLinkClick:()=>(requestAnimationFrame(()=>{requestAnimationFrame(()=>{const d=document.querySelector(".fc-popover");if(!d)return;const y=parseFloat(d.style.top)||0,_=parseFloat(d.style.left)||0;d.style.top=`${y-30}px`,d.style.left=`${_-50}px`})}),"popover"),datesSet:Ee,dayCellClassNames:J,nowIndicatorContent:Q,locale:R})}))}function Fa(){const{t}=le(),a=Us(l=>l.company?.payment?.planFeature),s=Us(l=>!!l.company?.brandingData?.isWhiteLabel),{openSubscriptionPlan:n}=Sr(),o=r.useCallback(()=>{n({title:t("Change Plan"),subtitle:t("Upgrade Required"),action:"changePlanTrialToPay",sizeModal:"xl"})},[n,t]);return a!==yr||s?null:e.jsx("div",{className:"py-2",children:e.jsx(Cr,{variant:"warning","data-testid":"schedules-free-plan-banner",className:"py-2 text-center text-sm italic",children:e.jsxs(br,{children:[t("Free Plan does not support this feature/app. Feel free to explore, to use on your screens please")," ",e.jsx("button",{type:"button",onClick:o,className:"cursor-pointer text-primary underline hover:text-primary/80",children:t("upgrade here.")})]})})})}function ri({emptyVariant:t="select",calendarRef:a,onDatesChange:s,onTodayJump:n,spotlightDay:o,spotlightSeq:l,dateInfo:i,todayJumpToken:u,onDayPick:c}){const{t:f}=le(),m=r.useRef(null),h=a??m,[g,p]=r.useState("timeGridWeek"),{selectedScheduleId:x,selectSchedule:S}=tt(),{schedule:v,loading:D,refetch:I}=Es(x),{items:P,hasMore:j,loading:C,refetch:b}=yn(x);r.useEffect(()=>{if(!x)return;const E=Q=>{const J=Q.detail;J?.type?.toLowerCase()===Zt.SCHEDULE&&J._id===x&&(I(),b())};return window.addEventListener("realtime:event",E),()=>
14window.removeEventListener("realtime:event",E)},[x,I,b]),r.useEffect(()=>{x&&!D&&!v&&S(null)},[x,D,v,S]);const N=r.useCallback(()=>S(null),[S]),A=r.useCallback(()=>I().then(E=>!!E.data?.getScheduleDetail),[I]);Al({entityId:x,entityType:Zt.SCHEDULE,folderSubType:Ot.SCHEDULE,checkExists:A,clear:N,entity:v});const{currentGroup:R}=wt(v?.path||"/",v?.teamId),{canEdit:k}=Oe(R?{parentFolder:R}:{}),F=k("schedule"),{canCreate:O}=Oe(),w=O("schedule"),G=ue(E=>E.openDialog),B=r.useCallback(E=>{p(E)},[]),$=r.useRef(null),[ne,Y]=r.useState(null),[V,ce]=r.useState(null),[ve,De]=r.useState(null),[pe,Ee]=r.useState(null);return r.useEffect(()=>{if(!x){Y(null),ce(null),De(null),Ee(null);return}let E=!1;const Q=()=>{if(E)return;const _=$.current;if(!_)return;const H=_.querySelectorAll(".fc-toolbar-chunk");if(H.length<3)return;const U=H[0];let z=U.querySelector(".period-dropdown-slot");z||(z=document.createElement("div"),z.className="period-dropdown-slot");let X=U.querySelector(".view-dropdown-slot");X||(X=document.createElement("div"),X.className="view-dropdown-slot");const ee=U.children;ee[ee.length-2]===z&&ee[ee.length-1]===X||(U.appendChild(z),U.appendChild(X)),Y(z),ce(X);const ye=H[2];let te=ye.querySelector(".actions-slot");te||(te=document.createElement("div"),te.className="actions-slot"),ye.lastElementChild!==te&&ye.appendChild(te),De(te);const me=_.querySelector(".fc"),xe=me?.querySelector(".fc-view-harness");if(me&&xe){let W=me.querySelector(":scope > .banner-slot");W||(W=document.createElement("div"),W.className="banner-slot",me.insertBefore(W,xe)),Ee(W)}};let J=0;const he=()=>{E||J||(J=requestAnimationFrame(()=>{J=0,Q()}))};he();const d=new MutationObserver(he),y=$.current;return y&&d.observe(y,{childList:!0,subtree:!0}),()=>{E=!0,cancelAnimationFrame(J),d.disconnect()}},[x,C]),x?e.jsxs("div",{className:"flex h-full flex-col",children:[e.jsxs("div",{className:"overflow-hidden pl-4 pr-6 pt-5 pb-2",children:[e.jsx(So,{schedule:v,loading:D,canEdit:F}),e.jsx(ii,{items:P,canEdit:F}),j&&e.jsx(li,{})]}),e.jsxs("div",{ref:$,className:"schedule-calendar-wrapper relative flex-1 overflow-hidden",children:[e.jsx(ni,{items:P,loading:C,canEdit:F,calendarRef:h,currentView:g,onViewChange:B,onDatesChange:s,onTodayJump:n,spotlightDay:o,spotlightSeq:l},x),ne&&ns.createPortal(e.jsx(Ro,{calendarRef:h,dateInfo:i??null,todayJumpToken:u,onDayPick:c}),ne),V&&ns.createPortal(e.jsx(Do,{calendarRef:h,currentView:g}),V),ve&&ns.createPortal(e.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[e.jsx(yo,{schedule:v}),e.jsx(Co,{schedule:v}),e.jsx(bo,{schedule:v})]}),ve),pe&&ns.createPortal(e.jsx(Fa,{}),pe)]})]}):e.jsxs("div",{className:"flex h-full flex-col",children:[e.jsx(Fa,{}),e.jsx("div",{className:"flex flex-1 flex-col items-center justify-center text-center",children:t==="create"?e.jsxs(e.Fragment,{children:[e.jsx(Ut,{className:"mb-4 h-12 w-12 text-muted-foreground"}),e.jsx("h3",{className:"text-lg font-medium",children:f("You don't have any content yet")}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:f("Create a schedule to get started")}),w&&e.jsx(L,{className:"mt-4",onClick:()=>G("createSchedule"),children:f("Create Schedule")})]}):t==="select"?e.jsxs(e.Fragment,{children:[e.jsx(Ut,{className:"mb-4 h-12 w-12 text-muted-foreground"}),e.jsx("h3",{className:"text-lg font-medium",children:f("Select a schedule")}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:f("Choose a schedule from the sidebar to view its calendar")})]}):null})]})}function li(){const{t}=le();return e.jsxs("div",{"data-testid":"schedule-truncated-events-warning",className:"mt-2 flex w-full items-center gap-2 rounded-md border border-warning/20 bg-warning/5 py-1.5 pl-3 pr-2 text-sm",children:[e.jsx(Jt,{className:"h-4 w-4 shrink-0 text-warning"}),e.jsx("span",{className:"flex-1 text-foreground",children:t("This schedule has more events than can be displayed â some events may not appear on the calendar")})]})}function oi({type:t,assetAppType:a}){const s="h-4 w-4 text-muted-foreground";if(t===Zt.PLAYLIST)return e.jsx(vs,{className:s,"aria-label":"Playlist"});switch(a){case xt.IMAGE:return e.jsx(xs,{className:s});case xt.VIDEO:return e.jsx(Dl,{className:s});case xt.AUDIO:return e.jsx(bl,{className:s});case xt.DOCUMENT:return e.jsx(Cl,{className:s});case xt.WEB:return e.jsx(yl,{className:s})}const n=a?Er(Tr({appType:a})):null;return n?e.jsx("img",{src:n,alt:"",className:"h-4 w-4 object-contain"}):e.jsx(jl,{className:s})}function ii({items:t,canEdit:a}){const{t:s}=le(),[n,o]=r.useState(!1),{removeItem:l}=ra(),i=ue(m=>m.openDialog),u=Cn(t),c=r.useMemo(()=>t.filter(m=>u.has(m._id)),[t,u]),f=r.useMemo(()=>c.map(m=>{const h=(v,D=!1)=>
14{if(!v)return"";const I=Dr(v);if(isNaN(I.getTime()))return"";const P=D&&I.getHours()===0&&I.getMinutes()===0&&I.getSeconds()===0?new Date(I.getTime()-1):I;return jr(P)},g=h(m.range?.startDate),p=h(m.range?.endDate,!0),x=!g&&!p?"":g===p?g:`${g} â ${p}`,S=!m.single&&!!m.repeatObject?.rrule&&m.repeatObject?.id!==be.NONE;return{key:m._id,name:m.name||s("Untitled"),icon:e.jsx(oi,{type:m.type,assetAppType:m.assetAppType}),meta:x||void 0,metaIcon:S?e.jsxs(He,{children:[e.jsx(Ge,{asChild:!0,children:e.jsx("span",{className:"inline-flex","aria-label":s("Recurring"),children:e.jsx(hn,{className:"h-3.5 w-3.5 text-muted-foreground","aria-hidden":"true"})})}),e.jsx(We,{children:s("Recurring")})]}):void 0,onClick:a?()=>i("editEvent",{scheduleItem:m,isNew:!1,occurrenceStart:m.range?.startDate}):void 0,onRemove:a?()=>l({_id:m._id},"SINGLE"):void 0}}),[c,s,a,l,i]);return e.jsxs(e.Fragment,{children:[c.length>0&&e.jsxs("button",{type:"button",onClick:()=>o(!0),"data-testid":"schedule-expired-content-warning",className:"group mt-2 flex w-full cursor-pointer items-center gap-2 rounded-md border border-warning/20 bg-warning/5 py-1.5 pl-3 pr-2 text-left text-sm transition-colors hover:bg-warning/10",children:[e.jsx(Jt,{className:"h-4 w-4 shrink-0 text-warning"}),e.jsx("span",{className:"flex-1 text-foreground",children:s("scheduleExpiredItems",{count:c.length,defaultValue:c.length===1?"{{count}} expired item in this schedule":"{{count}} expired items in this schedule"})}),e.jsx(ea,{className:"h-4 w-4 shrink-0 text-muted-foreground transition-transform group-hover:translate-x-0.5"})]}),e.jsx(_l,{open:n,onOpenChange:o,title:s("Expired items in this schedule"),rows:f,metaHeader:s("Event Date"),removeLabel:s("Remove from schedule"),testId:"schedule-expired-items-dialog"})]})}function la(t,a,s){const n=ke(f=>f.activeTeamId),o=r.useMemo(()=>t==="asset"&&a?[a]:[],[t,a]),{data:l}=Pe(Os,{variables:{ids:o,teamId:n},skip:o.length===0||!n,fetchPolicy:"cache-first"}),{data:i}=Pe(wr,{variables:{id:s,teamId:n},skip:t!=="playlist"||!s||!n,fetchPolicy:"cache-first"}),u=r.useMemo(()=>i?.getPlaylistDetail?.assets?.filter(f=>f._id&&f.type!=="playlist").map(f=>f._id)??[],[i]),{data:c}=Pe(Os,{variables:{ids:u,teamId:n},skip:u.length===0||!n,fetchPolicy:"cache-first"});return r.useMemo(()=>t==="asset"?!!l?.assetsByIds?.some(Ss):t==="playlist"?!!c?.assetsByIds?.some(Ss):!1,[t,l,c])}function Je(t){return/^#[0-9A-Fa-f]{6}$/.test(t)}function ci(t){const a={};if(t.type==="asset"&&!t.assetId?a.content="Please select an asset":t.type==="playlist"&&!t.playlistId&&(a.content="Please select a playlist"),t.startDate||(a.startDate="Start date is required"),t.endDate||(a.endDate="End date is required"),t.startDate&&t.endDate){const s=new Date(t.startDate),n=new Date(t.endDate);s.getTime()===n.getTime()?a.dateRange="Start and end time cannot be the same":s>n&&(a.dateRange="End time must be after start time")}return t.color&&!Je(t.color)&&(a.color="Invalid color format (use #RRGGBB)"),t.duration!==void 0&&t.duration<5&&(a.duration="Duration must be at least 5 seconds"),a}function di(t){return Object.keys(t).length>0}function ui(t,a){const s=!!t.selectedContent||!!t.customRRule;return s&&t.repeatId!==void 0?{repeatId:t.repeatId,customRRule:t.customRRule}:s&&t.customRRule?{repeatId:be.CUSTOM_SAVE,customRRule:t.customRRule}:{repeatId:a.repeatObject?.id??be.NONE,customRRule:a.repeatObject?.rrule}}function hi(){return ue(a=>a.activeDialog==="editEvent"||a.activeDialog==="confirmOverlap"||a.activeDialog==="confirmScope")?e.jsx(mi,{}):null}function mi(){const{t}=le(),{activeDialog:a,dialogContext:s,closeDialog:n,openDialog:o}=ue(),l=r.useRef(!1),i=r.useCallback(()=>{l.current=!0,n()},[n]),u=r.useCallback((...T)=>{l.current=!0,o(...T)},[o]),{selectedScheduleId:c}=tt(),{addItem:f,updateItem:m,removeItem:h}=ra(),{items:g}=yn(c??null),[p,x]=r.useState("asset"),[S,v]=r.useState(""),[D,I]=r.useState(""),[P,j]=r.useState(""),[C,b]=r.useState(""),[N,A]=r.useState(""),[R,k]=r.useState(be.NONE),[F,O]=r.useState(),[w,G]=r.useState(vt),[B,$]=r.useState(Mt),[ne,Y]=r.useState(Ps.FIT),[V,ce]=r.useState(),[ve,De]=r.useState(!1),[pe,Ee]=r.useState({}),[E,Q]=r.useState(!1),[J,he]=r.useState(""),[d,y]=r.useState(""),[_,H]=r.useState(!1),[U,z]=r.useState(),X=r.useRef(!1),ee=r.useRef({id:"",name:"",appType:void 0}),re=r.useRef({id:"",name:""}),{activeTeamId:ye}=ke(),te=r.useRef(null),me=a==="editEvent";r.useEffect(()=>{me&&(l.current=!1)},[me]);const xe=s.isNew??!0,W=xe?void 0:s.scheduleItem,Ye=p==="asset"&&(!U||rl.includes(U)),Me=p==="asset"&&!!U&&nl.includes(U),[Be,{data:dt}]=Yn(Nr,{fetchPolicy:"cache-first"});r.useEffect(()=>{me&&Me&&S&&Be({variables:{teamId:ye,_id:S}})},[me,Me,S,ye,Be]),r.useEffect(()=>{const T=dt?.getAssetDetailV2;if(!T||te.current!==T._id)return;te.current=null;const K=T.pageDurations,Ce=T.num_pages??T.doc_pages?.length??0;K&&Object.keys(K).length>0&&Ce>0&&ce($l(Ce,K,T.durationPage??10))},[dt]),r.useEffect(()=>{if(me){if(X.current=!1,W){const T=!!s.selectedContent||!!s.customRRule;x(W.type?.toLowerCase()??"asset"),v(W.assetId??""),I(W.playlistId??""),j(W.name??"");const K=s.occurrenceStart;if(s.dateRange)b(s.dateRange.start),A(s.dateRange.end);else if(K){const Le=new Date(W.range.endDate).getTime()-new Date(W.range.startDate).getTime();b(K),A(new Date(new Date(K).getTime()+Le).toISOString())}else b(W.range.startDate),A(W.range.endDate);const Ce=ui({repeatId:s.repeatId,customRRule:s.customRRule,selectedContent:s.selectedContent},W);k(Ce.repeatId),O(Ce.customRRule);const ie=T&&s.color?s.color:W.color??vt,Te=T&&s.textColor?s.textColor:W.eventTextColor??Mt;G(ie),$(Te),Y(T&&s.scale?s.scale:W.scale||Ps.FIT),ce(T&&s.duration!==void 0?s.duration:W.documentDuration??W.duration);const we=ie!==vt&&!Fs.includes(ie);Q(!!we),he(we?ie:""),y(we?Te:""),z(W.assetAppType?.toLowerCase())}else{x("asset"),v(""),I(""),j("");const T=new Date,K=new Date(Date.UTC(T.getFullYear(),T.getMonth(),T.getDate(),T.getHours(),T.getMinutes(),0,0)).toISOString(),Ce=s.dateRange?.start??K,ie=s.dateRange?.end??K;b(Ce),A(Ce===ie?new Date(new Date(Ce).getTime()+1800*1e3).toISOString():ie),s.customRRule?(k(be.CUSTOM_SAVE),O(s.customRRule)):s.repeatId!==void 0?(k(s.repeatId),O(void 0)):s.eventSelectBox&&s.selectedDays?.length?(k(be.CUSTOM_SAVE),O(el(s.selectedDays))):(k(be.NONE),O(void 0));const Te=s.color??vt,we=s.textColor??Mt,Le=!Fs.includes(Te);G(Te),$(we),Y(s.scale??Ps.FIT),ce(s.duration),Q(Le),he(Le?Te:""),y(Le?we:""),z(void 0)}if(s.selectedContent){const{type:T,id:K,name:Ce,assetAppType:ie}=s.selectedContent;x(T),T==="asset"?(v(K),I(""),z(ie?.toLowerCase()),te.current=K):(I(K),v(""),z(void 0)),j(Ce)}s.customRRule&&s.repeatId!==be.NONE&&(k(be.CUSTOM_SAVE),O(s.customRRule)),Ee({})}},[me,W,s.dateRange,s.selectedContent,s.occurrenceStart,s.customRRule,s.eventSelectBox,s.selectedDays,s.repeatId,s.color,s.textColor,s.scale,s.duration]);const st=r.useMemo(()=>C?tl(C):[...sl],[C]),at=r.useMemo(()=>
14{if(R===be.NONE)return null;if((R===be.CUSTOM||R===be.CUSTOM_SAVE)&&F){const K=Kl(F);return Zl(K)}return st.find(K=>K.id===R)?.label??null},[R,F,st]),ut=()=>{const T=ci({type:p,assetId:p==="asset"?S:void 0,playlistId:p==="playlist"?D:void 0,startDate:C,endDate:N,color:w,duration:V});return Ee(T),!di(T)},Ze=()=>{if(!g||g.length===0)return!1;const T=ms(R,C,F);return fs({startDate:C,endDate:N},g,W?._id,T).hasOverlap},Se=async(T=!1)=>{if(!c||!ut())return;const K={scheduleId:c,type:p.toUpperCase(),assetId:p==="asset"?S:void 0,playlistId:p==="playlist"?D:void 0,range:{startDate:C,endDate:N},color:w,eventTextColor:B,scale:ne,documentDuration:V,single:R===be.NONE,repeatObject:ms(R,C,F)},Ce={scheduleItem:W,isNew:xe,dateRange:{start:C,end:N},selectedContent:S||D?{type:p,id:p==="asset"?S:D,name:P,assetAppType:U}:void 0,customRRule:F,eventSelectBox:s.eventSelectBox,selectedDays:s.selectedDays,repeatId:R,color:w,textColor:B,scale:ne,duration:V};if(!xe&&W&&W.repeatObject?.rrule&&W.repeatObject?.id!==be.NONE){const Te=X.current;u("confirmScope",{scheduleItem:W,rruleChanged:W.single?!1:Te,scopeMode:"edit",onScopeConfirm:async we=>{const Le=s.occurrenceStart,Ae=Le?{startDate:Le,endDate:new Date(new Date(Le).getTime()+new Date(W.range.endDate).getTime()-new Date(W.range.startDate).getTime()).toISOString()}:void 0,Ue={...K,_id:W._id,...Ae?{rangeOrg:Ae}:{}};if(we==="SINGLE"&&!T){const It=fs({startDate:C,endDate:N},g??[],W?._id,void 0);if(It.hasOverlap){u("confirmOverlap",{...Ce,overlappingItems:It.overlappingEvents,onOverlapConfirm:async()=>{await m(Ue,"SINGLE",!0)&&i()}});return}}await m(Ue,we,we==="ALL"?!0:T)&&i()}}),De(!1);return}if(!T&&Ze()){const ie=ms(R,C,F),Te=fs({startDate:C,endDate:N},g??[],W?._id,ie);u("confirmOverlap",{...Ce,overlappingItems:Te.overlappingEvents,onOverlapConfirm:()=>Se(!0)});return}De(!0);try{let ie=null;if(xe&&s.eventSelectBox){if(R===be.NONE){const Te=s.originalDateRange??{start:C,end:N};ie=await f({...K,range:{startDate:Te.start,endDate:Te.end}},T)}else{const we=ll(C,N)[0]??{startDate:C,endDate:N};ie=await f({...K,range:we},T)}De(!1),ie&&i();return}xe?ie=await f(K,T):W&&(ie=await m({...K,_id:W._id},"ALL",T)),De(!1),ie&&i()}catch(ie){if(De(!1),ie instanceof ys){u("confirmOverlap",{...Ce,overlappingItems:[],onOverlapConfirm:()=>Se(!0)});return}}},Ve=async()=>{if(!W)return;if(W.repeatObject?.rrule&&W.repeatObject?.id!==be.NONE){const K=s.occurrenceStart;u("confirmScope",{scheduleItem:W,scopeMode:"delete",onScopeConfirm:async Ce=>{const ie=Ce==="SINGLE"&&K?{_id:W._id,startDate:K}:{_id:W._id};await h(ie,Ce),i()}})}else await h({_id:W._id},"ALL"),i()},nt=T=>{if(X.current=!0,T===be.CUSTOM){const K=S||D?{type:p,id:p==="asset"?S:D,name:P,assetAppType:U}:void 0;u("recurrence",{scheduleItem:W,isNew:xe,dateRange:{start:C,end:N},customRRule:R===be.NONE?void 0:F,repeatId:R,selectedContent:K,eventSelectBox:s.eventSelectBox,selectedDays:s.selectedDays,occurrenceStart:s.occurrenceStart,color:w,textColor:B,scale:ne,duration:V});return}k(T),O(void 0)},ht=la(p,S,D),qe=()=>{u("contentPicker",{scheduleItem:W,isNew:xe,dateRange:{start:C,end:N},customRRule:R===be.NONE?void 0:F,eventSelectBox:s.eventSelectBox,selectedDays:s.selectedDays,repeatId:R,color:w,textColor:B,scale:ne,duration:V,occurrenceStart:s.occurrenceStart,selectedContent:S||D?{type:p,id:p==="asset"?S:D,name:P,assetAppType:U}:void 0})};return e.jsx(bt,{open:me,onOpenChange:T=>{T||(l.current||s.onOverlapCancel?.(),n())},children:e.jsxs(Dt,{"data-testid":"edit-event-dialog",className:"flex max-h-[85vh] max-w-lg flex-col overflow-hidden",onInteractOutside:T=>T.preventDefault(),children:[e.jsx(jt,{variant:"muted",className:"mb-0",children:e.jsxs(Et,{className:"flex items-center gap-2",children:[e.jsx(cn,{className:"h-5 w-5"}),t(xe?"Add Event":"Edit Event")]})}),e.jsxs(Ka,{className:"space-y-4 pt-4 pb-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex w-fit items-center gap-1",children:[e.jsxs(L,{"data-testid":"content-type-asset",type:"button",variant:"ghost","aria-pressed":p==="asset",className:Fe("h-8 gap-2 rounded-md px-3 text-sm font-medium transition-colors [&_svg]:size-4",p==="asset"?"bg-secondary text-secondary-foreground hover:bg-secondary hover:text-secondary-foreground":"text-foreground hover:bg-muted hover:text-foreground"),onClick:()=>{p!=="asset"&&(re.current={id:D,name:P},v(ee.current.id),j(ee.current.name),z(ee.current.appType),I("")),x("asset"),Ee({})},children:[e.jsx(xs,{}),t("Asset")]}),e.jsxs(L,{"data-testid":"content-type-playlist",type:"button",variant:"ghost","aria-pressed":p==="playlist",className:Fe("h-8 gap-2 rounded-md px-3 text-sm font-medium transition-colors [&_svg]:size-4",p==="playlist"?"bg-secondary text-secondary-foreground hover:bg-secondary hover:text-secondary-foreground":"text-foreground hover:bg-muted hover:text-foreground"),onClick:()=>{p!=="playlist"&&(ee.current={id:S,name:P,appType:U},I(re.current.id),j(re.current.name),v(""),z(void 0)),x("playlist"),Ee({})},children:[e.jsx(vs,{}),t("Playlist")]})]}),e.jsx("div",{className:"flex gap-1.5",children:p==="asset"?e.jsxs(e.Fragment,{children:[e.jsx(L,{"data-testid":"event-asset-name",variant:"trigger","aria-invalid":!!pe.content,className:Fe("min-w-0 flex-1 justify-start",!P&&!S&&"text-muted-foreground"),onClick:qe,children:e.jsx("span",{className:"truncate",children:P||S||t("No asset selected")})}),e.jsx(L,{"data-testid":"browse-asset-button",variant:"outline",className:"shrink-0",onClick:qe,children:t("Change")})]}):e.jsx("div",{className:"min-w-0 flex-1",children:e.jsx(aa,{value:D,displayName:P,"aria-invalid":!!pe.content,onSelect:T=>{I(T._id),j(T.name)}})})}),pe.content&&e.jsx("p",{className:"text-xs text-destructive",children:t(pe.content)}),ht&&e.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-warning/10 dark:bg-warning/20 p-2 text-sm text-warning",children:[e.jsx(un,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{children:p==="playlist"?t("tooltipPlaylistExpire","Your playlist has expired content"):t("Content has expired")})]})]}),e.jsx(Pl,{startDate:C,endDate:N,repeatId:R,onStartDateChange:b,onEndDateChange:A,onRepeatIdChange:nt,startError:pe.startDate,endError:pe.endDate,dateRangeError:pe.dateRange,showCustomRepeat:!0,customDescription:at??void 0}),R===be.CUSTOM&&at&&e.jsx("p",{className:"text-xs text-muted-foreground",children:at}),Ye&&e.jsxs("div",{className:Fe("grid gap-3",Me?"grid-cols-2":"grid-cols-1"),children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(St,{children:t("Scale")}),e.jsxs(qt,{value:ne,onValueChange:Y,children:[e.jsx(zt,{children:e.jsx($t,{})}),e.jsx(Qt,{children:al.map(T=>e.jsx(Kt,{value:T.value,children:t(T.label)},T.value))})]})]}),Me&&e.jsxs("div",{className:"space-y-1",children:[e.jsx(St,{children:t("Duration (sec)")}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ke,{type:"number",min:5,value:V??"",onChange:T=>ce(T.target.value?parseInt(T.target.value):void 0),placeholder:t("Auto"),className:Fe("flex-1",pe.duration&&"border-destructive")}
14),e.jsx(zl,{assetId:S,fileType:xt.DOCUMENT,totalDuration:V??0})]}),pe.duration&&e.jsx("p",{className:"text-xs text-destructive",children:t(pe.duration)})]})]}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(St,{children:t("Event Color")}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsxs(za,{open:_,onOpenChange:H,children:[e.jsx($a,{asChild:!0,children:e.jsxs(L,{type:"button",variant:"outline",className:"h-9 w-fit gap-2 border-input px-2.5","aria-label":t("Select event color"),children:[e.jsx("span",{className:"h-5 w-5 shrink-0 rounded-full",style:{backgroundColor:w}}),e.jsx(ta,{className:"h-3.5 w-3.5 shrink-0 opacity-50"})]})}),e.jsxs(Qa,{className:"w-auto p-3",align:"start",children:[e.jsx("div",{className:"grid grid-cols-6 gap-1.5",children:Fs.map(T=>e.jsx(L,{type:"button",variant:"ghost",className:Fe("h-7 w-7 rounded-full border-2 p-0 transition-transform hover:scale-110 hover:bg-transparent",w===T&&!E?"border-foreground scale-110":"border-transparent"),style:{backgroundColor:T},onClick:()=>{G(T),$(Da(T)),Q(!1),H(!1)},"aria-label":T,children:w===T&&!E&&e.jsx(sa,{className:"h-3.5 w-3.5",style:{color:Da(T)}})},T))}),e.jsx("div",{className:"mt-2 border-t pt-2",children:e.jsx(L,{variant:"ghost",size:"sm",className:"h-7 w-full text-xs",onClick:()=>{Q(!0),he(w),y(B),H(!1)},children:t("Custom Color")})})]})]}),E&&e.jsx(bs,{delayDuration:0,children:e.jsxs(He,{children:[e.jsx(Ge,{asChild:!0,children:e.jsx(L,{type:"button",variant:"ghost",size:"icon-sm",className:"h-7 w-7 shrink-0",onClick:()=>{G(vt),$(Mt),Q(!1),he(vt),y(Mt)},"aria-label":t("Reset to default color"),children:e.jsx(El,{className:"h-3.5 w-3.5"})})}),e.jsx(We,{children:t("Reset to default color")})]})})]})]}),E&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{children:t("Event Backgroun
14d Color")}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("label",{className:"relative shrink-0 cursor-pointer",children:[e.jsx("input",{type:"color",value:Je(J)?J:"#000000",onChange:T=>{he(T.target.value),G(T.target.value)},className:"absolute inset-0 h-full w-full cursor-pointer opacity-0","aria-label":t("Pick background color")}),e.jsx("span",{className:"block h-8 w-8 rounded-full border-2 border-border",style:{backgroundColor:Je(J)?J:"#000000"}})]}),e.jsx(Ke,{value:J,onChange:T=>{he(T.target.value),Je(T.target.value)&&G(T.target.value)},placeholder:"#000000",className:"flex-1"})]}),J&&!Je(J)&&e.jsx("p",{className:"text-xs text-destructive",children:t("Invalid hex color")})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{children:t("Event Text Color")}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("label",{className:"relative shrink-0 cursor-pointer",children:[e.jsx("input",{type:"color",value:Je(d)?d:"#ffffff",onChange:T=>{y(T.target.value),$(T.target.value)},className:"absolute inset-0 h-full w-full cursor-pointer opacity-0","aria-label":t("Pick text color")}),e.jsx("span",{className:"block h-8 w-8 rounded-full border-2 border-border",style:{backgroundColor:Je(d)?d:"#ffffff"}})]}),e.jsx(Ke,{value:d,onChange:T=>{y(T.target.value),Je(T.target.value)&&$(T.target.value)},placeholder:"#ffffff",className:"flex-1"})]}),d&&!Je(d)&&e.jsx("p",{className:"text-xs text-destructive",children:t("Invalid hex color")})]})]})]}),e.jsxs(Tt,{children:[e.jsx(Ht,{asChild:!0,children:e.jsx(L,{"data-testid":"cancel-btn",variant:"ghost",children:t("Cancel")})}),!xe&&e.jsx(L,{"data-testid":"delete-btn",variant:"destructive",onClick:Ve,children:t("Delete")}),e.jsxs(L,{"data-testid":"save-btn",onClick:()=>Se(),disabled:ve,children:[ve&&e.jsx(yt,{className:"mr-2 h-4 w-4 animate-spin"}),t(ve?"Saving...":"Save")]})]})]})})}function fi(){const{t}=le(),{activeDialog:a,dialogContext:s,closeDialog:n,openDialog:o}=ue(),l=a==="confirmOverlap",[i,u]=r.useState(!1),c=r.useRef(!1);r.useEffect(()=>{l&&(c.current=!1)},[l]);const f=async()=>{const p=s.onOverlapConfirm;if(p){u(!0);try{await p(),ue.getState().activeDialog==="confirmOverlap"&&(c.current=!0,n())}finally{u(!1)}}else c.current=!0,n()},m=()=>{const{scheduleItem:p,isNew:x,dateRange:S,selectedContent:v,customRRule:D,eventSelectBox:I,selectedDays:P,repeatId:j,color:C,textColor:b,scale:N,duration:A,onOverlapCancel:R}=s;c.current=!0,o("editEvent",{scheduleItem:p,isNew:x??!p,dateRange:S,selectedContent:v,customRRule:D,eventSelectBox:I,selectedDays:P,repeatId:j,color:C,textColor:b,scale:N,duration:A,onOverlapCancel:R})},h=()=>{c.current||s.onOverlapCancel?.(),n()},g=s.overlappingItems??[];return e.jsx(bt,{open:l,onOpenChange:p=>!p&&h(),children:e.jsxs(Dt,{"data-testid":"event-overlap-dialog",className:"max-w-sm",children:[e.jsx(jt,{variant:"muted",children:e.jsxs(Et,{className:"flex items-center gap-2",children:[e.jsx(Jt,{className:"h-5 w-5 text-muted-foreground"}),t("Event Overlap")]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:t("This event overlaps with existing events:")}),g.length>0?e.jsx("ul",{className:"space-y-2 text-sm",children:g.map(p=>e.jsxs("li",{className:"rounded-md bg-muted p-2",children:[e.jsx("div",{className:"font-medium",children:p.name||p.assetId||p.playlistId||t("Event")}),e.jsx("div",{className:"text-xs text-muted-foreground",children:ql(p)})]},p._id))}):e.jsx("p",{className:"text-sm",children:t("Existing events in this time range")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t("If saved, the last updated schedule item will take priority during the conflict time")})]}),e.jsxs(Tt,{children:[e.jsx(L,{variant:"outline",onClick:m,disabled:i,"data-testid":"event-overlap-adjust-times-btn",children:t("Adjust Times")}),e.jsx(L,{onClick:f,disabled:i,"data-testid":"event-overlap-save-anyway-btn",children:t(i?"Saving...":"Save Anyway")})]})]})})}function pi(){const{t}=le(),{activeDialog:a,dialogContext:s,closeDialog:n}=ue(),o=a==="confirmScope",[l,i]=r.useState(null),u=s.scopeMode==="delete",c=s.rruleChanged??!1,f=()=>t(u?"This is a recurring event. Would you like to delete this event only, or all events in the series?":c?"Do you want to apply the changes on all items?":"This is a recurring event. Would you like to edit this event only, or all events in the series?"),m=async g=>{if(s.onScopeConfirm){i(g);try{await s.onScopeConfirm(g)}catch{n()}finally{i(null)}}else n()},h=()=>{s.onScopeCancel?.(),n()};return e.jsx(Bs,{open:o,onOpenChange:g=>!g&&h(),children:e.jsxs(Vs,{"data-testid":"confirm-scope-dialog",className:"max-w-md",children:[e.jsxs(qs,{children:[e.jsx(zs,{children:t(u?"Delete recurring event":"Edit recurring event")}),e.jsx($s,{children:f()})]}),e.jsxs(Qs,{children:[e.jsx(Ir,{"data-testid":"cancel-btn",onClick:h,disabled:!!l,children:t("Cancel")}),!c&&e.jsxs(L,{variant:"outline",onClick:()=>m(ls.SINGLE),disabled:!!l,"data-testid":"confirm-scope-single-btn",children:[l===ls.SINGLE&&e.jsx(yt,{className:"mr-2 h-4 w-4 animate-spin"}),t("This event only")]}),e.jsxs(L,{onClick:()=>m(ls.ALL),disabled:!!l,"data-testid":"confirm-scope-all-btn",children:[l===ls.ALL&&e.jsx(yt,{className:"mr-2 h-4 w-4 animate-spin"}),t("All events")]})]})]})})}function gi(){const{t}=le(),a=Xt(),{activeDialog:s,dialogContext:n,closeDialog:o}=ue(),{deleteSchedule:l,bulkDelete:i}=Nt(),{selectSchedule:u,selectedScheduleId:c,clearChecked:f}=tt(),{schedule:m}=Es(c),[h,g]=r.useState(!1),[p,x]=r.useState(!1),S=s==="deleteSchedule",v=n.schedule,D=n.scheduleIds??[],I=n.groupIds??[],P=D.length>0||I.length>0,j=I.length>0,C=D.length,b=I.length,{disabled:N,disabledTooltip:A}=Ks({isSubmitting:h,...j?{isConfirmed:p}:{}});function R(){const w=C+b;return P&&w>1?t("Delete {{count}} Items",{count:w}):t(P&&j?"Delete Folder":"Delete Schedule")}function k(){if(!P)return t('Are you sure you want to delete "{{name}}"? This action cannot be undone.',{name:v?.name||t("this schedule")});const w=[];C>0&&w.push(t("{{count}} schedule(s)",{count:C})),b>0&&w.push(t("{{count}} folder(s)",{count:b}));let G=`${t("Are you sure you want to delete")} ${w.join(` ${t("and")} `)}
14?`;return j&&(b===1?G+=` ${t('This will remove all schedules inside "{{name}}" from our system.',{name:n.folder?.name||t("this folder")})}`:G+=` ${t("This will remove all schedules inside the selected folders from our system.")}`),G+=` ${t("This action cannot be undone.")}`,G}const F=async()=>{if(!(j&&!p)){g(!0);try{if(P){await i(D,I);const w=n.deletedGroups??[];for(const G of w)fn(pn(a),gn(G),["Schedule","Group"]);f(),c&&(D.includes(c)||vn(m?.path,w))&&u(null)}else v&&(await l(v._id),c===v._id&&u(null));x(!1),o()}finally{g(!1)}}},O=w=>{w||(x(!1),o())};return e.jsx(Bs,{open:S,onOpenChange:O,children:e.jsxs(Vs,{"data-testid":"delete-schedule-dialog",children:[e.jsxs(qs,{children:[e.jsx(zs,{children:R()}),e.jsx($s,{children:k()})]}),j&&e.jsxs("div",{className:"flex cursor-pointer items-center gap-2",children:[e.jsx(Za,{id:"confirm-delete-schedule",className:"cursor-pointer",checked:p,onCheckedChange:w=>x(w===!0),"aria-label":t("Confirm deletion")}),e.jsx(St,{htmlFor:"confirm-delete-schedule",className:"cursor-pointer font-normal",children:t("I understand this action cannot be undone")})]}),e.jsxs(Qs,{children:[e.jsx(L,{"data-testid":"cancel-btn",variant:"ghost",onClick:()=>O(!1),children:t("Cancel")}),e.jsxs(L,{"data-testid":"confirm-delete-button",variant:"destructive",onClick:F,disabled:N,disabledTooltip:A,children:[h&&e.jsx(yt,{className:"h-4 w-4 animate-spin"}),t("Delete")]})]})]})})}function vi(){const[t,a]=ct(),s=Ct()??"/",n=t.get("teamId")||void 0,{activeDialog:o,closeDialog:l}=ue(),{mode:i,setMode:u}=Re(),c=ps(v=>v.sortField),f=ps(v=>v.sortDirection),m=i===ae.SHARE_WITH_ME?"/":s,h=Cs(m,n),{refetch:g}=na(s==="/"?void 0:s),{currentGroup:p}=wt(m==="/"?void 0:m,n),x=o==="createFolder",S=r.useMemo(()=>({path:m,teamId:h,type:"schedule"}),[m,h]);return e.jsx(Zs,{open:x,onOpenChange:v=>!v&&l(),mode:"add",folder:S,parentGroup:p,listSort:{field:c,direction:f},onSuccess:()=>{i===ae.SHARE_WITH_ME&&(u(ae.DEFAULT),a({}),g())}})}const xi={[se.NONE]:"NONE",[se.ACCOUNT_DEFAULT]:"ACCOUNT_DEFAULT",[se.ASSET]:"ASSET",[se.PLAYLIST]:"PLAYLIST"},Si={NONE:se.NONE,ACCOUNT_DEFAULT:se.ACCOUNT_DEFAULT,ASSET:se.ASSET,PLAYLIST:se.PLAYLIST};function bn(t){const{t:a}=le(),{activeTeamId:s}=ke(),{data:n,loading:o,refetch:l}=Pe(Rr,{variables:{teamId:s,scheduleId:t},skip:!s,fetchPolicy:"cache-and-network"}),[i]=$e(kr);return{defaultContent:r.useMemo(()=>{const f=n?.scheduleDefault;if(!f)return null;const m=typeof f.type=="string"?Si[f.type]??0:f.type;return{...f,type:m}},[n]),loading:o,updateDefault:async f=>{try{const m={...f,type:xi[f.type]??"NONE"};await i({variables:{teamId:s,payload:m}}),ge.success(a("Default content updated")),l()}catch{ge.error(a("Failed to update default content"))}},refetch:l}}const yi="https://links.optisigns.com/4UNo";function Ci(){const{t}=le(),{activeDialog:a,dialogContext:s,closeDialog:n,openDialog:o}=ue(),l=a==="defaultContent",i=s.schedule,{defaultContent:u,loading:c,updateDefault:f}=bn(i?._id),m=Sn(),[h,g]=r.useState(se.NONE),[p,x]=r.useState(!1),[S,v]=r.useState(),[D,I]=r.useState(""),[P,j]=r.useState(),[C,b]=r.useState("");r.useEffect(()=>{u&&l&&(g(u.type),u.type===se.ASSET&&u.id?(v(u.id),I(u.name??"")):u.type===se.PLAYLIST&&u.id&&(j(u.id),b(u.name??"")))},[u,l]),r.useEffect(()=>{if(l&&s.selectedContent){const{type:B,id:$,name:ne}=s.selectedContent;B==="asset"?(v($),I(ne),g(se.ASSET)):B==="playlist"&&(j($),b(ne),g(se.PLAYLIST))}l&&s.defaultType!==void 0&&!s.selectedContent&&g(s.defaultType)},[l,s.selectedContent,s.defaultType]),r.useEffect(()=>{l||x(!1)},[l]);const N=B=>{const $=Number(B);g($),$===se.ASSET?(v(void 0),I(""),o("contentPicker",{returnDialog:"defaultContent",schedule:i,defaultType:$})):$===se.PLAYLIST&&(j(void 0),b(""))},A=()=>{o("contentPicker",{returnDialog:"defaultContent",schedule:i,defaultType:h})},R=async()=>{if(!i)return;x(!0);const B=h===se.ASSET?S:h===se.PLAYLIST?P:void 0;await f({scheduleId:i._id,type:h,id:B}),x(!1),n()},k=p||c||h===se.ASSET&&!S||h===se.PLAYLIST&&!P,F=la("playlist","",P??""),O=en,G=`"${i?.name||t("Schedule")}" ${t("Default Content")}`;return e.jsx(bt,{open:l,onOpenChange:B=>!B&&n(),children:e.jsxs(Dt,{"data-testid":"default-content-dialog",className:"max-w-lg",children:[e.jsx(jt,{variant:"muted",children:e.jsxs(Et,{className:"flex min-w-0 items-center gap-2",children:[e.jsx(dn,{className:"h-5 w-5 shrink-0 text-muted-foreground"}),e.jsx("span",{className:"truncate",children:G})]})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:t("schedulesbetweentimeFill")}),e.jsxs(qt,{value:String(h),onValueChange:N,children:[e.jsx(zt,{children:e.jsx($t,{})}),e.jsx(Qt,{children:O.map(B=>
14e.jsx(Kt,{value:String(B.value),children:t(B.label)},B.value))})]}),h===se.ASSET&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ke,{value:D||t("No asset selected"),disabled:!0,className:"flex-1"}),e.jsx(L,{variant:"outline",onClick:A,children:t("Change")})]}),h===se.PLAYLIST&&e.jsx(aa,{value:P??"",displayName:C,onSelect:B=>{j(B._id),b(B.name)}}),h===se.PLAYLIST&&P&&F&&e.jsxs("div",{className:"flex items-start gap-2 rounded-md bg-warning/10 dark:bg-warning/20 p-3 text-sm text-warning",children:[e.jsx(Jt,{className:"mt-0.5 h-4 w-4 shrink-0"}),e.jsx("span",{children:t("playlistAsetExpired","Your playlist has expired content")})]})]}),e.jsxs(Tt,{children:[!m&&e.jsx(L,{variant:"ghost",size:"icon-md",className:"mr-auto",onClick:()=>window.open(yi,"_blank"),"aria-label":t("Help"),title:t("Help"),children:e.jsx(mn,{})}),e.jsx(Ht,{asChild:!0,children:e.jsx(L,{"data-testid":"cancel-btn",variant:"ghost",children:t("Cancel")})}),e.jsx(L,{"data-testid":"save-btn",onClick:R,disabled:k,disabledTooltip:t("No changes to save"),children:t(p?"Saving...":"Save")})]})]})})}const bi="https://links.optisigns.com/4UNo";function Di(){const{t}=le(),{activeDialog:a,dialogContext:s,closeDialog:n,openDialog:o}=ue(),l=a==="globalDefault",{defaultContent:i,loading:u,updateDefault:c}=bn(),f=Sn(),[m,h]=r.useState(se.NONE),[g,p]=r.useState(!1),[x,S]=r.useState(),[v,D]=r.useState(""),[I,P]=r.useState(),[j,C]=r.useState("");r.useEffect(()=>{i&&l&&(h(i.type),i.type===se.ASSET&&i.id?(S(i.id),D(i.name??"")):i.type===se.PLAYLIST&&i.id&&(P(i.id),C(i.name??"")))},[i,l]),r.useEffect(()=>{if(l&&s.selectedContent){const{type:O,id:w,name:G}=s.selectedContent;O==="asset"?(S(w),D(G),h(se.ASSET)):O==="playlist"&&(P(w),C(G),h(se.PLAYLIST))}l&&s.defaultType!==void 0&&!s.selectedContent&&h(s.defaultType)},[l,s.selectedContent,s.defaultType]),r.useEffect(()=>{l||p(!1)},[l]);const b=O=>{const w=Number(O);h(w),w===se.ASSET?(S(void 0),D(""),o("contentPicker",{returnDialog:"globalDefault",defaultType:w})):w===se.PLAYLIST&&(P(void 0),C(""))},N=()=>{o("contentPicker",{returnDialog:"globalDefault",defaultType:m})},A=async()=>{p(!0);const O=m===se.ASSET?x:m===se.PLAYLIST?I:void 0;await c({type:m,id:O}),p(!1),n()},R=g||u||m===se.ASSET&&!x||m===se.PLAYLIST&&!I,k=la("playlist","",I??""),F=en.filter(O=>O.value!==se.ACCOUNT_DEFAULT);return e.jsx(bt,{open:l,onOpenChange:O=>!O&&n(),children:e.jsxs(Dt,{"data-testid":"global-default-dialog",className:"max-w-lg",children:[e.jsx(jt,{variant:"muted",children:e.jsxs(Et,{className:"flex items-center gap-2",children:[e.jsx(ln,{className:"h-5 w-5 text-muted-foreground"}),t("Global Default Content")]})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:t("schedulesbetweentime")}),e.jsxs(qt,{value:String(m),onValueChange:b,children:[e.jsx(zt,{children:e.jsx($t,{})}),e.jsx(Qt,{children:F.map(O=>e.jsx(Kt,{value:String(O.value),children:t(O.label)},O.value))})]}),m===se.ASSET&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ke,{value:v||t("No asset selected"),disabled:!0,className:"flex-1"}),e.jsx(L,{variant:"outline",onClick:N,children:t("Change")})]}),m===se.PLAYLIST&&e.jsx(aa,{value:I??"",displayName:j,onSelect:O=>{P(O._id),C(O.name)}}),m===se.PLAYLIST&&I&&k&&e.jsxs("div",{className:"flex items-start gap-2 rounded-md bg-warning/10 dark:bg-warning/20 p-3 text-sm text-warning",children:[e.jsx(Jt,{className:"mt-0.5 h-4 w-4 shrink-0"}),e.jsx("span",{children:t("playlistAsetExpired","Your playlist has expired content")})]})]}),e.jsxs(Tt,{children:[!f&&e.jsx(L,{variant:"ghost",size:"icon-md",className:"mr-auto",onClick:()=>window.open(bi,"_blank"),"aria-label":t("Help"),title:t("Help"),children:e.jsx(mn,{})}),e.jsx(Ht,{asChild:!0,children:e.jsx(L,{"data-testid":"close-btn",variant:"ghost",children:t("Cancel")})}),e.jsx(L,{"data-testid":"save-btn",onClick:A,disabled:R,disabledTooltip:t("No changes to save"),children:t(g?"Saving...":"Save")})]})]})})}function ji(){const{activeDialog:t,dialogContext:a,closeDialog:s}=ue(),[,n]=ct(),o=Ct(),l=t==="renameFolder",i=a.folder,u=()=>{if(i){const c=o,f=(i.path||"")+"/"+i.name;if(c&&c.includes(f)){const m=i.path||"";n(m?{path:m}:{})}}s()};return e.jsx(Zs,{open:l,onOpenChange:c=>!c&&s(),mode:"edit",folder:i,onSuccess:u})}function Ei(){const{t}=le(),{activeDialog:a,dialogContext:s,closeDialog:n}=ue(),{renameSchedule:o}=Nt(),l=a==="renameSchedule",i=s.schedule,[u,c]=r.useState(""),[f,m]=r.useState(!1);r.useEffect(()=>{l&&i&&c(i.name||"")},[l,i]);const h=async()=>{!i||!u.trim()||(m(!0),await o(i._id,u.trim()),m(!1),n())},g=f||!u.trim()||u.trim()===(i?.name||"");return e.jsx(bt,{open:l,onOpenChange:p=>!p&&n(),children:e.jsxs(Dt,{"data-testid":"rename-schedule-dialog",className:"max-w-md",children:[e.jsx(jt,{children:e.jsx(Et,{children:t("Rename Schedule")})}),e.jsx(Ke,{className:"mt-2",value:u,onChange:p=>c(p.target.value),placeholder:t("Schedule name"),onKeyDown:p=>{Ys(p)&&!g&&h()},"aria-label":t("Name"),autoFocus:!0}),e.jsxs(Tt,{children:[e.jsx(Ht,{asChild:!0,children:e.jsx(L,{"data-testid":"cancel-btn",variant:"ghost",children:t("Cancel")})}),e.jsx(L,{"data-testid":"save-btn",onClick:h,disabled:g,disabledTooltip:t("No changes to save"),children:t(f?"Saving...":"Save")})]})]})})}function Ti(){const{t}=le(),a=Xt(),{navigateAfterDelete:s}=Jl(),{activeDialog:n,dialogContext:o,closeDialog:l}=ue(),{activeTeamId:i}=ke(),{selectedScheduleId:u,selectSchedule:c}=tt(),{schedule:f}=Es(u),m=n==="deleteFolder",h=o.folder,[g,p]=r.useState(!1),[x,S]=r.useState(!1),{disabled:v,disabledTooltip:D}=Ks({isSubmitting:g,isConfirmed:x}),P=Ct()===ae.SHARE_WITH_ME,[j]=$e(Ya,{refetchQueries:P?["Schedules","GroupShareds"]:["Schedules","ScheduleGroups"]}),C=async()=>
14{if(!(!h||!x)){p(!0);try{await j({variables:{teamId:i,payload:{typeGroup:Ot.SCHEDULE.toUpperCase(),groupIds:[h._id]}}}),ge.success(t("Folder deleted successfully")),fn(pn(a),gn(h),["Schedule","Group"]),u&&vn(f?.path,[h])&&c(null),s(h),S(!1),l()}catch{ge.error(t("Failed to delete folder"))}finally{p(!1)}}},b=()=>{S(!1),l()};return e.jsx(Bs,{open:m,onOpenChange:N=>!N&&b(),children:e.jsxs(Vs,{"data-testid":"delete-folder-dialog",children:[e.jsxs(qs,{children:[e.jsx(zs,{children:t("Delete Folder")}),e.jsx($s,{children:t('Are you sure you want to delete "{{name}}"? This will remove all schedules inside "{{name}}" from our system. This action cannot be undone.',{name:h?.name||t("this folder")})})]}),e.jsxs("div",{className:"flex cursor-pointer items-center gap-2",children:[e.jsx(Za,{id:"confirm-delete-schedule-folder",className:"cursor-pointer",checked:x,onCheckedChange:N=>S(N===!0),"aria-label":t("Confirm deletion")}),e.jsx(St,{htmlFor:"confirm-delete-schedule-folder",className:"cursor-pointer font-normal",children:t("I understand this action cannot be undone")})]}),e.jsxs(Qs,{children:[e.jsx(L,{"data-testid":"cancel-btn",variant:"ghost",onClick:b,children:t("Cancel")}),e.jsxs(L,{"data-testid":"delete-btn",variant:"destructive",onClick:C,disabled:v,disabledTooltip:D,children:[g&&e.jsx(yt,{className:"h-4 w-4 animate-spin"}),t("Delete")]})]})]})})}function wi(){const{activeDialog:t,dialogContext:a,closeDialog:s}=ue(),{moveToFolder:n}=Nt(),{activeTeamId:o}=ke(),l=Xt(),[i]=ct(),c=i.get("teamId")||void 0||o,f=async(m,h,g,p)=>{await n(m,h,g,p);const x=g??null;for(const S of m)for(const v of["Schedule","ScheduleDetailResponse"]){const D=l.cache.identify({__typename:v,_id:S});D&&l.cache.modify({id:D,fields:{path:()=>x}})}};return e.jsx(Wr,{type:"schedule",isOpen:t==="moveSchedule",onClose:s,context:a,onMove:f,query:gs,groupType:"SCHEDULE",permissionEntity:"schedule",sourceTeamId:c})}function Ni(){const{t}=le(),{activeDialog:a,dialogContext:s,closeDialog:n}=ue(),o=s.schedule,l=a==="pushToScreens"&&!!o;if(!o)return null;const i={type:Zt.SCHEDULE,id:o._id,name:o.name||t("Untitled Schedule")};return e.jsx(Ql,{open:l,onClose:n,contentInfo:i})}const Ma=50,Ii=[...Xa,Sa.TEMPLATE,Sa.DATASOURCE],Ri={type_nin:[...Ii],fileType_nin:[xt.AUDIO],commonType_nin:[...Xa],appType_nin:[...Pr]};function ki({onSelect:t}){const{t:a}=le(),{activeDialog:s,dialogContext:n,closeDialog:o,openDialog:l}=ue(),i=ke(E=>E.activeTeamId),u=s==="contentPicker",[c,f]=r.useState("assets"),[m,h]=r.useState(""),[g,p]=r.useState(""),[x,S]=r.useState(null),[v,D]=r.useState(null),[I,P]=r.useState(""),[j,C]=r.useState(!1),[b,N]=r.useState(!1),A=r.useRef(!1);r.useEffect(()=>{C(!!u)},[u]),r.useEffect(()=>{const E=setTimeout(()=>{p(m)},300);return()=>clearTimeout(E)},[m]);const R=r.useMemo(()=>{const E={};return i&&(E.teamId=i),g&&(E.name_regex=g),Object.keys(E).length>0?E:void 0},[g,i]),{data:k,loading:F,error:O,fetchMore:w,refetch:G}=Pe(ya,{variables:{teamId:i,first:Ma,query:R,sort:{lastUpdatedDate:"DESC"}},skip:!u||!i||c!=="playlists",fetchPolicy:"cache-and-network",errorPolicy:"all"}),{data:B}=Pe(ya,{variables:{teamId:i,first:Ma,query:R,sort:{lastUpdatedDate:"DESC"},extendParams:{favoritesOnly:!0}},skip:!u||!i||c!=="playlists",fetchPolicy:"cache-and-network",errorPolicy:"all"}),$=r.useMemo(()=>new Set((B?.playlists?.page?.edges??[]).map(E=>E.node._id)),[B]),ne=r.useMemo(()=>{const E=k?.playlists?.page?.edges?.map(J=>J.node)??[],Q=B?.playlists?.page?.edges?.map(J=>J.node)??[];return b?Q:Q.length>0?[...Q,...E.filter(J=>!$.has(J._id))]:E},[k,B,b,$]),Y=k?.playlists?.page?.pageInfo,V=r.useCallback(()=>{!Y?.hasNextPage||!Y.endCursor||w({variables:{after:Y.endCursor},updateQuery:(E,{fetchMoreResult:Q})=>Q?{playlists:{...Q.playlists,page:{...Q.playlists.page,edges:Hs(E.playlists.page.edges,Q.playlists.page.edges)}}}:E})},[Y,w]),ce=r.useCallback((E,Q,J,he)=>{if(t?.(E,Q,J),n.returnDialog)l(n.returnDialog,{schedule:n.schedule,selectedContent:{type:E,id:Q,name:J,assetAppType:he},defaultType:n.defaultType});else if(n.scheduleItem||n.isNew!==void 0){const d={type:E,assetId:E==="asset"?Q:void 0,playlistId:E==="playlist"?Q:void 0,name:J,assetAppType:he},y=n.scheduleItem?{...n.scheduleItem,...d}:{_id:"",scheduleId:"",...d,single:!0,range:(()=>{const _=new Date,H=new Date(Date.UTC(_.getFullYear(),_.getMonth(),_.getDate(),_.getHours(),_.getMinutes(),0,0)).toISOString();return{startDate:n.dateRange?.start??H,endDate:n.dateRange?.end??H}})()};l("editEvent",{scheduleItem:y,isNew:n.isNew,dateRange:n.dateRange,selectedContent:{type:E,id:Q,name:J,assetAppType:he},customRRule:n.customRRule,eventSelectBox:n.eventSelectBox,selectedDays:n.selectedDays,repeatId:n.repeatId,color:n.color,textColor:n.textColor,scale:n.scale,duration:n.duration,occurrenceStart:n.occurrenceStart})}else o()},[t,n,l,o]),ve=r.useCallback(E=>{A.current=!0,C(!1);const Q=E.appType||E.webType||E.commonType||E.fileType||E.subType||E.type;ce("asset",E._id,E.originalFileName||"",Q)},[ce]),De=(E,Q)=>{S("playlist"),D(E),P(Q)},pe=()=>{x&&v&&ce(x,v,I)},Ee=()=>{n.returnDialog?l(n.returnDialog,{schedule:n.schedule,defaultType:n.defaultType}):n.scheduleItem||n.isNew!==void 0?l("editEvent",{scheduleItem:n.scheduleItem,isNew:n.isNew,dateRange:n.dateRange,customRRule:n.customRRule,eventSelectBox:n.eventSelectBox,selectedDays:n.selectedDays,repeatId:n.repeatId,color:n.color,textColor:n.textColor,scale:n.scale,duration:n.duration,occurrenceStart:n.occurrenceStart,selectedContent:n.selectedContent}):o(),S(null),D(null),h(""),p("")};return e.jsxs(e.Fragment,{children:[e.jsx(bt,{open:u&&!j,onOpenChange:E=>!E&&Ee(),children:e.jsxs(Dt,{"aria-describedby":void 0,className:"max-w-lg max-h-[85vh] flex flex-col overflow-hidden",children:[e.jsx(jt,{variant:"muted",className:"mb-0",children:e.jsx(Et,{children:a("Select Content")})}),e.jsx(Ka,{className:"flex-1 pt-4",children:e.jsxs(_r,{value:c,onValueChange:E=>f(E),children:[e.jsxs(Ar,{className:"grid w-full grid-cols-2",children:[e.jsxs(va,{value:"assets",children:[e.jsx(xs,{className:"mr-2 h-4 w-4"}),a("Assets")]}),e.jsxs(va,{value:"playlists",children:[e.jsx(vs,{className:"mr-2 h-4 w-4"}),a("Playlists")]})]}),c==="playlists"&&e.jsxs("div",{className:"my-4 flex items-center gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(sn,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(Ke,{autoFocus:!0,placeholder:a("Search {{tab}}...",{tab:a(c)}),value:m,onChange:E=>h(E.target.value),className:"pl-9"})]}),e.jsx(L,{type:"button",variant:b?"secondary":"outline",size:"icon-md",className:"shrink-0","aria-label":a("Favorites only"),"aria-pressed":b,onClick:()=>N(E=>!E),children:e.jsx(it,{className:Fe("h-4 w-4",b&&"fill-warning text-warning")})})]}),e.jsx(xa,{value:"assets",className:"mt-0",children:e.jsxs("div",{className:"flex flex-col items-center justify-center gap-4 py-12",children:[e.jsx(xs,{className:"h-10 w-10 text-muted-foreground
14/50"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a("Browse and select an asset.")}),e.jsx(L,{onClick:()=>C(!0),children:a("Browse Assets")})]})}),e.jsx(xa,{value:"playlists",className:"mt-0",children:e.jsx("div",{className:"rounded-md border max-h-[300px] overflow-y-auto",children:O&&!F?e.jsxs("div",{className:"flex flex-col items-center justify-center gap-2 py-8",children:[e.jsx(Tl,{className:"h-5 w-5 text-destructive"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a("Failed to load playlists")}),e.jsx(L,{variant:"outline",size:"sm",onClick:()=>G(),children:a("Retry")})]}):F&&ne.length===0?e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(yt,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):ne.length===0?e.jsx("p",{className:"py-8 text-center text-sm text-muted-foreground",children:a(m?"No playlists match your search":"No playlists available")}):e.jsxs("div",{className:"p-2",children:[ne.map(E=>e.jsxs(L,{variant:"ghost",className:Fe("flex w-full items-center gap-3 rounded-md px-3 py-2 text-left h-auto justify-start",x==="playlist"&&v===E._id&&"bg-primary/10 text-primary"),onClick:()=>De(E._id,E.name||""),children:[e.jsx(vs,{className:"h-5 w-5 shrink-0 text-muted-foreground"}),e.jsxs("div",{className:"flex-1 truncate",children:[e.jsx("p",{className:"truncate text-sm font-medium",children:E.name||a("Untitled Playlist")}),e.jsxs("p",{className:"truncate text-xs text-muted-foreground",children:[E.assets?.length??0," ",a("items")]})]}),$.has(E._id)&&e.jsx(it,{className:"h-4 w-4 shrink-0 fill-warning text-warning"}),e.jsx("a",{href:`/app/playlistManagement?id=${E._id}`,target:"_blank",rel:"noopener noreferrer",className:"shrink-0 p-1 text-muted-foreground hover:text-foreground",onClick:Q=>Q.stopPropagation(),"aria-label":a("Open in new tab"),children:e.jsx(wl,{className:"h-3.5 w-3.5"})}),x==="playlist"&&v===E._id&&e.jsx(sa,{className:"h-4 w-4 shrink-0 text-primary"})]},E._id)),F&&ne.length>0&&e.jsx("div",{className:"flex items-center justify-center py-3",children:e.jsx(yt,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),Y?.hasNextPage&&!F&&e.jsx(L,{variant:"ghost",size:"sm",className:"mt-1 w-full text-muted-foreground",onClick:V,children:a("Load more")})]})})})]})}),e.jsxs(Tt,{children:[e.jsx(Ht,{asChild:!0,children:e.jsx(L,{"data-testid":"cancel-btn",variant:"ghost",children:a("Cancel")})}),e.jsx(L,{onClick:pe,disabled:!v,children:a("Select")})]})]})}),e.jsx(eo,{open:j,onOpenChange:E=>{C(E),!E&&!A.current&&Ee(),A.current=!1},onSelect:ve,queryFilter:Ri})]})}function _i(){const{activeDialog:t,dialogContext:a,closeDialog:s}=ue(),n=t==="changePermission",l=n||t==="viewPermission",i=a.folder;return e.jsx(Zs,{open:l,onOpenChange:u=>!u&&s(),mode:n?"change-security":"view-security",folder:i,onSuccess:s})}function Ai(){const{t}=le(),{activeDialog:a,closeDialog:s}=ue(),{createSchedule:n}=Nt(),{selectSchedule:o}=tt(),{mode:l,setMode:i}=Re(),[u,c]=ct(),f=Ct()??void 0,m=u.get("teamId")||void 0,h=Cs(f??null,m),g=Fr(),p=a==="createSchedule",[x,S]=r.useState(""),[v,D]=r.useState(!1),I=r.useRef(null),{disabled:P,disabledTooltip:j}=Ks({isSubmitting:v,isRequiredFilled:!!x.trim()});r.useEffect(()=>{p&&(S(""),D(!1),setTimeout(()=>I.current?.focus(),0))},[p]);const C=async()=>{const N=x.trim();if(!N||v)return;D(!0);const A=l===ae.SHARE_WITH_ME,R=await n(N,A||f==="/"?void 0:f,A?void 0:h);D(!1),R&&(g?.(R._id,{asset:R}),o(R._id),qa(c,R._id)),l===ae.SHARE_WITH_ME&&(i(ae.DEFAULT),c({})),s()},b=N=>{Ys(N)&&C()};return e.jsx(bt,{open:p,onOpenChange:N=>!N&&s(),children:e.jsxs(Dt,{"data-testid":"create-schedule-dialog",className:"sm:max-w-md",children:[e.jsx(jt,{children:e.jsx(Et,{children:t("New Schedule")})}),e.jsx(Ke,{className:"mt-2",ref:I,value:x,onChange:N=>S(N.target.value),onKeyDown:b,placeholder:t("Schedule name"),"aria-label":t("Name")}),e.jsxs(Tt,{children:[e.jsx(Ht,{asChild:!0,children:e.jsx(L,{"data-testid":"cancel-btn",variant:"ghost",children:t("Cancel")})}),e.jsx(L,{"data-testid":"create-btn",onClick:C,disabled:P,disabledTooltip:j,children:t(v?"Creating...":"Create")})]})]})})}
14function Pi(t,a){return{currentScheduleId:t,currentType:Zt.SCHEDULE,accountId:a,tags:[],backgroundBucket:"",muted:!0}}function Fi(){const{activeDialog:t,dialogContext:a,closeDialog:s}=ue(),n=Us(u=>u.me),o=t==="preview",l=a.schedule,i=r.useMemo(()=>o&&l?Pi(l._id,n?.accountId):null,[o,l,n?.accountId]);return e.jsx(ao,{open:o,onClose:s,payload:i,contentName:l?.name})}function Rc(){const{t}=le(),a=Mr("schedules"),s=Lr("schedules"),n=a||s,[o,l]=ct(),i=Ct()??void 0,u=o.get("teamId")||void 0,c=o.get("id")??void 0,{selectedScheduleId:f,selectSchedule:m,clearChecked:h}=tt(),g=Re(y=>y.mode),p=Re(y=>y.setMode),x=Re(y=>y.setSearchText),S=r.useRef(c);S.current=c,r.useEffect(()=>(x(""),S.current||m(null),h(),()=>{m(null),h()}),[]),r.useEffect(()=>{i===ae.SHARE_WITH_ME&&g!==ae.SHARE_WITH_ME?p(ae.SHARE_WITH_ME):i!==ae.SHARE_WITH_ME&&g===ae.SHARE_WITH_ME&&p(ae.DEFAULT)},[i]);const{schedules:v,loading:D,refetch:I,totalCount:P,folderTotalCount:j}=na(i,u),C=!i||i==="/",N=C&&!D&&g!==ae.SHARE_WITH_ME&&(P??0)===0&&(j??0)===0?"create":(j??0)>0||g===ae.SHARE_WITH_ME||!C?"select":"hidden",{currentGroup:A,loading:R,refetch:k}=wt(i,u),F=ke(y=>y.activeTeamId),O=Or("schedules","Schedule",{path:!i||i==="/"?null:i,teamId:F??"",engage:!1}),w=r.useRef(i);r.useEffect(()=>{if(i!==w.current){w.current=i;return}if(!(!i||i==="/"||i===ae.SHARE_WITH_ME||D||R)){if(u&&F&&u!==F&&(A===null||!A.securityTeams?.includes(F)&&!A.securityTeams?.includes("-2"))){ge.error(t("You do not have access to this folder.")),l({});return}A===null&&($.current=!0,tt.getState().selectSchedule(null),l({}))}},[i,D,R,A,v.length,l,F,u,t]);const G=r.useRef(void 0),B=r.useRef(void 0),$=r.useRef(!1);no(I,k),r.useEffect(()=>(c&&G.current!==c&&(m(c),G.current=c),()=>{G.current=void 0}),[c,m]);const ne=o.has("path"),{schedule:Y}=Es(c&&B.current!==c&&!ne?c:null);r.useEffect(()=>{c&&ne&&(B.current=c)},[c,ne]),r.useEffect(()=>{if(!c||B.current===c||!Y||ne)return;B.current=c;const y=Y.path||void 0;if(y!==i){const _={id:c};y&&(_.path=y),Y.teamId&&(_.teamId=Y.teamId),l(_,{replace:!0})}},[c,Y,i,ne,l]),r.useEffect(()=>{if(!n){if($.current){$.current=!1;return}if(!f&&!c&&v.length>0){const y=v[0]._id;m(y),B.current=y}}},[n,v,f,m,c]),r.useEffect(()=>{D||!f&&c&&Ur(l)},[D,f,c,l]);const V=r.useRef(null),[ce,ve]=r.useState(null),De=r.useCallback(y=>{ve(y)},[]),[pe,Ee]=r.useState(0),E=r.useCallback(()=>Ee(y=>y+1),[]),[Q,J]=r.useState(null),he=r.useRef(null),d=r.useCallback(y=>{he.current&&clearTimeout(he.current),J(_=>({day:y,seq:(_?.seq??0)+1})),he.current=setTimeout(()=>J(null),ol)},[]);return r.useEffect(()=>()=>{he.current&&clearTimeout(he.current)},[]),e.jsx(bs,{children:e.jsxs("div",{"data-testid":"schedules-page",className:"flex h-full overflow-hidden bg-muted",children:[e.jsx("div",{"data-testid":"schedule-sidebar",className:"w-0 shrink-0 overflow-hidden transition-[width] duration-300 ease-in-out md:w-[280px]",children:e.jsx("div",{className:"h-full w-[280px] pl-4",children:e.jsx(xo,{})})}),e.jsx("div",{"data-testid":"schedule-detail-panel",className:"mb-2 mr-2 flex-1 overflow-hidden rounded-xl bg-card",children:e.jsx(ri,{emptyVariant:N,calendarRef:V,onDatesChange:De,onTodayJump:E,spotlightDay:Q?.day??null,spotlightSeq:Q?.seq??0,dateInfo:ce,todayJumpToken:pe,onDayPick:d})}),e.jsx(hi,{}),e.jsx(fi,{}),e.jsx(pi,{}),e.jsx(gi,{}),e.jsx(vi,{}),e.jsx(Ci,{}),e.jsx(Di,{}),e.jsx(Xl,{}),e.jsx(ji,{}),e.jsx(Ei,{}),e.jsx(Ti,{}),e.jsx(wi,{}),e.jsx(Ni,{}),e.jsx(ki,{}),e.jsx(_i,{}),e.jsx(Hr.Provider,{value:O,children:e.jsx(Ai,{})}),e.jsx(Fi,{}),e.jsx(to,{}),e.jsx(so,{})]})})}export{Rc as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.