@orangelogic/orange-dam-content-browser-sdk 2.1.7 → 2.1.8

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/CBSDKdemo.html CHANGED
@@ -6,9 +6,9 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" />
8
8
 
9
- <script src="https://downloads.orangelogic.com/ContentBrowserSDK/v2.1.7/OrangeDAMContentBrowserSDK.min.js"></script>
9
+ <script src="https://downloads.orangelogic.com/ContentBrowserSDK/v2.1.8/OrangeDAMContentBrowserSDK.min.js"></script>
10
10
  <link rel="stylesheet" type="text/css"
11
- href="https://downloads.orangelogic.com/ContentBrowserSDK/v2.1.7/OrangeDAMContentBrowserSDK.min.css">
11
+ href="https://downloads.orangelogic.com/ContentBrowserSDK/v2.1.8/OrangeDAMContentBrowserSDK.min.css">
12
12
 
13
13
  <style>
14
14
  * {
@@ -3,9 +3,9 @@
3
3
 
4
4
  <head>
5
5
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&amp;display=swap">
6
- <script src="https://downloads.orangelogic.com/Cortex/AssetBrowser/v2.1.7/OrangeDamAssetBrowser.min.js"></script>
6
+ <script src="https://downloads.orangelogic.com/Cortex/AssetBrowser/v2.1.8/OrangeDamAssetBrowser.min.js"></script>
7
7
  <link rel="stylesheet" type="text/css"
8
- href="https://downloads.orangelogic.com/Cortex/AssetBrowser/v2.1.7/OrangeDamAssetBrowser.min.css">
8
+ href="https://downloads.orangelogic.com/Cortex/AssetBrowser/v2.1.8/OrangeDamAssetBrowser.min.css">
9
9
  <style>
10
10
  #orangelogic-GAB-browser-wrapper {
11
11
  min-width: 382px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orangelogic/orange-dam-content-browser-sdk",
3
- "version": "2.1.7",
3
+ "version": "2.1.8",
4
4
  "description": "OrangeDAM Content Browser SDK source code",
5
5
  "main": "index.js",
6
6
  "homepage": "/",
@@ -249,6 +249,7 @@ const FormatDialogProps = {
249
249
  tags: '',
250
250
  width: '400',
251
251
  allowATSLink: true,
252
+ recordId: 'Q0LDO000001895618',
252
253
  },
253
254
  onClose: () => {},
254
255
  onProxyConfirm: () => {},
@@ -23,6 +23,7 @@ const AssetCardWrapperProps = {
23
23
  allowATSLink: true,
24
24
  imageUrl: 'https://placehold.co/400x400/png',
25
25
  originalUrl: 'https://placehold.co/400x400/png',
26
+ recordId: 'Q0LDO000001895618',
26
27
  },
27
28
  {
28
29
  docType: MediaType.Video,
@@ -41,6 +42,7 @@ const AssetCardWrapperProps = {
41
42
  'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
42
43
  originalUrl:
43
44
  'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
45
+ recordId: 'Q0LDO000001895619',
44
46
  },
45
47
  ],
46
48
  isError: false,
@@ -23,6 +23,7 @@ describe('AssetPreview Component', () => {
23
23
  tags: '',
24
24
  width: '475',
25
25
  allowATSLink: true,
26
+ recordId: 'Q0LDO000001895618',
26
27
  }}
27
28
  imageLoaded={true}
28
29
  slot="image"
@@ -52,6 +53,7 @@ describe('AssetPreview Component', () => {
52
53
  tags: '',
53
54
  width: '475',
54
55
  allowATSLink: true,
56
+ recordId: 'Q0LDO000001895618',
55
57
  }}
56
58
  imageLoaded={true}
57
59
  slot="video"
@@ -81,6 +83,7 @@ describe('AssetPreview Component', () => {
81
83
  tags: '',
82
84
  width: '475',
83
85
  allowATSLink: true,
86
+ recordId: 'Q0LDO000001895618',
84
87
  }}
85
88
  imageLoaded={false}
86
89
  slot="image"
@@ -110,6 +113,7 @@ describe('AssetPreview Component', () => {
110
113
  tags: '',
111
114
  width: '475',
112
115
  allowATSLink: true,
116
+ recordId: 'Q0LDO000001895618',
113
117
  }}
114
118
  imageLoaded={true}
115
119
  slot="image"
package/src/index.tsx CHANGED
@@ -397,8 +397,8 @@ const ContentBrowser: OrangeDAMContentBrowser = {
397
397
  close: () => {
398
398
  window.OrangeDAMContentBrowser._onClose?.();
399
399
  },
400
- previewAsset: (identifier: string) => {
401
- store.dispatch(setSelectedAssetId(identifier));
400
+ previewAsset: (recordId: string) => {
401
+ store.dispatch(setSelectedAssetId(recordId));
402
402
  },
403
403
  };
404
404
 
@@ -1,6 +1,5 @@
1
1
  import _debounce from 'lodash-es/debounce';
2
2
  import _intersection from 'lodash-es/intersection';
3
- import _isEqual from 'lodash-es/isEqual';
4
3
  import {
5
4
  FC, useCallback, useContext, useEffect, useMemo, useReducer, useRef, useState,
6
5
  } from 'react';
@@ -232,7 +231,7 @@ const HomePage: FC<Props> = () => {
232
231
  } : skipToken);
233
232
 
234
233
  const selectedAsset = useMemo(() => {
235
- if (!selectedAssetData || !selectedAssetId || selectedAssetData.identifier !== selectedAssetId) {
234
+ if (!selectedAssetData || !selectedAssetId || selectedAssetData.recordId !== selectedAssetId) {
236
235
  return null;
237
236
  }
238
237
  return selectedAssetData;
@@ -304,15 +303,16 @@ const HomePage: FC<Props> = () => {
304
303
  const formatDialogTimeoutRef = useRef<number | null>(null);
305
304
 
306
305
  const mappedMediaTypes = useMemo(() => {
307
- const globalIntersection = availableDocTypes?.length ? _intersection(availableDocTypes, supportedDocTypes) : supportedDocTypes;
306
+ const globalIntersection = (availableDocTypes?.length ? _intersection(availableDocTypes, supportedDocTypes) : supportedDocTypes)?.map(item => item.toLowerCase());
308
307
  if (!globalIntersection || globalIntersection.length === 0) return state.mediaTypes;
309
308
  const intersection = state.mediaTypes.reduce((acc, mediaType) => {
310
309
  const [parent] = mediaType.split('>>');
311
310
 
312
- if (globalIntersection.includes(`${parent}*`) || globalIntersection.includes(parent)) {
311
+ if (globalIntersection.includes(`${parent.toLowerCase()}*`) || globalIntersection.includes(parent.toLowerCase())) {
313
312
  if (!mediaType.includes('>>')) {
314
313
  return acc.concat(`${parent}*`);
315
314
  }
315
+
316
316
  return acc.concat(mediaType);
317
317
  }
318
318
 
@@ -369,6 +369,8 @@ const HomePage: FC<Props> = () => {
369
369
  });
370
370
  }, [availableProxies, allowedExtensions]);
371
371
 
372
+ useEffect(() => console.log(mappedMediaTypes), [mappedMediaTypes]);
373
+
372
374
  const { data, isFetching, isError, refetch } = useGetAssetsQuery(isResized && sortOrders && mappedMediaTypes?.length && browserMounted ? {
373
375
  extensions: state.extensions,
374
376
  folderID: state.currentFolder.id,
@@ -538,7 +540,7 @@ const HomePage: FC<Props> = () => {
538
540
  const isMobile = state.containerSize.width <= MOBILE_THRESHOLD;
539
541
 
540
542
  const onItemSelect = (item: Asset) => {
541
- appDispatch(setSelectedAssetId(item.identifier));
543
+ appDispatch(setSelectedAssetId(item.recordId));
542
544
  };
543
545
 
544
546
  const onSearchChange = useCallback((value: string) => {
@@ -15,14 +15,22 @@ import { FOLDER_PAGE_SIZE } from '@/utils/constants';
15
15
 
16
16
  const NATURAL_SORT_ORDER_REFERENCE_ID = 'OR4ND000000063615';
17
17
 
18
- const resolveFolderExtraFilters = (searchText: string, allowedFolders?: string[]) => {
18
+ const resolveFolderExtraFilters = ({
19
+ searchText,
20
+ folder,
21
+ allowedFolders,
22
+ }: {
23
+ searchText: string;
24
+ folder?: Folder;
25
+ allowedFolders?: string[];
26
+ }) => {
19
27
  let baseQuery = 'MediaType:Story OR MediaType:Album';
20
28
  if (!isNullOrWhiteSpace(searchText)) {
21
29
  baseQuery = `(${baseQuery}) AND Story_Title:${searchText}`;
22
30
  }
23
31
  if (allowedFolders?.length) {
24
32
  const allowedFoldersQuery = allowedFolders
25
- .map(folder => `Path:${folder}*`)
33
+ .map((item) => `Path:${item}${folder?.id ? '/*' : ''}`)
26
34
  .join(' OR ');
27
35
  baseQuery = `(${baseQuery}) AND (${allowedFoldersQuery})`;
28
36
  }
@@ -32,7 +40,6 @@ const resolveFolderExtraFilters = (searchText: string, allowedFolders?: string[]
32
40
 
33
41
  const resolveAssetExtraFilters = ({
34
42
  extensions,
35
- searchText,
36
43
  statuses,
37
44
  visibilityClasses,
38
45
  }: {
@@ -41,14 +48,14 @@ const resolveAssetExtraFilters = ({
41
48
  statuses: string[];
42
49
  visibilityClasses: string[];
43
50
  }) => {
51
+ const filterResult: Record<string, string> = {};
52
+
44
53
  let statusQuery = '';
45
54
  if (statuses?.length) {
46
55
  statusQuery = statuses
47
56
  .map(status => `WorkflowStatus:${status}`)
48
57
  .join(' OR ');
49
- if (statuses.length > 1) {
50
- statusQuery = `(${statusQuery})`;
51
- }
58
+ filterResult.Status = statusQuery;
52
59
  }
53
60
 
54
61
  let extensionsQuery = '';
@@ -56,9 +63,7 @@ const resolveAssetExtraFilters = ({
56
63
  extensionsQuery = extensions
57
64
  .map(extension => `FileExtension:${extension}`)
58
65
  .join(' OR ');
59
- if (extensions.length > 1) {
60
- extensionsQuery = `(${extensionsQuery})`;
61
- }
66
+ filterResult.Extension = extensionsQuery;
62
67
  }
63
68
 
64
69
  let visibilityClassesQuery = '';
@@ -66,16 +71,10 @@ const resolveAssetExtraFilters = ({
66
71
  visibilityClassesQuery = visibilityClasses
67
72
  .map(visibilityClass => `Purpose:${visibilityClass}`)
68
73
  .join(' OR ');
69
- if (visibilityClasses.length > 1) {
70
- visibilityClassesQuery = `(${visibilityClassesQuery})`;
71
- }
74
+ filterResult.VisibilityClass = visibilityClassesQuery;
72
75
  }
73
76
 
74
- const searchTextQuery = isNullOrWhiteSpace(searchText) ? '' : `Text:${searchText}`;
75
-
76
- const filters = [statusQuery, extensionsQuery, visibilityClassesQuery, searchTextQuery].filter(filter => filter.length > 0);
77
-
78
- return filters.join(' AND ');
77
+ return filterResult;
79
78
  };
80
79
 
81
80
  const baseQueryWithRetry = retry(AppBaseQuery, {
@@ -106,7 +105,7 @@ export const searchApi = createApi({
106
105
  const params = [
107
106
  [
108
107
  'extraFilters',
109
- resolveFolderExtraFilters(searchText, allowedFolders),
108
+ resolveFolderExtraFilters({ searchText, folder, allowedFolders }),
110
109
  ],
111
110
  ['fields', FIELD_CORTEX_PATH],
112
111
  ['fields', FIELD_DOC_TYPE],
@@ -203,7 +202,7 @@ export const searchApi = createApi({
203
202
  const params = [
204
203
  [
205
204
  'extraFilters',
206
- resolveFolderExtraFilters(searchText),
205
+ resolveFolderExtraFilters({ searchText }),
207
206
  ],
208
207
  ['fields', FIELD_CORTEX_PATH],
209
208
  ['fields', FIELD_DOC_TYPE],
@@ -304,26 +303,31 @@ export const searchApi = createApi({
304
303
  ['fields', FIELD_SUBTYPE],
305
304
  ['fields', FIELD_IDENTIFIER],
306
305
  ['fields', FIELD_EXTENSION],
306
+ ['fields', FIELD_RECORD_ID],
307
307
  ['seeThru', isSeeThrough],
308
308
  ['start', start],
309
309
  ['limit', pageSize],
310
- ['FieldFilters', '{}'],
311
310
  ];
312
- const extraFilters = resolveAssetExtraFilters({
311
+ const fieldFilters = resolveAssetExtraFilters({
313
312
  extensions,
314
313
  searchText,
315
314
  statuses,
316
315
  visibilityClasses,
317
316
  });
318
- if (extraFilters) {
319
- params.push(['extraFilters', extraFilters]);
320
- }
317
+
318
+ Object.entries(fieldFilters).forEach(([key, value]) => {
319
+ params.push([`fieldFilters[${key}]`, value]);
320
+ }, '');
321
+
321
322
  if (sortOrder) {
322
323
  params.push(['orderBy', sortOrder]);
323
324
  }
324
325
  if (mappedMediaTypes.length) {
325
326
  params.push(...mappedMediaTypes);
326
327
  }
328
+ if (searchText) {
329
+ params.push(['extraFilters', `Text:${searchText}`]);
330
+ }
327
331
  if (useSession) {
328
332
  params.push(['UseSession', useSession]);
329
333
  }
@@ -361,6 +365,7 @@ export const searchApi = createApi({
361
365
  tags: GetValueByKeyCaseInsensitive(item.fields, FIELD_KEYWORDS) ?? '',
362
366
  width: GetValueByKeyCaseInsensitive(item.fields, FIELD_MAX_WIDTH) ?? '0',
363
367
  allowATSLink: GetValueByKeyCaseInsensitive(item.fields, FIELD_ALLOW_ATS_LINK) === 'True',
368
+ recordId: GetValueByKeyCaseInsensitive(item.fields, FIELD_RECORD_ID) ?? '',
364
369
  } as Asset;
365
370
  }) ?? [],
366
371
  totalCount: response.totalCount,
@@ -440,7 +445,7 @@ export const searchApi = createApi({
440
445
  useSession?: string;
441
446
  }) => {
442
447
  const params = [
443
- ['extraFilters', `SystemIdentifier:${id}`],
448
+ ['extraFilters', `RecordID:${id}`],
444
449
  ['fields', FIELD_TITLE_WITH_FALLBACK],
445
450
  ['fields', DEFAULT_VIEW_SIZE],
446
451
  ['fields', ORIGINAL_VIEW_SIZE],
@@ -24,7 +24,7 @@ export type Asset = {
24
24
  tags: string;
25
25
  width?: string;
26
26
  allowATSLink?: boolean;
27
- recordId?: string;
27
+ recordId: string;
28
28
  };
29
29
 
30
30
  export type ContentItem = {