@vidispine/vdt-react 26.2.0-pre.2 → 26.2.0-pre.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1217,22 +1217,22 @@ function Xn({
1217
1217
  }
1218
1218
  };
1219
1219
  }
1220
- function Or({ itemSearchDocument: e, queryParams: t, matrixParams: n }) {
1220
+ function Or({ itemSearchDocument: e, queryParams: t, matrixParams: n, path: r }) {
1221
1221
  const {
1222
- request: r,
1223
- data: o = {},
1224
- isLoading: s,
1225
- isError: a,
1226
- cancel: i
1227
- } = j(ue.searchItem), l = () => r({ itemSearchDocument: e, queryParams: t, matrixParams: n });
1222
+ request: o,
1223
+ data: s = {},
1224
+ isLoading: a,
1225
+ isError: i,
1226
+ cancel: l
1227
+ } = j(ue.searchItem), u = r ? { path: r } : {}, c = () => o({ itemSearchDocument: e, queryParams: t, matrixParams: n, ...u });
1228
1228
  return Z(() => {
1229
- l();
1230
- }, [e, t, n]), {
1231
- itemListType: o,
1232
- isLoading: s,
1233
- isError: a,
1234
- onRefresh: l,
1235
- cancel: i
1229
+ c();
1230
+ }, [e, t, n, r]), {
1231
+ itemListType: s,
1232
+ isLoading: a,
1233
+ isError: i,
1234
+ onRefresh: c,
1235
+ cancel: l
1236
1236
  };
1237
1237
  }
1238
1238
  const zn = () => {
@@ -2265,21 +2265,28 @@ function Eo({
2265
2265
  }, f = (d) => se(d, p);
2266
2266
  return oe.map(s, f);
2267
2267
  }
2268
- function go({ itemSearchDocument: e, queryParams: t, matrixParams: n, children: r }) {
2269
- const { itemListType: o, onRefresh: s, isLoading: a, isError: i } = Or({
2268
+ function go({
2269
+ itemSearchDocument: e,
2270
+ queryParams: t,
2271
+ matrixParams: n,
2272
+ path: r,
2273
+ children: o
2274
+ }) {
2275
+ const { itemListType: s, onRefresh: a, isLoading: i, isError: l } = Or({
2270
2276
  itemSearchDocument: e,
2271
2277
  queryParams: t,
2272
- matrixParams: n
2273
- }), l = {
2278
+ matrixParams: n,
2279
+ path: r
2280
+ }), u = {
2274
2281
  itemSearchDocument: e,
2275
2282
  matrixParams: n,
2276
2283
  queryParams: t,
2277
- itemListType: o,
2278
- onRefresh: s,
2279
- isLoading: a,
2280
- isError: i
2281
- }, u = (c) => se(c, l);
2282
- return oe.map(r, u);
2284
+ itemListType: s,
2285
+ onRefresh: a,
2286
+ isLoading: i,
2287
+ isError: l
2288
+ }, c = (p) => se(p, u);
2289
+ return oe.map(o, c);
2283
2290
  }
2284
2291
  function yo({
2285
2292
  itemSearchDocument: e,
@@ -1,6 +1,6 @@
1
- (function(g,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("react"),require("@vidispine/vdt-api"),require("@vidispine/vdt-js"),require("lz-string"),require("use-deep-compare-effect"),require("lodash.debounce"),require("react/jsx-runtime"),require("react-cookie"),require("react-is")):typeof define=="function"&&define.amd?define(["exports","react","@vidispine/vdt-api","@vidispine/vdt-js","lz-string","use-deep-compare-effect","lodash.debounce","react/jsx-runtime","react-cookie","react-is"],a):(g=typeof globalThis<"u"?globalThis:g||self,a(g["@vidispine/vdt-react"]={},g.react,g.vdtApi,g.vdtJs,g.lzString,g.useDeepCompareEffect,g._debounce,g.jsxRuntime,g.reactCookie,g.reactIs))})(this,function(g,a,C,z,ve,Q,Ne,V,_e,Ie){"use strict";const lt=({hasLoaded:e=!1,isLoading:t=!0,isError:r=!1,response:n=void 0,data:s=void 0}={},o=void 0)=>({isLoading:t,hasLoaded:e,isError:r,response:n,data:o&&o.current?o.current:s}),ft=(e,t)=>{switch(t.type){case"START":return{...e,isLoading:!0,isError:!1};case"SUCCESS":{const{responseType:r}=t.response,n={isLoading:!1,isError:!1,hasLoaded:!0,response:t.response,data:t.response.data};return r&&(n[r]=t.response[r]),n}case"ERROR":return{isLoading:!1,isError:!0,hasLoaded:!0,response:t.response,data:t.response.data};case"CANCEL":return{...e,isLoading:!1,isError:!1,hasLoaded:!0};case"RESET":return{...t.initialState};default:return e}};function x(e,t,r){const n=a.useRef(()=>null),s=lt(t,r),o=a.useRef(s),[u,i]=a.useReducer(ft,s),f=a.useCallback(E=>(i({type:"START"}),new Promise((m,d)=>{e({cancelToken:new C.utils.CancelToken(p=>{n.current=p}),...E}).then(p=>{m(p),i({type:"SUCCESS",response:p}),r&&(r.current=p.data)}).catch(p=>{p.__CANCEL__?i({type:"CANCEL"}):(d(p),i({type:"ERROR",response:p}))})})),[e,r]),l=a.useCallback(()=>i({type:"RESET",initialState:o.current}),[]),c=a.useCallback(()=>n.current(),[]);return a.useEffect(()=>()=>{c(),l()},[c,l]),{request:f,reset:l,cancel:c,...u}}const k={CHANGE_PAGE:"CHANGE_PAGE",CHANGE_ROWS:"CHANGE_ROWS",CHANGE_SORT:"CHANGE_SORT",CHANGE_SEARCHTEXT:"CHANGE_SEARCHTEXT",CHANGE_SEARCHFIELD:"CHANGE_SEARCHFIELD",CHANGE_SEARCHFIELDFACET:"CHANGE_SEARCHFIELDFACET",CHANGE_SEARCHFILTER:"CHANGE_SEARCHFILTER",CHANGE_SEARCHFILTERFACET:"CHANGE_SEARCHFILTERFACET",CHANGE_PARENT_COLLECTION:"CHANGE_PARENT_COLLECTION",CHANGE_FACET:"CHANGE_FACET",CHANGE_ITEMSEARCHDOCUMENT:"CHANGE_ITEMSEARCHDOCUMENT",CHANGE_QUERYPARAMS:"CHANGE_QUERYPARAMS",CHANGE_MATRIXPARAMS:"CHANGE_MATRIXPARAMS",CHANGE_SUGGESTION:"CHANGE_SUGGESTION"},dt=({queryParams:e={},matrixParams:t={},itemSearchDocument:r={},rowsPerPage:n=10,page:s=0,...o}={})=>({...o,queryParams:{content:"metadata",interval:"generic",...e},matrixParams:{first:s*n+1,number:n,...t},itemSearchDocument:{intervals:"generic",filter:[],...r},rowsPerPage:n,page:s}),mt=(e,t)=>{switch(t.type){case k.CHANGE_ITEMSEARCHDOCUMENT:return{...e,page:Number.isInteger(t.page)?t.page:e.page,itemSearchDocument:t.itemSearchDocument,matrixParams:{...e.matrixParams,first:Number.isInteger(t.page)?t.page*e.rowsPerPage+1:e.matrixParams.first}};case k.CHANGE_QUERYPARAMS:return{...e,queryParams:t.queryParams};case k.CHANGE_MATRIXPARAMS:return{...e,matrixParams:t.matrixParams};case k.CHANGE_PAGE:return{...e,page:t.page,matrixParams:{...e.matrixParams,first:t.page*e.rowsPerPage+1}};case k.CHANGE_ROWS:return{...e,rowsPerPage:t.rowsPerPage,page:0,matrixParams:{...e.matrixParams,first:1,number:t.rowsPerPage}};case k.CHANGE_SORT:return{...e,page:0,searchText:t.value,sort:t.value,itemSearchDocument:{...e.itemSearchDocument,sort:t.field?[{field:t.field,order:t.order||"descending"}]:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SEARCHTEXT:return{...e,page:0,searchText:t.value,itemSearchDocument:t.value?{...e.itemSearchDocument,text:[{value:`${t.value}`}]}:{...e.itemSearchDocument,text:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SEARCHFIELD:return{...e,page:0,field:t.field,itemSearchDocument:t.field?{...e.itemSearchDocument,field:t.field}:{...e.itemSearchDocument,field:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SEARCHFIELDFACET:return{...e,page:0,field:t.field,facet:t.facet,itemSearchDocument:t.field?{...e.itemSearchDocument,field:t.field,facet:t.facet}:{...e.itemSearchDocument,field:[],facet:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SEARCHFILTER:return{...e,page:0,filter:t.filter,itemSearchDocument:t.filter?{...e.itemSearchDocument,filter:t.filter}:{...e.itemSearchDocument,filter:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SEARCHFILTERFACET:return{...e,page:0,filter:t.filter,itemSearchDocument:t.filter?{...e.itemSearchDocument,filter:t.filter,facet:t.facet}:{...e.itemSearchDocument,filter:[],facet:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_FACET:return{...e,page:0,facet:t.facet,itemSearchDocument:t.facet?{...e.itemSearchDocument,facet:t.facet}:{...e.itemSearchDocument,facet:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_PARENT_COLLECTION:return{...e,page:0,parentCollection:t.value,itemSearchDocument:t.value?{...e.itemSearchDocument,operator:{field:[{name:"__parent_collection",value:[{value:`${t.value}`}]},{name:"__collection",value:[{value:`${t.value}`}]}],operation:"OR"}}:{...e.itemSearchDocument,operator:void 0},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SUGGESTION:return{...e,itemSearchDocument:{...e.itemSearchDocument,suggestion:t.suggestion}};default:return e}};function He(e){const t=dt(e),[r,n]=a.useReducer(mt,t),s=({target:{value:y}}={})=>n({type:k.CHANGE_ROWS,rowsPerPage:y}),o=({page:y})=>n({type:k.CHANGE_PAGE,page:y}),u=(y,A,b)=>n({type:k.CHANGE_SORT,field:A,order:b}),i=a.useCallback(y=>n({type:k.CHANGE_SEARCHTEXT,value:y}),[]),f=a.useCallback((y,A)=>n({type:k.CHANGE_ITEMSEARCHDOCUMENT,itemSearchDocument:y,page:A}),[]),l=a.useCallback(y=>n({type:k.CHANGE_QUERYPARAMS,queryParams:y}),[]),c=a.useCallback(y=>n({type:k.CHANGE_MATRIXPARAMS,matrixParams:y}),[]),E=a.useCallback(y=>n({type:k.CHANGE_SEARCHFIELD,field:y}),[]),m=a.useCallback(y=>{const A=y.map(({name:b})=>({field:b,count:!0}));n({type:k.CHANGE_SEARCHFIELDFACET,field:y,facet:A})},[]),d=a.useCallback(y=>n({type:k.CHANGE_SEARCHFILTER,filter:y}),[]),p=a.useCallback(y=>{const b=y.reduce((v,{field:R=[]})=>v.concat(R),[]).map(({name:v})=>({name:v,field:v,count:!0,exclude:[v]}));n({type:k.CHANGE_SEARCHFILTERFACET,filter:y,facet:b})},[n]),h=a.useCallback(y=>{n({type:k.CHANGE_FACET,facet:y})},[n]),T=a.useCallback(y=>n({type:k.CHANGE_PARENT_COLLECTION,value:y}),[]),P=a.useCallback(y=>{n({type:k.CHANGE_SUGGESTION,suggestion:y})},[]);return{state:r,onChangeRowsPerPage:s,onChangePage:o,onChangeSort:u,setSearchText:i,setSearchField:E,setSearchFieldFacet:m,setSearchFilter:d,setSearchFilterFacet:p,setFacet:h,setItemSearchDocument:f,setQueryParams:l,setMatrixParams:c,setParentCollection:T,setSuggestion:P}}function ae(e,t){const r=a.useRef(!1);a.useEffect(()=>{r.current?e():r.current=!0},t)}const ht=({field:e=void 0,text:t="",maximumSuggestions:r=10}={})=>({field:e,text:t,maximumSuggestions:r});function Et(e){const t=ht(e),[r,n]=a.useState(t),s=a.useCallback((l,c="")=>{n(E=>({...E,field:l,text:c}))},[]),o=a.useCallback(l=>{n(c=>({...c,text:l}))},[]),u=a.useCallback(l=>{n(c=>({...c,maximumSuggestions:l}))},[]),{request:i,data:{suggestion:f=[]}={}}=x(C.search.searchAutoComplete);return ae(()=>{i({autocompleteRequestDocument:r})},[r]),{suggestions:f,setAutocompleteField:s,setAutocompleteText:o,setAutocompleteMaxSuggestions:u}}const pt=({field:e=void 0,text:t="",maximumSuggestions:r=10}={})=>({field:e,text:t,maximumSuggestions:r});function Ct(e){const t=pt(e),[r,n]=a.useState(t),[s,o]=a.useState("NESTED"),u=a.useCallback((m="NESTED")=>{o(m)},[]),i=a.useCallback((m,d="")=>{n(p=>({...p,field:m,text:d}))},[]),f=a.useCallback(m=>{n(d=>({...d,text:m}))},[]),l=a.useCallback(m=>{n(d=>({...d,maximumSuggestions:m}))},[]),{request:c,data:{suggestion:E=[]}={}}=x(C.search.searchAutoComplete);return ae(()=>{c({autocompleteRequestDocument:r,path:`/API/search2/autocomplete?searchLang=${s}`})},[r,s]),{suggestions:E,setAutocompleteField:i,setAutocompleteText:f,setAutocompleteMaxSuggestions:l,setAutocompleteLanguage:u}}const gt=(e="id",t=[])=>{const[r,n]=a.useState(t);return{selected:r,onSelect:(i,f,l)=>{const c=l[e],E=r.findIndex(m=>m[e]===c);if(E===-1&&f===!0)f===!0&&n([...r,l]);else if(E>-1&&f===!1){const m=[...r];m.splice(E,1),n(m)}},onClear:()=>n([]),isSelected:i=>{const f=i[e];return r.findIndex(c=>c[e]===f)>-1}}},St=e=>{const[t,r]=a.useState(e);return{activeTab:t,changeTab:(s,o)=>r(o)}};function yt(e,t){const r=a.useRef();a.useEffect(()=>{r.current=e},[e]),a.useEffect(()=>{const s=setInterval(()=>r.current(),t);return()=>clearInterval(s)},[t])}function Tt(e=[]){const t=a.useRef(),r=a.useMemo(()=>Math.floor(e.length/2),[e]),[n,s]=a.useState(),o=a.useRef(n);if(a.useEffect(()=>()=>t.current&&clearInterval(t.current),[]),e.length===0)return{width:0};o.current=n;const u=()=>{const E=()=>{o.current===void 0?s(0):o.current===e.length-1?clearInterval(t.current):s(o.current+1)};t.current=setInterval(E,500)},i=()=>{s(),clearInterval(t.current)},f=e[n===void 0?r:n],l=n===void 0?0:`${Math.floor(n/(e.length-1)*100)}%`;return{imageSrc:f,onMouseEnter:u,onMouseLeave:i,width:l}}const Y={CHANGE_PAGE:"CHANGE_PAGE",CHANGE_ROWS:"CHANGE_ROWS",CHANGE_SORT:"CHANGE_SORT",CHANGE_TYPE:"CHANGE_TYPE",CHANGE_STATE:"CHANGE_STATE",CHANGE_PRIORITY:"CHANGE_PRIORITY",CHANGE_STARTTIME:"CHANGE_STARTTIME",CHANGE_FINISHTIME:"CHANGE_FINISHTIME"},At=({queryParams:e={},matrixParams:t={}}={})=>({queryParams:e,matrixParams:{first:1,number:10,...t},rowsPerPage:10,page:0,jobMetadata:[]}),Rt=(e,t)=>{const{type:r,...n}=t;switch(r){case Y.CHANGE_PAGE:{const{page:s=0}=t,{rowsPerPage:o=10}=e;return{...e,page:s,matrixParams:{...e.matrixParams,first:s*o+1}}}case Y.CHANGE_ROWS:{const{rowsPerPage:s}=t;return{...e,rowsPerPage:s,page:0,matrixParams:{...e.matrixParams,first:1,number:s}}}case Y.CHANGE_SORT:{const{field:s,order:o="desc"}=t;return{...e,page:0,matrixParams:{...e.matrixParams,first:1,sort:`${s} ${o}`}}}case Y.CHANGE_TYPE:case Y.CHANGE_STATE:case Y.CHANGE_PRIORITY:{const{field:s,value:o=[]}=n;let u;if(o)u={...e.matrixParams,first:1,[s]:Array.isArray(o)?o.join(","):o};else{const{[s]:i,...f}=e.matrixParams;u={...f,first:1}}return{...e,page:0,matrixParams:u}}case Y.CHANGE_STARTTIME:case Y.CHANGE_FINISHTIME:{const{field:s,value:o=[]}=n;let u;if(o)u={...e.queryParams,first:1,[s]:o};else{const{[s]:i,...f}=e.queryParams;u={...f,first:1}}return{...e,page:0,queryParams:u}}case Y.CHANGE_JOBMETADATA:{const{field:s,value:o=[]}=n;let u;if(o.length)u={...e.queryParams,first:1,[s]:o};else{const{[s]:i,...f}=e.queryParams;u={...f,first:1}}return{...e,page:0,queryParams:u,jobMetadata:o}}default:return e}};function Pt(e){const t=At(e),[r,n]=a.useReducer(Rt,t);return{state:r,onChangePage:({page:d})=>n({type:Y.CHANGE_PAGE,page:d}),onChangeSort:(d,p,h)=>{const T=typeof p=="object"?p.value:p;n({type:Y.CHANGE_SORT,field:T,order:h})},onChangeType:({field:d=[]})=>{const[{name:p="type",value:h=[]}]=d;n({type:Y.CHANGE_TYPE,field:p,value:h.length?h[0].value:null})},onChangeState:({field:d=[]})=>{const[{name:p="state",value:h=[]}]=d;n({type:Y.CHANGE_STATE,field:p,value:h.length?h[0].value:null})},onChangePriority:({field:d=[]})=>{const[{name:p="priority",value:h=[]}]=d;n({type:Y.CHANGE_PRIORITY,field:p,value:h.length?h[0].value:null})},onChangeStarttime:({field:d=[]})=>{const[{name:p="starttime-from",value:h=[]}]=d;n({type:Y.CHANGE_STARTTIME,field:p,value:h.length?h[0].value:null})},onChangeFinishtime:({field:d=[]})=>{const[{name:p="finishtime-from",value:h=[]}]=d;n({type:Y.CHANGE_FINISHTIME,field:p,value:h.length?h[0].value:null})},onChangeRowsPerPage:({target:{value:d}}={})=>n({type:Y.CHANGE_ROWS,rowsPerPage:d}),onChangeJobmetadata:d=>{n({type:Y.CHANGE_JOBMETADATA,field:"jobmetadata",value:d})}}}const bt=(e,t)=>{const[r,n]=a.useState(JSON.parse(window.localStorage.getItem(e)||JSON.stringify(t)));return a.useEffect(()=>{window.localStorage.setItem(e,JSON.stringify(r))},[e,r]),[r,n,()=>JSON.parse(window.localStorage.getItem(e))]};function we(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16))}function Gt(e){return ve.compressToEncodedURIComponent(e)}function vt(e){return e.slice(-1)==="="?decodeURIComponent(atob(e).split("").map(t=>`%${`00${t.charCodeAt(0).toString(16)}`.slice(-2)}`).join("")):ve.decompressFromEncodedURIComponent(e)}const Nt=["__mp3_160k"],_t=["__mp4"],It=["__png"],Ht="audio",wt="video",Dt="image",Ot=["application/mxf"],Mt=[],Lt=[],Ut=e=>{if(!e||!e.type)return[];const t=e.type.toLowerCase();return t.startsWith(Ht)||Lt.includes(t)?Nt:t.startsWith(wt)||Ot.includes(t)?_t:t.startsWith(Dt)||Mt.includes(t)?It:[]},Ft=(e,t={})=>new Promise((r,n)=>{const s=new C.ChunkedTransferManager,o=new C.ChunkedUpload(e,{onFail:u=>n(u),onComplete:u=>r(u),...t});s.addChunkedUpload(o),s.upload()}),kt=({file:e,collectionId:t,onProgress:r,metadata:n={},placeholderParams:s={},importParams:o={},chunkedUploadProps:u={},generateTransferId:i=we,getShapeTags:f=Ut})=>new Promise((l,c)=>{try{let E;r({});const m=f(e),d=e.name,p=e.type,[h]=p.split("/"),T={originalFilename:d,mimeType:p,mediaType:h,...n},P=z.createMetadataType(T);C.vsimport.createImportPlaceholder({metadataDocument:P,queryParams:{container:1,...s}}).then(({data:y})=>{if(E=y.id,!t)return Promise.resolve();const A=Array.isArray(t)?t:[t];return Promise.all(A.map(b=>C.collection.addCollectionEntity({collectionId:b,entityId:E})))}).then(()=>{const y=i(),A={filename:d,transferId:y,tag:m,...o};return Ft(e,{api:{method:C.vsimport.createImportComponentRaw,props:{itemId:E,component:"container",queryParams:A}},onProgress:r,...u})}).then(y=>{l({...y,itemId:E,collectionId:t})}).catch(y=>c(y))}catch(E){console.error(E),c(E)}});function qt({onUploadFile:e=kt,initialMetadata:t={},...r}){const[n,s]=a.useState([]);a.useEffect(()=>()=>{n.forEach(m=>URL.revokeObjectURL(m.preview))},[n]);const o=a.useCallback((m=[])=>{const d=m.map(p=>({file:p,metadata:{title:p.name,...t}}));s(p=>d.concat(p))},[t]),u=a.useCallback((m,d={})=>{s(p=>{const h=p[m],{metadata:T,progress:P}=d,{metadata:y={},progress:A={}}=h,b=[...p],v={...h};return T&&(v.metadata={...y,...T}),P&&(v.progress={...A,...P}),b[m]=v,b})},[s]),i=a.useCallback(m=>(d={})=>{u(m,{progress:d})},[u]),f=a.useCallback(m=>(d={})=>{u(m,{metadata:d})},[u]),l=a.useCallback(m=>n.reduce((d,p,h)=>d.then(T=>p.progress?d:e({file:p.file,onProgress:i(h),metadata:p.metadata,...m,...r}).then(P=>[...T,P])),Promise.resolve([])),[n,e,i,r]),c=a.useCallback(m=>()=>{s([...n].filter((d,p)=>p!==m))},[s,n]),E=a.useCallback(m=>()=>{s([...n].filter((d,p)=>!m.includes(p)))},[s,n]);return{onAddFiles:o,onChangeFile:u,onChangeMetadata:f,onUpload:l,onRemoveFile:c,onRemoveFiles:E,files:n,setFiles:s}}function $t({history:e,navigate:t,location:r,queryName:n="q",defaultState:s=void 0}){const o=a.useRef(s);return{queryInitialState:a.useMemo(()=>{const{location:i=r}=e||{},l=new URLSearchParams(i.search).get(n);if(!l)return o.current;try{const c=vt(l);return JSON.parse(c)}catch{e?e.replace({pathName:e.location.pathName,search:""}):t&&t(i.pathName,{replace:!0})}},[e,t,r,n])}}function xt({history:e,navigate:t,location:r,state:n,queryName:s="q"}){const o=a.useCallback(()=>{const{location:u=r}=e||{},i=Gt(JSON.stringify(n));e?e.replace({pathName:u.pathName,search:`?${s}=${i}`}):t&&t(`${u.pathName}?${s}=${i}`,{replace:!0})},[e,t,r,s,n]);ae(()=>{o(n)},[o,n])}const jt=({entityId:e,entityType:t})=>{const{request:r,data:n={},isLoading:s}=x(C.access.listEntityAccess),o=a.useCallback((f={})=>r({entityId:e,entityType:t,...f}),[e,t]),u=a.useCallback(({accessId:f,...l})=>C.access.removeEntityAccess({accessId:f,entityId:e,entityType:t,...l}),[e,t]),i=a.useCallback(({accessControlDocument:f,...l})=>C.access.createEntityAccess({entityType:t,entityId:e,accessControlDocument:f,...l}),[e,t]);return{accessControlList:n,isLoading:s,onList:o,onRemove:u,onAdd:i}},De=({data:e=[]}={},t=void 0)=>{if(!t)return;const{value:r}=e.find(n=>n.key===t)||{};return r},Wt=(e,t)=>Object.assign({},...t.map(r=>({[r]:De(e,r)}))),Vt=({values:{field:e}={}}={})=>e?e.map(t=>({value:t.value,label:t.key||t.value})):void 0,Yt=e=>{const r=new DOMParser().parseFromString(e,"application/xml").getElementsByTagName("field");if(!r.length)return;const n={field:[]};for(let s=0;s<r.length;s+=1){const[o,u]=r[s].childNodes;n.field.push({[o.nodeName]:o.firstChild.nodeValue,[u.nodeName]:u.firstChild.nodeValue})}return n},Bt=({fields:e,groups:t,getDataAttributes:r=Wt,fieldDataToInclude:n="label,displayType,required",groupDataToInclude:s="label,order",fieldQueryParams:o={},groupQueryParams:u={},getAttributes:i=!0})=>{const[f,l]=a.useState(!1),[c,E]=a.useState(e),[m,d]=a.useState(t);return Q(()=>{let p=!1;if(i===!1)return()=>{p=!0};const h=(y=[],A={})=>y.map(({name:b,...v})=>{const R=A[b]||{},{label:N,...I}=r(R,n.split(","));return{name:b,label:N||b,type:R.type,constraint:R.constraint,options:Vt(R),...I,...v}}),T=(y=[],A={},b={})=>y.map(({name:v,field:R,group:N,...I})=>{const H=A[v]||{},j=R||H&&H.field,W=N||H&&H.group,{label:B,...K}=r(H,s.split(","));return{name:v,label:B||v,order:De(H,"order"),fields:h(j,b),groups:T(W,A,b),...K,...I}});async function P(){l(!0);const y={},A={};let b=[];if(e){const R={...o,data:n};b=e.map(async({name:N})=>{try{const{data:I}=await C.metadatafield.getMetadataField({fieldName:N,queryParams:R});y[N]=I}catch{console.warn(`Could not retrieve attributes for ${N}`)}})}let v=[];if(t){const R=[...t],N={...u,data:s};v=R.map(async({name:I})=>{try{const{data:H}=await C.fieldgroup.getFieldGroup({groupName:I,queryParams:N}),{field:j=[],group:W=[]}=H;j.forEach(B=>{const K=B.data&&B.data.find(Z=>Z.key==="__values");if(K){const Z=Yt(K.value);y[B.name]={...B,values:Z}}}),W.forEach(B=>{R.push(B)}),A[I]=H}catch{console.warn(`Could not retrieve attributes for ${I}`)}})}await Promise.all([...b,...v]),p||(Object.values(y).some(R=>R)&&E(()=>h(e,y)),Object.values(A).some(R=>R)&&d(()=>{const R=T(t,A,y);return R.forEach(N=>{const{order:I}=N;I&&N.fields.sort((H,j)=>I.indexOf(H.name)-I.indexOf(j.name))}),R}),l(!1))}return P(),()=>{p=!0}},[e,t,n,s,o,u,i]),{fieldsWithAttributes:c,groupsWithAttributes:m,isLoading:f}},Qt="TRANSIENT";function Xt({metadata:e,markerField:t,markerValue:r,itemSearchDocument:n}){return C.item.searchItem({queryParams:{result:"library",updateMode:Qt},itemSearchDocument:n}).then(({data:{library:s}})=>C.collection.createCollection({collectionDocument:{metadata:t?z.createMetadataType({[t]:r||s,...e}):e,content:[{id:s,type:"library"}]}}))}const Oe=({collectionId:e})=>new Promise((t,r)=>{C.collection.getCollection({collectionId:e,queryParams:{children:"library"}}).then(({data:n})=>{const{content:s=[]}=n,[o]=s;o||r(new Error("No Libraries")),t(o)})}),Jt=({collectionId:e})=>Oe({collectionId:e}).then(({id:t})=>Promise.all([C.library.removeLibrary({libraryId:t}),C.collection.removeCollection({collectionId:e})]));function zt({libraryId:e}){return new Promise(t=>{C.library.getLibrarySettings({libraryId:e}).then(({data:{query:r}})=>{t(r)})})}const Kt=({collectionId:e})=>new Promise(t=>{Oe({collectionId:e}).then(({id:r})=>zt({libraryId:r})).then(t)});function Zt({markerField:e,markerValue:t,initialSearchState:r,onSaveSearch:n=Xt,onDeleteSearch:s=Jt,onUpdateSearchMetadata:o=C.collection.updateCollectionMetadata,onGetSavedSearchSettings:u=Kt}){const i=a.useCallback(({metadata:m,itemSearchDocument:d})=>n({metadata:m,markerField:e,markerValue:t,itemSearchDocument:d}),[e,t,n]),f=(m={})=>({...m,operator:{field:[{name:e,value:[{value:t||"*"}]}],operator:m.operator?[m.operator]:[],operation:"AND"}}),l=He({...r,itemSearchDocument:f()}),{setItemSearchDocument:c,...E}=l;return{onSaveSearch:i,onDeleteSearch:s,onUpdateSearchMetadata:o,onGetSavedSearchSettings:u,searchProps:{setItemSearchDocument:m=>c(f(m)),...E}}}function Me({itemSearchDocument:e,queryParams:t,matrixParams:r}){const{request:n,data:s={},isLoading:o,isError:u,cancel:i}=x(C.item.searchItem),f=()=>n({itemSearchDocument:e,queryParams:t,matrixParams:r});return Q(()=>{f()},[e,t,r]),{itemListType:s,isLoading:o,isError:u,onRefresh:f,cancel:i}}const en=()=>{const[e,t]=a.useState({x:0,y:0});return a.useEffect(()=>{const r=n=>t({x:n.clientX,y:n.clientY});return window.addEventListener("mousedown",r),()=>{window.removeEventListener("mousedown",r)}},[]),e};function Le({collectionId:e,queryParams:t={},refreshOnMount:r=!0}){const{request:n,data:s={},isLoading:o,isError:u}=x(C.collection.getCollection),i=()=>n({collectionId:e,queryParams:t});return Q(()=>{r&&i()},[e,t]),{collectionType:s,isLoading:o,isError:u,onRefresh:i}}function tn({collectionId:e,queryParams:t={},refreshOnMount:r=!0}){const{request:n,data:s={}}=x(C.collection.getCollectionItem),o=()=>n({collectionId:e,queryParams:t});return Q(()=>{r&&o()},[e,t]),{itemListType:s,onRefresh:o}}const nn=({entityId:e,entityType:t})=>{let r,n,s;switch(t){case"collection":r="collectionType",s="collectionId",n=C.collection.getCollection;break;case"library":r="libraryType",s="libraryId",n=C.library.getLibrary;break;case"item":r="itemType",s="itemId",n=C.item.getItem;break;default:throw new Error("unknown entityType")}const{request:o,data:u,...i}=x(n),f=a.useCallback(l=>o({[s]:e,...l}),[e,s,o]);return{[r]:u,[s]:e,onGetEntity:f,...i}};function rn(e){const{data:t,request:r}=x(C.user.getUser,{data:e}),{userName:n}=t||{},s=a.useCallback(()=>r({userName:n}),[r,n]);a.useEffect(()=>{n&&s()},[s,n]);const o=a.useCallback(({userDocument:m})=>C.user.updateUser({userName:n,userDocument:m}).then(()=>r({userName:m.userName})),[r,n]),u=a.useCallback(({groups:m=[]})=>C.user.updateUserGroup({userName:n,groupListDocument:{group:m.map(d=>({groupName:d}))}}).then(s),[s,n]),i=a.useCallback(m=>C.group.removeGroupUser({groupName:m,userName:n}).then(s),[s,n]),f=a.useCallback(m=>C.user.updateUser({userName:n,userDocument:{password:m},queryParams:{passwordType:"raw"}}),[n]);return{userType:t,getUser:s,updateUser:o,updateUserGroups:u,removeUserFromGroup:i,disableUser:m=>C.user.disableUser({userName:n,...m}).then(s),enableUser:m=>C.user.enableUser({userName:n,...m}).then(s),deleteUser:({queryParams:m={}}={})=>C.user.disableUser({userName:n,queryParams:{hard:!0,...m}}),changePassword:f}}const ne={CHANGE_PAGE:"CHANGE_PAGE",CHANGE_ROWS:"CHANGE_ROWS",CHANGE_SORT:"CHANGE_SORT",CHANGE_QUERY:"CHANGE_QUERY"},sn=({queryParams:e={},rowsPerPage:t=10,page:r=0}={})=>({queryParams:{first:r*t+1,number:t,...e},rowsPerPage:t,page:r,userSearchDocument:{sort:[{field:"username",order:"ascending"}]}}),on=(e,t)=>{const{type:r}=t;switch(r){case ne.CHANGE_PAGE:{const{page:n}=t;return{...e,page:n,queryParams:{...e.queryParams,first:n*e.rowsPerPage+1}}}case ne.CHANGE_ROWS:{const{rowsPerPage:n}=t;return{...e,rowsPerPage:n,page:0,queryParams:{...e.queryParams,first:1,number:n}}}case ne.CHANGE_QUERY:return{...e,page:0,userSearchDocument:{...e.userSearchDocument,field:[{name:t.field||"username",value:t.query||""}]},queryParams:{...e.queryParams,first:1}};default:return e}};function an(e){const t=sn(e),[r,n]=a.useReducer(on,t),{data:s,request:o,hasLoaded:u,isError:i}=x(C.user.searchUser),f=()=>o({userSearchDocument:r.userSearchDocument,queryParams:r.queryParams});return a.useEffect(()=>{f()},[r.queryParams,r.userSearchDocument]),{...r,hasLoaded:u,isError:i,userListDocument:s,onSearchUser:f,onChangePage:({page:d})=>n({type:ne.CHANGE_PAGE,page:d}),onChangeSort:(d,p,h)=>{const T=typeof p=="object"?p.value:p;n({type:ne.CHANGE_SORT,field:T,order:h})},onChangeRowsPerPage:({target:{value:d}}={})=>n({type:ne.CHANGE_ROWS,rowsPerPage:d}),onChangeQuery:(d,p)=>{n({type:ne.CHANGE_QUERY,field:d,query:p})}}}const un=e=>{const{request:t,data:r={},isLoading:n}=x(C.group.listGroup),s=()=>t(e);return a.useEffect(()=>{s()},[e]),{onRefresh:s,groupListType:r,isLoading:n}},cn=e=>{const{request:t,data:r={},isLoading:n}=x(C.user.listUser),s=()=>t(e);return a.useEffect(()=>{s()},[e]),{onRefresh:s,userListType:r,isLoading:n}},ee={CHANGE_PAGE:"CHANGE_PAGE",CHANGE_ROWS:"CHANGE_ROWS",CHANGE_SORT:"CHANGE_SORT",CHANGE_QUERY:"CHANGE_QUERY",HIDE_ROLES:"HIDE_ROLES"},ln=({queryParams:e={},rowsPerPage:t=10,page:r=0}={})=>({queryParams:{first:r*t+1,number:t,...e},rowsPerPage:t,page:r,groupSearchDocument:{}}),fn=(e,t)=>{const{type:r}=t;switch(r){case ee.CHANGE_PAGE:{const{page:n}=t;return{...e,page:n,queryParams:{...e.queryParams,first:n*e.rowsPerPage+1}}}case ee.CHANGE_ROWS:{const{rowsPerPage:n}=t;return{...e,rowsPerPage:n,page:0,queryParams:{...e.queryParams,first:1,number:n}}}case ee.HIDE_ROLES:{const{hideRoles:n}=t,s=n===!0?!1:void 0;return{...e,page:0,queryParams:{...e.queryParams,first:1,role:s}}}case ee.CHANGE_QUERY:return{...e,page:0,groupSearchDocument:{...e.groupSearchDocument,field:[{name:t.field||"groupname",value:t.query||""}]},queryParams:{...e.queryParams,first:1}};default:return e}};function dn(e){const t=ln(e),[r,n]=a.useReducer(fn,t),{data:s,request:o,hasLoaded:u,isError:i}=x(C.group.searchGroup),f=()=>o({groupSearchDocument:r.groupSearchDocument,queryParams:r.queryParams});return a.useEffect(()=>{f()},[r.queryParams,r.groupSearchDocument]),{...r,hasLoaded:u,isError:i,groupListDocument:s,onSearchGroup:f,onChangePage:({page:p})=>n({type:ee.CHANGE_PAGE,page:p}),onChangeSort:(p,h,T)=>{const P=typeof h=="object"?h.value:h;n({type:ee.CHANGE_SORT,field:P,order:T})},onChangeRowsPerPage:({target:{value:p}}={})=>n({type:ee.CHANGE_ROWS,rowsPerPage:p}),onChangeQuery:(p,h)=>{n({type:ee.CHANGE_QUERY,field:p,query:h})},onHideRoles:({hideRoles:p})=>n({type:ee.HIDE_ROLES,hideRoles:p})}}function mn(e){const{data:t,request:r}=x(C.group.getGroup,{data:e}),{groupName:n}=t||{},s=a.useCallback(()=>r({groupName:n}),[r,n]);a.useEffect(()=>{n&&s()},[s,n]);const o=a.useCallback(({groupDocument:d})=>C.group.updateGroup({groupName:n,groupDocument:d}).then(s),[s,n]),u=a.useCallback(({groups:d})=>C.group.updateGroup({groupName:n,groupDocument:{childGroupList:{group:d.map(p=>({groupName:p}))}}}).then(s),[s,n]),i=a.useCallback(({groups:d})=>C.group.updateGroup({groupName:n,groupDocument:{parentGroupList:{group:d.map(p=>({groupName:p}))}}}).then(s),[s,n]),f=a.useCallback(({users:d})=>C.group.updateGroup({groupName:n,groupDocument:{userList:{user:d.map(p=>({userName:p}))}}}).then(s),[s,n]),l=a.useCallback(d=>C.group.removeGroupUser({groupName:n,userName:d}).then(s),[s,n]),c=a.useCallback(d=>C.group.removeGroupChildren({groupName:n,childGroupName:d}).then(s),[s,n]),E=a.useCallback(d=>C.group.removeGroupChildren({groupName:d,childGroupName:n}).then(s),[s,n]),m=a.useCallback(()=>C.group.removeGroup({groupName:n}),[n]);return{groupType:t,getGroup:s,updateGroup:o,removeGroup:m,addChildGroups:u,addParentGroups:i,addUsersToGroup:f,removeUserFromGroup:l,removeChildGroup:c,removeFromParentGroup:E}}function Ue({itemId:e,queryParams:t={},refreshOnMount:r=!0}){const{request:n,data:s={},isLoading:o,isError:u}=x(C.item.getItem),i=()=>n({itemId:e,queryParams:t});return Q(()=>{r&&i()},[e,t]),{itemType:s,isLoading:o,isError:u,onRefresh:i}}const hn=({collectionId:e,defaultEnabled:t=!0})=>{const[r,n]=a.useState(),[s,o]=a.useState(t),u=E=>o(m=>E!==void 0?E:!m),i=a.useRef(),f=a.useRef(),l=a.useRef(),c=a.useCallback(({itemId:E})=>{if(s===!1)return;const m={field:[{name:"mediaType",value:[{value:"video"},{value:"audio"}]}]},d=({first:p,number:h}={})=>{const{current:T}=i,{current:P}=f;if(!Array.isArray(T)){Promise.all([C.collection.getCollection({collectionId:e,queryParams:{children:"item"}}),C.collection.searchCollectionItem({collectionId:e,searchDocument:m,queryParams:{first:p,number:h}})]).then(([{data:R},{data:N}])=>{const{hits:I,item:H=[]}=N;i.current=H.map(({id:W})=>W),l.current=I;const{content:j}=R;f.current=j,d({first:1,number:100})});return}const{current:y}=l,A=P.findIndex(({id:R})=>R===E);if(A+1===P.length){n();return}if(A===-1&&y>T.length){C.collection.searchCollectionItem({collectionId:e,searchDocument:m,queryParams:{first:p+h,number:h}}).then(({data:R})=>{const{item:N=[]}=R;i.current.push(...N.map(({id:I})=>I)),d({first:p+h,number:h})});return}const v=P.slice(A+1).find(({id:R})=>T.includes(R));n(v)};d()},[e,s]);return{isAutoPlayEnabled:s,toggleAutoPlay:u,setNextPlaying:n,nextPlaying:r,onNext:c}},En=e=>{const t=[];for(let r=0;r<e.length;r+=1){const n=e[r];if(n&&typeof n=="string")try{const s=n.split("version")[1].split("/")[1].split("?")[0],o=z.formatTimeCodeText(s);t.push(o)}catch{}}return t};function pn(e=[],t=0,r=void 0,n=En){const[s,o]=a.useState(0),[u,i]=a.useState(0),[f,l]=a.useState(!1),[c,E]=a.useState([]),[m,d]=a.useState(),[p,h]=a.useState(0),T=a.useRef(Ne(R=>{i(R)},10)).current,P=R=>{try{return Math.round(R.getBoundingClientRect().left)}catch{return 0}},y=a.useCallback(R=>{const N=R.clientX-P(R.currentTarget)-t,I=R.currentTarget.offsetWidth;return N<0?0:N>I?I:N},[t]),A=(R,N)=>{let I=N[0],H=Math.abs(R-I),j=0;for(let W=0;W<N.length;W+=1){const B=Math.abs(R-N[W]),K=R-N[W]>0;B<H&&K&&(H=B,I=N[W],j=W)}return j},b=R=>{if(r){const N=y(R);o(N-1),p!==R.currentTarget.offsetWidth&&h(R.currentTarget.offsetWidth);const I=N/(R.currentTarget.offsetWidth/+r);d(z.formatTimeCodeSeconds(I));const H=A(I,c.map(j=>j.toSeconds().toFixed(0)));H!==u&&T(H)}};return Q(()=>{const R=n(e);E(R)},[e]),{thumbnailIndex:u,thumbnailTimeCode:m,thumbnailWidth:p,showScrub:f,scrubPosition:s,handleShowScrub:R=>()=>{r>0&&l(R)},onMouseMove:b}}function Cn({searchDoc:e,queryParams:t,debounceTime:r,suggestionSettings:n={maximumSuggestions:10,accuracy:1},triggerLength:s=1,apiCall:o=C.item.searchItem}){const[u,i]=a.useState(""),f=a.useRef(Ne(i,r)).current,{data:{autocomplete:l=[]}={},request:c}=x(o),{suggestion:E=[]}=l[0]||{};return Q(()=>{e&&u&&u.length>=s&&c({body:{...e,suggestion:n,autocomplete:[{text:u}],text:[{value:u}]},queryParams:{count:!1,number:0,...t}})},[c,u,t,s]),{suggestion:E,handleAutocompleteChange:f}}function gn(){const{request:e,data:{value:t=[]}={},isLoading:r}=x(C.metadatafield.getMetadataFieldAllowedValues);return{getMetadataDataset:(s,o,u)=>{s&&e({fieldName:s,metadataFieldValueConstraintListDocument:{constraint:o?[{field:u,value:o}]:[]}})},dataset:t,isLoading:r}}const Sn="TRANSIENT",Fe=e=>e.find(t=>t.name==="title").value[0].value;function yn({childFolders:e=[],queryParams:t={content:["metadata"]},markerProps:r={markerValue:"savedSearch",markerField:"eidr_referentType"},expand:n}){const[s,o]=a.useState(e),[u,i]=a.useState([]),[f,l]=a.useState(),c=a.useCallback(()=>{Promise.all(s.map(async h=>{const{data:{content:T,metadata:P={}}}=await C.collection.getCollection({collectionId:h,queryParams:t}),{field:y}=P.timespan[0];return T&&T[0].type==="library"?{id:h,libraryId:T[0].id,title:Fe(y),type:"query",metadata:P}:{id:h,title:Fe(y),subFolders:T&&T.map(A=>A.id),type:"folder",metadata:P}})).then(h=>{i(T=>[...h,...T])}).catch(h=>{l(h)})},[s,t]),E=(h,T,P,y,A)=>{C.collection.createCollection({collectionDocument:{metadata:z.createMetadataType({[T]:P,title:y})}}).then(({data:{id:b}})=>h?C.collection.updateCollection({collectionId:h,collectionDocument:{content:[{id:b,mode:"add",type:"collection"}]}}).then(({data:{content:v}})=>{v&&(o(v.filter(R=>R.id===b).map(R=>R.id)),A&&A())}).catch(v=>{l(v)}):null).catch(b=>{l(b)})},m=(h,T,P,y)=>{try{C.item.searchItem({queryParams:{result:"library",updateMode:Sn},itemSearchDocument:P}).then(({data:{library:A}})=>C.collection.createCollection({collectionDocument:{metadata:z.createMetadataType({[r.markerField]:r.markerValue,title:T}),content:[{id:A,type:"library"}]}})).then(({data:{id:A}})=>C.collection.updateCollection({collectionId:h,collectionDocument:{content:[{id:A,mode:"add",type:"collection"}]}}).then(({data:{content:b}})=>{b&&(o(b.filter(v=>v.id===A).map(v=>v.id)),y&&y())}).catch(b=>{l(b)})).catch(A=>{l(A)})}catch(A){l(A)}},d=h=>C.collection.removeCollection({collectionId:h}).catch(T=>{l(T)}),p=h=>{i(T=>T.filter(P=>P.id!==h))};return Q(()=>{s.length>0&&n&&c()},[s,n]),a.useEffect(()=>{!n&&typeof n=="boolean"&&(o(()=>u.map(h=>h.id)),i([]))},[n]),{createFolder:E,saveSearch:m,getSubFolders:c,deleteFolder:d,removeItem:p,subFolders:u,setSubFolders:i,setCurrentFolders:o,errors:f}}const Tn=({collectionId:e,onError:t})=>{const[r,n]=a.useState([]),o=async()=>{try{if(!e)throw Error("Missing collectionId");const{data:l={}}=await C.collection.getCollectionMetadata({collectionId:e,queryParams:{content:"metadata",field:"representativeItems"}}).catch(E=>{t&&t(E)}),{representativeItems:c=[]}=z.parseMetadataType(l,{flat:!0,includeValueAttributes:!0});n(()=>c)}catch(l){t&&t(l)}},u=async l=>{try{const c=z.createMetadataType({representativeItems:Array.isArray(l)?l:[l]}),E=await C.collection.updateCollectionMetadata({collectionId:e,metadataDocument:c});return o(),E}catch(c){t&&t(c);return}},i=l=>u({value:l,mode:"add"}),f=l=>{try{const c=r.filter(E=>E.value===l).map(E=>E.uuid);return c.length?u(c.map(E=>({uuid:E,mode:"remove"}))):void 0}catch(c){t&&t(c);return}};return a.useEffect(()=>{o()},[e]),{representativeItems:r,onRefresh:o,onAdd:i,onRemove:f}};function An(){return C.storage.listStorage().then(t=>({id:t.data.storage[0].id,uri:t.data.storage[0].method[0].uri}))}function Rn(e){return C.library.createLibrary({itemListDocument:{item:[...e.item.map(({id:t})=>({id:t}))]}})}function Pn(e,t,r){const{fileName:n="output",outputFormat:s="csv"}=r,{uri:o}=t,{data:{uri:[u]=[]}={}}=e,f=encodeURIComponent((()=>{if(o.includes("s3")){const[l,c]=o.split("?region");return`${l}${n}.${s}?region${c}`}return`${o}${n}.${s}`})());return C.library.getLibraryBatch({libraryId:u,queryParams:{destinationUri:f,...r}})}const bn=["FINISHED","FINISHED_WARNING"],Gn=["FINISHED","FINISHED_WARNING","FAILED_TOTAL","ABORTED"];function ke(e,t,r,n){const{data:{jobId:s}={}}=e,{id:o}=t,{fileName:u="output",outputFormat:i="csv"}=r,f=`${u}.${i}`;C.job.getJob({jobId:s}).then(({data:{status:l}={}}={})=>{if(bn.includes(l))try{C.file.listFileStorage({storageId:o,queryParams:{path:f,methodMetadata:[{key:"format",value:"SIGNED-AUTO"},{key:"contentDisposition",value:`attachment;+filename=${f}`}],"noauth-url":!0}}).then(c=>window.open(c.data.file[0].uri[0]))}catch(c){console.error(`Download error:
1
+ (function(g,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("react"),require("@vidispine/vdt-api"),require("@vidispine/vdt-js"),require("lz-string"),require("use-deep-compare-effect"),require("lodash.debounce"),require("react/jsx-runtime"),require("react-cookie"),require("react-is")):typeof define=="function"&&define.amd?define(["exports","react","@vidispine/vdt-api","@vidispine/vdt-js","lz-string","use-deep-compare-effect","lodash.debounce","react/jsx-runtime","react-cookie","react-is"],a):(g=typeof globalThis<"u"?globalThis:g||self,a(g["@vidispine/vdt-react"]={},g.react,g.vdtApi,g.vdtJs,g.lzString,g.useDeepCompareEffect,g._debounce,g.jsxRuntime,g.reactCookie,g.reactIs))})(this,function(g,a,C,z,ve,Q,Ne,V,_e,Ie){"use strict";const lt=({hasLoaded:e=!1,isLoading:t=!0,isError:r=!1,response:n=void 0,data:s=void 0}={},o=void 0)=>({isLoading:t,hasLoaded:e,isError:r,response:n,data:o&&o.current?o.current:s}),ft=(e,t)=>{switch(t.type){case"START":return{...e,isLoading:!0,isError:!1};case"SUCCESS":{const{responseType:r}=t.response,n={isLoading:!1,isError:!1,hasLoaded:!0,response:t.response,data:t.response.data};return r&&(n[r]=t.response[r]),n}case"ERROR":return{isLoading:!1,isError:!0,hasLoaded:!0,response:t.response,data:t.response.data};case"CANCEL":return{...e,isLoading:!1,isError:!1,hasLoaded:!0};case"RESET":return{...t.initialState};default:return e}};function x(e,t,r){const n=a.useRef(()=>null),s=lt(t,r),o=a.useRef(s),[u,i]=a.useReducer(ft,s),f=a.useCallback(E=>(i({type:"START"}),new Promise((m,d)=>{e({cancelToken:new C.utils.CancelToken(p=>{n.current=p}),...E}).then(p=>{m(p),i({type:"SUCCESS",response:p}),r&&(r.current=p.data)}).catch(p=>{p.__CANCEL__?i({type:"CANCEL"}):(d(p),i({type:"ERROR",response:p}))})})),[e,r]),l=a.useCallback(()=>i({type:"RESET",initialState:o.current}),[]),c=a.useCallback(()=>n.current(),[]);return a.useEffect(()=>()=>{c(),l()},[c,l]),{request:f,reset:l,cancel:c,...u}}const k={CHANGE_PAGE:"CHANGE_PAGE",CHANGE_ROWS:"CHANGE_ROWS",CHANGE_SORT:"CHANGE_SORT",CHANGE_SEARCHTEXT:"CHANGE_SEARCHTEXT",CHANGE_SEARCHFIELD:"CHANGE_SEARCHFIELD",CHANGE_SEARCHFIELDFACET:"CHANGE_SEARCHFIELDFACET",CHANGE_SEARCHFILTER:"CHANGE_SEARCHFILTER",CHANGE_SEARCHFILTERFACET:"CHANGE_SEARCHFILTERFACET",CHANGE_PARENT_COLLECTION:"CHANGE_PARENT_COLLECTION",CHANGE_FACET:"CHANGE_FACET",CHANGE_ITEMSEARCHDOCUMENT:"CHANGE_ITEMSEARCHDOCUMENT",CHANGE_QUERYPARAMS:"CHANGE_QUERYPARAMS",CHANGE_MATRIXPARAMS:"CHANGE_MATRIXPARAMS",CHANGE_SUGGESTION:"CHANGE_SUGGESTION"},dt=({queryParams:e={},matrixParams:t={},itemSearchDocument:r={},rowsPerPage:n=10,page:s=0,...o}={})=>({...o,queryParams:{content:"metadata",interval:"generic",...e},matrixParams:{first:s*n+1,number:n,...t},itemSearchDocument:{intervals:"generic",filter:[],...r},rowsPerPage:n,page:s}),mt=(e,t)=>{switch(t.type){case k.CHANGE_ITEMSEARCHDOCUMENT:return{...e,page:Number.isInteger(t.page)?t.page:e.page,itemSearchDocument:t.itemSearchDocument,matrixParams:{...e.matrixParams,first:Number.isInteger(t.page)?t.page*e.rowsPerPage+1:e.matrixParams.first}};case k.CHANGE_QUERYPARAMS:return{...e,queryParams:t.queryParams};case k.CHANGE_MATRIXPARAMS:return{...e,matrixParams:t.matrixParams};case k.CHANGE_PAGE:return{...e,page:t.page,matrixParams:{...e.matrixParams,first:t.page*e.rowsPerPage+1}};case k.CHANGE_ROWS:return{...e,rowsPerPage:t.rowsPerPage,page:0,matrixParams:{...e.matrixParams,first:1,number:t.rowsPerPage}};case k.CHANGE_SORT:return{...e,page:0,searchText:t.value,sort:t.value,itemSearchDocument:{...e.itemSearchDocument,sort:t.field?[{field:t.field,order:t.order||"descending"}]:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SEARCHTEXT:return{...e,page:0,searchText:t.value,itemSearchDocument:t.value?{...e.itemSearchDocument,text:[{value:`${t.value}`}]}:{...e.itemSearchDocument,text:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SEARCHFIELD:return{...e,page:0,field:t.field,itemSearchDocument:t.field?{...e.itemSearchDocument,field:t.field}:{...e.itemSearchDocument,field:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SEARCHFIELDFACET:return{...e,page:0,field:t.field,facet:t.facet,itemSearchDocument:t.field?{...e.itemSearchDocument,field:t.field,facet:t.facet}:{...e.itemSearchDocument,field:[],facet:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SEARCHFILTER:return{...e,page:0,filter:t.filter,itemSearchDocument:t.filter?{...e.itemSearchDocument,filter:t.filter}:{...e.itemSearchDocument,filter:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SEARCHFILTERFACET:return{...e,page:0,filter:t.filter,itemSearchDocument:t.filter?{...e.itemSearchDocument,filter:t.filter,facet:t.facet}:{...e.itemSearchDocument,filter:[],facet:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_FACET:return{...e,page:0,facet:t.facet,itemSearchDocument:t.facet?{...e.itemSearchDocument,facet:t.facet}:{...e.itemSearchDocument,facet:[]},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_PARENT_COLLECTION:return{...e,page:0,parentCollection:t.value,itemSearchDocument:t.value?{...e.itemSearchDocument,operator:{field:[{name:"__parent_collection",value:[{value:`${t.value}`}]},{name:"__collection",value:[{value:`${t.value}`}]}],operation:"OR"}}:{...e.itemSearchDocument,operator:void 0},matrixParams:{...e.matrixParams,first:1}};case k.CHANGE_SUGGESTION:return{...e,itemSearchDocument:{...e.itemSearchDocument,suggestion:t.suggestion}};default:return e}};function He(e){const t=dt(e),[r,n]=a.useReducer(mt,t),s=({target:{value:y}}={})=>n({type:k.CHANGE_ROWS,rowsPerPage:y}),o=({page:y})=>n({type:k.CHANGE_PAGE,page:y}),u=(y,A,b)=>n({type:k.CHANGE_SORT,field:A,order:b}),i=a.useCallback(y=>n({type:k.CHANGE_SEARCHTEXT,value:y}),[]),f=a.useCallback((y,A)=>n({type:k.CHANGE_ITEMSEARCHDOCUMENT,itemSearchDocument:y,page:A}),[]),l=a.useCallback(y=>n({type:k.CHANGE_QUERYPARAMS,queryParams:y}),[]),c=a.useCallback(y=>n({type:k.CHANGE_MATRIXPARAMS,matrixParams:y}),[]),E=a.useCallback(y=>n({type:k.CHANGE_SEARCHFIELD,field:y}),[]),m=a.useCallback(y=>{const A=y.map(({name:b})=>({field:b,count:!0}));n({type:k.CHANGE_SEARCHFIELDFACET,field:y,facet:A})},[]),d=a.useCallback(y=>n({type:k.CHANGE_SEARCHFILTER,filter:y}),[]),p=a.useCallback(y=>{const b=y.reduce((v,{field:R=[]})=>v.concat(R),[]).map(({name:v})=>({name:v,field:v,count:!0,exclude:[v]}));n({type:k.CHANGE_SEARCHFILTERFACET,filter:y,facet:b})},[n]),h=a.useCallback(y=>{n({type:k.CHANGE_FACET,facet:y})},[n]),T=a.useCallback(y=>n({type:k.CHANGE_PARENT_COLLECTION,value:y}),[]),P=a.useCallback(y=>{n({type:k.CHANGE_SUGGESTION,suggestion:y})},[]);return{state:r,onChangeRowsPerPage:s,onChangePage:o,onChangeSort:u,setSearchText:i,setSearchField:E,setSearchFieldFacet:m,setSearchFilter:d,setSearchFilterFacet:p,setFacet:h,setItemSearchDocument:f,setQueryParams:l,setMatrixParams:c,setParentCollection:T,setSuggestion:P}}function ae(e,t){const r=a.useRef(!1);a.useEffect(()=>{r.current?e():r.current=!0},t)}const ht=({field:e=void 0,text:t="",maximumSuggestions:r=10}={})=>({field:e,text:t,maximumSuggestions:r});function Et(e){const t=ht(e),[r,n]=a.useState(t),s=a.useCallback((l,c="")=>{n(E=>({...E,field:l,text:c}))},[]),o=a.useCallback(l=>{n(c=>({...c,text:l}))},[]),u=a.useCallback(l=>{n(c=>({...c,maximumSuggestions:l}))},[]),{request:i,data:{suggestion:f=[]}={}}=x(C.search.searchAutoComplete);return ae(()=>{i({autocompleteRequestDocument:r})},[r]),{suggestions:f,setAutocompleteField:s,setAutocompleteText:o,setAutocompleteMaxSuggestions:u}}const pt=({field:e=void 0,text:t="",maximumSuggestions:r=10}={})=>({field:e,text:t,maximumSuggestions:r});function Ct(e){const t=pt(e),[r,n]=a.useState(t),[s,o]=a.useState("NESTED"),u=a.useCallback((m="NESTED")=>{o(m)},[]),i=a.useCallback((m,d="")=>{n(p=>({...p,field:m,text:d}))},[]),f=a.useCallback(m=>{n(d=>({...d,text:m}))},[]),l=a.useCallback(m=>{n(d=>({...d,maximumSuggestions:m}))},[]),{request:c,data:{suggestion:E=[]}={}}=x(C.search.searchAutoComplete);return ae(()=>{c({autocompleteRequestDocument:r,path:`/API/search2/autocomplete?searchLang=${s}`})},[r,s]),{suggestions:E,setAutocompleteField:i,setAutocompleteText:f,setAutocompleteMaxSuggestions:l,setAutocompleteLanguage:u}}const gt=(e="id",t=[])=>{const[r,n]=a.useState(t);return{selected:r,onSelect:(i,f,l)=>{const c=l[e],E=r.findIndex(m=>m[e]===c);if(E===-1&&f===!0)f===!0&&n([...r,l]);else if(E>-1&&f===!1){const m=[...r];m.splice(E,1),n(m)}},onClear:()=>n([]),isSelected:i=>{const f=i[e];return r.findIndex(c=>c[e]===f)>-1}}},St=e=>{const[t,r]=a.useState(e);return{activeTab:t,changeTab:(s,o)=>r(o)}};function yt(e,t){const r=a.useRef();a.useEffect(()=>{r.current=e},[e]),a.useEffect(()=>{const s=setInterval(()=>r.current(),t);return()=>clearInterval(s)},[t])}function Tt(e=[]){const t=a.useRef(),r=a.useMemo(()=>Math.floor(e.length/2),[e]),[n,s]=a.useState(),o=a.useRef(n);if(a.useEffect(()=>()=>t.current&&clearInterval(t.current),[]),e.length===0)return{width:0};o.current=n;const u=()=>{const E=()=>{o.current===void 0?s(0):o.current===e.length-1?clearInterval(t.current):s(o.current+1)};t.current=setInterval(E,500)},i=()=>{s(),clearInterval(t.current)},f=e[n===void 0?r:n],l=n===void 0?0:`${Math.floor(n/(e.length-1)*100)}%`;return{imageSrc:f,onMouseEnter:u,onMouseLeave:i,width:l}}const Y={CHANGE_PAGE:"CHANGE_PAGE",CHANGE_ROWS:"CHANGE_ROWS",CHANGE_SORT:"CHANGE_SORT",CHANGE_TYPE:"CHANGE_TYPE",CHANGE_STATE:"CHANGE_STATE",CHANGE_PRIORITY:"CHANGE_PRIORITY",CHANGE_STARTTIME:"CHANGE_STARTTIME",CHANGE_FINISHTIME:"CHANGE_FINISHTIME"},At=({queryParams:e={},matrixParams:t={}}={})=>({queryParams:e,matrixParams:{first:1,number:10,...t},rowsPerPage:10,page:0,jobMetadata:[]}),Rt=(e,t)=>{const{type:r,...n}=t;switch(r){case Y.CHANGE_PAGE:{const{page:s=0}=t,{rowsPerPage:o=10}=e;return{...e,page:s,matrixParams:{...e.matrixParams,first:s*o+1}}}case Y.CHANGE_ROWS:{const{rowsPerPage:s}=t;return{...e,rowsPerPage:s,page:0,matrixParams:{...e.matrixParams,first:1,number:s}}}case Y.CHANGE_SORT:{const{field:s,order:o="desc"}=t;return{...e,page:0,matrixParams:{...e.matrixParams,first:1,sort:`${s} ${o}`}}}case Y.CHANGE_TYPE:case Y.CHANGE_STATE:case Y.CHANGE_PRIORITY:{const{field:s,value:o=[]}=n;let u;if(o)u={...e.matrixParams,first:1,[s]:Array.isArray(o)?o.join(","):o};else{const{[s]:i,...f}=e.matrixParams;u={...f,first:1}}return{...e,page:0,matrixParams:u}}case Y.CHANGE_STARTTIME:case Y.CHANGE_FINISHTIME:{const{field:s,value:o=[]}=n;let u;if(o)u={...e.queryParams,first:1,[s]:o};else{const{[s]:i,...f}=e.queryParams;u={...f,first:1}}return{...e,page:0,queryParams:u}}case Y.CHANGE_JOBMETADATA:{const{field:s,value:o=[]}=n;let u;if(o.length)u={...e.queryParams,first:1,[s]:o};else{const{[s]:i,...f}=e.queryParams;u={...f,first:1}}return{...e,page:0,queryParams:u,jobMetadata:o}}default:return e}};function Pt(e){const t=At(e),[r,n]=a.useReducer(Rt,t);return{state:r,onChangePage:({page:d})=>n({type:Y.CHANGE_PAGE,page:d}),onChangeSort:(d,p,h)=>{const T=typeof p=="object"?p.value:p;n({type:Y.CHANGE_SORT,field:T,order:h})},onChangeType:({field:d=[]})=>{const[{name:p="type",value:h=[]}]=d;n({type:Y.CHANGE_TYPE,field:p,value:h.length?h[0].value:null})},onChangeState:({field:d=[]})=>{const[{name:p="state",value:h=[]}]=d;n({type:Y.CHANGE_STATE,field:p,value:h.length?h[0].value:null})},onChangePriority:({field:d=[]})=>{const[{name:p="priority",value:h=[]}]=d;n({type:Y.CHANGE_PRIORITY,field:p,value:h.length?h[0].value:null})},onChangeStarttime:({field:d=[]})=>{const[{name:p="starttime-from",value:h=[]}]=d;n({type:Y.CHANGE_STARTTIME,field:p,value:h.length?h[0].value:null})},onChangeFinishtime:({field:d=[]})=>{const[{name:p="finishtime-from",value:h=[]}]=d;n({type:Y.CHANGE_FINISHTIME,field:p,value:h.length?h[0].value:null})},onChangeRowsPerPage:({target:{value:d}}={})=>n({type:Y.CHANGE_ROWS,rowsPerPage:d}),onChangeJobmetadata:d=>{n({type:Y.CHANGE_JOBMETADATA,field:"jobmetadata",value:d})}}}const bt=(e,t)=>{const[r,n]=a.useState(JSON.parse(window.localStorage.getItem(e)||JSON.stringify(t)));return a.useEffect(()=>{window.localStorage.setItem(e,JSON.stringify(r))},[e,r]),[r,n,()=>JSON.parse(window.localStorage.getItem(e))]};function we(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16))}function Gt(e){return ve.compressToEncodedURIComponent(e)}function vt(e){return e.slice(-1)==="="?decodeURIComponent(atob(e).split("").map(t=>`%${`00${t.charCodeAt(0).toString(16)}`.slice(-2)}`).join("")):ve.decompressFromEncodedURIComponent(e)}const Nt=["__mp3_160k"],_t=["__mp4"],It=["__png"],Ht="audio",wt="video",Dt="image",Ot=["application/mxf"],Mt=[],Lt=[],Ut=e=>{if(!e||!e.type)return[];const t=e.type.toLowerCase();return t.startsWith(Ht)||Lt.includes(t)?Nt:t.startsWith(wt)||Ot.includes(t)?_t:t.startsWith(Dt)||Mt.includes(t)?It:[]},Ft=(e,t={})=>new Promise((r,n)=>{const s=new C.ChunkedTransferManager,o=new C.ChunkedUpload(e,{onFail:u=>n(u),onComplete:u=>r(u),...t});s.addChunkedUpload(o),s.upload()}),kt=({file:e,collectionId:t,onProgress:r,metadata:n={},placeholderParams:s={},importParams:o={},chunkedUploadProps:u={},generateTransferId:i=we,getShapeTags:f=Ut})=>new Promise((l,c)=>{try{let E;r({});const m=f(e),d=e.name,p=e.type,[h]=p.split("/"),T={originalFilename:d,mimeType:p,mediaType:h,...n},P=z.createMetadataType(T);C.vsimport.createImportPlaceholder({metadataDocument:P,queryParams:{container:1,...s}}).then(({data:y})=>{if(E=y.id,!t)return Promise.resolve();const A=Array.isArray(t)?t:[t];return Promise.all(A.map(b=>C.collection.addCollectionEntity({collectionId:b,entityId:E})))}).then(()=>{const y=i(),A={filename:d,transferId:y,tag:m,...o};return Ft(e,{api:{method:C.vsimport.createImportComponentRaw,props:{itemId:E,component:"container",queryParams:A}},onProgress:r,...u})}).then(y=>{l({...y,itemId:E,collectionId:t})}).catch(y=>c(y))}catch(E){console.error(E),c(E)}});function qt({onUploadFile:e=kt,initialMetadata:t={},...r}){const[n,s]=a.useState([]);a.useEffect(()=>()=>{n.forEach(m=>URL.revokeObjectURL(m.preview))},[n]);const o=a.useCallback((m=[])=>{const d=m.map(p=>({file:p,metadata:{title:p.name,...t}}));s(p=>d.concat(p))},[t]),u=a.useCallback((m,d={})=>{s(p=>{const h=p[m],{metadata:T,progress:P}=d,{metadata:y={},progress:A={}}=h,b=[...p],v={...h};return T&&(v.metadata={...y,...T}),P&&(v.progress={...A,...P}),b[m]=v,b})},[s]),i=a.useCallback(m=>(d={})=>{u(m,{progress:d})},[u]),f=a.useCallback(m=>(d={})=>{u(m,{metadata:d})},[u]),l=a.useCallback(m=>n.reduce((d,p,h)=>d.then(T=>p.progress?d:e({file:p.file,onProgress:i(h),metadata:p.metadata,...m,...r}).then(P=>[...T,P])),Promise.resolve([])),[n,e,i,r]),c=a.useCallback(m=>()=>{s([...n].filter((d,p)=>p!==m))},[s,n]),E=a.useCallback(m=>()=>{s([...n].filter((d,p)=>!m.includes(p)))},[s,n]);return{onAddFiles:o,onChangeFile:u,onChangeMetadata:f,onUpload:l,onRemoveFile:c,onRemoveFiles:E,files:n,setFiles:s}}function $t({history:e,navigate:t,location:r,queryName:n="q",defaultState:s=void 0}){const o=a.useRef(s);return{queryInitialState:a.useMemo(()=>{const{location:i=r}=e||{},l=new URLSearchParams(i.search).get(n);if(!l)return o.current;try{const c=vt(l);return JSON.parse(c)}catch{e?e.replace({pathName:e.location.pathName,search:""}):t&&t(i.pathName,{replace:!0})}},[e,t,r,n])}}function xt({history:e,navigate:t,location:r,state:n,queryName:s="q"}){const o=a.useCallback(()=>{const{location:u=r}=e||{},i=Gt(JSON.stringify(n));e?e.replace({pathName:u.pathName,search:`?${s}=${i}`}):t&&t(`${u.pathName}?${s}=${i}`,{replace:!0})},[e,t,r,s,n]);ae(()=>{o(n)},[o,n])}const jt=({entityId:e,entityType:t})=>{const{request:r,data:n={},isLoading:s}=x(C.access.listEntityAccess),o=a.useCallback((f={})=>r({entityId:e,entityType:t,...f}),[e,t]),u=a.useCallback(({accessId:f,...l})=>C.access.removeEntityAccess({accessId:f,entityId:e,entityType:t,...l}),[e,t]),i=a.useCallback(({accessControlDocument:f,...l})=>C.access.createEntityAccess({entityType:t,entityId:e,accessControlDocument:f,...l}),[e,t]);return{accessControlList:n,isLoading:s,onList:o,onRemove:u,onAdd:i}},De=({data:e=[]}={},t=void 0)=>{if(!t)return;const{value:r}=e.find(n=>n.key===t)||{};return r},Wt=(e,t)=>Object.assign({},...t.map(r=>({[r]:De(e,r)}))),Vt=({values:{field:e}={}}={})=>e?e.map(t=>({value:t.value,label:t.key||t.value})):void 0,Yt=e=>{const r=new DOMParser().parseFromString(e,"application/xml").getElementsByTagName("field");if(!r.length)return;const n={field:[]};for(let s=0;s<r.length;s+=1){const[o,u]=r[s].childNodes;n.field.push({[o.nodeName]:o.firstChild.nodeValue,[u.nodeName]:u.firstChild.nodeValue})}return n},Bt=({fields:e,groups:t,getDataAttributes:r=Wt,fieldDataToInclude:n="label,displayType,required",groupDataToInclude:s="label,order",fieldQueryParams:o={},groupQueryParams:u={},getAttributes:i=!0})=>{const[f,l]=a.useState(!1),[c,E]=a.useState(e),[m,d]=a.useState(t);return Q(()=>{let p=!1;if(i===!1)return()=>{p=!0};const h=(y=[],A={})=>y.map(({name:b,...v})=>{const R=A[b]||{},{label:N,...I}=r(R,n.split(","));return{name:b,label:N||b,type:R.type,constraint:R.constraint,options:Vt(R),...I,...v}}),T=(y=[],A={},b={})=>y.map(({name:v,field:R,group:N,...I})=>{const H=A[v]||{},j=R||H&&H.field,W=N||H&&H.group,{label:B,...K}=r(H,s.split(","));return{name:v,label:B||v,order:De(H,"order"),fields:h(j,b),groups:T(W,A,b),...K,...I}});async function P(){l(!0);const y={},A={};let b=[];if(e){const R={...o,data:n};b=e.map(async({name:N})=>{try{const{data:I}=await C.metadatafield.getMetadataField({fieldName:N,queryParams:R});y[N]=I}catch{console.warn(`Could not retrieve attributes for ${N}`)}})}let v=[];if(t){const R=[...t],N={...u,data:s};v=R.map(async({name:I})=>{try{const{data:H}=await C.fieldgroup.getFieldGroup({groupName:I,queryParams:N}),{field:j=[],group:W=[]}=H;j.forEach(B=>{const K=B.data&&B.data.find(Z=>Z.key==="__values");if(K){const Z=Yt(K.value);y[B.name]={...B,values:Z}}}),W.forEach(B=>{R.push(B)}),A[I]=H}catch{console.warn(`Could not retrieve attributes for ${I}`)}})}await Promise.all([...b,...v]),p||(Object.values(y).some(R=>R)&&E(()=>h(e,y)),Object.values(A).some(R=>R)&&d(()=>{const R=T(t,A,y);return R.forEach(N=>{const{order:I}=N;I&&N.fields.sort((H,j)=>I.indexOf(H.name)-I.indexOf(j.name))}),R}),l(!1))}return P(),()=>{p=!0}},[e,t,n,s,o,u,i]),{fieldsWithAttributes:c,groupsWithAttributes:m,isLoading:f}},Qt="TRANSIENT";function Xt({metadata:e,markerField:t,markerValue:r,itemSearchDocument:n}){return C.item.searchItem({queryParams:{result:"library",updateMode:Qt},itemSearchDocument:n}).then(({data:{library:s}})=>C.collection.createCollection({collectionDocument:{metadata:t?z.createMetadataType({[t]:r||s,...e}):e,content:[{id:s,type:"library"}]}}))}const Oe=({collectionId:e})=>new Promise((t,r)=>{C.collection.getCollection({collectionId:e,queryParams:{children:"library"}}).then(({data:n})=>{const{content:s=[]}=n,[o]=s;o||r(new Error("No Libraries")),t(o)})}),Jt=({collectionId:e})=>Oe({collectionId:e}).then(({id:t})=>Promise.all([C.library.removeLibrary({libraryId:t}),C.collection.removeCollection({collectionId:e})]));function zt({libraryId:e}){return new Promise(t=>{C.library.getLibrarySettings({libraryId:e}).then(({data:{query:r}})=>{t(r)})})}const Kt=({collectionId:e})=>new Promise(t=>{Oe({collectionId:e}).then(({id:r})=>zt({libraryId:r})).then(t)});function Zt({markerField:e,markerValue:t,initialSearchState:r,onSaveSearch:n=Xt,onDeleteSearch:s=Jt,onUpdateSearchMetadata:o=C.collection.updateCollectionMetadata,onGetSavedSearchSettings:u=Kt}){const i=a.useCallback(({metadata:m,itemSearchDocument:d})=>n({metadata:m,markerField:e,markerValue:t,itemSearchDocument:d}),[e,t,n]),f=(m={})=>({...m,operator:{field:[{name:e,value:[{value:t||"*"}]}],operator:m.operator?[m.operator]:[],operation:"AND"}}),l=He({...r,itemSearchDocument:f()}),{setItemSearchDocument:c,...E}=l;return{onSaveSearch:i,onDeleteSearch:s,onUpdateSearchMetadata:o,onGetSavedSearchSettings:u,searchProps:{setItemSearchDocument:m=>c(f(m)),...E}}}function Me({itemSearchDocument:e,queryParams:t,matrixParams:r,path:n}){const{request:s,data:o={},isLoading:u,isError:i,cancel:f}=x(C.item.searchItem),l=n?{path:n}:{},c=()=>s({itemSearchDocument:e,queryParams:t,matrixParams:r,...l});return Q(()=>{c()},[e,t,r,n]),{itemListType:o,isLoading:u,isError:i,onRefresh:c,cancel:f}}const en=()=>{const[e,t]=a.useState({x:0,y:0});return a.useEffect(()=>{const r=n=>t({x:n.clientX,y:n.clientY});return window.addEventListener("mousedown",r),()=>{window.removeEventListener("mousedown",r)}},[]),e};function Le({collectionId:e,queryParams:t={},refreshOnMount:r=!0}){const{request:n,data:s={},isLoading:o,isError:u}=x(C.collection.getCollection),i=()=>n({collectionId:e,queryParams:t});return Q(()=>{r&&i()},[e,t]),{collectionType:s,isLoading:o,isError:u,onRefresh:i}}function tn({collectionId:e,queryParams:t={},refreshOnMount:r=!0}){const{request:n,data:s={}}=x(C.collection.getCollectionItem),o=()=>n({collectionId:e,queryParams:t});return Q(()=>{r&&o()},[e,t]),{itemListType:s,onRefresh:o}}const nn=({entityId:e,entityType:t})=>{let r,n,s;switch(t){case"collection":r="collectionType",s="collectionId",n=C.collection.getCollection;break;case"library":r="libraryType",s="libraryId",n=C.library.getLibrary;break;case"item":r="itemType",s="itemId",n=C.item.getItem;break;default:throw new Error("unknown entityType")}const{request:o,data:u,...i}=x(n),f=a.useCallback(l=>o({[s]:e,...l}),[e,s,o]);return{[r]:u,[s]:e,onGetEntity:f,...i}};function rn(e){const{data:t,request:r}=x(C.user.getUser,{data:e}),{userName:n}=t||{},s=a.useCallback(()=>r({userName:n}),[r,n]);a.useEffect(()=>{n&&s()},[s,n]);const o=a.useCallback(({userDocument:m})=>C.user.updateUser({userName:n,userDocument:m}).then(()=>r({userName:m.userName})),[r,n]),u=a.useCallback(({groups:m=[]})=>C.user.updateUserGroup({userName:n,groupListDocument:{group:m.map(d=>({groupName:d}))}}).then(s),[s,n]),i=a.useCallback(m=>C.group.removeGroupUser({groupName:m,userName:n}).then(s),[s,n]),f=a.useCallback(m=>C.user.updateUser({userName:n,userDocument:{password:m},queryParams:{passwordType:"raw"}}),[n]);return{userType:t,getUser:s,updateUser:o,updateUserGroups:u,removeUserFromGroup:i,disableUser:m=>C.user.disableUser({userName:n,...m}).then(s),enableUser:m=>C.user.enableUser({userName:n,...m}).then(s),deleteUser:({queryParams:m={}}={})=>C.user.disableUser({userName:n,queryParams:{hard:!0,...m}}),changePassword:f}}const ne={CHANGE_PAGE:"CHANGE_PAGE",CHANGE_ROWS:"CHANGE_ROWS",CHANGE_SORT:"CHANGE_SORT",CHANGE_QUERY:"CHANGE_QUERY"},sn=({queryParams:e={},rowsPerPage:t=10,page:r=0}={})=>({queryParams:{first:r*t+1,number:t,...e},rowsPerPage:t,page:r,userSearchDocument:{sort:[{field:"username",order:"ascending"}]}}),on=(e,t)=>{const{type:r}=t;switch(r){case ne.CHANGE_PAGE:{const{page:n}=t;return{...e,page:n,queryParams:{...e.queryParams,first:n*e.rowsPerPage+1}}}case ne.CHANGE_ROWS:{const{rowsPerPage:n}=t;return{...e,rowsPerPage:n,page:0,queryParams:{...e.queryParams,first:1,number:n}}}case ne.CHANGE_QUERY:return{...e,page:0,userSearchDocument:{...e.userSearchDocument,field:[{name:t.field||"username",value:t.query||""}]},queryParams:{...e.queryParams,first:1}};default:return e}};function an(e){const t=sn(e),[r,n]=a.useReducer(on,t),{data:s,request:o,hasLoaded:u,isError:i}=x(C.user.searchUser),f=()=>o({userSearchDocument:r.userSearchDocument,queryParams:r.queryParams});return a.useEffect(()=>{f()},[r.queryParams,r.userSearchDocument]),{...r,hasLoaded:u,isError:i,userListDocument:s,onSearchUser:f,onChangePage:({page:d})=>n({type:ne.CHANGE_PAGE,page:d}),onChangeSort:(d,p,h)=>{const T=typeof p=="object"?p.value:p;n({type:ne.CHANGE_SORT,field:T,order:h})},onChangeRowsPerPage:({target:{value:d}}={})=>n({type:ne.CHANGE_ROWS,rowsPerPage:d}),onChangeQuery:(d,p)=>{n({type:ne.CHANGE_QUERY,field:d,query:p})}}}const un=e=>{const{request:t,data:r={},isLoading:n}=x(C.group.listGroup),s=()=>t(e);return a.useEffect(()=>{s()},[e]),{onRefresh:s,groupListType:r,isLoading:n}},cn=e=>{const{request:t,data:r={},isLoading:n}=x(C.user.listUser),s=()=>t(e);return a.useEffect(()=>{s()},[e]),{onRefresh:s,userListType:r,isLoading:n}},ee={CHANGE_PAGE:"CHANGE_PAGE",CHANGE_ROWS:"CHANGE_ROWS",CHANGE_SORT:"CHANGE_SORT",CHANGE_QUERY:"CHANGE_QUERY",HIDE_ROLES:"HIDE_ROLES"},ln=({queryParams:e={},rowsPerPage:t=10,page:r=0}={})=>({queryParams:{first:r*t+1,number:t,...e},rowsPerPage:t,page:r,groupSearchDocument:{}}),fn=(e,t)=>{const{type:r}=t;switch(r){case ee.CHANGE_PAGE:{const{page:n}=t;return{...e,page:n,queryParams:{...e.queryParams,first:n*e.rowsPerPage+1}}}case ee.CHANGE_ROWS:{const{rowsPerPage:n}=t;return{...e,rowsPerPage:n,page:0,queryParams:{...e.queryParams,first:1,number:n}}}case ee.HIDE_ROLES:{const{hideRoles:n}=t,s=n===!0?!1:void 0;return{...e,page:0,queryParams:{...e.queryParams,first:1,role:s}}}case ee.CHANGE_QUERY:return{...e,page:0,groupSearchDocument:{...e.groupSearchDocument,field:[{name:t.field||"groupname",value:t.query||""}]},queryParams:{...e.queryParams,first:1}};default:return e}};function dn(e){const t=ln(e),[r,n]=a.useReducer(fn,t),{data:s,request:o,hasLoaded:u,isError:i}=x(C.group.searchGroup),f=()=>o({groupSearchDocument:r.groupSearchDocument,queryParams:r.queryParams});return a.useEffect(()=>{f()},[r.queryParams,r.groupSearchDocument]),{...r,hasLoaded:u,isError:i,groupListDocument:s,onSearchGroup:f,onChangePage:({page:p})=>n({type:ee.CHANGE_PAGE,page:p}),onChangeSort:(p,h,T)=>{const P=typeof h=="object"?h.value:h;n({type:ee.CHANGE_SORT,field:P,order:T})},onChangeRowsPerPage:({target:{value:p}}={})=>n({type:ee.CHANGE_ROWS,rowsPerPage:p}),onChangeQuery:(p,h)=>{n({type:ee.CHANGE_QUERY,field:p,query:h})},onHideRoles:({hideRoles:p})=>n({type:ee.HIDE_ROLES,hideRoles:p})}}function mn(e){const{data:t,request:r}=x(C.group.getGroup,{data:e}),{groupName:n}=t||{},s=a.useCallback(()=>r({groupName:n}),[r,n]);a.useEffect(()=>{n&&s()},[s,n]);const o=a.useCallback(({groupDocument:d})=>C.group.updateGroup({groupName:n,groupDocument:d}).then(s),[s,n]),u=a.useCallback(({groups:d})=>C.group.updateGroup({groupName:n,groupDocument:{childGroupList:{group:d.map(p=>({groupName:p}))}}}).then(s),[s,n]),i=a.useCallback(({groups:d})=>C.group.updateGroup({groupName:n,groupDocument:{parentGroupList:{group:d.map(p=>({groupName:p}))}}}).then(s),[s,n]),f=a.useCallback(({users:d})=>C.group.updateGroup({groupName:n,groupDocument:{userList:{user:d.map(p=>({userName:p}))}}}).then(s),[s,n]),l=a.useCallback(d=>C.group.removeGroupUser({groupName:n,userName:d}).then(s),[s,n]),c=a.useCallback(d=>C.group.removeGroupChildren({groupName:n,childGroupName:d}).then(s),[s,n]),E=a.useCallback(d=>C.group.removeGroupChildren({groupName:d,childGroupName:n}).then(s),[s,n]),m=a.useCallback(()=>C.group.removeGroup({groupName:n}),[n]);return{groupType:t,getGroup:s,updateGroup:o,removeGroup:m,addChildGroups:u,addParentGroups:i,addUsersToGroup:f,removeUserFromGroup:l,removeChildGroup:c,removeFromParentGroup:E}}function Ue({itemId:e,queryParams:t={},refreshOnMount:r=!0}){const{request:n,data:s={},isLoading:o,isError:u}=x(C.item.getItem),i=()=>n({itemId:e,queryParams:t});return Q(()=>{r&&i()},[e,t]),{itemType:s,isLoading:o,isError:u,onRefresh:i}}const hn=({collectionId:e,defaultEnabled:t=!0})=>{const[r,n]=a.useState(),[s,o]=a.useState(t),u=E=>o(m=>E!==void 0?E:!m),i=a.useRef(),f=a.useRef(),l=a.useRef(),c=a.useCallback(({itemId:E})=>{if(s===!1)return;const m={field:[{name:"mediaType",value:[{value:"video"},{value:"audio"}]}]},d=({first:p,number:h}={})=>{const{current:T}=i,{current:P}=f;if(!Array.isArray(T)){Promise.all([C.collection.getCollection({collectionId:e,queryParams:{children:"item"}}),C.collection.searchCollectionItem({collectionId:e,searchDocument:m,queryParams:{first:p,number:h}})]).then(([{data:R},{data:N}])=>{const{hits:I,item:H=[]}=N;i.current=H.map(({id:W})=>W),l.current=I;const{content:j}=R;f.current=j,d({first:1,number:100})});return}const{current:y}=l,A=P.findIndex(({id:R})=>R===E);if(A+1===P.length){n();return}if(A===-1&&y>T.length){C.collection.searchCollectionItem({collectionId:e,searchDocument:m,queryParams:{first:p+h,number:h}}).then(({data:R})=>{const{item:N=[]}=R;i.current.push(...N.map(({id:I})=>I)),d({first:p+h,number:h})});return}const v=P.slice(A+1).find(({id:R})=>T.includes(R));n(v)};d()},[e,s]);return{isAutoPlayEnabled:s,toggleAutoPlay:u,setNextPlaying:n,nextPlaying:r,onNext:c}},En=e=>{const t=[];for(let r=0;r<e.length;r+=1){const n=e[r];if(n&&typeof n=="string")try{const s=n.split("version")[1].split("/")[1].split("?")[0],o=z.formatTimeCodeText(s);t.push(o)}catch{}}return t};function pn(e=[],t=0,r=void 0,n=En){const[s,o]=a.useState(0),[u,i]=a.useState(0),[f,l]=a.useState(!1),[c,E]=a.useState([]),[m,d]=a.useState(),[p,h]=a.useState(0),T=a.useRef(Ne(R=>{i(R)},10)).current,P=R=>{try{return Math.round(R.getBoundingClientRect().left)}catch{return 0}},y=a.useCallback(R=>{const N=R.clientX-P(R.currentTarget)-t,I=R.currentTarget.offsetWidth;return N<0?0:N>I?I:N},[t]),A=(R,N)=>{let I=N[0],H=Math.abs(R-I),j=0;for(let W=0;W<N.length;W+=1){const B=Math.abs(R-N[W]),K=R-N[W]>0;B<H&&K&&(H=B,I=N[W],j=W)}return j},b=R=>{if(r){const N=y(R);o(N-1),p!==R.currentTarget.offsetWidth&&h(R.currentTarget.offsetWidth);const I=N/(R.currentTarget.offsetWidth/+r);d(z.formatTimeCodeSeconds(I));const H=A(I,c.map(j=>j.toSeconds().toFixed(0)));H!==u&&T(H)}};return Q(()=>{const R=n(e);E(R)},[e]),{thumbnailIndex:u,thumbnailTimeCode:m,thumbnailWidth:p,showScrub:f,scrubPosition:s,handleShowScrub:R=>()=>{r>0&&l(R)},onMouseMove:b}}function Cn({searchDoc:e,queryParams:t,debounceTime:r,suggestionSettings:n={maximumSuggestions:10,accuracy:1},triggerLength:s=1,apiCall:o=C.item.searchItem}){const[u,i]=a.useState(""),f=a.useRef(Ne(i,r)).current,{data:{autocomplete:l=[]}={},request:c}=x(o),{suggestion:E=[]}=l[0]||{};return Q(()=>{e&&u&&u.length>=s&&c({body:{...e,suggestion:n,autocomplete:[{text:u}],text:[{value:u}]},queryParams:{count:!1,number:0,...t}})},[c,u,t,s]),{suggestion:E,handleAutocompleteChange:f}}function gn(){const{request:e,data:{value:t=[]}={},isLoading:r}=x(C.metadatafield.getMetadataFieldAllowedValues);return{getMetadataDataset:(s,o,u)=>{s&&e({fieldName:s,metadataFieldValueConstraintListDocument:{constraint:o?[{field:u,value:o}]:[]}})},dataset:t,isLoading:r}}const Sn="TRANSIENT",Fe=e=>e.find(t=>t.name==="title").value[0].value;function yn({childFolders:e=[],queryParams:t={content:["metadata"]},markerProps:r={markerValue:"savedSearch",markerField:"eidr_referentType"},expand:n}){const[s,o]=a.useState(e),[u,i]=a.useState([]),[f,l]=a.useState(),c=a.useCallback(()=>{Promise.all(s.map(async h=>{const{data:{content:T,metadata:P={}}}=await C.collection.getCollection({collectionId:h,queryParams:t}),{field:y}=P.timespan[0];return T&&T[0].type==="library"?{id:h,libraryId:T[0].id,title:Fe(y),type:"query",metadata:P}:{id:h,title:Fe(y),subFolders:T&&T.map(A=>A.id),type:"folder",metadata:P}})).then(h=>{i(T=>[...h,...T])}).catch(h=>{l(h)})},[s,t]),E=(h,T,P,y,A)=>{C.collection.createCollection({collectionDocument:{metadata:z.createMetadataType({[T]:P,title:y})}}).then(({data:{id:b}})=>h?C.collection.updateCollection({collectionId:h,collectionDocument:{content:[{id:b,mode:"add",type:"collection"}]}}).then(({data:{content:v}})=>{v&&(o(v.filter(R=>R.id===b).map(R=>R.id)),A&&A())}).catch(v=>{l(v)}):null).catch(b=>{l(b)})},m=(h,T,P,y)=>{try{C.item.searchItem({queryParams:{result:"library",updateMode:Sn},itemSearchDocument:P}).then(({data:{library:A}})=>C.collection.createCollection({collectionDocument:{metadata:z.createMetadataType({[r.markerField]:r.markerValue,title:T}),content:[{id:A,type:"library"}]}})).then(({data:{id:A}})=>C.collection.updateCollection({collectionId:h,collectionDocument:{content:[{id:A,mode:"add",type:"collection"}]}}).then(({data:{content:b}})=>{b&&(o(b.filter(v=>v.id===A).map(v=>v.id)),y&&y())}).catch(b=>{l(b)})).catch(A=>{l(A)})}catch(A){l(A)}},d=h=>C.collection.removeCollection({collectionId:h}).catch(T=>{l(T)}),p=h=>{i(T=>T.filter(P=>P.id!==h))};return Q(()=>{s.length>0&&n&&c()},[s,n]),a.useEffect(()=>{!n&&typeof n=="boolean"&&(o(()=>u.map(h=>h.id)),i([]))},[n]),{createFolder:E,saveSearch:m,getSubFolders:c,deleteFolder:d,removeItem:p,subFolders:u,setSubFolders:i,setCurrentFolders:o,errors:f}}const Tn=({collectionId:e,onError:t})=>{const[r,n]=a.useState([]),o=async()=>{try{if(!e)throw Error("Missing collectionId");const{data:l={}}=await C.collection.getCollectionMetadata({collectionId:e,queryParams:{content:"metadata",field:"representativeItems"}}).catch(E=>{t&&t(E)}),{representativeItems:c=[]}=z.parseMetadataType(l,{flat:!0,includeValueAttributes:!0});n(()=>c)}catch(l){t&&t(l)}},u=async l=>{try{const c=z.createMetadataType({representativeItems:Array.isArray(l)?l:[l]}),E=await C.collection.updateCollectionMetadata({collectionId:e,metadataDocument:c});return o(),E}catch(c){t&&t(c);return}},i=l=>u({value:l,mode:"add"}),f=l=>{try{const c=r.filter(E=>E.value===l).map(E=>E.uuid);return c.length?u(c.map(E=>({uuid:E,mode:"remove"}))):void 0}catch(c){t&&t(c);return}};return a.useEffect(()=>{o()},[e]),{representativeItems:r,onRefresh:o,onAdd:i,onRemove:f}};function An(){return C.storage.listStorage().then(t=>({id:t.data.storage[0].id,uri:t.data.storage[0].method[0].uri}))}function Rn(e){return C.library.createLibrary({itemListDocument:{item:[...e.item.map(({id:t})=>({id:t}))]}})}function Pn(e,t,r){const{fileName:n="output",outputFormat:s="csv"}=r,{uri:o}=t,{data:{uri:[u]=[]}={}}=e,f=encodeURIComponent((()=>{if(o.includes("s3")){const[l,c]=o.split("?region");return`${l}${n}.${s}?region${c}`}return`${o}${n}.${s}`})());return C.library.getLibraryBatch({libraryId:u,queryParams:{destinationUri:f,...r}})}const bn=["FINISHED","FINISHED_WARNING"],Gn=["FINISHED","FINISHED_WARNING","FAILED_TOTAL","ABORTED"];function ke(e,t,r,n){const{data:{jobId:s}={}}=e,{id:o}=t,{fileName:u="output",outputFormat:i="csv"}=r,f=`${u}.${i}`;C.job.getJob({jobId:s}).then(({data:{status:l}={}}={})=>{if(bn.includes(l))try{C.file.listFileStorage({storageId:o,queryParams:{path:f,methodMetadata:[{key:"format",value:"SIGNED-AUTO"},{key:"contentDisposition",value:`attachment;+filename=${f}`}],"noauth-url":!0}}).then(c=>window.open(c.data.file[0].uri[0]))}catch(c){console.error(`Download error:
2
2
  ${c}`),n({message:"Download failed"})}else Gn.includes(l)?n({message:"Download failed"}):setTimeout(()=>{ke(e,t,r,n)},1e3)})}const vn=({itemListType:e,queryParams:t,onSuccess:r,onError:n=({message:f,error:l})=>console.error(`${f}
3
- ${l}`),onGetFile:s=ke,onCreateList:o=Rn,onList:u=Pn,onGetStorage:i=An})=>({onDownload:()=>i().then(l=>Promise.all([o(e).then(c=>u(c,l,t)).then(r()).then(c=>s(c,l,t,n))]))});function Nn(e,t,r,n,s,o,u,i){const f=r[0].fields.map(d=>d),[l,c]=a.useState(n),E=(d,p,h,T)=>{const{value:P}=d.target,A=n.map(b=>b).map((b,v)=>h===v?{...p,[T]:P}:b);s(A),c(A)},m=async(d,p)=>{const h=z.createMetadataType(d),{timespan:T}=h,P=[];T.forEach((v,R)=>{const N={field:[],name:"V3_sport_Team",mode:"add"};v.field.forEach(I=>{N.field.push(I)}),p.includes(R)&&P.push(N)});const y={timespan:[{start:"-INF",end:"+INF",field:[],group:P}]},A=[...new Set(p)],b=[];A.forEach(v=>{const R=t.itemType.metadata.timespan[0].group.find((N,I)=>v===I);b.push(R.uuid)});try{await b.forEach(v=>setTimeout(C.metadata.removeMetadata({metadataUuid:v}),500)),await C.item.updateItemMetadata({itemId:e,metadataDocument:y}),await o(),s(l),u()}catch(v){i(v)}};return Q(()=>{s(t.group)},[t]),{tableColumns:f,onChange:E,onSubmit:m}}function qe({entity:e,entityId:t,queryParams:r={},refreshOnMount:n=!0}){const{request:s,data:o={},isLoading:u,isError:i}=x(C.metadata.getEntityMetadata),f=()=>s({entity:e,entityId:t,queryParams:r});return Q(()=>{n&&f()},[e,t,r]),{metadataType:o,isLoading:u,isError:i,onRefresh:f}}function $e({groupName:e,queryParams:t={},refreshOnMount:r=!0}){const{request:n,data:s={},isLoading:o,isError:u}=x(C.fieldgroup.getFieldGroup),i=()=>n({groupName:e,queryParams:t});return Q(()=>{r&&i()},[e,t]),{metadataFieldGroupType:s,isLoading:o,isError:u,onRefresh:i}}function _n({itemType:e,collectionType:t,metadataType:r,joinValue:n=",",flat:s=!0,groupAsList:o=!0,children:u,...i}){let f=r;if(e||t){const m=e||t||{};f=m==null?void 0:m.metadata}const l=a.useMemo(()=>z.parseMetadataType(f,{joinValue:n,flat:s,groupAsList:o}),[s,o,n,f]),c={...i,...l,itemType:e},E=m=>a.cloneElement(m,c);return a.Children.map(u,E)}function In({itemSearchDocument:e,queryParams:t,matrixParams:r,responseRef:n,initialState:s,children:o}){const{request:u,data:i={},isLoading:f,isError:l}=x(C.collection.searchCollection,s,n),c=()=>u({itemSearchDocument:e,queryParams:t,matrixParams:r});Q(()=>{c()},[e,t,r]);const E={itemSearchDocument:e,matrixParams:r,queryParams:t,collectionListType:i,onRefresh:c,isLoading:f,isError:l},m=d=>a.cloneElement(d,E);return a.Children.map(o,m)}function Hn({itemSearchDocument:e,queryParams:t,matrixParams:r,children:n}){const{itemListType:s,onRefresh:o,isLoading:u,isError:i}=Me({itemSearchDocument:e,queryParams:t,matrixParams:r}),f={itemSearchDocument:e,matrixParams:r,queryParams:t,itemListType:s,onRefresh:o,isLoading:u,isError:i},l=c=>a.cloneElement(c,f);return a.Children.map(n,l)}function wn({itemSearchDocument:e,queryParams:t,matrixParams:r,children:n}){const{request:s,data:o={},isLoading:u,isError:i}=x(C.search.searchItemCollection),f=()=>s({itemSearchDocument:e,queryParams:t,matrixParams:r});Q(()=>{f()},[e,t,r]);const l={itemSearchDocument:e,matrixParams:r,queryParams:t,searchResultType:o,onRefresh:f,isLoading:u,isError:i},c=E=>a.cloneElement(E,l);return a.Children.map(n,c)}function Dn({itemId:e,queryParams:t,refreshOnMount:r,children:n}){const{itemType:s,onRefresh:o,isLoading:u,isError:i}=Ue({itemId:e,queryParams:t,refreshOnMount:r}),f={itemId:e,queryParams:t,itemType:s,onRefresh:o,isLoading:u,isError:i},l=c=>a.cloneElement(c,f);return a.Children.map(n,l)}function On({collectionId:e,queryParams:t,refreshOnMount:r,children:n}){const{collectionType:s,onRefresh:o,isLoading:u,isError:i}=Le({collectionId:e,queryParams:t,refreshOnMount:r}),f={collectionId:e,queryParams:t,collectionType:s,onRefresh:o,isLoading:u,isError:i},l=c=>a.cloneElement(c,f);return a.Children.map(n,l)}function Mn({matrixParams:e,queryParams:t,children:r}){const{request:n,data:s={},isLoading:o,isError:u}=x(C.job.listJob),i=()=>n({matrixParams:e,queryParams:t});Q(()=>{i()},[e,t]);const f={matrixParams:e,queryParams:t,onRefresh:i,isLoading:o,isError:u,jobs:s},l=c=>a.cloneElement(c,f);return a.Children.map(r,l)}function Ln({entityId:e,entityType:t,queryParams:r,children:n}){const{request:s,data:o={},isLoading:u}=x(C.access.listEntityAccess),i=()=>s({entityId:e,entityType:t,queryParams:r});a.useEffect(()=>{i()},[e,t,r]);const f={entityId:e,entityType:t,queryParams:r,accessControlList:o,onRefresh:i,isLoading:u},l=c=>a.cloneElement(c,f);return a.Children.map(n,l)}class he extends a.Component{constructor(t){super(t);const{serverUrl:r,token:n,username:s,password:o,runAs:u}=t;r&&(C.utils.defaultClient.defaults.baseURL=r),n?C.utils.defaultClient.defaults.headers.Authorization=`token ${n}`:C.utils.defaultClient.defaults.auth={username:s,password:o},u&&(C.utils.defaultClient.defaults.headers.RunAs=u)}componentDidUpdate(t){const{serverUrl:r,token:n,username:s,password:o,runAs:u}=this.props;t.serverUrl!==r&&(r?C.utils.defaultClient.defaults.baseURL=r:delete C.utils.defaultClient.defaults.baseURL),t.token!==n&&(n?C.utils.defaultClient.defaults.headers.Authorization=`token ${n}`:delete C.utils.defaultClient.defaults.headers.Authorization),!n&&(t.username!==s||t.password!==o)&&(C.utils.defaultClient.defaults.auth={username:s,password:o}),t.runAs!==u&&(u?C.utils.defaultClient.defaults.headers.RunAs=u:delete C.utils.defaultClient.defaults.headers.RunAs)}render(){const{children:t,username:r,serverUrl:n}=this.props,s={username:r,serverUrl:n},o=u=>a.cloneElement(u,s);return a.Children.map(t,o)}}const ue="VIDISPINE-TOKEN",ie="VIDISPINE-USERNAME",ce="VIDISPINE-SERVER-URL",le="VIDISPINE-REMEMBER-ME",Un=({userName:e,password:t,serverUrl:r})=>{r&&(C.utils.defaultClient.defaults.baseURL=r);const n={seconds:2592e3,autoRefresh:"true"},s={password:t,username:e};try{C.user.getToken({queryParams:n,headers:s}).then(({data:o})=>o).catch(({response:o={},message:u="Unknown error."})=>{let i=u;throw o.status===401&&(i="Incorrect Username/Password"),i})}catch{throw"Incorrect Username/Password"}};function Fn({LoginComponent:e,LoginProps:t={},AppComponent:r,AppProps:n={},onGetToken:s=Un,onSuccess:o,onError:u,cookieOptions:i={maxAge:604800,path:"/"},...f}){const[l,c,E]=_e.useCookies([ue,ie,ce,le]),{[ue]:m,[ie]:d,[ce]:p}=l,h=l[le]==="true",T=y=>{let A;try{s(y).then(b=>{const{userName:v,serverUrl:R,rememberMe:N}=y;v&&c(ie,v,i),R&&c(ce,R,i),N&&c(le,N,i),b&&c(ue,b,i),o&&o(y)}).catch(b=>{if(A=b,u)return u(A);throw A})}catch(b){if(A=b,u)return u(A)}return A},P=()=>{E(ue,i),h||(E(ie,i),E(ce,i),E(le,i))};return m?V.jsx(he,{token:m,username:d,serverUrl:p,children:V.jsx(r,{onLogout:P,...f,...n})}):V.jsx(e,{onLogin:T,userName:d,serverUrl:p,rememberMe:h,...f,...t})}function kn({error:e,info:t}){return V.jsxs("div",{style:{height:"100%",maxHeight:"100vh",width:"100%",maxWidth:"100vw",backgroundColor:"red",color:"white"},children:[e&&V.jsx("div",{children:e.toString()}),t&&V.jsx("div",{children:t.componentStack})]})}class xe extends a.Component{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(t){return{error:t,hasError:!0}}shouldComponentUpdate(t,r){const{hasError:n,info:s}=this.state,{info:o}=r;return!(s===o&&n===!0)}componentDidCatch(t,r){const{onError:n}=this.props;if(typeof n=="function")try{n(t,r)}catch{return}this.setState({info:r})}render(){const{children:t}=this.props,{hasError:r,error:n,info:s}=this.state;return r?V.jsx(kn,{info:s,error:n}):t}}function qn({groupName:e,queryParams:t,refreshOnMount:r,children:n}){const{metadataFieldGroupType:s,onRefresh:o,isLoading:u,isError:i}=$e({groupName:e,queryParams:t,refreshOnMount:r}),f={groupName:e,queryParams:t,metadataFieldGroupType:s,onRefresh:o,isLoading:u,isError:i},l=c=>a.cloneElement(c,f);return a.Children.map(n,l)}const je=a.createContext();function $n({intialState:e={},onRefresh:t,userName:r,children:n}){const[s,o]=a.useState(e),u=()=>{if(r)C.user.getUserRole({userName:r}).then(({data:i})=>{o(i),t&&t(i)});else{let i;C.user.whoAmI().then(({data:f})=>(i=f,C.user.getUserRole({userName:f}))).then(({data:f})=>{o(f),t&&t(f,i)})}};return a.useEffect(u,[r]),V.jsx(je.Provider,{value:s,children:n})}function We(){const e=a.useContext(je);if(e===void 0)throw new Error("useRoles must be used within RolesContext");return{hasRole:r=>{if(r===void 0)throw new Error("roleName is undefined");const{group:n}=e;if(!Array.isArray(n))return null;const s=n.map(({groupName:o})=>o);return s.includes(z.ROLE_NAMES.SUPER_ACCESS_USER)?!0:Array.isArray(r)?r.findIndex(o=>s.includes(o))>-1:s.includes(r)},groupListType:e}}function xn({roleName:e,allow:t,deny:r,loading:n}){if(e===void 0)throw new Error("roleName is undefined");const{hasRole:s}=We(),o=s(e);return a.isValidElement(t)&&o===!0?t:a.isValidElement(r)&&o===!1?r:a.isValidElement(n)&&o===null?n:null}function jn({providers:e=[],children:t,...r}){return e.reduceRight((n,s)=>{if(typeof s=="function")return V.jsx(s,{...r,children:n});const{provider:o,...u}=s;return V.jsx(o,{...r,...u,children:n})},t)}function Wn({entity:e,entityId:t,queryParams:r,refreshOnMount:n,children:s}){const{metadataType:o,onRefresh:u,isLoading:i,isError:f}=qe({entity:e,entityId:t,queryParams:r,refreshOnMount:n}),l={entity:e,entityId:t,queryParams:r,metadataType:o,onRefresh:u,isLoading:i,isError:f};e==="collection"?l.collectionId=t:e==="item"&&(l.itemId=t);const c=E=>a.cloneElement(E,l);return a.Children.map(s,c)}const Vn=(e,t={})=>r=>V.jsx(xe,{...t,children:V.jsx(e,{...r})}),Yn=(...e)=>e.reduce((t,r)=>(...n)=>t(r(...n)),t=>t),Ve=a.createContext(),Bn=(e,{entityId:t,entityType:r,entityTimespan:{start:n,end:s,field:[{name:o}={}]=[]}={}})=>{const u=e.some(f=>f.entity.id===t&&f.entityType===r);let i=!1;return u&&e.filter(l=>l.entity.id===t&&l.entityType===r).forEach(({entityTimespan:{start:l,end:c,field:[{name:E}={}]=[]}={}})=>{n===l&&s===c&&o===E&&(i=!0)}),!u||!i};function Qn({onChange:e,children:t,initialState:r=[],allowDuplicates:n=!1,isUniqueBinItem:s=Bn}){const[o,u]=a.useState(r),[i,f]=a.useState(n),l=a.useCallback(h=>{if(!h||!["string","number"].includes(typeof h)){console.error("BinProvider onDelete called without a binId of the entity to delete");return}u(T=>{const P=T.filter(y=>y.binId!==h);return e&&e(P),P})},[e]),c=a.useCallback(()=>{u([]),e&&e([])},[e]),E=h=>{const[T]=we().split("-");return{binId:T,...h}},m=a.useCallback(({dragInfo:h={}}={})=>{const{entityId:T,entityType:P,entity:y}=h;if(!T||!P||!y)throw new Error("Dragged element needs to have entityId, entityType and entity props");u((A=[])=>{if(s(A,h)||i){const b=[...A,E(h)];return e&&e(b),b}return A})},[i,s,e]),d=a.useCallback(({dragId:h,hoverId:T,originalDragIndex:P})=>{h===void 0||T===void 0&&P===void 0||u(y=>{const A=[...y],b=o.findIndex(N=>N.binId===h),v=o.findIndex(N=>N.binId===T),R=v>-1?v:P;return[A[R],A[b]]=[A[b],A[R]],e&&e(A),A})},[o,e]),p=a.useMemo(()=>({setBin:u,bin:o,allowDuplicates:i,setAllowDuplicates:f,onDrop:m,onSort:d,onFind:()=>null,onEmptyBin:c,onDelete:l}),[i,o,m,d,l,c]);return V.jsx(Ve.Provider,{value:p,children:t})}function Xn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ee={exports:{}};/*
3
+ ${l}`),onGetFile:s=ke,onCreateList:o=Rn,onList:u=Pn,onGetStorage:i=An})=>({onDownload:()=>i().then(l=>Promise.all([o(e).then(c=>u(c,l,t)).then(r()).then(c=>s(c,l,t,n))]))});function Nn(e,t,r,n,s,o,u,i){const f=r[0].fields.map(d=>d),[l,c]=a.useState(n),E=(d,p,h,T)=>{const{value:P}=d.target,A=n.map(b=>b).map((b,v)=>h===v?{...p,[T]:P}:b);s(A),c(A)},m=async(d,p)=>{const h=z.createMetadataType(d),{timespan:T}=h,P=[];T.forEach((v,R)=>{const N={field:[],name:"V3_sport_Team",mode:"add"};v.field.forEach(I=>{N.field.push(I)}),p.includes(R)&&P.push(N)});const y={timespan:[{start:"-INF",end:"+INF",field:[],group:P}]},A=[...new Set(p)],b=[];A.forEach(v=>{const R=t.itemType.metadata.timespan[0].group.find((N,I)=>v===I);b.push(R.uuid)});try{await b.forEach(v=>setTimeout(C.metadata.removeMetadata({metadataUuid:v}),500)),await C.item.updateItemMetadata({itemId:e,metadataDocument:y}),await o(),s(l),u()}catch(v){i(v)}};return Q(()=>{s(t.group)},[t]),{tableColumns:f,onChange:E,onSubmit:m}}function qe({entity:e,entityId:t,queryParams:r={},refreshOnMount:n=!0}){const{request:s,data:o={},isLoading:u,isError:i}=x(C.metadata.getEntityMetadata),f=()=>s({entity:e,entityId:t,queryParams:r});return Q(()=>{n&&f()},[e,t,r]),{metadataType:o,isLoading:u,isError:i,onRefresh:f}}function $e({groupName:e,queryParams:t={},refreshOnMount:r=!0}){const{request:n,data:s={},isLoading:o,isError:u}=x(C.fieldgroup.getFieldGroup),i=()=>n({groupName:e,queryParams:t});return Q(()=>{r&&i()},[e,t]),{metadataFieldGroupType:s,isLoading:o,isError:u,onRefresh:i}}function _n({itemType:e,collectionType:t,metadataType:r,joinValue:n=",",flat:s=!0,groupAsList:o=!0,children:u,...i}){let f=r;if(e||t){const m=e||t||{};f=m==null?void 0:m.metadata}const l=a.useMemo(()=>z.parseMetadataType(f,{joinValue:n,flat:s,groupAsList:o}),[s,o,n,f]),c={...i,...l,itemType:e},E=m=>a.cloneElement(m,c);return a.Children.map(u,E)}function In({itemSearchDocument:e,queryParams:t,matrixParams:r,responseRef:n,initialState:s,children:o}){const{request:u,data:i={},isLoading:f,isError:l}=x(C.collection.searchCollection,s,n),c=()=>u({itemSearchDocument:e,queryParams:t,matrixParams:r});Q(()=>{c()},[e,t,r]);const E={itemSearchDocument:e,matrixParams:r,queryParams:t,collectionListType:i,onRefresh:c,isLoading:f,isError:l},m=d=>a.cloneElement(d,E);return a.Children.map(o,m)}function Hn({itemSearchDocument:e,queryParams:t,matrixParams:r,path:n,children:s}){const{itemListType:o,onRefresh:u,isLoading:i,isError:f}=Me({itemSearchDocument:e,queryParams:t,matrixParams:r,path:n}),l={itemSearchDocument:e,matrixParams:r,queryParams:t,itemListType:o,onRefresh:u,isLoading:i,isError:f},c=E=>a.cloneElement(E,l);return a.Children.map(s,c)}function wn({itemSearchDocument:e,queryParams:t,matrixParams:r,children:n}){const{request:s,data:o={},isLoading:u,isError:i}=x(C.search.searchItemCollection),f=()=>s({itemSearchDocument:e,queryParams:t,matrixParams:r});Q(()=>{f()},[e,t,r]);const l={itemSearchDocument:e,matrixParams:r,queryParams:t,searchResultType:o,onRefresh:f,isLoading:u,isError:i},c=E=>a.cloneElement(E,l);return a.Children.map(n,c)}function Dn({itemId:e,queryParams:t,refreshOnMount:r,children:n}){const{itemType:s,onRefresh:o,isLoading:u,isError:i}=Ue({itemId:e,queryParams:t,refreshOnMount:r}),f={itemId:e,queryParams:t,itemType:s,onRefresh:o,isLoading:u,isError:i},l=c=>a.cloneElement(c,f);return a.Children.map(n,l)}function On({collectionId:e,queryParams:t,refreshOnMount:r,children:n}){const{collectionType:s,onRefresh:o,isLoading:u,isError:i}=Le({collectionId:e,queryParams:t,refreshOnMount:r}),f={collectionId:e,queryParams:t,collectionType:s,onRefresh:o,isLoading:u,isError:i},l=c=>a.cloneElement(c,f);return a.Children.map(n,l)}function Mn({matrixParams:e,queryParams:t,children:r}){const{request:n,data:s={},isLoading:o,isError:u}=x(C.job.listJob),i=()=>n({matrixParams:e,queryParams:t});Q(()=>{i()},[e,t]);const f={matrixParams:e,queryParams:t,onRefresh:i,isLoading:o,isError:u,jobs:s},l=c=>a.cloneElement(c,f);return a.Children.map(r,l)}function Ln({entityId:e,entityType:t,queryParams:r,children:n}){const{request:s,data:o={},isLoading:u}=x(C.access.listEntityAccess),i=()=>s({entityId:e,entityType:t,queryParams:r});a.useEffect(()=>{i()},[e,t,r]);const f={entityId:e,entityType:t,queryParams:r,accessControlList:o,onRefresh:i,isLoading:u},l=c=>a.cloneElement(c,f);return a.Children.map(n,l)}class he extends a.Component{constructor(t){super(t);const{serverUrl:r,token:n,username:s,password:o,runAs:u}=t;r&&(C.utils.defaultClient.defaults.baseURL=r),n?C.utils.defaultClient.defaults.headers.Authorization=`token ${n}`:C.utils.defaultClient.defaults.auth={username:s,password:o},u&&(C.utils.defaultClient.defaults.headers.RunAs=u)}componentDidUpdate(t){const{serverUrl:r,token:n,username:s,password:o,runAs:u}=this.props;t.serverUrl!==r&&(r?C.utils.defaultClient.defaults.baseURL=r:delete C.utils.defaultClient.defaults.baseURL),t.token!==n&&(n?C.utils.defaultClient.defaults.headers.Authorization=`token ${n}`:delete C.utils.defaultClient.defaults.headers.Authorization),!n&&(t.username!==s||t.password!==o)&&(C.utils.defaultClient.defaults.auth={username:s,password:o}),t.runAs!==u&&(u?C.utils.defaultClient.defaults.headers.RunAs=u:delete C.utils.defaultClient.defaults.headers.RunAs)}render(){const{children:t,username:r,serverUrl:n}=this.props,s={username:r,serverUrl:n},o=u=>a.cloneElement(u,s);return a.Children.map(t,o)}}const ue="VIDISPINE-TOKEN",ie="VIDISPINE-USERNAME",ce="VIDISPINE-SERVER-URL",le="VIDISPINE-REMEMBER-ME",Un=({userName:e,password:t,serverUrl:r})=>{r&&(C.utils.defaultClient.defaults.baseURL=r);const n={seconds:2592e3,autoRefresh:"true"},s={password:t,username:e};try{C.user.getToken({queryParams:n,headers:s}).then(({data:o})=>o).catch(({response:o={},message:u="Unknown error."})=>{let i=u;throw o.status===401&&(i="Incorrect Username/Password"),i})}catch{throw"Incorrect Username/Password"}};function Fn({LoginComponent:e,LoginProps:t={},AppComponent:r,AppProps:n={},onGetToken:s=Un,onSuccess:o,onError:u,cookieOptions:i={maxAge:604800,path:"/"},...f}){const[l,c,E]=_e.useCookies([ue,ie,ce,le]),{[ue]:m,[ie]:d,[ce]:p}=l,h=l[le]==="true",T=y=>{let A;try{s(y).then(b=>{const{userName:v,serverUrl:R,rememberMe:N}=y;v&&c(ie,v,i),R&&c(ce,R,i),N&&c(le,N,i),b&&c(ue,b,i),o&&o(y)}).catch(b=>{if(A=b,u)return u(A);throw A})}catch(b){if(A=b,u)return u(A)}return A},P=()=>{E(ue,i),h||(E(ie,i),E(ce,i),E(le,i))};return m?V.jsx(he,{token:m,username:d,serverUrl:p,children:V.jsx(r,{onLogout:P,...f,...n})}):V.jsx(e,{onLogin:T,userName:d,serverUrl:p,rememberMe:h,...f,...t})}function kn({error:e,info:t}){return V.jsxs("div",{style:{height:"100%",maxHeight:"100vh",width:"100%",maxWidth:"100vw",backgroundColor:"red",color:"white"},children:[e&&V.jsx("div",{children:e.toString()}),t&&V.jsx("div",{children:t.componentStack})]})}class xe extends a.Component{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(t){return{error:t,hasError:!0}}shouldComponentUpdate(t,r){const{hasError:n,info:s}=this.state,{info:o}=r;return!(s===o&&n===!0)}componentDidCatch(t,r){const{onError:n}=this.props;if(typeof n=="function")try{n(t,r)}catch{return}this.setState({info:r})}render(){const{children:t}=this.props,{hasError:r,error:n,info:s}=this.state;return r?V.jsx(kn,{info:s,error:n}):t}}function qn({groupName:e,queryParams:t,refreshOnMount:r,children:n}){const{metadataFieldGroupType:s,onRefresh:o,isLoading:u,isError:i}=$e({groupName:e,queryParams:t,refreshOnMount:r}),f={groupName:e,queryParams:t,metadataFieldGroupType:s,onRefresh:o,isLoading:u,isError:i},l=c=>a.cloneElement(c,f);return a.Children.map(n,l)}const je=a.createContext();function $n({intialState:e={},onRefresh:t,userName:r,children:n}){const[s,o]=a.useState(e),u=()=>{if(r)C.user.getUserRole({userName:r}).then(({data:i})=>{o(i),t&&t(i)});else{let i;C.user.whoAmI().then(({data:f})=>(i=f,C.user.getUserRole({userName:f}))).then(({data:f})=>{o(f),t&&t(f,i)})}};return a.useEffect(u,[r]),V.jsx(je.Provider,{value:s,children:n})}function We(){const e=a.useContext(je);if(e===void 0)throw new Error("useRoles must be used within RolesContext");return{hasRole:r=>{if(r===void 0)throw new Error("roleName is undefined");const{group:n}=e;if(!Array.isArray(n))return null;const s=n.map(({groupName:o})=>o);return s.includes(z.ROLE_NAMES.SUPER_ACCESS_USER)?!0:Array.isArray(r)?r.findIndex(o=>s.includes(o))>-1:s.includes(r)},groupListType:e}}function xn({roleName:e,allow:t,deny:r,loading:n}){if(e===void 0)throw new Error("roleName is undefined");const{hasRole:s}=We(),o=s(e);return a.isValidElement(t)&&o===!0?t:a.isValidElement(r)&&o===!1?r:a.isValidElement(n)&&o===null?n:null}function jn({providers:e=[],children:t,...r}){return e.reduceRight((n,s)=>{if(typeof s=="function")return V.jsx(s,{...r,children:n});const{provider:o,...u}=s;return V.jsx(o,{...r,...u,children:n})},t)}function Wn({entity:e,entityId:t,queryParams:r,refreshOnMount:n,children:s}){const{metadataType:o,onRefresh:u,isLoading:i,isError:f}=qe({entity:e,entityId:t,queryParams:r,refreshOnMount:n}),l={entity:e,entityId:t,queryParams:r,metadataType:o,onRefresh:u,isLoading:i,isError:f};e==="collection"?l.collectionId=t:e==="item"&&(l.itemId=t);const c=E=>a.cloneElement(E,l);return a.Children.map(s,c)}const Vn=(e,t={})=>r=>V.jsx(xe,{...t,children:V.jsx(e,{...r})}),Yn=(...e)=>e.reduce((t,r)=>(...n)=>t(r(...n)),t=>t),Ve=a.createContext(),Bn=(e,{entityId:t,entityType:r,entityTimespan:{start:n,end:s,field:[{name:o}={}]=[]}={}})=>{const u=e.some(f=>f.entity.id===t&&f.entityType===r);let i=!1;return u&&e.filter(l=>l.entity.id===t&&l.entityType===r).forEach(({entityTimespan:{start:l,end:c,field:[{name:E}={}]=[]}={}})=>{n===l&&s===c&&o===E&&(i=!0)}),!u||!i};function Qn({onChange:e,children:t,initialState:r=[],allowDuplicates:n=!1,isUniqueBinItem:s=Bn}){const[o,u]=a.useState(r),[i,f]=a.useState(n),l=a.useCallback(h=>{if(!h||!["string","number"].includes(typeof h)){console.error("BinProvider onDelete called without a binId of the entity to delete");return}u(T=>{const P=T.filter(y=>y.binId!==h);return e&&e(P),P})},[e]),c=a.useCallback(()=>{u([]),e&&e([])},[e]),E=h=>{const[T]=we().split("-");return{binId:T,...h}},m=a.useCallback(({dragInfo:h={}}={})=>{const{entityId:T,entityType:P,entity:y}=h;if(!T||!P||!y)throw new Error("Dragged element needs to have entityId, entityType and entity props");u((A=[])=>{if(s(A,h)||i){const b=[...A,E(h)];return e&&e(b),b}return A})},[i,s,e]),d=a.useCallback(({dragId:h,hoverId:T,originalDragIndex:P})=>{h===void 0||T===void 0&&P===void 0||u(y=>{const A=[...y],b=o.findIndex(N=>N.binId===h),v=o.findIndex(N=>N.binId===T),R=v>-1?v:P;return[A[R],A[b]]=[A[b],A[R]],e&&e(A),A})},[o,e]),p=a.useMemo(()=>({setBin:u,bin:o,allowDuplicates:i,setAllowDuplicates:f,onDrop:m,onSort:d,onFind:()=>null,onEmptyBin:c,onDelete:l}),[i,o,m,d,l,c]);return V.jsx(Ve.Provider,{value:p,children:t})}function Xn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ee={exports:{}};/*
4
4
  object-assign
5
5
  (c) Sindre Sorhus
6
6
  @license MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vidispine/vdt-react",
3
- "version": "26.2.0-pre.2",
3
+ "version": "26.2.0-pre.3",
4
4
  "license": "SEE LICENSE IN LICENSE.md",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -32,8 +32,8 @@
32
32
  "format": "prettier . --check"
33
33
  },
34
34
  "dependencies": {
35
- "@vidispine/vdt-api": "26.2.0-pre.2",
36
- "@vidispine/vdt-js": "26.2.0-pre.2",
35
+ "@vidispine/vdt-api": "26.2.0-pre.3",
36
+ "@vidispine/vdt-js": "26.2.0-pre.3",
37
37
  "lodash.debounce": "4.0.8",
38
38
  "lz-string": "1.5.0",
39
39
  "react-cookie": "4.1.1",
@@ -43,9 +43,9 @@
43
43
  "react": "16.0.0 || 17.0.0 || 18.0.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@vidispine/eslint-config-react": "26.2.0-pre.2",
47
- "@vidispine/eslint-config-storybook": "26.2.0-pre.2",
48
- "@vidispine/prettier-config": "26.2.0-pre.2",
46
+ "@vidispine/eslint-config-react": "26.2.0-pre.3",
47
+ "@vidispine/eslint-config-storybook": "26.2.0-pre.3",
48
+ "@vidispine/prettier-config": "26.2.0-pre.3",
49
49
  "@vitejs/plugin-react": "4.2.1",
50
50
  "axios-mock-adapter": "1.22.0",
51
51
  "eslint": "8.55.0",