@getontime/cli
Version:
Time keeping for live events
2 lines • 17.1 kB
JavaScript
(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`f14ad0099eab1969fdd065b56af5fdd3cf530de6`};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`0039b2a6-77e9-4391-a721-8952826af17f`,e._sentryDebugIdIdentifier=`sentry-dbid-0039b2a6-77e9-4391-a721-8952826af17f`)}catch{}})();import{a as e,n as t,t as n}from"./jsx-runtime-BNC90REB.js";import{Ft as r,It as i,Jt as a,Pt as o,Tt as s,Xt as c,Yt as l,gt as u,q as d,qt as f,wt as ee,xt as p}from"./useSocket-B9-0Z7zf.js";import{t as m}from"./Tooltip-DJ2_sn6r.js";import{S as h,bn as te,c as ne,ft as g,p as re,pt as _}from"./constants-8b9Q9Bj6.js";import{t as v}from"./useMutation-BQgDt5L8.js";import{n as y,r as b,t as x}from"./validateEvent-Blu2IJUG.js";import{a as ie,f as S,n as ae,p as oe}from"./EmptyFill-D1gAY2Dp.js";import{t as C}from"./parseUserTime-CtxwbCYB.js";import{C as se,D as ce,E as le,S as ue,T as de,_ as fe,b as pe,g as me,m as he,v as ge,w as _e,x as ve,y as ye}from"./useRundown-BubT2Cyp.js";import{n as be}from"./editorSettings-Cicapa9i.js";function w(e,t,n){let r=O(e),i=O(t),o=O(n);return e!=null&&t!=null?{timeStart:r,duration:E(r,i),timeEnd:i,timeStrategy:n==null?a.LockEnd:a.LockDuration}:e==null&&t==null?n==null?{timeStart:0,duration:0,timeEnd:0,timeStrategy:a.LockDuration}:{timeStart:r,duration:o,timeEnd:o,timeStrategy:a.LockDuration}:e==null?t==null?{timeStart:r,duration:o,timeEnd:i,timeStrategy:a.LockDuration}:{timeStart:i-o,duration:o,timeEnd:i,timeStrategy:n==null?a.LockEnd:a.LockDuration}:{timeStart:r,duration:o,timeEnd:(r+o)%s,timeStrategy:a.LockDuration}}function T(e,t,n,r){if(r==null)return w(e,t,n);let i=y(r),o=O(e),s=O(t),c=O(n);return i===a.LockEnd?c=E(o,s):s=D(o,c),{timeStart:o,duration:c,timeEnd:s,timeStrategy:i}}function E(e,t){return t<e?t+s-e:t-e}function D(e,t){return(e+t)%s}function O(e){let t=Number(e);return isNaN(t)?0:Math.floor(t)}var k={type:l.Event,flag:!1,title:``,note:``,endAction:c.None,timerType:f.CountDown,timeStrategy:a.LockDuration,linkStart:!1,countToEnd:!1,timeStart:0,timeEnd:0,duration:0,skip:!1,colour:``,timeWarning:12e4,timeDanger:6e4,triggers:[],custom:{},parent:null,revision:0,delay:0,dayOffset:0,gap:0};l.Delay;var A={type:l.Milestone,cue:``,title:``,note:``,colour:``,custom:{},parent:null,revision:0},j={type:l.Group,title:``,note:``,entries:[],targetDuration:null,colour:``,custom:{},revision:0,timeStart:null,timeEnd:null,duration:0,isFirstLinked:!1},M=(e,t=``)=>typeof e==`string`?e.trim():e==null||e.constructor===Object?t:e.toString().trim();function N(e){return{type:l.Delay,id:e?.id??p(),duration:e?.duration??0,parent:e?.parent??null}}var P=(e,t=``)=>{if(Object.keys(e).length===0)return null;let n=typeof t==`number`?String(t+1):t;return R({id:e?.id??p(),cue:n,...k},e)};function F(e){return e?{id:e.id??p(),type:l.Group,title:e.title??``,note:e.note??``,entries:e.entries??[],targetDuration:e.targetDuration??null,colour:M(e.colour,``),custom:e.custom??{},revision:0,timeStart:null,timeEnd:null,duration:0,isFirstLinked:!1}:{...j,id:p()}}function I(e){return e?{id:e.id??p(),type:l.Milestone,cue:e.cue??``,title:e.title??``,note:e.note??``,colour:M(e.colour,``),custom:e.custom??{},parent:e.parent??null,revision:0}:{...A,id:p()}}function L(e,t,n){return e&&!t?a.LockEnd:!e&&t?a.LockDuration:n}function R(e,t){if(Object.keys(t).length===0)return e;let{timeStart:n,timeEnd:r,duration:i,timeStrategy:a}=T(t?.timeStart??e.timeStart,t?.timeEnd??e.timeEnd,t?.duration??e.duration,t?.timeStrategy??L(t?.timeEnd,t?.duration,e.timeStrategy));return{id:e.id,type:l.Event,flag:typeof t.flag==`boolean`?t.flag:e.flag,title:M(t.title,e.title),timeStart:n,timeEnd:r,duration:i,timeStrategy:a,linkStart:typeof t.linkStart==`boolean`?t.linkStart:e.linkStart,endAction:x(t.endAction,e.endAction),timerType:b(t.timerType,e.timerType),countToEnd:typeof t.countToEnd==`boolean`?t.countToEnd:e.countToEnd,skip:typeof t.skip==`boolean`?t.skip:e.skip,note:M(t.note,e.note),colour:M(t.colour,e.colour),delay:e.delay,dayOffset:e.dayOffset,gap:e.gap,cue:M(t.cue??null,e.cue),parent:e.parent,revision:e.revision,timeWarning:t.timeWarning??e.timeWarning,timeDanger:t.timeDanger??e.timeDanger,custom:{...e.custom,...t.custom},triggers:t.triggers??e.triggers}}function z(e,t){let n=[];for(let i=0;i<e.length;i++){let a=t[e[i]];a&&(r(a)?(n.push(a.id),n.push(...a.entries),n.push(`end-${a.id}`)):n.push(a.id))}return n}function B(e,t,n){return e.filter(e=>{if(e.startsWith(`end-`)){let t=e.split(`end-`)[1];return!n(t)}let r=t[e];return r?r.type!==l.Group&&`parent`in r&&r.parent?!n(r.parent):!0:!1})}function V(e,t,n,r){return e===`end-group`?n===`after`:e===`group`?!(n!==void 0&&n===`after`&&!r):t===null}function xe(e,t,n){let i=n[e],a=t[t.indexOf(e)-1];if(!a)return`parent`in i&&i.parent!==null?{destinationId:i.parent,order:`before`}:{destinationId:null,order:`before`};if(r(i)){let e=n[a];return`parent`in e&&e.parent!==null?{destinationId:e.parent,order:`before`}:{destinationId:a,order:`before`}}let o=n[a],s=i.parent;return r(o)?s===null?{destinationId:a,order:`insert`}:{destinationId:a,order:`before`}:`parent`in o&&o.parent!==null&&s===null?{destinationId:a,order:`after`}:{destinationId:a,order:`before`}}function Se(e,t,n){let i=n[e],a=t.indexOf(e),o=t[a+1];if(`parent`in i&&i.parent!==null){let t=n[i.parent];if(r(t)&&t.entries[t.entries.length-1]===e)return{destinationId:i.parent,order:`after`}}if(!o)return{destinationId:null,order:`after`};if(r(i)){if(i.entries.includes(o)){let e=t[a+i.entries.length+1];return e?{destinationId:e,order:`after`}:{destinationId:null,order:`after`}}return{destinationId:o,order:`after`}}let s=n[o],c=i.parent;return r(s)&&c===null?s.entries.length===0?{destinationId:o,order:`insert`}:{destinationId:s.entries[0],order:`before`}:(`parent`in s&&s.parent,{destinationId:o,order:`after`})}function H(e,t){let n=[];for(let r of t)e.includes(r)&&n.push(r);return n}var U=e(t(),1),W=()=>K(void 0),G=e=>K(e??``);function K(e){let t=te(),{linkPrevious:n,defaultTimeStrategy:c,defaultDuration:u,defaultWarnTime:f,defaultDangerTime:m,defaultTimerType:g,defaultEndAction:_,inheritGroupColour:y}=be(),b=(0,U.useCallback)(()=>{if(e!==void 0)return h(e);let n=t.getQueryData(re)?.loaded;return n?h(n):ne},[t,e]),x=(0,U.useCallback)(()=>t.getQueryData(b()),[t,b]),w=(0,U.useCallback)(e=>{let t=x();if(t?.entries)return t.entries[e]},[x]),{mutateAsync:T}=v({mutationFn:([e,t])=>ge(e,t),onMutate:async([e,n])=>{let i=b();await t.cancelQueries({queryKey:i});let a=t.getQueryData(i);if(a){let e=we(n),o=S(a,n),s=o?a.entries[o]:null,c=s&&r(s)?s:null,l=ie(a,c,n.after,n.before),u={...a,entries:{...a.entries},revision:-1};c&&o&&(u.entries[o]={...c,entries:[...c.entries]}),ae(u,e,c?u.entries[c.id]:null,l,n.before??null),t.setQueryData(i,u)}return{previousData:a,queryKey:i}},onSuccess:(e,n,r)=>{if(!e.data||!r?.queryKey)return;let i=e.data,a=t.getQueryData(r.queryKey);a&&t.setQueryData(r.queryKey,{...a,entries:{...a.entries,[i.id]:i}})},onError:(e,n,r)=>{r?.previousData&&r?.queryKey&&t.setQueryData(r.queryKey,r.previousData)},onSettled:(e,n,r,i)=>{t.invalidateQueries({queryKey:i?.queryKey??b()})}}),E=(0,U.useCallback)(async(e,t)=>{let a=x(),s=a?.id;if(!s)throw Error(`Rundown not initialised`);let l={...e,id:p()};if(t?.after&&(l.after=t.after),t?.before&&(l.before=t.before),o(l)){if(t?.lastEventId){let e=a.entries[t?.lastEventId];o(e)&&(l.timeStart=e.timeEnd)}l.linkStart=t?.linkPrevious??n,l.duration===void 0&&l.timeEnd===void 0&&(l.duration=C(u)),l.timeDanger===void 0&&(l.timeDanger=C(m)),l.timeWarning===void 0&&(l.timeWarning=C(f)),l.timerType===void 0&&(l.timerType=g),l.endAction===void 0&&(l.endAction=_),l.timeStrategy===void 0&&(l.timeStrategy=c)}if(y&&(o(l)||i(l))&&!l.colour){let e=S(a,l),t=e?a.entries[e]:null;t&&r(t)&&(l.colour=t.colour)}try{await T([s,l])}catch(e){d(`Failed adding event`,e)}},[x,n,u,m,f,g,_,c,y,T]),{mutateAsync:D}=v({mutationFn:([e,t,n])=>ye(e,t,n),onMutate:()=>t.cancelQueries({queryKey:b()}),onSettled:()=>t.invalidateQueries({queryKey:b()})}),O=(0,U.useCallback)(async(e,t)=>{try{let n=x()?.id;if(!n)throw Error(`Rundown not initialised`);await D([n,e,t])}catch(e){d(`Error cloning entry`,e)}},[D,x]),{mutateAsync:k}=v({mutationFn:([e,t])=>ve(e,t),onMutate:async([e,n])=>{let r=b();await t.cancelQueries({queryKey:r});let i=t.getQueryData(r),a=n.id;if(i&&a){let e={...i.entries};e[a]={...e[a],...n},t.setQueryData(r,{id:i.id,title:i.title,order:i.order,flatOrder:i.flatOrder,entries:e,revision:-1})}return{previousData:i,newEvent:n,queryKey:r}},onError:(e,n,r)=>{r?.previousData&&r?.queryKey&&t.setQueryData(r.queryKey,r.previousData)},onSettled:async(e,n,r,i)=>{await t.invalidateQueries({queryKey:i?.queryKey??b()})}}),A=(0,U.useCallback)(async e=>{try{let t=x()?.id;if(!t)throw Error(`Rundown not initialised`);await k([t,e])}catch(e){d(`Error updating event`,e)}},[x,k]),j=(0,U.useCallback)(async(e,n,r,i)=>{let c=x()?.id;if(!c)throw Error(`Rundown not initialised`);if(!i&&r===``)return;let l={id:e};i?n===`timeEnd`?(l.timeStrategy=r===``?a.LockDuration:a.LockEnd,l.timeEnd=r===``?void 0:u()):n===`duration`?(l.timeStrategy=r===``?a.LockEnd:a.LockDuration,l.duration=r===``?void 0:u()):n===`timeStart`&&(l.linkStart=r===``,l.timeStart=r===``?void 0:u()):l[n]=u();try{await k([c,l])}catch(e){d(`Error updating event`,e)}function u(){let e=0;if(r===`p`||r===`prev`||r===`previous`)e=f();else if(r.startsWith(`+`)||r.startsWith(`p+`)||r.startsWith(`p +`)){let t=r.substring(1);e=f()+C(t)}else e=C(r);return Math.min(e,s-ee)}function f(){let n=t.getQueryData(b());if(!n?.order||!n?.entries)return 0;let r=n.order.indexOf(e);if(r===0)return 0;let i=0;for(let e=r-1;e>=0;e--){let t=n.entries[n.order[e]];if(o(t)){i=t.timeEnd;break}}return i}},[x,k,t,b]),M=(0,U.useCallback)(async e=>{let t=x()?.id;if(!t)throw Error(`Rundown not initialised`);try{await de(t,e)}catch(e){d(`Error updating event`,e)}},[x]),{mutateAsync:N}=v({mutationFn:([e,t])=>pe(e,t),onMutate:async([e,n])=>{let r=b();await t.cancelQueries({queryKey:r});let i=t.getQueryData(r);if(i){let e=new Set(n.ids),a={...i.entries};e.forEach(e=>{if(Object.hasOwn(a,e)){let t=a[e];o(t)&&(a[e]={...t,...n})}}),t.setQueryData(r,{id:i.id,title:i.title,order:i.order,flatOrder:i.flatOrder,entries:a,revision:-1})}return{previousRundown:i,queryKey:r}},onSuccess:(e,n,r)=>{if(!e.data||!r?.queryKey)return;let{id:i,title:a,order:o,flatOrder:s,entries:c,revision:l}=e.data;t.setQueryData(r.queryKey,{id:i,title:a,order:o,flatOrder:s,entries:c,revision:l})},onError:(e,n,r)=>{r?.queryKey&&t.setQueryData(r.queryKey,r?.previousRundown)}}),P=(0,U.useCallback)(async(e,t)=>{try{let n=x()?.id;if(!n)throw Error(`Rundown not initialised`);await N([n,{data:e,ids:t}])}catch(e){d(`Error updating events`,e)}},[N,x]),{mutateAsync:F}=v({mutationFn:([e,t])=>me(e,t),onMutate:async()=>{let e=b();return await t.cancelQueries({queryKey:e}),{previousRundown:t.getQueryData(e),queryKey:e}},onSuccess:(e,n,r)=>{if(!e.data||!r?.queryKey)return;let i=e.data;t.setQueryData(r.queryKey,i)},onError:(e,n,r)=>{r?.previousRundown&&t.setQueryData(r.queryKey,r.previousRundown)}}),I=(0,U.useCallback)(async(e,t,n,r)=>{let i=x()?.id;if(!i)throw Error(`Rundown not initialized`);try{await F([i,{ids:e,prefix:t,start:n,increment:r}])}catch(e){throw d(`Error renumbering cues`,e),e}},[x,F]),{mutateAsync:L}=v({mutationFn:([e,t])=>he(e,t),onMutate:async([e,n])=>{let r=b();await t.cancelQueries({queryKey:r});let i=t.getQueryData(r);if(i){let{entries:e,order:a,flatOrder:o}=Ce(n,i);t.setQueryData(r,{id:i.id,title:i.title,order:a,flatOrder:o,entries:e,revision:-1})}return{previousData:i,queryKey:r}},onError:(e,n,r)=>{r?.queryKey&&t.setQueryData(r.queryKey,r?.previousData)},onSettled:(e,n,r,i)=>{t.invalidateQueries({queryKey:i?.queryKey??b()})}}),R=(0,U.useCallback)(async e=>{try{let t=x()?.id;if(!t)throw Error(`Rundown not initialised`);await L([t,e])}catch(e){d(`Error deleting event`,e)}},[L,x]),{mutateAsync:z}=v({mutationFn:([e])=>se(e),onMutate:async()=>{let e=b();await t.cancelQueries({queryKey:e});let n=t.getQueryData(e);return t.setQueryData(e,{id:n?.id??`default`,title:n?.title??``,order:[],flatOrder:[],entries:{},revision:-1}),{previousData:n,queryKey:e}},onError:(e,n,r)=>{r?.queryKey&&t.setQueryData(r.queryKey,r?.previousData)},onSettled:(e,n,r,i)=>{t.invalidateQueries({queryKey:i?.queryKey??b()})}}),B=(0,U.useCallback)(async()=>{try{let e=x()?.id;if(!e)throw Error(`Rundown not initialised`);await z([e])}catch(e){d(`Error deleting events`,e)}},[z,x]),{mutateAsync:V}=v({mutationFn:([e,t])=>ue(e,t),onMutate:()=>t.cancelQueries({queryKey:b()}),onSuccess:e=>{if(!e.data)return;let{id:n,title:r,order:i,flatOrder:a,entries:o,revision:s}=e.data;t.setQueryData(b(),{id:n,title:r,order:i,flatOrder:a,entries:o,revision:s})},onSettled:()=>{t.invalidateQueries({queryKey:b()})}}),W=(0,U.useCallback)(async e=>{try{let t=x()?.id;if(!t)throw Error(`Rundown not initialised`);await V([t,e])}catch(e){d(`Error applying delay`,e)}},[V,x]),{mutateAsync:G}=v({mutationFn:([e,t])=>ce(e,t),onMutate:()=>t.cancelQueries({queryKey:b()}),onSuccess:e=>{if(!e.data)return;let{id:n,title:r,order:i,flatOrder:a,entries:o,revision:s}=e.data;t.setQueryData(b(),{id:n,title:r,order:i,flatOrder:a,entries:o,revision:s})},onSettled:()=>t.invalidateQueries({queryKey:b()})}),K=(0,U.useCallback)(async e=>{try{let t=x()?.id;if(!t)throw Error(`Rundown not initialised`);await G([t,e])}catch(e){d(`Error dissolving group`,e)}},[x,G]),{mutateAsync:q}=v({mutationFn:([e,t])=>le(e,t),onMutate:()=>t.cancelQueries({queryKey:b()}),onSuccess:e=>{if(!e.data)return;let{id:n,title:r,order:i,flatOrder:a,entries:o,revision:s}=e.data;t.setQueryData(b(),{id:n,title:r,order:i,flatOrder:a,entries:o,revision:s})},onSettled:()=>t.invalidateQueries({queryKey:b()})}),J=(0,U.useCallback)(async e=>{if(e.length!==0)try{let t=x(),n=t?.id;if(!n)throw Error(`Rundown not initialised`);e.length===1?await q([n,e]):await q([n,H(e,t.flatOrder)])}catch(e){d(`Error grouping entries`,e)}},[x,q]),{mutateAsync:Y}=v({mutationFn:([e,t])=>fe(e,t),onMutate:()=>t.cancelQueries({queryKey:b()}),onSettled:()=>{t.invalidateQueries({queryKey:b()})}}),X=(0,U.useCallback)(async(e,t)=>{try{let n=x(),r=n?.id;if(!r)throw Error(`Rundown not initialised`);let{destinationId:i,order:a}=t===`up`?xe(e,n.flatOrder,n.entries):Se(e,n.flatOrder,n.entries);return i?(await Y([r,{entryId:e,destinationId:i,order:a}]),n.entries[i]?.type===l.Group?i:void 0):void 0}catch(e){d(`Error re-ordering event`,e)}},[x,Y]),Z=(0,U.useCallback)(async(e,t,n)=>{try{let r=x()?.id;if(!r)throw Error(`Rundown not initialised`);await Y([r,{entryId:e,destinationId:t,order:n}])}catch(e){throw d(`Error re-ordering event`,e),e}},[x,Y]),{mutateAsync:Q}=v({mutationFn:([e,t,n])=>_e(e,t,n),onMutate:async([e,n,r])=>{let i=b();await t.cancelQueries({queryKey:i});let a=t.getQueryData(i);if(a){let e={...a.entries},s=a.entries[n],c=a.entries[r];if(!o(s)||!o(c))return;let[l,u]=oe(s,c);e[n]=l,e[r]=u,t.setQueryData(i,{id:a.id,title:a.title,order:a.order,flatOrder:a.flatOrder,entries:e,revision:-1})}return{previousData:a,queryKey:i}},onError:(e,n,r)=>{r?.queryKey&&t.setQueryData(r.queryKey,r?.previousData)},onSettled:(e,n,r,i)=>{t.invalidateQueries({queryKey:i?.queryKey??b()})}}),$=(0,U.useCallback)(async(e,t)=>{try{let n=x()?.id;if(!n)throw Error(`Rundown not initialised`);await Q([n,e,t])}catch(e){d(`Error re-ordering event`,e)}},[x,Q]);return(0,U.useMemo)(()=>({addEntry:E,applyDelay:W,batchUpdateEvents:P,clone:O,deleteEntry:R,deleteAllEntries:B,ungroup:K,getEntryById:w,groupEntries:J,move:X,reorderEntry:Z,renumberCues:I,swapEvents:$,updateEntry:A,updateTimer:j,matchGroupDuration:M}),[E,W,P,O,R,B,K,w,J,X,Z,I,$,A,j,M])}function Ce(e,t){let n={...t.entries},i=[...t.order],a=[...t.flatOrder];for(let t=0;t<e.length;t++){let r=n[e[t]];o(r)}function o(e){if(r(e)||!e.parent)i=i.filter(t=>t!==e.id);else{let t=n[e.parent];t&&r(t)&&(t.entries=t.entries.filter(t=>t!==e.id))}delete n[e.id],a=a.filter(t=>t!==e.id)}return{entries:n,order:i,flatOrder:a}}function we(e){let{after:t,before:n,...r}=e,i=r.id,a=null;switch(`parent`in r&&r.parent&&(a=r.parent),r.type){case l.Event:return P({...r,id:i,parent:a});case l.Delay:return N({id:i,duration:r.duration??0,parent:a});case l.Group:return F({...r,id:i});case l.Milestone:return I({...r,id:i,parent:a});default:throw Error(`Unknown entry type`)}}function q(e,t=`compact`){if(e==null||e===0)return``;let n=e<0,r=Math.abs(e),i=t===`compact`,a=i?`+`:`delayed by `,o=i?`-`:`ahead by `;return r<6e4?`${n?o:a}${u(r,`s`)} sec`:r<36e5&&r%6e4==0?`${n?o:a}${u(r,`m`)} min`:`${n?o:a}${u(r,`HH:mm:ss`)}`}var J={blink:`_blink_1vba8_1`,fourtyfive:`_fourtyfive_1vba8_13`,delaySymbol:`_delaySymbol_1vba8_17`},Y=n();function X(e){let{delayValue:t,tooltipPrefix:n}=e;return typeof t!=`number`||t===0?null:(0,Y.jsx)(m,{text:n?`${n} ${q(t)}`:q(t),render:(0,Y.jsx)(`span`,{}),className:J.delaySymbol,children:t<0?(0,Y.jsx)(g,{}):(0,Y.jsx)(_,{})})}export{V as a,H as c,G as i,q as n,B as o,W as r,z as s,X as t};
//# sourceMappingURL=DelayIndicator-CDgZjI5P.js.map