@vidispine/vdt-react 0.15.0-pre.18 → 0.15.0-pre.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/hooks/useApi.js","../src/hooks/useSearch.js","../src/hooks/useUpdateEffect.js","../src/hooks/useAutocomplete.js","../src/hooks/useSelected.js","../src/hooks/useTab.js","../src/hooks/useInterval.js","../src/hooks/useThumbnailScrub.js","../src/hooks/useJobSearch.js","../src/hooks/useLocalStorage.js","../src/utils.js","../src/hooks/useUploadFiles.js","../src/hooks/useQueryInitialState.js","../src/hooks/useUpdateQueryState.js","../src/hooks/useEntityAccess.js","../src/hooks/useAddMetadataFieldAttributes.js","../src/hooks/useSavedSearch.js","../src/hooks/useSearchItem.js","../src/hooks/useMouseDownPosition.js","../src/hooks/useGetCollection.js","../src/hooks/useGetCollectionItem.js","../src/hooks/useGetEntity.js","../src/hooks/useUser.js","../src/hooks/useSearchUser.js","../src/hooks/useListGroup.js","../src/hooks/useListUser.js","../src/hooks/useSearchGroup.js","../src/hooks/useGroup.js","../src/hooks/useGetItem.js","../src/hooks/useCollectionAutoPlay.js","../src/hooks/useHoverScrub.js","../src/wrappers/MetadataType.js","../src/wrappers/SearchCollection.js","../src/wrappers/SearchItem.js","../src/wrappers/SearchItemCollection.js","../src/wrappers/GetItem.js","../src/wrappers/GetCollection.js","../src/wrappers/GetJobs.js","../src/wrappers/ListEntityAccess.js","../src/wrappers/VidispineApi.js","../src/wrappers/Auth.js","../src/wrappers/ErrorBoundary.js","../src/wrappers/GetFieldGroup.js","../src/context/RolesContext.js","../src/wrappers/HasRole.js","../src/wrappers/ComposeProviders.js","../src/hoc/withErrorBoundary.js","../src/hoc/compose.js","../src/context/BinContext.js","../src/context/SettingsContext.js","../src/context/AuthContext.js","../src/DropArea.js","../src/moveEntity.js"],"sourcesContent":["import React from 'react';\nimport { utils as api } from '@vidispine/vdt-api';\n\nconst setDefaultState = (\n {\n hasLoaded = false,\n isLoading = true,\n isError = false,\n response = undefined,\n data = undefined,\n } = {},\n responseRef,\n) => ({\n isLoading,\n hasLoaded,\n isError,\n response,\n data: responseRef && responseRef.current ? responseRef.current : data,\n});\n\nconst apiReducer = (state, action) => {\n switch (action.type) {\n case 'START': {\n return {\n ...state,\n isLoading: true,\n isError: false,\n };\n }\n case 'SUCCESS': {\n const { responseType } = action.response;\n const newState = {\n isLoading: false,\n isError: false,\n hasLoaded: true,\n response: action.response,\n data: action.response.data,\n };\n if (responseType) newState[responseType] = action.response[responseType];\n return newState;\n }\n case 'ERROR': {\n return {\n isLoading: false,\n isError: true,\n hasLoaded: true,\n response: action.response,\n data: action.response.data,\n };\n }\n case 'RESET': {\n return {\n ...action.initialState,\n };\n }\n default: {\n return state;\n }\n }\n};\n\nconst canceltoken = api.CancelToken.source();\n\nexport default function useApi(apiHandler, initialState, responseRef) {\n const initialDefaultState = setDefaultState(initialState, responseRef);\n const initialStateRef = React.useRef(initialDefaultState);\n const [state, dispatch] = React.useReducer(apiReducer, initialDefaultState);\n const request = React.useCallback(\n (props) => {\n dispatch({ type: 'START' });\n return new Promise((resolve, reject) => {\n apiHandler({ canceltoken, ...props })\n .then((response) => {\n resolve(response);\n dispatch({ type: 'SUCCESS', response });\n // eslint-disable-next-line no-param-reassign\n if (responseRef) responseRef.current = response.data;\n })\n .catch((response) => {\n reject(response);\n dispatch({ type: 'ERROR', response });\n });\n });\n },\n [apiHandler, responseRef],\n );\n const reset = React.useCallback(\n () => dispatch({ type: 'RESET', initialState: initialStateRef.current }),\n [],\n );\n React.useEffect(() => canceltoken.cancel, []);\n return {\n request,\n reset,\n ...state,\n };\n}\n","import React from 'react';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_SEARCHTEXT = 'CHANGE_SEARCHTEXT';\nconst CHANGE_SEARCHFIELD = 'CHANGE_SEARCHFIELD';\nconst CHANGE_SEARCHFIELDFACET = 'CHANGE_SEARCHFIELDFACET';\nconst CHANGE_SEARCHFILTER = 'CHANGE_SEARCHFILTER';\nconst CHANGE_SEARCHFILTERFACET = 'CHANGE_SEARCHFILTERFACET';\nconst CHANGE_PARENT_COLLECTION = 'CHANGE_PARENT_COLLECTION';\nconst CHANGE_FACET = 'CHANGE_FACET';\nconst CHANGE_ITEMSEARCHDOCUMENT = 'CHANGE_ITEMSEARCHDOCUMENT';\nconst CHANGE_QUERYPARAMS = 'CHANGE_QUERYPARAMS';\nconst CHANGE_MATRIXPARAMS = 'CHANGE_MATRIXPARAMS';\nconst CHANGE_SUGGESTION = 'CHANGE_SUGGESTION';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_SEARCHTEXT,\n CHANGE_SEARCHFIELD,\n CHANGE_SEARCHFIELDFACET,\n CHANGE_SEARCHFILTER,\n CHANGE_SEARCHFILTERFACET,\n CHANGE_PARENT_COLLECTION,\n CHANGE_FACET,\n CHANGE_ITEMSEARCHDOCUMENT,\n CHANGE_QUERYPARAMS,\n CHANGE_MATRIXPARAMS,\n CHANGE_SUGGESTION,\n};\n\nconst setInitialDefaultState = ({\n queryParams = {},\n matrixParams = {},\n itemSearchDocument = {},\n rowsPerPage = 10,\n page = 0,\n ...state\n} = {}) => ({\n ...state,\n queryParams: {\n content: 'metadata',\n interval: 'generic',\n ...queryParams,\n },\n matrixParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...matrixParams,\n },\n itemSearchDocument: {\n intervals: 'generic',\n filter: [],\n ...itemSearchDocument,\n },\n rowsPerPage,\n page,\n});\n\nconst searchReducer = (state, action) => {\n switch (action.type) {\n case ACTION_TYPE.CHANGE_ITEMSEARCHDOCUMENT: {\n return {\n ...state,\n itemSearchDocument: action.itemSearchDocument,\n };\n }\n case ACTION_TYPE.CHANGE_QUERYPARAMS: {\n return {\n ...state,\n queryParams: action.queryParams,\n };\n }\n case ACTION_TYPE.CHANGE_MATRIXPARAMS: {\n return {\n ...state,\n matrixParams: action.matrixParams,\n };\n }\n case ACTION_TYPE.CHANGE_PAGE: {\n return {\n ...state,\n page: action.page,\n matrixParams: {\n ...state.matrixParams,\n first: action.page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n return {\n ...state,\n rowsPerPage: action.rowsPerPage,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n number: action.rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SORT: {\n return {\n ...state,\n page: 0,\n searchText: action.value,\n sort: action.value,\n itemSearchDocument: {\n ...state.itemSearchDocument,\n sort: action.field\n ? [\n {\n field: action.field,\n order: action.order || 'descending',\n },\n ]\n : [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHTEXT: {\n return {\n ...state,\n page: 0,\n searchText: action.value,\n itemSearchDocument: action.value\n ? {\n ...state.itemSearchDocument,\n text: [{ value: `${action.value}` }],\n }\n : {\n ...state.itemSearchDocument,\n text: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFIELD: {\n return {\n ...state,\n page: 0,\n field: action.field,\n itemSearchDocument: action.field\n ? {\n ...state.itemSearchDocument,\n field: action.field,\n }\n : {\n ...state.itemSearchDocument,\n field: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFIELDFACET: {\n return {\n ...state,\n page: 0,\n field: action.field,\n facet: action.facet,\n itemSearchDocument: action.field\n ? {\n ...state.itemSearchDocument,\n field: action.field,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n field: [],\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFILTER: {\n return {\n ...state,\n page: 0,\n filter: action.filter,\n itemSearchDocument: action.filter\n ? {\n ...state.itemSearchDocument,\n filter: action.filter,\n }\n : {\n ...state.itemSearchDocument,\n filter: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFILTERFACET: {\n return {\n ...state,\n page: 0,\n filter: action.filter,\n itemSearchDocument: action.filter\n ? {\n ...state.itemSearchDocument,\n filter: action.filter,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n filter: [],\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_FACET: {\n return {\n ...state,\n page: 0,\n facet: action.facet,\n itemSearchDocument: action.facet\n ? {\n ...state.itemSearchDocument,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_PARENT_COLLECTION: {\n return {\n ...state,\n page: 0,\n parentCollection: action.value,\n itemSearchDocument: action.value\n ? {\n ...state.itemSearchDocument,\n operator: {\n field: [\n { name: '__parent_collection', value: [{ value: `${action.value}` }] },\n { name: '__collection', value: [{ value: `${action.value}` }] },\n ],\n operation: 'OR',\n },\n }\n : {\n ...state.itemSearchDocument,\n operator: undefined,\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SUGGESTION: {\n return {\n ...state,\n itemSearchDocument: {\n ...state.itemSearchDocument,\n suggestion: action.suggestion,\n },\n };\n }\n default: {\n return state;\n }\n }\n};\n\nexport default function useSearch(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n\n const onChangeRowsPerPage = ({ target: { value: newRows } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage: newRows,\n });\n\n const onChangePage = ({ page: newPage }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page: newPage,\n });\n\n const onChangeSort = (event, field, order) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field,\n order,\n });\n\n const setSearchText = React.useCallback(\n (value) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHTEXT,\n value,\n }),\n [],\n );\n\n const setItemSearchDocument = React.useCallback(\n (itemSearchDocument) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMSEARCHDOCUMENT,\n itemSearchDocument,\n }),\n [],\n );\n\n const setQueryParams = React.useCallback(\n (queryParams) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMQUERYPARAMS,\n queryParams,\n }),\n [],\n );\n\n const setMatrixParams = React.useCallback(\n (matrixParams) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMMATRIXPARAMS,\n matrixParams,\n }),\n [],\n );\n\n const setSearchField = React.useCallback(\n (field) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHFIELD,\n field,\n }),\n [],\n );\n\n const setSearchFieldFacet = React.useCallback((field) => {\n const facet = field.map(({ name }) => ({ field: name, count: true }));\n dispatch({ type: ACTION_TYPE.CHANGE_SEARCHFIELDFACET, field, facet });\n }, []);\n\n const setSearchFilter = React.useCallback(\n (filter) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHFILTER,\n filter,\n }),\n [],\n );\n\n const setSearchFilterFacet = React.useCallback(\n (filter) => {\n const fieldList = filter.reduce((a, { field = [] }) => a.concat(field), []);\n const facet = fieldList.map(({ name }) => ({\n name,\n field: name,\n count: true,\n exclude: [name],\n }));\n dispatch({ type: ACTION_TYPE.CHANGE_SEARCHFILTERFACET, filter, facet });\n },\n [dispatch],\n );\n\n const setFacet = React.useCallback(\n (facet) => {\n dispatch({ type: ACTION_TYPE.CHANGE_FACET, facet });\n },\n [dispatch],\n );\n\n const setParentCollection = React.useCallback(\n (value) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PARENT_COLLECTION,\n value,\n }),\n [],\n );\n\n const setSuggestion = React.useCallback((suggestion) => {\n dispatch({ type: ACTION_TYPE.CHANGE_SUGGESTION, suggestion });\n }, []);\n\n return {\n state,\n onChangeRowsPerPage,\n onChangePage,\n onChangeSort,\n setSearchText,\n setSearchField,\n setSearchFieldFacet,\n setSearchFilter,\n setSearchFilterFacet,\n setFacet,\n setItemSearchDocument,\n setQueryParams,\n setMatrixParams,\n setParentCollection,\n setSuggestion,\n };\n}\n","import React from 'react';\n\nexport default function useUpdateEffect(fn, inputs) {\n const hasMountedRef = React.useRef(false);\n React.useEffect(() => {\n if (hasMountedRef.current) {\n fn();\n } else {\n hasMountedRef.current = true;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, inputs);\n}\n","import React from 'react';\nimport { search as SearchApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\nimport useUpdateEffect from './useUpdateEffect';\n\nconst setInitialDefaultState = ({\n field = undefined,\n text = '',\n maximumSuggestions = 10,\n} = {}) => ({\n field,\n text,\n maximumSuggestions,\n});\n\nexport default function useAutocomplete(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [autocompleteDoc, setAutocompleteDoc] = React.useState(initialDefaultState);\n\n const setAutocompleteField = React.useCallback((field, text = '') => {\n setAutocompleteDoc((state) => ({ ...state, field, text }));\n }, []);\n\n const setAutocompleteText = React.useCallback((text) => {\n setAutocompleteDoc((state) => ({ ...state, text }));\n }, []);\n\n const setAutocompleteMaxSuggestions = React.useCallback((maximumSuggestions) => {\n setAutocompleteDoc((state) => ({ ...state, maximumSuggestions }));\n }, []);\n\n const { request: searchAutoComplete, data: { suggestion: suggestions = [] } = {} } = useApi(\n SearchApi.searchAutoComplete,\n );\n\n useUpdateEffect(() => {\n searchAutoComplete({ autocompleteRequestDocument: autocompleteDoc });\n }, [autocompleteDoc]);\n\n return {\n suggestions,\n setAutocompleteField,\n setAutocompleteText,\n setAutocompleteMaxSuggestions,\n };\n}\n","import React from 'react';\n\nexport default (propKey = 'id', initialState = []) => {\n const [selected, setSelected] = React.useState(initialState);\n const onSelect = (event, checked, props) => {\n const propValue = props[propKey];\n const currentIndex = selected.findIndex((thisSelected) => thisSelected[propKey] === propValue);\n if (currentIndex === -1 && checked === true) {\n if (checked === true) {\n setSelected([...selected, props]);\n }\n } else if (currentIndex > -1 && checked === false) {\n const newSelected = [...selected];\n newSelected.splice(currentIndex, 1);\n setSelected(newSelected);\n }\n };\n const isSelected = (props) => {\n const propValue = props[propKey];\n const currentIndex = selected.findIndex((thisSelected) => thisSelected[propKey] === propValue);\n return currentIndex > -1;\n };\n const onClear = () => setSelected([]);\n return {\n selected,\n onSelect,\n onClear,\n isSelected,\n };\n};\n","import React from 'react';\n\nexport default (initialTab) => {\n const [activeTab, setActiveTab] = React.useState(initialTab);\n const changeTab = (_, newValue) => setActiveTab(newValue);\n return { activeTab, changeTab };\n};\n","import React from 'react';\n\nexport default function useInterval(callback, delay) {\n const savedCallback = React.useRef();\n\n React.useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n React.useEffect(() => {\n const tick = () => savedCallback.current();\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }, [delay]);\n}\n","import React from 'react';\n\nexport default function useThumbnailScrub(srcList = []) {\n const savedInterval = React.useRef();\n const initialImgIdx = React.useMemo(() => Math.floor(srcList.length / 2), [srcList]);\n const [imgIdx, setImgIdx] = React.useState();\n const imgIdxRef = React.useRef(imgIdx);\n React.useEffect(() => () => savedInterval.current && clearInterval(savedInterval.current), []);\n if (srcList.length === 0) return { width: 0 };\n\n imgIdxRef.current = imgIdx;\n const onMouseEnter = () => {\n const delay = 500;\n const tick = () => {\n if (imgIdxRef.current === undefined) {\n setImgIdx(0);\n } else if (imgIdxRef.current === srcList.length - 1) {\n clearInterval(savedInterval.current);\n } else {\n setImgIdx(imgIdxRef.current + 1);\n }\n };\n savedInterval.current = setInterval(tick, delay);\n };\n const onMouseLeave = () => {\n setImgIdx();\n clearInterval(savedInterval.current);\n };\n const imageSrc = srcList[imgIdx === undefined ? initialImgIdx : imgIdx];\n const width = imgIdx === undefined ? 0 : `${Math.floor((imgIdx / (srcList.length - 1)) * 100)}%`;\n return {\n imageSrc,\n onMouseEnter,\n onMouseLeave,\n width,\n };\n}\n","import React from 'react';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_TYPE = 'CHANGE_TYPE';\nconst CHANGE_STATE = 'CHANGE_STATE';\nconst CHANGE_PRIORITY = 'CHANGE_PRIORITY';\nconst CHANGE_STARTTIME = 'CHANGE_STARTTIME';\nconst CHANGE_FINISHTIME = 'CHANGE_FINISHTIME';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_TYPE,\n CHANGE_STATE,\n CHANGE_PRIORITY,\n CHANGE_STARTTIME,\n CHANGE_FINISHTIME,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, matrixParams = {} } = {}) => ({\n queryParams,\n matrixParams: {\n first: 1,\n number: 10,\n ...matrixParams,\n },\n rowsPerPage: 10,\n page: 0,\n jobMetadata: [],\n});\n\nconst searchReducer = (state, action) => {\n const { type, ...rest } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page = 0 } = action;\n const { rowsPerPage = 10 } = state;\n return {\n ...state,\n page,\n matrixParams: {\n ...state.matrixParams,\n first: page * rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SORT: {\n const { field, order = 'desc' } = action;\n return {\n ...state,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n sort: `${field} ${order}`,\n },\n };\n }\n case ACTION_TYPE.CHANGE_TYPE:\n case ACTION_TYPE.CHANGE_STATE:\n case ACTION_TYPE.CHANGE_PRIORITY: {\n const { field, value = [] } = rest;\n let matrixParams;\n if (!value) {\n const { [field]: deleteField, ...newMatrixParams } = state.matrixParams;\n matrixParams = { ...newMatrixParams, first: 1 };\n } else {\n matrixParams = {\n ...state.matrixParams,\n first: 1,\n [field]: Array.isArray(value) ? value.join(',') : value,\n };\n }\n return {\n ...state,\n page: 0,\n matrixParams,\n };\n }\n case ACTION_TYPE.CHANGE_STARTTIME:\n case ACTION_TYPE.CHANGE_FINISHTIME: {\n const { field, value = [] } = rest;\n let queryParams;\n if (!value) {\n const { [field]: deleteField, ...newQueryParams } = state.queryParams;\n queryParams = { ...newQueryParams, first: 1 };\n } else {\n queryParams = {\n ...state.queryParams,\n first: 1,\n [field]: value,\n };\n }\n return {\n ...state,\n page: 0,\n queryParams,\n };\n }\n case ACTION_TYPE.CHANGE_JOBMETADATA: {\n const { field, value = [] } = rest;\n let queryParams;\n if (!value.length) {\n const { [field]: deleteField, ...newQueryParams } = state.queryParams;\n queryParams = { ...newQueryParams, first: 1 };\n } else {\n queryParams = {\n ...state.queryParams,\n first: 1,\n [field]: value,\n };\n }\n return {\n ...state,\n page: 0,\n queryParams,\n jobMetadata: value,\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useJobSearch(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeType = ({ field = [] }) => {\n const [{ name = 'type', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_TYPE,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeState = ({ field = [] }) => {\n const [{ name = 'state', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_STATE,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangePriority = ({ field = [] }) => {\n const [{ name = 'priority', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_PRIORITY,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeStarttime = ({ field = [] }) => {\n const [{ name = 'starttime-from', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_STARTTIME,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeFinishtime = ({ field = [] }) => {\n const [{ name = 'finishtime-from', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_FINISHTIME,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeJobmetadata = (value) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_JOBMETADATA,\n field: 'jobmetadata',\n value,\n });\n };\n return {\n state,\n onChangePage,\n onChangeSort,\n onChangeType,\n onChangeState,\n onChangePriority,\n onChangeStarttime,\n onChangeFinishtime,\n onChangeRowsPerPage,\n onChangeJobmetadata,\n };\n}\n","import React from 'react';\n\nconst useLocalStorage = (localStorageKey, defaultValue) => {\n const [value, setValue] = React.useState(\n JSON.parse(window.localStorage.getItem(localStorageKey) || JSON.stringify(defaultValue)),\n );\n\n React.useEffect(() => {\n window.localStorage.setItem(localStorageKey, JSON.stringify(value));\n }, [localStorageKey, value]);\n\n const getValue = () => JSON.parse(window.localStorage.getItem(localStorageKey));\n\n return [value, setValue, getValue];\n};\n\nexport default useLocalStorage;\n","import { compressToEncodedURIComponent, decompressFromEncodedURIComponent } from 'lz-string';\n\n// eslint-disable-next-line import/prefer-default-export\nexport function uuidv4() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n // eslint-disable-next-line\n (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16));\n}\n\nexport function b64EncodeUnicode(str) {\n return compressToEncodedURIComponent(str);\n}\n\nexport function b64DecodeUnicode(str) {\n // fallback for old base64 encoded links\n return str.slice(-1) === '='\n ? decodeURIComponent(\n atob(str)\n .split('')\n .map((c) => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`)\n .join(''),\n )\n : decompressFromEncodedURIComponent(str);\n}\n","import React from 'react';\nimport {\n vsimport as ImportApi,\n ChunkedUpload,\n collection as CollectionApi,\n} from '@vidispine/vdt-api';\nimport { createMetadataType } from '@vidispine/vdt-js';\nimport { uuidv4 } from '../utils';\n\nconst DEFAULT_AUDIO_SHAPETAGS = ['__mp3_160k'];\nconst DEFAULT_VIDEO_SHAPETAGS = ['__mp4'];\nconst DEFAULT_IMAGE_SHAPETAGS = ['__png'];\nconst AUDIO_MIMETYPE_PREFIX = 'audio';\nconst VIDEO_MIMETYPE_PREFIX = 'video';\nconst IMAGE_MIMETYPE_PREFIX = 'image';\nconst ADDITIONAL_VIDEO_MIMETYPES = ['application/mxf'];\nconst ADDITIONAL_IMAGE_MIMETYPES = [];\nconst ADDITIONAL_AUDIO_MIMETYPES = [];\n\nconst getDefaultShapeTags = (file) => {\n if (!file || !file.type) return [];\n const mimeType = file.type.toLowerCase();\n if (mimeType.startsWith(AUDIO_MIMETYPE_PREFIX) || ADDITIONAL_AUDIO_MIMETYPES.includes(mimeType))\n return DEFAULT_AUDIO_SHAPETAGS;\n if (mimeType.startsWith(VIDEO_MIMETYPE_PREFIX) || ADDITIONAL_VIDEO_MIMETYPES.includes(mimeType))\n return DEFAULT_VIDEO_SHAPETAGS;\n if (mimeType.startsWith(IMAGE_MIMETYPE_PREFIX) || ADDITIONAL_IMAGE_MIMETYPES.includes(mimeType))\n return DEFAULT_IMAGE_SHAPETAGS;\n return [];\n};\n\nconst chunkedUpload = (file, props = {}) =>\n new Promise((resolve, reject) => {\n const uploadInstance = new ChunkedUpload(file, {\n onFail: (error) => reject(error),\n onComplete: (resp) => resolve(resp),\n ...props,\n });\n uploadInstance.upload();\n });\n\nconst onUploadFile = ({\n file,\n collectionId,\n onProgress,\n metadata: propsMetadata = {},\n placeholderParams = {},\n importParams = {},\n chunkedUploadProps = {},\n generateTransferId = uuidv4,\n getShapeTags = getDefaultShapeTags,\n}) =>\n new Promise((resolve, reject) => {\n try {\n let itemId;\n onProgress({});\n const shapeTags = getShapeTags(file);\n const filename = file.name;\n const mimeType = file.type;\n const [mediaType] = mimeType.split('/');\n const metadata = {\n originalFilename: filename,\n mimeType,\n mediaType,\n ...propsMetadata,\n };\n const metadataDocument = createMetadataType(metadata);\n ImportApi.createImportPlaceholder({\n metadataDocument,\n queryParams: {\n container: 1,\n ...placeholderParams,\n },\n })\n .then(({ data: itemDocument }) => {\n itemId = itemDocument.id;\n if (!collectionId) return Promise.resolve();\n const collectionIds = Array.isArray(collectionId) ? collectionId : [collectionId];\n return Promise.all(\n collectionIds.map((id) =>\n CollectionApi.addCollectionEntity({\n collectionId: id,\n entityId: itemId,\n }),\n ),\n );\n })\n .then(() => {\n const transferId = generateTransferId();\n const queryParams = {\n filename,\n transferId,\n tag: shapeTags,\n ...importParams,\n };\n return chunkedUpload(file, {\n api: {\n method: ImportApi.createImportComponentRaw,\n props: {\n itemId,\n component: 'container',\n queryParams,\n },\n },\n onProgress,\n ...chunkedUploadProps,\n });\n })\n .then((response) => {\n resolve({ ...response, itemId, collectionId });\n })\n .catch((error) => reject(error));\n } catch (err) {\n /* eslint-disable-next-line no-console */\n console.error(err);\n reject(err);\n }\n });\n\nfunction useUploadFiles({\n onUploadFile: handleUploadFile = onUploadFile,\n initialMetadata = {},\n ...props\n}) {\n const [files, setFiles] = React.useState([]);\n React.useEffect(\n () => () => {\n // Make sure to revoke the data uris to avoid memory leaks\n files.forEach((file) => URL.revokeObjectURL(file.preview));\n },\n [files],\n );\n const onAddFiles = React.useCallback(\n (newFiles = []) => {\n const newFilesObj = newFiles.map((file) => ({\n file,\n metadata: { title: file.name, ...initialMetadata },\n }));\n setFiles((currentFiles) => newFilesObj.concat(currentFiles));\n },\n [initialMetadata],\n );\n const onChangeFile = React.useCallback(\n (idx, changeFile = {}) => {\n setFiles((currentFilesList) => {\n const currentFile = currentFilesList[idx];\n const { metadata: newMetadata, progress: newProgress } = changeFile;\n const { metadata: currentMetadata = {}, progress: currentProgress = {} } = currentFile;\n const newFilesList = [...currentFilesList];\n const newFile = { ...currentFile };\n if (newMetadata) newFile.metadata = { ...currentMetadata, ...newMetadata };\n if (newProgress) newFile.progress = { ...currentProgress, ...newProgress };\n newFilesList[idx] = newFile;\n return newFilesList;\n });\n },\n [setFiles],\n );\n const onChangeProgress = React.useCallback(\n (idx) => (newProgress = {}) => {\n onChangeFile(idx, { progress: newProgress });\n },\n [onChangeFile],\n );\n const onChangeMetadata = React.useCallback(\n (idx) => (newMetadata = {}) => {\n onChangeFile(idx, { metadata: newMetadata });\n },\n [onChangeFile],\n );\n const onUpload = React.useCallback(\n (uploadProps) =>\n files.reduce(\n (previousPromise, thisFile, idx) =>\n previousPromise.then((res) => {\n if (thisFile.progress) {\n return previousPromise;\n }\n return handleUploadFile({\n file: thisFile.file,\n onProgress: onChangeProgress(idx),\n metadata: thisFile.metadata,\n ...uploadProps,\n ...props,\n }).then((currentResult) => [...res, currentResult]);\n }),\n Promise.resolve([]),\n ),\n [files, handleUploadFile, onChangeProgress, props],\n );\n\n const onRemoveFile = React.useCallback(\n (idx) => () => {\n setFiles([...files].filter((_, i) => i !== idx));\n },\n [setFiles, files],\n );\n\n const onRemoveFiles = React.useCallback(\n (idxs) => () => {\n setFiles([...files].filter((_, i) => !idxs.includes(i)));\n },\n [setFiles, files],\n );\n\n return {\n onAddFiles,\n onChangeFile,\n onChangeMetadata,\n onUpload,\n onRemoveFile,\n onRemoveFiles,\n files,\n setFiles,\n };\n}\n\nexport default useUploadFiles;\n","import React from 'react';\nimport { b64DecodeUnicode } from '../utils';\n\nexport default function useQueryInitialState({\n history,\n queryName = 'q',\n defaultState = undefined,\n}) {\n const defaultStateRef = React.useRef(defaultState);\n const queryState = React.useMemo(() => {\n const searchParams = new URLSearchParams(history.location.search);\n const encodedQuery = searchParams.get(queryName);\n if (!encodedQuery) {\n return defaultStateRef.current;\n }\n try {\n const decodedQuery = b64DecodeUnicode(encodedQuery);\n return JSON.parse(decodedQuery);\n } catch (error) {\n // TODO: Show error snackbar: \"Could not parse search query\"\n // eslint-disable-next-line no-console\n console.error(error);\n history.replace({ pathName: history.location.pathName, search: '' });\n }\n return undefined;\n }, [defaultStateRef, history, queryName]);\n\n return { queryInitialState: queryState };\n}\n","import React from 'react';\nimport { b64EncodeUnicode } from '../utils';\nimport useUpdateEffect from './useUpdateEffect';\n\nexport default function useUpdateQueryState({ history, state, queryName = 'q' }) {\n const onSearchStateChange = React.useCallback(() => {\n const encodedQuery = b64EncodeUnicode(JSON.stringify(state));\n history.replace({\n pathName: history.location.pathName,\n search: `?${queryName}=${encodedQuery}`,\n });\n }, [history, queryName, state]);\n\n // Don't need to set query on mount\n useUpdateEffect(() => {\n onSearchStateChange(state);\n }, [onSearchStateChange, state]);\n}\n","import { useCallback } from 'react';\nimport { access as AccessApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst useEntityAccess = ({ entityId, entityType }) => {\n const { request: listEntityAccess, data: accessControlList = {}, isLoading } = useApi(\n AccessApi.listEntityAccess,\n );\n const onList = useCallback(\n (props = {}) =>\n listEntityAccess({\n entityId,\n entityType,\n ...props,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [entityId, entityType],\n );\n const onRemove = useCallback(\n ({ accessId, ...props }) =>\n AccessApi.removeEntityAccess({\n accessId,\n entityId,\n entityType,\n ...props,\n }),\n [entityId, entityType],\n );\n const onAdd = useCallback(\n ({ accessControlDocument, ...props }) =>\n AccessApi.createEntityAccess({\n entityType,\n entityId,\n accessControlDocument,\n ...props,\n }),\n [entityId, entityType],\n );\n return {\n accessControlList,\n isLoading,\n onList,\n onRemove,\n onAdd,\n };\n};\n\nexport default useEntityAccess;\n","import React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { metadatafield as MetadataFieldApi, fieldgroup as FieldGroupApi } from '@vidispine/vdt-api';\n\nconst getValueFromData = ({ data = [] } = {}, key) => {\n if (!key) return undefined;\n const { value } = data.find((d) => d.key === key) || {};\n return value;\n};\n\nconst defaultGetDataAttributes = (fieldOrGroup, keys) => {\n return Object.assign(\n {},\n ...keys.map((key) => {\n return {\n [key]: getValueFromData(fieldOrGroup, key),\n };\n }),\n );\n};\n\nconst getOptions = ({ values: { field } = {} } = {}) => {\n return field ? field.map((f) => ({ value: f.value, label: f.key || f.value })) : undefined;\n};\n\nconst convertValuesXmlToJson = (xmlString) => {\n const doc = new DOMParser().parseFromString(xmlString, 'application/xml');\n const fields = doc.getElementsByTagName('field');\n if (!fields.length) {\n return undefined;\n }\n const json = { field: [] };\n for (let i = 0; i < fields.length; i += 1) {\n const [keyNode, valueNode] = fields[i].childNodes;\n json.field.push({\n [keyNode.nodeName]: keyNode.firstChild.nodeValue,\n [valueNode.nodeName]: valueNode.firstChild.nodeValue,\n });\n }\n return json;\n};\n\nconst useAddMetadataFieldAttributes = ({\n fields,\n groups,\n getDataAttributes = defaultGetDataAttributes,\n fieldDataToInclude = 'label,displayType,required',\n groupDataToInclude = 'label,order',\n fieldQueryParams = {},\n groupQueryParams = {},\n}) => {\n const [isLoading, setIsLoading] = React.useState(false);\n const [fieldsWithAttributes, setFieldsWithAttributes] = React.useState(fields);\n const [groupsWithAttributes, setGroupsWithAttributes] = React.useState(groups);\n\n useDeepCompareEffect(() => {\n const addFieldAttributes = (fieldsArray = [], fieldsAttributes = {}) =>\n fieldsArray.map(({ name, ...overrides }) => {\n const fieldAttributes = fieldsAttributes[name] || {};\n const { label, ...dataAttributes } = getDataAttributes(\n fieldAttributes,\n fieldDataToInclude.split(','),\n );\n return {\n name,\n label: label || name,\n type: fieldAttributes.type,\n constraint: fieldAttributes.constraint,\n options: getOptions(fieldAttributes),\n ...dataAttributes,\n ...overrides,\n };\n });\n\n const addGroupAttributes = (groupsArray = [], groupsAttributes = {}, fieldsAttributes = {}) =>\n groupsArray.map(({ name, field, group, ...overrides }) => {\n const groupAttributes = groupsAttributes[name] || {};\n const childFields = field || (groupAttributes && groupAttributes.field);\n const childGroups = group || (groupAttributes && groupAttributes.group);\n const { label, ...dataAttributes } = getDataAttributes(\n groupAttributes,\n groupDataToInclude.split(','),\n );\n return {\n name,\n label: label || name,\n order: getValueFromData(groupAttributes, 'order'),\n fields: addFieldAttributes(childFields, fieldsAttributes),\n groups: addGroupAttributes(childGroups, groupsAttributes, fieldsAttributes),\n ...dataAttributes,\n ...overrides,\n };\n });\n let didCancel = false;\n async function fetchAttributesAsync() {\n setIsLoading(true);\n const fieldsAttributes = {};\n const groupsAttributes = {};\n let fieldPromises = [];\n if (fields) {\n const queryParams = { ...fieldQueryParams, data: fieldDataToInclude };\n fieldPromises = fields.map(async ({ name: fieldName }) => {\n try {\n const { data } = await MetadataFieldApi.getMetadataField({\n fieldName,\n queryParams,\n });\n fieldsAttributes[fieldName] = data;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not retrieve attributes for ${fieldName}`);\n }\n });\n }\n let groupPromises = [];\n if (groups) {\n const groupsToFetch = [...groups];\n const queryParams = { ...groupQueryParams, data: groupDataToInclude };\n groupPromises = groupsToFetch.map(async ({ name: groupName }) => {\n try {\n const { data } = await FieldGroupApi.getFieldGroup({\n groupName,\n queryParams,\n });\n const { field = [], group = [] } = data;\n field.forEach((f) => {\n const dataValues = f.data && f.data.find((e) => e.key === '__values');\n if (dataValues) {\n const jsonValues = convertValuesXmlToJson(dataValues.value);\n fieldsAttributes[f.name] = { ...f, values: jsonValues };\n }\n });\n group.forEach((g) => {\n groupsToFetch.push(g);\n });\n groupsAttributes[groupName] = data;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not retrieve attributes for ${groupName}`);\n }\n });\n }\n await Promise.all([...fieldPromises, ...groupPromises]);\n if (!didCancel) {\n if (Object.values(fieldsAttributes).some((v) => v)) {\n setFieldsWithAttributes(() => addFieldAttributes(fields, fieldsAttributes));\n }\n if (Object.values(groupsAttributes).some((v) => v)) {\n setGroupsWithAttributes(() => {\n const newGroupsWithAttributes = addGroupAttributes(\n groups,\n groupsAttributes,\n fieldsAttributes,\n );\n newGroupsWithAttributes.forEach((group) => {\n const { order } = group;\n if (order) {\n group.fields.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name));\n }\n });\n return newGroupsWithAttributes;\n });\n }\n setIsLoading(false);\n }\n }\n fetchAttributesAsync();\n return () => {\n didCancel = true;\n };\n }, [fields, groups, fieldDataToInclude, groupDataToInclude, fieldQueryParams, groupQueryParams]);\n\n return { fieldsWithAttributes, groupsWithAttributes, isLoading };\n};\n\nexport default useAddMetadataFieldAttributes;\n","import React from 'react';\nimport {\n library as LibraryApi,\n item as ItemApi,\n collection as CollectionApi,\n} from '@vidispine/vdt-api';\nimport { createMetadataType } from '@vidispine/vdt-js';\nimport useSearch from './useSearch';\n\n// Has to be set so that the library isn't auto-deleted\nconst UPDATE_FREQUENCY = 1000;\n\n// Prevents access controls set on the library (i.e. saved search) from cascading down to items\nconst UPDATE_MODE = 'TRANSIENT';\n\nfunction saveSearch({ metadata, markerField, markerValue, itemSearchDocument }) {\n return ItemApi.searchItem({\n queryParams: {\n result: 'library',\n updateMode: UPDATE_MODE,\n updateFrequency: UPDATE_FREQUENCY,\n },\n itemSearchDocument,\n }).then(({ data: { library } }) =>\n CollectionApi.createCollection({\n collectionDocument: {\n metadata: markerField\n ? createMetadataType({\n [markerField]: markerValue || library,\n ...metadata,\n })\n : metadata,\n content: [\n {\n id: library,\n type: 'library',\n },\n ],\n },\n }),\n );\n}\n\nconst getLibraryFromCollection = ({ collectionId }) =>\n new Promise((resolve, reject) =>\n CollectionApi.getCollection({ collectionId, queryParams: { children: 'library' } }).then(\n ({ data: collectionType }) => {\n const { content = [] } = collectionType;\n const [libraryType] = content;\n if (!libraryType) reject(new Error('No Libraries'));\n resolve(libraryType);\n },\n ),\n );\n\nconst deleteSearch = ({ collectionId }) =>\n getLibraryFromCollection({ collectionId }).then(({ id: libraryId }) =>\n Promise.all([\n LibraryApi.removeLibrary({ libraryId }),\n CollectionApi.removeCollection({ collectionId }),\n ]),\n );\n\nfunction getLibrarySettings({ libraryId }) {\n return new Promise((resolve) =>\n LibraryApi.getLibrarySettings({ libraryId }).then(({ data: { query } }) => {\n resolve(query);\n }),\n );\n}\n\nconst getSavedSearchSettings = ({ collectionId }) =>\n new Promise((resolve) =>\n getLibraryFromCollection({ collectionId })\n .then(({ id: libraryId }) => getLibrarySettings({ libraryId }))\n .then(resolve),\n );\n\nexport default function useSavedSearch({\n markerField,\n markerValue,\n initialSearchState,\n onSaveSearch = saveSearch,\n onDeleteSearch = deleteSearch,\n onUpdateSearchMetadata = CollectionApi.updateCollectionMetadata,\n onGetSavedSearchSettings = getSavedSearchSettings,\n}) {\n const saveSearchWithMarker = React.useCallback(\n ({ metadata, itemSearchDocument }) =>\n onSaveSearch({\n metadata,\n markerField,\n markerValue,\n itemSearchDocument,\n }),\n [markerField, markerValue, onSaveSearch],\n );\n\n const mergeMarkerField = (itemSearchDocument = {}) => ({\n ...itemSearchDocument,\n operator: {\n field: [\n {\n name: markerField,\n value: [{ value: markerValue || '*' }],\n },\n ],\n operator: itemSearchDocument.operator ? [itemSearchDocument.operator] : [],\n operation: 'AND',\n },\n });\n\n const searchProps = useSearch({\n ...initialSearchState,\n itemSearchDocument: mergeMarkerField(),\n });\n\n const { setItemSearchDocument, ...props } = searchProps;\n\n return {\n onSaveSearch: saveSearchWithMarker,\n onDeleteSearch,\n onUpdateSearchMetadata,\n onGetSavedSearchSettings,\n searchProps: {\n setItemSearchDocument: (itemSearchDocument) =>\n setItemSearchDocument(mergeMarkerField(itemSearchDocument)),\n ...props,\n },\n };\n}\n","import { item as ItemApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useSearchItem({ itemSearchDocument, queryParams, matrixParams }) {\n const { request, data: itemListType = {}, isLoading, isError } = useApi(ItemApi.searchItem);\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n return {\n itemListType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import React from 'react';\n\nexport const useMouseDownPosition = () => {\n const [position, setPosition] = React.useState({ x: 0, y: 0 });\n\n React.useEffect(() => {\n const setFromEvent = (e) => setPosition({ x: e.clientX, y: e.clientY });\n window.addEventListener('mousedown', setFromEvent);\n\n return () => {\n window.removeEventListener('mousedown', setFromEvent);\n };\n }, []);\n\n return position;\n};\n\nexport default useMouseDownPosition;\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetCollection({\n collectionId,\n queryParams = {},\n refreshOnMount = true,\n}) {\n const { request, data: collectionType = {}, isLoading, isError } = useApi(\n CollectionApi.getCollection,\n );\n const onRefresh = () => request({ collectionId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [collectionId, queryParams]);\n return {\n collectionType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetCollection({\n collectionId,\n queryParams = {},\n refreshOnMount = true,\n}) {\n const { request, data: itemListType = {} } = useApi(CollectionApi.getCollectionItem);\n const onRefresh = () => request({ collectionId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [collectionId, queryParams]);\n return {\n itemListType,\n onRefresh,\n };\n}\n","import React from 'react';\nimport {\n item as ItemApi,\n collection as CollectionApi,\n library as LibraryApi,\n} from '@vidispine/vdt-api';\n\nimport useApi from './useApi';\n\nconst useGetEntity = ({ entityId, entityType }) => {\n let dataType;\n let entityApi;\n let entityTypeId;\n switch (entityType) {\n case 'collection':\n dataType = 'collectionType';\n entityTypeId = 'collectionId';\n entityApi = CollectionApi.getCollection;\n break;\n case 'library':\n dataType = 'libraryType';\n entityTypeId = 'libraryId';\n entityApi = LibraryApi.getLibrary;\n break;\n case 'item':\n dataType = 'itemType';\n entityTypeId = 'itemId';\n entityApi = ItemApi.getItem;\n break;\n default:\n throw new Error(`unknown entityType}`);\n }\n const { request, data, ...apiProps } = useApi(entityApi);\n const onGetEntity = React.useCallback(\n (props) => request({ [entityTypeId]: entityId, ...props }),\n [entityId, entityTypeId, request],\n );\n return {\n [dataType]: data,\n [entityTypeId]: entityId,\n onGetEntity,\n ...apiProps,\n };\n};\n\nexport default useGetEntity;\n","import React from 'react';\nimport { user as UserApi, group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nexport default function useUser(initialState) {\n const { data: userType, request } = useApi(UserApi.getUser, { data: initialState });\n const { userName } = userType || {};\n const getUser = React.useCallback(() => request({ userName }), [request, userName]);\n React.useEffect(() => {\n if (userName) getUser();\n }, [getUser, userName]);\n\n const updateUser = React.useCallback(\n ({ userDocument }) =>\n UserApi.updateUser({\n userName,\n userDocument,\n }).then(() => request({ userName: userDocument.userName })),\n [request, userName],\n );\n\n const updateUserGroups = React.useCallback(\n ({ groups = [] }) =>\n UserApi.updateUserGroup({\n userName,\n groupListDocument: {\n group: groups.map((g) => ({ groupName: g })),\n },\n }).then(getUser),\n [getUser, userName],\n );\n\n const removeUserFromGroup = React.useCallback(\n (groupName) =>\n GroupApi.removeGroupUser({\n groupName,\n userName,\n }).then(getUser),\n [getUser, userName],\n );\n\n const changePassword = React.useCallback(\n (password) =>\n UserApi.updateUser({\n userName,\n userDocument: {\n password,\n },\n queryParams: {\n passwordType: 'raw',\n },\n }),\n [userName],\n );\n const deleteUser = ({ queryParams = {} } = {}) =>\n UserApi.disableUser({ userName, queryParams: { hard: true, ...queryParams } });\n const disableUser = (args) => UserApi.disableUser({ userName, ...args }).then(getUser);\n const enableUser = (args) => UserApi.enableUser({ userName, ...args }).then(getUser);\n\n return {\n userType,\n getUser,\n updateUser,\n updateUserGroups,\n removeUserFromGroup,\n disableUser,\n enableUser,\n deleteUser,\n changePassword,\n };\n}\n","import React from 'react';\nimport { user as UserApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_QUERY = 'CHANGE_QUERY';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_QUERY,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, rowsPerPage = 10, page = 0 } = {}) => ({\n queryParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...queryParams,\n },\n rowsPerPage,\n page,\n userSearchDocument: {\n sort: [\n {\n field: 'username',\n order: 'ascending',\n },\n ],\n },\n});\n\nconst searchReducer = (state, action) => {\n const { type } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page } = action;\n\n return {\n ...state,\n page,\n queryParams: {\n ...state.queryParams,\n first: page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n\n case ACTION_TYPE.CHANGE_QUERY: {\n return {\n ...state,\n page: 0,\n userSearchDocument: {\n ...state.userSearchDocument,\n field: [\n {\n name: action.field || 'username',\n value: action.query || '',\n },\n ],\n },\n queryParams: {\n ...state.queryParams,\n first: 1,\n },\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useSearchUser(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const { data: userListDocument, request: searchUser, hasLoaded, isError } = useApi(\n UserApi.searchUser,\n );\n\n const onSearchUser = () =>\n searchUser({\n userSearchDocument: state.userSearchDocument,\n queryParams: state.queryParams,\n });\n\n React.useEffect(() => {\n onSearchUser();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.queryParams, state.userSearchDocument]);\n\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeQuery = (field, query) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_QUERY,\n field,\n query,\n });\n };\n return {\n ...state,\n hasLoaded,\n isError,\n userListDocument,\n onSearchUser,\n onChangePage,\n onChangeSort,\n onChangeRowsPerPage,\n onChangeQuery,\n };\n}\n","import { group as GroupApi } from '@vidispine/vdt-api';\nimport React from 'react';\nimport useApi from './useApi';\n\nconst useListGroup = (args) => {\n const { request, data: groupListType = {}, isLoading } = useApi(GroupApi.listGroup);\n const onRefresh = () => request(args);\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [args]);\n return {\n onRefresh,\n groupListType,\n isLoading,\n };\n};\n\nexport default useListGroup;\n","import { user as UserApi } from '@vidispine/vdt-api';\nimport React from 'react';\nimport useApi from './useApi';\n\nconst useListUser = (args) => {\n const { request, data: userListType = {}, isLoading } = useApi(UserApi.listUser);\n const onRefresh = () => request(args);\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [args]);\n return {\n onRefresh,\n userListType,\n isLoading,\n };\n};\n\nexport default useListUser;\n","import React from 'react';\nimport { group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_QUERY = 'CHANGE_QUERY';\nconst HIDE_ROLES = 'HIDE_ROLES';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_QUERY,\n HIDE_ROLES,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, rowsPerPage = 10, page = 0 } = {}) => ({\n queryParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...queryParams,\n },\n rowsPerPage,\n page,\n groupSearchDocument: {},\n});\n\nconst searchReducer = (state, action) => {\n const { type } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page } = action;\n\n return {\n ...state,\n page,\n queryParams: {\n ...state.queryParams,\n first: page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.HIDE_ROLES: {\n const { hideRoles } = action;\n const role = hideRoles === true ? false : undefined;\n return {\n ...state,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n role,\n },\n };\n }\n\n case ACTION_TYPE.CHANGE_QUERY: {\n return {\n ...state,\n page: 0,\n groupSearchDocument: {\n ...state.groupSearchDocument,\n field: [\n {\n name: action.field || 'groupname',\n value: action.query || '',\n },\n ],\n },\n queryParams: {\n ...state.queryParams,\n first: 1,\n },\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useSearchGroup(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const { data: groupListDocument, request: searchGroup, hasLoaded, isError } = useApi(\n GroupApi.searchGroup,\n );\n\n const onSearchGroup = () =>\n searchGroup({\n groupSearchDocument: state.groupSearchDocument,\n queryParams: state.queryParams,\n });\n\n React.useEffect(() => {\n onSearchGroup();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.queryParams, state.groupSearchDocument]);\n\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onHideRoles = ({ hideRoles }) =>\n dispatch({\n type: ACTION_TYPE.HIDE_ROLES,\n hideRoles,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeQuery = (field, query) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_QUERY,\n field,\n query,\n });\n };\n return {\n ...state,\n hasLoaded,\n isError,\n groupListDocument,\n onSearchGroup,\n onChangePage,\n onChangeSort,\n onChangeRowsPerPage,\n onChangeQuery,\n onHideRoles,\n };\n}\n","import React from 'react';\nimport { group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nexport default function useGroup(initialState) {\n const { data: groupType, request } = useApi(GroupApi.getGroup, { data: initialState });\n const { groupName } = groupType || {};\n\n const getGroup = React.useCallback(() => request({ groupName }), [request, groupName]);\n\n React.useEffect(() => {\n if (groupName) getGroup();\n }, [getGroup, groupName]);\n\n const updateGroup = React.useCallback(\n ({ groupDocument }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addChildGroups = React.useCallback(\n ({ groups }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n childGroupList: {\n group: groups.map((g) => ({ groupName: g })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addParentGroups = React.useCallback(\n ({ groups }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n parentGroupList: {\n group: groups.map((g) => ({ groupName: g })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addUsersToGroup = React.useCallback(\n ({ users }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n userList: {\n user: users.map((u) => ({ userName: u })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeUserFromGroup = React.useCallback(\n (userName) =>\n GroupApi.removeGroupUser({\n groupName,\n userName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeChildGroup = React.useCallback(\n (childGroupName) =>\n GroupApi.removeGroupChildren({\n groupName,\n childGroupName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeFromParentGroup = React.useCallback(\n (parentGroupName) =>\n GroupApi.removeGroupChildren({\n groupName: parentGroupName,\n childGroupName: groupName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeGroup = React.useCallback(() => GroupApi.removeGroup({ groupName }), [groupName]);\n\n return {\n groupType,\n getGroup,\n updateGroup,\n removeGroup,\n addChildGroups,\n addParentGroups,\n addUsersToGroup,\n removeUserFromGroup,\n removeChildGroup,\n removeFromParentGroup,\n };\n}\n","import { item as ItemApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetItem({ itemId, queryParams = {}, refreshOnMount = true }) {\n const { request, data: itemType = {}, isLoading, isError } = useApi(ItemApi.getItem);\n const onRefresh = () => request({ itemId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [itemId, queryParams]);\n return {\n itemType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import React from 'react';\nimport { collection as CollectionApi } from '@vidispine/vdt-api';\n\nconst useCollectionAutoPlay = ({ collectionId, defaultEnabled = true }) => {\n const [nextPlaying, setNextPlaying] = React.useState();\n const [isAutoPlayEnabled, setIsAutoPlayEnabled] = React.useState(defaultEnabled);\n const toggleAutoPlay = (newValue) =>\n setIsAutoPlayEnabled((prevValue) => (newValue !== undefined ? newValue : !prevValue));\n const allItemsRef = React.useRef();\n const orderItemsRef = React.useRef();\n const hitsRef = React.useRef();\n const onNext = React.useCallback(\n ({ itemId }) => {\n if (isAutoPlayEnabled === false) return;\n const searchDocument = {\n field: [\n {\n name: 'mediaType',\n value: [{ value: 'video' }, { value: 'audio' }],\n },\n ],\n };\n const searchForNext = ({ first, number } = {}) => {\n const { current: allItems } = allItemsRef;\n const { current: orderItems } = orderItemsRef;\n if (!Array.isArray(allItems)) {\n Promise.all([\n CollectionApi.getCollection({\n collectionId,\n queryParams: { children: 'item' },\n }),\n CollectionApi.searchCollectionItem({\n collectionId,\n searchDocument,\n queryParams: { first, number },\n }),\n ]).then(([{ data: collectionType }, { data: itemListType }]) => {\n const { hits, item: itemList = [] } = itemListType;\n allItemsRef.current = itemList.map(({ id }) => id);\n hitsRef.current = hits;\n const { content: contentList } = collectionType;\n orderItemsRef.current = contentList;\n searchForNext({ first: 1, number: 100 });\n });\n return;\n }\n const { current: hits } = hitsRef;\n const currentItemIdx = orderItems.findIndex(({ id: thisId }) => thisId === itemId);\n if (currentItemIdx + 1 === orderItems.length) {\n // last item in the list\n setNextPlaying();\n return;\n }\n if (currentItemIdx === -1 && hits > allItems.length) {\n // request more items to find the currentItem\n CollectionApi.searchCollectionItem({\n collectionId,\n searchDocument,\n queryParams: { first: first + number, number },\n }).then(({ data: itemListType }) => {\n const { item: itemList = [] } = itemListType;\n allItemsRef.current.push(...itemList.map(({ id }) => id));\n searchForNext({ first: first + number, number });\n });\n return;\n }\n const remainingItems = orderItems.slice(currentItemIdx + 1);\n const nextItem = remainingItems.find(({ id: thisId }) => allItems.includes(thisId));\n setNextPlaying(nextItem);\n };\n searchForNext();\n },\n [collectionId, isAutoPlayEnabled],\n );\n return {\n isAutoPlayEnabled,\n toggleAutoPlay,\n setNextPlaying,\n nextPlaying,\n onNext,\n };\n};\n\nexport default useCollectionAutoPlay;\n","import React, { useCallback } from 'react';\n\nexport default function useHoverScrub(srcList = [], customOffset = 0) {\n const [scrubPosition, setScrubPosition] = React.useState(0);\n const [thumbnailIndex, setThumbnailIndex] = React.useState(0);\n const [showScrub, setShowScrub] = React.useState(false);\n\n const getInnerLeft = useCallback(\n (e) => {\n const left = e.clientX - e.currentTarget.offsetLeft - customOffset;\n if (left < 0) {\n return 0;\n }\n if (left > e.currentTarget.offsetWidth) {\n return e.currentTarget.offsetWidth;\n }\n return left;\n },\n [customOffset],\n );\n\n const onMouseMove = (e) => {\n if (srcList.length > 1) {\n const innerLeft = getInnerLeft(e);\n setScrubPosition(innerLeft - 1);\n setThumbnailIndex(Math.floor((innerLeft / e.currentTarget.offsetWidth) * srcList.length));\n }\n };\n\n const handleShowScrub = (value) => () => {\n if (srcList.length > 1) {\n setShowScrub(value);\n }\n };\n\n return {\n thumbnailIndex,\n showScrub,\n scrubPosition,\n handleShowScrub,\n onMouseMove,\n };\n}\n","import React from 'react';\nimport { parseMetadataType } from '@vidispine/vdt-js';\n\nexport default function MetadataType({\n itemType,\n collectionType,\n joinValue = ',',\n flat = true,\n children,\n ...props\n}) {\n const entityType = itemType || collectionType || {};\n const { metadata: metadataType } = entityType;\n const metadata = React.useMemo(() => parseMetadataType(metadataType, { joinValue, flat }), [\n flat,\n joinValue,\n metadataType,\n ]);\n const cloneProps = {\n ...props,\n ...metadata,\n itemType,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { collection as CollectionApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function SearchCollection({\n itemSearchDocument,\n queryParams,\n matrixParams,\n responseRef,\n initialState,\n children,\n}) {\n const { request, data: collectionListType = {}, isLoading, isError } = useApi(\n CollectionApi.searchCollection,\n initialState,\n responseRef,\n );\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n collectionListType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useSearchItem from '../hooks/useSearchItem';\n\nexport default function SearchItem({ itemSearchDocument, queryParams, matrixParams, children }) {\n const { itemListType, onRefresh, isLoading, isError } = useSearchItem({\n itemSearchDocument,\n queryParams,\n matrixParams,\n });\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n itemListType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { search as SearchApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function SearchItemCollection({\n itemSearchDocument,\n queryParams,\n matrixParams,\n children,\n}) {\n const { request, data: searchResultType = {}, isLoading, isError } = useApi(\n SearchApi.searchItemCollection,\n );\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n searchResultType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useGetItem from '../hooks/useGetItem';\n\nexport default function GetItem({ itemId, queryParams, refreshOnMount, children }) {\n const { itemType, onRefresh, isLoading, isError } = useGetItem({\n itemId,\n queryParams,\n refreshOnMount,\n });\n const cloneProps = {\n itemId,\n queryParams,\n itemType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useGetCollection from '../hooks/useGetCollection';\n\nexport default function GetCollectionContent({\n collectionId,\n queryParams,\n refreshOnMount,\n children,\n}) {\n const { collectionType, onRefresh, isLoading, isError } = useGetCollection({\n collectionId,\n queryParams,\n refreshOnMount,\n });\n const cloneProps = {\n collectionId,\n queryParams,\n collectionType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { job as JobApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function GetJobs({ matrixParams, queryParams, children }) {\n const { request, data: jobs = {}, isLoading, isError } = useApi(JobApi.listJob);\n const onRefresh = () => request({ matrixParams, queryParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [matrixParams, queryParams]);\n const cloneProps = {\n matrixParams,\n queryParams,\n onRefresh,\n isLoading,\n isError,\n jobs,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { access as AccessApi } from '@vidispine/vdt-api';\nimport useApi from '../hooks/useApi';\n\nexport default function ListEntityAccess({ entityId, entityType, queryParams, children }) {\n const { request, data: accessControlList = {}, isLoading } = useApi(AccessApi.listEntityAccess);\n const onRefresh = () => request({ entityId, entityType, queryParams });\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [entityId, entityType, queryParams]);\n const cloneProps = {\n entityId,\n entityType,\n queryParams,\n accessControlList,\n onRefresh,\n isLoading,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { utils as api } from '@vidispine/vdt-api';\n\nexport default class VidispineApi extends React.Component {\n constructor(props) {\n super(props);\n const { serverUrl, token, username, password, runAs } = props;\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n }\n if (token) {\n api.defaultClient.defaults.headers.Authorization = `token ${token}`;\n } else {\n api.defaultClient.defaults.auth = { username, password };\n }\n if (runAs) {\n api.defaultClient.defaults.headers.RunAs = runAs;\n }\n }\n\n componentDidUpdate(prevProps) {\n const { serverUrl, token, username, password, runAs } = this.props;\n if (prevProps.serverUrl !== serverUrl) {\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n } else {\n delete api.defaultClient.defaults.baseURL;\n }\n }\n if (prevProps.token !== token) {\n if (token) {\n api.defaultClient.defaults.headers.Authorization = `token ${token}`;\n } else {\n delete api.defaultClient.defaults.headers.Authorization;\n }\n }\n if (!token && (prevProps.username !== username || prevProps.password !== password)) {\n api.defaultClient.defaults.auth = { username, password };\n }\n if (prevProps.runAs !== runAs) {\n if (runAs) {\n api.defaultClient.defaults.headers.RunAs = runAs;\n } else {\n delete api.defaultClient.defaults.headers.RunAs;\n }\n }\n }\n\n render() {\n const { children, username, serverUrl } = this.props;\n const cloneProps = { username, serverUrl };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n }\n}\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { utils as api, user as UserApi } from '@vidispine/vdt-api';\nimport VidispineApi from './VidispineApi';\n\nconst VIDISPINE_TOKEN = 'VIDISPINE-TOKEN';\nconst VIDISPINE_USERNAME = 'VIDISPINE-USERNAME';\nconst VIDISPINE_SERVER_URL = 'VIDISPINE-SERVER-URL';\nconst VIDISPINE_REMEMBER_ME = 'VIDISPINE-REMEMBER-ME';\n\nconst handleOnGetToken = ({ userName, password, serverUrl }) => {\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n }\n const queryParams = { seconds: 2592000, autoRefresh: 'true' };\n const headers = { password, username: userName };\n try {\n UserApi.getToken({ queryParams, headers })\n .then(({ data: token }) => token)\n .catch(({ response = {}, message = 'Unknown error.' }) => {\n let submissionError = message;\n if (response.status === 401) {\n submissionError = 'Incorrect Username/Password';\n }\n throw submissionError;\n });\n } catch (error) {\n const submissionError = 'Incorrect Username/Password';\n throw submissionError;\n }\n};\n\nexport default function Auth({\n LoginComponent,\n LoginProps = {},\n AppComponent,\n AppProps = {},\n onGetToken = handleOnGetToken,\n onSuccess,\n onError,\n cookieOptions = {\n maxAge: 604800,\n path: '/',\n },\n ...props\n}) {\n const [cookies, setCookie, removeCookie] = useCookies([\n VIDISPINE_TOKEN,\n VIDISPINE_USERNAME,\n VIDISPINE_SERVER_URL,\n VIDISPINE_REMEMBER_ME,\n ]);\n const {\n [VIDISPINE_TOKEN]: token,\n [VIDISPINE_USERNAME]: userName,\n [VIDISPINE_SERVER_URL]: serverUrl,\n } = cookies;\n const rememberMe = cookies[VIDISPINE_REMEMBER_ME] === 'true';\n const onLogin = (values) => {\n let submissionError;\n try {\n onGetToken(values)\n .then((newToken) => {\n const {\n userName: newUserName,\n serverUrl: newServerUrl,\n rememberMe: newRememberMe,\n } = values;\n if (newUserName) setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions);\n if (newServerUrl) setCookie(VIDISPINE_SERVER_URL, newServerUrl, cookieOptions);\n if (newRememberMe) setCookie(VIDISPINE_REMEMBER_ME, newRememberMe, cookieOptions);\n if (newToken) setCookie(VIDISPINE_TOKEN, newToken, cookieOptions);\n if (onSuccess) onSuccess(values);\n })\n .catch((error) => {\n submissionError = error;\n if (onError) return onError(submissionError);\n throw submissionError;\n });\n } catch (error) {\n submissionError = error;\n if (onError) return onError(submissionError);\n }\n return submissionError;\n };\n const onLogout = () => {\n removeCookie(VIDISPINE_TOKEN, cookieOptions);\n if (!rememberMe) {\n removeCookie(VIDISPINE_USERNAME, cookieOptions);\n removeCookie(VIDISPINE_SERVER_URL, cookieOptions);\n removeCookie(VIDISPINE_REMEMBER_ME, cookieOptions);\n }\n };\n return (\n <>\n {token ? (\n <VidispineApi token={token} username={userName} serverUrl={serverUrl}>\n <AppComponent onLogout={onLogout} {...props} {...AppProps} />\n </VidispineApi>\n ) : (\n <LoginComponent\n onLogin={onLogin}\n userName={userName}\n serverUrl={serverUrl}\n rememberMe={rememberMe}\n {...props}\n {...LoginProps}\n />\n )}\n </>\n );\n}\n","import React from 'react';\n\nconst ErrorBoundaryComponent = ({ error, info }) => (\n <div\n style={{\n height: '100%',\n maxHeight: '100vh',\n width: '100%',\n maxWidth: '100vw',\n backgroundColor: 'red',\n color: 'white',\n }}\n >\n {error && <div>{error.toString()}</div>}\n {info && <div>{info.componentStack}</div>}\n </div>\n);\n\nexport default class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n return { error, hasError: true };\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const { hasError, info } = this.state;\n const { info: nextInfo } = nextState;\n if (info === nextInfo && hasError === true) return false;\n return true;\n }\n\n componentDidCatch(error, info) {\n const { onError } = this.props;\n if (typeof onError === 'function') {\n try {\n onError(error, info);\n } catch (onErrorError) {\n return;\n }\n }\n this.setState({ info });\n }\n\n render() {\n const { children } = this.props;\n const { hasError, error, info } = this.state;\n if (hasError) {\n return <ErrorBoundaryComponent info={info} error={error} />;\n }\n return children;\n }\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport { fieldgroup as FieldGroupApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function GetFieldGroup({ groupName, queryParams, children }) {\n const { request, data: metadataFieldGroupDocument, isLoading, isError } = useApi(\n FieldGroupApi.getFieldGroup,\n );\n const onRefresh = () => request({ groupName, queryParams });\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [groupName, queryParams]);\n const cloneProps = {\n groupName,\n queryParams,\n metadataFieldGroupDocument,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { user as UserApi } from '@vidispine/vdt-api';\nimport { roles as ROLES } from '@vidispine/vdt-js';\n\nconst RolesContext = React.createContext();\n\nfunction RolesProvider({ intialState = {}, onRefresh, userName: knownUserName, children }) {\n const [groupListType, setGroupListType] = React.useState(intialState);\n const onGetUserRole = () => {\n if (knownUserName) {\n UserApi.getUserRole({ userName: knownUserName }).then(({ data }) => {\n setGroupListType(data);\n if (onRefresh) onRefresh(data);\n });\n } else {\n let iAm;\n UserApi.whoAmI()\n .then(({ data: userName }) => {\n iAm = userName;\n return UserApi.getUserRole({ userName });\n })\n .then(({ data }) => {\n setGroupListType(data);\n if (onRefresh) onRefresh(data, iAm);\n });\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n React.useEffect(onGetUserRole, [knownUserName]);\n return <RolesContext.Provider value={groupListType}>{children}</RolesContext.Provider>;\n}\n\nfunction useRoles() {\n const groupListType = React.useContext(RolesContext);\n if (groupListType === undefined) {\n throw new Error('useRoles must be used within RolesContext');\n }\n const hasRole = (roleName) => {\n if (roleName === undefined) throw new Error('roleName is undefined');\n const { group: groupList } = groupListType;\n if (!Array.isArray(groupList)) return null;\n const groupNames = groupList.map(({ groupName }) => groupName);\n if (groupNames.includes(ROLES.SUPER_ACCESS_USER)) return true;\n if (Array.isArray(roleName)) {\n return roleName.findIndex((thisRole) => groupNames.includes(thisRole)) > -1;\n }\n return groupNames.includes(roleName);\n };\n return { hasRole, groupListType };\n}\n\nexport { RolesProvider, useRoles };\n","import React from 'react';\nimport { useRoles } from '../context/RolesContext';\n\nexport default function HasRole({ roleName, allow, deny, loading }) {\n if (roleName === undefined) throw new Error('roleName is undefined');\n const { hasRole } = useRoles();\n const checkedRole = hasRole(roleName);\n if (React.isValidElement(allow) && checkedRole === true) {\n return allow;\n }\n if (React.isValidElement(deny) && checkedRole === false) {\n return deny;\n }\n if (React.isValidElement(loading) && checkedRole === null) {\n return loading;\n }\n return null;\n}\n","import React from 'react';\n\nexport default function ComposeProviders({ providers = [], children, ...props }) {\n return providers.reduceRight((acc, Provider) => {\n if (typeof Provider === 'function') {\n return (\n <Provider\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {acc}\n </Provider>\n );\n }\n const { provider: ProviderComponent, ...providerProps } = Provider;\n return (\n <ProviderComponent\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...providerProps}\n >\n {acc}\n </ProviderComponent>\n );\n }, children);\n}\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\n\nimport ErrorBoundary from '../wrappers/ErrorBoundary';\n\nconst withErrorBoundary = (WrappedComponent, errorBoundaryProps = {}) => (props) => (\n <ErrorBoundary {...errorBoundaryProps}>\n <WrappedComponent {...props} />\n </ErrorBoundary>\n);\n\nexport default withErrorBoundary;\n","export const compose = (...funcs) =>\n funcs.reduce(\n (a, b) => (...args) => a(b(...args)),\n (arg) => arg,\n );\n\nexport default compose;\n","import React from 'react';\nimport { uuidv4 } from '../utils';\n\nexport const BinContext = React.createContext();\n\nconst defaultIsUniqueBinItem = (\n bin,\n { entityId, entityType, entityTimespan: { start, end, field: [{ name } = {}] = [] } = {} },\n) => {\n const entityExistsInBin = bin.some(\n (o) => o.entity.id === entityId && o.entityType === entityType,\n );\n let entityTimespanExistsInBin = false;\n if (entityExistsInBin) {\n const binEntitiesWithSameId = bin.filter(\n (o) => o.entity.id === entityId && o.entityType === entityType,\n );\n binEntitiesWithSameId.forEach(\n ({\n entityTimespan: { start: beStart, end: beEnd, field: [{ name: beName } = {}] = [] } = {},\n }) => {\n if (start === beStart && end === beEnd && name === beName) {\n entityTimespanExistsInBin = true;\n }\n },\n );\n }\n return !entityExistsInBin || !entityTimespanExistsInBin;\n};\nexport function BinProvider({\n onChange,\n children,\n initialState = [],\n allowDuplicates: defaultAllowDuplicates = false,\n isUniqueBinItem = defaultIsUniqueBinItem,\n}) {\n const [binState, setBinState] = React.useState(initialState);\n const [allowDuplicates, setAllowDuplicates] = React.useState(defaultAllowDuplicates);\n\n const onDelete = (binIdToDelete) => {\n if (!binIdToDelete || !['string', 'number'].includes(typeof binIdToDelete)) {\n // eslint-disable-next-line no-console\n console.error('BinProvider onDelete called without a binId of the entity to delete');\n return;\n }\n setBinState((state) => {\n const newState = state.filter((o) => o.binId !== binIdToDelete);\n if (onChange) onChange(newState);\n return newState;\n });\n };\n\n const onEmptyBin = () => {\n const newState = [];\n setBinState(newState);\n if (onChange) onChange(newState);\n };\n\n const createBinObject = (binObject) => {\n const [binId] = uuidv4().split('-');\n return { binId, ...binObject };\n };\n\n const handleDrop = ({ dragInfo = {} } = {}) => {\n const { entityId, entityType, entity } = dragInfo;\n if (!entityId || !entityType || !entity) {\n throw new Error('Dragged element needs to have entityId, entityType and entity props');\n }\n setBinState((state = []) => {\n if (isUniqueBinItem(state, dragInfo) || allowDuplicates) {\n const newState = [...state, createBinObject(dragInfo)];\n if (onChange) onChange(newState);\n return newState;\n }\n return state;\n });\n };\n\n const handleSort = ({ dragId, hoverId, originalDragIndex }) => {\n if (dragId === undefined || (hoverId === undefined && originalDragIndex === undefined)) return;\n setBinState((state) => {\n const newState = [...state];\n const dragIndex = binState.findIndex((o) => o.binId === dragId);\n const hoverIndex = binState.findIndex((o) => o.binId === hoverId);\n const newDragIndex = hoverIndex > -1 ? hoverIndex : originalDragIndex;\n [newState[newDragIndex], newState[dragIndex]] = [newState[dragIndex], newState[newDragIndex]];\n if (onChange) onChange(newState);\n return newState;\n });\n };\n\n return (\n <BinContext.Provider\n value={{\n setBin: setBinState,\n bin: binState,\n allowDuplicates,\n setAllowDuplicates,\n onDrop: handleDrop,\n onSort: handleSort,\n onFind: () => null,\n onEmptyBin,\n onDelete,\n }}\n >\n {children}\n </BinContext.Provider>\n );\n}\n","import React from 'react';\nimport { metadata as MetadataApi } from '@vidispine/vdt-api';\n\nconst SettingsDispatchContext = React.createContext();\nconst SettingsStateContext = React.createContext();\n\nconst UPDATE_ALL_SETTINGS = 'UPDATE_ALL_SETTINGS';\nconst UPDATE_SETTING = 'UPDATE_SETTING';\nconst UPDATE_USERNAME = 'UPDATE_USERNAME';\nconst REMOVE_SETTING = 'REMOVE_SETTING';\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case UPDATE_USERNAME: {\n return { ...state, userName: action.userName };\n }\n case UPDATE_ALL_SETTINGS: {\n return { ...state, settings: action.settings };\n }\n case UPDATE_SETTING: {\n const settings = { ...state.settings, ...action.setting };\n return { ...state, settings };\n }\n case REMOVE_SETTING: {\n const settings = { ...state.settings };\n delete settings[action.key];\n return { ...state, settings };\n }\n default:\n return state;\n }\n};\n\nconst SettingsProvider = ({\n userName: initialUsername,\n settingsKey,\n children,\n initialSettings = {},\n onChange,\n getSettingsApi = MetadataApi.getSimpleMetadataKey,\n updateSettingsApi = MetadataApi.updateSimpleMetadataKey,\n}) => {\n const [state, dispatch] = React.useReducer(reducer, {\n settings: initialSettings,\n userName: initialUsername,\n });\n const currentSettingsFromServer = React.useRef();\n\n React.useEffect(() => {\n const { userName } = state;\n if (!getSettingsApi || !userName) return;\n getSettingsApi({\n entityType: 'user',\n entityId: userName,\n key: settingsKey,\n })\n .then(({ data: settings }) => {\n dispatch({\n type: UPDATE_ALL_SETTINGS,\n settings,\n userName,\n settingsKey,\n });\n currentSettingsFromServer.current = JSON.stringify(settings);\n })\n .catch((error) => {\n const { response } = error;\n if (response.status !== 404) {\n throw new Error(error);\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.userName]);\n\n React.useEffect(() => {\n if (onChange) onChange(state.settings);\n const { userName } = state;\n if (!updateSettingsApi || !userName) return;\n const newValue = JSON.stringify(state.settings);\n const currentValue = currentSettingsFromServer.current;\n if (!currentValue || newValue === currentValue) return;\n updateSettingsApi({\n entityType: 'user',\n entityId: userName,\n key: settingsKey,\n value: newValue,\n });\n currentSettingsFromServer.current = newValue;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.settings]);\n\n return (\n <SettingsStateContext.Provider value={state}>\n <SettingsDispatchContext.Provider value={dispatch}>\n {children}\n </SettingsDispatchContext.Provider>\n </SettingsStateContext.Provider>\n );\n};\n\nconst useSettingsState = () => {\n const state = React.useContext(SettingsStateContext);\n if (!state) throw new Error('useSettingsState must be used within SettingsStateContext');\n return state;\n};\n\nconst useSettingsDispatch = () => {\n const dispatch = React.useContext(SettingsDispatchContext);\n if (!dispatch) throw new Error('useSettingsDispatch must be used within SettingsDispatchContext');\n return dispatch;\n};\n\nconst useSettingsActions = () => {\n const dispatch = useSettingsDispatch();\n const updateAllSettings = React.useCallback(\n (settings) => dispatch({ type: UPDATE_ALL_SETTINGS, settings }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const updateSetting = React.useCallback(\n (setting) => dispatch({ type: UPDATE_SETTING, setting }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const updateUsername = React.useCallback(\n (userName) => dispatch({ type: UPDATE_USERNAME, userName }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const removeSetting = React.useCallback((key) => dispatch({ type: REMOVE_SETTING, key }), []);\n return {\n updateAllSettings,\n updateSetting,\n updateUsername,\n removeSetting,\n };\n};\n\nconst useSettings = () => {\n const { settings = {} } = useSettingsState();\n const actions = useSettingsActions();\n return {\n ...actions,\n settings,\n };\n};\n\nexport { SettingsProvider, useSettingsActions, useSettings };\n","import React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { user as UserApi, noauth as NoAuthApi, utils as api } from '@vidispine/vdt-api';\n\nimport { VidispineApi } from '../wrappers';\nimport { useApi } from '../hooks';\n\nconst VIDISPINE_TOKEN = 'VIDISPINE-TOKEN';\nconst VIDISPINE_USERNAME = 'VIDISPINE-USERNAME';\nconst VIDISPINE_SERVER_URL = 'VIDISPINE-SERVER-URL';\nconst VIDISPINE_REMEMBER_ME = 'VIDISPINE-REMEMBER-ME';\nconst ERROR_CREDENTIALS = 'Incorrect username or password';\nconst ERROR_OFFLINE = 'Offline or CORS not configured';\nconst ERROR_TOKEN_EXPIRED = 'Session expired';\nconst ERROR_SERVER_MISMATCH = 'VIDISPINE_URL mismatch';\n\nconst getErrorMessage = (serverUrl) => {\n try {\n // NoAuthApi.isOnline throws cors error after multiple requests\n return NoAuthApi.getSelfTest({ baseURL: serverUrl })\n .then(() => ERROR_CREDENTIALS)\n .catch(() => ERROR_OFFLINE);\n } catch (_) {\n return Promise.resolve(ERROR_OFFLINE);\n }\n};\n\nconst defaultOnGetToken = ({ maxAge: seconds = 60, userName, password, serverUrl }) => {\n try {\n return UserApi.getToken({\n queryParams: { seconds, autoRefresh: 'true' },\n headers: { password, username: userName },\n baseURL: serverUrl,\n })\n .then(({ data: token }) => {\n return token;\n })\n .catch(() => {\n return getErrorMessage(serverUrl).then((error) => {\n throw Error(error);\n });\n });\n } catch (_) {\n return getErrorMessage(serverUrl).then((error) => {\n throw Error(error);\n });\n }\n};\n\nexport const AuthContext = React.createContext({\n serverUrl: null,\n token: null,\n user: null,\n userName: null,\n onLogin: () => null,\n onLogout: () => null,\n});\n\nexport const AuthProvider = ({\n cookieOptions = {\n maxAge: 604800,\n path: '/',\n },\n LoginComponent,\n LoginProps = {},\n onGetToken = defaultOnGetToken,\n onSuccess,\n onError,\n serverUrl: propsServerUrl,\n userName: propsUserName,\n token: propsToken,\n children,\n}) => {\n const { data: userType, request: getUser } = useApi(UserApi.getUser);\n\n const [cookies, setCookie, removeCookie] = useCookies([\n VIDISPINE_TOKEN,\n VIDISPINE_USERNAME,\n VIDISPINE_SERVER_URL,\n VIDISPINE_REMEMBER_ME,\n ]);\n const {\n [VIDISPINE_TOKEN]: token = propsToken,\n [VIDISPINE_USERNAME]: userName = propsUserName,\n [VIDISPINE_SERVER_URL]: serverUrl = propsServerUrl,\n } = cookies;\n const rememberMe = cookies[VIDISPINE_REMEMBER_ME] === 'true';\n const { maxAge } = cookieOptions;\n const onLogin = (values) => {\n let submissionError;\n try {\n return onGetToken({ maxAge, ...values })\n .then((newToken) => {\n const {\n userName: newUserName,\n serverUrl: newServerUrl,\n rememberMe: newRememberMe,\n } = values;\n if (newUserName) setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions);\n if (newServerUrl) setCookie(VIDISPINE_SERVER_URL, newServerUrl, cookieOptions);\n if (newRememberMe) setCookie(VIDISPINE_REMEMBER_ME, newRememberMe, cookieOptions);\n if (newToken) setCookie(VIDISPINE_TOKEN, newToken, cookieOptions);\n if (onSuccess) onSuccess(values);\n })\n .catch((error) => {\n submissionError = error;\n if (onError) onError(submissionError);\n });\n } catch (error) {\n submissionError = error;\n if (onError) onError(submissionError);\n }\n return submissionError;\n };\n const onLogout = React.useCallback(() => {\n removeCookie(VIDISPINE_TOKEN, cookieOptions);\n if (!rememberMe) {\n removeCookie(VIDISPINE_USERNAME, cookieOptions);\n removeCookie(VIDISPINE_SERVER_URL, cookieOptions);\n removeCookie(VIDISPINE_REMEMBER_ME, cookieOptions);\n }\n }, [cookieOptions, rememberMe, removeCookie]);\n\n const responseInterceptor = React.useRef();\n React.useEffect(() => {\n if (token) {\n if (responseInterceptor.current)\n api.defaultClient.interceptors.response.eject(responseInterceptor.current);\n responseInterceptor.current = api.defaultClient.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n onLogout();\n if (onError) onError(Error(ERROR_TOKEN_EXPIRED));\n }\n } else {\n const { config: { baseURL } = {} } = error;\n NoAuthApi.getSelfTest({ baseURL })\n .then(() => {\n onLogout();\n if (onError) onError(Error(ERROR_TOKEN_EXPIRED));\n })\n .catch(() => null); // Will throw if offline or CORS error\n }\n return Promise.reject(error);\n },\n );\n }\n return () => {\n if (responseInterceptor.current)\n api.defaultClient.interceptors.response.eject(responseInterceptor.current);\n };\n }, [onLogout, onError, token]);\n\n React.useEffect(() => {\n if (token && userName === undefined) {\n UserApi.whoAmI().then(({ data: newUserName }) =>\n setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions),\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [userName, token]);\n\n React.useEffect(() => {\n if (token && userName && userType === undefined) getUser({ userName });\n }, [userName, token, userType, getUser, onLogout]);\n React.useEffect(() => {\n if (token && serverUrl && propsServerUrl && serverUrl !== propsServerUrl) {\n onLogout();\n if (onError) onError(Error(ERROR_SERVER_MISMATCH));\n }\n }, [token, serverUrl, propsServerUrl, onLogout, onError]);\n\n return (\n <>\n {token ? (\n <VidispineApi token={token} username={userName} serverUrl={serverUrl}>\n <AuthContext.Provider\n value={{\n serverUrl,\n token,\n userType,\n userName,\n onLogin,\n onLogout,\n }}\n >\n {children}\n </AuthContext.Provider>\n </VidispineApi>\n ) : (\n <LoginComponent\n onLogin={onLogin}\n userName={userName}\n serverUrl={serverUrl}\n rememberMe={rememberMe}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...LoginProps}\n />\n )}\n </>\n );\n};\n\nexport const useAuthContext = () => {\n const context = React.useContext(AuthContext);\n if (context === undefined) {\n throw new Error('useAuth must be used within an AuthContext');\n }\n\n return context;\n};\n","import React from 'react';\n\nexport default ({\n children,\n setDrag,\n onDrop: onDropProp,\n onDragEnter: onDragEnterProp,\n onDragOver: onDragOverProp,\n onDragLeave: onDragLeaveProp,\n style,\n}) => {\n const [dragCounter, setDragCounter] = React.useState(0);\n\n const onDrop = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDrag(false);\n if (onDropProp) onDropProp(e);\n };\n\n const onDragEnter = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragCounter(dragCounter + 1);\n if (dragCounter === 0) setDrag(true);\n if (onDragEnterProp) onDragEnterProp(e);\n };\n\n const onDragOver = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (onDragOverProp) onDragOverProp(e);\n };\n\n const onDragLeave = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragCounter(dragCounter - 1);\n if (dragCounter === 1) setDrag(false);\n if (onDragLeaveProp) onDragLeaveProp(e);\n };\n\n return (\n <div\n onDragEnter={(e) => onDragEnter(e)}\n onDragOver={(e) => onDragOver(e)}\n onDrop={(e) => onDrop(e)}\n onDragLeave={(e) => onDragLeave(e)}\n style={style}\n >\n {children}\n </div>\n );\n};\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\n\nexport const handleAddEntity = ({ entityId, entityType, collectionId, rootParentId, onError }) => {\n if (collectionId && collectionId !== rootParentId) {\n try {\n return CollectionApi.addCollectionEntity({\n collectionId,\n entityId,\n queryParams: {\n type: entityType.toLowerCase(),\n },\n });\n } catch (error) {\n onError({\n message: `Could not add ${entityId} to collection ${collectionId}`,\n error,\n });\n }\n }\n return undefined;\n};\nexport const handleRemoveEntity = ({\n entityId,\n entityType,\n collectionId,\n rootParentId,\n onError,\n}) => {\n if (collectionId && collectionId !== rootParentId) {\n try {\n return CollectionApi.removeCollectionEntity({\n collectionId,\n entityId,\n queryParams: {\n type: entityType.toLowerCase(),\n },\n });\n } catch (error) {\n onError({\n message: `Could not remove ${entityId} from collection ${collectionId}`,\n error,\n });\n }\n }\n return undefined;\n};\n\nexport const handleMoveEntity = ({\n entityId,\n entityType,\n addToCollectionId,\n removeFromCollectionId,\n rootParentId,\n onAddEntity = handleAddEntity,\n onRemoveEntity = handleRemoveEntity,\n onMoved = () => null,\n onAdded = () => null,\n onRemoved = () => null,\n // eslint-disable-next-line no-console\n onError = ({ message, error }) => console.error(`${message}\\n${error}`),\n}) => {\n if (!addToCollectionId) {\n onError({ message: 'Missing the collection id to add entity to', error: '' });\n return;\n }\n if (!removeFromCollectionId) {\n onError({ message: 'Missing the collection id to remove entity from', error: '' });\n return;\n }\n try {\n const addPromise = onAddEntity({\n entityId,\n entityType,\n rootParentId,\n collectionId: addToCollectionId,\n onError,\n });\n const removePromise = onRemoveEntity({\n entityId,\n entityType,\n rootParentId,\n collectionId: removeFromCollectionId,\n onError,\n });\n const promises = [addPromise, removePromise].filter((e) => e !== undefined);\n Promise.allSettled(promises)\n .then((results) => {\n const failedResults = results.filter((r) => r.status !== 'fulfilled');\n const allSucceeded = failedResults.length === 0;\n const allFailed = failedResults.length === promises.length;\n const oneFailed = failedResults.length === 1;\n if (allSucceeded) {\n onMoved();\n onAdded();\n onRemoved();\n } else if (allFailed) {\n onError({\n message:\n `Could not move ${entityId} from ` +\n `${removeFromCollectionId} to ${addToCollectionId}`,\n error: failedResults.map((fr) => fr.reason).join('\\n'),\n });\n } else if (oneFailed) {\n const failedRequest = failedResults[0].reason.config.method;\n const failedToRemove = failedRequest === 'delete';\n const failedToAdd = failedRequest === 'put';\n onError({\n message: failedToRemove\n ? `Could not remove ${entityId} from collection ${removeFromCollectionId}`\n : `Could not add ${entityId} to collection ${addToCollectionId}`,\n error: failedResults[0].reason,\n });\n let rollbackPromise;\n if (failedToRemove) {\n rollbackPromise = onRemoveEntity({\n entityId,\n entityType,\n collectionId: addToCollectionId,\n onError,\n });\n } else if (failedToAdd) {\n rollbackPromise = onAddEntity({\n entityId,\n entityType,\n collectionId: removeFromCollectionId,\n onError,\n });\n }\n if (rollbackPromise) {\n rollbackPromise\n .then(() => {\n // eslint-disable-next-line no-console\n console.info(\n `Rollbacked moving ${entityId} from ` +\n `${removeFromCollectionId} to ${addToCollectionId}`,\n );\n })\n .catch((error) => {\n onError({ message: 'Could not rollback after moving entity', error });\n });\n }\n }\n })\n .catch((error) => {\n onError({\n message: `Could not add ${entityId} to collection ${addToCollectionId}`,\n error,\n });\n });\n } catch (error) {\n onError({\n message: `Could not move ${entityId} from ${removeFromCollectionId} to collection ${addToCollectionId}`,\n error,\n });\n }\n};\n\nexport default { handleMoveEntity, handleAddEntity, handleRemoveEntity };\n"],"names":["setDefaultState","hasLoaded","isLoading","isError","response","undefined","data","responseRef","current","apiReducer","state","action","type","responseType","newState","initialState","canceltoken","api","CancelToken","source","useApi","apiHandler","initialDefaultState","initialStateRef","React","useRef","useReducer","dispatch","request","useCallback","props","Promise","resolve","reject","then","reset","useEffect","cancel","CHANGE_PAGE","CHANGE_ROWS","CHANGE_SORT","CHANGE_SEARCHTEXT","CHANGE_SEARCHFIELD","CHANGE_SEARCHFIELDFACET","CHANGE_SEARCHFILTER","CHANGE_SEARCHFILTERFACET","CHANGE_PARENT_COLLECTION","CHANGE_FACET","CHANGE_ITEMSEARCHDOCUMENT","CHANGE_QUERYPARAMS","CHANGE_MATRIXPARAMS","CHANGE_SUGGESTION","ACTION_TYPE","setInitialDefaultState","queryParams","matrixParams","itemSearchDocument","rowsPerPage","page","content","interval","first","number","intervals","filter","searchReducer","searchText","value","sort","field","order","text","facet","parentCollection","operator","name","operation","suggestion","useSearch","onChangeRowsPerPage","newRows","target","onChangePage","newPage","onChangeSort","event","setSearchText","setItemSearchDocument","setQueryParams","CHANGE_ITEMQUERYPARAMS","setMatrixParams","CHANGE_ITEMMATRIXPARAMS","setSearchField","setSearchFieldFacet","map","count","setSearchFilter","setSearchFilterFacet","fieldList","reduce","a","concat","exclude","setFacet","setParentCollection","setSuggestion","useUpdateEffect","fn","inputs","hasMountedRef","maximumSuggestions","useAutocomplete","useState","autocompleteDoc","setAutocompleteDoc","setAutocompleteField","setAutocompleteText","setAutocompleteMaxSuggestions","SearchApi","searchAutoComplete","suggestions","autocompleteRequestDocument","propKey","selected","setSelected","onSelect","checked","propValue","currentIndex","findIndex","thisSelected","newSelected","splice","isSelected","onClear","initialTab","activeTab","setActiveTab","changeTab","_","newValue","useInterval","callback","delay","savedCallback","tick","id","setInterval","clearInterval","useThumbnailScrub","srcList","savedInterval","initialImgIdx","useMemo","Math","floor","length","imgIdx","setImgIdx","imgIdxRef","width","onMouseEnter","onMouseLeave","imageSrc","CHANGE_TYPE","CHANGE_STATE","CHANGE_PRIORITY","CHANGE_STARTTIME","CHANGE_FINISHTIME","jobMetadata","rest","deleteField","newMatrixParams","Array","isArray","join","newQueryParams","CHANGE_JOBMETADATA","useJobSearch","fieldName","onChangeType","onChangeState","onChangePriority","onChangeStarttime","onChangeFinishtime","onChangeJobmetadata","useLocalStorage","localStorageKey","defaultValue","JSON","parse","window","localStorage","getItem","stringify","setValue","setItem","getValue","uuidv4","replace","c","crypto","getRandomValues","Uint8Array","toString","b64EncodeUnicode","str","compressToEncodedURIComponent","b64DecodeUnicode","slice","decodeURIComponent","atob","split","charCodeAt","decompressFromEncodedURIComponent","DEFAULT_AUDIO_SHAPETAGS","DEFAULT_VIDEO_SHAPETAGS","DEFAULT_IMAGE_SHAPETAGS","AUDIO_MIMETYPE_PREFIX","VIDEO_MIMETYPE_PREFIX","IMAGE_MIMETYPE_PREFIX","ADDITIONAL_VIDEO_MIMETYPES","ADDITIONAL_IMAGE_MIMETYPES","ADDITIONAL_AUDIO_MIMETYPES","getDefaultShapeTags","file","mimeType","toLowerCase","startsWith","includes","chunkedUpload","uploadInstance","ChunkedUpload","onFail","error","onComplete","resp","upload","onUploadFile","collectionId","onProgress","metadata","propsMetadata","placeholderParams","importParams","chunkedUploadProps","generateTransferId","getShapeTags","itemId","shapeTags","filename","mediaType","originalFilename","metadataDocument","createMetadataType","ImportApi","createImportPlaceholder","container","itemDocument","collectionIds","all","CollectionApi","addCollectionEntity","entityId","transferId","tag","method","createImportComponentRaw","component","err","console","useUploadFiles","handleUploadFile","initialMetadata","files","setFiles","forEach","URL","revokeObjectURL","preview","onAddFiles","newFiles","newFilesObj","title","currentFiles","onChangeFile","idx","changeFile","currentFilesList","currentFile","newMetadata","newProgress","progress","currentMetadata","currentProgress","newFilesList","newFile","onChangeProgress","onChangeMetadata","onUpload","uploadProps","previousPromise","thisFile","res","currentResult","onRemoveFile","i","onRemoveFiles","idxs","useQueryInitialState","history","queryName","defaultState","defaultStateRef","queryState","searchParams","URLSearchParams","location","search","encodedQuery","get","decodedQuery","pathName","queryInitialState","useUpdateQueryState","onSearchStateChange","useEntityAccess","entityType","AccessApi","listEntityAccess","accessControlList","onList","onRemove","accessId","removeEntityAccess","onAdd","accessControlDocument","createEntityAccess","getValueFromData","key","find","d","defaultGetDataAttributes","fieldOrGroup","keys","Object","assign","getOptions","values","f","label","convertValuesXmlToJson","xmlString","doc","DOMParser","parseFromString","fields","getElementsByTagName","json","childNodes","keyNode","valueNode","push","nodeName","firstChild","nodeValue","useAddMetadataFieldAttributes","groups","getDataAttributes","fieldDataToInclude","groupDataToInclude","fieldQueryParams","groupQueryParams","setIsLoading","fieldsWithAttributes","setFieldsWithAttributes","groupsWithAttributes","setGroupsWithAttributes","useDeepCompareEffect","addFieldAttributes","fieldsArray","fieldsAttributes","overrides","fieldAttributes","dataAttributes","constraint","options","addGroupAttributes","groupsArray","groupsAttributes","group","groupAttributes","childFields","childGroups","didCancel","fetchAttributesAsync","fieldPromises","MetadataFieldApi","getMetadataField","warn","groupPromises","groupsToFetch","groupName","FieldGroupApi","getFieldGroup","dataValues","e","jsonValues","g","some","v","newGroupsWithAttributes","b","indexOf","UPDATE_FREQUENCY","UPDATE_MODE","saveSearch","markerField","markerValue","ItemApi","searchItem","result","updateMode","updateFrequency","library","createCollection","collectionDocument","getLibraryFromCollection","getCollection","children","collectionType","libraryType","Error","deleteSearch","libraryId","LibraryApi","removeLibrary","removeCollection","getLibrarySettings","query","getSavedSearchSettings","useSavedSearch","initialSearchState","onSaveSearch","onDeleteSearch","onUpdateSearchMetadata","updateCollectionMetadata","onGetSavedSearchSettings","saveSearchWithMarker","mergeMarkerField","searchProps","useSearchItem","itemListType","onRefresh","useMouseDownPosition","x","y","position","setPosition","setFromEvent","clientX","clientY","addEventListener","removeEventListener","useGetCollection","refreshOnMount","getCollectionItem","useGetEntity","dataType","entityApi","entityTypeId","getLibrary","apiProps","onGetEntity","useUser","UserApi","getUser","userType","userName","updateUser","userDocument","updateUserGroups","updateUserGroup","groupListDocument","removeUserFromGroup","GroupApi","removeGroupUser","changePassword","password","passwordType","deleteUser","disableUser","hard","args","enableUser","CHANGE_QUERY","userSearchDocument","useSearchUser","searchUser","userListDocument","onSearchUser","onChangeQuery","useListGroup","listGroup","groupListType","useListUser","listUser","userListType","HIDE_ROLES","groupSearchDocument","hideRoles","role","useSearchGroup","searchGroup","onSearchGroup","onHideRoles","useGroup","getGroup","groupType","updateGroup","groupDocument","addChildGroups","childGroupList","addParentGroups","parentGroupList","addUsersToGroup","users","userList","user","u","removeChildGroup","childGroupName","removeGroupChildren","removeFromParentGroup","parentGroupName","removeGroup","useGetItem","itemType","useCollectionAutoPlay","defaultEnabled","nextPlaying","setNextPlaying","isAutoPlayEnabled","setIsAutoPlayEnabled","toggleAutoPlay","prevValue","allItemsRef","orderItemsRef","hitsRef","onNext","searchDocument","searchForNext","allItems","orderItems","searchCollectionItem","hits","item","itemList","contentList","currentItemIdx","thisId","remainingItems","nextItem","useHoverScrub","customOffset","scrubPosition","setScrubPosition","thumbnailIndex","setThumbnailIndex","showScrub","setShowScrub","getInnerLeft","left","currentTarget","offsetLeft","offsetWidth","onMouseMove","innerLeft","handleShowScrub","MetadataType","joinValue","flat","metadataType","parseMetadataType","cloneProps","cloneChild","child","cloneElement","Children","SearchCollection","searchCollection","collectionListType","SearchItem","SearchItemCollection","searchItemCollection","searchResultType","GetItem","GetCollectionContent","GetJobs","JobApi","listJob","jobs","ListEntityAccess","VidispineApi","serverUrl","token","username","runAs","defaultClient","defaults","baseURL","headers","Authorization","auth","RunAs","prevProps","Component","VIDISPINE_TOKEN","VIDISPINE_USERNAME","VIDISPINE_SERVER_URL","VIDISPINE_REMEMBER_ME","handleOnGetToken","seconds","autoRefresh","getToken","message","submissionError","status","Auth","LoginComponent","LoginProps","AppComponent","AppProps","onGetToken","onSuccess","onError","cookieOptions","maxAge","path","useCookies","cookies","setCookie","removeCookie","rememberMe","onLogin","newToken","newUserName","newServerUrl","newRememberMe","onLogout","ErrorBoundaryComponent","info","height","maxHeight","maxWidth","backgroundColor","color","componentStack","ErrorBoundary","hasError","nextProps","nextState","nextInfo","onErrorError","setState","GetFieldGroup","metadataFieldGroupDocument","RolesContext","createContext","RolesProvider","intialState","knownUserName","setGroupListType","onGetUserRole","getUserRole","iAm","whoAmI","useRoles","useContext","hasRole","roleName","groupList","groupNames","ROLES","SUPER_ACCESS_USER","thisRole","HasRole","allow","deny","loading","checkedRole","isValidElement","ComposeProviders","providers","reduceRight","acc","Provider","ProviderComponent","provider","providerProps","withErrorBoundary","WrappedComponent","errorBoundaryProps","compose","funcs","arg","BinContext","defaultIsUniqueBinItem","bin","entityTimespan","start","end","entityExistsInBin","o","entity","entityTimespanExistsInBin","binEntitiesWithSameId","beStart","beEnd","beName","BinProvider","onChange","allowDuplicates","defaultAllowDuplicates","isUniqueBinItem","binState","setBinState","setAllowDuplicates","onDelete","binIdToDelete","binId","onEmptyBin","createBinObject","binObject","handleDrop","dragInfo","handleSort","dragId","hoverId","originalDragIndex","dragIndex","hoverIndex","newDragIndex","setBin","onDrop","onSort","onFind","SettingsDispatchContext","SettingsStateContext","UPDATE_ALL_SETTINGS","UPDATE_SETTING","UPDATE_USERNAME","REMOVE_SETTING","reducer","settings","setting","SettingsProvider","initialUsername","settingsKey","initialSettings","getSettingsApi","MetadataApi","getSimpleMetadataKey","updateSettingsApi","updateSimpleMetadataKey","currentSettingsFromServer","currentValue","useSettingsState","useSettingsDispatch","useSettingsActions","updateAllSettings","updateSetting","updateUsername","removeSetting","useSettings","actions","ERROR_CREDENTIALS","ERROR_OFFLINE","ERROR_TOKEN_EXPIRED","ERROR_SERVER_MISMATCH","getErrorMessage","NoAuthApi","getSelfTest","defaultOnGetToken","AuthContext","AuthProvider","propsServerUrl","propsUserName","propsToken","responseInterceptor","interceptors","eject","use","config","useAuthContext","context","setDrag","onDropProp","onDragEnterProp","onDragEnter","onDragOverProp","onDragOver","onDragLeaveProp","onDragLeave","style","dragCounter","setDragCounter","preventDefault","stopPropagation","handleAddEntity","rootParentId","handleRemoveEntity","removeCollectionEntity","handleMoveEntity","addToCollectionId","removeFromCollectionId","onAddEntity","onRemoveEntity","onMoved","onAdded","onRemoved","addPromise","removePromise","promises","allSettled","results","failedResults","r","allSucceeded","allFailed","oneFailed","fr","reason","failedRequest","failedToRemove","failedToAdd","rollbackPromise"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/hooks/useApi.js","../src/hooks/useSearch.js","../src/hooks/useUpdateEffect.js","../src/hooks/useAutocomplete.js","../src/hooks/useSelected.js","../src/hooks/useTab.js","../src/hooks/useInterval.js","../src/hooks/useThumbnailScrub.js","../src/hooks/useJobSearch.js","../src/hooks/useLocalStorage.js","../src/utils.js","../src/hooks/useUploadFiles.js","../src/hooks/useQueryInitialState.js","../src/hooks/useUpdateQueryState.js","../src/hooks/useEntityAccess.js","../src/hooks/useAddMetadataFieldAttributes.js","../src/hooks/useSavedSearch.js","../src/hooks/useSearchItem.js","../src/hooks/useMouseDownPosition.js","../src/hooks/useGetCollection.js","../src/hooks/useGetCollectionItem.js","../src/hooks/useGetEntity.js","../src/hooks/useUser.js","../src/hooks/useSearchUser.js","../src/hooks/useListGroup.js","../src/hooks/useListUser.js","../src/hooks/useSearchGroup.js","../src/hooks/useGroup.js","../src/hooks/useGetItem.js","../src/hooks/useCollectionAutoPlay.js","../src/hooks/useHoverScrub.js","../src/hooks/useItemSearchAutocomplete.js","../src/wrappers/MetadataType.js","../src/wrappers/SearchCollection.js","../src/wrappers/SearchItem.js","../src/wrappers/SearchItemCollection.js","../src/wrappers/GetItem.js","../src/wrappers/GetCollection.js","../src/wrappers/GetJobs.js","../src/wrappers/ListEntityAccess.js","../src/wrappers/VidispineApi.js","../src/wrappers/Auth.js","../src/wrappers/ErrorBoundary.js","../src/wrappers/GetFieldGroup.js","../src/context/RolesContext.js","../src/wrappers/HasRole.js","../src/wrappers/ComposeProviders.js","../src/hoc/withErrorBoundary.js","../src/hoc/compose.js","../src/context/BinContext.js","../src/context/SettingsContext.js","../src/context/AuthContext.js","../src/DropArea.js","../src/moveEntity.js"],"sourcesContent":["import React from 'react';\nimport { utils as api } from '@vidispine/vdt-api';\n\nconst setDefaultState = (\n {\n hasLoaded = false,\n isLoading = true,\n isError = false,\n response = undefined,\n data = undefined,\n } = {},\n responseRef,\n) => ({\n isLoading,\n hasLoaded,\n isError,\n response,\n data: responseRef && responseRef.current ? responseRef.current : data,\n});\n\nconst apiReducer = (state, action) => {\n switch (action.type) {\n case 'START': {\n return {\n ...state,\n isLoading: true,\n isError: false,\n };\n }\n case 'SUCCESS': {\n const { responseType } = action.response;\n const newState = {\n isLoading: false,\n isError: false,\n hasLoaded: true,\n response: action.response,\n data: action.response.data,\n };\n if (responseType) newState[responseType] = action.response[responseType];\n return newState;\n }\n case 'ERROR': {\n return {\n isLoading: false,\n isError: true,\n hasLoaded: true,\n response: action.response,\n data: action.response.data,\n };\n }\n case 'RESET': {\n return {\n ...action.initialState,\n };\n }\n default: {\n return state;\n }\n }\n};\n\nconst canceltoken = api.CancelToken.source();\n\nexport default function useApi(apiHandler, initialState, responseRef) {\n const initialDefaultState = setDefaultState(initialState, responseRef);\n const initialStateRef = React.useRef(initialDefaultState);\n const [state, dispatch] = React.useReducer(apiReducer, initialDefaultState);\n const request = React.useCallback(\n (props) => {\n dispatch({ type: 'START' });\n return new Promise((resolve, reject) => {\n apiHandler({ canceltoken, ...props })\n .then((response) => {\n resolve(response);\n dispatch({ type: 'SUCCESS', response });\n // eslint-disable-next-line no-param-reassign\n if (responseRef) responseRef.current = response.data;\n })\n .catch((response) => {\n reject(response);\n dispatch({ type: 'ERROR', response });\n });\n });\n },\n [apiHandler, responseRef],\n );\n const reset = React.useCallback(\n () => dispatch({ type: 'RESET', initialState: initialStateRef.current }),\n [],\n );\n React.useEffect(() => canceltoken.cancel, []);\n return {\n request,\n reset,\n ...state,\n };\n}\n","import React from 'react';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_SEARCHTEXT = 'CHANGE_SEARCHTEXT';\nconst CHANGE_SEARCHFIELD = 'CHANGE_SEARCHFIELD';\nconst CHANGE_SEARCHFIELDFACET = 'CHANGE_SEARCHFIELDFACET';\nconst CHANGE_SEARCHFILTER = 'CHANGE_SEARCHFILTER';\nconst CHANGE_SEARCHFILTERFACET = 'CHANGE_SEARCHFILTERFACET';\nconst CHANGE_PARENT_COLLECTION = 'CHANGE_PARENT_COLLECTION';\nconst CHANGE_FACET = 'CHANGE_FACET';\nconst CHANGE_ITEMSEARCHDOCUMENT = 'CHANGE_ITEMSEARCHDOCUMENT';\nconst CHANGE_QUERYPARAMS = 'CHANGE_QUERYPARAMS';\nconst CHANGE_MATRIXPARAMS = 'CHANGE_MATRIXPARAMS';\nconst CHANGE_SUGGESTION = 'CHANGE_SUGGESTION';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_SEARCHTEXT,\n CHANGE_SEARCHFIELD,\n CHANGE_SEARCHFIELDFACET,\n CHANGE_SEARCHFILTER,\n CHANGE_SEARCHFILTERFACET,\n CHANGE_PARENT_COLLECTION,\n CHANGE_FACET,\n CHANGE_ITEMSEARCHDOCUMENT,\n CHANGE_QUERYPARAMS,\n CHANGE_MATRIXPARAMS,\n CHANGE_SUGGESTION,\n};\n\nconst setInitialDefaultState = ({\n queryParams = {},\n matrixParams = {},\n itemSearchDocument = {},\n rowsPerPage = 10,\n page = 0,\n ...state\n} = {}) => ({\n ...state,\n queryParams: {\n content: 'metadata',\n interval: 'generic',\n ...queryParams,\n },\n matrixParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...matrixParams,\n },\n itemSearchDocument: {\n intervals: 'generic',\n filter: [],\n ...itemSearchDocument,\n },\n rowsPerPage,\n page,\n});\n\nconst searchReducer = (state, action) => {\n switch (action.type) {\n case ACTION_TYPE.CHANGE_ITEMSEARCHDOCUMENT: {\n return {\n ...state,\n itemSearchDocument: action.itemSearchDocument,\n };\n }\n case ACTION_TYPE.CHANGE_QUERYPARAMS: {\n return {\n ...state,\n queryParams: action.queryParams,\n };\n }\n case ACTION_TYPE.CHANGE_MATRIXPARAMS: {\n return {\n ...state,\n matrixParams: action.matrixParams,\n };\n }\n case ACTION_TYPE.CHANGE_PAGE: {\n return {\n ...state,\n page: action.page,\n matrixParams: {\n ...state.matrixParams,\n first: action.page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n return {\n ...state,\n rowsPerPage: action.rowsPerPage,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n number: action.rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SORT: {\n return {\n ...state,\n page: 0,\n searchText: action.value,\n sort: action.value,\n itemSearchDocument: {\n ...state.itemSearchDocument,\n sort: action.field\n ? [\n {\n field: action.field,\n order: action.order || 'descending',\n },\n ]\n : [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHTEXT: {\n return {\n ...state,\n page: 0,\n searchText: action.value,\n itemSearchDocument: action.value\n ? {\n ...state.itemSearchDocument,\n text: [{ value: `${action.value}` }],\n }\n : {\n ...state.itemSearchDocument,\n text: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFIELD: {\n return {\n ...state,\n page: 0,\n field: action.field,\n itemSearchDocument: action.field\n ? {\n ...state.itemSearchDocument,\n field: action.field,\n }\n : {\n ...state.itemSearchDocument,\n field: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFIELDFACET: {\n return {\n ...state,\n page: 0,\n field: action.field,\n facet: action.facet,\n itemSearchDocument: action.field\n ? {\n ...state.itemSearchDocument,\n field: action.field,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n field: [],\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFILTER: {\n return {\n ...state,\n page: 0,\n filter: action.filter,\n itemSearchDocument: action.filter\n ? {\n ...state.itemSearchDocument,\n filter: action.filter,\n }\n : {\n ...state.itemSearchDocument,\n filter: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFILTERFACET: {\n return {\n ...state,\n page: 0,\n filter: action.filter,\n itemSearchDocument: action.filter\n ? {\n ...state.itemSearchDocument,\n filter: action.filter,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n filter: [],\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_FACET: {\n return {\n ...state,\n page: 0,\n facet: action.facet,\n itemSearchDocument: action.facet\n ? {\n ...state.itemSearchDocument,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_PARENT_COLLECTION: {\n return {\n ...state,\n page: 0,\n parentCollection: action.value,\n itemSearchDocument: action.value\n ? {\n ...state.itemSearchDocument,\n operator: {\n field: [\n { name: '__parent_collection', value: [{ value: `${action.value}` }] },\n { name: '__collection', value: [{ value: `${action.value}` }] },\n ],\n operation: 'OR',\n },\n }\n : {\n ...state.itemSearchDocument,\n operator: undefined,\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SUGGESTION: {\n return {\n ...state,\n itemSearchDocument: {\n ...state.itemSearchDocument,\n suggestion: action.suggestion,\n },\n };\n }\n default: {\n return state;\n }\n }\n};\n\nexport default function useSearch(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n\n const onChangeRowsPerPage = ({ target: { value: newRows } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage: newRows,\n });\n\n const onChangePage = ({ page: newPage }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page: newPage,\n });\n\n const onChangeSort = (event, field, order) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field,\n order,\n });\n\n const setSearchText = React.useCallback(\n (value) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHTEXT,\n value,\n }),\n [],\n );\n\n const setItemSearchDocument = React.useCallback(\n (itemSearchDocument) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMSEARCHDOCUMENT,\n itemSearchDocument,\n }),\n [],\n );\n\n const setQueryParams = React.useCallback(\n (queryParams) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMQUERYPARAMS,\n queryParams,\n }),\n [],\n );\n\n const setMatrixParams = React.useCallback(\n (matrixParams) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMMATRIXPARAMS,\n matrixParams,\n }),\n [],\n );\n\n const setSearchField = React.useCallback(\n (field) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHFIELD,\n field,\n }),\n [],\n );\n\n const setSearchFieldFacet = React.useCallback((field) => {\n const facet = field.map(({ name }) => ({ field: name, count: true }));\n dispatch({ type: ACTION_TYPE.CHANGE_SEARCHFIELDFACET, field, facet });\n }, []);\n\n const setSearchFilter = React.useCallback(\n (filter) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHFILTER,\n filter,\n }),\n [],\n );\n\n const setSearchFilterFacet = React.useCallback(\n (filter) => {\n const fieldList = filter.reduce((a, { field = [] }) => a.concat(field), []);\n const facet = fieldList.map(({ name }) => ({\n name,\n field: name,\n count: true,\n exclude: [name],\n }));\n dispatch({ type: ACTION_TYPE.CHANGE_SEARCHFILTERFACET, filter, facet });\n },\n [dispatch],\n );\n\n const setFacet = React.useCallback(\n (facet) => {\n dispatch({ type: ACTION_TYPE.CHANGE_FACET, facet });\n },\n [dispatch],\n );\n\n const setParentCollection = React.useCallback(\n (value) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PARENT_COLLECTION,\n value,\n }),\n [],\n );\n\n const setSuggestion = React.useCallback((suggestion) => {\n dispatch({ type: ACTION_TYPE.CHANGE_SUGGESTION, suggestion });\n }, []);\n\n return {\n state,\n onChangeRowsPerPage,\n onChangePage,\n onChangeSort,\n setSearchText,\n setSearchField,\n setSearchFieldFacet,\n setSearchFilter,\n setSearchFilterFacet,\n setFacet,\n setItemSearchDocument,\n setQueryParams,\n setMatrixParams,\n setParentCollection,\n setSuggestion,\n };\n}\n","import React from 'react';\n\nexport default function useUpdateEffect(fn, inputs) {\n const hasMountedRef = React.useRef(false);\n React.useEffect(() => {\n if (hasMountedRef.current) {\n fn();\n } else {\n hasMountedRef.current = true;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, inputs);\n}\n","import React from 'react';\nimport { search as SearchApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\nimport useUpdateEffect from './useUpdateEffect';\n\nconst setInitialDefaultState = ({\n field = undefined,\n text = '',\n maximumSuggestions = 10,\n} = {}) => ({\n field,\n text,\n maximumSuggestions,\n});\n\nexport default function useAutocomplete(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [autocompleteDoc, setAutocompleteDoc] = React.useState(initialDefaultState);\n\n const setAutocompleteField = React.useCallback((field, text = '') => {\n setAutocompleteDoc((state) => ({ ...state, field, text }));\n }, []);\n\n const setAutocompleteText = React.useCallback((text) => {\n setAutocompleteDoc((state) => ({ ...state, text }));\n }, []);\n\n const setAutocompleteMaxSuggestions = React.useCallback((maximumSuggestions) => {\n setAutocompleteDoc((state) => ({ ...state, maximumSuggestions }));\n }, []);\n\n const { request: searchAutoComplete, data: { suggestion: suggestions = [] } = {} } = useApi(\n SearchApi.searchAutoComplete,\n );\n\n useUpdateEffect(() => {\n searchAutoComplete({ autocompleteRequestDocument: autocompleteDoc });\n }, [autocompleteDoc]);\n\n return {\n suggestions,\n setAutocompleteField,\n setAutocompleteText,\n setAutocompleteMaxSuggestions,\n };\n}\n","import React from 'react';\n\nexport default (propKey = 'id', initialState = []) => {\n const [selected, setSelected] = React.useState(initialState);\n const onSelect = (event, checked, props) => {\n const propValue = props[propKey];\n const currentIndex = selected.findIndex((thisSelected) => thisSelected[propKey] === propValue);\n if (currentIndex === -1 && checked === true) {\n if (checked === true) {\n setSelected([...selected, props]);\n }\n } else if (currentIndex > -1 && checked === false) {\n const newSelected = [...selected];\n newSelected.splice(currentIndex, 1);\n setSelected(newSelected);\n }\n };\n const isSelected = (props) => {\n const propValue = props[propKey];\n const currentIndex = selected.findIndex((thisSelected) => thisSelected[propKey] === propValue);\n return currentIndex > -1;\n };\n const onClear = () => setSelected([]);\n return {\n selected,\n onSelect,\n onClear,\n isSelected,\n };\n};\n","import React from 'react';\n\nexport default (initialTab) => {\n const [activeTab, setActiveTab] = React.useState(initialTab);\n const changeTab = (_, newValue) => setActiveTab(newValue);\n return { activeTab, changeTab };\n};\n","import React from 'react';\n\nexport default function useInterval(callback, delay) {\n const savedCallback = React.useRef();\n\n React.useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n React.useEffect(() => {\n const tick = () => savedCallback.current();\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }, [delay]);\n}\n","import React from 'react';\n\nexport default function useThumbnailScrub(srcList = []) {\n const savedInterval = React.useRef();\n const initialImgIdx = React.useMemo(() => Math.floor(srcList.length / 2), [srcList]);\n const [imgIdx, setImgIdx] = React.useState();\n const imgIdxRef = React.useRef(imgIdx);\n React.useEffect(() => () => savedInterval.current && clearInterval(savedInterval.current), []);\n if (srcList.length === 0) return { width: 0 };\n\n imgIdxRef.current = imgIdx;\n const onMouseEnter = () => {\n const delay = 500;\n const tick = () => {\n if (imgIdxRef.current === undefined) {\n setImgIdx(0);\n } else if (imgIdxRef.current === srcList.length - 1) {\n clearInterval(savedInterval.current);\n } else {\n setImgIdx(imgIdxRef.current + 1);\n }\n };\n savedInterval.current = setInterval(tick, delay);\n };\n const onMouseLeave = () => {\n setImgIdx();\n clearInterval(savedInterval.current);\n };\n const imageSrc = srcList[imgIdx === undefined ? initialImgIdx : imgIdx];\n const width = imgIdx === undefined ? 0 : `${Math.floor((imgIdx / (srcList.length - 1)) * 100)}%`;\n return {\n imageSrc,\n onMouseEnter,\n onMouseLeave,\n width,\n };\n}\n","import React from 'react';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_TYPE = 'CHANGE_TYPE';\nconst CHANGE_STATE = 'CHANGE_STATE';\nconst CHANGE_PRIORITY = 'CHANGE_PRIORITY';\nconst CHANGE_STARTTIME = 'CHANGE_STARTTIME';\nconst CHANGE_FINISHTIME = 'CHANGE_FINISHTIME';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_TYPE,\n CHANGE_STATE,\n CHANGE_PRIORITY,\n CHANGE_STARTTIME,\n CHANGE_FINISHTIME,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, matrixParams = {} } = {}) => ({\n queryParams,\n matrixParams: {\n first: 1,\n number: 10,\n ...matrixParams,\n },\n rowsPerPage: 10,\n page: 0,\n jobMetadata: [],\n});\n\nconst searchReducer = (state, action) => {\n const { type, ...rest } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page = 0 } = action;\n const { rowsPerPage = 10 } = state;\n return {\n ...state,\n page,\n matrixParams: {\n ...state.matrixParams,\n first: page * rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SORT: {\n const { field, order = 'desc' } = action;\n return {\n ...state,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n sort: `${field} ${order}`,\n },\n };\n }\n case ACTION_TYPE.CHANGE_TYPE:\n case ACTION_TYPE.CHANGE_STATE:\n case ACTION_TYPE.CHANGE_PRIORITY: {\n const { field, value = [] } = rest;\n let matrixParams;\n if (!value) {\n const { [field]: deleteField, ...newMatrixParams } = state.matrixParams;\n matrixParams = { ...newMatrixParams, first: 1 };\n } else {\n matrixParams = {\n ...state.matrixParams,\n first: 1,\n [field]: Array.isArray(value) ? value.join(',') : value,\n };\n }\n return {\n ...state,\n page: 0,\n matrixParams,\n };\n }\n case ACTION_TYPE.CHANGE_STARTTIME:\n case ACTION_TYPE.CHANGE_FINISHTIME: {\n const { field, value = [] } = rest;\n let queryParams;\n if (!value) {\n const { [field]: deleteField, ...newQueryParams } = state.queryParams;\n queryParams = { ...newQueryParams, first: 1 };\n } else {\n queryParams = {\n ...state.queryParams,\n first: 1,\n [field]: value,\n };\n }\n return {\n ...state,\n page: 0,\n queryParams,\n };\n }\n case ACTION_TYPE.CHANGE_JOBMETADATA: {\n const { field, value = [] } = rest;\n let queryParams;\n if (!value.length) {\n const { [field]: deleteField, ...newQueryParams } = state.queryParams;\n queryParams = { ...newQueryParams, first: 1 };\n } else {\n queryParams = {\n ...state.queryParams,\n first: 1,\n [field]: value,\n };\n }\n return {\n ...state,\n page: 0,\n queryParams,\n jobMetadata: value,\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useJobSearch(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeType = ({ field = [] }) => {\n const [{ name = 'type', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_TYPE,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeState = ({ field = [] }) => {\n const [{ name = 'state', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_STATE,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangePriority = ({ field = [] }) => {\n const [{ name = 'priority', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_PRIORITY,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeStarttime = ({ field = [] }) => {\n const [{ name = 'starttime-from', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_STARTTIME,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeFinishtime = ({ field = [] }) => {\n const [{ name = 'finishtime-from', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_FINISHTIME,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeJobmetadata = (value) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_JOBMETADATA,\n field: 'jobmetadata',\n value,\n });\n };\n return {\n state,\n onChangePage,\n onChangeSort,\n onChangeType,\n onChangeState,\n onChangePriority,\n onChangeStarttime,\n onChangeFinishtime,\n onChangeRowsPerPage,\n onChangeJobmetadata,\n };\n}\n","import React from 'react';\n\nconst useLocalStorage = (localStorageKey, defaultValue) => {\n const [value, setValue] = React.useState(\n JSON.parse(window.localStorage.getItem(localStorageKey) || JSON.stringify(defaultValue)),\n );\n\n React.useEffect(() => {\n window.localStorage.setItem(localStorageKey, JSON.stringify(value));\n }, [localStorageKey, value]);\n\n const getValue = () => JSON.parse(window.localStorage.getItem(localStorageKey));\n\n return [value, setValue, getValue];\n};\n\nexport default useLocalStorage;\n","import { compressToEncodedURIComponent, decompressFromEncodedURIComponent } from 'lz-string';\n\n// eslint-disable-next-line import/prefer-default-export\nexport function uuidv4() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n // eslint-disable-next-line\n (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16));\n}\n\nexport function b64EncodeUnicode(str) {\n return compressToEncodedURIComponent(str);\n}\n\nexport function b64DecodeUnicode(str) {\n // fallback for old base64 encoded links\n return str.slice(-1) === '='\n ? decodeURIComponent(\n atob(str)\n .split('')\n .map((c) => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`)\n .join(''),\n )\n : decompressFromEncodedURIComponent(str);\n}\n","import React from 'react';\nimport {\n vsimport as ImportApi,\n ChunkedUpload,\n collection as CollectionApi,\n} from '@vidispine/vdt-api';\nimport { createMetadataType } from '@vidispine/vdt-js';\nimport { uuidv4 } from '../utils';\n\nconst DEFAULT_AUDIO_SHAPETAGS = ['__mp3_160k'];\nconst DEFAULT_VIDEO_SHAPETAGS = ['__mp4'];\nconst DEFAULT_IMAGE_SHAPETAGS = ['__png'];\nconst AUDIO_MIMETYPE_PREFIX = 'audio';\nconst VIDEO_MIMETYPE_PREFIX = 'video';\nconst IMAGE_MIMETYPE_PREFIX = 'image';\nconst ADDITIONAL_VIDEO_MIMETYPES = ['application/mxf'];\nconst ADDITIONAL_IMAGE_MIMETYPES = [];\nconst ADDITIONAL_AUDIO_MIMETYPES = [];\n\nconst getDefaultShapeTags = (file) => {\n if (!file || !file.type) return [];\n const mimeType = file.type.toLowerCase();\n if (mimeType.startsWith(AUDIO_MIMETYPE_PREFIX) || ADDITIONAL_AUDIO_MIMETYPES.includes(mimeType))\n return DEFAULT_AUDIO_SHAPETAGS;\n if (mimeType.startsWith(VIDEO_MIMETYPE_PREFIX) || ADDITIONAL_VIDEO_MIMETYPES.includes(mimeType))\n return DEFAULT_VIDEO_SHAPETAGS;\n if (mimeType.startsWith(IMAGE_MIMETYPE_PREFIX) || ADDITIONAL_IMAGE_MIMETYPES.includes(mimeType))\n return DEFAULT_IMAGE_SHAPETAGS;\n return [];\n};\n\nconst chunkedUpload = (file, props = {}) =>\n new Promise((resolve, reject) => {\n const uploadInstance = new ChunkedUpload(file, {\n onFail: (error) => reject(error),\n onComplete: (resp) => resolve(resp),\n ...props,\n });\n uploadInstance.upload();\n });\n\nconst onUploadFile = ({\n file,\n collectionId,\n onProgress,\n metadata: propsMetadata = {},\n placeholderParams = {},\n importParams = {},\n chunkedUploadProps = {},\n generateTransferId = uuidv4,\n getShapeTags = getDefaultShapeTags,\n}) =>\n new Promise((resolve, reject) => {\n try {\n let itemId;\n onProgress({});\n const shapeTags = getShapeTags(file);\n const filename = file.name;\n const mimeType = file.type;\n const [mediaType] = mimeType.split('/');\n const metadata = {\n originalFilename: filename,\n mimeType,\n mediaType,\n ...propsMetadata,\n };\n const metadataDocument = createMetadataType(metadata);\n ImportApi.createImportPlaceholder({\n metadataDocument,\n queryParams: {\n container: 1,\n ...placeholderParams,\n },\n })\n .then(({ data: itemDocument }) => {\n itemId = itemDocument.id;\n if (!collectionId) return Promise.resolve();\n const collectionIds = Array.isArray(collectionId) ? collectionId : [collectionId];\n return Promise.all(\n collectionIds.map((id) =>\n CollectionApi.addCollectionEntity({\n collectionId: id,\n entityId: itemId,\n }),\n ),\n );\n })\n .then(() => {\n const transferId = generateTransferId();\n const queryParams = {\n filename,\n transferId,\n tag: shapeTags,\n ...importParams,\n };\n return chunkedUpload(file, {\n api: {\n method: ImportApi.createImportComponentRaw,\n props: {\n itemId,\n component: 'container',\n queryParams,\n },\n },\n onProgress,\n ...chunkedUploadProps,\n });\n })\n .then((response) => {\n resolve({ ...response, itemId, collectionId });\n })\n .catch((error) => reject(error));\n } catch (err) {\n /* eslint-disable-next-line no-console */\n console.error(err);\n reject(err);\n }\n });\n\nfunction useUploadFiles({\n onUploadFile: handleUploadFile = onUploadFile,\n initialMetadata = {},\n ...props\n}) {\n const [files, setFiles] = React.useState([]);\n React.useEffect(\n () => () => {\n // Make sure to revoke the data uris to avoid memory leaks\n files.forEach((file) => URL.revokeObjectURL(file.preview));\n },\n [files],\n );\n const onAddFiles = React.useCallback(\n (newFiles = []) => {\n const newFilesObj = newFiles.map((file) => ({\n file,\n metadata: { title: file.name, ...initialMetadata },\n }));\n setFiles((currentFiles) => newFilesObj.concat(currentFiles));\n },\n [initialMetadata],\n );\n const onChangeFile = React.useCallback(\n (idx, changeFile = {}) => {\n setFiles((currentFilesList) => {\n const currentFile = currentFilesList[idx];\n const { metadata: newMetadata, progress: newProgress } = changeFile;\n const { metadata: currentMetadata = {}, progress: currentProgress = {} } = currentFile;\n const newFilesList = [...currentFilesList];\n const newFile = { ...currentFile };\n if (newMetadata) newFile.metadata = { ...currentMetadata, ...newMetadata };\n if (newProgress) newFile.progress = { ...currentProgress, ...newProgress };\n newFilesList[idx] = newFile;\n return newFilesList;\n });\n },\n [setFiles],\n );\n const onChangeProgress = React.useCallback(\n (idx) => (newProgress = {}) => {\n onChangeFile(idx, { progress: newProgress });\n },\n [onChangeFile],\n );\n const onChangeMetadata = React.useCallback(\n (idx) => (newMetadata = {}) => {\n onChangeFile(idx, { metadata: newMetadata });\n },\n [onChangeFile],\n );\n const onUpload = React.useCallback(\n (uploadProps) =>\n files.reduce(\n (previousPromise, thisFile, idx) =>\n previousPromise.then((res) => {\n if (thisFile.progress) {\n return previousPromise;\n }\n return handleUploadFile({\n file: thisFile.file,\n onProgress: onChangeProgress(idx),\n metadata: thisFile.metadata,\n ...uploadProps,\n ...props,\n }).then((currentResult) => [...res, currentResult]);\n }),\n Promise.resolve([]),\n ),\n [files, handleUploadFile, onChangeProgress, props],\n );\n\n const onRemoveFile = React.useCallback(\n (idx) => () => {\n setFiles([...files].filter((_, i) => i !== idx));\n },\n [setFiles, files],\n );\n\n const onRemoveFiles = React.useCallback(\n (idxs) => () => {\n setFiles([...files].filter((_, i) => !idxs.includes(i)));\n },\n [setFiles, files],\n );\n\n return {\n onAddFiles,\n onChangeFile,\n onChangeMetadata,\n onUpload,\n onRemoveFile,\n onRemoveFiles,\n files,\n setFiles,\n };\n}\n\nexport default useUploadFiles;\n","import React from 'react';\nimport { b64DecodeUnicode } from '../utils';\n\nexport default function useQueryInitialState({\n history,\n queryName = 'q',\n defaultState = undefined,\n}) {\n const defaultStateRef = React.useRef(defaultState);\n const queryState = React.useMemo(() => {\n const searchParams = new URLSearchParams(history.location.search);\n const encodedQuery = searchParams.get(queryName);\n if (!encodedQuery) {\n return defaultStateRef.current;\n }\n try {\n const decodedQuery = b64DecodeUnicode(encodedQuery);\n return JSON.parse(decodedQuery);\n } catch (error) {\n // TODO: Show error snackbar: \"Could not parse search query\"\n // eslint-disable-next-line no-console\n console.error(error);\n history.replace({ pathName: history.location.pathName, search: '' });\n }\n return undefined;\n }, [defaultStateRef, history, queryName]);\n\n return { queryInitialState: queryState };\n}\n","import React from 'react';\nimport { b64EncodeUnicode } from '../utils';\nimport useUpdateEffect from './useUpdateEffect';\n\nexport default function useUpdateQueryState({ history, state, queryName = 'q' }) {\n const onSearchStateChange = React.useCallback(() => {\n const encodedQuery = b64EncodeUnicode(JSON.stringify(state));\n history.replace({\n pathName: history.location.pathName,\n search: `?${queryName}=${encodedQuery}`,\n });\n }, [history, queryName, state]);\n\n // Don't need to set query on mount\n useUpdateEffect(() => {\n onSearchStateChange(state);\n }, [onSearchStateChange, state]);\n}\n","import { useCallback } from 'react';\nimport { access as AccessApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst useEntityAccess = ({ entityId, entityType }) => {\n const { request: listEntityAccess, data: accessControlList = {}, isLoading } = useApi(\n AccessApi.listEntityAccess,\n );\n const onList = useCallback(\n (props = {}) =>\n listEntityAccess({\n entityId,\n entityType,\n ...props,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [entityId, entityType],\n );\n const onRemove = useCallback(\n ({ accessId, ...props }) =>\n AccessApi.removeEntityAccess({\n accessId,\n entityId,\n entityType,\n ...props,\n }),\n [entityId, entityType],\n );\n const onAdd = useCallback(\n ({ accessControlDocument, ...props }) =>\n AccessApi.createEntityAccess({\n entityType,\n entityId,\n accessControlDocument,\n ...props,\n }),\n [entityId, entityType],\n );\n return {\n accessControlList,\n isLoading,\n onList,\n onRemove,\n onAdd,\n };\n};\n\nexport default useEntityAccess;\n","import React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { metadatafield as MetadataFieldApi, fieldgroup as FieldGroupApi } from '@vidispine/vdt-api';\n\nconst getValueFromData = ({ data = [] } = {}, key) => {\n if (!key) return undefined;\n const { value } = data.find((d) => d.key === key) || {};\n return value;\n};\n\nconst defaultGetDataAttributes = (fieldOrGroup, keys) => {\n return Object.assign(\n {},\n ...keys.map((key) => {\n return {\n [key]: getValueFromData(fieldOrGroup, key),\n };\n }),\n );\n};\n\nconst getOptions = ({ values: { field } = {} } = {}) => {\n return field ? field.map((f) => ({ value: f.value, label: f.key || f.value })) : undefined;\n};\n\nconst convertValuesXmlToJson = (xmlString) => {\n const doc = new DOMParser().parseFromString(xmlString, 'application/xml');\n const fields = doc.getElementsByTagName('field');\n if (!fields.length) {\n return undefined;\n }\n const json = { field: [] };\n for (let i = 0; i < fields.length; i += 1) {\n const [keyNode, valueNode] = fields[i].childNodes;\n json.field.push({\n [keyNode.nodeName]: keyNode.firstChild.nodeValue,\n [valueNode.nodeName]: valueNode.firstChild.nodeValue,\n });\n }\n return json;\n};\n\nconst useAddMetadataFieldAttributes = ({\n fields,\n groups,\n getDataAttributes = defaultGetDataAttributes,\n fieldDataToInclude = 'label,displayType,required',\n groupDataToInclude = 'label,order',\n fieldQueryParams = {},\n groupQueryParams = {},\n}) => {\n const [isLoading, setIsLoading] = React.useState(false);\n const [fieldsWithAttributes, setFieldsWithAttributes] = React.useState(fields);\n const [groupsWithAttributes, setGroupsWithAttributes] = React.useState(groups);\n\n useDeepCompareEffect(() => {\n const addFieldAttributes = (fieldsArray = [], fieldsAttributes = {}) =>\n fieldsArray.map(({ name, ...overrides }) => {\n const fieldAttributes = fieldsAttributes[name] || {};\n const { label, ...dataAttributes } = getDataAttributes(\n fieldAttributes,\n fieldDataToInclude.split(','),\n );\n return {\n name,\n label: label || name,\n type: fieldAttributes.type,\n constraint: fieldAttributes.constraint,\n options: getOptions(fieldAttributes),\n ...dataAttributes,\n ...overrides,\n };\n });\n\n const addGroupAttributes = (groupsArray = [], groupsAttributes = {}, fieldsAttributes = {}) =>\n groupsArray.map(({ name, field, group, ...overrides }) => {\n const groupAttributes = groupsAttributes[name] || {};\n const childFields = field || (groupAttributes && groupAttributes.field);\n const childGroups = group || (groupAttributes && groupAttributes.group);\n const { label, ...dataAttributes } = getDataAttributes(\n groupAttributes,\n groupDataToInclude.split(','),\n );\n return {\n name,\n label: label || name,\n order: getValueFromData(groupAttributes, 'order'),\n fields: addFieldAttributes(childFields, fieldsAttributes),\n groups: addGroupAttributes(childGroups, groupsAttributes, fieldsAttributes),\n ...dataAttributes,\n ...overrides,\n };\n });\n let didCancel = false;\n async function fetchAttributesAsync() {\n setIsLoading(true);\n const fieldsAttributes = {};\n const groupsAttributes = {};\n let fieldPromises = [];\n if (fields) {\n const queryParams = { ...fieldQueryParams, data: fieldDataToInclude };\n fieldPromises = fields.map(async ({ name: fieldName }) => {\n try {\n const { data } = await MetadataFieldApi.getMetadataField({\n fieldName,\n queryParams,\n });\n fieldsAttributes[fieldName] = data;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not retrieve attributes for ${fieldName}`);\n }\n });\n }\n let groupPromises = [];\n if (groups) {\n const groupsToFetch = [...groups];\n const queryParams = { ...groupQueryParams, data: groupDataToInclude };\n groupPromises = groupsToFetch.map(async ({ name: groupName }) => {\n try {\n const { data } = await FieldGroupApi.getFieldGroup({\n groupName,\n queryParams,\n });\n const { field = [], group = [] } = data;\n field.forEach((f) => {\n const dataValues = f.data && f.data.find((e) => e.key === '__values');\n if (dataValues) {\n const jsonValues = convertValuesXmlToJson(dataValues.value);\n fieldsAttributes[f.name] = { ...f, values: jsonValues };\n }\n });\n group.forEach((g) => {\n groupsToFetch.push(g);\n });\n groupsAttributes[groupName] = data;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not retrieve attributes for ${groupName}`);\n }\n });\n }\n await Promise.all([...fieldPromises, ...groupPromises]);\n if (!didCancel) {\n if (Object.values(fieldsAttributes).some((v) => v)) {\n setFieldsWithAttributes(() => addFieldAttributes(fields, fieldsAttributes));\n }\n if (Object.values(groupsAttributes).some((v) => v)) {\n setGroupsWithAttributes(() => {\n const newGroupsWithAttributes = addGroupAttributes(\n groups,\n groupsAttributes,\n fieldsAttributes,\n );\n newGroupsWithAttributes.forEach((group) => {\n const { order } = group;\n if (order) {\n group.fields.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name));\n }\n });\n return newGroupsWithAttributes;\n });\n }\n setIsLoading(false);\n }\n }\n fetchAttributesAsync();\n return () => {\n didCancel = true;\n };\n }, [fields, groups, fieldDataToInclude, groupDataToInclude, fieldQueryParams, groupQueryParams]);\n\n return { fieldsWithAttributes, groupsWithAttributes, isLoading };\n};\n\nexport default useAddMetadataFieldAttributes;\n","import React from 'react';\nimport {\n library as LibraryApi,\n item as ItemApi,\n collection as CollectionApi,\n} from '@vidispine/vdt-api';\nimport { createMetadataType } from '@vidispine/vdt-js';\nimport useSearch from './useSearch';\n\n// Has to be set so that the library isn't auto-deleted\nconst UPDATE_FREQUENCY = 1000;\n\n// Prevents access controls set on the library (i.e. saved search) from cascading down to items\nconst UPDATE_MODE = 'TRANSIENT';\n\nfunction saveSearch({ metadata, markerField, markerValue, itemSearchDocument }) {\n return ItemApi.searchItem({\n queryParams: {\n result: 'library',\n updateMode: UPDATE_MODE,\n updateFrequency: UPDATE_FREQUENCY,\n },\n itemSearchDocument,\n }).then(({ data: { library } }) =>\n CollectionApi.createCollection({\n collectionDocument: {\n metadata: markerField\n ? createMetadataType({\n [markerField]: markerValue || library,\n ...metadata,\n })\n : metadata,\n content: [\n {\n id: library,\n type: 'library',\n },\n ],\n },\n }),\n );\n}\n\nconst getLibraryFromCollection = ({ collectionId }) =>\n new Promise((resolve, reject) =>\n CollectionApi.getCollection({ collectionId, queryParams: { children: 'library' } }).then(\n ({ data: collectionType }) => {\n const { content = [] } = collectionType;\n const [libraryType] = content;\n if (!libraryType) reject(new Error('No Libraries'));\n resolve(libraryType);\n },\n ),\n );\n\nconst deleteSearch = ({ collectionId }) =>\n getLibraryFromCollection({ collectionId }).then(({ id: libraryId }) =>\n Promise.all([\n LibraryApi.removeLibrary({ libraryId }),\n CollectionApi.removeCollection({ collectionId }),\n ]),\n );\n\nfunction getLibrarySettings({ libraryId }) {\n return new Promise((resolve) =>\n LibraryApi.getLibrarySettings({ libraryId }).then(({ data: { query } }) => {\n resolve(query);\n }),\n );\n}\n\nconst getSavedSearchSettings = ({ collectionId }) =>\n new Promise((resolve) =>\n getLibraryFromCollection({ collectionId })\n .then(({ id: libraryId }) => getLibrarySettings({ libraryId }))\n .then(resolve),\n );\n\nexport default function useSavedSearch({\n markerField,\n markerValue,\n initialSearchState,\n onSaveSearch = saveSearch,\n onDeleteSearch = deleteSearch,\n onUpdateSearchMetadata = CollectionApi.updateCollectionMetadata,\n onGetSavedSearchSettings = getSavedSearchSettings,\n}) {\n const saveSearchWithMarker = React.useCallback(\n ({ metadata, itemSearchDocument }) =>\n onSaveSearch({\n metadata,\n markerField,\n markerValue,\n itemSearchDocument,\n }),\n [markerField, markerValue, onSaveSearch],\n );\n\n const mergeMarkerField = (itemSearchDocument = {}) => ({\n ...itemSearchDocument,\n operator: {\n field: [\n {\n name: markerField,\n value: [{ value: markerValue || '*' }],\n },\n ],\n operator: itemSearchDocument.operator ? [itemSearchDocument.operator] : [],\n operation: 'AND',\n },\n });\n\n const searchProps = useSearch({\n ...initialSearchState,\n itemSearchDocument: mergeMarkerField(),\n });\n\n const { setItemSearchDocument, ...props } = searchProps;\n\n return {\n onSaveSearch: saveSearchWithMarker,\n onDeleteSearch,\n onUpdateSearchMetadata,\n onGetSavedSearchSettings,\n searchProps: {\n setItemSearchDocument: (itemSearchDocument) =>\n setItemSearchDocument(mergeMarkerField(itemSearchDocument)),\n ...props,\n },\n };\n}\n","import { item as ItemApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useSearchItem({ itemSearchDocument, queryParams, matrixParams }) {\n const { request, data: itemListType = {}, isLoading, isError } = useApi(ItemApi.searchItem);\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n return {\n itemListType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import React from 'react';\n\nexport const useMouseDownPosition = () => {\n const [position, setPosition] = React.useState({ x: 0, y: 0 });\n\n React.useEffect(() => {\n const setFromEvent = (e) => setPosition({ x: e.clientX, y: e.clientY });\n window.addEventListener('mousedown', setFromEvent);\n\n return () => {\n window.removeEventListener('mousedown', setFromEvent);\n };\n }, []);\n\n return position;\n};\n\nexport default useMouseDownPosition;\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetCollection({\n collectionId,\n queryParams = {},\n refreshOnMount = true,\n}) {\n const { request, data: collectionType = {}, isLoading, isError } = useApi(\n CollectionApi.getCollection,\n );\n const onRefresh = () => request({ collectionId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [collectionId, queryParams]);\n return {\n collectionType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetCollection({\n collectionId,\n queryParams = {},\n refreshOnMount = true,\n}) {\n const { request, data: itemListType = {} } = useApi(CollectionApi.getCollectionItem);\n const onRefresh = () => request({ collectionId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [collectionId, queryParams]);\n return {\n itemListType,\n onRefresh,\n };\n}\n","import React from 'react';\nimport {\n item as ItemApi,\n collection as CollectionApi,\n library as LibraryApi,\n} from '@vidispine/vdt-api';\n\nimport useApi from './useApi';\n\nconst useGetEntity = ({ entityId, entityType }) => {\n let dataType;\n let entityApi;\n let entityTypeId;\n switch (entityType) {\n case 'collection':\n dataType = 'collectionType';\n entityTypeId = 'collectionId';\n entityApi = CollectionApi.getCollection;\n break;\n case 'library':\n dataType = 'libraryType';\n entityTypeId = 'libraryId';\n entityApi = LibraryApi.getLibrary;\n break;\n case 'item':\n dataType = 'itemType';\n entityTypeId = 'itemId';\n entityApi = ItemApi.getItem;\n break;\n default:\n throw new Error(`unknown entityType}`);\n }\n const { request, data, ...apiProps } = useApi(entityApi);\n const onGetEntity = React.useCallback(\n (props) => request({ [entityTypeId]: entityId, ...props }),\n [entityId, entityTypeId, request],\n );\n return {\n [dataType]: data,\n [entityTypeId]: entityId,\n onGetEntity,\n ...apiProps,\n };\n};\n\nexport default useGetEntity;\n","import React from 'react';\nimport { user as UserApi, group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nexport default function useUser(initialState) {\n const { data: userType, request } = useApi(UserApi.getUser, { data: initialState });\n const { userName } = userType || {};\n const getUser = React.useCallback(() => request({ userName }), [request, userName]);\n React.useEffect(() => {\n if (userName) getUser();\n }, [getUser, userName]);\n\n const updateUser = React.useCallback(\n ({ userDocument }) =>\n UserApi.updateUser({\n userName,\n userDocument,\n }).then(() => request({ userName: userDocument.userName })),\n [request, userName],\n );\n\n const updateUserGroups = React.useCallback(\n ({ groups = [] }) =>\n UserApi.updateUserGroup({\n userName,\n groupListDocument: {\n group: groups.map((g) => ({ groupName: g })),\n },\n }).then(getUser),\n [getUser, userName],\n );\n\n const removeUserFromGroup = React.useCallback(\n (groupName) =>\n GroupApi.removeGroupUser({\n groupName,\n userName,\n }).then(getUser),\n [getUser, userName],\n );\n\n const changePassword = React.useCallback(\n (password) =>\n UserApi.updateUser({\n userName,\n userDocument: {\n password,\n },\n queryParams: {\n passwordType: 'raw',\n },\n }),\n [userName],\n );\n const deleteUser = ({ queryParams = {} } = {}) =>\n UserApi.disableUser({ userName, queryParams: { hard: true, ...queryParams } });\n const disableUser = (args) => UserApi.disableUser({ userName, ...args }).then(getUser);\n const enableUser = (args) => UserApi.enableUser({ userName, ...args }).then(getUser);\n\n return {\n userType,\n getUser,\n updateUser,\n updateUserGroups,\n removeUserFromGroup,\n disableUser,\n enableUser,\n deleteUser,\n changePassword,\n };\n}\n","import React from 'react';\nimport { user as UserApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_QUERY = 'CHANGE_QUERY';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_QUERY,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, rowsPerPage = 10, page = 0 } = {}) => ({\n queryParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...queryParams,\n },\n rowsPerPage,\n page,\n userSearchDocument: {\n sort: [\n {\n field: 'username',\n order: 'ascending',\n },\n ],\n },\n});\n\nconst searchReducer = (state, action) => {\n const { type } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page } = action;\n\n return {\n ...state,\n page,\n queryParams: {\n ...state.queryParams,\n first: page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n\n case ACTION_TYPE.CHANGE_QUERY: {\n return {\n ...state,\n page: 0,\n userSearchDocument: {\n ...state.userSearchDocument,\n field: [\n {\n name: action.field || 'username',\n value: action.query || '',\n },\n ],\n },\n queryParams: {\n ...state.queryParams,\n first: 1,\n },\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useSearchUser(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const { data: userListDocument, request: searchUser, hasLoaded, isError } = useApi(\n UserApi.searchUser,\n );\n\n const onSearchUser = () =>\n searchUser({\n userSearchDocument: state.userSearchDocument,\n queryParams: state.queryParams,\n });\n\n React.useEffect(() => {\n onSearchUser();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.queryParams, state.userSearchDocument]);\n\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeQuery = (field, query) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_QUERY,\n field,\n query,\n });\n };\n return {\n ...state,\n hasLoaded,\n isError,\n userListDocument,\n onSearchUser,\n onChangePage,\n onChangeSort,\n onChangeRowsPerPage,\n onChangeQuery,\n };\n}\n","import { group as GroupApi } from '@vidispine/vdt-api';\nimport React from 'react';\nimport useApi from './useApi';\n\nconst useListGroup = (args) => {\n const { request, data: groupListType = {}, isLoading } = useApi(GroupApi.listGroup);\n const onRefresh = () => request(args);\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [args]);\n return {\n onRefresh,\n groupListType,\n isLoading,\n };\n};\n\nexport default useListGroup;\n","import { user as UserApi } from '@vidispine/vdt-api';\nimport React from 'react';\nimport useApi from './useApi';\n\nconst useListUser = (args) => {\n const { request, data: userListType = {}, isLoading } = useApi(UserApi.listUser);\n const onRefresh = () => request(args);\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [args]);\n return {\n onRefresh,\n userListType,\n isLoading,\n };\n};\n\nexport default useListUser;\n","import React from 'react';\nimport { group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_QUERY = 'CHANGE_QUERY';\nconst HIDE_ROLES = 'HIDE_ROLES';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_QUERY,\n HIDE_ROLES,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, rowsPerPage = 10, page = 0 } = {}) => ({\n queryParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...queryParams,\n },\n rowsPerPage,\n page,\n groupSearchDocument: {},\n});\n\nconst searchReducer = (state, action) => {\n const { type } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page } = action;\n\n return {\n ...state,\n page,\n queryParams: {\n ...state.queryParams,\n first: page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.HIDE_ROLES: {\n const { hideRoles } = action;\n const role = hideRoles === true ? false : undefined;\n return {\n ...state,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n role,\n },\n };\n }\n\n case ACTION_TYPE.CHANGE_QUERY: {\n return {\n ...state,\n page: 0,\n groupSearchDocument: {\n ...state.groupSearchDocument,\n field: [\n {\n name: action.field || 'groupname',\n value: action.query || '',\n },\n ],\n },\n queryParams: {\n ...state.queryParams,\n first: 1,\n },\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useSearchGroup(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const { data: groupListDocument, request: searchGroup, hasLoaded, isError } = useApi(\n GroupApi.searchGroup,\n );\n\n const onSearchGroup = () =>\n searchGroup({\n groupSearchDocument: state.groupSearchDocument,\n queryParams: state.queryParams,\n });\n\n React.useEffect(() => {\n onSearchGroup();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.queryParams, state.groupSearchDocument]);\n\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onHideRoles = ({ hideRoles }) =>\n dispatch({\n type: ACTION_TYPE.HIDE_ROLES,\n hideRoles,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeQuery = (field, query) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_QUERY,\n field,\n query,\n });\n };\n return {\n ...state,\n hasLoaded,\n isError,\n groupListDocument,\n onSearchGroup,\n onChangePage,\n onChangeSort,\n onChangeRowsPerPage,\n onChangeQuery,\n onHideRoles,\n };\n}\n","import React from 'react';\nimport { group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nexport default function useGroup(initialState) {\n const { data: groupType, request } = useApi(GroupApi.getGroup, { data: initialState });\n const { groupName } = groupType || {};\n\n const getGroup = React.useCallback(() => request({ groupName }), [request, groupName]);\n\n React.useEffect(() => {\n if (groupName) getGroup();\n }, [getGroup, groupName]);\n\n const updateGroup = React.useCallback(\n ({ groupDocument }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addChildGroups = React.useCallback(\n ({ groups }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n childGroupList: {\n group: groups.map((g) => ({ groupName: g })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addParentGroups = React.useCallback(\n ({ groups }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n parentGroupList: {\n group: groups.map((g) => ({ groupName: g })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addUsersToGroup = React.useCallback(\n ({ users }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n userList: {\n user: users.map((u) => ({ userName: u })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeUserFromGroup = React.useCallback(\n (userName) =>\n GroupApi.removeGroupUser({\n groupName,\n userName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeChildGroup = React.useCallback(\n (childGroupName) =>\n GroupApi.removeGroupChildren({\n groupName,\n childGroupName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeFromParentGroup = React.useCallback(\n (parentGroupName) =>\n GroupApi.removeGroupChildren({\n groupName: parentGroupName,\n childGroupName: groupName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeGroup = React.useCallback(() => GroupApi.removeGroup({ groupName }), [groupName]);\n\n return {\n groupType,\n getGroup,\n updateGroup,\n removeGroup,\n addChildGroups,\n addParentGroups,\n addUsersToGroup,\n removeUserFromGroup,\n removeChildGroup,\n removeFromParentGroup,\n };\n}\n","import { item as ItemApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetItem({ itemId, queryParams = {}, refreshOnMount = true }) {\n const { request, data: itemType = {}, isLoading, isError } = useApi(ItemApi.getItem);\n const onRefresh = () => request({ itemId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [itemId, queryParams]);\n return {\n itemType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import React from 'react';\nimport { collection as CollectionApi } from '@vidispine/vdt-api';\n\nconst useCollectionAutoPlay = ({ collectionId, defaultEnabled = true }) => {\n const [nextPlaying, setNextPlaying] = React.useState();\n const [isAutoPlayEnabled, setIsAutoPlayEnabled] = React.useState(defaultEnabled);\n const toggleAutoPlay = (newValue) =>\n setIsAutoPlayEnabled((prevValue) => (newValue !== undefined ? newValue : !prevValue));\n const allItemsRef = React.useRef();\n const orderItemsRef = React.useRef();\n const hitsRef = React.useRef();\n const onNext = React.useCallback(\n ({ itemId }) => {\n if (isAutoPlayEnabled === false) return;\n const searchDocument = {\n field: [\n {\n name: 'mediaType',\n value: [{ value: 'video' }, { value: 'audio' }],\n },\n ],\n };\n const searchForNext = ({ first, number } = {}) => {\n const { current: allItems } = allItemsRef;\n const { current: orderItems } = orderItemsRef;\n if (!Array.isArray(allItems)) {\n Promise.all([\n CollectionApi.getCollection({\n collectionId,\n queryParams: { children: 'item' },\n }),\n CollectionApi.searchCollectionItem({\n collectionId,\n searchDocument,\n queryParams: { first, number },\n }),\n ]).then(([{ data: collectionType }, { data: itemListType }]) => {\n const { hits, item: itemList = [] } = itemListType;\n allItemsRef.current = itemList.map(({ id }) => id);\n hitsRef.current = hits;\n const { content: contentList } = collectionType;\n orderItemsRef.current = contentList;\n searchForNext({ first: 1, number: 100 });\n });\n return;\n }\n const { current: hits } = hitsRef;\n const currentItemIdx = orderItems.findIndex(({ id: thisId }) => thisId === itemId);\n if (currentItemIdx + 1 === orderItems.length) {\n // last item in the list\n setNextPlaying();\n return;\n }\n if (currentItemIdx === -1 && hits > allItems.length) {\n // request more items to find the currentItem\n CollectionApi.searchCollectionItem({\n collectionId,\n searchDocument,\n queryParams: { first: first + number, number },\n }).then(({ data: itemListType }) => {\n const { item: itemList = [] } = itemListType;\n allItemsRef.current.push(...itemList.map(({ id }) => id));\n searchForNext({ first: first + number, number });\n });\n return;\n }\n const remainingItems = orderItems.slice(currentItemIdx + 1);\n const nextItem = remainingItems.find(({ id: thisId }) => allItems.includes(thisId));\n setNextPlaying(nextItem);\n };\n searchForNext();\n },\n [collectionId, isAutoPlayEnabled],\n );\n return {\n isAutoPlayEnabled,\n toggleAutoPlay,\n setNextPlaying,\n nextPlaying,\n onNext,\n };\n};\n\nexport default useCollectionAutoPlay;\n","import React, { useCallback } from 'react';\n\nexport default function useHoverScrub(srcList = [], customOffset = 0) {\n const [scrubPosition, setScrubPosition] = React.useState(0);\n const [thumbnailIndex, setThumbnailIndex] = React.useState(0);\n const [showScrub, setShowScrub] = React.useState(false);\n\n const getInnerLeft = useCallback(\n (e) => {\n const left = e.clientX - e.currentTarget.offsetLeft - customOffset;\n if (left < 0) {\n return 0;\n }\n if (left > e.currentTarget.offsetWidth) {\n return e.currentTarget.offsetWidth;\n }\n return left;\n },\n [customOffset],\n );\n\n const onMouseMove = (e) => {\n if (srcList.length > 1) {\n const innerLeft = getInnerLeft(e);\n setScrubPosition(innerLeft - 1);\n setThumbnailIndex(Math.floor((innerLeft / e.currentTarget.offsetWidth) * srcList.length));\n }\n };\n\n const handleShowScrub = (value) => () => {\n if (srcList.length > 1) {\n setShowScrub(value);\n }\n };\n\n return {\n thumbnailIndex,\n showScrub,\n scrubPosition,\n handleShowScrub,\n onMouseMove,\n };\n}\n","import React from 'react';\nimport { item as ItemApi } from '@vidispine/vdt-api';\nimport debounce from 'lodash.debounce';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport useApi from './useApi';\n\nexport default function useItemSearchAutocomplete(\n itemSearchDoc,\n queryParams,\n debounceTime,\n suggestionSettings = { maximumSuggestions: 10, accuracy: 1 },\n triggerLength = 1,\n) {\n const [textValue, setTextValue] = React.useState('');\n const handleAutocompleteChange = React.useRef(debounce(setTextValue, debounceTime)).current;\n\n const { data: { autocomplete = [] } = {}, request } = useApi(ItemApi.searchItem);\n const { suggestion = [] } = autocomplete[0] || {};\n\n useDeepCompareEffect(() => {\n if (itemSearchDoc && textValue && textValue.length >= triggerLength) {\n request({\n body: {\n ...itemSearchDoc,\n suggestion: suggestionSettings,\n autocomplete: [\n {\n text: textValue,\n },\n ],\n text: [{ value: textValue }],\n },\n queryParams: { count: false, number: 0, ...queryParams },\n });\n }\n }, [request, textValue, queryParams, triggerLength]);\n\n return {\n suggestion,\n handleAutocompleteChange,\n };\n}\n","import React from 'react';\nimport { parseMetadataType } from '@vidispine/vdt-js';\n\nexport default function MetadataType({\n itemType,\n collectionType,\n joinValue = ',',\n flat = true,\n children,\n ...props\n}) {\n const entityType = itemType || collectionType || {};\n const { metadata: metadataType } = entityType;\n const metadata = React.useMemo(() => parseMetadataType(metadataType, { joinValue, flat }), [\n flat,\n joinValue,\n metadataType,\n ]);\n const cloneProps = {\n ...props,\n ...metadata,\n itemType,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { collection as CollectionApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function SearchCollection({\n itemSearchDocument,\n queryParams,\n matrixParams,\n responseRef,\n initialState,\n children,\n}) {\n const { request, data: collectionListType = {}, isLoading, isError } = useApi(\n CollectionApi.searchCollection,\n initialState,\n responseRef,\n );\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n collectionListType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useSearchItem from '../hooks/useSearchItem';\n\nexport default function SearchItem({ itemSearchDocument, queryParams, matrixParams, children }) {\n const { itemListType, onRefresh, isLoading, isError } = useSearchItem({\n itemSearchDocument,\n queryParams,\n matrixParams,\n });\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n itemListType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { search as SearchApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function SearchItemCollection({\n itemSearchDocument,\n queryParams,\n matrixParams,\n children,\n}) {\n const { request, data: searchResultType = {}, isLoading, isError } = useApi(\n SearchApi.searchItemCollection,\n );\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n searchResultType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useGetItem from '../hooks/useGetItem';\n\nexport default function GetItem({ itemId, queryParams, refreshOnMount, children }) {\n const { itemType, onRefresh, isLoading, isError } = useGetItem({\n itemId,\n queryParams,\n refreshOnMount,\n });\n const cloneProps = {\n itemId,\n queryParams,\n itemType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useGetCollection from '../hooks/useGetCollection';\n\nexport default function GetCollectionContent({\n collectionId,\n queryParams,\n refreshOnMount,\n children,\n}) {\n const { collectionType, onRefresh, isLoading, isError } = useGetCollection({\n collectionId,\n queryParams,\n refreshOnMount,\n });\n const cloneProps = {\n collectionId,\n queryParams,\n collectionType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { job as JobApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function GetJobs({ matrixParams, queryParams, children }) {\n const { request, data: jobs = {}, isLoading, isError } = useApi(JobApi.listJob);\n const onRefresh = () => request({ matrixParams, queryParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [matrixParams, queryParams]);\n const cloneProps = {\n matrixParams,\n queryParams,\n onRefresh,\n isLoading,\n isError,\n jobs,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { access as AccessApi } from '@vidispine/vdt-api';\nimport useApi from '../hooks/useApi';\n\nexport default function ListEntityAccess({ entityId, entityType, queryParams, children }) {\n const { request, data: accessControlList = {}, isLoading } = useApi(AccessApi.listEntityAccess);\n const onRefresh = () => request({ entityId, entityType, queryParams });\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [entityId, entityType, queryParams]);\n const cloneProps = {\n entityId,\n entityType,\n queryParams,\n accessControlList,\n onRefresh,\n isLoading,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { utils as api } from '@vidispine/vdt-api';\n\nexport default class VidispineApi extends React.Component {\n constructor(props) {\n super(props);\n const { serverUrl, token, username, password, runAs } = props;\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n }\n if (token) {\n api.defaultClient.defaults.headers.Authorization = `token ${token}`;\n } else {\n api.defaultClient.defaults.auth = { username, password };\n }\n if (runAs) {\n api.defaultClient.defaults.headers.RunAs = runAs;\n }\n }\n\n componentDidUpdate(prevProps) {\n const { serverUrl, token, username, password, runAs } = this.props;\n if (prevProps.serverUrl !== serverUrl) {\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n } else {\n delete api.defaultClient.defaults.baseURL;\n }\n }\n if (prevProps.token !== token) {\n if (token) {\n api.defaultClient.defaults.headers.Authorization = `token ${token}`;\n } else {\n delete api.defaultClient.defaults.headers.Authorization;\n }\n }\n if (!token && (prevProps.username !== username || prevProps.password !== password)) {\n api.defaultClient.defaults.auth = { username, password };\n }\n if (prevProps.runAs !== runAs) {\n if (runAs) {\n api.defaultClient.defaults.headers.RunAs = runAs;\n } else {\n delete api.defaultClient.defaults.headers.RunAs;\n }\n }\n }\n\n render() {\n const { children, username, serverUrl } = this.props;\n const cloneProps = { username, serverUrl };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n }\n}\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { utils as api, user as UserApi } from '@vidispine/vdt-api';\nimport VidispineApi from './VidispineApi';\n\nconst VIDISPINE_TOKEN = 'VIDISPINE-TOKEN';\nconst VIDISPINE_USERNAME = 'VIDISPINE-USERNAME';\nconst VIDISPINE_SERVER_URL = 'VIDISPINE-SERVER-URL';\nconst VIDISPINE_REMEMBER_ME = 'VIDISPINE-REMEMBER-ME';\n\nconst handleOnGetToken = ({ userName, password, serverUrl }) => {\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n }\n const queryParams = { seconds: 2592000, autoRefresh: 'true' };\n const headers = { password, username: userName };\n try {\n UserApi.getToken({ queryParams, headers })\n .then(({ data: token }) => token)\n .catch(({ response = {}, message = 'Unknown error.' }) => {\n let submissionError = message;\n if (response.status === 401) {\n submissionError = 'Incorrect Username/Password';\n }\n throw submissionError;\n });\n } catch (error) {\n const submissionError = 'Incorrect Username/Password';\n throw submissionError;\n }\n};\n\nexport default function Auth({\n LoginComponent,\n LoginProps = {},\n AppComponent,\n AppProps = {},\n onGetToken = handleOnGetToken,\n onSuccess,\n onError,\n cookieOptions = {\n maxAge: 604800,\n path: '/',\n },\n ...props\n}) {\n const [cookies, setCookie, removeCookie] = useCookies([\n VIDISPINE_TOKEN,\n VIDISPINE_USERNAME,\n VIDISPINE_SERVER_URL,\n VIDISPINE_REMEMBER_ME,\n ]);\n const {\n [VIDISPINE_TOKEN]: token,\n [VIDISPINE_USERNAME]: userName,\n [VIDISPINE_SERVER_URL]: serverUrl,\n } = cookies;\n const rememberMe = cookies[VIDISPINE_REMEMBER_ME] === 'true';\n const onLogin = (values) => {\n let submissionError;\n try {\n onGetToken(values)\n .then((newToken) => {\n const {\n userName: newUserName,\n serverUrl: newServerUrl,\n rememberMe: newRememberMe,\n } = values;\n if (newUserName) setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions);\n if (newServerUrl) setCookie(VIDISPINE_SERVER_URL, newServerUrl, cookieOptions);\n if (newRememberMe) setCookie(VIDISPINE_REMEMBER_ME, newRememberMe, cookieOptions);\n if (newToken) setCookie(VIDISPINE_TOKEN, newToken, cookieOptions);\n if (onSuccess) onSuccess(values);\n })\n .catch((error) => {\n submissionError = error;\n if (onError) return onError(submissionError);\n throw submissionError;\n });\n } catch (error) {\n submissionError = error;\n if (onError) return onError(submissionError);\n }\n return submissionError;\n };\n const onLogout = () => {\n removeCookie(VIDISPINE_TOKEN, cookieOptions);\n if (!rememberMe) {\n removeCookie(VIDISPINE_USERNAME, cookieOptions);\n removeCookie(VIDISPINE_SERVER_URL, cookieOptions);\n removeCookie(VIDISPINE_REMEMBER_ME, cookieOptions);\n }\n };\n return (\n <>\n {token ? (\n <VidispineApi token={token} username={userName} serverUrl={serverUrl}>\n <AppComponent onLogout={onLogout} {...props} {...AppProps} />\n </VidispineApi>\n ) : (\n <LoginComponent\n onLogin={onLogin}\n userName={userName}\n serverUrl={serverUrl}\n rememberMe={rememberMe}\n {...props}\n {...LoginProps}\n />\n )}\n </>\n );\n}\n","import React from 'react';\n\nconst ErrorBoundaryComponent = ({ error, info }) => (\n <div\n style={{\n height: '100%',\n maxHeight: '100vh',\n width: '100%',\n maxWidth: '100vw',\n backgroundColor: 'red',\n color: 'white',\n }}\n >\n {error && <div>{error.toString()}</div>}\n {info && <div>{info.componentStack}</div>}\n </div>\n);\n\nexport default class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n return { error, hasError: true };\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const { hasError, info } = this.state;\n const { info: nextInfo } = nextState;\n if (info === nextInfo && hasError === true) return false;\n return true;\n }\n\n componentDidCatch(error, info) {\n const { onError } = this.props;\n if (typeof onError === 'function') {\n try {\n onError(error, info);\n } catch (onErrorError) {\n return;\n }\n }\n this.setState({ info });\n }\n\n render() {\n const { children } = this.props;\n const { hasError, error, info } = this.state;\n if (hasError) {\n return <ErrorBoundaryComponent info={info} error={error} />;\n }\n return children;\n }\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport { fieldgroup as FieldGroupApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function GetFieldGroup({ groupName, queryParams, children }) {\n const { request, data: metadataFieldGroupDocument, isLoading, isError } = useApi(\n FieldGroupApi.getFieldGroup,\n );\n const onRefresh = () => request({ groupName, queryParams });\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [groupName, queryParams]);\n const cloneProps = {\n groupName,\n queryParams,\n metadataFieldGroupDocument,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { user as UserApi } from '@vidispine/vdt-api';\nimport { roles as ROLES } from '@vidispine/vdt-js';\n\nconst RolesContext = React.createContext();\n\nfunction RolesProvider({ intialState = {}, onRefresh, userName: knownUserName, children }) {\n const [groupListType, setGroupListType] = React.useState(intialState);\n const onGetUserRole = () => {\n if (knownUserName) {\n UserApi.getUserRole({ userName: knownUserName }).then(({ data }) => {\n setGroupListType(data);\n if (onRefresh) onRefresh(data);\n });\n } else {\n let iAm;\n UserApi.whoAmI()\n .then(({ data: userName }) => {\n iAm = userName;\n return UserApi.getUserRole({ userName });\n })\n .then(({ data }) => {\n setGroupListType(data);\n if (onRefresh) onRefresh(data, iAm);\n });\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n React.useEffect(onGetUserRole, [knownUserName]);\n return <RolesContext.Provider value={groupListType}>{children}</RolesContext.Provider>;\n}\n\nfunction useRoles() {\n const groupListType = React.useContext(RolesContext);\n if (groupListType === undefined) {\n throw new Error('useRoles must be used within RolesContext');\n }\n const hasRole = (roleName) => {\n if (roleName === undefined) throw new Error('roleName is undefined');\n const { group: groupList } = groupListType;\n if (!Array.isArray(groupList)) return null;\n const groupNames = groupList.map(({ groupName }) => groupName);\n if (groupNames.includes(ROLES.SUPER_ACCESS_USER)) return true;\n if (Array.isArray(roleName)) {\n return roleName.findIndex((thisRole) => groupNames.includes(thisRole)) > -1;\n }\n return groupNames.includes(roleName);\n };\n return { hasRole, groupListType };\n}\n\nexport { RolesProvider, useRoles };\n","import React from 'react';\nimport { useRoles } from '../context/RolesContext';\n\nexport default function HasRole({ roleName, allow, deny, loading }) {\n if (roleName === undefined) throw new Error('roleName is undefined');\n const { hasRole } = useRoles();\n const checkedRole = hasRole(roleName);\n if (React.isValidElement(allow) && checkedRole === true) {\n return allow;\n }\n if (React.isValidElement(deny) && checkedRole === false) {\n return deny;\n }\n if (React.isValidElement(loading) && checkedRole === null) {\n return loading;\n }\n return null;\n}\n","import React from 'react';\n\nexport default function ComposeProviders({ providers = [], children, ...props }) {\n return providers.reduceRight((acc, Provider) => {\n if (typeof Provider === 'function') {\n return (\n <Provider\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {acc}\n </Provider>\n );\n }\n const { provider: ProviderComponent, ...providerProps } = Provider;\n return (\n <ProviderComponent\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...providerProps}\n >\n {acc}\n </ProviderComponent>\n );\n }, children);\n}\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\n\nimport ErrorBoundary from '../wrappers/ErrorBoundary';\n\nconst withErrorBoundary = (WrappedComponent, errorBoundaryProps = {}) => (props) => (\n <ErrorBoundary {...errorBoundaryProps}>\n <WrappedComponent {...props} />\n </ErrorBoundary>\n);\n\nexport default withErrorBoundary;\n","export const compose = (...funcs) =>\n funcs.reduce(\n (a, b) => (...args) => a(b(...args)),\n (arg) => arg,\n );\n\nexport default compose;\n","import React from 'react';\nimport { uuidv4 } from '../utils';\n\nexport const BinContext = React.createContext();\n\nconst defaultIsUniqueBinItem = (\n bin,\n { entityId, entityType, entityTimespan: { start, end, field: [{ name } = {}] = [] } = {} },\n) => {\n const entityExistsInBin = bin.some(\n (o) => o.entity.id === entityId && o.entityType === entityType,\n );\n let entityTimespanExistsInBin = false;\n if (entityExistsInBin) {\n const binEntitiesWithSameId = bin.filter(\n (o) => o.entity.id === entityId && o.entityType === entityType,\n );\n binEntitiesWithSameId.forEach(\n ({\n entityTimespan: { start: beStart, end: beEnd, field: [{ name: beName } = {}] = [] } = {},\n }) => {\n if (start === beStart && end === beEnd && name === beName) {\n entityTimespanExistsInBin = true;\n }\n },\n );\n }\n return !entityExistsInBin || !entityTimespanExistsInBin;\n};\nexport function BinProvider({\n onChange,\n children,\n initialState = [],\n allowDuplicates: defaultAllowDuplicates = false,\n isUniqueBinItem = defaultIsUniqueBinItem,\n}) {\n const [binState, setBinState] = React.useState(initialState);\n const [allowDuplicates, setAllowDuplicates] = React.useState(defaultAllowDuplicates);\n\n const onDelete = (binIdToDelete) => {\n if (!binIdToDelete || !['string', 'number'].includes(typeof binIdToDelete)) {\n // eslint-disable-next-line no-console\n console.error('BinProvider onDelete called without a binId of the entity to delete');\n return;\n }\n setBinState((state) => {\n const newState = state.filter((o) => o.binId !== binIdToDelete);\n if (onChange) onChange(newState);\n return newState;\n });\n };\n\n const onEmptyBin = () => {\n const newState = [];\n setBinState(newState);\n if (onChange) onChange(newState);\n };\n\n const createBinObject = (binObject) => {\n const [binId] = uuidv4().split('-');\n return { binId, ...binObject };\n };\n\n const handleDrop = ({ dragInfo = {} } = {}) => {\n const { entityId, entityType, entity } = dragInfo;\n if (!entityId || !entityType || !entity) {\n throw new Error('Dragged element needs to have entityId, entityType and entity props');\n }\n setBinState((state = []) => {\n if (isUniqueBinItem(state, dragInfo) || allowDuplicates) {\n const newState = [...state, createBinObject(dragInfo)];\n if (onChange) onChange(newState);\n return newState;\n }\n return state;\n });\n };\n\n const handleSort = ({ dragId, hoverId, originalDragIndex }) => {\n if (dragId === undefined || (hoverId === undefined && originalDragIndex === undefined)) return;\n setBinState((state) => {\n const newState = [...state];\n const dragIndex = binState.findIndex((o) => o.binId === dragId);\n const hoverIndex = binState.findIndex((o) => o.binId === hoverId);\n const newDragIndex = hoverIndex > -1 ? hoverIndex : originalDragIndex;\n [newState[newDragIndex], newState[dragIndex]] = [newState[dragIndex], newState[newDragIndex]];\n if (onChange) onChange(newState);\n return newState;\n });\n };\n\n return (\n <BinContext.Provider\n value={{\n setBin: setBinState,\n bin: binState,\n allowDuplicates,\n setAllowDuplicates,\n onDrop: handleDrop,\n onSort: handleSort,\n onFind: () => null,\n onEmptyBin,\n onDelete,\n }}\n >\n {children}\n </BinContext.Provider>\n );\n}\n","import React from 'react';\nimport { metadata as MetadataApi } from '@vidispine/vdt-api';\n\nconst SettingsDispatchContext = React.createContext();\nconst SettingsStateContext = React.createContext();\n\nconst UPDATE_ALL_SETTINGS = 'UPDATE_ALL_SETTINGS';\nconst UPDATE_SETTING = 'UPDATE_SETTING';\nconst UPDATE_USERNAME = 'UPDATE_USERNAME';\nconst REMOVE_SETTING = 'REMOVE_SETTING';\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case UPDATE_USERNAME: {\n return { ...state, userName: action.userName };\n }\n case UPDATE_ALL_SETTINGS: {\n return { ...state, settings: action.settings };\n }\n case UPDATE_SETTING: {\n const settings = { ...state.settings, ...action.setting };\n return { ...state, settings };\n }\n case REMOVE_SETTING: {\n const settings = { ...state.settings };\n delete settings[action.key];\n return { ...state, settings };\n }\n default:\n return state;\n }\n};\n\nconst SettingsProvider = ({\n userName: initialUsername,\n settingsKey,\n children,\n initialSettings = {},\n onChange,\n getSettingsApi = MetadataApi.getSimpleMetadataKey,\n updateSettingsApi = MetadataApi.updateSimpleMetadataKey,\n}) => {\n const [state, dispatch] = React.useReducer(reducer, {\n settings: initialSettings,\n userName: initialUsername,\n });\n const currentSettingsFromServer = React.useRef();\n\n React.useEffect(() => {\n const { userName } = state;\n if (!getSettingsApi || !userName) return;\n getSettingsApi({\n entityType: 'user',\n entityId: userName,\n key: settingsKey,\n })\n .then(({ data: settings }) => {\n dispatch({\n type: UPDATE_ALL_SETTINGS,\n settings,\n userName,\n settingsKey,\n });\n currentSettingsFromServer.current = JSON.stringify(settings);\n })\n .catch((error) => {\n const { response } = error;\n if (response.status !== 404) {\n throw new Error(error);\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.userName]);\n\n React.useEffect(() => {\n if (onChange) onChange(state.settings);\n const { userName } = state;\n if (!updateSettingsApi || !userName) return;\n const newValue = JSON.stringify(state.settings);\n const currentValue = currentSettingsFromServer.current;\n if (!currentValue || newValue === currentValue) return;\n updateSettingsApi({\n entityType: 'user',\n entityId: userName,\n key: settingsKey,\n value: newValue,\n });\n currentSettingsFromServer.current = newValue;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.settings]);\n\n return (\n <SettingsStateContext.Provider value={state}>\n <SettingsDispatchContext.Provider value={dispatch}>\n {children}\n </SettingsDispatchContext.Provider>\n </SettingsStateContext.Provider>\n );\n};\n\nconst useSettingsState = () => {\n const state = React.useContext(SettingsStateContext);\n if (!state) throw new Error('useSettingsState must be used within SettingsStateContext');\n return state;\n};\n\nconst useSettingsDispatch = () => {\n const dispatch = React.useContext(SettingsDispatchContext);\n if (!dispatch) throw new Error('useSettingsDispatch must be used within SettingsDispatchContext');\n return dispatch;\n};\n\nconst useSettingsActions = () => {\n const dispatch = useSettingsDispatch();\n const updateAllSettings = React.useCallback(\n (settings) => dispatch({ type: UPDATE_ALL_SETTINGS, settings }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const updateSetting = React.useCallback(\n (setting) => dispatch({ type: UPDATE_SETTING, setting }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const updateUsername = React.useCallback(\n (userName) => dispatch({ type: UPDATE_USERNAME, userName }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const removeSetting = React.useCallback((key) => dispatch({ type: REMOVE_SETTING, key }), []);\n return {\n updateAllSettings,\n updateSetting,\n updateUsername,\n removeSetting,\n };\n};\n\nconst useSettings = () => {\n const { settings = {} } = useSettingsState();\n const actions = useSettingsActions();\n return {\n ...actions,\n settings,\n };\n};\n\nexport { SettingsProvider, useSettingsActions, useSettings };\n","import React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { user as UserApi, noauth as NoAuthApi, utils as api } from '@vidispine/vdt-api';\n\nimport { VidispineApi } from '../wrappers';\nimport { useApi } from '../hooks';\n\nconst VIDISPINE_TOKEN = 'VIDISPINE-TOKEN';\nconst VIDISPINE_USERNAME = 'VIDISPINE-USERNAME';\nconst VIDISPINE_SERVER_URL = 'VIDISPINE-SERVER-URL';\nconst VIDISPINE_REMEMBER_ME = 'VIDISPINE-REMEMBER-ME';\nconst ERROR_CREDENTIALS = 'Incorrect username or password';\nconst ERROR_OFFLINE = 'Offline or CORS not configured';\nconst ERROR_TOKEN_EXPIRED = 'Session expired';\nconst ERROR_SERVER_MISMATCH = 'VIDISPINE_URL mismatch';\n\nconst getErrorMessage = (serverUrl) => {\n try {\n // NoAuthApi.isOnline throws cors error after multiple requests\n return NoAuthApi.getSelfTest({ baseURL: serverUrl })\n .then(() => ERROR_CREDENTIALS)\n .catch(() => ERROR_OFFLINE);\n } catch (_) {\n return Promise.resolve(ERROR_OFFLINE);\n }\n};\n\nconst defaultOnGetToken = ({ maxAge: seconds = 60, userName, password, serverUrl }) => {\n try {\n return UserApi.getToken({\n queryParams: { seconds, autoRefresh: 'true' },\n headers: { password, username: userName },\n baseURL: serverUrl,\n })\n .then(({ data: token }) => {\n return token;\n })\n .catch(() => {\n return getErrorMessage(serverUrl).then((error) => {\n throw Error(error);\n });\n });\n } catch (_) {\n return getErrorMessage(serverUrl).then((error) => {\n throw Error(error);\n });\n }\n};\n\nexport const AuthContext = React.createContext({\n serverUrl: null,\n token: null,\n user: null,\n userName: null,\n onLogin: () => null,\n onLogout: () => null,\n});\n\nexport const AuthProvider = ({\n cookieOptions = {\n maxAge: 604800,\n path: '/',\n },\n LoginComponent,\n LoginProps = {},\n onGetToken = defaultOnGetToken,\n onSuccess,\n onError,\n serverUrl: propsServerUrl,\n userName: propsUserName,\n token: propsToken,\n children,\n}) => {\n const { data: userType, request: getUser } = useApi(UserApi.getUser);\n\n const [cookies, setCookie, removeCookie] = useCookies([\n VIDISPINE_TOKEN,\n VIDISPINE_USERNAME,\n VIDISPINE_SERVER_URL,\n VIDISPINE_REMEMBER_ME,\n ]);\n const {\n [VIDISPINE_TOKEN]: token = propsToken,\n [VIDISPINE_USERNAME]: userName = propsUserName,\n [VIDISPINE_SERVER_URL]: serverUrl = propsServerUrl,\n } = cookies;\n const rememberMe = cookies[VIDISPINE_REMEMBER_ME] === 'true';\n const { maxAge } = cookieOptions;\n const onLogin = (values) => {\n let submissionError;\n try {\n return onGetToken({ maxAge, ...values })\n .then((newToken) => {\n const {\n userName: newUserName,\n serverUrl: newServerUrl,\n rememberMe: newRememberMe,\n } = values;\n if (newUserName) setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions);\n if (newServerUrl) setCookie(VIDISPINE_SERVER_URL, newServerUrl, cookieOptions);\n if (newRememberMe) setCookie(VIDISPINE_REMEMBER_ME, newRememberMe, cookieOptions);\n if (newToken) setCookie(VIDISPINE_TOKEN, newToken, cookieOptions);\n if (onSuccess) onSuccess(values);\n })\n .catch((error) => {\n submissionError = error;\n if (onError) onError(submissionError);\n });\n } catch (error) {\n submissionError = error;\n if (onError) onError(submissionError);\n }\n return submissionError;\n };\n const onLogout = React.useCallback(() => {\n removeCookie(VIDISPINE_TOKEN, cookieOptions);\n if (!rememberMe) {\n removeCookie(VIDISPINE_USERNAME, cookieOptions);\n removeCookie(VIDISPINE_SERVER_URL, cookieOptions);\n removeCookie(VIDISPINE_REMEMBER_ME, cookieOptions);\n }\n }, [cookieOptions, rememberMe, removeCookie]);\n\n const responseInterceptor = React.useRef();\n React.useEffect(() => {\n if (token) {\n if (responseInterceptor.current)\n api.defaultClient.interceptors.response.eject(responseInterceptor.current);\n responseInterceptor.current = api.defaultClient.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n onLogout();\n if (onError) onError(Error(ERROR_TOKEN_EXPIRED));\n }\n } else {\n const { config: { baseURL } = {} } = error;\n NoAuthApi.getSelfTest({ baseURL })\n .then(() => {\n onLogout();\n if (onError) onError(Error(ERROR_TOKEN_EXPIRED));\n })\n .catch(() => null); // Will throw if offline or CORS error\n }\n return Promise.reject(error);\n },\n );\n }\n return () => {\n if (responseInterceptor.current)\n api.defaultClient.interceptors.response.eject(responseInterceptor.current);\n };\n }, [onLogout, onError, token]);\n\n React.useEffect(() => {\n if (token && userName === undefined) {\n UserApi.whoAmI().then(({ data: newUserName }) =>\n setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions),\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [userName, token]);\n\n React.useEffect(() => {\n if (token && userName && userType === undefined) getUser({ userName });\n }, [userName, token, userType, getUser, onLogout]);\n React.useEffect(() => {\n if (token && serverUrl && propsServerUrl && serverUrl !== propsServerUrl) {\n onLogout();\n if (onError) onError(Error(ERROR_SERVER_MISMATCH));\n }\n }, [token, serverUrl, propsServerUrl, onLogout, onError]);\n\n return (\n <>\n {token ? (\n <VidispineApi token={token} username={userName} serverUrl={serverUrl}>\n <AuthContext.Provider\n value={{\n serverUrl,\n token,\n userType,\n userName,\n onLogin,\n onLogout,\n }}\n >\n {children}\n </AuthContext.Provider>\n </VidispineApi>\n ) : (\n <LoginComponent\n onLogin={onLogin}\n userName={userName}\n serverUrl={serverUrl}\n rememberMe={rememberMe}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...LoginProps}\n />\n )}\n </>\n );\n};\n\nexport const useAuthContext = () => {\n const context = React.useContext(AuthContext);\n if (context === undefined) {\n throw new Error('useAuth must be used within an AuthContext');\n }\n\n return context;\n};\n","import React from 'react';\n\nexport default ({\n children,\n setDrag,\n onDrop: onDropProp,\n onDragEnter: onDragEnterProp,\n onDragOver: onDragOverProp,\n onDragLeave: onDragLeaveProp,\n style,\n}) => {\n const [dragCounter, setDragCounter] = React.useState(0);\n\n const onDrop = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDrag(false);\n if (onDropProp) onDropProp(e);\n };\n\n const onDragEnter = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragCounter(dragCounter + 1);\n if (dragCounter === 0) setDrag(true);\n if (onDragEnterProp) onDragEnterProp(e);\n };\n\n const onDragOver = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (onDragOverProp) onDragOverProp(e);\n };\n\n const onDragLeave = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragCounter(dragCounter - 1);\n if (dragCounter === 1) setDrag(false);\n if (onDragLeaveProp) onDragLeaveProp(e);\n };\n\n return (\n <div\n onDragEnter={(e) => onDragEnter(e)}\n onDragOver={(e) => onDragOver(e)}\n onDrop={(e) => onDrop(e)}\n onDragLeave={(e) => onDragLeave(e)}\n style={style}\n >\n {children}\n </div>\n );\n};\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\n\nexport const handleAddEntity = ({ entityId, entityType, collectionId, rootParentId, onError }) => {\n if (collectionId && collectionId !== rootParentId) {\n try {\n return CollectionApi.addCollectionEntity({\n collectionId,\n entityId,\n queryParams: {\n type: entityType.toLowerCase(),\n },\n });\n } catch (error) {\n onError({\n message: `Could not add ${entityId} to collection ${collectionId}`,\n error,\n });\n }\n }\n return undefined;\n};\nexport const handleRemoveEntity = ({\n entityId,\n entityType,\n collectionId,\n rootParentId,\n onError,\n}) => {\n if (collectionId && collectionId !== rootParentId) {\n try {\n return CollectionApi.removeCollectionEntity({\n collectionId,\n entityId,\n queryParams: {\n type: entityType.toLowerCase(),\n },\n });\n } catch (error) {\n onError({\n message: `Could not remove ${entityId} from collection ${collectionId}`,\n error,\n });\n }\n }\n return undefined;\n};\n\nexport const handleMoveEntity = ({\n entityId,\n entityType,\n addToCollectionId,\n removeFromCollectionId,\n rootParentId,\n onAddEntity = handleAddEntity,\n onRemoveEntity = handleRemoveEntity,\n onMoved = () => null,\n onAdded = () => null,\n onRemoved = () => null,\n // eslint-disable-next-line no-console\n onError = ({ message, error }) => console.error(`${message}\\n${error}`),\n}) => {\n if (!addToCollectionId) {\n onError({ message: 'Missing the collection id to add entity to', error: '' });\n return;\n }\n if (!removeFromCollectionId) {\n onError({ message: 'Missing the collection id to remove entity from', error: '' });\n return;\n }\n try {\n const addPromise = onAddEntity({\n entityId,\n entityType,\n rootParentId,\n collectionId: addToCollectionId,\n onError,\n });\n const removePromise = onRemoveEntity({\n entityId,\n entityType,\n rootParentId,\n collectionId: removeFromCollectionId,\n onError,\n });\n const promises = [addPromise, removePromise].filter((e) => e !== undefined);\n Promise.allSettled(promises)\n .then((results) => {\n const failedResults = results.filter((r) => r.status !== 'fulfilled');\n const allSucceeded = failedResults.length === 0;\n const allFailed = failedResults.length === promises.length;\n const oneFailed = failedResults.length === 1;\n if (allSucceeded) {\n onMoved();\n onAdded();\n onRemoved();\n } else if (allFailed) {\n onError({\n message:\n `Could not move ${entityId} from ` +\n `${removeFromCollectionId} to ${addToCollectionId}`,\n error: failedResults.map((fr) => fr.reason).join('\\n'),\n });\n } else if (oneFailed) {\n const failedRequest = failedResults[0].reason.config.method;\n const failedToRemove = failedRequest === 'delete';\n const failedToAdd = failedRequest === 'put';\n onError({\n message: failedToRemove\n ? `Could not remove ${entityId} from collection ${removeFromCollectionId}`\n : `Could not add ${entityId} to collection ${addToCollectionId}`,\n error: failedResults[0].reason,\n });\n let rollbackPromise;\n if (failedToRemove) {\n rollbackPromise = onRemoveEntity({\n entityId,\n entityType,\n collectionId: addToCollectionId,\n onError,\n });\n } else if (failedToAdd) {\n rollbackPromise = onAddEntity({\n entityId,\n entityType,\n collectionId: removeFromCollectionId,\n onError,\n });\n }\n if (rollbackPromise) {\n rollbackPromise\n .then(() => {\n // eslint-disable-next-line no-console\n console.info(\n `Rollbacked moving ${entityId} from ` +\n `${removeFromCollectionId} to ${addToCollectionId}`,\n );\n })\n .catch((error) => {\n onError({ message: 'Could not rollback after moving entity', error });\n });\n }\n }\n })\n .catch((error) => {\n onError({\n message: `Could not add ${entityId} to collection ${addToCollectionId}`,\n error,\n });\n });\n } catch (error) {\n onError({\n message: `Could not move ${entityId} from ${removeFromCollectionId} to collection ${addToCollectionId}`,\n error,\n });\n }\n};\n\nexport default { handleMoveEntity, handleAddEntity, handleRemoveEntity };\n"],"names":["setDefaultState","hasLoaded","isLoading","isError","response","undefined","data","responseRef","current","apiReducer","state","action","type","responseType","newState","initialState","canceltoken","api","CancelToken","source","useApi","apiHandler","initialDefaultState","initialStateRef","React","useRef","useReducer","dispatch","request","useCallback","props","Promise","resolve","reject","then","reset","useEffect","cancel","CHANGE_PAGE","CHANGE_ROWS","CHANGE_SORT","CHANGE_SEARCHTEXT","CHANGE_SEARCHFIELD","CHANGE_SEARCHFIELDFACET","CHANGE_SEARCHFILTER","CHANGE_SEARCHFILTERFACET","CHANGE_PARENT_COLLECTION","CHANGE_FACET","CHANGE_ITEMSEARCHDOCUMENT","CHANGE_QUERYPARAMS","CHANGE_MATRIXPARAMS","CHANGE_SUGGESTION","ACTION_TYPE","setInitialDefaultState","queryParams","matrixParams","itemSearchDocument","rowsPerPage","page","content","interval","first","number","intervals","filter","searchReducer","searchText","value","sort","field","order","text","facet","parentCollection","operator","name","operation","suggestion","useSearch","onChangeRowsPerPage","newRows","target","onChangePage","newPage","onChangeSort","event","setSearchText","setItemSearchDocument","setQueryParams","CHANGE_ITEMQUERYPARAMS","setMatrixParams","CHANGE_ITEMMATRIXPARAMS","setSearchField","setSearchFieldFacet","map","count","setSearchFilter","setSearchFilterFacet","fieldList","reduce","a","concat","exclude","setFacet","setParentCollection","setSuggestion","useUpdateEffect","fn","inputs","hasMountedRef","maximumSuggestions","useAutocomplete","useState","autocompleteDoc","setAutocompleteDoc","setAutocompleteField","setAutocompleteText","setAutocompleteMaxSuggestions","SearchApi","searchAutoComplete","suggestions","autocompleteRequestDocument","propKey","selected","setSelected","onSelect","checked","propValue","currentIndex","findIndex","thisSelected","newSelected","splice","isSelected","onClear","initialTab","activeTab","setActiveTab","changeTab","_","newValue","useInterval","callback","delay","savedCallback","tick","id","setInterval","clearInterval","useThumbnailScrub","srcList","savedInterval","initialImgIdx","useMemo","Math","floor","length","imgIdx","setImgIdx","imgIdxRef","width","onMouseEnter","onMouseLeave","imageSrc","CHANGE_TYPE","CHANGE_STATE","CHANGE_PRIORITY","CHANGE_STARTTIME","CHANGE_FINISHTIME","jobMetadata","rest","deleteField","newMatrixParams","Array","isArray","join","newQueryParams","CHANGE_JOBMETADATA","useJobSearch","fieldName","onChangeType","onChangeState","onChangePriority","onChangeStarttime","onChangeFinishtime","onChangeJobmetadata","useLocalStorage","localStorageKey","defaultValue","JSON","parse","window","localStorage","getItem","stringify","setValue","setItem","getValue","uuidv4","replace","c","crypto","getRandomValues","Uint8Array","toString","b64EncodeUnicode","str","compressToEncodedURIComponent","b64DecodeUnicode","slice","decodeURIComponent","atob","split","charCodeAt","decompressFromEncodedURIComponent","DEFAULT_AUDIO_SHAPETAGS","DEFAULT_VIDEO_SHAPETAGS","DEFAULT_IMAGE_SHAPETAGS","AUDIO_MIMETYPE_PREFIX","VIDEO_MIMETYPE_PREFIX","IMAGE_MIMETYPE_PREFIX","ADDITIONAL_VIDEO_MIMETYPES","ADDITIONAL_IMAGE_MIMETYPES","ADDITIONAL_AUDIO_MIMETYPES","getDefaultShapeTags","file","mimeType","toLowerCase","startsWith","includes","chunkedUpload","uploadInstance","ChunkedUpload","onFail","error","onComplete","resp","upload","onUploadFile","collectionId","onProgress","metadata","propsMetadata","placeholderParams","importParams","chunkedUploadProps","generateTransferId","getShapeTags","itemId","shapeTags","filename","mediaType","originalFilename","metadataDocument","createMetadataType","ImportApi","createImportPlaceholder","container","itemDocument","collectionIds","all","CollectionApi","addCollectionEntity","entityId","transferId","tag","method","createImportComponentRaw","component","err","console","useUploadFiles","handleUploadFile","initialMetadata","files","setFiles","forEach","URL","revokeObjectURL","preview","onAddFiles","newFiles","newFilesObj","title","currentFiles","onChangeFile","idx","changeFile","currentFilesList","currentFile","newMetadata","newProgress","progress","currentMetadata","currentProgress","newFilesList","newFile","onChangeProgress","onChangeMetadata","onUpload","uploadProps","previousPromise","thisFile","res","currentResult","onRemoveFile","i","onRemoveFiles","idxs","useQueryInitialState","history","queryName","defaultState","defaultStateRef","queryState","searchParams","URLSearchParams","location","search","encodedQuery","get","decodedQuery","pathName","queryInitialState","useUpdateQueryState","onSearchStateChange","useEntityAccess","entityType","AccessApi","listEntityAccess","accessControlList","onList","onRemove","accessId","removeEntityAccess","onAdd","accessControlDocument","createEntityAccess","getValueFromData","key","find","d","defaultGetDataAttributes","fieldOrGroup","keys","Object","assign","getOptions","values","f","label","convertValuesXmlToJson","xmlString","doc","DOMParser","parseFromString","fields","getElementsByTagName","json","childNodes","keyNode","valueNode","push","nodeName","firstChild","nodeValue","useAddMetadataFieldAttributes","groups","getDataAttributes","fieldDataToInclude","groupDataToInclude","fieldQueryParams","groupQueryParams","setIsLoading","fieldsWithAttributes","setFieldsWithAttributes","groupsWithAttributes","setGroupsWithAttributes","useDeepCompareEffect","addFieldAttributes","fieldsArray","fieldsAttributes","overrides","fieldAttributes","dataAttributes","constraint","options","addGroupAttributes","groupsArray","groupsAttributes","group","groupAttributes","childFields","childGroups","didCancel","fetchAttributesAsync","fieldPromises","MetadataFieldApi","getMetadataField","warn","groupPromises","groupsToFetch","groupName","FieldGroupApi","getFieldGroup","dataValues","e","jsonValues","g","some","v","newGroupsWithAttributes","b","indexOf","UPDATE_FREQUENCY","UPDATE_MODE","saveSearch","markerField","markerValue","ItemApi","searchItem","result","updateMode","updateFrequency","library","createCollection","collectionDocument","getLibraryFromCollection","getCollection","children","collectionType","libraryType","Error","deleteSearch","libraryId","LibraryApi","removeLibrary","removeCollection","getLibrarySettings","query","getSavedSearchSettings","useSavedSearch","initialSearchState","onSaveSearch","onDeleteSearch","onUpdateSearchMetadata","updateCollectionMetadata","onGetSavedSearchSettings","saveSearchWithMarker","mergeMarkerField","searchProps","useSearchItem","itemListType","onRefresh","useMouseDownPosition","x","y","position","setPosition","setFromEvent","clientX","clientY","addEventListener","removeEventListener","useGetCollection","refreshOnMount","getCollectionItem","useGetEntity","dataType","entityApi","entityTypeId","getLibrary","apiProps","onGetEntity","useUser","UserApi","getUser","userType","userName","updateUser","userDocument","updateUserGroups","updateUserGroup","groupListDocument","removeUserFromGroup","GroupApi","removeGroupUser","changePassword","password","passwordType","deleteUser","disableUser","hard","args","enableUser","CHANGE_QUERY","userSearchDocument","useSearchUser","searchUser","userListDocument","onSearchUser","onChangeQuery","useListGroup","listGroup","groupListType","useListUser","listUser","userListType","HIDE_ROLES","groupSearchDocument","hideRoles","role","useSearchGroup","searchGroup","onSearchGroup","onHideRoles","useGroup","getGroup","groupType","updateGroup","groupDocument","addChildGroups","childGroupList","addParentGroups","parentGroupList","addUsersToGroup","users","userList","user","u","removeChildGroup","childGroupName","removeGroupChildren","removeFromParentGroup","parentGroupName","removeGroup","useGetItem","itemType","useCollectionAutoPlay","defaultEnabled","nextPlaying","setNextPlaying","isAutoPlayEnabled","setIsAutoPlayEnabled","toggleAutoPlay","prevValue","allItemsRef","orderItemsRef","hitsRef","onNext","searchDocument","searchForNext","allItems","orderItems","searchCollectionItem","hits","item","itemList","contentList","currentItemIdx","thisId","remainingItems","nextItem","useHoverScrub","customOffset","scrubPosition","setScrubPosition","thumbnailIndex","setThumbnailIndex","showScrub","setShowScrub","getInnerLeft","left","currentTarget","offsetLeft","offsetWidth","onMouseMove","innerLeft","handleShowScrub","useItemSearchAutocomplete","itemSearchDoc","debounceTime","suggestionSettings","accuracy","triggerLength","textValue","setTextValue","handleAutocompleteChange","debounce","autocomplete","body","MetadataType","joinValue","flat","metadataType","parseMetadataType","cloneProps","cloneChild","child","cloneElement","Children","SearchCollection","searchCollection","collectionListType","SearchItem","SearchItemCollection","searchItemCollection","searchResultType","GetItem","GetCollectionContent","GetJobs","JobApi","listJob","jobs","ListEntityAccess","VidispineApi","serverUrl","token","username","runAs","defaultClient","defaults","baseURL","headers","Authorization","auth","RunAs","prevProps","Component","VIDISPINE_TOKEN","VIDISPINE_USERNAME","VIDISPINE_SERVER_URL","VIDISPINE_REMEMBER_ME","handleOnGetToken","seconds","autoRefresh","getToken","message","submissionError","status","Auth","LoginComponent","LoginProps","AppComponent","AppProps","onGetToken","onSuccess","onError","cookieOptions","maxAge","path","useCookies","cookies","setCookie","removeCookie","rememberMe","onLogin","newToken","newUserName","newServerUrl","newRememberMe","onLogout","ErrorBoundaryComponent","info","height","maxHeight","maxWidth","backgroundColor","color","componentStack","ErrorBoundary","hasError","nextProps","nextState","nextInfo","onErrorError","setState","GetFieldGroup","metadataFieldGroupDocument","RolesContext","createContext","RolesProvider","intialState","knownUserName","setGroupListType","onGetUserRole","getUserRole","iAm","whoAmI","useRoles","useContext","hasRole","roleName","groupList","groupNames","ROLES","SUPER_ACCESS_USER","thisRole","HasRole","allow","deny","loading","checkedRole","isValidElement","ComposeProviders","providers","reduceRight","acc","Provider","ProviderComponent","provider","providerProps","withErrorBoundary","WrappedComponent","errorBoundaryProps","compose","funcs","arg","BinContext","defaultIsUniqueBinItem","bin","entityTimespan","start","end","entityExistsInBin","o","entity","entityTimespanExistsInBin","binEntitiesWithSameId","beStart","beEnd","beName","BinProvider","onChange","allowDuplicates","defaultAllowDuplicates","isUniqueBinItem","binState","setBinState","setAllowDuplicates","onDelete","binIdToDelete","binId","onEmptyBin","createBinObject","binObject","handleDrop","dragInfo","handleSort","dragId","hoverId","originalDragIndex","dragIndex","hoverIndex","newDragIndex","setBin","onDrop","onSort","onFind","SettingsDispatchContext","SettingsStateContext","UPDATE_ALL_SETTINGS","UPDATE_SETTING","UPDATE_USERNAME","REMOVE_SETTING","reducer","settings","setting","SettingsProvider","initialUsername","settingsKey","initialSettings","getSettingsApi","MetadataApi","getSimpleMetadataKey","updateSettingsApi","updateSimpleMetadataKey","currentSettingsFromServer","currentValue","useSettingsState","useSettingsDispatch","useSettingsActions","updateAllSettings","updateSetting","updateUsername","removeSetting","useSettings","actions","ERROR_CREDENTIALS","ERROR_OFFLINE","ERROR_TOKEN_EXPIRED","ERROR_SERVER_MISMATCH","getErrorMessage","NoAuthApi","getSelfTest","defaultOnGetToken","AuthContext","AuthProvider","propsServerUrl","propsUserName","propsToken","responseInterceptor","interceptors","eject","use","config","useAuthContext","context","setDrag","onDropProp","onDragEnterProp","onDragEnter","onDragOverProp","onDragOver","onDragLeaveProp","onDragLeave","style","dragCounter","setDragCounter","preventDefault","stopPropagation","handleAddEntity","rootParentId","handleRemoveEntity","removeCollectionEntity","handleMoveEntity","addToCollectionId","removeFromCollectionId","onAddEntity","onRemoveEntity","onMoved","onAdded","onRemoved","addPromise","removePromise","promises","allSettled","results","failedResults","r","allSucceeded","allFailed","oneFailed","fr","reason","failedRequest","failedToRemove","failedToAdd","rollbackPromise"],"mappings":"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"}