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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import React, { useCallback } from 'react';
2
2
  import { utils, search, vsimport, collection, ChunkedUpload, access, metadatafield, fieldgroup, item, library, user, group, job, metadata, noauth } from '@vidispine/vdt-api';
3
- import { createMetadataType, parseMetadataType, roles } from '@vidispine/vdt-js';
3
+ import { createMetadataType, formatTimeCodeText, parseMetadataType, roles } from '@vidispine/vdt-js';
4
4
  import { decompressFromEncodedURIComponent, compressToEncodedURIComponent } from 'lz-string';
5
5
  import useDeepCompareEffect from 'use-deep-compare-effect';
6
6
  import debounce from 'lodash.debounce';
@@ -3192,6 +3192,7 @@ var useCollectionAutoPlay = function useCollectionAutoPlay(_ref) {
3192
3192
  function useHoverScrub() {
3193
3193
  var srcList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
3194
3194
  var customOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
3195
+ var durationSeconds = arguments.length > 2 ? arguments[2] : undefined;
3195
3196
 
3196
3197
  var _React$useState = React.useState(0),
3197
3198
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -3208,6 +3209,21 @@ function useHoverScrub() {
3208
3209
  showScrub = _React$useState6[0],
3209
3210
  setShowScrub = _React$useState6[1];
3210
3211
 
3212
+ var _React$useState7 = React.useState([]),
3213
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
3214
+ thumbnailTimeCodeArray = _React$useState8[0],
3215
+ setThumbnailTimeCodeArray = _React$useState8[1];
3216
+
3217
+ var _React$useState9 = React.useState(0),
3218
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
3219
+ thumbnailTimeCode = _React$useState10[0],
3220
+ setThumbnailTimeCode = _React$useState10[1];
3221
+
3222
+ var _React$useState11 = React.useState(0),
3223
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
3224
+ thumbnailWidth = _React$useState12[0],
3225
+ setThumbnailWidth = _React$useState12[1];
3226
+
3211
3227
  var getInnerLeft = useCallback(function (e) {
3212
3228
  var left = e.clientX - e.currentTarget.offsetLeft - customOffset;
3213
3229
 
@@ -3223,16 +3239,46 @@ function useHoverScrub() {
3223
3239
  }, [customOffset]);
3224
3240
 
3225
3241
  var onMouseMove = function onMouseMove(e) {
3226
- if (srcList.length > 1) {
3227
- var innerLeft = getInnerLeft(e);
3228
- setScrubPosition(innerLeft - 1);
3229
- setThumbnailIndex(Math.floor(innerLeft / e.currentTarget.offsetWidth * srcList.length));
3242
+ var innerLeft = getInnerLeft(e);
3243
+ setScrubPosition(innerLeft - 1);
3244
+ setThumbnailWidth(e.currentTarget.offsetWidth);
3245
+ var pxToSec = e.currentTarget.offsetWidth / +durationSeconds;
3246
+ var pxAsTimeCode = innerLeft / pxToSec;
3247
+ setThumbnailTimeCode(pxAsTimeCode);
3248
+
3249
+ for (var index = 0; index < thumbnailTimeCodeArray.length; index += 1) {
3250
+ var timeCode = thumbnailTimeCodeArray[index];
3251
+ var nextTimeCode = thumbnailTimeCodeArray[index + 1] || thumbnailTimeCodeArray[thumbnailTimeCodeArray.length - 1];
3252
+
3253
+ if (timeCode <= pxAsTimeCode && nextTimeCode >= pxAsTimeCode) {
3254
+ setThumbnailIndex(index);
3255
+ }
3230
3256
  }
3231
3257
  };
3232
3258
 
3259
+ React.useEffect(function () {
3260
+ var timeCodes = [];
3261
+
3262
+ for (var index = 0; index < srcList.length; index += 1) {
3263
+ var uri = srcList[index];
3264
+
3265
+ if (uri && typeof uri === 'string') {
3266
+ try {
3267
+ var timeCodeFromURI = uri.split('version')[1].split('/')[1].split('?')[0];
3268
+ var timecodeText = formatTimeCodeText(timeCodeFromURI);
3269
+ timeCodes.push(timecodeText.toSeconds().toFixed(0));
3270
+ } catch (error) {
3271
+ return;
3272
+ }
3273
+ }
3274
+ }
3275
+
3276
+ setThumbnailTimeCodeArray(timeCodes);
3277
+ }, [srcList]);
3278
+
3233
3279
  var handleShowScrub = function handleShowScrub(value) {
3234
3280
  return function () {
3235
- if (srcList.length > 1) {
3281
+ if (durationSeconds > 0) {
3236
3282
  setShowScrub(value);
3237
3283
  }
3238
3284
  };
@@ -3240,6 +3286,8 @@ function useHoverScrub() {
3240
3286
 
3241
3287
  return {
3242
3288
  thumbnailIndex: thumbnailIndex,
3289
+ thumbnailTimeCode: thumbnailTimeCode,
3290
+ thumbnailWidth: thumbnailWidth,
3243
3291
  showScrub: showScrub,
3244
3292
  scrubPosition: scrubPosition,
3245
3293
  handleShowScrub: handleShowScrub,
@@ -3247,12 +3295,19 @@ function useHoverScrub() {
3247
3295
  };
3248
3296
  }
3249
3297
 
3250
- function useItemSearchAutocomplete(itemSearchDoc, queryParams, debounceTime) {
3251
- var suggestionSettings = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
3298
+ function useDocSearchAutocomplete(_ref) {
3299
+ var searchDoc = _ref.searchDoc,
3300
+ queryParams = _ref.queryParams,
3301
+ debounceTime = _ref.debounceTime,
3302
+ _ref$suggestionSettin = _ref.suggestionSettings,
3303
+ suggestionSettings = _ref$suggestionSettin === void 0 ? {
3252
3304
  maximumSuggestions: 10,
3253
3305
  accuracy: 1
3254
- };
3255
- var triggerLength = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
3306
+ } : _ref$suggestionSettin,
3307
+ _ref$triggerLength = _ref.triggerLength,
3308
+ triggerLength = _ref$triggerLength === void 0 ? 1 : _ref$triggerLength,
3309
+ _ref$apiCall = _ref.apiCall,
3310
+ apiCall = _ref$apiCall === void 0 ? item.searchItem : _ref$apiCall;
3256
3311
 
3257
3312
  var _React$useState = React.useState(''),
3258
3313
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -3261,7 +3316,7 @@ function useItemSearchAutocomplete(itemSearchDoc, queryParams, debounceTime) {
3261
3316
 
3262
3317
  var handleAutocompleteChange = React.useRef(debounce(setTextValue, debounceTime)).current;
3263
3318
 
3264
- var _useApi = useApi(item.searchItem),
3319
+ var _useApi = useApi(apiCall),
3265
3320
  _useApi$data = _useApi.data;
3266
3321
 
3267
3322
  _useApi$data = _useApi$data === void 0 ? {} : _useApi$data;
@@ -3269,14 +3324,14 @@ function useItemSearchAutocomplete(itemSearchDoc, queryParams, debounceTime) {
3269
3324
  autocomplete = _useApi$data$autocomp === void 0 ? [] : _useApi$data$autocomp,
3270
3325
  request = _useApi.request;
3271
3326
 
3272
- var _ref = autocomplete[0] || {},
3273
- _ref$suggestion = _ref.suggestion,
3274
- suggestion = _ref$suggestion === void 0 ? [] : _ref$suggestion;
3327
+ var _ref2 = autocomplete[0] || {},
3328
+ _ref2$suggestion = _ref2.suggestion,
3329
+ suggestion = _ref2$suggestion === void 0 ? [] : _ref2$suggestion;
3275
3330
 
3276
3331
  useDeepCompareEffect(function () {
3277
- if (itemSearchDoc && textValue && textValue.length >= triggerLength) {
3332
+ if (searchDoc && textValue && textValue.length >= triggerLength) {
3278
3333
  request({
3279
- body: _objectSpread2(_objectSpread2({}, itemSearchDoc), {}, {
3334
+ body: _objectSpread2(_objectSpread2({}, searchDoc), {}, {
3280
3335
  suggestion: suggestionSettings,
3281
3336
  autocomplete: [{
3282
3337
  text: textValue
@@ -3298,6 +3353,39 @@ function useItemSearchAutocomplete(itemSearchDoc, queryParams, debounceTime) {
3298
3353
  };
3299
3354
  }
3300
3355
 
3356
+ function useGetFieldMetadataDataset() {
3357
+ var _useApi = useApi(metadatafield.getMetadataFieldAllowedValues),
3358
+ request = _useApi.request,
3359
+ _useApi$data = _useApi.data;
3360
+
3361
+ _useApi$data = _useApi$data === void 0 ? {} : _useApi$data;
3362
+ var _useApi$data$value = _useApi$data.value,
3363
+ constraintValueListType = _useApi$data$value === void 0 ? [] : _useApi$data$value,
3364
+ isLoading = _useApi.isLoading;
3365
+
3366
+ var getMetadataDataset = function getMetadataDataset(datasetField, parentValue, parentField) {
3367
+ var metadataFieldValueConstraintListDocument = {
3368
+ constraint: parentValue ? [{
3369
+ field: parentField,
3370
+ value: parentValue
3371
+ }] : []
3372
+ };
3373
+
3374
+ if (datasetField) {
3375
+ request({
3376
+ fieldName: datasetField,
3377
+ metadataFieldValueConstraintListDocument: metadataFieldValueConstraintListDocument
3378
+ });
3379
+ }
3380
+ };
3381
+
3382
+ return {
3383
+ getMetadataDataset: getMetadataDataset,
3384
+ dataset: constraintValueListType,
3385
+ isLoading: isLoading
3386
+ };
3387
+ }
3388
+
3301
3389
  function MetadataType(_ref) {
3302
3390
  var itemType = _ref.itemType,
3303
3391
  collectionType = _ref.collectionType,
@@ -4909,5 +4997,5 @@ var handleMoveEntity = function handleMoveEntity(_ref3) {
4909
4997
  }
4910
4998
  };
4911
4999
 
4912
- export { Auth, AuthContext, AuthProvider, BinContext, BinProvider, ComposeProviders, DropArea, ErrorBoundary, GetCollectionContent as GetCollection, GetFieldGroup, GetItem, GetJobs, HasRole, ListEntityAccess, MetadataType, RolesProvider, SearchCollection, SearchItem, SearchItemCollection, SettingsProvider, VidispineApi, compose, handleAddEntity, handleMoveEntity, handleRemoveEntity, useAddMetadataFieldAttributes, useApi, useAuthContext, useAutocomplete, useCollectionAutoPlay, useEntityAccess, useGetCollection, useGetCollection$1 as useGetCollectionItem, useGetEntity, useGetItem, useGroup, useHoverScrub, useInterval, useItemSearchAutocomplete, useJobSearch, useListGroup, useListUser, useLocalStorage, useMouseDownPosition, useQueryInitialState, useRoles, useSavedSearch, useSearch, useSearchGroup, useSearchItem, useSearchUser, useSelected, useSettings, useSettingsActions, useTab, useThumbnailScrub, useUpdateEffect, useUpdateQueryState, useUploadFiles, useUser, withErrorBoundary };
5000
+ export { Auth, AuthContext, AuthProvider, BinContext, BinProvider, ComposeProviders, DropArea, ErrorBoundary, GetCollectionContent as GetCollection, GetFieldGroup, GetItem, GetJobs, HasRole, ListEntityAccess, MetadataType, RolesProvider, SearchCollection, SearchItem, SearchItemCollection, SettingsProvider, VidispineApi, compose, handleAddEntity, handleMoveEntity, handleRemoveEntity, useAddMetadataFieldAttributes, useApi, useAuthContext, useAutocomplete, useCollectionAutoPlay, useDocSearchAutocomplete, useEntityAccess, useGetCollection, useGetCollection$1 as useGetCollectionItem, useGetEntity, useGetFieldMetadataDataset, useGetItem, useGroup, useHoverScrub, useInterval, useJobSearch, useListGroup, useListUser, useLocalStorage, useMouseDownPosition, useQueryInitialState, useRoles, useSavedSearch, useSearch, useSearchGroup, useSearchItem, useSearchUser, useSelected, useSettings, useSettingsActions, useTab, useThumbnailScrub, useUpdateEffect, useUpdateQueryState, useUploadFiles, useUser, withErrorBoundary };
4913
5001
  //# sourceMappingURL=index.es.js.map