1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1202],{1202:(e,t,n)=>{n.r(t),n.d(t,{default:()=>eQ});var r=n(95155),a=n(99129),l=n(12115),i=n(15420),o=n(35824),s=n(49012),d=n(5094),c=n(21892),u=n(29016),m=n(31768),p=n(44153),g=n(30574),h=n(9290),f=n(6603),x=n(26612),v=n(73321),y=n(22646),b=n(13920),j=n(66745),A=n(84249),w=n(63989),C=n(88061),k=n(48022),S=n(88986),E=n(78255),N=n(96684),D=n(29722);let P={dayGridMonth:{title:"Month"},timeGridWeek:{title:"Week"},timeGridDay:{title:"Day"}},I=function(e){let{className:t,currentDate:n,onChange:a}=e,l=n?.view.type||"dayGridMonth";return(0,r.jsx)(N.A,{className:(0,D.A)("bg-background-paper flex items-center rounded-xl border p-1 shadow-xs",t),children:Object.entries(P).map(e=>{let[t,n]=e,i=l===t;return(0,r.jsx)(w.A,{onClick:()=>a(t),variant:i?"contained":"text",color:i?"secondary":"inherit",size:"small","aria-pressed":i,className:"min-w-18 rounded-lg",sx:{boxShadow:"none"},children:n.title},t)})})},L=(0,l.createContext)(null);function G(){let e=(0,l.useContext)(L);if(!e)throw Error("useCalendarApp must be used within a CalendarAppProvider");return e}let T=function(e){let{calendarRef:t,currentDate:n,onToggleLeftSidebar:a}=e,{openNewEventDialog:l}=G(),i=(0,E.Kn)(),o=()=>t.current?.getApi();return(0,r.jsxs)("div",{className:"bg-background-paper/95 z-10 flex w-full flex-col items-stretch justify-between gap-2 border-b px-3 py-2 backdrop-blur sm:flex-row sm:items-center md:px-6",children:[(0,r.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,r.jsx)(A.A,{onClick:()=>a(),"aria-label":"open left sidebar",className:"bg-background-default rounded-lg ring-1 ring-gray-300 dark:bg-gray-900 dark:ring-gray-800",children:(0,r.jsx)(S.A,{children:"lucide:panel-left-open"})}),(0,r.jsx)(k.A,{className:"min-w-0 truncate text-xl font-semibold tracking-tight",children:n?.view.title||"Calendar"})]}),(0,r.jsxs)("div",{className:"flex max-w-full flex-nowrap items-center gap-2 overflow-x-auto pb-1 sm:justify-end sm:pb-0",children:[(0,r.jsxs)(N.A,{className:"flex items-center rounded-lg border p-1",children:[(0,r.jsx)(C.A,{title:"Previous",children:(0,r.jsx)(A.A,{"aria-label":"Previous",onClick:()=>o()?.prev(),className:"rounded-lg",children:(0,r.jsx)(S.A,{children:"ltr"===i.direction?"lucide:chevron-left":"lucide:chevron-right"})})}),(0,r.jsx)(C.A,{title:"Next",children:(0,r.jsx)(A.A,{"aria-label":"Next",onClick:()=>o()?.next(),className:"rounded-lg",children:(0,r.jsx)(S.A,{children:"ltr"===i.direction?"lucide:chevron-right":"lucide:chevron-left"})})})]}),(0,r.jsx)(w.A,{variant:"outlined",size:"small",onClick:()=>o()?.today(),startIcon:(0,r.jsx)(S.A,{children:"lucide:calendar-days"}),children:"Today"}),(0,r.jsx)(I,{currentDate:n,onChange:function(e){let t=o();t&&t.view.type!==e&&t.changeView(e)}}),(0,r.jsx)(b.AnslationOneActionGuard,{module:"communication",action:"create",children:(0,r.jsx)(w.A,{variant:"contained",color:"secondary",startIcon:(0,r.jsx)(S.A,{children:"lucide:calendar-plus"}),onClick:e=>l({jsEvent:e.nativeEvent,start:new Date,end:new Date(new Date().getTime()+36e5)}),children:"New Event"})})]})]})};var M=n(80141),$=n(68459),U=n(80322),R=n(15987),F=n(93128),O=n(45228),W=n(15394),q=n(35625),z=n(48934),K=n(19532);let Q=()=>{let e=(0,q.jE)(),{enqueueSnackbar:t}=(0,y.dh)();return(0,z.n)({mutationFn:K.d.updateEvent,onSuccess:()=>{e.invalidateQueries({queryKey:["calendar","events"]}),e.invalidateQueries({queryKey:["calendar","connection"]}),t("Event updated.",{variant:"success"})},onError:e=>{t(e instanceof Error?e.message:"Unable to update event.",{variant:"error"})}})};var Y=n(58124),_=n(32218),H=n(26708);let B=["calendar","labels"],V=()=>{let{initializeSelectedLabels:e,selectedLabels:t,setSelectedLabels:n}=G(),{enqueueSnackbar:r}=(0,y.dh)(),a=(0,l.useRef)(null),i=(0,H.I)({queryFn:K.d.getLabels,queryKey:B,placeholderData:e=>e}),{data:o}=i;return(0,l.useEffect)(()=>{if(!o)return;let r=o.map(e=>e.id);e(r);let l=a.current;if(a.current=r,null===l)return;let i=r.filter(e=>!l.includes(e)),s=t.filter(e=>r.includes(e)),d=[...s,...i.filter(e=>!s.includes(e))];d.length===t.length&&d.every((e,n)=>e===t[n])||n(d)},[e,o,t,n]),(0,l.useEffect)(()=>{i.isError&&r("Error loading labels!",{variant:"error"})},[r,i.isError]),i};var X=n(498);let J=function(e){let{value:t,onChange:n,className:a,disabled:l=!1,ref:i}=e,{data:o}=V();return(0,r.jsxs)(Y.A,{fullWidth:!0,className:a,children:[(0,r.jsx)(X.A,{htmlFor:"label-select",children:"Label"}),(0,r.jsxs)(_.A,{id:"label-select",value:t,onChange:e=>{n(e.target.value)},disabled:l,ref:i,classes:{select:"flex items-center gap-3"}
1,children:[(0,r.jsx)(U.A,{value:"",children:(0,r.jsx)("span",{children:"No label"})}),o?.map(e=>(0,r.jsxs)(U.A,{value:e.id,className:"gap-2",children:[(0,r.jsx)(S.A,{sx:{color:e.color},children:"lucide:tag"}),(0,r.jsx)("span",{children:e.title})]},e.id))]})]})};var Z=n(53386);let ee={title:"",allDay:!1,start:"",end:"",description:"",location:"",labelId:"",attendeeEmails:"",createMeetLink:!1,reminderMethod:"popup",reminderMinutes:"15",sendUpdates:"all",syncToGoogle:!1},et=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function en(e,t){if(!e)return"";let n=new Date(e);return Number.isNaN(n.getTime())?"":t?n.toISOString().slice(0,10):new Date(n.getTime()-6e4*n.getTimezoneOffset()).toISOString().slice(0,16)}function er(e,t){return e?new Date(t?`${e}T00:00:00`:e).toISOString():""}function ea(e,t,n){if(!e)return"";try{return en(er(e,t),n)}catch{return e}}function el(e){return Array.isArray(e)?e.reduce((e,t)=>{if(!t||"object"!=typeof t)return e;let n=String(t.email||"").trim().toLowerCase();return n&&e.push({email:n,name:String(t.name||"").trim(),optional:!!t.optional,responseStatus:t.responseStatus||"needsAction",internalUserId:String(t.internalUserId||"").trim()}),e},[]):[]}let ei=function(){let{eventDialog:e,closeEditEventDialog:t,closeNewEventDialog:n}=G(),{mutateAsync:a,isPending:i}=(()=>{let e=(0,q.jE)(),{enqueueSnackbar:t}=(0,y.dh)();return(0,z.n)({mutationFn:K.d.createEvent,onSuccess:()=>{e.invalidateQueries({queryKey:["calendar","events"]}),e.invalidateQueries({queryKey:["calendar","connection"]}),t("Event created.",{variant:"success"})},onError:e=>{t(e instanceof Error?e.message:"Unable to create event.",{variant:"error"})}})})(),{mutateAsync:o,isPending:s}=Q(),{mutateAsync:d,isPending:c}=(()=>{let e=(0,q.jE)(),{enqueueSnackbar:t}=(0,y.dh)();return(0,z.n)({mutationFn:K.d.deleteEvent,onSuccess:()=>{e.invalidateQueries({queryKey:["calendar","events"]}),e.invalidateQueries({queryKey:["calendar","connection"]}),t("Event deleted.",{variant:"success"})},onError:e=>{t(e instanceof Error?e.message:"Unable to delete event.",{variant:"error"})}})})(),u=(0,Z.U)(),m=(0,j.LL)(),[p,g]=(0,l.useState)(ee),[h,f]=(0,l.useState)(ee),[x,v]=(0,l.useState)(!1),[A,C]=(0,l.useState)(!1),E=e.props.open,N="edit"===e.type,D=i||s||c,P=!!e.data?.extendedProps?.readOnly,I=u.data?.connected===!0,L=m.can("communication",N?"edit":"create"),T=m.can("communication","edit");(0,l.useEffect)(()=>{var t,n;if(!E)return;let r=!!e.data?.allDay,a=e.data?.extendedProps||{},l=el(a.attendees),i=(!Array.isArray(t=a.reminders)?[]:t.reduce((e,t)=>{if(!t||"object"!=typeof t)return e;let n="email"===t.method?"email":"popup"===t.method?"popup":null,r=Number(t.minutes);return n&&Number.isFinite(r)&&!(r<0)&&e.push({method:n,minutes:r}),e},[]))[0]||{method:"popup",minutes:15},o={id:e.data?.id,title:e.data?.title||"",allDay:r,start:en(e.data?.start,r),end:en(e.data?.end,r),description:"string"==typeof a.desc?a.desc:"",location:"string"==typeof a.location?a.location:"",labelId:"string"==typeof a.labelId&&a.labelId||("string"==typeof a.label?a.label:""),attendeeEmails:l.map(e=>e.email).join(", "),createMeetLink:!!a.createMeetLink,reminderMethod:i.method,reminderMinutes:String(i.minutes),sendUpdates:"externalOnly"===(n=a.sendUpdates)||"none"===n?n:"all",syncToGoogle:!!a.syncToGoogle};g(o),f(o),v(!1),C(!1)},[e.data,E]);let Y=(0,l.useMemo)(()=>N?"Edit event":"Create event",[N]),_=(0,l.useMemo)(()=>[...new Set(p.attendeeEmails.split(/[\n,;]/).map(e=>e.trim().toLowerCase()).filter(Boolean))],[p.attendeeEmails]),H=(0,l.useMemo)(()=>_.filter(e=>!et.test(e)),[_]),B=(0,l.useMemo)(()=>{if(!p.start)return"Start date and time are required.";if(!p.end)return"";try{let e=new Date(er(p.start,p.allDay));return new Date(er(p.end,p.allDay))<e?"End must be after the start.":""}catch{return"Enter a valid start and end."}},[p.allDay,p.end,p.start]),V=Number(p.reminderMinutes),X=!p.reminderMinutes.trim()||!Number.isFinite(V)||V<0||V>40320?"Reminder must be between 0 and 40,320 minutes.":"",ei=!P&&L&&!B&&!X&&0===H.length,eo=(0,l.useMemo)(()=>Object.keys(p).some(e=>p[e]!==h[e]),[p,h]);function es(){N?t():n()}
1function ed(){if(!D){if(eo)return void C(!0);es()}}function ec(e,t){g(n=>({...n,[e]:t}))}async function eu(){if(!ei)return;let t=e.data?.extendedProps||{},n=new Map(el(t.attendees).map(e=>[e.email,e])),r=I?p.syncToGoogle:!!t.syncToGoogle,l={title:p.title.trim()||"Untitled event",start:er(p.start,p.allDay),end:er(p.end||p.start,p.allDay),allDay:p.allDay,description:p.description.trim(),location:p.location.trim(),labelId:p.labelId,status:t.status||"confirmed",syncToGoogle:r,createMeetLink:r&&p.createMeetLink,sendUpdates:p.sendUpdates,calendarId:"string"==typeof t.calendarId?t.calendarId:"",calendarSummary:"string"==typeof t.calendarSummary?t.calendarSummary:"",attendees:_.map(e=>({...n.get(e)||{},email:e})),reminders:[{method:p.reminderMethod,minutes:V}]};try{N&&p.id?await o({id:p.id,...l}):await a(l),es()}catch{}}async function em(){if(p.id&&T)try{await d(p.id),es()}catch{}}return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(W.W2,{open:E,onClose:ed,maxWidth:"md",title:Y,description:P?"This synced event is read-only in Anslation One.":"Schedule the event, guests, reminders, and optional Google sync.",icon:"lucide:calendar-days",actions:(0,r.jsxs)(r.Fragment,{children:[N&&p.id&&!P?(0,r.jsx)(b.AnslationOneActionGuard,{module:"communication",action:"edit",children:(0,r.jsx)(w.A,{color:"error",onClick:()=>v(!0),disabled:D||!T,startIcon:(0,r.jsx)(S.A,{children:"lucide:trash-2"}),sx:{mr:"auto"},children:"Delete"})}):null,(0,r.jsx)(w.A,{onClick:ed,disabled:D,children:P?"Close":"Cancel"}),P?null:(0,r.jsx)(b.AnslationOneActionGuard,{module:"communication",action:N?"edit":"create",children:(0,r.jsx)(w.A,{variant:"contained",onClick:eu,disabled:D||!ei,children:N?"Save Changes":"Create Event"})})]}),children:(0,r.jsxs)(R.A,{spacing:2.5,children:[P?(0,r.jsx)(M.A,{severity:"info",children:"Open the source calendar to change this event."}):null,B||X||H.length?(0,r.jsx)(M.A,{severity:"warning",children:B||X||`Check attendee email${1===H.length?"":"s"}: ${H.join(", ")}`}):null,(0,r.jsx)(O.A,{label:"Title",value:p.title,onChange:e=>ec("title",e.target.value),disabled:P,fullWidth:!0}),(0,r.jsx)($.A,{control:(0,r.jsx)(F.A,{checked:p.allDay,disabled:P,onChange:e=>{let t=e.target.checked;g(e=>({...e,allDay:t,start:ea(e.start,e.allDay,t),end:ea(e.end,e.allDay,t)}))}}),label:"All-day event"}),(0,r.jsxs)(R.A,{direction:{xs:"column",sm:"row"},spacing:2,children:[(0,r.jsx)(O.A,{label:"Start",type:p.allDay?"date":"datetime-local",value:p.start,onChange:e=>ec("start",e.target.value),disabled:P,fullWidth:!0,InputLabelProps:{shrink:!0}}),(0,r.jsx)(O.A,{label:"End",type:p.allDay?"date":"datetime-local",value:p.end,onChange:e=>ec("end",e.target.value),disabled:P,fullWidth:!0,InputLabelProps:{shrink:!0}})]}),(0,r.jsx)(J,{value:p.labelId,onChange:e=>ec("labelId",e),disabled:P}),(0,r.jsx)(O.A,{label:"Location",value:p.location,onChange:e=>ec("location",e.target.value),disabled:P,fullWidth:!0}),(0,r.jsx)(O.A,{label:"Attendees",value:p.attendeeEmails,onChange:e=>ec("attendeeEmails",e.target.value),disabled:P,error:H.length>0,helperText:"Separate email addresses with commas.",fullWidth:!0}),(0,r.jsxs)(R.A,{direction:{xs:"column",sm:"row"},spacing:2,children:[(0,r.jsxs)(O.A,{select:!0,label:"Reminder",value:p.reminderMethod,onChange:e=>ec("reminderMethod",e.target.value),disabled:P,fullWidth:!0,children:[(0,r.jsx)(U.A,{value:"popup",children:"In-app reminder"}),(0,r.jsx)(U.A,{value:"email",children:"Email reminder"})]}),(0,r.jsx)(O.A,{label:"Minutes before",type:"number",value:p.reminderMinutes,onChange:e=>ec("reminderMinutes",e.target.value),disabled:P,error:!!X,inputProps:{min:0,max:40320},fullWidth:!0})]}),(0,r.jsxs)(R.A,{spacing:1.25,sx:{border:"1px solid",borderColor:"divider",borderRadius:"var(--anslation-ds-radius)",p:1.5},children:[(0,r.jsx)(k.A,{sx:{fontSize:"0.82rem",fontWeight:850},children:"Google Calendar"}),I?null:(0,r.jsx)(k.A,{sx:{color:"text.secondary",fontSize:"0.75rem",lineHeight:1.5},children:"Connect Google Calendar from the sidebar to add Meet links and send guest updates."}),(0,r.jsx)($.A,{control:(0,r.jsx)(F.A,{checked:p.syncToGoogle,disabled:P||!I,onChange:e=>{let t=e.target.checked;g(e=>({...e,syncToGoogle:t,createMeetLink:!!t&&e.createMeetLink}))}}),label:"Sync this event to Google"}),p.syncToGoogle?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)($.A,{control:(0,r.jsx)(F.A,{checked:p.createMeetLink,disabled:P||!I,onChange:e=>ec("createMeetLink",e.target.checked)}),label:"Create a Google Meet link"}),(0,r.jsxs)(O.A,{select:!0,label:"Guest updates",value:p.sendUpdates,onChange:e=>ec("sendUpdates",e.target.value),disabled:P||!I,fullWidth:!0,children:[(0,r.jsx)(U.A,{value:"all",children:"Send to all guests"}
1),(0,r.jsx)(U.A,{value:"externalOnly",children:"External guests only"}),(0,r.jsx)(U.A,{value:"none",children:"Do not send"})]})]}):null]}),(0,r.jsx)(O.A,{label:"Description",value:p.description,onChange:e=>ec("description",e.target.value),disabled:P,fullWidth:!0,multiline:!0,minRows:4})]})}),(0,r.jsx)(W.y2,{open:x,title:"Delete event?",description:"This event will be permanently removed from your calendar.",confirmLabel:"Delete",busy:c,onCancel:()=>v(!1),onConfirm:async()=>{await em(),v(!1)}}),(0,r.jsx)(W.y2,{open:A,title:"Discard unsaved changes?",description:"Your edits to this event will be lost.",confirmLabel:"Discard",onCancel:()=>C(!1),onConfirm:()=>{C(!1),es()}})]})};var eo=n(56076),es=n(75435),ed=n(38699),ec=n(98820),eu=n(41161),em=n(99003),ep=n(97810),eg=n.n(ep),eh=n(4525),ef=n(18398),ex=n(5989),ev=n(33546),ey=n(63759),eb=n.n(ey),ej=n(93735),eA=n.n(ej);let ew=function(e){return e=e||{},eb()(e,{id:eA()(),title:"",color:"#e75931"})},eC=ew(),ek=ex.Ik({title:ex.Yj().nonempty("You must enter a label title"),color:ex.Yj().optional()}),eS=function(){let{mutate:e}=(()=>{let e=(0,q.jE)(),{enqueueSnackbar:t}=(0,y.dh)();return(0,z.n)({mutationFn:K.d.createLabel,onSuccess:()=>{e.invalidateQueries({queryKey:B}),e.invalidateQueries({queryKey:["calendar","events"]})},onError:()=>{t("Error creating label!",{variant:"error"})}})})(),t=(0,j.LL)(),{enqueueSnackbar:n}=(0,y.dh)(),a=t.can("communication","create"),{control:l,formState:i,handleSubmit:o,reset:s}=(0,em.mN)({mode:"onChange",defaultValues:eC,resolver:(0,ev.u)(ek)}),{isValid:d,dirtyFields:c,errors:u}=i;return(0,r.jsx)("form",{onSubmit:o(function(r){a?(e(ew(r)),s(eC)):n(`${t.orgRole||"Your role"} cannot create calendar labels.`,{variant:"error"})}),children:(0,r.jsx)(eh.Ay,{className:"mb-2 p-0",dense:!0,children:(0,r.jsx)(em.xI,{name:"title",control:l,render:e=>{let{field:t}=e;return(0,r.jsx)(O.A,{...t,className:(0,D.A)("flex flex-1"),error:!!u.title,helperText:u?.title?.message,placeholder:"Create new label",variant:"outlined",slotProps:{input:{startAdornment:(0,r.jsx)(em.xI,{name:"color",control:l,render:e=>{let{field:{onChange:t,value:n}}=e;return(0,r.jsxs)(X.A,{className:"flex items-center rounded focus-within:ring-2",children:[(0,r.jsx)(S.A,{children:"lucide:tag"}),(0,r.jsx)(ef.A,{value:n,onChange:e=>{t(e.target.value)},type:"color",className:"opacity-0",inputProps:{"aria-label":"Label color"}})]})}}),endAdornment:(0,r.jsx)(A.A,{className:"p-0","aria-label":"Add label",disabled:eg()(c)||!d||!a,type:"submit",size:"small",children:(0,r.jsx)(S.A,{color:"action",children:"lucide:check"})})}}})}})})})};var eE=n(34279),eN=n(35815),eD=n.n(eN);let eP=ex.Ik({id:ex.Yj().optional(),title:ex.Yj().nonempty("You must enter a label title"),color:ex.Yj().optional()}),eI=function(e){let{label:t}=e,[n,a]=(0,l.useState)(!1),{mutate:i}=(()=>{let e=(0,q.jE)(),{enqueueSnackbar:t}=(0,y.dh)();return(0,z.n)({mutationFn:K.d.deleteLabel,onSuccess:()=>{e.invalidateQueries({queryKey:B}),e.invalidateQueries({queryKey:["calendar","events"]})},onError:()=>{t("Error deleting label!",{variant:"error"})}})})(),{mutate:o}=(()=>{let e=(0,q.jE)(),{enqueueSnackbar:t}=(0,y.dh)();return(0,z.n)({mutationFn:K.d.updateLabel,onSuccess:()=>{e.invalidateQueries({queryKey:B}),e.invalidateQueries({queryKey:["calendar","events"]})},onError:()=>{t("Error updating label!",{variant:"error"})}})})(),{control:s,formState:d,reset:c,watch:u}=(0,em.mN)({mode:"onChange",defaultValues:t,resolver:(0,ev.u)(eP)}),{errors:m}=d,p=u();(0,l.useEffect)(()=>{c(t)},[t,c]);let g=(0,eE.d7)(e=>{if(!eD()(e,t)){let{title:n,color:r}=e;o({id:t.id,title:n,color:r})}},300);function h(){a(!0)}return(0,l.useEffect)(()=>{g(p)},[g,p]),(0,r.jsxs)(eh.Ay,{className:"mb-2 p-0",dense:!0,children:[(0,r.jsx)(W.y2,{open:n,title:"Delete label?",description:"Events will keep their schedule, but this label will be removed from them.",confirmLabel:"Delete",onCancel:()=>a(!1),onConfirm:()=>{i(t.id),a(!1)}}),(0,r.jsx)(em.xI,{name:"title",control:s,render:e=>{let{field:n}=e;return(0,r.jsx)(O.A,{...n,className:(0,D.A)("flex flex-1"),error:!!m.title,helperText:m?.title?.message,placeholder:"Create new label",variant:"outlined",slotProps:{input:{startAdornment:(0,r.jsx)(em.xI,{name:"color",control:s,render:e=>
1{let{field:{onChange:t,value:n}}=e;return(0,r.jsxs)(X.A,{className:"flex items-center rounded focus-within:ring-2",sx:{color:n},children:[(0,r.jsx)(S.A,{children:"lucide:tag"}),(0,r.jsx)(ef.A,{value:n,onChange:e=>{t(e.target.value)},type:"color",className:"opacity-0",inputProps:{"aria-label":"Label color"}})]})}}),endAdornment:(0,r.jsx)(b.AnslationOneActionGuard,{module:"communication",action:"edit",children:(0,r.jsx)(C.A,{title:`Delete ${t.title||"label"}`,children:(0,r.jsx)(A.A,{onClick:h,className:"p-0","aria-label":`Delete ${t.title||"label"}`,size:"small",children:(0,r.jsx)(S.A,{color:"action",children:"lucide:trash"})})})})}}})}})]})},eL=function(){let[e,t]=(0,l.useState)(!1),{data:n}=V();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(C.A,{title:"Edit labels",children:(0,r.jsx)(A.A,{onClick:function(){t(!0)},"aria-label":"Edit labels",size:"small",children:(0,r.jsx)(S.A,{color:"secondary",children:"lucide:square-pen"})})}),(0,r.jsxs)(ec.A,{classes:{paper:"w-full max-w-80 p-6 md:p-10 m-6"},onClose:function(){t(!1)},open:e,disableRestoreFocus:!0,children:[(0,r.jsx)(k.A,{className:"mb-4 text-2xl font-semibold",children:"Edit Labels"}),(0,r.jsxs)(eu.A,{dense:!0,children:[(0,r.jsx)(eS,{}),n?.map(e=>(0,r.jsx)(eI,{label:e},e.id))]})]})]})};var eG=n(98505);let eT=function(){let{selectedLabels:e,toggleSelectedLabels:t,openNewEventDialog:n}=G(),{data:a,isLoading:i}=V(),o=(0,Z.U)(),s=(0,eG.$)(),d=(0,q.jE)(),c=(0,v.useSearchParams)(),u=(0,v.usePathname)(),m=(0,v.useRouter)(),{enqueueSnackbar:p}=(0,y.dh)(),[g,h]=(0,l.useState)(!1),f=(0,j.LL)(),x=(0,z.n)({mutationFn:()=>K.d.connectWorkspace({returnTo:window.location.href}),onSuccess:e=>{let{authorizationUrl:t}=e;window.location.assign(t)},onError:e=>{p(e instanceof Error?e.message:"Unable to start the workspace connection.",{variant:"error"})}}),A=(0,z.n)({mutationFn:()=>K.d.connectGoogleCalendar({returnTo:window.location.href}),onSuccess:e=>{let{authorizationUrl:t}=e;window.location.assign(t)},onError:e=>{p(e instanceof Error?e.message:"Unable to start the Google Calendar connection.",{variant:"error"})}}),C=(0,z.n)({mutationFn:K.d.disconnectGoogleCalendar,onSuccess:async()=>{await Promise.all([d.invalidateQueries({queryKey:Z.K}),d.invalidateQueries({queryKey:eG.r}),d.invalidateQueries({queryKey:["calendar","events"]})]),p("Google Calendar disconnected.",{variant:"success"})},onError:e=>{p(e instanceof Error?e.message:"Unable to disconnect Google Calendar.",{variant:"error"})}}),E=(0,z.n)({mutationFn:e=>K.d.updateCalendarConnection(e),onSuccess:async()=>{await Promise.all([d.invalidateQueries({queryKey:Z.K}),d.invalidateQueries({queryKey:["calendar","events"]})]),p("Active Google calendar updated.",{variant:"success"})},onError:e=>{p(e instanceof Error?e.message:"Unable to change the active Google calendar.",{variant:"error"})}}),D=c.get("workspaceConnected"),P=c.get("workspaceError"),I=c.get("calendarConnected"),L=c.get("calendarError");(0,l.useEffect)(()=>{if(!D&&!P&&!I&&!L)return;Promise.all([d.invalidateQueries({queryKey:Z.K}),d.invalidateQueries({queryKey:eG.r}),d.invalidateQueries({queryKey:["calendar","events"]})]),D?p("Workspace tools connected successfully.",{variant:"success"}):P&&p(decodeURIComponent(P),{variant:"error"}),I?p("Google Calendar connected successfully.",{variant:"success"}):L&&p(decodeURIComponent(L),{variant:"error"});let e=new URLSearchParams(c.toString());e.delete("workspaceConnected"),e.delete("workspaceError"),e.delete("calendarConnected"),e.delete("calendarError"),m.replace(e.size>0?`${u}?${e.toString()}`:u)},[L,I,p,u,d,m,c,P,D]);let T=(0,l.useMemo)(()=>{let e=s.data;return e?.oauthConfigured?e.connected?{title:"Workspace connected",description:e.email||"Company tools are linked once and reused across your workspace.",color:"success"}:{title:"One-time connect available",description:"Connect mail, drive, and calendar once during onboarding instead of authorizing each app separately.",color:"secondary"}:{title:"Setup needed",description:"Add the shared Google Workspace OAuth client to unlock one-time mail, drive, and calendar connect during onboarding.",color:"warning"}},[s.data]),$=(0,l.useMemo)(()=>{let e=o.data;return e?.oauthConfigured||e?.workspaceOauthConfigured?e?.lastError?{title:"Calendar issue",description:e.lastError,color:"warning"}:e?.connected?{title:e.selectedCalendarSummary||"Google sync active",description:e.email||"Events can sync to Google when you choose",color:"success"}:{title:"Optional sync available",description:"Keep this workspace as your primary calendar, then sync selected events to Google for Meet links, guests, and reminders.",color:"secondary"}:{title:"Setup needed",description:"Add either the calendar-only OAuth client or the shared workspace client to enable live calendar sync.",color:"warning"}},[o.data]),R=x.isPending||A.isPending||C.isPending||E.isPending,F=!!s.data?.oauthConfigured&&!s.data?.connected,O=F?x.isPending:A.isPending;
1function Q(e){return!f.can("communication",e)&&(p(`${f.orgRole||"Your role"} cannot ${e} in Calendar.`,{variant:"error"}),!0)}return(0,r.jsxs)("div",{className:"flex min-h-full flex-auto flex-col gap-4 px-4 py-4",children:[(0,r.jsxs)(N.A,{className:"bg-background-paper overflow-hidden rounded-lg border px-4 py-4 shadow-sm",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(k.A,{className:"text-2xl font-semibold tracking-tight",children:"Calendar"}),(0,r.jsx)(k.A,{className:"mt-2 text-sm leading-6",color:"text.secondary",children:"Plan meetings, reminders, and internal schedules in your company calendar. Google sync stays optional."})]}),(0,r.jsx)(b.AnslationOneActionGuard,{module:"communication",action:"create",children:(0,r.jsx)(w.A,{className:"mt-4",fullWidth:!0,variant:"contained",color:"secondary",startIcon:(0,r.jsx)(S.A,{children:"lucide:calendar-plus"}),onClick:e=>n({jsEvent:e.nativeEvent,start:new Date,end:new Date(new Date().getTime()+36e5)}),children:"New Event"})}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)(eo.A,{label:T.title,size:"small",color:T.color,variant:s.data?.connected?"filled":"outlined"}),(0,r.jsx)(eo.A,{label:$.title,size:"small",color:$.color,variant:o.data?.connected?"filled":"outlined"})]})]}),(0,r.jsxs)(N.A,{className:"bg-background-paper rounded-lg border px-4 py-4 shadow-sm",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(k.A,{className:"text-sm font-semibold",children:"Google Calendar sync"}),(0,r.jsx)(k.A,{className:"mt-1 text-sm leading-6",color:"text.secondary",children:$.description})]}),(0,r.jsx)(eo.A,{label:o.data?.connected?"Live":"Pending",color:$.color,size:"small",variant:o.data?.connected?"filled":"outlined"})]}),o.data?.connected?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(Y.A,{fullWidth:!0,className:"mt-4",children:[(0,r.jsx)(X.A,{htmlFor:"selected-calendar",children:"Active Google calendar"}),(0,r.jsx)(_.A,{id:"selected-calendar",value:o.data.selectedCalendarId||"primary",onChange:e=>E.mutate(String(e.target.value||"primary")),disabled:R,children:o.data.calendars.map(e=>(0,r.jsx)(U.A,{value:e.id,children:e.summary},e.id))})]}),(0,r.jsx)(b.AnslationOneActionGuard,{module:"communication",action:"edit",children:(0,r.jsx)(w.A,{className:"mt-4",variant:"text",color:"secondary",disabled:R,onClick:()=>{Q("edit")||h(!0)},children:C.isPending?"Disconnecting...":"Disconnect calendar"})})]}):(0,r.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[(o.data?.oauthConfigured||F)&&(0,r.jsx)(b.AnslationOneActionGuard,{module:"communication",action:"create",children:(0,r.jsx)(w.A,{fullWidth:!0,variant:"contained",color:"secondary",disabled:R,onClick:function(){if(!Q("create")){if(F)return void x.mutate();A.mutate()}},startIcon:(0,r.jsx)(S.A,{children:"lucide:calendar-check-2"}),children:O?"Connecting...":"Connect Google Calendar"})}),(0,r.jsx)(k.A,{className:"text-xs leading-5",color:"text.secondary",children:"Your workspace remains your primary calendar. Google is used for imported events, guest updates, reminders, and Meet links."})]})]}),(0,r.jsxs)(N.A,{className:"bg-background-paper rounded-lg border px-4 py-4 shadow-sm",children:[(0,r.jsxs)("div",{className:"group flex items-center justify-between",children:[(0,r.jsx)(k.A,{className:"text-lg leading-none font-semibold",color:"text.primary",children:"Labels"}),(0,r.jsx)(b.AnslationOneActionGuard,{module:"communication",action:"edit",children:(0,r.jsx)(eL,{})})]}),(0,r.jsxs)("div",{className:"mt-4 space-y-2",children:[i&&Array.from({length:3},(e,t)=>(0,r.jsx)(es.A,{variant:"rounded",height:40,className:"w-full"},t)),!i&&!a?.length&&(0,r.jsx)(k.A,{className:"text-xs leading-5",color:"text.secondary",children:"No labels yet â create one with the edit button above."}),a?.map(n=>(0,r.jsxs)("label",{htmlFor:n.id,className:"flex h-10 w-full cursor-pointer items-center gap-2 rounded-xl px-2 hover:bg-black/5 dark:hover:bg-white/5",children:[(0,r.jsx)(ed.A,{id:n.id,color:"secondary",className:"p-0",checked:e.includes(n.id),onChange:()=>{t(n.id)}}
1),(0,r.jsx)(S.A,{sx:{color:n.color},children:"lucide:tag"}),(0,r.jsx)(k.A,{className:"flex flex-1 leading-none",children:n.title})]},n.id))]})]}),(0,r.jsx)(M.A,{severity:"info",variant:"outlined",children:"Calendar events are stored in your own workspace backend first. Google sync is optional and only used when you want guest updates, email reminders, or Meet links."}),(0,r.jsx)(W.y2,{open:g,title:"Disconnect Google Calendar?",description:"Synced events stop updating until you reconnect.",confirmLabel:"Disconnect",onCancel:()=>h(!1),onConfirm:()=>{h(!1),C.mutate()}})]})};var eM=n(47970);let e$=function(e){let{eventInfo:t}=e,n=(0,eM.A)(),a=String(t.event.backgroundColor||"")||String(t.event.extendedProps?.labelColor||"")||"#1a73e8",l=String(t.event.extendedProps?.source||"internal").trim(),i=!!t.event.extendedProps?.meetingUrl,o="#ffffff";try{o=n.palette.getContrastText(a)}catch{o="#ffffff"}return(0,r.jsxs)(N.A,{sx:{backgroundColor:a,color:o},className:"flex min-h-7 w-full items-center gap-1.5 overflow-hidden rounded-lg px-2 py-1",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)(k.A,{className:"truncate text-[11px] leading-none font-semibold opacity-90",children:t.timeText||(t.event.allDay?"All day":"Scheduled")}),(0,r.jsx)(k.A,{className:"truncate text-[11px] leading-none font-semibold",children:t.event.title})]}),"google"===l&&(0,r.jsx)(S.A,{size:14,children:"lucide:cloud"}),i&&(0,r.jsx)(S.A,{size:14,children:"lucide:video"})]})};var eU=n(22725);let eR=[],eF={type:"new",props:{open:!1,anchorPosition:{top:200,left:400}},data:null};function eO(e){let{children:t}=e,[n,a]=(0,l.useState)(eR),[i,o]=(0,l.useState)(eF),s=(0,l.useRef)(!1),d=(0,l.useCallback)(e=>{s.current||0===e.length||(s.current=!0,a(e))},[]),c=(0,l.useCallback)(e=>{a(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),u=(0,l.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{start:n,end:r,jsEvent:a}=e,l=n||new Date,i=r||(0,h.L)(l,1),s=(t.attendees||[]).filter(e=>e?.email);o({type:"new",props:{open:!0,anchorPosition:{top:a?.pageY||240,left:a?.pageX||420}},data:{allDay:!!e.allDay,start:(0,m.x)(l),end:(0,m.x)(i),title:t.title||"",extendedProps:s.length>0?{attendees:s}:void 0}})},[]),p=(0,l.useCallback)(e=>{let{jsEvent:t,event:n}=e,{id:r,title:a,allDay:l,start:i,end:s,extendedProps:d}=n;o({type:"edit",props:{open:!0,anchorPosition:{top:t?.pageY||240,left:t?.pageX||420}},data:{id:r,title:a,allDay:l,extendedProps:d,start:i?(0,m.x)(i):(0,m.x)(new Date),end:s?(0,m.x)(s):(0,m.x)((0,h.L)(i||new Date,1))}})},[]),g=(0,l.useCallback)(()=>{o(eF)},[]),f=(0,l.useCallback)(()=>{o({...eF,type:"edit"})},[]);return(0,r.jsx)(L.Provider,{value:{selectedLabels:n,eventDialog:i,setSelectedLabels:a,initializeSelectedLabels:d,toggleSelectedLabels:c,openNewEventDialog:u,openEditEventDialog:p,closeNewEventDialog:g,closeEditEventDialog:f},children:t})}let eW=[o.A,s.A,d.Ay],eq=(0,a.Ay)(c.A)(e=>{let{theme:t}=e;return{"& .container":{maxWidth:"100%!important"},"& a":{color:`${t.vars.palette.text.primary}!important`,textDecoration:"none!important"},"& .fc":{"--fc-page-bg-color":t.vars.palette.background.paper,"--fc-neutral-bg-color":t.vars.palette.background.default,"--fc-border-color":t.vars.palette.divider,"--fc-today-bg-color":"transparent",fontFamily:"inherit"},"& .fc-media-screen":{minHeight:"100%",width:"100%"},"& .fc-view-harness":{background:t.vars.palette.background.paper},"& .fc-daygrid-day:hover, & .fc-timegrid-col:hover":{backgroundColor:"dark"===t.palette.mode?"rgba(255,255,255,0.02)":"rgba(15,23,42,0.02)"},"& .fc-scrollgrid, & .fc-theme-standard td, & .fc-theme-standard th":{borderColor:`${t.vars.palette.divider}!important`},"& .fc-scrollgrid-section > td":{border:0},"& .fc-col-header-cell":{borderLeftWidth:"0px!important",borderRightWidth:"0px!important",padding:"0.55rem 0",backgroundColor:t.vars.palette.background.paper,"& .fc-col-header-cell-cushion":{color:t.vars.palette.text.secondary,fontWeight:600,fontSize:12,letterSpacing:"0.08em",textTransform:"uppercase"}},"& .fc-view > .fc-scrollgrid":{border:"0!important"}
1,"& .fc-daygrid-day-frame":{minHeight:118,padding:"2px 3px 6px"},"& .fc-daygrid-day.fc-day-today":{backgroundColor:"transparent!important","& .fc-daygrid-day-number":{borderRadius:999,backgroundColor:`${t.vars.palette.secondary.main}!important`,color:`${t.vars.palette.secondary.contrastText}!important`}},"& .fc-daygrid-day-top":{justifyContent:"center","& .fc-daygrid-day-number":{color:t.vars.palette.text.secondary,fontWeight:600,fontSize:12,display:"inline-flex",alignItems:"center",justifyContent:"center",width:30,height:30,margin:"5px 0",borderRadius:999,float:"none",lineHeight:1}},"& .fc-timegrid-slot":{height:"3rem"},"& .fc-timegrid-col-frame":{backgroundColor:t.vars.palette.background.paper},"& .fc-timegrid-axis-cushion, & .fc-timegrid-slot-label-cushion":{color:t.vars.palette.text.secondary,fontSize:12},"& .fc-timegrid-now-indicator-line":{borderColor:`${t.vars.palette.error.main}!important`},"& .fc-timegrid-now-indicator-arrow":{borderColor:`${t.vars.palette.error.main}!important`},"& .fc-event":{border:0,background:"transparent",padding:0,fontSize:12,margin:"0 5px 4px 5px!important"},"& .fc-daygrid-event":{whiteSpace:"normal"},"& .fc-more-link":{borderRadius:999,color:`${t.vars.palette.secondary.main}!important`,fontWeight:700,padding:"2px 8px"},"& .FusePageSimple-contentWrapper":{padding:12},"& .FusePageSimple-content":{boxShadow:"none",borderRadius:"var(--anslation-ds-radius)",border:`1px solid ${t.vars.palette.divider}`,backgroundColor:t.vars.palette.background.paper,overflow:"hidden"},"& .FusePageSimple-sidebarWrapper":{border:"none"},"& .FusePageSimple-sidebarContent":{backgroundColor:t.vars.palette.background.default},[t.breakpoints.down("sm")]:{"& .FusePageSimple-contentWrapper":{padding:8},"& .fc-daygrid-day-frame":{minHeight:72,padding:"1px 1px 3px"},"& .fc-daygrid-day-top .fc-daygrid-day-number":{fontSize:10,height:24,margin:"2px 0",width:24},"& .fc-col-header-cell":{padding:"0.35rem 0","& .fc-col-header-cell-cushion":{fontSize:9}},"& .fc-event":{margin:"0 1px 2px 1px!important"}}}});function ez(e){return{id:String(e.id),title:String(e.title||""),allDay:!!e.allDay,start:e.start?e.start.toISOString():"",end:(e.end||e.start)?.toISOString()||"",description:String(e.extendedProps?.desc||""),location:String(e.extendedProps?.location||""),labelId:String(e.extendedProps?.labelId||e.extendedProps?.label||""),status:e.extendedProps?.status||"confirmed",syncToGoogle:!!e.extendedProps?.syncToGoogle,createMeetLink:!!e.extendedProps?.createMeetLink,sendUpdates:e.extendedProps?.sendUpdates||"all",calendarId:String(e.extendedProps?.calendarId||""),calendarSummary:String(e.extendedProps?.calendarSummary||""),attendees:Array.isArray(e.extendedProps?.attendees)?e.extendedProps.attendees:[],reminders:Array.isArray(e.extendedProps?.reminders)?e.extendedProps.reminders:[]}}function eK(){let[e,t]=(0,l.useState)(),[n,a]=(0,l.useState)({start:(0,m.x)((0,p.w)(new Date)),end:(0,m.x)((0,g.p)(new Date))}),o=(0,v.useSearchParams)(),s=(0,v.usePathname)(),d=(0,v.useRouter)(),{data:c,error:A,isError:C,isLoading:k,isFetching:S,refetch:E}=(0,eU.L)(n),{mutateAsync:N}=Q(),{selectedLabels:D,setSelectedLabels:P,openNewEventDialog:I,openEditEventDialog:L}=G(),$=(0,l.useRef)(null),U=(0,l.useRef)(""),R=(0,l.useRef)(!1),F=(0,l.useRef)(!1),O=(0,l.useRef)(!1),q=(0,u.A)(e=>e.breakpoints.down("lg")),[z,K]=(0,l.useState)(!q),{enqueueSnackbar:Y}=(0,y.dh)(),_=(0,j.LL)(),H=_.can("communication","edit"),B=_.can("communication","create"),V=(0,l.useMemo)(()=>c?.filter?.(e=>{let t=String(e?.extendedProps?.labelId||e?.extendedProps?.label||"").trim();return!t||D.includes(t)}),[c,D]),X=(0,l.useMemo)(()=>V??[],[V]);(0,l.useEffect)(()=>{K(!q)},[q]),(0,l.useEffect)(()=>{if(R.current||"1"!==o.get("newEvent"))return;R.current=!0;let e=(o.get("attendee")||"").trim(),t=(0,h.L)((0,f.Q)(new Date),1);I({start:t,end:(0,h.L)(t,1)},{title:(o.get("title")||"").trim(),attendees:e?[{email:e}]:[]});let n=new URLSearchParams(o.toString());n.delete("newEvent"),n.delete("attendee"),n.delete("title"),d.replace(n.size>0?`${s}?${n.toString()}`:s)},[I,s,d,o]),(0,l.useEffect)(()=>{let e=(o.get("eventId")||"").trim(),t=(o.get("date")||"").trim();if(F.current||!e&&!t)return;let n=$.current?.getApi();if(!n)return;let r=t?(0,x.H)(t):null,a=!1;if(!r||Number.isNaN(r.getTime())||O.current||(O.current=!0,a=!0,n.gotoDate(r)),e){let t=n.getEventById(e);if(t)L({event:t});else if((c??[]).some(t=>String(t?.id??"")===e))Y("That event is hidden by your current label filters.",{variant:"info"});else{if(a||S||!c)return;Y("That event is no longer on the calendar.",{variant:"warning"})}}F.current=!0;let l=new URLSearchParams(o.toString());l.delete("eventId"),l.delete("date"),d.replace(l.size>0?`${s}?${l.toString()}`:s)},[X,c,Y,S,L,s,d,o]),(0,l.useEffect)(()=>{let e=window.setTimeout(()=>{$.current?.getApi()?.updateSize()},300);return()=>{window.clearTimeout(e)}},[z]);let J=async e=>{if(!H){e.revert(),Y(`${_.orgRole||"Your role"} cannot edit calendar events.`,{variant:"error"});return}try{await N(ez(e.event))}catch(t){e.revert(),Y(t instanceof Error?t.message:"Unable to move this event.",{variant:"error"})}},Z=async e=>{if(!H){e.revert(),Y(`${_.orgRole||"Your role"} cannot edit calendar events.`,{variant:"error"});return}try{await N(ez(e.event))}catch(t){e.revert(),Y(t instanceof Error?t.message:"Unable to resize this event.",{variant:"error"})}};function ee(){K(!z)}let et={content:(0,r.jsx)(eT,{}),open:z,onClose:()=>K(!1),width:320},en=(c?.length??0)>
10&&0===X.length;return k&&!c?(0,r.jsx)(eq,{content:(0,r.jsxs)("div",{className:"relative flex min-h-0 flex-auto flex-col overflow-hidden",children:[(0,r.jsx)("div",{"aria-hidden":"true",className:"anslation-tool-progress-line"}),(0,r.jsx)(T,{calendarRef:$,currentDate:e,onToggleLeftSidebar:ee}),(0,r.jsx)("div",{className:"grid flex-auto grid-cols-7 gap-1 p-3",children:Array.from({length:35},(e,t)=>(0,r.jsx)(es.A,{variant:"rounded",className:"h-24 w-full"},t))})]}),leftSidebarProps:et,scroll:"content"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eq,{content:(0,r.jsxs)("div",{className:"relative flex min-h-0 flex-auto flex-col overflow-hidden",children:[S&&(0,r.jsx)("div",{"aria-hidden":"true",className:"anslation-tool-progress-line"}),(0,r.jsx)(T,{calendarRef:$,currentDate:e,onToggleLeftSidebar:ee}),C&&(0,r.jsx)(M.A,{className:"mx-4 my-3",severity:"error",variant:"outlined",action:(0,r.jsx)(w.A,{color:"inherit",size:"small",onClick:()=>E(),children:"Retry"}),children:A instanceof Error?A.message:"Calendar events could not be loaded. Check workspace membership, internal calendar access, or Google Calendar OAuth if synced events are missing."}),!C&&!S&&0===X.length&&(0,r.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-28 z-10 flex justify-center px-4 sm:top-16",children:(0,r.jsx)("div",{className:"bg-background-paper pointer-events-auto w-full max-w-md",children:en?(0,r.jsx)(W.qh,{icon:"lucide:funnel-x",title:"All events are hidden by label filters",description:"Your current label selection hides every event in this range.",action:(0,r.jsx)(W.Sk,{icon:"lucide:tags",onClick:function(){let e=new Set(D);c?.forEach?.(t=>{let n=String(t?.extendedProps?.labelId||t?.extendedProps?.label||"").trim();n&&e.add(n)}),P(Array.from(e))},children:"Select All Labels"})}):(0,r.jsx)(W.qh,{icon:"lucide:calendar-plus",title:"No events in this range",description:"Internal events work without Google Calendar OAuth. Create the first company event here.",action:(0,r.jsx)(b.AnslationOneActionGuard,{module:"communication",action:"create",children:(0,r.jsx)(W.Sk,{icon:"lucide:plus",tone:"primary",onClick:()=>I({start:new Date,end:new Date(new Date().getTime()+36e5)}),children:"New Event"})})})})}),(0,r.jsx)(i.A,{plugins:eW,headerToolbar:!1,initialView:"dayGridMonth",initialDate:new Date,height:"100%",editable:H,selectable:B,selectMirror:!0,allDayMaintainDuration:!0,dayMaxEventRows:q?2:3,eventDisplay:"block",eventOrder:"start,-duration,allDay,title",expandRows:!0,lazyFetching:!0,nowIndicator:!0,progressiveEventRendering:!0,rerenderDelay:40,scrollTime:"09:00:00",slotDuration:"00:30:00",stickyHeaderDates:!0,eventTimeFormat:{hour:"numeric",minute:"2-digit",meridiem:"short"},weekends:!0,eventResizableFromStart:!0,datesSet:e=>{let n={start:e.start.toISOString(),end:e.end.toISOString()},r=`${n.start}|${n.end}`;t(e),U.current!==r&&(U.current=r,a(e=>e.start===n.start&&e.end===n.end?e:n))},select:e=>{B?I(e):Y(`${_.orgRole||"Your role"} cannot create calendar events.`,{variant:"error"})},events:X,eventContent:e=>(0,r.jsx)(e$,{eventInfo:e}),eventClick:e=>{e.jsEvent.preventDefault(),L(e)},eventDrop:J,eventResize:Z,ref:$})]}),leftSidebarProps:et,scroll:"content"}),(0,r.jsx)(ei,{})]})}let eQ=()=>(0,r.jsx)(eO,{children:(0,r.jsx)(eK,{})})},19532:(e,t,n)=>{n.d(t,{d:()=>u});var r=n(59959),a=n(66173);let l="anslation/product-api/knanslationone/calendar",i="anslation/product-api/knanslationone/workspace",o=r.FH.extend({retry:0});async function s(e,t){if(!(e instanceof a.H))return e instanceof Error?e:Error(t);let n=await e.response.clone().text(),r=n;if(n)try{r=JSON.parse(n)}catch(e){r=n}return Error(function e(t){if(t){if("string"==typeof t)return t;if(Array.isArray(t))return t.map(e).filter(Boolean).join(" ");if("object"==typeof t&&null!==t&&!Array.isArray(t))for(let n of["detail","message","error","non_field_errors"]){let r=e(t[n]);if(r)return r}}}(r)||e.response.statusText||t)}async function d(e,t){try{return await e}catch(e){throw await s(e,t)}}function c(e){let t="extendedProps"in e&&e.extendedProps?e.extendedProps:{};return{title:String(e.title||"").trim(),description:String(e.description||t.desc||"").trim(),location:String(e.location||t.location||"").trim(),start:String(e.start||"").trim(),end:String(e.end||"").trim(),allDay:!!e.allDay,timezone:String(e.timezone||"").trim(),labelId:String(e.labelId||t.labelId||t.label||"").trim(),status:e.status||t.status||"confirmed",syncToGoogle:"boolean"==typeof e.syncToGoogle?!!e.syncToGoogle:!!t.syncToGoogle,createMeetLink:"boolean"==typeof e.createMeetLink?!!e.createMeetLink:!!t.createMeetLink,sendUpdates:e.sendUpdates||t.sendUpdates||"all",calendarId:String(e.calendarId||t.calendarId||"").trim(),calendarSummary:String(e.calendarSummary||t.calendarSummary||"").trim(),attendees:Array.isArray(e.attendees)?e.attendees:Array.isArray(t.attendees)?t.attendees:[],reminders:Array.isArray(e.reminders)?e.reminders:Array.isArray(t.reminders)?t.reminders:[]}}let u={getWorkspaceConnection:()=>d(o.get(`${i}
1/connection`).json(),"Unable to load workspace connection status."),connectWorkspace:e=>d(o.post(`${i}/google/connect`,{json:{return_to:e.returnTo||""}}).json(),"Unable to start workspace connection."),getCalendarConnection:()=>d(o.get(`${l}/connection`).json(),"Unable to load calendar connection status."),connectGoogleCalendar:e=>d(o.post(`${l}/google/connect`,{json:{return_to:e.returnTo||""}}).json(),"Unable to start Google Calendar connection."),disconnectGoogleCalendar:()=>d(o.delete(`${l}/google/connection`).json(),"Unable to disconnect Google Calendar."),updateCalendarConnection:e=>d(o.patch(`${l}/connection`,{json:{selected_calendar_id:e}}).json(),"Unable to update selected calendar."),getEvents:async e=>d(o.get(`${l}/events`,{searchParams:{start:e.start,end:e.end}}).json(),"Unable to load calendar events."),createEvent:async e=>d(o.post(`${l}/events`,{json:c(e)}).json(),"Unable to create calendar event."),updateEvent:async e=>d(o.put(`${l}/events/${e.id}`,{json:c(e)}).json(),"Unable to update calendar event."),deleteEvent:async e=>{await d(o.delete(`${l}/events/${e}`).json(),"Unable to delete calendar event.")},getLabels:async()=>d(o.get(`${l}/labels`).json(),"Unable to load labels."),createLabel:async e=>d(o.post(`${l}/labels`,{json:{title:e.title,color:e.color}}).json(),"Unable to create label."),updateLabel:async e=>d(o.put(`${l}/labels/${e.id}`,{json:{title:e.title,color:e.color}}).json(),"Unable to update label."),deleteLabel:async e=>{await d(o.delete(`${l}/labels/${e}`).json(),"Unable to delete label.")}}},22646:(e,t,n)=>{n.d(t,{dh:()=>r.dh});var r=n(61227)},22725:(e,t,n)=>{n.d(t,{L:()=>i});var r=n(26708),a=n(5858),l=n(19532);let i=e=>(0,r.I)({queryFn:()=>l.d.getEvents(e||{start:"",end:""}),queryKey:["calendar","events",e?.start||"",e?.end||""],enabled:!!(e?.start&&e?.end),placeholderData:a.rX,refetchOnWindowFocus:!1,staleTime:3e4,gcTime:3e5})},33202:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(12115);let a=function(e){let t=(0,r.useRef)(void 0);return(0,r.useEffect)(()=>{t.current=e},[e]),t.current}},34279:(e,t,n)=>{n.d(t,{d7:()=>i,Ij:()=>c,tI:()=>u.A,Z3:()=>o});var r=n(12115),a=n(29822),l=n.n(a);let i=function(e,t){let n=(0,r.useRef)(e);(0,r.useEffect)(()=>{n.current=e},[e]);let a=(0,r.useCallback)(l()(function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];n.current(...t)},t),[t]);return(0,r.useEffect)(()=>()=>{a.cancel()},[a]),a},o=function(e,t){let n=(0,r.useRef)(e);(0,r.useEffect)(()=>{n.current=e},[e]),(0,r.useEffect)(()=>{let r;return null!==t&&e&&"function"==typeof e&&(r=setTimeout(n.current,t)),()=>{r&&clearTimeout(r)}},[e,t])};n(33202);var s=n(35815),d=n.n(s);let c=function(e,t){let n,a;return(0,r.useEffect)(e,(n=(0,r.useRef)(t),a=(0,r.useRef)(0),d()(t,n.current)||(n.current=t,a.current+=1),(0,r.useMemo)(()=>n.current,[a.current])))};var u=n(29016)},53386:(e,t,n)=>{n.d(t,{K:()=>l,U:()=>i});var r=n(26708),a=n(19532);let l=["calendar","connection"];function i(){return(0,r.I)({queryFn:a.d.getCalendarConnection,queryKey:l,refetchOnWindowFocus:!1,staleTime:3e4})}},59959:(e,t,n)=>{n.d(t,{FH:()=>i,JR:()=>a});var r=n(78079);let a=(0,n(6784).gd)(),l={},i=r.Ay.create({prefixUrl:`${a}/api`,hooks:{beforeRequest:[e=>{Object.entries(l).forEach(t=>{let[n,r]=t;e.headers.set(n,r)})}]},retry:{limit:2,methods:["get","put","head","delete","options","trace"],statusCodes:[408,413,429,500,502,503,504]}})},98505:(e,t,n)=>{n.d(t,{$:()=>i,r:()=>l});var r=n(26708),a=n(19532);let l=["calendar","workspace-connection"];function i(){return(0,r.I)({queryFn:a.d.getWorkspaceConnection,queryKey:l,refetchOnWindowFocus:!1,staleTime:3e4})}}}]);
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.