@getontime/cli
Version:
Time keeping for live events
3 lines (2 loc) • 10.8 kB
JavaScript
import{N as ne,r as v,O as b}from"./vendor-DFNUfA2K.js";import{h as I,i as w,a as ae,p as ie,n as se,o as oe,q as ue,r as de,s as le,t as ce,v as fe,w as ye,x as Ee,S as pe,y as me}from"./useRundown-DgZv-crd.js";import{T as A}from"./validateEvent-d8SZfbc8.js";import{j,ax as s,b9 as ve,bw as g,bg as ge,bf as $,bx as _,M as be}from"./index-BNit4nUw.js";import{i as De,s as we}from"./isNewLatest-Bui5Tm3U.js";import{u as Ie}from"./editorSettings-CK-Psf7E.js";import{p as Q}from"./parseUserTime-COEUAmmZ.js";(function(){try{var r=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new r.Error().stack;o&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[o]="c766a32d-1d84-4a5d-af8d-badf646398f5",r._sentryDebugIdIdentifier="sentry-dbid-c766a32d-1d84-4a5d-af8d-badf646398f5")}catch{}})();function he(r,o){return!(!o||r.dayOffset<=o.dayOffset||o.timeStart+o.duration>j)}function Fe(r){let o={previousEvent:null,latestEvent:null,previousEntryId:null,thisId:null,eventIndex:0,isPast:!!r,isNextDay:!1,totalGap:0,isLinkedToLoaded:!1,isLoaded:!1,groupId:null,groupColour:void 0,groupEntries:void 0};function i(a){return o=Qe(o,r,a),o}return{metadata:o,process:i}}function Qe(r,o,i){var c;const a={...r};return a.isNextDay=!1,a.isLoaded=!1,a.previousEntryId=a.thisId,a.thisId=i.id,a.previousEvent=a.latestEvent,i.id===o&&(a.isLoaded=!0,a.isPast=!1),I(i)?(a.groupId=i.id,a.groupColour=i.colour,a.groupEntries=i.entries.length):(i.parent!==a.groupId&&(a.groupId=i.parent,a.groupEntries=void 0,i.parent===null&&(a.groupColour=void 0)),w(i)&&(a.eventIndex+=1,ae(i)&&(a.isNextDay=he(i,a.previousEvent),a.totalGap+=i.gap,!a.isPast&&!a.isLoaded&&(a.isLinkedToLoaded=i.linkStart&&!((c=a.previousEvent)!=null&&c.countToEnd)),De(i,a.latestEvent)&&(a.latestEvent=i)))),a}function Pe(r,o){const i=[];for(let a=0;a<r.length;a++){const c=o[r[a]];c&&(I(c)?(i.push(c.id),i.push(...c.entries),i.push(`end-${c.id}`)):i.push(c.id))}return i}function Ne(r,o){return r==="end-group"?!1:r==="group"?!0:o===null}function Se(r,o,i){const a=i[r],c=o.indexOf(r),f=o[c-1];if(!f)return"parent"in a&&a.parent!==null?{destinationId:a.parent,order:"before"}:{destinationId:null,order:"before"};if(I(a)){const h=i[f];return"parent"in h&&h.parent!==null?{destinationId:h.parent,order:"before"}:{destinationId:f,order:"before"}}const l=i[f],E=a.parent;return I(l)?E===null?{destinationId:f,order:"insert"}:{destinationId:f,order:"before"}:w(l)&&l.parent!==null&&E===null?{destinationId:f,order:"after"}:{destinationId:f,order:"before"}}function Me(r,o,i){const a=i[r],c=o.indexOf(r),f=o[c+1];if("parent"in a&&a.parent!==null){const D=i[a.parent];if(I(D)&&D.entries[D.entries.length-1]===r)return{destinationId:a.parent,order:"after"}}if(!f)return{destinationId:null,order:"after"};if(I(a)){if(a.entries.includes(f)){const D=c+a.entries.length+1,S=o[D];return S?{destinationId:S,order:"after"}:{destinationId:null,order:"after"}}return{destinationId:f,order:"after"}}const l=i[f],E=a.parent;return I(l)&&E===null?l.entries.length===0?{destinationId:f,order:"insert"}:{destinationId:l.entries[0],order:"before"}:(w(l)?l.parent:null)!==null&&E===null?{destinationId:f,order:"after"}:{destinationId:f,order:"after"}}function ke(r,o){const i=[];for(const a of o)r.includes(a)&&i.push(a);return i}const Ge=()=>{const r=ne(),{linkPrevious:o,defaultTimeStrategy:i,defaultDuration:a,defaultWarnTime:c,defaultDangerTime:f,defaultTimerType:l,defaultEndAction:E}=Ie(),h=v.useCallback(n=>{const t=r.getQueryData(s);if(t!=null&&t.entries)return t.entries[n]},[r]),{mutateAsync:D}=b({mutationFn:ie,onSettled:()=>r.invalidateQueries({queryKey:s})}),S=v.useCallback(async(n,t)=>{const e={...n,id:ve()};if(w(e)){if(t!=null&&t.lastEventId){const d=r.getQueryData(s).entries[t==null?void 0:t.lastEventId];w(d)&&(e.timeStart=d.timeEnd)}e.linkStart=(t==null?void 0:t.linkPrevious)??o,e.duration===void 0&&e.timeEnd===void 0&&(e.duration=Q(a)),e.timeDanger===void 0&&(e.timeDanger=Q(f)),e.timeWarning===void 0&&(e.timeWarning=Q(c)),e.timerType===void 0&&(e.timerType=l),e.endAction===void 0&&(e.endAction=E),e.timeStrategy===void 0&&(e.timeStrategy=i)}t!=null&&t.after&&(e.after=t.after),t!=null&&t.before&&(e.before=t.before);try{await D(e)}catch(u){g("Failed adding event",u)}},[D,f,a,E,l,i,c,o,r]),{mutateAsync:T}=b({mutationFn:se,onSettled:()=>r.invalidateQueries({queryKey:s})}),B=v.useCallback(async n=>{try{await T(n)}catch(t){g("Error cloning entry",t)}},[T]),{mutateAsync:M}=b({mutationFn:oe,onMutate:async n=>{await r.cancelQueries({queryKey:s});const t=r.getQueryData(s),e=n.id;if(t&&e){const u={...t.entries};u[e]={...u[e],...n},r.setQueryData(s,{id:t.id,title:t.title,order:t.order,flatOrder:t.flatOrder,entries:u,revision:-1})}return{previousData:t,newEvent:n}},onError:(n,t,e)=>{r.setQueryData(s,e==null?void 0:e.previousData)},onSettled:async()=>{await r.invalidateQueries({queryKey:s})}}),C=v.useCallback(async n=>{try{await M(n)}catch(t){g("Error updating event",t)}},[M]),x=v.useCallback(async(n,t,e)=>{C({id:n,custom:{[t]:e}})},[C]),H=v.useCallback(async(n,t,e,u)=>{if(!u&&e==="")return;const d={id:n};u?t==="timeEnd"?(d.timeStrategy=e===""?A.LockDuration:A.LockEnd,d.timeEnd=e===""?void 0:y()):t==="duration"?(d.timeStrategy=e===""?A.LockEnd:A.LockDuration,d.duration=e===""?void 0:y()):t==="timeStart"&&(d.linkStart=e==="",d.timeStart=e===""?void 0:y()):d[t]=y();try{await M(d)}catch(m){g("Error updating event",m)}function y(){let m=0;if(e==="p"||e==="prev"||e==="previous")m=p();else if(e.startsWith("+")||e.startsWith("p+")||e.startsWith("p +")){const O=e.substring(1);m=p()+Q(O)}else m=Q(e);return Math.min(m,j-ge)}function p(){const m=r.getQueryData(s);if(!(m!=null&&m.order)||!(m!=null&&m.entries))return 0;const O=m.order.indexOf(n);if(O===0)return 0;let U=0;for(let L=O-1;L>=0;L--){const W=m.entries[m.order[L]];if(w(W)){U=W.timeEnd;break}}return U}},[M,r]),{mutateAsync:K}=b({mutationFn:ue,onMutate:async({ids:n,data:t})=>{await r.cancelQueries({queryKey:s});const e=r.getQueryData(s);if(e){const u=new Set(n),d={...e.entries};u.forEach(y=>{if(Object.hasOwn(d,y)){const p=d[y];w(p)&&(d[y]={...p,...t})}}),r.setQueryData(s,{id:e.id,title:e.title,order:e.order,flatOrder:e.flatOrder,entries:d,revision:-1})}return{previousRundown:e}},onSuccess:n=>{if(!n.data)return;const{id:t,title:e,order:u,flatOrder:d,entries:y,revision:p}=n.data;r.setQueryData(s,{id:t,title:e,order:u,flatOrder:d,entries:y,revision:p})},onError:(n,t,e)=>{r.setQueryData(s,e==null?void 0:e.previousRundown)}}),V=v.useCallback(async(n,t)=>{try{await K({ids:t,data:n})}catch(e){g("Error updating events",e)}},[K]),{mutateAsync:F}=b({mutationFn:de,onMutate:async n=>{await r.cancelQueries({queryKey:s});const t=r.getQueryData(s);if(t){const{entries:e,order:u,flatOrder:d}=Oe(n,t);r.setQueryData(s,{id:t.id,title:t.title,order:u,flatOrder:d,entries:e,revision:-1})}return{previousData:t}},onError:(n,t,e)=>{r.setQueryData(s,e==null?void 0:e.previousData)},onSettled:()=>{r.invalidateQueries({queryKey:s})}}),z=v.useCallback(async n=>{try{await F(n)}catch(t){g("Error deleting event",t)}},[F]),{mutateAsync:P}=b({mutationFn:le,onMutate:async()=>{await r.cancelQueries({queryKey:s});const n=r.getQueryData(s);return r.setQueryData(s,{id:(n==null?void 0:n.id)??"default",title:(n==null?void 0:n.title)??"",order:[],flatOrder:[],entries:{},revision:-1}),{previousData:n}},onError:(n,t,e)=>{r.setQueryData(s,e==null?void 0:e.previousData)},onSettled:()=>{r.invalidateQueries({queryKey:s})}}),J=v.useCallback(async()=>{try{await P()}catch(n){g("Error deleting events",n)}},[P]),{mutateAsync:N}=b({mutationFn:ce,onSuccess:n=>{if(!n.data)return;const{id:t,title:e,order:u,flatOrder:d,entries:y,revision:p}=n.data;r.setQueryData(s,{id:t,title:e,order:u,flatOrder:d,entries:y,revision:p})},onSettled:()=>{r.invalidateQueries({queryKey:s})}}),X=v.useCallback(async n=>{try{await N(n)}catch(t){g("Error applying delay",t)}},[N]),{mutateAsync:G}=b({mutationFn:fe,onSuccess:n=>{if(!n.data)return;const{id:t,title:e,order:u,flatOrder:d,entries:y,revision:p}=n.data;r.setQueryData(s,{id:t,title:e,order:u,flatOrder:d,entries:y,revision:p})},onSettled:()=>r.invalidateQueries({queryKey:s})}),Y=v.useCallback(async n=>{try{await G(n)}catch(t){g("Error dissolving group",t)}},[G]),{mutateAsync:q}=b({mutationFn:ye,onSuccess:n=>{if(!n.data)return;const{id:t,title:e,order:u,flatOrder:d,entries:y,revision:p}=n.data;r.setQueryData(s,{id:t,title:e,order:u,flatOrder:d,entries:y,revision:p})},onSettled:()=>r.invalidateQueries({queryKey:s})}),Z=v.useCallback(async n=>{if(n.length!==0)try{if(n.length===1)await q(n);else{const t=r.getQueryData(s);if(!t)return;const e=ke(n,t.flatOrder);await q(e)}}catch(t){g("Error grouping entries",t)}},[q,r]),{mutateAsync:k}=b({mutationFn:Ee,onSettled:()=>{r.invalidateQueries({queryKey:s})}}),ee=v.useCallback(async(n,t)=>{var y;const e=r.getQueryData(s);if(!e)return;const{destinationId:u,order:d}=t==="up"?Se(n,e.flatOrder,e.entries):Me(n,e.flatOrder,e.entries);if(u){try{await k({entryId:n,destinationId:u,order:d})}catch(p){g("Error re-ordering event",p)}return((y=e.entries[u])==null?void 0:y.type)===pe.Group?u:void 0}},[r,k]),te=v.useCallback(async(n,t,e)=>{try{await k({entryId:n,destinationId:t,order:e})}catch(u){throw g("Error re-ordering event",u),u}},[k]),{mutateAsync:R}=b({mutationFn:me,onMutate:async({from:n,to:t})=>{await r.cancelQueries({queryKey:s});const e=r.getQueryData(s);if(e){const u={...e.entries},d=e.entries[n],y=e.entries[t];if(!w(d)||!w(y))return;const[p,m]=we(d,y);u[n]=p,u[t]=m,r.setQueryData(s,{id:e.id,title:e.title,order:e.order,flatOrder:e.flatOrder,entries:u,revision:-1})}return{previousData:e}},onError:(n,t,e)=>{r.setQueryData(s,e==null?void 0:e.previousData)},onSettled:()=>{r.invalidateQueries({queryKey:s})}}),re=v.useCallback(async({from:n,to:t})=>{try{await R({from:n,to:t})}catch(e){g("Error re-ordering event",e)}},[R]);return{addEntry:S,applyDelay:X,batchUpdateEvents:V,clone:B,deleteEntry:z,deleteAllEntries:J,ungroup:Y,getEntryById:h,groupEntries:Z,move:ee,reorderEntry:te,swapEvents:re,updateEntry:C,updateTimer:H,updateCustomField:x}};function Oe(r,o){const i={...o.entries};let a=[...o.order],c=[...o.flatOrder];for(let l=0;l<r.length;l++){const E=i[r[l]];f(E)}function f(l){if(I(l)||!l.parent)a=a.filter(E=>E!==l.id);else{const E=i[l.parent];E&&I(E)&&(E.entries=E.entries.filter(h=>h!==l.id))}delete i[l.id],c=c.filter(E=>E!==l.id)}return{entries:i,order:a,flatOrder:c}}function Re(r,o="compact"){if(r==null||r===0)return"";const i=r<0,a=Math.abs(r),c=o==="compact",f=c?"+":"delayed by ",l=c?"-":"ahead by ";return a<$?`${i?l:f}${_(a,"s")} sec`:a<be&&a%$===0?`${i?l:f}${_(a,"m")} min`:`${i?l:f}${_(a,"HH:mm:ss")}`}export{Pe as a,Fe as b,Ne as c,Re as m,Ge as u};
//# sourceMappingURL=dateConfig-B62K3AL_.js.map