@vidispine/vdt-react 23.1.0-pre.1 → 23.1.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.
Files changed (67) hide show
  1. package/dist/DropArea.js +7 -0
  2. package/dist/context/AuthContext.js +15 -0
  3. package/dist/context/BinContext.js +12 -0
  4. package/dist/context/RolesContext.js +10 -0
  5. package/dist/context/SettingsContext.js +15 -0
  6. package/dist/hoc/compose.js +3 -0
  7. package/dist/hoc/withErrorBoundary.js +7 -0
  8. package/dist/hooks/useAddMetadataFieldAttributes.js +15 -0
  9. package/dist/hooks/useApi.js +10 -0
  10. package/dist/hooks/useAutocomplete.js +10 -0
  11. package/dist/hooks/useCollectionAutoPlay.js +10 -0
  12. package/dist/hooks/useCompoundMetadata.js +10 -0
  13. package/dist/hooks/useCsvDownload.js +10 -0
  14. package/dist/hooks/useDocSearchAutocomplete.js +11 -0
  15. package/dist/hooks/useEntityAccess.js +10 -0
  16. package/dist/hooks/useGetCollection.js +7 -0
  17. package/dist/hooks/useGetCollectionItem.js +7 -0
  18. package/dist/hooks/useGetEntity.js +16 -0
  19. package/dist/hooks/useGetEntityMetadata.js +7 -0
  20. package/dist/hooks/useGetFieldGroup.js +7 -0
  21. package/dist/hooks/useGetFieldMetadataDataset.js +6 -0
  22. package/dist/hooks/useGetItem.js +7 -0
  23. package/dist/hooks/useGetSavedSearchFolders.js +15 -0
  24. package/dist/hooks/useGroup.js +7 -0
  25. package/dist/hooks/useHoverScrub.js +17 -0
  26. package/dist/hooks/useInterval.js +5 -0
  27. package/dist/hooks/useJobSearch.js +9 -0
  28. package/dist/hooks/useListGroup.js +8 -0
  29. package/dist/hooks/useListUser.js +8 -0
  30. package/dist/hooks/useLocalStorage.js +6 -0
  31. package/dist/hooks/useMouseDownPosition.js +6 -0
  32. package/dist/hooks/useQueryInitialState.js +7 -0
  33. package/dist/hooks/useRepresentativeItems.js +12 -0
  34. package/dist/hooks/useSavedSearch.js +12 -0
  35. package/dist/hooks/useSearch.js +8 -0
  36. package/dist/hooks/useSearchGroup.js +11 -0
  37. package/dist/hooks/useSearchItem.js +7 -0
  38. package/dist/hooks/useSearchUser.js +11 -0
  39. package/dist/hooks/useSelected.js +7 -0
  40. package/dist/hooks/useTab.js +6 -0
  41. package/dist/hooks/useThumbnailScrub.js +6 -0
  42. package/dist/hooks/useUpdateEffect.js +6 -0
  43. package/dist/hooks/useUpdateQueryState.js +9 -0
  44. package/dist/hooks/useUploadFiles.js +13 -0
  45. package/dist/hooks/useUser.js +8 -0
  46. package/dist/index.js +61 -5236
  47. package/dist/moveEntity.js +6 -0
  48. package/dist/utils.js +7 -0
  49. package/dist/wrappers/Auth.js +11 -0
  50. package/dist/wrappers/ComposeProviders.js +7 -0
  51. package/dist/wrappers/ErrorBoundary.js +11 -0
  52. package/dist/wrappers/GetCollection.js +6 -0
  53. package/dist/wrappers/GetEntityMetadata.js +6 -0
  54. package/dist/wrappers/GetFieldGroup.js +6 -0
  55. package/dist/wrappers/GetItem.js +6 -0
  56. package/dist/wrappers/GetJobs.js +8 -0
  57. package/dist/wrappers/HasRole.js +6 -0
  58. package/dist/wrappers/ListEntityAccess.js +8 -0
  59. package/dist/wrappers/MetadataType.js +8 -0
  60. package/dist/wrappers/SearchCollection.js +8 -0
  61. package/dist/wrappers/SearchItem.js +6 -0
  62. package/dist/wrappers/SearchItemCollection.js +8 -0
  63. package/dist/wrappers/VidispineApi.js +11 -0
  64. package/package.json +10 -8
  65. package/dist/index.es.js +0 -5143
  66. package/dist/index.es.js.map +0 -1
  67. package/dist/index.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useState } from 'react';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function DropArea(_ref){var children=_ref.children,setDrag=_ref.setDrag,onDropProp=_ref.onDrop,onDragEnterProp=_ref.onDragEnter,onDragOverProp=_ref.onDragOver,onDragLeaveProp=_ref.onDragLeave,style=_ref.style;var _useState=useState(0),_useState2=_slicedToArray(_useState,2),dragCounter=_useState2[0],setDragCounter=_useState2[1];var _onDrop=function onDrop(e){e.preventDefault();e.stopPropagation();setDrag(false);if(onDropProp)onDropProp(e);};var _onDragEnter=function onDragEnter(e){e.preventDefault();e.stopPropagation();setDragCounter(dragCounter+1);if(dragCounter===0)setDrag(true);if(onDragEnterProp)onDragEnterProp(e);};var _onDragOver=function onDragOver(e){e.preventDefault();e.stopPropagation();if(onDragOverProp)onDragOverProp(e);};var _onDragLeave=function onDragLeave(e){e.preventDefault();e.stopPropagation();setDragCounter(dragCounter-1);if(dragCounter===1)setDrag(false);if(onDragLeaveProp)onDragLeaveProp(e);};return/*#__PURE__*/jsx("div",{onDragEnter:function onDragEnter(e){return _onDragEnter(e);},onDragOver:function onDragOver(e){return _onDragOver(e);},onDrop:function onDrop(e){return _onDrop(e);},onDragLeave:function onDragLeave(e){return _onDragLeave(e);},style:style,children:children});}
6
+
7
+ export { DropArea as default };
@@ -0,0 +1,15 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import { createContext, useCallback, useRef, useEffect, useMemo, useContext } from 'react';
4
+ import { useCookies } from 'react-cookie';
5
+ import { user, utils, noauth } from '@vidispine/vdt-api';
6
+ import { jsx } from 'react/jsx-runtime';
7
+ import useApi from '../hooks/useApi.js';
8
+ import VidispineApi from '../wrappers/VidispineApi.js';
9
+
10
+ function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var VIDISPINE_TOKEN='VIDISPINE-TOKEN';var VIDISPINE_USERNAME='VIDISPINE-USERNAME';var VIDISPINE_SERVER_URL='VIDISPINE-SERVER-URL';var VIDISPINE_REMEMBER_ME='VIDISPINE-REMEMBER-ME';var ERROR_CREDENTIALS='Incorrect username or password';var ERROR_OFFLINE='Offline or CORS not configured';var ERROR_TOKEN_EXPIRED='Session expired';var ERROR_SERVER_MISMATCH='VIDISPINE_URL mismatch';var getErrorMessage=function getErrorMessage(serverUrl){try{// NoAuthApi.isOnline throws cors error after multiple requests
11
+ return noauth.getSelfTest({baseURL:serverUrl}).then(function(){return ERROR_CREDENTIALS;})["catch"](function(){return ERROR_OFFLINE;});}catch(_){return Promise.resolve(ERROR_OFFLINE);}};var defaultOnGetToken=function defaultOnGetToken(_ref){var _ref$maxAge=_ref.maxAge,seconds=_ref$maxAge===void 0?60:_ref$maxAge,userName=_ref.userName,password=_ref.password,serverUrl=_ref.serverUrl;try{return user.getToken({queryParams:{seconds:seconds,autoRefresh:'true'},headers:{password:password,username:userName},baseURL:serverUrl}).then(function(_ref2){var token=_ref2.data;return token;})["catch"](function(){return getErrorMessage(serverUrl).then(function(error){throw Error(error);});});}catch(_){return getErrorMessage(serverUrl).then(function(error){throw Error(error);});}};var AuthContext=/*#__PURE__*/createContext({serverUrl:null,token:null,userType:null,userName:null,onLogin:function onLogin(){return null;},onLogout:function onLogout(){return null;}});function AuthProvider(_ref3){var cookieOptions=_ref3.cookieOptions,LoginComponent=_ref3.LoginComponent,LoginProps=_ref3.LoginProps,onGetToken=_ref3.onGetToken,onSuccess=_ref3.onSuccess,onError=_ref3.onError,propsServerUrl=_ref3.serverUrl,propsUserName=_ref3.userName,propsToken=_ref3.token,children=_ref3.children;var _useApi=useApi(user.getUser),userType=_useApi.data,getUser=_useApi.request;var _useCookies=useCookies([VIDISPINE_TOKEN,VIDISPINE_USERNAME,VIDISPINE_SERVER_URL,VIDISPINE_REMEMBER_ME]),_useCookies2=_slicedToArray(_useCookies,3),cookies=_useCookies2[0],setCookie=_useCookies2[1],removeCookie=_useCookies2[2];var _cookies$VIDISPINE_TO=cookies[VIDISPINE_TOKEN],token=_cookies$VIDISPINE_TO===void 0?propsToken:_cookies$VIDISPINE_TO,_cookies$VIDISPINE_US=cookies[VIDISPINE_USERNAME],userName=_cookies$VIDISPINE_US===void 0?propsUserName:_cookies$VIDISPINE_US,_cookies$VIDISPINE_SE=cookies[VIDISPINE_SERVER_URL],serverUrl=_cookies$VIDISPINE_SE===void 0?propsServerUrl:_cookies$VIDISPINE_SE;var rememberMe=cookies[VIDISPINE_REMEMBER_ME]==='true';var maxAge=cookieOptions.maxAge;var onLogin=useCallback(function(values){var submissionError;try{return onGetToken(_objectSpread({maxAge:maxAge},values)).then(function(newToken){var newUserName=values.userName,newServerUrl=values.serverUrl,newRememberMe=values.rememberMe;if(newUserName)setCookie(VIDISPINE_USERNAME,newUserName,cookieOptions);if(newServerUrl)setCookie(VIDISPINE_SERVER_URL,newServerUrl,cookieOptions);if(newRememberMe)setCookie(VIDISPINE_REMEMBER_ME,newRememberMe,cookieOptions);if(newToken)setCookie(VIDISPINE_TOKEN,newToken,cookieOptions);getUser({userName:newUserName});if(onSuccess)onSuccess(values);})["catch"](function(error){submissionError=error;if(onError)onError(submissionError);});}catch(error){submissionError=error;if(onError)onError(submissionError);}return submissionError;},[cookieOptions,maxAge,onError,onGetToken,onSuccess,getUser,setCookie]);var onLogout=useCallback(function(){removeCookie(VIDISPINE_TOKEN,cookieOptions);if(!rememberMe){removeCookie(VIDISPINE_USERNAME,cookieOptions);removeCookie(VIDISPINE_SERVER_URL,cookieOptions);removeCookie(VIDISPINE_REMEMBER_ME,cookieOptions);}},[cookieOptions,rememberMe,removeCookie]);var responseInterceptor=useRef();useEffect(function(){if(token){if(responseInterceptor.current)utils.defaultClient.interceptors.response.eject(responseInterceptor.current);responseInterceptor.current=utils.defaultClient.interceptors.response.use(function(response){return response;},function(error){if(error.response){if(error.response.status===401){onLogout();if(onError)onError(Error(ERROR_TOKEN_EXPIRED));}}else {var _error$config=error.config;_error$config=_error$config===void 0?{}:_error$config;var baseURL=_error$config.baseURL;noauth.getSelfTest({baseURL:baseURL}).then(function(){onLogout();if(onError)onError(Error(ERROR_TOKEN_EXPIRED));})["catch"](function(){return null;});// Will throw if offline or CORS error
12
+ }return Promise.reject(error);});}return function(){if(responseInterceptor.current)utils.defaultClient.interceptors.response.eject(responseInterceptor.current);};},[onLogout,onError,token]);useEffect(function(){if(token&&userName===undefined){user.whoAmI().then(function(_ref4){var newUserName=_ref4.data;return setCookie(VIDISPINE_USERNAME,newUserName,cookieOptions);});}// eslint-disable-next-line react-hooks/exhaustive-deps
13
+ },[userName,token]);useEffect(function(){if(token&&serverUrl&&propsServerUrl&&serverUrl!==propsServerUrl){onLogout();if(onError)onError(Error(ERROR_SERVER_MISMATCH));}},[token,serverUrl,propsServerUrl,onLogout,onError]);var contextValue=useMemo(function(){return {serverUrl:serverUrl,token:token,userType:userType,userName:userName,onLogin:onLogin,onLogout:onLogout};},[onLogin,onLogout,serverUrl,token,userName,userType]);return token?/*#__PURE__*/jsx(VidispineApi,{token:token,username:userName,serverUrl:serverUrl,children:/*#__PURE__*/jsx(AuthContext.Provider,{value:contextValue,children:children})}):/*#__PURE__*/jsx(LoginComponent,_objectSpread({onLogin:onLogin,userName:userName,serverUrl:serverUrl,rememberMe:rememberMe},LoginProps));}AuthProvider.defaultProps={cookieOptions:{maxAge:604800,path:'/'},LoginProps:{},onGetToken:defaultOnGetToken,children:null,onSuccess:null,onError:null,userName:null,token:null};var useAuthContext=function useAuthContext(){var context=useContext(AuthContext);if(context===undefined){throw new Error('useAuth must be used within an AuthContext');}return context;};
14
+
15
+ export { AuthContext, AuthProvider, useAuthContext };
@@ -0,0 +1,12 @@
1
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import _typeof from '@babel/runtime/helpers/typeof';
4
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
+ import { createContext, useState, useCallback, useMemo } from 'react';
6
+ import { uuidv4 } from '../utils.js';
7
+ import { jsx } from 'react/jsx-runtime';
8
+
9
+ function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var BinContext=/*#__PURE__*/createContext();var defaultIsUniqueBinItem=function defaultIsUniqueBinItem(bin,_ref){var entityId=_ref.entityId,entityType=_ref.entityType,_ref$entityTimespan=_ref.entityTimespan;_ref$entityTimespan=_ref$entityTimespan===void 0?{}:_ref$entityTimespan;var start=_ref$entityTimespan.start,end=_ref$entityTimespan.end,_ref$entityTimespan$f=_ref$entityTimespan.field;_ref$entityTimespan$f=_ref$entityTimespan$f===void 0?[]:_ref$entityTimespan$f;var _ref$entityTimespan$f2=_slicedToArray(_ref$entityTimespan$f,1),_ref$entityTimespan$f3=_ref$entityTimespan$f2[0];_ref$entityTimespan$f3=_ref$entityTimespan$f3===void 0?{}:_ref$entityTimespan$f3;var name=_ref$entityTimespan$f3.name;var entityExistsInBin=bin.some(function(o){return o.entity.id===entityId&&o.entityType===entityType;});var entityTimespanExistsInBin=false;if(entityExistsInBin){var binEntitiesWithSameId=bin.filter(function(o){return o.entity.id===entityId&&o.entityType===entityType;});binEntitiesWithSameId.forEach(function(_ref2){var _ref2$entityTimespan=_ref2.entityTimespan;_ref2$entityTimespan=_ref2$entityTimespan===void 0?{}:_ref2$entityTimespan;var beStart=_ref2$entityTimespan.start,beEnd=_ref2$entityTimespan.end,_ref2$entityTimespan$=_ref2$entityTimespan.field;_ref2$entityTimespan$=_ref2$entityTimespan$===void 0?[]:_ref2$entityTimespan$;var _ref2$entityTimespan$2=_slicedToArray(_ref2$entityTimespan$,1),_ref2$entityTimespan$3=_ref2$entityTimespan$2[0];_ref2$entityTimespan$3=_ref2$entityTimespan$3===void 0?{}:_ref2$entityTimespan$3;var beName=_ref2$entityTimespan$3.name;if(start===beStart&&end===beEnd&&name===beName){entityTimespanExistsInBin=true;}});}return !entityExistsInBin||!entityTimespanExistsInBin;};function BinProvider(_ref3){var onChange=_ref3.onChange,children=_ref3.children,_ref3$initialState=_ref3.initialState,initialState=_ref3$initialState===void 0?[]:_ref3$initialState,_ref3$allowDuplicates=_ref3.allowDuplicates,defaultAllowDuplicates=_ref3$allowDuplicates===void 0?false:_ref3$allowDuplicates,_ref3$isUniqueBinItem=_ref3.isUniqueBinItem,isUniqueBinItem=_ref3$isUniqueBinItem===void 0?defaultIsUniqueBinItem:_ref3$isUniqueBinItem;var _useState=useState(initialState),_useState2=_slicedToArray(_useState,2),binState=_useState2[0],setBinState=_useState2[1];var _useState3=useState(defaultAllowDuplicates),_useState4=_slicedToArray(_useState3,2),allowDuplicates=_useState4[0],setAllowDuplicates=_useState4[1];var onDelete=useCallback(function(binIdToDelete){if(!binIdToDelete||!['string','number'].includes(_typeof(binIdToDelete))){// eslint-disable-next-line no-console
10
+ console.error('BinProvider onDelete called without a binId of the entity to delete');return;}setBinState(function(state){var newState=state.filter(function(o){return o.binId!==binIdToDelete;});if(onChange)onChange(newState);return newState;});},[onChange]);var onEmptyBin=useCallback(function(){setBinState([]);if(onChange)onChange([]);},[onChange]);var createBinObject=function createBinObject(binObject){var _uuidv4$split=uuidv4().split('-'),_uuidv4$split2=_slicedToArray(_uuidv4$split,1),binId=_uuidv4$split2[0];return _objectSpread({binId:binId},binObject);};var handleDrop=useCallback(function(){var _ref4=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},_ref4$dragInfo=_ref4.dragInfo,dragInfo=_ref4$dragInfo===void 0?{}:_ref4$dragInfo;var entityId=dragInfo.entityId,entityType=dragInfo.entityType,entity=dragInfo.entity;if(!entityId||!entityType||!entity){throw new Error('Dragged element needs to have entityId, entityType and entity props');}setBinState(function(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];if(isUniqueBinItem(state,dragInfo)||allowDuplicates){var newState=[].concat(_toConsumableArray(state),[createBinObject(dragInfo)]);if(onChange)onChange(newState);return newState;}return state;});},[allowDuplicates,isUniqueBinItem,onChange]);var handleSort=useCallback(function(_ref5){var dragId=_ref5.dragId,hoverId=_ref5.hoverId,originalDragIndex=_ref5.originalDragIndex;if(dragId===undefined||hoverId===undefined&&originalDragIndex===undefined)return;setBinState(function(state){var newState=_toConsumableArray(state);var dragIndex=binState.findIndex(function(o){return o.binId===dragId;});var hoverIndex=binState.findIndex(function(o){return o.binId===hoverId;});var newDragIndex=hoverIndex>-1?hoverIndex:originalDragIndex;var _ref6=[newState[dragIndex],newState[newDragIndex]];newState[newDragIndex]=_ref6[0];newState[dragIndex]=_ref6[1];if(onChange)onChange(newState);return newState;});},[binState,onChange]);var contextValue=useMemo(function(){return {setBin:setBinState,bin:binState,allowDuplicates:allowDuplicates,setAllowDuplicates:setAllowDuplicates,onDrop:handleDrop,onSort:handleSort,onFind:function onFind(){return null;},onEmptyBin:onEmptyBin,onDelete:onDelete};},[allowDuplicates,binState,handleDrop,handleSort,onDelete,onEmptyBin]);return/*#__PURE__*/jsx(BinContext.Provider,{value:contextValue,children:children});}
11
+
12
+ export { BinContext, BinProvider };
@@ -0,0 +1,10 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useState, useEffect, useContext, createContext } from 'react';
3
+ import { user } from '@vidispine/vdt-api';
4
+ import { ROLE_NAMES } from '@vidispine/vdt-js';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var RolesContext=/*#__PURE__*/createContext();function RolesProvider(_ref){var _ref$intialState=_ref.intialState,intialState=_ref$intialState===void 0?{}:_ref$intialState,onRefresh=_ref.onRefresh,knownUserName=_ref.userName,children=_ref.children;var _useState=useState(intialState),_useState2=_slicedToArray(_useState,2),groupListType=_useState2[0],setGroupListType=_useState2[1];var onGetUserRole=function onGetUserRole(){if(knownUserName){user.getUserRole({userName:knownUserName}).then(function(_ref2){var data=_ref2.data;setGroupListType(data);if(onRefresh)onRefresh(data);});}else {var iAm;user.whoAmI().then(function(_ref3){var userName=_ref3.data;iAm=userName;return user.getUserRole({userName:userName});}).then(function(_ref4){var data=_ref4.data;setGroupListType(data);if(onRefresh)onRefresh(data,iAm);});}};// eslint-disable-next-line react-hooks/exhaustive-deps
8
+ useEffect(onGetUserRole,[knownUserName]);return/*#__PURE__*/jsx(RolesContext.Provider,{value:groupListType,children:children});}function useRoles(){var groupListType=useContext(RolesContext);if(groupListType===undefined){throw new Error('useRoles must be used within RolesContext');}var hasRole=function hasRole(roleName){if(roleName===undefined)throw new Error('roleName is undefined');var groupList=groupListType.group;if(!Array.isArray(groupList))return null;var groupNames=groupList.map(function(_ref5){var groupName=_ref5.groupName;return groupName;});if(groupNames.includes(ROLE_NAMES.SUPER_ACCESS_USER))return true;if(Array.isArray(roleName)){return roleName.findIndex(function(thisRole){return groupNames.includes(thisRole);})>-1;}return groupNames.includes(roleName);};return {hasRole:hasRole,groupListType:groupListType};}
9
+
10
+ export { RolesProvider, useRoles };
@@ -0,0 +1,15 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { useReducer, useRef, useEffect, useCallback, createContext, useContext } from 'react';
4
+ import { metadata } from '@vidispine/vdt-api';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var SettingsDispatchContext=/*#__PURE__*/createContext();var SettingsStateContext=/*#__PURE__*/createContext();var UPDATE_ALL_SETTINGS='UPDATE_ALL_SETTINGS';var UPDATE_SETTING='UPDATE_SETTING';var UPDATE_USERNAME='UPDATE_USERNAME';var REMOVE_SETTING='REMOVE_SETTING';var reducer=function reducer(state,action){switch(action.type){case UPDATE_USERNAME:{return _objectSpread(_objectSpread({},state),{},{userName:action.userName});}case UPDATE_ALL_SETTINGS:{return _objectSpread(_objectSpread({},state),{},{settings:action.settings});}case UPDATE_SETTING:{var settings=_objectSpread(_objectSpread({},state.settings),action.setting);return _objectSpread(_objectSpread({},state),{},{settings:settings});}case REMOVE_SETTING:{var _settings=_objectSpread({},state.settings);delete _settings[action.key];return _objectSpread(_objectSpread({},state),{},{settings:_settings});}default:return state;}};function SettingsProvider(_ref){var initialUsername=_ref.userName,settingsKey=_ref.settingsKey,children=_ref.children,initialSettings=_ref.initialSettings,onChange=_ref.onChange,getSettingsApi=_ref.getSettingsApi,updateSettingsApi=_ref.updateSettingsApi;var _useReducer=useReducer(reducer,{settings:initialSettings,userName:initialUsername}),_useReducer2=_slicedToArray(_useReducer,2),state=_useReducer2[0],dispatch=_useReducer2[1];var currentSettingsFromServer=useRef();useEffect(function(){var userName=state.userName;if(!getSettingsApi||!userName)return;getSettingsApi({entityType:'user',entityId:userName,key:settingsKey}).then(function(_ref2){var settings=_ref2.data;dispatch({type:UPDATE_ALL_SETTINGS,settings:settings,userName:userName,settingsKey:settingsKey});currentSettingsFromServer.current=JSON.stringify(settings);})["catch"](function(error){var response=error.response;if(response.status!==404){throw new Error(error);}});// eslint-disable-next-line react-hooks/exhaustive-deps
8
+ },[state.userName]);useEffect(function(){if(onChange)onChange(state.settings);var userName=state.userName;if(!updateSettingsApi||!userName)return;var newValue=JSON.stringify(state.settings);var currentValue=currentSettingsFromServer.current;if(!currentValue||newValue===currentValue)return;updateSettingsApi({entityType:'user',entityId:userName,key:settingsKey,value:newValue});currentSettingsFromServer.current=newValue;// eslint-disable-next-line react-hooks/exhaustive-deps
9
+ },[state.settings]);return/*#__PURE__*/jsx(SettingsStateContext.Provider,{value:state,children:/*#__PURE__*/jsx(SettingsDispatchContext.Provider,{value:dispatch,children:children})});}var useSettingsState=function useSettingsState(){var state=useContext(SettingsStateContext);if(!state)throw new Error('useSettingsState must be used within SettingsStateContext');return state;};var useSettingsDispatch=function useSettingsDispatch(){var dispatch=useContext(SettingsDispatchContext);if(!dispatch)throw new Error('useSettingsDispatch must be used within SettingsDispatchContext');return dispatch;};var useSettingsActions=function useSettingsActions(){var dispatch=useSettingsDispatch();var updateAllSettings=useCallback(function(settings){return dispatch({type:UPDATE_ALL_SETTINGS,settings:settings});},// eslint-disable-next-line react-hooks/exhaustive-deps
10
+ []);var updateSetting=useCallback(function(setting){return dispatch({type:UPDATE_SETTING,setting:setting});},// eslint-disable-next-line react-hooks/exhaustive-deps
11
+ []);var updateUsername=useCallback(function(userName){return dispatch({type:UPDATE_USERNAME,userName:userName});},// eslint-disable-next-line react-hooks/exhaustive-deps
12
+ []);// eslint-disable-next-line react-hooks/exhaustive-deps
13
+ var removeSetting=useCallback(function(key){return dispatch({type:REMOVE_SETTING,key:key});},[]);return {updateAllSettings:updateAllSettings,updateSetting:updateSetting,updateUsername:updateUsername,removeSetting:removeSetting};};var useSettings=function useSettings(){var _useSettingsState=useSettingsState(),_useSettingsState$set=_useSettingsState.settings,settings=_useSettingsState$set===void 0?{}:_useSettingsState$set;var actions=useSettingsActions();return _objectSpread(_objectSpread({},actions),{},{settings:settings});};SettingsProvider.defaultProps={userName:undefined,settingsKey:undefined,children:null,initialSettings:{},onChange:null,getSettingsApi:metadata.getSimpleMetadataKey,updateSettingsApi:metadata.updateSimpleMetadataKey};
14
+
15
+ export { SettingsProvider, useSettings, useSettingsActions };
@@ -0,0 +1,3 @@
1
+ var compose=function compose(){for(var _len=arguments.length,funcs=new Array(_len),_key=0;_key<_len;_key++){funcs[_key]=arguments[_key];}return funcs.reduce(function(a,b){return function(){return a(b.apply(void 0,arguments));};},function(arg){return arg;});};var compose$1 = compose;
2
+
3
+ export { compose, compose$1 as default };
@@ -0,0 +1,7 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import ErrorBoundary from '../wrappers/ErrorBoundary.js';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var withErrorBoundary=function withErrorBoundary(WrappedComponent){var errorBoundaryProps=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return function(props){return/*#__PURE__*/jsx(ErrorBoundary,_objectSpread(_objectSpread({},errorBoundaryProps),{},{children:/*#__PURE__*/jsx(WrappedComponent,_objectSpread({},props))}));};};var withErrorBoundary$1 = withErrorBoundary;
6
+
7
+ export { withErrorBoundary$1 as default };
@@ -0,0 +1,15 @@
1
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
6
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
7
+ import { useState } from 'react';
8
+ import useDeepCompareEffect from 'use-deep-compare-effect';
9
+ import { metadatafield, fieldgroup } from '@vidispine/vdt-api';
10
+
11
+ var _excluded=["name"],_excluded2=["label"],_excluded3=["name","field","group"],_excluded4=["label"];function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var getValueFromData=function getValueFromData(){var _ref=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},_ref$data=_ref.data,data=_ref$data===void 0?[]:_ref$data;var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined;if(!key)return undefined;var _ref2=data.find(function(d){return d.key===key;})||{},value=_ref2.value;return value;};var defaultGetDataAttributes=function defaultGetDataAttributes(fieldOrGroup,keys){return Object.assign.apply(Object,[{}].concat(_toConsumableArray(keys.map(function(key){return _defineProperty({},key,getValueFromData(fieldOrGroup,key));}))));};var getOptions=function getOptions(){var _ref4=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},_ref4$values=_ref4.values;_ref4$values=_ref4$values===void 0?{}:_ref4$values;var field=_ref4$values.field;return field?field.map(function(f){return {value:f.value,label:f.key||f.value};}):undefined;};var convertValuesXmlToJson=function convertValuesXmlToJson(xmlString){var doc=new DOMParser().parseFromString(xmlString,'application/xml');var fields=doc.getElementsByTagName('field');if(!fields.length){return undefined;}var json={field:[]};for(var i=0;i<fields.length;i+=1){var _json$field$push;var _fields$i$childNodes=_slicedToArray(fields[i].childNodes,2),keyNode=_fields$i$childNodes[0],valueNode=_fields$i$childNodes[1];json.field.push((_json$field$push={},_defineProperty(_json$field$push,keyNode.nodeName,keyNode.firstChild.nodeValue),_defineProperty(_json$field$push,valueNode.nodeName,valueNode.firstChild.nodeValue),_json$field$push));}return json;};var useAddMetadataFieldAttributes=function useAddMetadataFieldAttributes(_ref5){var fields=_ref5.fields,groups=_ref5.groups,_ref5$getDataAttribut=_ref5.getDataAttributes,getDataAttributes=_ref5$getDataAttribut===void 0?defaultGetDataAttributes:_ref5$getDataAttribut,_ref5$fieldDataToIncl=_ref5.fieldDataToInclude,fieldDataToInclude=_ref5$fieldDataToIncl===void 0?'label,displayType,required':_ref5$fieldDataToIncl,_ref5$groupDataToIncl=_ref5.groupDataToInclude,groupDataToInclude=_ref5$groupDataToIncl===void 0?'label,order':_ref5$groupDataToIncl,_ref5$fieldQueryParam=_ref5.fieldQueryParams,fieldQueryParams=_ref5$fieldQueryParam===void 0?{}:_ref5$fieldQueryParam,_ref5$groupQueryParam=_ref5.groupQueryParams,groupQueryParams=_ref5$groupQueryParam===void 0?{}:_ref5$groupQueryParam,_ref5$getAttributes=_ref5.getAttributes,getAttributes=_ref5$getAttributes===void 0?true:_ref5$getAttributes;var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isLoading=_useState2[0],setIsLoading=_useState2[1];var _useState3=useState(fields),_useState4=_slicedToArray(_useState3,2),fieldsWithAttributes=_useState4[0],setFieldsWithAttributes=_useState4[1];var _useState5=useState(groups),_useState6=_slicedToArray(_useState5,2),groupsWithAttributes=_useState6[0],setGroupsWithAttributes=_useState6[1];useDeepCompareEffect(function(){var didCancel=false;if(getAttributes===false)return function(){didCancel=true;};var addFieldAttributes=function addFieldAttributes(){var fieldsArray=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var fieldsAttributes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return fieldsArray.map(function(_ref6){var name=_ref6.name,overrides=_objectWithoutProperties(_ref6,_excluded);var fieldAttributes=fieldsAttributes[name]||{};var _getDataAttributes=getDataAttributes(fieldAttributes,fieldDataToInclude.split(',')),label=_getDataAttributes.label,dataAttributes=_objectWithoutProperties(_getDataAttributes,_excluded2);return _objectSpread(_objectSpread({name:name,label:label||name,type:fieldAttributes.type,constraint:fieldAttributes.constraint,options:getOptions(fieldAttributes)},dataAttributes),overrides);});};var addGroupAttributes=function addGroupAttributes(){var groupsArray=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var groupsAttributes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var fieldsAttributes=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};return groupsArray.map(function(_ref7){var name=_ref7.name,field=_ref7.field,group=_ref7.group,overrides=_objectWithoutProperties(_ref7,_excluded3);var groupAttributes=groupsAttributes[name]||{};var childFields=field||groupAttributes&&groupAttributes.field;var childGroups=group||groupAttributes&&groupAttributes.group;var _getDataAttributes2=getDataAttributes(groupAttributes,groupDataToInclude.split(',')),label=_getDataAttributes2.label,dataAttributes=_objectWithoutProperties(_getDataAttributes2,_excluded4);return _objectSpread(_objectSpread({name:name,label:label||name,order:getValueFromData(groupAttributes,'order'),fields:addFieldAttributes(childFields,fieldsAttributes),groups:addGroupAttributes(childGroups,groupsAttributes,fieldsAttributes)},dataAttributes),overrides);});};function fetchAttributesAsync(){return _fetchAttributesAsync.apply(this,arguments);}function _fetchAttributesAsync(){_fetchAttributesAsync=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(){var fieldsAttributes,groupsAttributes,fieldPromises,queryParams,groupPromises,groupsToFetch,_queryParams;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:setIsLoading(true);fieldsAttributes={};groupsAttributes={};fieldPromises=[];if(fields){queryParams=_objectSpread(_objectSpread({},fieldQueryParams),{},{data:fieldDataToInclude});fieldPromises=fields.map(/*#__PURE__*/function(){var _ref9=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref8){var fieldName,_yield$MetadataFieldA,data;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:fieldName=_ref8.name;_context.prev=1;_context.next=4;return metadatafield.getMetadataField({fieldName:fieldName,queryParams:queryParams});case 4:_yield$MetadataFieldA=_context.sent;data=_yield$MetadataFieldA.data;fieldsAttributes[fieldName]=data;_context.next=12;break;case 9:_context.prev=9;_context.t0=_context["catch"](1);// eslint-disable-next-line no-console
12
+ console.warn("Could not retrieve attributes for ".concat(fieldName));case 12:case"end":return _context.stop();}}},_callee,null,[[1,9]]);}));return function(_x){return _ref9.apply(this,arguments);};}());}groupPromises=[];if(groups){groupsToFetch=_toConsumableArray(groups);_queryParams=_objectSpread(_objectSpread({},groupQueryParams),{},{data:groupDataToInclude});groupPromises=groupsToFetch.map(/*#__PURE__*/function(){var _ref11=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref10){var groupName,_yield$FieldGroupApi$,data,_data$field,field,_data$group,group;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:groupName=_ref10.name;_context2.prev=1;_context2.next=4;return fieldgroup.getFieldGroup({groupName:groupName,queryParams:_queryParams});case 4:_yield$FieldGroupApi$=_context2.sent;data=_yield$FieldGroupApi$.data;_data$field=data.field,field=_data$field===void 0?[]:_data$field,_data$group=data.group,group=_data$group===void 0?[]:_data$group;field.forEach(function(f){var dataValues=f.data&&f.data.find(function(e){return e.key==='__values';});if(dataValues){var jsonValues=convertValuesXmlToJson(dataValues.value);fieldsAttributes[f.name]=_objectSpread(_objectSpread({},f),{},{values:jsonValues});}});group.forEach(function(g){groupsToFetch.push(g);});groupsAttributes[groupName]=data;_context2.next=15;break;case 12:_context2.prev=12;_context2.t0=_context2["catch"](1);// eslint-disable-next-line no-console
13
+ console.warn("Could not retrieve attributes for ".concat(groupName));case 15:case"end":return _context2.stop();}}},_callee2,null,[[1,12]]);}));return function(_x2){return _ref11.apply(this,arguments);};}());}_context3.next=9;return Promise.all([].concat(_toConsumableArray(fieldPromises),_toConsumableArray(groupPromises)));case 9:if(!didCancel){if(Object.values(fieldsAttributes).some(function(v){return v;})){setFieldsWithAttributes(function(){return addFieldAttributes(fields,fieldsAttributes);});}if(Object.values(groupsAttributes).some(function(v){return v;})){setGroupsWithAttributes(function(){var newGroupsWithAttributes=addGroupAttributes(groups,groupsAttributes,fieldsAttributes);newGroupsWithAttributes.forEach(function(group){var order=group.order;if(order){group.fields.sort(function(a,b){return order.indexOf(a.name)-order.indexOf(b.name);});}});return newGroupsWithAttributes;});}setIsLoading(false);}case 10:case"end":return _context3.stop();}}},_callee3);}));return _fetchAttributesAsync.apply(this,arguments);}fetchAttributesAsync();return function(){didCancel=true;};},[fields,groups,fieldDataToInclude,groupDataToInclude,fieldQueryParams,groupQueryParams,getAttributes]);return {fieldsWithAttributes:fieldsWithAttributes,groupsWithAttributes:groupsWithAttributes,isLoading:isLoading};};var useAddMetadataFieldAttributes$1 = useAddMetadataFieldAttributes;
14
+
15
+ export { useAddMetadataFieldAttributes$1 as default };
@@ -0,0 +1,10 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { useRef, useReducer, useCallback, useEffect } from 'react';
4
+ import { utils } from '@vidispine/vdt-api';
5
+
6
+ function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var setDefaultState=function setDefaultState(){var _ref=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},_ref$hasLoaded=_ref.hasLoaded,hasLoaded=_ref$hasLoaded===void 0?false:_ref$hasLoaded,_ref$isLoading=_ref.isLoading,isLoading=_ref$isLoading===void 0?true:_ref$isLoading,_ref$isError=_ref.isError,isError=_ref$isError===void 0?false:_ref$isError,_ref$response=_ref.response,response=_ref$response===void 0?undefined:_ref$response,_ref$data=_ref.data,data=_ref$data===void 0?undefined:_ref$data;var responseRef=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined;return {isLoading:isLoading,hasLoaded:hasLoaded,isError:isError,response:response,data:responseRef&&responseRef.current?responseRef.current:data};};var apiReducer=function apiReducer(state,action){switch(action.type){case'START':{return _objectSpread(_objectSpread({},state),{},{isLoading:true,isError:false});}case'SUCCESS':{var responseType=action.response.responseType;var newState={isLoading:false,isError:false,hasLoaded:true,response:action.response,data:action.response.data};if(responseType)newState[responseType]=action.response[responseType];return newState;}case'ERROR':{return {isLoading:false,isError:true,hasLoaded:true,response:action.response,data:action.response.data};}case'CANCEL':{return _objectSpread(_objectSpread({},state),{},{isLoading:false,isError:false,hasLoaded:true});}case'RESET':{return _objectSpread({},action.initialState);}default:{return state;}}};function useApi(apiHandler,initialState,responseRef){var cancelToken=useRef(function(){return null;});var initialDefaultState=setDefaultState(initialState,responseRef);var initialStateRef=useRef(initialDefaultState);var _useReducer=useReducer(apiReducer,initialDefaultState),_useReducer2=_slicedToArray(_useReducer,2),state=_useReducer2[0],dispatch=_useReducer2[1];var request=useCallback(function(props){dispatch({type:'START'});return new Promise(function(resolve,reject){apiHandler(_objectSpread({cancelToken:new utils.CancelToken(function(c){cancelToken.current=c;})},props)).then(function(response){resolve(response);dispatch({type:'SUCCESS',response:response});// eslint-disable-next-line no-param-reassign
7
+ if(responseRef)responseRef.current=response.data;})["catch"](function(response){// eslint-disable-next-line no-underscore-dangle
8
+ if(response.__CANCEL__){dispatch({type:'CANCEL'});}else {reject(response);dispatch({type:'ERROR',response:response});}});});},[apiHandler,responseRef]);var reset=useCallback(function(){return dispatch({type:'RESET',initialState:initialStateRef.current});},[]);var cancel=useCallback(function(){return cancelToken.current();},[]);useEffect(function(){return function(){cancel();reset();};},[cancel,reset]);return _objectSpread({request:request,reset:reset,cancel:cancel},state);}
9
+
10
+ export { useApi as default };
@@ -0,0 +1,10 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import { useState, useCallback } from 'react';
4
+ import { search } from '@vidispine/vdt-api';
5
+ import useApi from './useApi.js';
6
+ import useUpdateEffect from './useUpdateEffect.js';
7
+
8
+ function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var setInitialDefaultState=function setInitialDefaultState(){var _ref=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},_ref$field=_ref.field,field=_ref$field===void 0?undefined:_ref$field,_ref$text=_ref.text,text=_ref$text===void 0?'':_ref$text,_ref$maximumSuggestio=_ref.maximumSuggestions,maximumSuggestions=_ref$maximumSuggestio===void 0?10:_ref$maximumSuggestio;return {field:field,text:text,maximumSuggestions:maximumSuggestions};};function useAutocomplete(initialState){var initialDefaultState=setInitialDefaultState(initialState);var _useState=useState(initialDefaultState),_useState2=_slicedToArray(_useState,2),autocompleteDoc=_useState2[0],setAutocompleteDoc=_useState2[1];var setAutocompleteField=useCallback(function(field){var text=arguments.length>1&&arguments[1]!==undefined?arguments[1]:'';setAutocompleteDoc(function(state){return _objectSpread(_objectSpread({},state),{},{field:field,text:text});});},[]);var setAutocompleteText=useCallback(function(text){setAutocompleteDoc(function(state){return _objectSpread(_objectSpread({},state),{},{text:text});});},[]);var setAutocompleteMaxSuggestions=useCallback(function(maximumSuggestions){setAutocompleteDoc(function(state){return _objectSpread(_objectSpread({},state),{},{maximumSuggestions:maximumSuggestions});});},[]);var _useApi=useApi(search.searchAutoComplete),searchAutoComplete=_useApi.request,_useApi$data=_useApi.data;_useApi$data=_useApi$data===void 0?{}:_useApi$data;var _useApi$data$suggesti=_useApi$data.suggestion,suggestions=_useApi$data$suggesti===void 0?[]:_useApi$data$suggesti;useUpdateEffect(function(){searchAutoComplete({autocompleteRequestDocument:autocompleteDoc});},[autocompleteDoc]);return {suggestions:suggestions,setAutocompleteField:setAutocompleteField,setAutocompleteText:setAutocompleteText,setAutocompleteMaxSuggestions:setAutocompleteMaxSuggestions};}
9
+
10
+ export { useAutocomplete as default };
@@ -0,0 +1,10 @@
1
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import { useState, useRef, useCallback } from 'react';
4
+ import { collection } from '@vidispine/vdt-api';
5
+
6
+ var useCollectionAutoPlay=function useCollectionAutoPlay(_ref){var collectionId=_ref.collectionId,_ref$defaultEnabled=_ref.defaultEnabled,defaultEnabled=_ref$defaultEnabled===void 0?true:_ref$defaultEnabled;var _useState=useState(),_useState2=_slicedToArray(_useState,2),nextPlaying=_useState2[0],setNextPlaying=_useState2[1];var _useState3=useState(defaultEnabled),_useState4=_slicedToArray(_useState3,2),isAutoPlayEnabled=_useState4[0],setIsAutoPlayEnabled=_useState4[1];var toggleAutoPlay=function toggleAutoPlay(newValue){return setIsAutoPlayEnabled(function(prevValue){return newValue!==undefined?newValue:!prevValue;});};var allItemsRef=useRef();var orderItemsRef=useRef();var hitsRef=useRef();var onNext=useCallback(function(_ref2){var itemId=_ref2.itemId;if(isAutoPlayEnabled===false)return;var searchDocument={field:[{name:'mediaType',value:[{value:'video'},{value:'audio'}]}]};var searchForNext=function searchForNext(){var _ref3=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},first=_ref3.first,number=_ref3.number;var allItems=allItemsRef.current;var orderItems=orderItemsRef.current;if(!Array.isArray(allItems)){Promise.all([collection.getCollection({collectionId:collectionId,queryParams:{children:'item'}}),collection.searchCollectionItem({collectionId:collectionId,searchDocument:searchDocument,queryParams:{first:first,number:number}})]).then(function(_ref4){var _ref5=_slicedToArray(_ref4,2),collectionType=_ref5[0].data,itemListType=_ref5[1].data;var hits=itemListType.hits,_itemListType$item=itemListType.item,itemList=_itemListType$item===void 0?[]:_itemListType$item;allItemsRef.current=itemList.map(function(_ref6){var id=_ref6.id;return id;});hitsRef.current=hits;var contentList=collectionType.content;orderItemsRef.current=contentList;searchForNext({first:1,number:100});});return;}var hits=hitsRef.current;var currentItemIdx=orderItems.findIndex(function(_ref7){var thisId=_ref7.id;return thisId===itemId;});if(currentItemIdx+1===orderItems.length){// last item in the list
7
+ setNextPlaying();return;}if(currentItemIdx===-1&&hits>allItems.length){// request more items to find the currentItem
8
+ collection.searchCollectionItem({collectionId:collectionId,searchDocument:searchDocument,queryParams:{first:first+number,number:number}}).then(function(_ref8){var _allItemsRef$current;var itemListType=_ref8.data;var _itemListType$item2=itemListType.item,itemList=_itemListType$item2===void 0?[]:_itemListType$item2;(_allItemsRef$current=allItemsRef.current).push.apply(_allItemsRef$current,_toConsumableArray(itemList.map(function(_ref9){var id=_ref9.id;return id;})));searchForNext({first:first+number,number:number});});return;}var remainingItems=orderItems.slice(currentItemIdx+1);var nextItem=remainingItems.find(function(_ref10){var thisId=_ref10.id;return allItems.includes(thisId);});setNextPlaying(nextItem);};searchForNext();},[collectionId,isAutoPlayEnabled]);return {isAutoPlayEnabled:isAutoPlayEnabled,toggleAutoPlay:toggleAutoPlay,setNextPlaying:setNextPlaying,nextPlaying:nextPlaying,onNext:onNext};};var useCollectionAutoPlay$1 = useCollectionAutoPlay;
9
+
10
+ export { useCollectionAutoPlay$1 as default };
@@ -0,0 +1,10 @@
1
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
4
+ import useDeepCompareEffect from 'use-deep-compare-effect';
5
+ import { item, metadata } from '@vidispine/vdt-api';
6
+ import { createMetadataType } from '@vidispine/vdt-js';
7
+
8
+ function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}function useCompoundMetadata(itemId,values,groups,groupFields,setGroupFields,onRefresh,onSuccess,onError){var isFamily=function isFamily(el){return el.hasMultipleChild;};var groupFamily=groups.findIndex(isFamily);var tableColumns=groups[groupFamily].groups[0].fields.map(function(group){return group;});var onChange=function onChange(e,row,groupIndex,editIndex){var value=e.target.value;var name=e.target.name;var newGroups=groupFields.map(function(group){return group;});var newRows=newGroups[groupIndex].group.map(function(newRow,rowIndex){if(rowIndex===editIndex){return _objectSpread(_objectSpread({},row),{},_defineProperty({},name,value));}return newRow;});newGroups[groupIndex].group=newRows;setGroupFields(newGroups);};var onSubmit=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(data){var groupNames,metadataDocument,newTimeSpan,uuid,newGroups;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:groupNames=[];groups.forEach(function(group){var newGroup={};newGroup.parentGroup=group.name;newGroup.childGroup=group.groups[0].name;groupNames.push(newGroup);});metadataDocument=createMetadataType({group:data});newTimeSpan=metadataDocument.timespan;uuid=values.itemType.metadata.timespan[0].group[0].uuid;newGroups=[];newTimeSpan[0].group.forEach(function(group,index){var newGroup={group:[]};newGroup.name=groupNames[index].parentGroup;newGroup.mode='add';group.group.forEach(function(subGroup){var newSubGroup=subGroup;newSubGroup.name=groupNames[index].childGroup;newSubGroup.mode='add';newGroup.group.push(newSubGroup);});newGroups.push(newGroup);});newTimeSpan[0].group=newGroups;_context.prev=8;_context.next=11;return metadata.removeMetadata({metadataUuid:uuid});case 11:_context.next=13;return item.updateItemMetadata({itemId:itemId,metadataDocument:{timespan:newTimeSpan}});case 13:_context.next=15;return onRefresh();case 15:onSuccess();_context.next=21;break;case 18:_context.prev=18;_context.t0=_context["catch"](8);onError(_context.t0);case 21:case"end":return _context.stop();}}},_callee,null,[[8,18]]);}));return function onSubmit(_x){return _ref.apply(this,arguments);};}();useDeepCompareEffect(function(){setGroupFields(values.group);},[values]);return {tableColumns:tableColumns,onChange:onChange,onSubmit:onSubmit};}
9
+
10
+ export { useCompoundMetadata as default };
@@ -0,0 +1,10 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
4
+ import { storage, library, job, file } from '@vidispine/vdt-api';
5
+
6
+ function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}function defaultOnGetStorage(){var storageData=storage.listStorage().then(function(response){var storage={id:response.data.storage[0].id,uri:response.data.storage[0].method[0].uri};return storage;});return storageData;}function defaultOnCreate(list){return library.createLibrary({itemListDocument:{item:_toConsumableArray(list.item.map(function(_ref){var id=_ref.id;return {id:id};}))}});}function defaultOnList(response,storageInfo,queryParams){var _queryParams$fileName=queryParams.fileName,fileName=_queryParams$fileName===void 0?'output':_queryParams$fileName,_queryParams$outputFo=queryParams.outputFormat,outputFormat=_queryParams$outputFo===void 0?'csv':_queryParams$outputFo;var uri=storageInfo.uri;var _response$data=response.data;_response$data=_response$data===void 0?{}:_response$data;var _response$data$uri=_response$data.uri;_response$data$uri=_response$data$uri===void 0?[]:_response$data$uri;var _response$data$uri2=_slicedToArray(_response$data$uri,1),libraryId=_response$data$uri2[0];var createNewUri=function createNewUri(){if(uri.includes('s3')){var _uri$split=uri.split('?region'),_uri$split2=_slicedToArray(_uri$split,2),uriBeforeRegion=_uri$split2[0],uriAfterRegion=_uri$split2[1];return "".concat(uriBeforeRegion).concat(fileName,".").concat(outputFormat,"?region").concat(uriAfterRegion);}return "".concat(uri).concat(fileName,".").concat(outputFormat);};var newUri=encodeURIComponent(createNewUri());return library.getLibraryBatch({libraryId:libraryId,queryParams:_objectSpread({destinationUri:newUri},queryParams)});}var SUCCESSFUL_STATES=['FINISHED','FINISHED_WARNING'];var INACTIVE_STATES=['FINISHED','FINISHED_WARNING','FAILED_TOTAL','ABORTED'];function defaultOnGetFile(response,storageInfo,params,onError){var _response$data2=response.data;_response$data2=_response$data2===void 0?{}:_response$data2;var jobId=_response$data2.jobId;var id=storageInfo.id;var _params$fileName=params.fileName,fileName=_params$fileName===void 0?'output':_params$fileName,_params$outputFormat=params.outputFormat,outputFormat=_params$outputFormat===void 0?'csv':_params$outputFormat;var filePath="".concat(fileName,".").concat(outputFormat);job.getJob({jobId:jobId}).then(function(){var _ref2=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},_ref2$data=_ref2.data;_ref2$data=_ref2$data===void 0?{}:_ref2$data;var status=_ref2$data.status;if(SUCCESSFUL_STATES.includes(status)){try{file.listFileStorage({storageId:id,queryParams:{path:filePath,methodMetadata:[{key:'format',value:'SIGNED-AUTO'},{key:'contentDisposition',value:"attachment;+filename=".concat(filePath)}],'noauth-url':true}}).then(function(r){return window.open(r.data.file[0].uri[0]);});}catch(error){console.error('Download error:'.concat("\n",error));onError({message:'Download failed'});}}else if(!INACTIVE_STATES.includes(status)){setTimeout(function(){defaultOnGetFile(response,storageInfo,params);},1000);}else {onError({message:'Download failed'});}});}// Note: Not needed as a react-hook since doesn't use react,
7
+ // but this is usually where we put logic functions right now
8
+ var useCsvDownload=function useCsvDownload(_ref3){var itemListType=_ref3.itemListType,queryParams=_ref3.queryParams,onSuccess=_ref3.onSuccess,_ref3$onError=_ref3.onError,onError=_ref3$onError===void 0?function(_ref4){var message=_ref4.message,error=_ref4.error;return console.error("".concat(message,"\n").concat(error));}:_ref3$onError,_ref3$onGetFile=_ref3.onGetFile,onGetFile=_ref3$onGetFile===void 0?defaultOnGetFile:_ref3$onGetFile,_ref3$onCreateList=_ref3.onCreateList,onCreateList=_ref3$onCreateList===void 0?defaultOnCreate:_ref3$onCreateList,_ref3$onList=_ref3.onList,onList=_ref3$onList===void 0?defaultOnList:_ref3$onList,_ref3$onGetStorage=_ref3.onGetStorage,onGetStorage=_ref3$onGetStorage===void 0?defaultOnGetStorage:_ref3$onGetStorage;var onDownload=function onDownload(){return onGetStorage().then(function(storageInfo){return Promise.all([onCreateList(itemListType).then(function(response){return onList(response,storageInfo,queryParams);}).then(onSuccess()).then(function(response){return onGetFile(response,storageInfo,queryParams,onError);})]);});};return {onDownload:onDownload};};var useCsvDownload$1 = useCsvDownload;
9
+
10
+ export { useCsvDownload$1 as default };
@@ -0,0 +1,11 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import { useState, useRef } from 'react';
4
+ import _debounce from 'lodash.debounce';
5
+ import useDeepCompareEffect from 'use-deep-compare-effect';
6
+ import { item } from '@vidispine/vdt-api';
7
+ import useApi from './useApi.js';
8
+
9
+ function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}function useDocSearchAutocomplete(_ref){var searchDoc=_ref.searchDoc,queryParams=_ref.queryParams,debounceTime=_ref.debounceTime,_ref$suggestionSettin=_ref.suggestionSettings,suggestionSettings=_ref$suggestionSettin===void 0?{maximumSuggestions:10,accuracy:1}:_ref$suggestionSettin,_ref$triggerLength=_ref.triggerLength,triggerLength=_ref$triggerLength===void 0?1:_ref$triggerLength,_ref$apiCall=_ref.apiCall,apiCall=_ref$apiCall===void 0?item.searchItem:_ref$apiCall;var _useState=useState(''),_useState2=_slicedToArray(_useState,2),textValue=_useState2[0],setTextValue=_useState2[1];var handleAutocompleteChange=useRef(_debounce(setTextValue,debounceTime)).current;var _useApi=useApi(apiCall),_useApi$data=_useApi.data;_useApi$data=_useApi$data===void 0?{}:_useApi$data;var _useApi$data$autocomp=_useApi$data.autocomplete,autocomplete=_useApi$data$autocomp===void 0?[]:_useApi$data$autocomp,request=_useApi.request;var _ref2=autocomplete[0]||{},_ref2$suggestion=_ref2.suggestion,suggestion=_ref2$suggestion===void 0?[]:_ref2$suggestion;useDeepCompareEffect(function(){if(searchDoc&&textValue&&textValue.length>=triggerLength){request({body:_objectSpread(_objectSpread({},searchDoc),{},{suggestion:suggestionSettings,autocomplete:[{text:textValue}],text:[{value:textValue}]}),queryParams:_objectSpread({count:false,number:0},queryParams)});}},[request,textValue,queryParams,triggerLength]);return {suggestion:suggestion,handleAutocompleteChange:handleAutocompleteChange};}
10
+
11
+ export { useDocSearchAutocomplete as default };
@@ -0,0 +1,10 @@
1
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { useCallback } from 'react';
4
+ import { access } from '@vidispine/vdt-api';
5
+ import useApi from './useApi.js';
6
+
7
+ var _excluded=["accessId"],_excluded2=["accessControlDocument"];function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var useEntityAccess=function useEntityAccess(_ref){var entityId=_ref.entityId,entityType=_ref.entityType;var _useApi=useApi(access.listEntityAccess),listEntityAccess=_useApi.request,_useApi$data=_useApi.data,accessControlList=_useApi$data===void 0?{}:_useApi$data,isLoading=_useApi.isLoading;var onList=useCallback(function(){var props=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return listEntityAccess(_objectSpread({entityId:entityId,entityType:entityType},props));},// eslint-disable-next-line react-hooks/exhaustive-deps
8
+ [entityId,entityType]);var onRemove=useCallback(function(_ref2){var accessId=_ref2.accessId,props=_objectWithoutProperties(_ref2,_excluded);return access.removeEntityAccess(_objectSpread({accessId:accessId,entityId:entityId,entityType:entityType},props));},[entityId,entityType]);var onAdd=useCallback(function(_ref3){var accessControlDocument=_ref3.accessControlDocument,props=_objectWithoutProperties(_ref3,_excluded2);return access.createEntityAccess(_objectSpread({entityType:entityType,entityId:entityId,accessControlDocument:accessControlDocument},props));},[entityId,entityType]);return {accessControlList:accessControlList,isLoading:isLoading,onList:onList,onRemove:onRemove,onAdd:onAdd};};var useEntityAccess$1 = useEntityAccess;
9
+
10
+ export { useEntityAccess$1 as default };
@@ -0,0 +1,7 @@
1
+ import useDeepCompareEffect from 'use-deep-compare-effect';
2
+ import { collection } from '@vidispine/vdt-api';
3
+ import useApi from './useApi.js';
4
+
5
+ function useGetCollection(_ref){var collectionId=_ref.collectionId,_ref$queryParams=_ref.queryParams,queryParams=_ref$queryParams===void 0?{}:_ref$queryParams,_ref$refreshOnMount=_ref.refreshOnMount,refreshOnMount=_ref$refreshOnMount===void 0?true:_ref$refreshOnMount;var _useApi=useApi(collection.getCollection),request=_useApi.request,_useApi$data=_useApi.data,collectionType=_useApi$data===void 0?{}:_useApi$data,isLoading=_useApi.isLoading,isError=_useApi.isError;var onRefresh=function onRefresh(){return request({collectionId:collectionId,queryParams:queryParams});};useDeepCompareEffect(function(){if(refreshOnMount)onRefresh();},[collectionId,queryParams]);return {collectionType:collectionType,isLoading:isLoading,isError:isError,onRefresh:onRefresh};}
6
+
7
+ export { useGetCollection as default };
@@ -0,0 +1,7 @@
1
+ import useDeepCompareEffect from 'use-deep-compare-effect';
2
+ import { collection } from '@vidispine/vdt-api';
3
+ import useApi from './useApi.js';
4
+
5
+ function useGetCollection(_ref){var collectionId=_ref.collectionId,_ref$queryParams=_ref.queryParams,queryParams=_ref$queryParams===void 0?{}:_ref$queryParams,_ref$refreshOnMount=_ref.refreshOnMount,refreshOnMount=_ref$refreshOnMount===void 0?true:_ref$refreshOnMount;var _useApi=useApi(collection.getCollectionItem),request=_useApi.request,_useApi$data=_useApi.data,itemListType=_useApi$data===void 0?{}:_useApi$data;var onRefresh=function onRefresh(){return request({collectionId:collectionId,queryParams:queryParams});};useDeepCompareEffect(function(){if(refreshOnMount)onRefresh();},[collectionId,queryParams]);return {itemListType:itemListType,onRefresh:onRefresh};}
6
+
7
+ export { useGetCollection as default };
@@ -0,0 +1,16 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { useCallback } from 'react';
4
+ import { item, library, collection } from '@vidispine/vdt-api';
5
+ import useApi from './useApi.js';
6
+
7
+ var _excluded=["request","data"];function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}/**
8
+ * Get Entity by id and type
9
+ * @param {Object} object - Entity information object
10
+ * @param {string} object.entityId - Entity id
11
+ * @param {string} object.entityType - Entity type, ["item", "collection", "library"]
12
+ * @throws Throws error if unsupported type
13
+ * @returns {Object} Entity retrieved from VS
14
+ */var useGetEntity=function useGetEntity(_ref){var _objectSpread3;var entityId=_ref.entityId,entityType=_ref.entityType;var dataType;var entityApi;var entityTypeId;switch(entityType){case'collection':dataType='collectionType';entityTypeId='collectionId';entityApi=collection.getCollection;break;case'library':dataType='libraryType';entityTypeId='libraryId';entityApi=library.getLibrary;break;case'item':dataType='itemType';entityTypeId='itemId';entityApi=item.getItem;break;default:throw new Error("unknown entityType");}var _useApi=useApi(entityApi),request=_useApi.request,data=_useApi.data,apiProps=_objectWithoutProperties(_useApi,_excluded);var onGetEntity=useCallback(function(props){return request(_objectSpread(_defineProperty({},entityTypeId,entityId),props));},[entityId,entityTypeId,request]);return _objectSpread((_objectSpread3={},_defineProperty(_objectSpread3,dataType,data),_defineProperty(_objectSpread3,entityTypeId,entityId),_defineProperty(_objectSpread3,"onGetEntity",onGetEntity),_objectSpread3),apiProps);};var useGetEntity$1 = useGetEntity;
15
+
16
+ export { useGetEntity$1 as default };
@@ -0,0 +1,7 @@
1
+ import useDeepCompareEffect from 'use-deep-compare-effect';
2
+ import { metadata } from '@vidispine/vdt-api';
3
+ import useApi from './useApi.js';
4
+
5
+ function useGetEntityMetadata(_ref){var entity=_ref.entity,entityId=_ref.entityId,_ref$queryParams=_ref.queryParams,queryParams=_ref$queryParams===void 0?{}:_ref$queryParams,_ref$refreshOnMount=_ref.refreshOnMount,refreshOnMount=_ref$refreshOnMount===void 0?true:_ref$refreshOnMount;var _useApi=useApi(metadata.getEntityMetadata),request=_useApi.request,_useApi$data=_useApi.data,metadataType=_useApi$data===void 0?{}:_useApi$data,isLoading=_useApi.isLoading,isError=_useApi.isError;var onRefresh=function onRefresh(){return request({entity:entity,entityId:entityId,queryParams:queryParams});};useDeepCompareEffect(function(){if(refreshOnMount)onRefresh();},[entity,entityId,queryParams]);return {metadataType:metadataType,isLoading:isLoading,isError:isError,onRefresh:onRefresh};}
6
+
7
+ export { useGetEntityMetadata as default };
@@ -0,0 +1,7 @@
1
+ import useDeepCompareEffect from 'use-deep-compare-effect';
2
+ import { fieldgroup } from '@vidispine/vdt-api';
3
+ import useApi from './useApi.js';
4
+
5
+ function useGetFieldGroup(_ref){var groupName=_ref.groupName,_ref$queryParams=_ref.queryParams,queryParams=_ref$queryParams===void 0?{}:_ref$queryParams,_ref$refreshOnMount=_ref.refreshOnMount,refreshOnMount=_ref$refreshOnMount===void 0?true:_ref$refreshOnMount;var _useApi=useApi(fieldgroup.getFieldGroup),request=_useApi.request,_useApi$data=_useApi.data,metadataFieldGroupType=_useApi$data===void 0?{}:_useApi$data,isLoading=_useApi.isLoading,isError=_useApi.isError;var onRefresh=function onRefresh(){return request({groupName:groupName,queryParams:queryParams});};useDeepCompareEffect(function(){if(refreshOnMount)onRefresh();},[groupName,queryParams]);return {metadataFieldGroupType:metadataFieldGroupType,isLoading:isLoading,isError:isError,onRefresh:onRefresh};}
6
+
7
+ export { useGetFieldGroup as default };
@@ -0,0 +1,6 @@
1
+ import { metadatafield } from '@vidispine/vdt-api';
2
+ import useApi from './useApi.js';
3
+
4
+ function useGetFieldMetadataDataset(){var _useApi=useApi(metadatafield.getMetadataFieldAllowedValues),request=_useApi.request,_useApi$data=_useApi.data;_useApi$data=_useApi$data===void 0?{}:_useApi$data;var _useApi$data$value=_useApi$data.value,constraintValueListType=_useApi$data$value===void 0?[]:_useApi$data$value,isLoading=_useApi.isLoading;var getMetadataDataset=function getMetadataDataset(datasetField,parentValue,parentField){var metadataFieldValueConstraintListDocument={constraint:parentValue?[{field:parentField,value:parentValue}]:[]};if(datasetField){request({fieldName:datasetField,metadataFieldValueConstraintListDocument:metadataFieldValueConstraintListDocument});}};return {getMetadataDataset:getMetadataDataset,dataset:constraintValueListType,isLoading:isLoading};}
5
+
6
+ export { useGetFieldMetadataDataset as default };
@@ -0,0 +1,7 @@
1
+ import useDeepCompareEffect from 'use-deep-compare-effect';
2
+ import { item } from '@vidispine/vdt-api';
3
+ import useApi from './useApi.js';
4
+
5
+ function useGetItem(_ref){var itemId=_ref.itemId,_ref$queryParams=_ref.queryParams,queryParams=_ref$queryParams===void 0?{}:_ref$queryParams,_ref$refreshOnMount=_ref.refreshOnMount,refreshOnMount=_ref$refreshOnMount===void 0?true:_ref$refreshOnMount;var _useApi=useApi(item.getItem),request=_useApi.request,_useApi$data=_useApi.data,itemType=_useApi$data===void 0?{}:_useApi$data,isLoading=_useApi.isLoading,isError=_useApi.isError;var onRefresh=function onRefresh(){return request({itemId:itemId,queryParams:queryParams});};useDeepCompareEffect(function(){if(refreshOnMount)onRefresh();},[itemId,queryParams]);return {itemType:itemType,isLoading:isLoading,isError:isError,onRefresh:onRefresh};}
6
+
7
+ export { useGetItem as default };
@@ -0,0 +1,15 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
4
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
6
+ import { useState, useCallback, useEffect } from 'react';
7
+ import useDeepCompareEffect from 'use-deep-compare-effect';
8
+ import { collection, item } from '@vidispine/vdt-api';
9
+ import { createMetadataType } from '@vidispine/vdt-js';
10
+
11
+ var UPDATE_FREQUENCY=1000;// Prevents access controls set on the library (i.e. saved search) from cascading down to items
12
+ var UPDATE_MODE='TRANSIENT';var getCollectionTitle=function getCollectionTitle(fields){return fields.find(function(field){return field.name==='title';}).value[0].value;};function useGetSavedSearchFolders(_ref){var _ref$childFolders=_ref.childFolders,childFolders=_ref$childFolders===void 0?[]:_ref$childFolders,_ref$queryParams=_ref.queryParams,queryParams=_ref$queryParams===void 0?{content:['metadata']}:_ref$queryParams,_ref$markerProps=_ref.markerProps,markerProps=_ref$markerProps===void 0?{markerValue:'savedSearch',markerField:'eidr_referentType'}:_ref$markerProps,expand=_ref.expand;var _useState=useState(childFolders),_useState2=_slicedToArray(_useState,2),currentFolders=_useState2[0],setCurrentFolders=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),subFolders=_useState4[0],setSubFolders=_useState4[1];var _useState5=useState(),_useState6=_slicedToArray(_useState5,2),errors=_useState6[0],setErrors=_useState6[1];var getSubFolders=useCallback(function(){Promise.all(currentFolders.map(/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(id){var _yield$CollectionApi$,_yield$CollectionApi$2,content,_yield$CollectionApi$3,metadata,field;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return collection.getCollection({collectionId:id,queryParams:queryParams});case 2:_yield$CollectionApi$=_context.sent;_yield$CollectionApi$2=_yield$CollectionApi$.data;content=_yield$CollectionApi$2.content;_yield$CollectionApi$3=_yield$CollectionApi$2.metadata;metadata=_yield$CollectionApi$3===void 0?{}:_yield$CollectionApi$3;field=metadata.timespan[0].field;if(!(content&&content[0].type==='library')){_context.next=10;break;}return _context.abrupt("return",{id:id,libraryId:content[0].id,title:getCollectionTitle(field),type:'query',metadata:metadata});case 10:return _context.abrupt("return",{id:id,title:getCollectionTitle(field),subFolders:content&&content.map(function(c){return c.id;}),type:'folder',metadata:metadata});case 11:case"end":return _context.stop();}}},_callee);}));return function(_x){return _ref2.apply(this,arguments);};}())).then(function(newFolders){setSubFolders(function(prevState){return [].concat(_toConsumableArray(newFolders),_toConsumableArray(prevState));});})["catch"](function(error){setErrors(error);});},[currentFolders,queryParams]);var createFolder=function createFolder(parentId,folderMarkerType,markerValue,title,callback){var _createMetadataType;collection.createCollection({collectionDocument:{metadata:createMetadataType((_createMetadataType={},_defineProperty(_createMetadataType,folderMarkerType,markerValue),_defineProperty(_createMetadataType,"title",title),_createMetadataType))}}).then(function(_ref3){var id=_ref3.data.id;if(parentId){return collection.updateCollection({collectionId:parentId,collectionDocument:{content:[{id:id,mode:'add',type:'collection'}]}}).then(function(_ref4){var content=_ref4.data.content;if(content){setCurrentFolders(content.filter(function(collection){return collection.id===id;}).map(function(collection){return collection.id;}));if(callback)callback();}})["catch"](function(error){setErrors(error);});}return null;})["catch"](function(error){setErrors(error);});};var saveSearch=function saveSearch(folderId,title,itemSearchDocument,callback){try{item.searchItem({queryParams:{result:'library',updateMode:UPDATE_MODE,updateFrequency:UPDATE_FREQUENCY},itemSearchDocument:itemSearchDocument}).then(function(_ref5){var _createMetadataType2;var library=_ref5.data.library;return collection.createCollection({collectionDocument:{metadata:createMetadataType((_createMetadataType2={},_defineProperty(_createMetadataType2,markerProps.markerField,markerProps.markerValue),_defineProperty(_createMetadataType2,"title",title),_createMetadataType2)),content:[{id:library,type:'library'}]}});}).then(function(_ref6){var id=_ref6.data.id;return collection.updateCollection({collectionId:folderId,collectionDocument:{content:[{id:id,mode:'add',type:'collection'}]}}).then(function(_ref7){var content=_ref7.data.content;if(content){setCurrentFolders(content.filter(function(collection){return collection.id===id;}).map(function(collection){return collection.id;}));if(callback)callback();}})["catch"](function(error){setErrors(error);});})["catch"](function(error){setErrors(error);});}catch(error){setErrors(error);}};var deleteFolder=function deleteFolder(collectionId){return collection.removeCollection({collectionId:collectionId})["catch"](function(error){setErrors(error);});};var removeItem=function removeItem(id){setSubFolders(function(prevState){return prevState.filter(function(folder){return folder.id!==id;});});};useDeepCompareEffect(function(){if(currentFolders.length>0&&expand){getSubFolders();}},[currentFolders,expand]);useEffect(function(){if(!expand&&typeof expand==='boolean'){setCurrentFolders(function(){return subFolders.map(function(folder){return folder.id;});});setSubFolders([]);}// eslint-disable-next-line react-hooks/exhaustive-deps
13
+ },[expand]);return {createFolder:createFolder,saveSearch:saveSearch,getSubFolders:getSubFolders,deleteFolder:deleteFolder,removeItem:removeItem,subFolders:subFolders,setSubFolders:setSubFolders,setCurrentFolders:setCurrentFolders,errors:errors};}
14
+
15
+ export { useGetSavedSearchFolders as default };
@@ -0,0 +1,7 @@
1
+ import { useCallback, useEffect } from 'react';
2
+ import { group } from '@vidispine/vdt-api';
3
+ import useApi from './useApi.js';
4
+
5
+ function useGroup(initialState){var _useApi=useApi(group.getGroup,{data:initialState}),groupType=_useApi.data,request=_useApi.request;var _ref=groupType||{},groupName=_ref.groupName;var getGroup=useCallback(function(){return request({groupName:groupName});},[request,groupName]);useEffect(function(){if(groupName)getGroup();},[getGroup,groupName]);var updateGroup=useCallback(function(_ref2){var groupDocument=_ref2.groupDocument;return group.updateGroup({groupName:groupName,groupDocument:groupDocument}).then(getGroup);},[getGroup,groupName]);var addChildGroups=useCallback(function(_ref3){var groups=_ref3.groups;return group.updateGroup({groupName:groupName,groupDocument:{childGroupList:{group:groups.map(function(g){return {groupName:g};})}}}).then(getGroup);},[getGroup,groupName]);var addParentGroups=useCallback(function(_ref4){var groups=_ref4.groups;return group.updateGroup({groupName:groupName,groupDocument:{parentGroupList:{group:groups.map(function(g){return {groupName:g};})}}}).then(getGroup);},[getGroup,groupName]);var addUsersToGroup=useCallback(function(_ref5){var users=_ref5.users;return group.updateGroup({groupName:groupName,groupDocument:{userList:{user:users.map(function(u){return {userName:u};})}}}).then(getGroup);},[getGroup,groupName]);var removeUserFromGroup=useCallback(function(userName){return group.removeGroupUser({groupName:groupName,userName:userName}).then(getGroup);},[getGroup,groupName]);var removeChildGroup=useCallback(function(childGroupName){return group.removeGroupChildren({groupName:groupName,childGroupName:childGroupName}).then(getGroup);},[getGroup,groupName]);var removeFromParentGroup=useCallback(function(parentGroupName){return group.removeGroupChildren({groupName:parentGroupName,childGroupName:groupName}).then(getGroup);},[getGroup,groupName]);var removeGroup=useCallback(function(){return group.removeGroup({groupName:groupName});},[groupName]);return {groupType:groupType,getGroup:getGroup,updateGroup:updateGroup,removeGroup:removeGroup,addChildGroups:addChildGroups,addParentGroups:addParentGroups,addUsersToGroup:addUsersToGroup,removeUserFromGroup:removeUserFromGroup,removeChildGroup:removeChildGroup,removeFromParentGroup:removeFromParentGroup};}
6
+
7
+ export { useGroup as default };
@@ -0,0 +1,17 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useState, useRef, useCallback } from 'react';
3
+ import _debounce from 'lodash.debounce';
4
+ import useDeepCompareEffect from 'use-deep-compare-effect';
5
+ import { formatTimeCodeSeconds, formatTimeCodeText } from '@vidispine/vdt-js';
6
+
7
+ var defaultGetThumbnailTimeCodes=function defaultGetThumbnailTimeCodes(srcList){var timeCodes=[];for(var index=0;index<srcList.length;index+=1){var uri=srcList[index];if(uri&&typeof uri==='string'){try{var timeCodeFromURI=uri.split('version')[1].split('/')[1].split('?')[0];var timecodeText=formatTimeCodeText(timeCodeFromURI);timeCodes.push(timecodeText);}catch(error){// ignore
8
+ }}}return timeCodes;};/**
9
+ * Display timecode correlating to mouse position when hovering over an element
10
+ * @param {string[]} srcList - List of image/thumbnail urls.
11
+ * @param {number} customOffset=0 - Add custom offset for the mouse position.
12
+ * @param {number} durationSeconds - Total duration in seconds (of clip) that the thumbnails are scrubbed over.
13
+ * @param {function} getThumbnailTimeCodes - Extracts timecodes from VidiCore thumbnail uris. Override for custom thumbnails.
14
+ * @returns {Object}
15
+ */function useHoverScrub(){var srcList=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var customOffset=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var durationSeconds=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;var getThumbnailTimeCodes=arguments.length>3&&arguments[3]!==undefined?arguments[3]:defaultGetThumbnailTimeCodes;var _useState=useState(0),_useState2=_slicedToArray(_useState,2),scrubPosition=_useState2[0],setScrubPosition=_useState2[1];var _useState3=useState(0),_useState4=_slicedToArray(_useState3,2),thumbnailIndex=_useState4[0],setThumbnailIndex=_useState4[1];var _useState5=useState(false),_useState6=_slicedToArray(_useState5,2),showScrub=_useState6[0],setShowScrub=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),thumbnailTimeCodeArray=_useState8[0],setThumbnailTimeCodeArray=_useState8[1];var _useState9=useState(),_useState10=_slicedToArray(_useState9,2),thumbnailTimeCode=_useState10[0],setThumbnailTimeCode=_useState10[1];var _useState11=useState(0),_useState12=_slicedToArray(_useState11,2),thumbnailWidth=_useState12[0],setThumbnailWidth=_useState12[1];var debouncedSetNewThumbnail=useRef(_debounce(function(val){setThumbnailIndex(val);},10)).current;var getOffsetLeft=function getOffsetLeft(element){try{return Math.round(element.getBoundingClientRect().left);}catch(error){return 0;}};var getMouseElementPosition=useCallback(function(e){var mouseElementPosition=e.clientX-getOffsetLeft(e.currentTarget)-customOffset;var elementWidth=e.currentTarget.offsetWidth;if(mouseElementPosition<0){return 0;}if(mouseElementPosition>elementWidth){return elementWidth;}return mouseElementPosition;},[customOffset]);var indexOfPrecededTimeCode=function indexOfPrecededTimeCode(num,arr){var curr=arr[0];var diff=Math.abs(num-curr);var index=0;for(var val=0;val<arr.length;val+=1){var newDiff=Math.abs(num-arr[val]);var isPositiveDiff=num-arr[val]>0;if(newDiff<diff&&isPositiveDiff){diff=newDiff;curr=arr[val];index=val;}}return index;};var onMouseMove=function onMouseMove(e){if(durationSeconds){var mouseElementPosition=getMouseElementPosition(e);setScrubPosition(mouseElementPosition-1);if(thumbnailWidth!==e.currentTarget.offsetWidth){setThumbnailWidth(e.currentTarget.offsetWidth);}var mouseTimecodePosition=mouseElementPosition/(e.currentTarget.offsetWidth/+durationSeconds);setThumbnailTimeCode(formatTimeCodeSeconds(mouseTimecodePosition));var newIndex=indexOfPrecededTimeCode(mouseTimecodePosition,thumbnailTimeCodeArray.map(function(tc){return tc.toSeconds().toFixed(0);}));if(newIndex!==thumbnailIndex){debouncedSetNewThumbnail(newIndex);}}};useDeepCompareEffect(function(){var timeCodes=getThumbnailTimeCodes(srcList);setThumbnailTimeCodeArray(timeCodes);},[srcList]);var handleShowScrub=function handleShowScrub(value){return function(){if(durationSeconds>0){setShowScrub(value);}};};return {thumbnailIndex:thumbnailIndex,thumbnailTimeCode:thumbnailTimeCode,thumbnailWidth:thumbnailWidth,showScrub:showScrub,scrubPosition:scrubPosition,handleShowScrub:handleShowScrub,onMouseMove:onMouseMove};}
16
+
17
+ export { useHoverScrub as default, useHoverScrub };
@@ -0,0 +1,5 @@
1
+ import { useRef, useEffect } from 'react';
2
+
3
+ function useInterval(callback,delay){var savedCallback=useRef();useEffect(function(){savedCallback.current=callback;},[callback]);useEffect(function(){var tick=function tick(){return savedCallback.current();};var id=setInterval(tick,delay);return function(){return clearInterval(id);};},[delay]);}
4
+
5
+ export { useInterval as default };
@@ -0,0 +1,9 @@
1
+ import _typeof from '@babel/runtime/helpers/typeof';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
+ import { useReducer } from 'react';
6
+
7
+ var _excluded=["type"];function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return _typeof(key)==="symbol"?key:String(key);}function _toPrimitive(input,hint){if(_typeof(input)!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||"default");if(_typeof(res)!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.");}return (hint==="string"?String:Number)(input);}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var CHANGE_PAGE='CHANGE_PAGE';var CHANGE_ROWS='CHANGE_ROWS';var CHANGE_SORT='CHANGE_SORT';var CHANGE_TYPE='CHANGE_TYPE';var CHANGE_STATE='CHANGE_STATE';var CHANGE_PRIORITY='CHANGE_PRIORITY';var CHANGE_STARTTIME='CHANGE_STARTTIME';var CHANGE_FINISHTIME='CHANGE_FINISHTIME';var ACTION_TYPE={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};var setInitialDefaultState=function setInitialDefaultState(){var _ref=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},_ref$queryParams=_ref.queryParams,queryParams=_ref$queryParams===void 0?{}:_ref$queryParams,_ref$matrixParams=_ref.matrixParams,matrixParams=_ref$matrixParams===void 0?{}:_ref$matrixParams;return {queryParams:queryParams,matrixParams:_objectSpread({first:1,number:10},matrixParams),rowsPerPage:10,page:0,jobMetadata:[]};};var searchReducer=function searchReducer(state,action){var type=action.type,rest=_objectWithoutProperties(action,_excluded);switch(type){case ACTION_TYPE.CHANGE_PAGE:{var _action$page=action.page,page=_action$page===void 0?0:_action$page;var _state$rowsPerPage=state.rowsPerPage,rowsPerPage=_state$rowsPerPage===void 0?10:_state$rowsPerPage;return _objectSpread(_objectSpread({},state),{},{page:page,matrixParams:_objectSpread(_objectSpread({},state.matrixParams),{},{first:page*rowsPerPage+1})});}case ACTION_TYPE.CHANGE_ROWS:{var _rowsPerPage=action.rowsPerPage;return _objectSpread(_objectSpread({},state),{},{rowsPerPage:_rowsPerPage,page:0,matrixParams:_objectSpread(_objectSpread({},state.matrixParams),{},{first:1,number:_rowsPerPage})});}case ACTION_TYPE.CHANGE_SORT:{var field=action.field,_action$order=action.order,order=_action$order===void 0?'desc':_action$order;return _objectSpread(_objectSpread({},state),{},{page:0,matrixParams:_objectSpread(_objectSpread({},state.matrixParams),{},{first:1,sort:"".concat(field," ").concat(order)})});}case ACTION_TYPE.CHANGE_TYPE:case ACTION_TYPE.CHANGE_STATE:case ACTION_TYPE.CHANGE_PRIORITY:{var _field=rest.field,_rest$value=rest.value,value=_rest$value===void 0?[]:_rest$value;var matrixParams;if(!value){var _state$matrixParams=state.matrixParams;_state$matrixParams[_field];var newMatrixParams=_objectWithoutProperties(_state$matrixParams,[_field].map(_toPropertyKey));matrixParams=_objectSpread(_objectSpread({},newMatrixParams),{},{first:1});}else {matrixParams=_objectSpread(_objectSpread({},state.matrixParams),{},_defineProperty({first:1},_field,Array.isArray(value)?value.join(','):value));}return _objectSpread(_objectSpread({},state),{},{page:0,matrixParams:matrixParams});}case ACTION_TYPE.CHANGE_STARTTIME:case ACTION_TYPE.CHANGE_FINISHTIME:{var _field2=rest.field,_rest$value2=rest.value,_value=_rest$value2===void 0?[]:_rest$value2;var queryParams;if(!_value){var _state$queryParams=state.queryParams;_state$queryParams[_field2];var newQueryParams=_objectWithoutProperties(_state$queryParams,[_field2].map(_toPropertyKey));queryParams=_objectSpread(_objectSpread({},newQueryParams),{},{first:1});}else {queryParams=_objectSpread(_objectSpread({},state.queryParams),{},_defineProperty({first:1},_field2,_value));}return _objectSpread(_objectSpread({},state),{},{page:0,queryParams:queryParams});}case ACTION_TYPE.CHANGE_JOBMETADATA:{var _field3=rest.field,_rest$value3=rest.value,_value2=_rest$value3===void 0?[]:_rest$value3;var _queryParams;if(!_value2.length){var _state$queryParams2=state.queryParams;_state$queryParams2[_field3];var _newQueryParams=_objectWithoutProperties(_state$queryParams2,[_field3].map(_toPropertyKey));_queryParams=_objectSpread(_objectSpread({},_newQueryParams),{},{first:1});}else {_queryParams=_objectSpread(_objectSpread({},state.queryParams),{},_defineProperty({first:1},_field3,_value2));}return _objectSpread(_objectSpread({},state),{},{page:0,queryParams:_queryParams,jobMetadata:_value2});}default:return state;}};function useJobSearch(initialState){var initialDefaultState=setInitialDefaultState(initialState);var _useReducer=useReducer(searchReducer,initialDefaultState),_useReducer2=_slicedToArray(_useReducer,2),state=_useReducer2[0],dispatch=_useReducer2[1];var onChangeRowsPerPage=function onChangeRowsPerPage(){var _ref2=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},rowsPerPage=_ref2.target.value;return dispatch({type:ACTION_TYPE.CHANGE_ROWS,rowsPerPage:rowsPerPage});};var onChangePage=function onChangePage(_ref3){var page=_ref3.page;return dispatch({type:ACTION_TYPE.CHANGE_PAGE,page:page});};var onChangeSort=function onChangeSort(event,field,order){var fieldName=_typeof(field)==='object'?field.value:field;dispatch({type:ACTION_TYPE.CHANGE_SORT,field:fieldName,order:order});};var onChangeType=function onChangeType(_ref4){var _ref4$field=_ref4.field,field=_ref4$field===void 0?[]:_ref4$field;var _field4=_slicedToArray(field,1),_field4$=_field4[0],_field4$$name=_field4$.name,name=_field4$$name===void 0?'type':_field4$$name,_field4$$value=_field4$.value,value=_field4$$value===void 0?[]:_field4$$value;dispatch({type:ACTION_TYPE.CHANGE_TYPE,field:name,value:value.length?value[0].value:null});};var onChangeState=function onChangeState(_ref5){var _ref5$field=_ref5.field,field=_ref5$field===void 0?[]:_ref5$field;var _field5=_slicedToArray(field,1),_field5$=_field5[0],_field5$$name=_field5$.name,name=_field5$$name===void 0?'state':_field5$$name,_field5$$value=_field5$.value,value=_field5$$value===void 0?[]:_field5$$value;dispatch({type:ACTION_TYPE.CHANGE_STATE,field:name,value:value.length?value[0].value:null});};var onChangePriority=function onChangePriority(_ref6){var _ref6$field=_ref6.field,field=_ref6$field===void 0?[]:_ref6$field;var _field6=_slicedToArray(field,1),_field6$=_field6[0],_field6$$name=_field6$.name,name=_field6$$name===void 0?'priority':_field6$$name,_field6$$value=_field6$.value,value=_field6$$value===void 0?[]:_field6$$value;dispatch({type:ACTION_TYPE.CHANGE_PRIORITY,field:name,value:value.length?value[0].value:null});};var onChangeStarttime=function onChangeStarttime(_ref7){var _ref7$field=_ref7.field,field=_ref7$field===void 0?[]:_ref7$field;var _field7=_slicedToArray(field,1),_field7$=_field7[0],_field7$$name=_field7$.name,name=_field7$$name===void 0?'starttime-from':_field7$$name,_field7$$value=_field7$.value,value=_field7$$value===void 0?[]:_field7$$value;dispatch({type:ACTION_TYPE.CHANGE_STARTTIME,field:name,value:value.length?value[0].value:null});};var onChangeFinishtime=function onChangeFinishtime(_ref8){var _ref8$field=_ref8.field,field=_ref8$field===void 0?[]:_ref8$field;var _field8=_slicedToArray(field,1),_field8$=_field8[0],_field8$$name=_field8$.name,name=_field8$$name===void 0?'finishtime-from':_field8$$name,_field8$$value=_field8$.value,value=_field8$$value===void 0?[]:_field8$$value;dispatch({type:ACTION_TYPE.CHANGE_FINISHTIME,field:name,value:value.length?value[0].value:null});};var onChangeJobmetadata=function onChangeJobmetadata(value){dispatch({type:ACTION_TYPE.CHANGE_JOBMETADATA,field:'jobmetadata',value:value});};return {state:state,onChangePage:onChangePage,onChangeSort:onChangeSort,onChangeType:onChangeType,onChangeState:onChangeState,onChangePriority:onChangePriority,onChangeStarttime:onChangeStarttime,onChangeFinishtime:onChangeFinishtime,onChangeRowsPerPage:onChangeRowsPerPage,onChangeJobmetadata:onChangeJobmetadata};}
8
+
9
+ export { useJobSearch as default };
@@ -0,0 +1,8 @@
1
+ import { useEffect } from 'react';
2
+ import { group } from '@vidispine/vdt-api';
3
+ import useApi from './useApi.js';
4
+
5
+ var useListGroup=function useListGroup(args){var _useApi=useApi(group.listGroup),request=_useApi.request,_useApi$data=_useApi.data,groupListType=_useApi$data===void 0?{}:_useApi$data,isLoading=_useApi.isLoading;var onRefresh=function onRefresh(){return request(args);};useEffect(function(){onRefresh();// eslint-disable-next-line react-hooks/exhaustive-deps
6
+ },[args]);return {onRefresh:onRefresh,groupListType:groupListType,isLoading:isLoading};};var useListGroup$1 = useListGroup;
7
+
8
+ export { useListGroup$1 as default };
@@ -0,0 +1,8 @@
1
+ import { useEffect } from 'react';
2
+ import { user } from '@vidispine/vdt-api';
3
+ import useApi from './useApi.js';
4
+
5
+ var useListUser=function useListUser(args){var _useApi=useApi(user.listUser),request=_useApi.request,_useApi$data=_useApi.data,userListType=_useApi$data===void 0?{}:_useApi$data,isLoading=_useApi.isLoading;var onRefresh=function onRefresh(){return request(args);};useEffect(function(){onRefresh();// eslint-disable-next-line react-hooks/exhaustive-deps
6
+ },[args]);return {onRefresh:onRefresh,userListType:userListType,isLoading:isLoading};};var useListUser$1 = useListUser;
7
+
8
+ export { useListUser$1 as default };
@@ -0,0 +1,6 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useState, useEffect } from 'react';
3
+
4
+ var useLocalStorage=function useLocalStorage(localStorageKey,defaultValue){var _useState=useState(JSON.parse(window.localStorage.getItem(localStorageKey)||JSON.stringify(defaultValue))),_useState2=_slicedToArray(_useState,2),value=_useState2[0],setValue=_useState2[1];useEffect(function(){window.localStorage.setItem(localStorageKey,JSON.stringify(value));},[localStorageKey,value]);var getValue=function getValue(){return JSON.parse(window.localStorage.getItem(localStorageKey));};return [value,setValue,getValue];};var useLocalStorage$1 = useLocalStorage;
5
+
6
+ export { useLocalStorage$1 as default };
@@ -0,0 +1,6 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useState, useEffect } from 'react';
3
+
4
+ var useMouseDownPosition=function useMouseDownPosition(){var _useState=useState({x:0,y:0}),_useState2=_slicedToArray(_useState,2),position=_useState2[0],setPosition=_useState2[1];useEffect(function(){var setFromEvent=function setFromEvent(e){return setPosition({x:e.clientX,y:e.clientY});};window.addEventListener('mousedown',setFromEvent);return function(){window.removeEventListener('mousedown',setFromEvent);};},[]);return position;};var useMouseDownPosition$1 = useMouseDownPosition;
5
+
6
+ export { useMouseDownPosition$1 as default, useMouseDownPosition };
@@ -0,0 +1,7 @@
1
+ import { useRef, useMemo } from 'react';
2
+ import { b64DecodeUnicode } from '../utils.js';
3
+
4
+ // TODO: change to expose "onNavigate" and take in "path" and "search" strings
5
+ function useQueryInitialState(_ref){var history=_ref.history,navigate=_ref.navigate,propLocation=_ref.location,_ref$queryName=_ref.queryName,queryName=_ref$queryName===void 0?'q':_ref$queryName,_ref$defaultState=_ref.defaultState,defaultState=_ref$defaultState===void 0?undefined:_ref$defaultState;var defaultStateRef=useRef(defaultState);var queryState=useMemo(function(){var _ref2=history||{},_ref2$location=_ref2.location,location=_ref2$location===void 0?propLocation:_ref2$location;var searchParams=new URLSearchParams(location.search);var encodedQuery=searchParams.get(queryName);if(!encodedQuery){return defaultStateRef.current;}try{var decodedQuery=b64DecodeUnicode(encodedQuery);return JSON.parse(decodedQuery);}catch(error){if(history){history.replace({pathName:history.location.pathName,search:''});}else if(navigate){navigate(location.pathName,{replace:true});}}return undefined;},[history,navigate,propLocation,queryName]);return {queryInitialState:queryState};}
6
+
7
+ export { useQueryInitialState as default };
@@ -0,0 +1,12 @@
1
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
4
+ import { useState, useEffect } from 'react';
5
+ import { collection } from '@vidispine/vdt-api';
6
+ import { parseMetadataType, createMetadataType } from '@vidispine/vdt-js';
7
+
8
+ var useRepresentativeItems=function useRepresentativeItems(_ref){var collectionId=_ref.collectionId,onError=_ref.onError;var _useState=useState([]),_useState2=_slicedToArray(_useState,2),representativeItems=_useState2[0],setRepresentativeItems=_useState2[1];var asyncGetRepresentativeItems=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var _yield$CollectionApi$,_yield$CollectionApi$2,metadata,_parseMetadataType,_parseMetadataType$re,newRepresentativeItems;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.prev=0;if(collectionId){_context.next=3;break;}throw Error('Missing collectionId');case 3:_context.next=5;return collection.getCollectionMetadata({collectionId:collectionId,queryParams:{content:'metadata',field:'representativeItems'}})["catch"](function(error){if(onError)onError(error);});case 5:_yield$CollectionApi$=_context.sent;_yield$CollectionApi$2=_yield$CollectionApi$.data;metadata=_yield$CollectionApi$2===void 0?{}:_yield$CollectionApi$2;_parseMetadataType=parseMetadataType(metadata,{flat:true,includeValueAttributes:true}),_parseMetadataType$re=_parseMetadataType.representativeItems,newRepresentativeItems=_parseMetadataType$re===void 0?[]:_parseMetadataType$re;setRepresentativeItems(function(){return newRepresentativeItems;});_context.next=15;break;case 12:_context.prev=12;_context.t0=_context["catch"](0);if(onError)onError(_context.t0);case 15:case"end":return _context.stop();}}},_callee,null,[[0,12]]);}));return function asyncGetRepresentativeItems(){return _ref2.apply(this,arguments);};}();var onRefresh=asyncGetRepresentativeItems;var updateAsRepresentativeItem=/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(values){var metadataDocument,response;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:_context2.prev=0;metadataDocument=createMetadataType({representativeItems:Array.isArray(values)?values:[values]});_context2.next=4;return collection.updateCollectionMetadata({collectionId:collectionId,metadataDocument:metadataDocument});case 4:response=_context2.sent;onRefresh();return _context2.abrupt("return",response);case 9:_context2.prev=9;_context2.t0=_context2["catch"](0);if(onError)onError(_context2.t0);return _context2.abrupt("return",undefined);case 13:case"end":return _context2.stop();}}},_callee2,null,[[0,9]]);}));return function updateAsRepresentativeItem(_x){return _ref3.apply(this,arguments);};}();var onAdd=function onAdd(entityId){return updateAsRepresentativeItem({value:entityId,mode:'add'});};var onRemove=function onRemove(entityId){try{// Get all (if it has been added multiple times)
9
+ var entityIdValueUuids=representativeItems.filter(function(i){return i.value===entityId;}).map(function(i){return i.uuid;});if(!entityIdValueUuids.length)return undefined;return updateAsRepresentativeItem(entityIdValueUuids.map(function(uuid){return {uuid:uuid,mode:'remove'};}));}catch(error){if(onError)onError(error);return undefined;}};useEffect(function(){onRefresh();// eslint-disable-next-line react-hooks/exhaustive-deps
10
+ },[collectionId]);return {representativeItems:representativeItems,onRefresh:onRefresh,onAdd:onAdd,onRemove:onRemove};};var useRepresentativeItems$1 = useRepresentativeItems;
11
+
12
+ export { useRepresentativeItems$1 as default };
@@ -0,0 +1,12 @@
1
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import { useCallback } from 'react';
5
+ import { collection, item, library } from '@vidispine/vdt-api';
6
+ import { createMetadataType } from '@vidispine/vdt-js';
7
+ import useSearch from './useSearch.js';
8
+
9
+ var _excluded=["setItemSearchDocument"];function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var UPDATE_FREQUENCY=1000;// Prevents access controls set on the library (i.e. saved search) from cascading down to items
10
+ var UPDATE_MODE='TRANSIENT';function saveSearch(_ref){var metadata=_ref.metadata,markerField=_ref.markerField,markerValue=_ref.markerValue,itemSearchDocument=_ref.itemSearchDocument;return item.searchItem({queryParams:{result:'library',updateMode:UPDATE_MODE,updateFrequency:UPDATE_FREQUENCY},itemSearchDocument:itemSearchDocument}).then(function(_ref2){var library=_ref2.data.library;return collection.createCollection({collectionDocument:{metadata:markerField?createMetadataType(_objectSpread(_defineProperty({},markerField,markerValue||library),metadata)):metadata,content:[{id:library,type:'library'}]}});});}var getLibraryFromCollection=function getLibraryFromCollection(_ref3){var collectionId=_ref3.collectionId;return new Promise(function(resolve,reject){collection.getCollection({collectionId:collectionId,queryParams:{children:'library'}}).then(function(_ref4){var collectionType=_ref4.data;var _collectionType$conte=collectionType.content,content=_collectionType$conte===void 0?[]:_collectionType$conte;var _content=_slicedToArray(content,1),libraryType=_content[0];if(!libraryType)reject(new Error('No Libraries'));resolve(libraryType);});});};var deleteSearch=function deleteSearch(_ref5){var collectionId=_ref5.collectionId;return getLibraryFromCollection({collectionId:collectionId}).then(function(_ref6){var libraryId=_ref6.id;return Promise.all([library.removeLibrary({libraryId:libraryId}),collection.removeCollection({collectionId:collectionId})]);});};function getLibrarySettings(_ref7){var libraryId=_ref7.libraryId;return new Promise(function(resolve){library.getLibrarySettings({libraryId:libraryId}).then(function(_ref8){var query=_ref8.data.query;resolve(query);});});}var getSavedSearchSettings=function getSavedSearchSettings(_ref9){var collectionId=_ref9.collectionId;return new Promise(function(resolve){getLibraryFromCollection({collectionId:collectionId}).then(function(_ref10){var libraryId=_ref10.id;return getLibrarySettings({libraryId:libraryId});}).then(resolve);});};function useSavedSearch(_ref11){var markerField=_ref11.markerField,markerValue=_ref11.markerValue,initialSearchState=_ref11.initialSearchState,_ref11$onSaveSearch=_ref11.onSaveSearch,onSaveSearch=_ref11$onSaveSearch===void 0?saveSearch:_ref11$onSaveSearch,_ref11$onDeleteSearch=_ref11.onDeleteSearch,onDeleteSearch=_ref11$onDeleteSearch===void 0?deleteSearch:_ref11$onDeleteSearch,_ref11$onUpdateSearch=_ref11.onUpdateSearchMetadata,onUpdateSearchMetadata=_ref11$onUpdateSearch===void 0?collection.updateCollectionMetadata:_ref11$onUpdateSearch,_ref11$onGetSavedSear=_ref11.onGetSavedSearchSettings,onGetSavedSearchSettings=_ref11$onGetSavedSear===void 0?getSavedSearchSettings:_ref11$onGetSavedSear;var saveSearchWithMarker=useCallback(function(_ref12){var metadata=_ref12.metadata,itemSearchDocument=_ref12.itemSearchDocument;return onSaveSearch({metadata:metadata,markerField:markerField,markerValue:markerValue,itemSearchDocument:itemSearchDocument});},[markerField,markerValue,onSaveSearch]);var mergeMarkerField=function mergeMarkerField(){var itemSearchDocument=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return _objectSpread(_objectSpread({},itemSearchDocument),{},{operator:{field:[{name:markerField,value:[{value:markerValue||'*'}]}],operator:itemSearchDocument.operator?[itemSearchDocument.operator]:[],operation:'AND'}});};var searchProps=useSearch(_objectSpread(_objectSpread({},initialSearchState),{},{itemSearchDocument:mergeMarkerField()}));var _setItemSearchDocument=searchProps.setItemSearchDocument,props=_objectWithoutProperties(searchProps,_excluded);return {onSaveSearch:saveSearchWithMarker,onDeleteSearch:onDeleteSearch,onUpdateSearchMetadata:onUpdateSearchMetadata,onGetSavedSearchSettings:onGetSavedSearchSettings,searchProps:_objectSpread({setItemSearchDocument:function setItemSearchDocument(itemSearchDocument){return _setItemSearchDocument(mergeMarkerField(itemSearchDocument));}},props)};}
11
+
12
+ export { useSavedSearch as default };