box-ui-elements 24.0.0-beta.5 → 24.0.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/explorer.css +1 -1
  2. package/dist/explorer.js +1 -1
  3. package/dist/picker.js +1 -1
  4. package/es/elements/content-explorer/Content.js +3 -1
  5. package/es/elements/content-explorer/Content.js.map +1 -1
  6. package/es/elements/content-explorer/ContentExplorer.js +17 -6
  7. package/es/elements/content-explorer/ContentExplorer.js.map +1 -1
  8. package/es/elements/content-explorer/MetadataQueryAPIHelper.js +104 -7
  9. package/es/elements/content-explorer/MetadataQueryAPIHelper.js.map +1 -1
  10. package/es/elements/content-explorer/MetadataQueryBuilder.js +154 -0
  11. package/es/elements/content-explorer/MetadataQueryBuilder.js.map +1 -0
  12. package/es/elements/content-explorer/MetadataViewContainer.js +92 -46
  13. package/es/elements/content-explorer/MetadataViewContainer.js.map +1 -1
  14. package/es/elements/content-explorer/constants.js +4 -2
  15. package/es/elements/content-explorer/constants.js.map +1 -1
  16. package/es/elements/content-explorer/stories/MetadataView.stories.js +3 -25
  17. package/es/elements/content-explorer/stories/MetadataView.stories.js.map +1 -1
  18. package/es/elements/content-explorer/stories/tests/MetadataView-visual.stories.js +4 -16
  19. package/es/elements/content-explorer/stories/tests/MetadataView-visual.stories.js.map +1 -1
  20. package/es/elements/content-explorer/utils.js +12 -0
  21. package/es/elements/content-explorer/utils.js.map +1 -1
  22. package/es/src/elements/common/__mocks__/mockMetadata.d.ts +8 -24
  23. package/es/src/elements/content-explorer/Content.d.ts +4 -3
  24. package/es/src/elements/content-explorer/ContentExplorer.d.ts +8 -3
  25. package/es/src/elements/content-explorer/MetadataQueryAPIHelper.d.ts +11 -2
  26. package/es/src/elements/content-explorer/MetadataQueryBuilder.d.ts +27 -0
  27. package/es/src/elements/content-explorer/MetadataViewContainer.d.ts +8 -4
  28. package/es/src/elements/content-explorer/__tests__/MetadataQueryBuilder.test.d.ts +1 -0
  29. package/es/src/elements/content-explorer/constants.d.ts +4 -2
  30. package/es/src/elements/content-explorer/utils.d.ts +2 -0
  31. package/i18n/bn-IN.js +1 -1
  32. package/i18n/bn-IN.properties +8 -0
  33. package/i18n/da-DK.js +1 -1
  34. package/i18n/da-DK.properties +8 -0
  35. package/i18n/de-DE.js +1 -1
  36. package/i18n/de-DE.properties +8 -0
  37. package/i18n/en-AU.js +1 -1
  38. package/i18n/en-AU.properties +8 -0
  39. package/i18n/en-CA.js +1 -1
  40. package/i18n/en-CA.properties +8 -0
  41. package/i18n/en-GB.js +1 -1
  42. package/i18n/en-GB.properties +8 -0
  43. package/i18n/es-419.js +1 -1
  44. package/i18n/es-419.properties +8 -0
  45. package/i18n/es-ES.js +1 -1
  46. package/i18n/es-ES.properties +8 -0
  47. package/i18n/fi-FI.js +1 -1
  48. package/i18n/fi-FI.properties +8 -0
  49. package/i18n/fr-CA.js +1 -1
  50. package/i18n/fr-CA.properties +8 -0
  51. package/i18n/fr-FR.js +1 -1
  52. package/i18n/fr-FR.properties +8 -0
  53. package/i18n/hi-IN.js +1 -1
  54. package/i18n/hi-IN.properties +8 -0
  55. package/i18n/it-IT.js +1 -1
  56. package/i18n/it-IT.properties +8 -0
  57. package/i18n/ja-JP.js +1 -1
  58. package/i18n/ja-JP.properties +8 -0
  59. package/i18n/ko-KR.js +1 -1
  60. package/i18n/ko-KR.properties +8 -0
  61. package/i18n/nb-NO.js +1 -1
  62. package/i18n/nb-NO.properties +8 -0
  63. package/i18n/nl-NL.js +1 -1
  64. package/i18n/nl-NL.properties +8 -0
  65. package/i18n/pl-PL.js +1 -1
  66. package/i18n/pl-PL.properties +8 -0
  67. package/i18n/pt-BR.js +1 -1
  68. package/i18n/pt-BR.properties +8 -0
  69. package/i18n/ru-RU.js +1 -1
  70. package/i18n/ru-RU.properties +8 -0
  71. package/i18n/sv-SE.js +1 -1
  72. package/i18n/sv-SE.properties +8 -0
  73. package/i18n/tr-TR.js +1 -1
  74. package/i18n/tr-TR.properties +8 -0
  75. package/i18n/zh-CN.js +1 -1
  76. package/i18n/zh-CN.properties +8 -0
  77. package/i18n/zh-TW.js +1 -1
  78. package/i18n/zh-TW.properties +8 -0
  79. package/package.json +3 -3
  80. package/src/elements/common/__mocks__/mockMetadata.ts +7 -11
  81. package/src/elements/content-explorer/Content.tsx +8 -2
  82. package/src/elements/content-explorer/ContentExplorer.tsx +209 -194
  83. package/src/elements/content-explorer/MetadataQueryAPIHelper.ts +111 -5
  84. package/src/elements/content-explorer/MetadataQueryBuilder.ts +194 -0
  85. package/src/elements/content-explorer/MetadataViewContainer.tsx +112 -37
  86. package/src/elements/content-explorer/__tests__/Content.test.tsx +1 -0
  87. package/src/elements/content-explorer/__tests__/ContentExplorer.test.tsx +2 -5
  88. package/src/elements/content-explorer/__tests__/MetadataQueryAPIHelper.test.ts +427 -8
  89. package/src/elements/content-explorer/__tests__/MetadataQueryBuilder.test.ts +535 -0
  90. package/src/elements/content-explorer/__tests__/MetadataViewContainer.test.tsx +413 -9
  91. package/src/elements/content-explorer/constants.ts +39 -2
  92. package/src/elements/content-explorer/stories/MetadataView.stories.tsx +3 -21
  93. package/src/elements/content-explorer/stories/tests/MetadataView-visual.stories.tsx +2 -13
  94. package/src/elements/content-explorer/utils.ts +17 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ContentExplorer.js","names":["React","Component","classNames","cloneDeep","debounce","flow","getProp","noop","throttle","uniqueid","Notification","TooltipProvider","CreateFolderDialog","UploadDialog","Header","Pagination","SubHeader","makeResponsive","openUrlInsideIframe","Internationalize","ThemingStyles","API","MetadataQueryAPIHelperV2","MetadataQueryAPIHelper","MetadataSidePanel","Footer","PreviewDialog","ShareDialog","RenameDialog","DeleteConfirmationDialog","Content","isThumbnailAvailable","isFocusableElement","isInputElement","focus","FILE_SHARED_LINK_FIELDS_TO_FETCH","CONTENT_EXPLORER_FOLDER_FIELDS_TO_FETCH","LocalStore","withFeatureConsumer","withFeatureProvider","isFeatureEnabled","DEFAULT_HOSTNAME_UPLOAD","DEFAULT_HOSTNAME_API","DEFAULT_HOSTNAME_APP","DEFAULT_HOSTNAME_STATIC","DEFAULT_SEARCH_DEBOUNCE","SORT_ASC","FIELD_ITEM_NAME","FIELD_NAME","FIELD_PERMISSIONS_CAN_SHARE","FIELD_SHARED_LINK","DEFAULT_ROOT","VIEW_SEARCH","VIEW_FOLDER","VIEW_ERROR","VIEW_RECENTS","VIEW_METADATA","VIEW_MODE_LIST","TYPE_FILE","TYPE_WEBLINK","TYPE_FOLDER","CLIENT_NAME_CONTENT_EXPLORER","DEFAULT_PAGE_NUMBER","DEFAULT_PAGE_SIZE","DEFAULT_VIEW_FILES","DEFAULT_VIEW_RECENTS","DEFAULT_VIEW_METADATA","ERROR_CODE_ITEM_NAME_INVALID","ERROR_CODE_ITEM_NAME_TOO_LONG","TYPED_ID_FOLDER_PREFIX","VIEW_MODE_GRID","withBlueprintModernization","GRID_VIEW_MAX_COLUMNS","GRID_VIEW_MIN_COLUMNS","localStoreViewMode","ContentExplorer","constructor","props","_defineProperty","metadataQueryCollection","metadataTemplate","nextMarker","metadataQuery","features","currentCollection","currentPageNumber","markers","state","cloneMarkers","nextState","_objectSpread","percentLoaded","ancestor_folder_id","api","getFolderAPI","getFolderFields","name","setState","rootName","errorCallback","fields","items","operations","templateOldFields","templateNewFields","successCallback","length","metadataQueryAPIHelper","updateMetadataWithOperations","bulkUpdateMetadata","error","view","console","id","searchQuery","fetchFolder","showRecents","search","showMetadataQueryResults","Error","triggerNavigationEvent","rootFolderId","currentId","currentOffset","currentPageSize","limit","sortBy","sortDirection","folderId","hasFolderChanged","hasSearchQuery","trim","offset","firstLoad","rootElement","currentUnloadedCollection","getFolder","collection","fetchFolderSuccessCallback","forceFetch","item","type","isTouch","preview","selected","closeModals","updateCollection","query","getSearchAPI","searchSuccessCallback","trimmedQuery","debouncedSearch","cancel","undefined","permissions","canUpload","can_upload","isUploadModalOpen","access","canSetShareAccess","can_set_share_access","isLoading","getAPI","share","updatedItem","select","refreshCollection","entries","representation","updatedRepresentation","getFileAPI","generateRepresentation","updateItemInCollection","representations","slice","newItem","newCollection","map","callback","onSelect","selectedItem","focusedRow","findIndex","i","url","window","open","previewCallback","canPreview","can_preview","isPreviewModalOpen","downloadCallback","canDownload","onDownload","can_download","openUrl","getDownloadUrl","deleteCallback","isDeleteModalOpen","canDelete","onDelete","parent","parentId","can_delete","deleteItem","renameCallback","nameWithoutExt","extension","isRenameModalOpen","canRename","onRename","can_rename","errorCode","rename","code","throttledCreateFolderCallback","isCreateFolderModalOpen","canCreateNewFolder","onCreate","create","createFolderCallback","trailing","shareCallback","handleSharedLinkSuccess","getFile","getWebLinkAPI","getWeblink","sharedItem","isShareModalOpen","canShare","can_share","fetchSharedLinkInfo","event","target","key","toLowerCase","preventDefault","getViewMode","document","activeElement","closest","globalModifier","upload","createFolder","newOffset","store","getItem","isSmall","isMedium","isLarge","maxWidthColumns","metadataViewProps","tableProps","onSelectionChange","selectedItemIds","selectedKeys","ids","isSelectionEmpty","size","isMetadataSidePanelOpen","viewMode","setItem","forceUpdate","sliderValue","gridColumnCount","field","oldValue","newValue","updateMetadata","updateMetadataSuccessCallback","updatedItems","collectionItem","clonedItem","forEach","itemField","split","pop","value","Set","prevState","apiHost","initialPage","initialPageSize","language","requestInterceptor","responseInterceptor","sharedLink","sharedLinkPassword","token","uploadHost","clientName","clearCache","destroy","componentWillUnmount","componentDidMount","currentFolderId","defaultView","getElementById","appElement","firstElementChild","componentDidUpdate","prevFolderId","metadataQueryClone","marker","order_by","field_key","direction","fetchMetadataQueryResults","showMetadataQueryResultsSuccessCallback","_extends","finishNavigation","autoFocus","onNavigate","boxItem","recentsSuccessCallback","getRecentsAPI","recents","fileAPI","selectedId","newSelectedItem","itemThumbnails","Promise","all","getThumbnailUrl","index","isSelected","currentItem","thumbnailUrl","attemptThumbnailGeneration","render","appHost","bulkItemActions","className","contentPreviewProps","contentUploaderProps","itemActions","logoUrl","measureRef","messages","fieldsToShow","onPreview","onUpload","staticHost","staticPath","previewLibraryVersion","theme","title","totalCount","styleClassName","allowUpload","allowCreate","isDefaultViewMetadata","isMetadataViewV2Feature","isErrorView","maxGridColumnCount","getMaxNumberOfGridViewColumnsForWidth","hasNextMarker","hasPreviousMarker","getMetadataViewProps","createElement","Provider","Viewport","container","ref","selector","onKeyDown","tabIndex","onSearch","rootId","gridMaxColumns","gridMinColumns","maxGridColumnCountForWidth","onClearSelectedItemIds","clearSelectedItemIds","onGridViewSliderChange","onItemClick","onSortChange","sort","onMetadataSidePanelToggle","onViewModeChange","changeViewMode","portalElement","Math","min","onItemDelete","delete","onItemDownload","download","onItemPreview","onItemRename","onItemSelect","onItemShare","onMetadataUpdate","hasPrevMarker","onOffsetChange","paginate","pageSize","onMarkerBasedPageChange","markerBasedPaginate","onClose","closeMetadataSidePanel","onUpdate","updateMetadataV2","isOpen","uploadSuccessHandler","parentElement","onCancel","onShareAccessChange","changeShareAccess","cache","getCache","contentSidebarProps","ContentExplorerComponent"],"sources":["../../../src/elements/content-explorer/ContentExplorer.tsx"],"sourcesContent":["import 'regenerator-runtime/runtime';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport noop from 'lodash/noop';\nimport throttle from 'lodash/throttle';\nimport uniqueid from 'lodash/uniqueId';\nimport { Notification, TooltipProvider } from '@box/blueprint-web';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { Key, Selection } from 'react-aria-components';\nimport type { MetadataTemplateField } from '@box/metadata-editor';\n\nimport CreateFolderDialog from '../common/create-folder-dialog';\nimport UploadDialog from '../common/upload-dialog';\nimport Header from '../common/header';\nimport Pagination from '../common/pagination';\nimport SubHeader from '../common/sub-header/SubHeader';\nimport makeResponsive from '../common/makeResponsive';\nimport openUrlInsideIframe from '../../utils/iframe';\nimport Internationalize from '../common/Internationalize';\nimport ThemingStyles from '../common/theming';\nimport API from '../../api';\nimport MetadataQueryAPIHelperV2 from './MetadataQueryAPIHelper';\nimport MetadataQueryAPIHelper from '../../features/metadata-based-view/MetadataQueryAPIHelper';\nimport MetadataSidePanel from './MetadataSidePanel';\nimport Footer from './Footer';\nimport PreviewDialog from '../common/preview-dialog/PreviewDialog';\nimport ShareDialog from './ShareDialog';\nimport RenameDialog from './RenameDialog';\nimport DeleteConfirmationDialog from './DeleteConfirmationDialog';\nimport Content from './Content';\nimport { isThumbnailAvailable } from '../common/utils';\nimport { isFocusableElement, isInputElement, focus } from '../../utils/dom';\nimport { FILE_SHARED_LINK_FIELDS_TO_FETCH } from '../../utils/fields';\nimport CONTENT_EXPLORER_FOLDER_FIELDS_TO_FETCH from './constants';\nimport LocalStore from '../../utils/LocalStore';\nimport {\n withFeatureConsumer,\n withFeatureProvider,\n isFeatureEnabled,\n type FeatureConfig,\n} from '../common/feature-checking';\nimport {\n DEFAULT_HOSTNAME_UPLOAD,\n DEFAULT_HOSTNAME_API,\n DEFAULT_HOSTNAME_APP,\n DEFAULT_HOSTNAME_STATIC,\n DEFAULT_SEARCH_DEBOUNCE,\n SORT_ASC,\n FIELD_ITEM_NAME,\n FIELD_NAME,\n FIELD_PERMISSIONS_CAN_SHARE,\n FIELD_SHARED_LINK,\n DEFAULT_ROOT,\n VIEW_SEARCH,\n VIEW_FOLDER,\n VIEW_ERROR,\n VIEW_RECENTS,\n VIEW_METADATA,\n VIEW_MODE_LIST,\n TYPE_FILE,\n TYPE_WEBLINK,\n TYPE_FOLDER,\n CLIENT_NAME_CONTENT_EXPLORER,\n DEFAULT_PAGE_NUMBER,\n DEFAULT_PAGE_SIZE,\n DEFAULT_VIEW_FILES,\n DEFAULT_VIEW_RECENTS,\n DEFAULT_VIEW_METADATA,\n ERROR_CODE_ITEM_NAME_INVALID,\n ERROR_CODE_ITEM_NAME_TOO_LONG,\n TYPED_ID_FOLDER_PREFIX,\n VIEW_MODE_GRID,\n} from '../../constants';\nimport type { ViewMode } from '../common/flowTypes';\nimport type { ItemAction } from '../common/item';\nimport type { Theme } from '../common/theming';\nimport type { JSONPatchOperations } from '../../common/types/api';\nimport type { MetadataQuery, FieldsToShow } from '../../common/types/metadataQueries';\nimport type { MetadataFieldValue, MetadataTemplate } from '../../common/types/metadata';\nimport type {\n View,\n DefaultView,\n StringMap,\n SortBy,\n SortDirection,\n Token,\n Access,\n Collection,\n BoxItemPermission,\n BoxItem,\n} from '../../common/types/core';\nimport type { BulkItemAction } from '../common/sub-header/BulkItemActionMenu';\nimport type { ContentPreviewProps } from '../content-preview';\nimport type { ContentUploaderProps } from '../content-uploader';\nimport type { MetadataViewContainerProps } from './MetadataViewContainer';\n\nimport '../common/fonts.scss';\nimport '../common/base.scss';\nimport '../common/modal.scss';\nimport './ContentExplorer.scss';\nimport { withBlueprintModernization } from '../common/withBlueprintModernization';\n\nconst GRID_VIEW_MAX_COLUMNS = 7;\nconst GRID_VIEW_MIN_COLUMNS = 1;\n\nexport interface ContentExplorerProps {\n apiHost?: string;\n appHost?: string;\n autoFocus?: boolean;\n bulkItemActions?: BulkItemAction[];\n canCreateNewFolder?: boolean;\n canDelete?: boolean;\n canDownload?: boolean;\n canPreview?: boolean;\n canRename?: boolean;\n canSetShareAccess?: boolean;\n canShare?: boolean;\n canUpload?: boolean;\n className?: string;\n contentPreviewProps?: ContentPreviewProps;\n contentUploaderProps?: ContentUploaderProps;\n currentFolderId?: string;\n defaultView?: DefaultView;\n features?: FeatureConfig;\n fieldsToShow?: FieldsToShow;\n initialPage?: number;\n initialPageSize?: number;\n isLarge?: boolean;\n isMedium?: boolean;\n isSmall?: boolean;\n isTouch?: boolean;\n isVeryLarge?: boolean;\n itemActions?: ItemAction[];\n language?: string;\n logoUrl?: string;\n measureRef?: (ref: Element | null) => void;\n messages?: StringMap;\n metadataQuery?: MetadataQuery;\n metadataViewProps?: Omit<MetadataViewContainerProps, 'hasError' | 'currentCollection'>;\n onCreate?: (item: BoxItem) => void;\n onDelete?: (item: BoxItem) => void;\n onDownload?: (item: BoxItem) => void;\n onNavigate?: (item: BoxItem) => void;\n onPreview?: (data: unknown) => void;\n onRename?: (item: BoxItem) => void;\n onSelect?: (item: BoxItem) => void;\n onUpload?: (item: BoxItem) => void;\n previewLibraryVersion?: string;\n requestInterceptor?: (response: AxiosResponse) => void;\n responseInterceptor?: (config: AxiosRequestConfig) => void;\n rootFolderId?: string;\n sharedLink?: string;\n sharedLinkPassword?: string;\n sortBy?: SortBy | Key;\n sortDirection?: SortDirection;\n staticHost?: string;\n staticPath?: string;\n theme?: Theme;\n title?: string;\n token: Token;\n uploadHost?: string;\n}\n\ntype State = {\n currentCollection: Collection;\n currentOffset: number;\n currentPageNumber: number;\n currentPageSize: number;\n errorCode: string;\n focusedRow: number;\n gridColumnCount: number;\n isCreateFolderModalOpen: boolean;\n isDeleteModalOpen: boolean;\n isLoading: boolean;\n isMetadataSidePanelOpen: boolean;\n isPreviewModalOpen: boolean;\n isRenameModalOpen: boolean;\n isShareModalOpen: boolean;\n isUploadModalOpen: boolean;\n markers: Array<string | null | undefined>;\n metadataTemplate: MetadataTemplate;\n rootName: string;\n searchQuery: string;\n selected?: BoxItem;\n selectedItemIds: Selection;\n sortBy: SortBy | string;\n sortDirection: SortDirection;\n view: View;\n};\n\nconst localStoreViewMode = 'bce.defaultViewMode';\n\nclass ContentExplorer extends Component<ContentExplorerProps, State> {\n id: string;\n\n api: API;\n\n state: State;\n\n props: ContentExplorerProps;\n\n rootElement: HTMLElement;\n\n appElement: HTMLElement;\n\n globalModifier: boolean;\n\n firstLoad: boolean = true; // Keeps track of very 1st load\n\n store: LocalStore = new LocalStore();\n\n metadataQueryAPIHelper: MetadataQueryAPIHelper;\n\n static defaultProps = {\n rootFolderId: DEFAULT_ROOT,\n sortBy: FIELD_NAME,\n sortDirection: SORT_ASC,\n canDownload: true,\n canDelete: true,\n canUpload: true,\n canRename: true,\n canShare: true,\n canPreview: true,\n canSetShareAccess: true,\n canCreateNewFolder: true,\n autoFocus: false,\n apiHost: DEFAULT_HOSTNAME_API,\n appHost: DEFAULT_HOSTNAME_APP,\n staticHost: DEFAULT_HOSTNAME_STATIC,\n uploadHost: DEFAULT_HOSTNAME_UPLOAD,\n className: '',\n onDelete: noop,\n onDownload: noop,\n onPreview: noop,\n onRename: noop,\n onCreate: noop,\n onSelect: noop,\n onUpload: noop,\n onNavigate: noop,\n defaultView: DEFAULT_VIEW_FILES,\n initialPage: DEFAULT_PAGE_NUMBER,\n initialPageSize: DEFAULT_PAGE_SIZE,\n contentPreviewProps: {\n contentSidebarProps: {},\n },\n contentUploaderProps: {},\n metadataViewProps: {},\n };\n\n /**\n * [constructor]\n *\n * @private\n * @return {ContentExplorer}\n */\n constructor(props: ContentExplorerProps) {\n super(props);\n\n const {\n apiHost,\n initialPage,\n initialPageSize,\n language,\n requestInterceptor,\n responseInterceptor,\n rootFolderId,\n sharedLink,\n sharedLinkPassword,\n sortBy,\n sortDirection,\n token,\n uploadHost,\n }: ContentExplorerProps = props;\n\n this.api = new API({\n apiHost,\n clientName: CLIENT_NAME_CONTENT_EXPLORER,\n id: `${TYPED_ID_FOLDER_PREFIX}${rootFolderId}`,\n language,\n requestInterceptor,\n responseInterceptor,\n sharedLink,\n sharedLinkPassword,\n token,\n uploadHost,\n });\n\n this.id = uniqueid('bce_');\n\n this.state = {\n currentCollection: {},\n currentOffset: initialPageSize * (initialPage - 1),\n currentPageSize: initialPageSize,\n currentPageNumber: 0,\n errorCode: '',\n focusedRow: 0,\n gridColumnCount: 4,\n isCreateFolderModalOpen: false,\n isDeleteModalOpen: false,\n isLoading: false,\n isMetadataSidePanelOpen: false,\n isPreviewModalOpen: false,\n isRenameModalOpen: false,\n isShareModalOpen: false,\n isUploadModalOpen: false,\n markers: [],\n metadataTemplate: {},\n rootName: '',\n selectedItemIds: new Set(),\n searchQuery: '',\n sortBy,\n sortDirection,\n view: VIEW_FOLDER,\n };\n }\n\n /**\n * Destroys api instances\n *\n * @private\n * @return {void}\n */\n clearCache(): void {\n this.api.destroy(true);\n }\n\n /**\n * Cleanup\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentWillUnmount() {\n this.clearCache();\n }\n\n /**\n * Fetches the root folder on load\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentDidMount() {\n const { currentFolderId, defaultView }: ContentExplorerProps = this.props;\n this.rootElement = document.getElementById(this.id) as HTMLElement;\n this.appElement = this.rootElement.firstElementChild as HTMLElement;\n\n switch (defaultView) {\n case DEFAULT_VIEW_RECENTS:\n this.showRecents();\n break;\n case DEFAULT_VIEW_METADATA:\n this.showMetadataQueryResults();\n break;\n default:\n this.fetchFolder(currentFolderId);\n }\n }\n\n /**\n * Fetches the current folder if different\n * from what was already fetched before.\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentDidUpdate({ currentFolderId: prevFolderId }: ContentExplorerProps, prevState: State): void {\n const { currentFolderId }: ContentExplorerProps = this.props;\n const {\n currentCollection: { id },\n }: State = prevState;\n\n if (prevFolderId === currentFolderId) {\n return;\n }\n\n if (typeof currentFolderId === 'string' && id !== currentFolderId) {\n this.fetchFolder(currentFolderId);\n }\n }\n\n /**\n * Metadata queries success callback\n *\n * @private\n * @param {Object} metadataQueryCollection - Metadata query response collection\n * @return {void}\n */\n showMetadataQueryResultsSuccessCallback = (\n metadataQueryCollection: Collection,\n metadataTemplate: MetadataTemplate,\n ): void => {\n const { nextMarker } = metadataQueryCollection;\n const { metadataQuery, features } = this.props;\n const { currentCollection, currentPageNumber, markers }: State = this.state;\n const cloneMarkers = [...markers];\n if (nextMarker) {\n cloneMarkers[currentPageNumber + 1] = nextMarker;\n }\n\n const nextState = {\n currentCollection: {\n ...currentCollection,\n ...metadataQueryCollection,\n percentLoaded: 100,\n },\n markers: cloneMarkers,\n metadataTemplate,\n };\n\n // if v2, fetch folder name and add to state\n if (metadataQuery?.ancestor_folder_id && isFeatureEnabled(features, 'contentExplorer.metadataViewV2')) {\n this.api.getFolderAPI().getFolderFields(\n metadataQuery.ancestor_folder_id,\n ({ name }) => {\n this.setState({\n ...nextState,\n rootName: name || '',\n });\n },\n this.errorCallback,\n { fields: [FIELD_NAME] },\n );\n } else {\n // No folder name to fetch, update state immediately with just metadata\n this.setState(nextState);\n }\n };\n\n /**\n * Queries metadata_queries/execute API and fetches the result\n *\n * @private\n * @return {void}\n */\n showMetadataQueryResults() {\n const { features, metadataQuery = {} }: ContentExplorerProps = this.props;\n const { currentPageNumber, markers, sortBy, sortDirection }: State = this.state;\n const metadataQueryClone = cloneDeep(metadataQuery);\n\n if (currentPageNumber === 0) {\n // Preserve the marker as part of the original query\n markers[currentPageNumber] = metadataQueryClone.marker;\n }\n\n if (typeof markers[currentPageNumber] === 'string') {\n // Set marker to the query to get next set of results\n metadataQueryClone.marker = markers[currentPageNumber];\n }\n\n if (typeof metadataQueryClone.limit !== 'number') {\n // Set limit to the query for pagination support\n metadataQueryClone.limit = DEFAULT_PAGE_SIZE;\n }\n\n // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n currentCollection: this.currentUnloadedCollection(),\n view: VIEW_METADATA,\n });\n\n if (isFeatureEnabled(features, 'contentExplorer.metadataViewV2')) {\n metadataQueryClone.order_by = [\n {\n // Default to the prefixed name field for metadata view v2 only, while not touching the default sortBy for other views.\n field_key: sortBy === FIELD_NAME ? FIELD_ITEM_NAME : sortBy,\n direction: sortDirection,\n },\n ];\n\n this.metadataQueryAPIHelper = new MetadataQueryAPIHelperV2(this.api);\n } else {\n metadataQueryClone.order_by = [\n {\n field_key: sortBy,\n direction: sortDirection,\n },\n ];\n this.metadataQueryAPIHelper = new MetadataQueryAPIHelper(this.api);\n }\n\n this.metadataQueryAPIHelper.fetchMetadataQueryResults(\n metadataQueryClone,\n this.showMetadataQueryResultsSuccessCallback,\n this.errorCallback,\n );\n }\n\n /**\n * Update selected items' metadata instances based on original and new field values in the metadata instance form\n *\n * @private\n * @return {void}\n */\n updateMetadataV2 = async (\n items: BoxItem[],\n operations: JSONPatchOperations,\n templateOldFields: MetadataTemplateField[],\n templateNewFields: MetadataTemplateField[],\n successCallback: () => void,\n errorCallback: ErrorCallback,\n ) => {\n if (items.length === 1) {\n await this.metadataQueryAPIHelper.updateMetadataWithOperations(\n items[0],\n operations,\n successCallback,\n errorCallback,\n );\n } else {\n await this.metadataQueryAPIHelper.bulkUpdateMetadata(\n items,\n templateOldFields,\n templateNewFields,\n successCallback,\n errorCallback,\n );\n }\n };\n\n /**\n * Resets the collection so that the loading bar starts showing\n *\n * @private\n * @return {Collection}\n */\n currentUnloadedCollection(): Collection {\n const { currentCollection }: State = this.state;\n return Object.assign(currentCollection, {\n percentLoaded: 0,\n });\n }\n\n /**\n * Network error callback\n *\n * @private\n * @param {Error} error error object\n * @return {void}\n */\n errorCallback = (error: unknown) => {\n this.setState({\n view: VIEW_ERROR,\n });\n /* eslint-disable no-console */\n console.error(error);\n /* eslint-enable no-console */\n };\n\n /**\n * Focuses the grid and fires navigate event\n *\n * @private\n * @return {void}\n */\n finishNavigation() {\n const { autoFocus }: ContentExplorerProps = this.props;\n const {\n currentCollection: { percentLoaded },\n }: State = this.state;\n\n // If loading for the very first time, only allow focus if autoFocus is true\n if (this.firstLoad && !autoFocus) {\n this.firstLoad = false;\n return;\n }\n\n // Don't focus the grid until its loaded and user is not already on an interactable element\n if (percentLoaded === 100 && !isFocusableElement(document.activeElement)) {\n focus(this.rootElement, '.bce-item-row');\n this.setState({ focusedRow: 0 });\n }\n\n this.firstLoad = false;\n }\n\n /**\n * Refreshing the item collection depending upon the view.\n * Navigation event is prevented.\n *\n * @private\n * @return {void}\n */\n refreshCollection = () => {\n const {\n currentCollection: { id },\n view,\n searchQuery,\n }: State = this.state;\n if (view === VIEW_FOLDER && id) {\n this.fetchFolder(id, false);\n } else if (view === VIEW_RECENTS) {\n this.showRecents(false);\n } else if (view === VIEW_SEARCH && searchQuery) {\n this.search(searchQuery);\n } else if (view === VIEW_METADATA) {\n this.showMetadataQueryResults();\n } else {\n throw new Error('Cannot refresh incompatible view!');\n }\n };\n\n /**\n * Folder fetch success callback\n *\n * @private\n * @param {Object} collection - item collection object\n * @param {Boolean|void} triggerNavigationEvent - To trigger navigate event and focus grid\n * @return {void}\n */\n fetchFolderSuccessCallback(collection: Collection, triggerNavigationEvent: boolean): void {\n const { onNavigate, rootFolderId }: ContentExplorerProps = this.props;\n const { boxItem, id, name }: Collection = collection;\n const { selected }: State = this.state;\n const rootName = id === rootFolderId ? name : '';\n\n // Close any open modals\n this.closeModals();\n\n this.updateCollection(collection, selected, () => {\n if (triggerNavigationEvent) {\n // Fire folder navigation event\n this.setState({ rootName }, this.finishNavigation);\n if (boxItem) {\n onNavigate(cloneDeep(boxItem));\n }\n } else {\n this.setState({ rootName });\n }\n });\n }\n\n /**\n * Fetches a folder, defaults to fetching root folder\n *\n * @private\n * @param {string|void} [id] folder id\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @return {void}\n */\n fetchFolder = (id?: string, triggerNavigationEvent: boolean = true) => {\n const { rootFolderId }: ContentExplorerProps = this.props;\n const {\n currentCollection: { id: currentId },\n currentOffset,\n currentPageSize: limit,\n searchQuery = '',\n sortBy,\n sortDirection,\n }: State = this.state;\n const folderId: string = typeof id === 'string' ? id : rootFolderId;\n const hasFolderChanged = currentId && currentId !== folderId;\n const hasSearchQuery = !!searchQuery.trim().length;\n const offset = hasFolderChanged || hasSearchQuery ? 0 : currentOffset; // Reset offset on folder or mode change\n\n // If we are navigating around, aka not first load\n // then reset the focus to the root so that after\n // the collection loads the activeElement is not the\n // button that was clicked to fetch the folder\n if (!this.firstLoad) {\n this.rootElement.focus();\n }\n\n // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n view: VIEW_FOLDER,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: offset,\n });\n\n // Fetch the folder using folder API\n this.api.getFolderAPI().getFolder(\n folderId,\n limit,\n offset,\n sortBy,\n sortDirection,\n (collection: Collection) => {\n this.fetchFolderSuccessCallback(collection, triggerNavigationEvent);\n },\n this.errorCallback,\n { fields: CONTENT_EXPLORER_FOLDER_FIELDS_TO_FETCH, forceFetch: true },\n );\n };\n\n /**\n * Action performed when clicking on an item\n *\n * @private\n * @param {Object|string} item - the clicked box item\n * @return {void}\n */\n onItemClick = (item: BoxItem | string) => {\n // If the id was passed in, just use that\n if (typeof item === 'string') {\n this.fetchFolder(item);\n return;\n }\n\n const { id, type }: BoxItem = item;\n const { isTouch }: ContentExplorerProps = this.props;\n\n if (type === TYPE_FOLDER) {\n this.fetchFolder(id);\n return;\n }\n\n if (isTouch) {\n return;\n }\n\n this.preview(item);\n };\n\n /**\n * Search success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @return {void}\n */\n searchSuccessCallback = (collection: Collection) => {\n const { selected }: State = this.state;\n\n // Close any open modals\n this.closeModals();\n\n this.updateCollection(collection, selected);\n };\n\n /**\n * Debounced searching\n *\n * @private\n * @param {string} id folder id\n * @param {string} query search string\n * @return {void}\n */\n debouncedSearch = debounce((id: string, query: string) => {\n const { currentOffset, currentPageSize }: State = this.state;\n\n this.api\n .getSearchAPI()\n .search(id, query, currentPageSize, currentOffset, this.searchSuccessCallback, this.errorCallback, {\n fields: CONTENT_EXPLORER_FOLDER_FIELDS_TO_FETCH,\n forceFetch: true,\n });\n }, DEFAULT_SEARCH_DEBOUNCE);\n\n /**\n * Searches\n *\n * @private\n * @param {string} query search string\n * @return {void}\n */\n search = (query: string) => {\n const { rootFolderId }: ContentExplorerProps = this.props;\n const {\n currentCollection: { id },\n currentOffset,\n searchQuery,\n }: State = this.state;\n const folderId = typeof id === 'string' ? id : rootFolderId;\n const trimmedQuery: string = query.trim();\n\n if (!query) {\n // Cancel the debounce so we don't search on a previous query\n this.debouncedSearch.cancel();\n\n // Query was cleared out, load the prior folder\n // The prior folder is always the parent folder for search\n this.setState({ currentOffset: 0 }, () => {\n this.fetchFolder(folderId, false);\n });\n\n return;\n }\n\n if (!trimmedQuery) {\n // Query now only has bunch of spaces\n // do nothing and but update prior state\n this.setState({\n searchQuery: query,\n });\n return;\n }\n\n this.setState({\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: trimmedQuery === searchQuery ? currentOffset : 0,\n searchQuery: query,\n selected: undefined,\n view: VIEW_SEARCH,\n });\n\n this.debouncedSearch(folderId, query);\n };\n\n /**\n * Recents fetch success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @param {Boolean} triggerNavigationEvent - To trigger navigate event\n * @return {void}\n */\n recentsSuccessCallback(collection: Collection, triggerNavigationEvent: boolean) {\n if (triggerNavigationEvent) {\n this.updateCollection(collection, undefined, this.finishNavigation);\n } else {\n this.updateCollection(collection);\n }\n }\n\n /**\n * Shows recents.\n *\n * @private\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @return {void}\n */\n showRecents(triggerNavigationEvent: boolean = true): void {\n const { rootFolderId }: ContentExplorerProps = this.props;\n\n // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n view: VIEW_RECENTS,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: 0,\n });\n\n // Fetch the folder using folder API\n this.api.getRecentsAPI().recents(\n rootFolderId,\n (collection: Collection) => {\n this.recentsSuccessCallback(collection, triggerNavigationEvent);\n },\n this.errorCallback,\n { fields: CONTENT_EXPLORER_FOLDER_FIELDS_TO_FETCH, forceFetch: true },\n );\n }\n\n /**\n * Uploads\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n upload = () => {\n const {\n currentCollection: { id, permissions },\n }: State = this.state;\n const { canUpload }: ContentExplorerProps = this.props;\n if (!canUpload || !id || !permissions) {\n return;\n }\n\n const { can_upload }: BoxItemPermission = permissions;\n if (!can_upload) {\n return;\n }\n\n this.setState({\n isUploadModalOpen: true,\n });\n };\n\n /**\n * Upload success handler\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n uploadSuccessHandler = () => {\n const {\n currentCollection: { id },\n }: State = this.state;\n this.fetchFolder(id, false);\n };\n\n /**\n * Changes the share access of an item\n *\n * @private\n * @param {string} access share access\n * @return {void}\n */\n changeShareAccess = (access: Access) => {\n const { selected }: State = this.state;\n const { canSetShareAccess }: ContentExplorerProps = this.props;\n if (!selected || !canSetShareAccess) {\n return;\n }\n\n const { permissions, type }: BoxItem = selected;\n if (!permissions || !type) {\n return;\n }\n\n const { can_set_share_access }: BoxItemPermission = permissions;\n if (!can_set_share_access) {\n return;\n }\n\n this.setState({ isLoading: true });\n this.api.getAPI(type).share(selected, access, (updatedItem: BoxItem) => {\n this.setState({ isLoading: false });\n this.select(updatedItem);\n });\n };\n\n /**\n * Changes the sort by and sort direction\n *\n * @private\n * @param {string} sortBy - field to sort by\n * @param {string} sortDirection - sort direction\n * @return {void}\n */\n sort = (sortBy: SortBy | Key, sortDirection: SortDirection) => {\n const {\n currentCollection: { id },\n view,\n }: State = this.state;\n\n if (id || view === VIEW_METADATA) {\n this.setState({ sortBy, sortDirection }, this.refreshCollection);\n }\n };\n\n /**\n * Sets state with currentCollection updated to have `items.selected` properties\n * set according to the given selected param. Also updates the selected item in the\n * currentCollection. selectedItem will be set to the selected state\n * item if it is in currentCollection, otherwise it will be set to undefined.\n *\n * @private\n * @param {Collection} collection - collection that needs to be updated\n * @param {Object} [selectedItem] - The item that should be selected in that collection (if present)\n * @param {Function} [callback] - callback function that should be called after setState occurs\n * @return {void}\n */\n async updateCollection(\n collection: Collection,\n selectedItem?: BoxItem | null,\n callback: () => void = noop,\n ): Promise<void> {\n const newCollection: Collection = cloneDeep(collection);\n const { items = [] } = newCollection;\n\n const fileAPI = this.api.getFileAPI(false);\n const selectedId = selectedItem ? selectedItem.id : null;\n let newSelectedItem: BoxItem | null | undefined;\n\n const itemThumbnails = await Promise.all(\n items.map(item => {\n return item.type === TYPE_FILE ? fileAPI.getThumbnailUrl(item) : null;\n }),\n );\n\n newCollection.items = items.map((item, index) => {\n const isSelected = item.id === selectedId;\n const currentItem = isSelected ? selectedItem : item;\n const thumbnailUrl = itemThumbnails[index];\n\n const newItem = {\n ...currentItem,\n selected: isSelected,\n thumbnailUrl,\n } as const;\n\n if (item.type === TYPE_FILE && thumbnailUrl && !isThumbnailAvailable(newItem)) {\n this.attemptThumbnailGeneration(newItem);\n }\n\n // Only if selectedItem is in the current collection do we want to set selected state\n if (isSelected) {\n newSelectedItem = newItem;\n }\n\n return newItem;\n });\n this.setState({ currentCollection: newCollection, selected: newSelectedItem }, callback);\n }\n\n /**\n * Attempts to generate a thumbnail for the given item and assigns the\n * item its thumbnail url if successful\n *\n * @param {BoxItem} item - item to generate thumbnail for\n * @return {Promise<void>}\n */\n attemptThumbnailGeneration = async (item: BoxItem): Promise<void> => {\n const entries = getProp(item, 'representations.entries');\n const representation = getProp(entries, '[0]');\n\n if (representation) {\n const updatedRepresentation = await this.api.getFileAPI(false).generateRepresentation(representation);\n if (updatedRepresentation !== representation) {\n this.updateItemInCollection({\n ...cloneDeep(item),\n representations: {\n entries: [updatedRepresentation, ...entries.slice(1)],\n },\n });\n }\n }\n };\n\n /**\n * Update item in this.state.currentCollection\n *\n * @param {BoxItem} newItem - item with updated properties\n * @return {void}\n */\n updateItemInCollection = (newItem: BoxItem): void => {\n const { currentCollection } = this.state;\n const { items = [] } = currentCollection;\n const newCollection = { ...currentCollection } as const;\n\n newCollection.items = items.map(item => (item.id === newItem.id ? newItem : item));\n this.setState({ currentCollection: newCollection });\n };\n\n /**\n * Selects or unselects an item\n *\n * @private\n * @param {Object} item - file or folder object\n * @param {Function|void} [onSelect] - optional on select callback\n * @return {void}\n */\n select = (item: BoxItem, callback: (item: BoxItem) => void = noop): void => {\n const { selected, currentCollection }: State = this.state;\n const { items = [] } = currentCollection;\n const { onSelect }: ContentExplorerProps = this.props;\n\n if (item === selected) {\n callback(item);\n return;\n }\n\n const selectedItem: BoxItem = { ...item, selected: true };\n\n this.updateCollection(currentCollection, selectedItem, () => {\n onSelect(cloneDeep([selectedItem]));\n callback(selectedItem);\n });\n\n const focusedRow: number = items.findIndex((i: BoxItem) => i.id === item.id);\n\n this.setState({ focusedRow });\n };\n\n /**\n * Selects the clicked file and then previews it\n * or opens it, if it was a web link\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n preview = (item: BoxItem): void => {\n const { type, url }: BoxItem = item;\n if (type === TYPE_WEBLINK) {\n window.open(url);\n return;\n }\n\n this.select(item, this.previewCallback);\n };\n\n /**\n * Previews a file\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n previewCallback = (): void => {\n const { selected }: State = this.state;\n const { canPreview }: ContentExplorerProps = this.props;\n if (!selected || !canPreview) {\n return;\n }\n\n const { permissions } = selected;\n if (!permissions) {\n return;\n }\n\n const { can_preview }: BoxItemPermission = permissions;\n if (!can_preview) {\n return;\n }\n\n this.setState({ isPreviewModalOpen: true });\n };\n\n /**\n * Selects the clicked file and then downloads it\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n download = (item: BoxItem): void => {\n this.select(item, this.downloadCallback);\n };\n\n /**\n * Downloads a file\n *\n * @private\n * @return {void}\n */\n downloadCallback = (): void => {\n const { selected }: State = this.state;\n const { canDownload, onDownload }: ContentExplorerProps = this.props;\n if (!selected || !canDownload) {\n return;\n }\n\n const { id, permissions } = selected;\n if (!id || !permissions) {\n return;\n }\n\n const { can_download }: BoxItemPermission = permissions;\n if (!can_download) {\n return;\n }\n\n const openUrl = (url: string) => {\n openUrlInsideIframe(url);\n onDownload(cloneDeep([selected]));\n };\n\n const { type }: BoxItem = selected;\n if (type === TYPE_FILE) {\n this.api.getFileAPI().getDownloadUrl(id, selected, openUrl, noop);\n }\n };\n\n /**\n * Selects the clicked file and then deletes it\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n delete = (item: BoxItem): void => {\n this.select(item, this.deleteCallback);\n };\n\n /**\n * Deletes a file\n *\n * @private\n * @return {void}\n */\n deleteCallback = (): void => {\n const { selected, isDeleteModalOpen }: State = this.state;\n const { canDelete, onDelete }: ContentExplorerProps = this.props;\n if (!selected || !canDelete) {\n return;\n }\n\n const { id, permissions, parent, type }: BoxItem = selected;\n if (!id || !permissions || !parent || !type) {\n return;\n }\n\n const { id: parentId } = parent;\n const { can_delete }: BoxItemPermission = permissions;\n if (!can_delete || !parentId) {\n return;\n }\n\n if (!isDeleteModalOpen) {\n this.setState({ isDeleteModalOpen: true });\n return;\n }\n\n this.setState({ isLoading: true });\n this.api.getAPI(type).deleteItem(\n selected,\n () => {\n onDelete(cloneDeep([selected]));\n this.refreshCollection();\n },\n () => {\n this.refreshCollection();\n },\n );\n };\n\n /**\n * Selects the clicked file and then renames it\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n rename = (item: BoxItem): void => {\n this.select(item, this.renameCallback);\n };\n\n /**\n * Callback for renaming an item\n *\n * @private\n * @param {string} value new item name\n * @return {void}\n */\n renameCallback = (nameWithoutExt?: string, extension?: string): void => {\n const { selected, isRenameModalOpen }: State = this.state;\n const { canRename, onRename }: ContentExplorerProps = this.props;\n\n if (!selected || !canRename) {\n return;\n }\n\n const { id, permissions, type }: BoxItem = selected;\n if (!id || !permissions || !type) {\n return;\n }\n\n const { can_rename }: BoxItemPermission = permissions;\n\n if (!can_rename) {\n return;\n }\n\n if (!isRenameModalOpen || !nameWithoutExt) {\n this.setState({ isRenameModalOpen: true, errorCode: '' });\n return;\n }\n\n const name = `${nameWithoutExt}${extension}`;\n if (!nameWithoutExt.trim()) {\n this.setState({\n errorCode: ERROR_CODE_ITEM_NAME_INVALID,\n isLoading: false,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n this.api.getAPI(type).rename(\n selected,\n name.trim(),\n (updatedItem: BoxItem) => {\n this.setState({ isRenameModalOpen: false });\n this.refreshCollection();\n this.select(updatedItem);\n onRename(cloneDeep(selected));\n },\n ({ code }) => {\n this.setState({ errorCode: code, isLoading: false });\n },\n );\n };\n\n /**\n * Creates a new folder\n *\n * @private\n * @return {void}\n */\n createFolder = (): void => {\n this.throttledCreateFolderCallback();\n };\n\n /**\n * New folder callback\n *\n * @private\n * @param {string} name - folder name\n * @return {void}\n */\n createFolderCallback = (name?: string): void => {\n const { isCreateFolderModalOpen, currentCollection }: State = this.state;\n const { canCreateNewFolder, onCreate }: ContentExplorerProps = this.props;\n if (!canCreateNewFolder) {\n return;\n }\n\n const { id, permissions }: Collection = currentCollection;\n if (!id || !permissions) {\n return;\n }\n\n const { can_upload }: BoxItemPermission = permissions;\n if (!can_upload) {\n return;\n }\n\n if (!isCreateFolderModalOpen || !name) {\n this.setState({ isCreateFolderModalOpen: true, errorCode: '' });\n return;\n }\n\n if (!name.trim()) {\n this.setState({\n errorCode: ERROR_CODE_ITEM_NAME_INVALID,\n isLoading: false,\n });\n return;\n }\n\n if (name.length > 255) {\n this.setState({\n errorCode: ERROR_CODE_ITEM_NAME_TOO_LONG,\n isLoading: false,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n this.api.getFolderAPI().create(\n id,\n name.trim(),\n (item: BoxItem) => {\n this.refreshCollection();\n this.select(item);\n onCreate(cloneDeep(item));\n },\n ({ code }) => {\n this.setState({\n errorCode: code,\n isLoading: false,\n });\n },\n );\n };\n\n /**\n * Throttled version of createFolderCallback to prevent errors from rapid clicking.\n *\n * @private\n * @param {string} [name] - folder name\n * @return {void}\n */\n throttledCreateFolderCallback = throttle(this.createFolderCallback, 500, { trailing: false });\n\n /**\n * Selects the clicked file and then shares it\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n share = (item: BoxItem): void => {\n this.select(item, this.shareCallback);\n };\n\n /**\n * Fetch the shared link info\n * @param {BoxItem} item - The item (folder, file, weblink)\n * @returns {void}\n */\n fetchSharedLinkInfo = (item: BoxItem): void => {\n const { id, type }: BoxItem = item;\n\n switch (type) {\n case TYPE_FOLDER:\n this.api.getFolderAPI().getFolderFields(id, this.handleSharedLinkSuccess, noop, {\n fields: FILE_SHARED_LINK_FIELDS_TO_FETCH,\n });\n break;\n case TYPE_FILE:\n this.api\n .getFileAPI()\n .getFile(id, this.handleSharedLinkSuccess, noop, { fields: FILE_SHARED_LINK_FIELDS_TO_FETCH });\n break;\n case TYPE_WEBLINK:\n this.api\n .getWebLinkAPI()\n .getWeblink(id, this.handleSharedLinkSuccess, noop, { fields: FILE_SHARED_LINK_FIELDS_TO_FETCH });\n break;\n default:\n throw new Error('Unknown Type');\n }\n };\n\n /**\n * Handles the shared link info by either creating a share link using enterprise defaults if\n * it does not already exist, otherwise update the item in the state currentCollection.\n *\n * @param {Object} item file or folder\n * @returns {void}\n */\n handleSharedLinkSuccess = async (item: BoxItem) => {\n const { currentCollection } = this.state;\n let updatedItem = item;\n\n // if there is no shared link, create one with enterprise default access\n if (!item[FIELD_SHARED_LINK] && getProp(item, FIELD_PERMISSIONS_CAN_SHARE, false)) {\n await this.api.getAPI(item.type).share(item, undefined, (sharedItem: BoxItem) => {\n updatedItem = sharedItem;\n });\n }\n\n this.updateCollection(currentCollection, updatedItem, () => this.setState({ isShareModalOpen: true }));\n };\n\n /**\n * Callback for sharing an item\n *\n * @private\n * @return {void}\n */\n shareCallback = (): void => {\n const { selected }: State = this.state;\n const { canShare }: ContentExplorerProps = this.props;\n\n if (!selected || !canShare) {\n return;\n }\n\n const { permissions, type } = selected;\n if (!permissions || !type) {\n return;\n }\n\n const { can_share }: BoxItemPermission = permissions;\n if (!can_share) {\n return;\n }\n\n this.fetchSharedLinkInfo(selected);\n };\n\n /**\n * Closes the modal dialogs that may be open\n *\n * @private\n * @return {void}\n */\n closeModals = (): void => {\n const { focusedRow }: State = this.state;\n\n this.setState({\n isLoading: false,\n isDeleteModalOpen: false,\n isRenameModalOpen: false,\n isCreateFolderModalOpen: false,\n isShareModalOpen: false,\n isUploadModalOpen: false,\n isPreviewModalOpen: false,\n });\n\n const {\n selected,\n currentCollection: { items = [] },\n }: State = this.state;\n if (selected && items.length > 0) {\n focus(this.rootElement, `.bce-item-row-${focusedRow}`);\n }\n };\n\n /**\n * Keyboard events\n *\n * @private\n * @return {void}\n */\n onKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (isInputElement(event.target)) {\n return;\n }\n\n const { rootFolderId }: ContentExplorerProps = this.props;\n const key = event.key.toLowerCase();\n\n switch (key) {\n case '/':\n focus(this.rootElement, '.be-search input[type=\"search\"]', false);\n event.preventDefault();\n break;\n case 'arrowdown':\n if (this.getViewMode() === VIEW_MODE_GRID) {\n if (document.activeElement && !document.activeElement.closest('.be-ItemGrid')) {\n focus(this.rootElement, '.be-ItemGrid-item', false);\n event.preventDefault();\n }\n } else if (document.activeElement && !document.activeElement.closest('.be-ItemList')) {\n focus(this.rootElement, '.be-ItemList-item', false);\n this.setState({ focusedRow: 0 });\n event.preventDefault();\n }\n break;\n case 'g':\n break;\n case 'b':\n if (this.globalModifier) {\n focus(this.rootElement, '.be-breadcrumb button', false);\n event.preventDefault();\n }\n\n break;\n case 'f':\n if (this.globalModifier) {\n this.fetchFolder(rootFolderId);\n event.preventDefault();\n }\n\n break;\n case 'u':\n if (this.globalModifier) {\n this.upload();\n event.preventDefault();\n }\n\n break;\n case 'r':\n if (this.globalModifier) {\n this.showRecents();\n event.preventDefault();\n }\n\n break;\n case 'n':\n if (this.globalModifier) {\n this.createFolder();\n event.preventDefault();\n }\n\n break;\n default:\n this.globalModifier = false;\n return;\n }\n\n this.globalModifier = key === 'g';\n };\n\n /**\n * Handle pagination changes for offset based pagination\n *\n * @param {number} newOffset - the new page offset value\n */\n paginate = (newOffset: number) => {\n this.setState({ currentOffset: newOffset }, this.refreshCollection);\n };\n\n /**\n * Handle pagination changes for marker based pagination\n * @param {number} newOffset - the new page offset value\n */\n markerBasedPaginate = (newOffset: number) => {\n const { currentPageNumber } = this.state;\n this.setState(\n {\n currentPageNumber: currentPageNumber + newOffset, // newOffset could be negative\n },\n this.refreshCollection,\n );\n };\n\n /**\n * Get the current viewMode, checking local store if applicable\n *\n * @return {ViewMode}\n */\n getViewMode = (): ViewMode => this.store.getItem(localStoreViewMode) || VIEW_MODE_LIST;\n\n /**\n * Get the maximum number of grid view columns based on the current width of the\n * content explorer.\n *\n * @return {number}\n */\n getMaxNumberOfGridViewColumnsForWidth = (): number => {\n const { isSmall, isMedium, isLarge } = this.props;\n let maxWidthColumns = GRID_VIEW_MAX_COLUMNS;\n if (isSmall) {\n maxWidthColumns = 1;\n } else if (isMedium) {\n maxWidthColumns = 3;\n } else if (isLarge) {\n maxWidthColumns = 5;\n }\n return maxWidthColumns;\n };\n\n getMetadataViewProps = (): ContentExplorerProps['metadataViewProps'] => {\n const { metadataViewProps } = this.props;\n const { tableProps } = metadataViewProps ?? {};\n const { onSelectionChange } = tableProps ?? {};\n const { selectedItemIds } = this.state;\n\n return {\n ...metadataViewProps,\n tableProps: {\n ...tableProps,\n selectedKeys: selectedItemIds,\n onSelectionChange: (ids: Selection) => {\n onSelectionChange?.(ids);\n const isSelectionEmpty = ids !== 'all' && ids.size === 0;\n this.setState({\n selectedItemIds: ids,\n ...(isSelectionEmpty && { isMetadataSidePanelOpen: false }),\n });\n },\n },\n };\n };\n\n /**\n * Change the current view mode\n *\n * @param {ViewMode} viewMode - the new view mode\n * @return {void}\n */\n changeViewMode = (viewMode: ViewMode): void => {\n this.store.setItem(localStoreViewMode, viewMode);\n this.forceUpdate();\n };\n\n /**\n * Callback for when value of GridViewSlider changes\n *\n * @param {number} sliderValue - value of slider\n * @return {void}\n */\n onGridViewSliderChange = (sliderValue: number): void => {\n // need to do this calculation since lowest value of grid view slider\n // means highest number of columns\n const gridColumnCount = GRID_VIEW_MAX_COLUMNS - sliderValue + 1;\n this.setState({ gridColumnCount });\n };\n\n /**\n * Function to update metadata field value in metadata based view\n * @param {BoxItem} item - file item whose metadata is being changed\n * @param {string} field - metadata template field name\n * @param {MetadataFieldValue} oldValue - current value\n * @param {MetadataFieldValue} newVlaue - new value the field to be updated to\n */\n\n updateMetadata = (\n item: BoxItem,\n field: string,\n oldValue?: MetadataFieldValue | null,\n newValue?: MetadataFieldValue | null,\n ): void => {\n this.metadataQueryAPIHelper.updateMetadata(\n item,\n field,\n oldValue,\n newValue,\n () => {\n this.updateMetadataSuccessCallback(item, field, newValue);\n },\n this.errorCallback,\n );\n };\n\n updateMetadataSuccessCallback = (item: BoxItem, field: string, newValue?: MetadataFieldValue | null): void => {\n const { currentCollection }: State = this.state;\n const { items = [], nextMarker } = currentCollection;\n const updatedItems = items.map(collectionItem => {\n const clonedItem = cloneDeep(collectionItem);\n if (item.id === clonedItem.id) {\n const fields = getProp(clonedItem, 'metadata.enterprise.fields', []);\n fields.forEach(itemField => {\n if (itemField.key.split('.').pop() === field) {\n itemField.value = newValue; // set updated metadata value to correct item in currentCollection\n }\n });\n }\n return clonedItem;\n });\n\n this.setState({\n currentCollection: {\n items: updatedItems,\n nextMarker,\n percentLoaded: 100,\n },\n });\n };\n\n clearSelectedItemIds = () => {\n this.setState({\n selectedItemIds: new Set(),\n isMetadataSidePanelOpen: false,\n });\n };\n\n /**\n * Toggle metadata side panel visibility\n *\n * @private\n * @return {void}\n */\n onMetadataSidePanelToggle = () => {\n this.setState(prevState => ({\n isMetadataSidePanelOpen: !prevState.isMetadataSidePanelOpen,\n }));\n };\n\n /**\n * Close metadata side panel\n *\n * @private\n * @return {void}\n */\n closeMetadataSidePanel = () => {\n this.setState({ isMetadataSidePanelOpen: false });\n };\n\n /**\n * Renders the file picker\n *\n * @private\n * @inheritdoc\n * @return {Element}\n */\n render() {\n const {\n apiHost,\n appHost,\n bulkItemActions,\n canCreateNewFolder,\n canDelete,\n canDownload,\n canPreview,\n canRename,\n canSetShareAccess,\n canShare,\n canUpload,\n className,\n contentPreviewProps,\n contentUploaderProps,\n defaultView,\n features,\n isMedium,\n isSmall,\n isTouch,\n itemActions,\n language,\n logoUrl,\n measureRef,\n messages,\n fieldsToShow,\n onDownload,\n onPreview,\n onUpload,\n requestInterceptor,\n responseInterceptor,\n rootFolderId,\n sharedLink,\n sharedLinkPassword,\n staticHost,\n staticPath,\n previewLibraryVersion,\n theme,\n title,\n token,\n uploadHost,\n }: ContentExplorerProps = this.props;\n\n const {\n currentCollection,\n currentPageNumber,\n currentPageSize,\n errorCode,\n gridColumnCount,\n isCreateFolderModalOpen,\n isDeleteModalOpen,\n isLoading,\n isMetadataSidePanelOpen,\n isPreviewModalOpen,\n isRenameModalOpen,\n isShareModalOpen,\n isUploadModalOpen,\n markers,\n metadataTemplate,\n rootName,\n selected,\n selectedItemIds,\n view,\n }: State = this.state;\n\n const { id, offset, permissions, totalCount }: Collection = currentCollection;\n const { can_upload }: BoxItemPermission = permissions || {};\n const styleClassName = classNames('be bce', className);\n const allowUpload: boolean = canUpload && !!can_upload;\n const allowCreate: boolean = canCreateNewFolder && !!can_upload;\n const isDefaultViewMetadata: boolean = defaultView === DEFAULT_VIEW_METADATA;\n const isMetadataViewV2Feature = isFeatureEnabled(features, 'contentExplorer.metadataViewV2');\n const isErrorView: boolean = view === VIEW_ERROR;\n\n const viewMode = this.getViewMode();\n const maxGridColumnCount = this.getMaxNumberOfGridViewColumnsForWidth();\n\n const hasNextMarker: boolean = !!markers[currentPageNumber + 1];\n const hasPreviousMarker: boolean = currentPageNumber === 1 || !!markers[currentPageNumber - 1];\n\n const metadataViewProps = this.getMetadataViewProps();\n\n /* eslint-disable jsx-a11y/no-static-element-interactions */\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n return (\n <Internationalize language={language} messages={messages}>\n <Notification.Provider>\n <Notification.Viewport />\n <TooltipProvider container={this.rootElement}>\n <div id={this.id} className={styleClassName} ref={measureRef} data-testid=\"content-explorer\">\n <ThemingStyles selector={`#${this.id}`} theme={theme} />\n <div className=\"be-app-element\" onKeyDown={this.onKeyDown} tabIndex={0}>\n <div className=\"bce-ContentExplorer-main\">\n {!isDefaultViewMetadata && (\n <Header view={view} logoUrl={logoUrl} onSearch={this.search} />\n )}\n\n <SubHeader\n bulkItemActions={bulkItemActions}\n view={view}\n viewMode={viewMode}\n rootId={rootFolderId}\n isSmall={isSmall}\n rootName={rootName}\n currentCollection={currentCollection}\n canUpload={allowUpload}\n canCreateNewFolder={allowCreate}\n gridColumnCount={gridColumnCount}\n gridMaxColumns={GRID_VIEW_MAX_COLUMNS}\n gridMinColumns={GRID_VIEW_MIN_COLUMNS}\n maxGridColumnCountForWidth={maxGridColumnCount}\n onUpload={this.upload}\n onClearSelectedItemIds={this.clearSelectedItemIds}\n onCreate={this.createFolder}\n onGridViewSliderChange={this.onGridViewSliderChange}\n onItemClick={this.fetchFolder}\n onSortChange={this.sort}\n onMetadataSidePanelToggle={this.onMetadataSidePanelToggle}\n onViewModeChange={this.changeViewMode}\n portalElement={this.rootElement}\n selectedItemIds={selectedItemIds}\n title={title}\n />\n\n <Content\n canDelete={canDelete}\n canDownload={canDownload}\n canPreview={canPreview}\n canRename={canRename}\n canShare={canShare}\n currentCollection={currentCollection}\n features={features}\n gridColumnCount={Math.min(gridColumnCount, maxGridColumnCount)}\n isMedium={isMedium}\n isSmall={isSmall}\n isTouch={isTouch}\n itemActions={itemActions}\n fieldsToShow={fieldsToShow}\n metadataTemplate={metadataTemplate}\n metadataViewProps={metadataViewProps}\n onItemClick={this.onItemClick}\n onItemDelete={this.delete}\n onItemDownload={this.download}\n onItemPreview={this.preview}\n onItemRename={this.rename}\n onItemSelect={this.select}\n onItemShare={this.share}\n onMetadataUpdate={this.updateMetadata}\n onSortChange={this.sort}\n portalElement={this.rootElement}\n view={view}\n viewMode={viewMode}\n />\n\n {!isErrorView && (\n <Footer>\n <Pagination\n hasNextMarker={hasNextMarker}\n hasPrevMarker={hasPreviousMarker}\n isSmall={isSmall}\n offset={offset}\n onOffsetChange={this.paginate}\n pageSize={currentPageSize}\n totalCount={totalCount}\n onMarkerBasedPageChange={this.markerBasedPaginate}\n />\n </Footer>\n )}\n </div>\n {isDefaultViewMetadata && isMetadataViewV2Feature && isMetadataSidePanelOpen && (\n <MetadataSidePanel\n currentCollection={currentCollection}\n metadataTemplate={metadataTemplate}\n onClose={this.closeMetadataSidePanel}\n onUpdate={this.updateMetadataV2}\n refreshCollection={this.refreshCollection}\n selectedItemIds={selectedItemIds}\n />\n )}\n </div>\n {allowUpload && !!this.appElement ? (\n <UploadDialog\n isOpen={isUploadModalOpen}\n currentFolderId={id}\n token={token}\n sharedLink={sharedLink}\n sharedLinkPassword={sharedLinkPassword}\n apiHost={apiHost}\n uploadHost={uploadHost}\n onClose={this.uploadSuccessHandler}\n parentElement={this.rootElement}\n appElement={this.appElement}\n onUpload={onUpload}\n contentUploaderProps={contentUploaderProps}\n requestInterceptor={requestInterceptor}\n responseInterceptor={responseInterceptor}\n />\n ) : null}\n {allowCreate && !!this.appElement ? (\n <CreateFolderDialog\n isOpen={isCreateFolderModalOpen}\n onCreate={this.throttledCreateFolderCallback}\n onCancel={this.closeModals}\n isLoading={isLoading}\n errorCode={errorCode}\n parentElement={this.rootElement}\n appElement={this.appElement}\n />\n ) : null}\n {canDelete && selected && !!this.appElement ? (\n <DeleteConfirmationDialog\n isOpen={isDeleteModalOpen}\n onDelete={this.deleteCallback}\n onCancel={this.closeModals}\n item={selected}\n isLoading={isLoading}\n parentElement={this.rootElement}\n appElement={this.appElement}\n />\n ) : null}\n {canRename && selected && !!this.appElement ? (\n <RenameDialog\n isOpen={isRenameModalOpen}\n onRename={this.renameCallback}\n onCancel={this.closeModals}\n item={selected}\n isLoading={isLoading}\n errorCode={errorCode}\n parentElement={this.rootElement}\n appElement={this.appElement}\n />\n ) : null}\n {canShare && selected && !!this.appElement ? (\n <ShareDialog\n isOpen={isShareModalOpen}\n canSetShareAccess={canSetShareAccess}\n onShareAccessChange={this.changeShareAccess}\n onCancel={this.refreshCollection}\n item={selected}\n isLoading={isLoading}\n parentElement={this.rootElement}\n appElement={this.appElement}\n />\n ) : null}\n {canPreview && selected && !!this.appElement ? (\n <PreviewDialog\n isOpen={isPreviewModalOpen}\n isTouch={isTouch}\n onCancel={this.closeModals}\n item={selected}\n currentCollection={cloneDeep(currentCollection)}\n token={token}\n parentElement={this.rootElement}\n appElement={this.appElement}\n onPreview={onPreview}\n onDownload={onDownload}\n canDownload={canDownload}\n cache={this.api.getCache()}\n apiHost={apiHost}\n appHost={appHost}\n staticHost={staticHost}\n staticPath={staticPath}\n previewLibraryVersion={previewLibraryVersion}\n sharedLink={sharedLink}\n sharedLinkPassword={sharedLinkPassword}\n contentPreviewProps={contentPreviewProps}\n requestInterceptor={requestInterceptor}\n responseInterceptor={responseInterceptor}\n />\n ) : null}\n </div>\n </TooltipProvider>\n </Notification.Provider>\n </Internationalize>\n );\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n }\n}\n\nexport { ContentExplorer as ContentExplorerComponent };\nexport default flow([makeResponsive, withFeatureConsumer, withFeatureProvider, withBlueprintModernization])(\n ContentExplorer,\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ContentExplorer.js","names":["React","Component","classNames","cloneDeep","debounce","flow","getProp","noop","throttle","uniqueid","CreateFolderDialog","UploadDialog","Header","Pagination","SubHeader","makeResponsive","openUrlInsideIframe","Internationalize","ThemingStyles","API","MetadataQueryAPIHelperV2","MetadataQueryAPIHelper","MetadataSidePanel","Footer","PreviewDialog","ShareDialog","RenameDialog","DeleteConfirmationDialog","Content","isThumbnailAvailable","isFocusableElement","isInputElement","focus","FILE_SHARED_LINK_FIELDS_TO_FETCH","CONTENT_EXPLORER_FOLDER_FIELDS_TO_FETCH","LocalStore","withFeatureConsumer","withFeatureProvider","isFeatureEnabled","DEFAULT_HOSTNAME_UPLOAD","DEFAULT_HOSTNAME_API","DEFAULT_HOSTNAME_APP","DEFAULT_HOSTNAME_STATIC","DEFAULT_SEARCH_DEBOUNCE","SORT_ASC","FIELD_ITEM_NAME","FIELD_NAME","FIELD_PERMISSIONS_CAN_SHARE","FIELD_SHARED_LINK","DEFAULT_ROOT","VIEW_SEARCH","VIEW_FOLDER","VIEW_ERROR","VIEW_RECENTS","VIEW_METADATA","VIEW_MODE_LIST","TYPE_FILE","TYPE_WEBLINK","TYPE_FOLDER","CLIENT_NAME_CONTENT_EXPLORER","DEFAULT_PAGE_NUMBER","DEFAULT_PAGE_SIZE","DEFAULT_VIEW_FILES","DEFAULT_VIEW_RECENTS","DEFAULT_VIEW_METADATA","ERROR_CODE_ITEM_NAME_INVALID","ERROR_CODE_ITEM_NAME_TOO_LONG","TYPED_ID_FOLDER_PREFIX","VIEW_MODE_GRID","withBlueprintModernization","Providers","GRID_VIEW_MAX_COLUMNS","GRID_VIEW_MIN_COLUMNS","localStoreViewMode","ContentExplorer","constructor","props","_defineProperty","metadataQueryCollection","metadataTemplate","nextMarker","metadataQuery","features","currentCollection","currentPageNumber","markers","state","cloneMarkers","nextState","_objectSpread","percentLoaded","ancestor_folder_id","api","getFolderAPI","getFolderFields","name","setState","rootName","errorCallback","fields","items","operations","templateOldFields","templateNewFields","successCallback","length","metadataQueryAPIHelper","updateMetadataWithOperations","bulkUpdateMetadata","error","view","console","id","searchQuery","fetchFolder","showRecents","search","showMetadataQueryResults","Error","triggerNavigationEvent","rootFolderId","currentId","currentOffset","currentPageSize","limit","sortBy","sortDirection","folderId","hasFolderChanged","hasSearchQuery","trim","offset","firstLoad","rootElement","currentUnloadedCollection","getFolder","collection","fetchFolderSuccessCallback","forceFetch","item","type","isTouch","preview","selected","closeModals","updateCollection","query","getSearchAPI","searchSuccessCallback","trimmedQuery","debouncedSearch","cancel","undefined","permissions","canUpload","can_upload","isUploadModalOpen","access","canSetShareAccess","can_set_share_access","isLoading","getAPI","share","updatedItem","select","refreshCollection","entries","representation","updatedRepresentation","getFileAPI","generateRepresentation","updateItemInCollection","representations","slice","newItem","newCollection","map","callback","onSelect","selectedItem","focusedRow","findIndex","i","url","window","open","previewCallback","canPreview","can_preview","isPreviewModalOpen","downloadCallback","canDownload","onDownload","can_download","openUrl","getDownloadUrl","deleteCallback","isDeleteModalOpen","canDelete","onDelete","parent","parentId","can_delete","deleteItem","renameCallback","nameWithoutExt","extension","isRenameModalOpen","canRename","onRename","can_rename","errorCode","rename","code","throttledCreateFolderCallback","isCreateFolderModalOpen","canCreateNewFolder","onCreate","create","createFolderCallback","trailing","shareCallback","handleSharedLinkSuccess","getFile","getWebLinkAPI","getWeblink","sharedItem","isShareModalOpen","canShare","can_share","fetchSharedLinkInfo","event","target","key","toLowerCase","preventDefault","getViewMode","document","activeElement","closest","globalModifier","upload","createFolder","newOffset","store","getItem","isSmall","isMedium","isLarge","maxWidthColumns","metadataViewProps","tableProps","onSelectionChange","selectedItemIds","selectedKeys","ids","isSelectionEmpty","size","isMetadataSidePanelOpen","viewMode","setItem","forceUpdate","sliderValue","gridColumnCount","field","oldValue","newValue","updateMetadata","updateMetadataSuccessCallback","updatedItems","collectionItem","clonedItem","forEach","itemField","split","pop","value","Set","prevState","metadataFilters","apiHost","initialPage","initialPageSize","language","requestInterceptor","responseInterceptor","sharedLink","sharedLinkPassword","token","uploadHost","clientName","clearCache","destroy","componentWillUnmount","componentDidMount","currentFolderId","defaultView","getElementById","appElement","firstElementChild","componentDidUpdate","prevFolderId","metadataQueryClone","marker","order_by","field_key","direction","fetchMetadataQueryResults","showMetadataQueryResultsSuccessCallback","_extends","finishNavigation","autoFocus","onNavigate","boxItem","recentsSuccessCallback","getRecentsAPI","recents","fileAPI","selectedId","newSelectedItem","itemThumbnails","Promise","all","getThumbnailUrl","index","isSelected","currentItem","thumbnailUrl","attemptThumbnailGeneration","render","appHost","bulkItemActions","className","contentPreviewProps","contentUploaderProps","hasProviders","itemActions","logoUrl","measureRef","messages","fieldsToShow","onPreview","onUpload","staticHost","staticPath","previewLibraryVersion","theme","title","totalCount","styleClassName","allowUpload","allowCreate","isDefaultViewMetadata","isMetadataViewV2Feature","isErrorView","maxGridColumnCount","getMaxNumberOfGridViewColumnsForWidth","hasNextMarker","hasPreviousMarker","getMetadataViewProps","createElement","ref","selector","onKeyDown","tabIndex","onSearch","rootId","gridMaxColumns","gridMinColumns","maxGridColumnCountForWidth","onClearSelectedItemIds","clearSelectedItemIds","onGridViewSliderChange","onItemClick","onSortChange","sort","onMetadataSidePanelToggle","onViewModeChange","changeViewMode","portalElement","Math","min","onItemDelete","delete","onItemDownload","download","onItemPreview","onItemRename","onItemSelect","onItemShare","onMetadataFilter","filterMetadata","onMetadataUpdate","hasPrevMarker","onOffsetChange","paginate","pageSize","onMarkerBasedPageChange","markerBasedPaginate","onClose","closeMetadataSidePanel","onUpdate","updateMetadataV2","isOpen","uploadSuccessHandler","parentElement","onCancel","onShareAccessChange","changeShareAccess","cache","getCache","contentSidebarProps","ContentExplorerComponent"],"sources":["../../../src/elements/content-explorer/ContentExplorer.tsx"],"sourcesContent":["import 'regenerator-runtime/runtime';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport noop from 'lodash/noop';\nimport throttle from 'lodash/throttle';\nimport uniqueid from 'lodash/uniqueId';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { Key, Selection } from 'react-aria-components';\nimport type { MetadataTemplateField } from '@box/metadata-editor';\n\nimport CreateFolderDialog from '../common/create-folder-dialog';\nimport UploadDialog from '../common/upload-dialog';\nimport Header from '../common/header';\nimport Pagination from '../common/pagination';\nimport SubHeader from '../common/sub-header/SubHeader';\nimport makeResponsive from '../common/makeResponsive';\nimport openUrlInsideIframe from '../../utils/iframe';\nimport Internationalize from '../common/Internationalize';\nimport ThemingStyles from '../common/theming';\nimport API from '../../api';\nimport MetadataQueryAPIHelperV2 from './MetadataQueryAPIHelper';\nimport MetadataQueryAPIHelper from '../../features/metadata-based-view/MetadataQueryAPIHelper';\nimport MetadataSidePanel from './MetadataSidePanel';\nimport Footer from './Footer';\nimport PreviewDialog from '../common/preview-dialog/PreviewDialog';\nimport ShareDialog from './ShareDialog';\nimport RenameDialog from './RenameDialog';\nimport DeleteConfirmationDialog from './DeleteConfirmationDialog';\nimport Content from './Content';\nimport { isThumbnailAvailable } from '../common/utils';\nimport { isFocusableElement, isInputElement, focus } from '../../utils/dom';\nimport { FILE_SHARED_LINK_FIELDS_TO_FETCH } from '../../utils/fields';\nimport { CONTENT_EXPLORER_FOLDER_FIELDS_TO_FETCH } from './constants';\nimport LocalStore from '../../utils/LocalStore';\nimport {\n withFeatureConsumer,\n withFeatureProvider,\n isFeatureEnabled,\n type FeatureConfig,\n} from '../common/feature-checking';\nimport {\n DEFAULT_HOSTNAME_UPLOAD,\n DEFAULT_HOSTNAME_API,\n DEFAULT_HOSTNAME_APP,\n DEFAULT_HOSTNAME_STATIC,\n DEFAULT_SEARCH_DEBOUNCE,\n SORT_ASC,\n FIELD_ITEM_NAME,\n FIELD_NAME,\n FIELD_PERMISSIONS_CAN_SHARE,\n FIELD_SHARED_LINK,\n DEFAULT_ROOT,\n VIEW_SEARCH,\n VIEW_FOLDER,\n VIEW_ERROR,\n VIEW_RECENTS,\n VIEW_METADATA,\n VIEW_MODE_LIST,\n TYPE_FILE,\n TYPE_WEBLINK,\n TYPE_FOLDER,\n CLIENT_NAME_CONTENT_EXPLORER,\n DEFAULT_PAGE_NUMBER,\n DEFAULT_PAGE_SIZE,\n DEFAULT_VIEW_FILES,\n DEFAULT_VIEW_RECENTS,\n DEFAULT_VIEW_METADATA,\n ERROR_CODE_ITEM_NAME_INVALID,\n ERROR_CODE_ITEM_NAME_TOO_LONG,\n TYPED_ID_FOLDER_PREFIX,\n VIEW_MODE_GRID,\n} from '../../constants';\nimport type { ViewMode } from '../common/flowTypes';\nimport type { ItemAction } from '../common/item';\nimport type { Theme } from '../common/theming';\nimport type { JSONPatchOperations } from '../../common/types/api';\nimport type { MetadataQuery, FieldsToShow } from '../../common/types/metadataQueries';\nimport type { MetadataFieldValue, MetadataTemplate } from '../../common/types/metadata';\nimport type {\n View,\n DefaultView,\n StringMap,\n SortBy,\n SortDirection,\n Token,\n Access,\n Collection,\n BoxItemPermission,\n BoxItem,\n} from '../../common/types/core';\nimport type { BulkItemAction } from '../common/sub-header/BulkItemActionMenu';\nimport type { ContentPreviewProps } from '../content-preview';\nimport type { ContentUploaderProps } from '../content-uploader';\nimport type { ExternalFilterValues, MetadataViewContainerProps } from './MetadataViewContainer';\n\nimport '../common/fonts.scss';\nimport '../common/base.scss';\nimport '../common/modal.scss';\nimport './ContentExplorer.scss';\nimport { withBlueprintModernization } from '../common/withBlueprintModernization';\nimport Providers from '../common/Providers';\n\nconst GRID_VIEW_MAX_COLUMNS = 7;\nconst GRID_VIEW_MIN_COLUMNS = 1;\n\nexport interface ContentExplorerProps {\n apiHost?: string;\n appHost?: string;\n autoFocus?: boolean;\n bulkItemActions?: BulkItemAction[];\n canCreateNewFolder?: boolean;\n canDelete?: boolean;\n canDownload?: boolean;\n canPreview?: boolean;\n canRename?: boolean;\n canSetShareAccess?: boolean;\n canShare?: boolean;\n canUpload?: boolean;\n className?: string;\n contentPreviewProps?: ContentPreviewProps;\n contentUploaderProps?: ContentUploaderProps;\n currentFolderId?: string;\n defaultView?: DefaultView;\n features?: FeatureConfig;\n fieldsToShow?: FieldsToShow;\n hasProviders?: boolean;\n initialPage?: number;\n initialPageSize?: number;\n isLarge?: boolean;\n isMedium?: boolean;\n isSmall?: boolean;\n isTouch?: boolean;\n isVeryLarge?: boolean;\n itemActions?: ItemAction[];\n language?: string;\n logoUrl?: string;\n measureRef?: (ref: Element | null) => void;\n messages?: StringMap;\n metadataQuery?: MetadataQuery;\n metadataViewProps?: Omit<\n MetadataViewContainerProps,\n 'hasError' | 'currentCollection' | 'metadataTemplate' | 'onMetadataFilter'\n >;\n onCreate?: (item: BoxItem) => void;\n onDelete?: (item: BoxItem) => void;\n onDownload?: (item: BoxItem) => void;\n onNavigate?: (item: BoxItem) => void;\n onPreview?: (data: unknown) => void;\n onRename?: (item: BoxItem) => void;\n onSelect?: (item: BoxItem) => void;\n onUpload?: (item: BoxItem) => void;\n previewLibraryVersion?: string;\n requestInterceptor?: (response: AxiosResponse) => void;\n responseInterceptor?: (config: AxiosRequestConfig) => void;\n rootFolderId?: string;\n sharedLink?: string;\n sharedLinkPassword?: string;\n sortBy?: SortBy | Key;\n sortDirection?: SortDirection;\n staticHost?: string;\n staticPath?: string;\n theme?: Theme;\n title?: string;\n token: Token;\n uploadHost?: string;\n}\n\ntype State = {\n currentCollection: Collection;\n currentOffset: number;\n currentPageNumber: number;\n currentPageSize: number;\n errorCode: string;\n focusedRow: number;\n gridColumnCount: number;\n isCreateFolderModalOpen: boolean;\n isDeleteModalOpen: boolean;\n isLoading: boolean;\n isMetadataSidePanelOpen: boolean;\n isPreviewModalOpen: boolean;\n isRenameModalOpen: boolean;\n isShareModalOpen: boolean;\n isUploadModalOpen: boolean;\n markers: Array<string | null | undefined>;\n metadataTemplate: MetadataTemplate;\n metadataFilters: ExternalFilterValues;\n rootName: string;\n searchQuery: string;\n selected?: BoxItem;\n selectedItemIds: Selection;\n sortBy: SortBy | string;\n sortDirection: SortDirection;\n view: View;\n};\n\nconst localStoreViewMode = 'bce.defaultViewMode';\n\nclass ContentExplorer extends Component<ContentExplorerProps, State> {\n id: string;\n\n api: API;\n\n state: State;\n\n props: ContentExplorerProps;\n\n rootElement: HTMLElement;\n\n appElement: HTMLElement;\n\n globalModifier: boolean;\n\n firstLoad: boolean = true; // Keeps track of very 1st load\n\n store: LocalStore = new LocalStore();\n\n metadataQueryAPIHelper: MetadataQueryAPIHelper | MetadataQueryAPIHelperV2;\n\n static defaultProps = {\n rootFolderId: DEFAULT_ROOT,\n sortBy: FIELD_NAME,\n sortDirection: SORT_ASC,\n canDownload: true,\n canDelete: true,\n canUpload: true,\n canRename: true,\n canShare: true,\n canPreview: true,\n canSetShareAccess: true,\n canCreateNewFolder: true,\n autoFocus: false,\n apiHost: DEFAULT_HOSTNAME_API,\n appHost: DEFAULT_HOSTNAME_APP,\n staticHost: DEFAULT_HOSTNAME_STATIC,\n uploadHost: DEFAULT_HOSTNAME_UPLOAD,\n className: '',\n onDelete: noop,\n onDownload: noop,\n onPreview: noop,\n onRename: noop,\n onCreate: noop,\n onSelect: noop,\n onUpload: noop,\n onNavigate: noop,\n defaultView: DEFAULT_VIEW_FILES,\n initialPage: DEFAULT_PAGE_NUMBER,\n initialPageSize: DEFAULT_PAGE_SIZE,\n contentPreviewProps: {\n contentSidebarProps: {},\n },\n contentUploaderProps: {},\n metadataViewProps: {},\n };\n\n /**\n * [constructor]\n *\n * @private\n * @return {ContentExplorer}\n */\n constructor(props: ContentExplorerProps) {\n super(props);\n\n const {\n apiHost,\n initialPage,\n initialPageSize,\n language,\n requestInterceptor,\n responseInterceptor,\n rootFolderId,\n sharedLink,\n sharedLinkPassword,\n sortBy,\n sortDirection,\n token,\n uploadHost,\n }: ContentExplorerProps = props;\n\n this.api = new API({\n apiHost,\n clientName: CLIENT_NAME_CONTENT_EXPLORER,\n id: `${TYPED_ID_FOLDER_PREFIX}${rootFolderId}`,\n language,\n requestInterceptor,\n responseInterceptor,\n sharedLink,\n sharedLinkPassword,\n token,\n uploadHost,\n });\n\n this.id = uniqueid('bce_');\n\n this.state = {\n currentCollection: {},\n currentOffset: initialPageSize * (initialPage - 1),\n currentPageSize: initialPageSize,\n currentPageNumber: 0,\n errorCode: '',\n focusedRow: 0,\n gridColumnCount: 4,\n isCreateFolderModalOpen: false,\n isDeleteModalOpen: false,\n isLoading: false,\n isMetadataSidePanelOpen: false,\n isPreviewModalOpen: false,\n isRenameModalOpen: false,\n isShareModalOpen: false,\n isUploadModalOpen: false,\n markers: [],\n metadataFilters: {},\n metadataTemplate: {},\n rootName: '',\n selectedItemIds: new Set(),\n searchQuery: '',\n sortBy,\n sortDirection,\n view: VIEW_FOLDER,\n };\n }\n\n /**\n * Destroys api instances\n *\n * @private\n * @return {void}\n */\n clearCache(): void {\n this.api.destroy(true);\n }\n\n /**\n * Cleanup\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentWillUnmount() {\n this.clearCache();\n }\n\n /**\n * Fetches the root folder on load\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentDidMount() {\n const { currentFolderId, defaultView }: ContentExplorerProps = this.props;\n this.rootElement = document.getElementById(this.id) as HTMLElement;\n this.appElement = this.rootElement.firstElementChild as HTMLElement;\n\n switch (defaultView) {\n case DEFAULT_VIEW_RECENTS:\n this.showRecents();\n break;\n case DEFAULT_VIEW_METADATA:\n this.showMetadataQueryResults();\n break;\n default:\n this.fetchFolder(currentFolderId);\n }\n }\n\n /**\n * Fetches the current folder if different\n * from what was already fetched before.\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n componentDidUpdate({ currentFolderId: prevFolderId }: ContentExplorerProps, prevState: State): void {\n const { currentFolderId }: ContentExplorerProps = this.props;\n const {\n currentCollection: { id },\n }: State = prevState;\n\n if (prevFolderId === currentFolderId) {\n return;\n }\n\n if (typeof currentFolderId === 'string' && id !== currentFolderId) {\n this.fetchFolder(currentFolderId);\n }\n }\n\n /**\n * Metadata queries success callback\n *\n * @private\n * @param {Object} metadataQueryCollection - Metadata query response collection\n * @param {Object} metadataTemplate - Metadata template object\n * @return {void}\n */\n showMetadataQueryResultsSuccessCallback = (\n metadataQueryCollection: Collection,\n metadataTemplate: MetadataTemplate,\n ): void => {\n const { nextMarker } = metadataQueryCollection;\n const { metadataQuery, features } = this.props;\n const { currentCollection, currentPageNumber, markers }: State = this.state;\n const cloneMarkers = [...markers];\n if (nextMarker) {\n cloneMarkers[currentPageNumber + 1] = nextMarker;\n }\n\n const nextState = {\n currentCollection: {\n ...currentCollection,\n ...metadataQueryCollection,\n percentLoaded: 100,\n },\n markers: cloneMarkers,\n metadataTemplate,\n };\n\n // if v2, fetch folder name and add to state\n if (metadataQuery?.ancestor_folder_id && isFeatureEnabled(features, 'contentExplorer.metadataViewV2')) {\n this.api.getFolderAPI().getFolderFields(\n metadataQuery.ancestor_folder_id,\n ({ name }) => {\n this.setState({\n ...nextState,\n rootName: name || '',\n });\n },\n this.errorCallback,\n { fields: [FIELD_NAME] },\n );\n } else {\n // No folder name to fetch, update state immediately with just metadata\n this.setState(nextState);\n }\n };\n\n /**\n * Queries metadata_queries/execute API and fetches the result\n *\n * @private\n * @return {void}\n */\n showMetadataQueryResults() {\n const { features, metadataQuery = {} }: ContentExplorerProps = this.props;\n const { currentPageNumber, markers, metadataFilters, sortBy, sortDirection }: State = this.state;\n const metadataQueryClone = cloneDeep(metadataQuery);\n\n if (currentPageNumber === 0) {\n // Preserve the marker as part of the original query\n markers[currentPageNumber] = metadataQueryClone.marker;\n }\n\n if (typeof markers[currentPageNumber] === 'string') {\n // Set marker to the query to get next set of results\n metadataQueryClone.marker = markers[currentPageNumber];\n }\n\n if (typeof metadataQueryClone.limit !== 'number') {\n // Set limit to the query for pagination support\n metadataQueryClone.limit = DEFAULT_PAGE_SIZE;\n }\n\n // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n currentCollection: this.currentUnloadedCollection(),\n view: VIEW_METADATA,\n });\n\n if (isFeatureEnabled(features, 'contentExplorer.metadataViewV2')) {\n metadataQueryClone.order_by = [\n {\n // Default to the prefixed name field for metadata view v2 only, while not touching the default sortBy for other views.\n field_key: sortBy === FIELD_NAME ? FIELD_ITEM_NAME : sortBy,\n direction: sortDirection,\n },\n ];\n\n this.metadataQueryAPIHelper = new MetadataQueryAPIHelperV2(this.api);\n this.metadataQueryAPIHelper.fetchMetadataQueryResults(\n metadataQueryClone,\n this.showMetadataQueryResultsSuccessCallback,\n this.errorCallback,\n metadataFilters,\n );\n } else {\n metadataQueryClone.order_by = [\n {\n field_key: sortBy,\n direction: sortDirection,\n },\n ];\n this.metadataQueryAPIHelper = new MetadataQueryAPIHelper(this.api);\n this.metadataQueryAPIHelper.fetchMetadataQueryResults(\n metadataQueryClone,\n this.showMetadataQueryResultsSuccessCallback,\n this.errorCallback,\n );\n }\n }\n\n /**\n * Update selected items' metadata instances based on original and new field values in the metadata instance form\n *\n * @private\n * @return {void}\n */\n updateMetadataV2 = async (\n items: BoxItem[],\n operations: JSONPatchOperations,\n templateOldFields: MetadataTemplateField[],\n templateNewFields: MetadataTemplateField[],\n successCallback: () => void,\n errorCallback: ErrorCallback,\n ) => {\n if (items.length === 1) {\n await this.metadataQueryAPIHelper.updateMetadataWithOperations(\n items[0],\n operations,\n successCallback,\n errorCallback,\n );\n } else {\n await this.metadataQueryAPIHelper.bulkUpdateMetadata(\n items,\n templateOldFields,\n templateNewFields,\n successCallback,\n errorCallback,\n );\n }\n };\n\n /**\n * Resets the collection so that the loading bar starts showing\n *\n * @private\n * @return {Collection}\n */\n currentUnloadedCollection(): Collection {\n const { currentCollection }: State = this.state;\n return Object.assign(currentCollection, {\n percentLoaded: 0,\n });\n }\n\n /**\n * Network error callback\n *\n * @private\n * @param {Error} error error object\n * @return {void}\n */\n errorCallback = (error: unknown) => {\n this.setState({\n view: VIEW_ERROR,\n });\n /* eslint-disable no-console */\n console.error(error);\n /* eslint-enable no-console */\n };\n\n /**\n * Focuses the grid and fires navigate event\n *\n * @private\n * @return {void}\n */\n finishNavigation() {\n const { autoFocus }: ContentExplorerProps = this.props;\n const {\n currentCollection: { percentLoaded },\n }: State = this.state;\n\n // If loading for the very first time, only allow focus if autoFocus is true\n if (this.firstLoad && !autoFocus) {\n this.firstLoad = false;\n return;\n }\n\n // Don't focus the grid until its loaded and user is not already on an interactable element\n if (percentLoaded === 100 && !isFocusableElement(document.activeElement)) {\n focus(this.rootElement, '.bce-item-row');\n this.setState({ focusedRow: 0 });\n }\n\n this.firstLoad = false;\n }\n\n /**\n * Refreshing the item collection depending upon the view.\n * Navigation event is prevented.\n *\n * @private\n * @return {void}\n */\n refreshCollection = () => {\n const {\n currentCollection: { id },\n view,\n searchQuery,\n }: State = this.state;\n if (view === VIEW_FOLDER && id) {\n this.fetchFolder(id, false);\n } else if (view === VIEW_RECENTS) {\n this.showRecents(false);\n } else if (view === VIEW_SEARCH && searchQuery) {\n this.search(searchQuery);\n } else if (view === VIEW_METADATA) {\n this.showMetadataQueryResults();\n } else {\n throw new Error('Cannot refresh incompatible view!');\n }\n };\n\n /**\n * Folder fetch success callback\n *\n * @private\n * @param {Object} collection - item collection object\n * @param {Boolean|void} triggerNavigationEvent - To trigger navigate event and focus grid\n * @return {void}\n */\n fetchFolderSuccessCallback(collection: Collection, triggerNavigationEvent: boolean): void {\n const { onNavigate, rootFolderId }: ContentExplorerProps = this.props;\n const { boxItem, id, name }: Collection = collection;\n const { selected }: State = this.state;\n const rootName = id === rootFolderId ? name : '';\n\n // Close any open modals\n this.closeModals();\n\n this.updateCollection(collection, selected, () => {\n if (triggerNavigationEvent) {\n // Fire folder navigation event\n this.setState({ rootName }, this.finishNavigation);\n if (boxItem) {\n onNavigate(cloneDeep(boxItem));\n }\n } else {\n this.setState({ rootName });\n }\n });\n }\n\n /**\n * Fetches a folder, defaults to fetching root folder\n *\n * @private\n * @param {string|void} [id] folder id\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @return {void}\n */\n fetchFolder = (id?: string, triggerNavigationEvent: boolean = true) => {\n const { rootFolderId }: ContentExplorerProps = this.props;\n const {\n currentCollection: { id: currentId },\n currentOffset,\n currentPageSize: limit,\n searchQuery = '',\n sortBy,\n sortDirection,\n }: State = this.state;\n const folderId: string = typeof id === 'string' ? id : rootFolderId;\n const hasFolderChanged = currentId && currentId !== folderId;\n const hasSearchQuery = !!searchQuery.trim().length;\n const offset = hasFolderChanged || hasSearchQuery ? 0 : currentOffset; // Reset offset on folder or mode change\n\n // If we are navigating around, aka not first load\n // then reset the focus to the root so that after\n // the collection loads the activeElement is not the\n // button that was clicked to fetch the folder\n if (!this.firstLoad) {\n this.rootElement.focus();\n }\n\n // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n view: VIEW_FOLDER,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: offset,\n });\n\n // Fetch the folder using folder API\n this.api.getFolderAPI().getFolder(\n folderId,\n limit,\n offset,\n sortBy,\n sortDirection,\n (collection: Collection) => {\n this.fetchFolderSuccessCallback(collection, triggerNavigationEvent);\n },\n this.errorCallback,\n { fields: CONTENT_EXPLORER_FOLDER_FIELDS_TO_FETCH, forceFetch: true },\n );\n };\n\n /**\n * Action performed when clicking on an item\n *\n * @private\n * @param {Object|string} item - the clicked box item\n * @return {void}\n */\n onItemClick = (item: BoxItem | string) => {\n // If the id was passed in, just use that\n if (typeof item === 'string') {\n this.fetchFolder(item);\n return;\n }\n\n const { id, type }: BoxItem = item;\n const { isTouch }: ContentExplorerProps = this.props;\n\n if (type === TYPE_FOLDER) {\n this.fetchFolder(id);\n return;\n }\n\n if (isTouch) {\n return;\n }\n\n this.preview(item);\n };\n\n /**\n * Search success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @return {void}\n */\n searchSuccessCallback = (collection: Collection) => {\n const { selected }: State = this.state;\n\n // Close any open modals\n this.closeModals();\n\n this.updateCollection(collection, selected);\n };\n\n /**\n * Debounced searching\n *\n * @private\n * @param {string} id folder id\n * @param {string} query search string\n * @return {void}\n */\n debouncedSearch = debounce((id: string, query: string) => {\n const { currentOffset, currentPageSize }: State = this.state;\n\n this.api\n .getSearchAPI()\n .search(id, query, currentPageSize, currentOffset, this.searchSuccessCallback, this.errorCallback, {\n fields: CONTENT_EXPLORER_FOLDER_FIELDS_TO_FETCH,\n forceFetch: true,\n });\n }, DEFAULT_SEARCH_DEBOUNCE);\n\n /**\n * Searches\n *\n * @private\n * @param {string} query search string\n * @return {void}\n */\n search = (query: string) => {\n const { rootFolderId }: ContentExplorerProps = this.props;\n const {\n currentCollection: { id },\n currentOffset,\n searchQuery,\n }: State = this.state;\n const folderId = typeof id === 'string' ? id : rootFolderId;\n const trimmedQuery: string = query.trim();\n\n if (!query) {\n // Cancel the debounce so we don't search on a previous query\n this.debouncedSearch.cancel();\n\n // Query was cleared out, load the prior folder\n // The prior folder is always the parent folder for search\n this.setState({ currentOffset: 0 }, () => {\n this.fetchFolder(folderId, false);\n });\n\n return;\n }\n\n if (!trimmedQuery) {\n // Query now only has bunch of spaces\n // do nothing and but update prior state\n this.setState({\n searchQuery: query,\n });\n return;\n }\n\n this.setState({\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: trimmedQuery === searchQuery ? currentOffset : 0,\n searchQuery: query,\n selected: undefined,\n view: VIEW_SEARCH,\n });\n\n this.debouncedSearch(folderId, query);\n };\n\n /**\n * Recents fetch success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @param {Boolean} triggerNavigationEvent - To trigger navigate event\n * @return {void}\n */\n recentsSuccessCallback(collection: Collection, triggerNavigationEvent: boolean) {\n if (triggerNavigationEvent) {\n this.updateCollection(collection, undefined, this.finishNavigation);\n } else {\n this.updateCollection(collection);\n }\n }\n\n /**\n * Shows recents.\n *\n * @private\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @return {void}\n */\n showRecents(triggerNavigationEvent: boolean = true): void {\n const { rootFolderId }: ContentExplorerProps = this.props;\n\n // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n view: VIEW_RECENTS,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: 0,\n });\n\n // Fetch the folder using folder API\n this.api.getRecentsAPI().recents(\n rootFolderId,\n (collection: Collection) => {\n this.recentsSuccessCallback(collection, triggerNavigationEvent);\n },\n this.errorCallback,\n { fields: CONTENT_EXPLORER_FOLDER_FIELDS_TO_FETCH, forceFetch: true },\n );\n }\n\n /**\n * Uploads\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n upload = () => {\n const {\n currentCollection: { id, permissions },\n }: State = this.state;\n const { canUpload }: ContentExplorerProps = this.props;\n if (!canUpload || !id || !permissions) {\n return;\n }\n\n const { can_upload }: BoxItemPermission = permissions;\n if (!can_upload) {\n return;\n }\n\n this.setState({\n isUploadModalOpen: true,\n });\n };\n\n /**\n * Upload success handler\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n uploadSuccessHandler = () => {\n const {\n currentCollection: { id },\n }: State = this.state;\n this.fetchFolder(id, false);\n };\n\n /**\n * Changes the share access of an item\n *\n * @private\n * @param {string} access share access\n * @return {void}\n */\n changeShareAccess = (access: Access) => {\n const { selected }: State = this.state;\n const { canSetShareAccess }: ContentExplorerProps = this.props;\n if (!selected || !canSetShareAccess) {\n return;\n }\n\n const { permissions, type }: BoxItem = selected;\n if (!permissions || !type) {\n return;\n }\n\n const { can_set_share_access }: BoxItemPermission = permissions;\n if (!can_set_share_access) {\n return;\n }\n\n this.setState({ isLoading: true });\n this.api.getAPI(type).share(selected, access, (updatedItem: BoxItem) => {\n this.setState({ isLoading: false });\n this.select(updatedItem);\n });\n };\n\n /**\n * Changes the sort by and sort direction\n *\n * @private\n * @param {string} sortBy - field to sort by\n * @param {string} sortDirection - sort direction\n * @return {void}\n */\n sort = (sortBy: SortBy | Key, sortDirection: SortDirection) => {\n const {\n currentCollection: { id },\n view,\n }: State = this.state;\n\n if (id || view === VIEW_METADATA) {\n this.setState({ sortBy, sortDirection }, this.refreshCollection);\n }\n };\n\n /**\n * Sets state with currentCollection updated to have `items.selected` properties\n * set according to the given selected param. Also updates the selected item in the\n * currentCollection. selectedItem will be set to the selected state\n * item if it is in currentCollection, otherwise it will be set to undefined.\n *\n * @private\n * @param {Collection} collection - collection that needs to be updated\n * @param {Object} [selectedItem] - The item that should be selected in that collection (if present)\n * @param {Function} [callback] - callback function that should be called after setState occurs\n * @return {void}\n */\n async updateCollection(\n collection: Collection,\n selectedItem?: BoxItem | null,\n callback: () => void = noop,\n ): Promise<void> {\n const newCollection: Collection = cloneDeep(collection);\n const { items = [] } = newCollection;\n\n const fileAPI = this.api.getFileAPI(false);\n const selectedId = selectedItem ? selectedItem.id : null;\n let newSelectedItem: BoxItem | null | undefined;\n\n const itemThumbnails = await Promise.all(\n items.map(item => {\n return item.type === TYPE_FILE ? fileAPI.getThumbnailUrl(item) : null;\n }),\n );\n\n newCollection.items = items.map((item, index) => {\n const isSelected = item.id === selectedId;\n const currentItem = isSelected ? selectedItem : item;\n const thumbnailUrl = itemThumbnails[index];\n\n const newItem = {\n ...currentItem,\n selected: isSelected,\n thumbnailUrl,\n } as const;\n\n if (item.type === TYPE_FILE && thumbnailUrl && !isThumbnailAvailable(newItem)) {\n this.attemptThumbnailGeneration(newItem);\n }\n\n // Only if selectedItem is in the current collection do we want to set selected state\n if (isSelected) {\n newSelectedItem = newItem;\n }\n\n return newItem;\n });\n this.setState({ currentCollection: newCollection, selected: newSelectedItem }, callback);\n }\n\n /**\n * Attempts to generate a thumbnail for the given item and assigns the\n * item its thumbnail url if successful\n *\n * @param {BoxItem} item - item to generate thumbnail for\n * @return {Promise<void>}\n */\n attemptThumbnailGeneration = async (item: BoxItem): Promise<void> => {\n const entries = getProp(item, 'representations.entries');\n const representation = getProp(entries, '[0]');\n\n if (representation) {\n const updatedRepresentation = await this.api.getFileAPI(false).generateRepresentation(representation);\n if (updatedRepresentation !== representation) {\n this.updateItemInCollection({\n ...cloneDeep(item),\n representations: {\n entries: [updatedRepresentation, ...entries.slice(1)],\n },\n });\n }\n }\n };\n\n /**\n * Update item in this.state.currentCollection\n *\n * @param {BoxItem} newItem - item with updated properties\n * @return {void}\n */\n updateItemInCollection = (newItem: BoxItem): void => {\n const { currentCollection } = this.state;\n const { items = [] } = currentCollection;\n const newCollection = { ...currentCollection } as const;\n\n newCollection.items = items.map(item => (item.id === newItem.id ? newItem : item));\n this.setState({ currentCollection: newCollection });\n };\n\n /**\n * Selects or unselects an item\n *\n * @private\n * @param {Object} item - file or folder object\n * @param {Function|void} [onSelect] - optional on select callback\n * @return {void}\n */\n select = (item: BoxItem, callback: (item: BoxItem) => void = noop): void => {\n const { selected, currentCollection }: State = this.state;\n const { items = [] } = currentCollection;\n const { onSelect }: ContentExplorerProps = this.props;\n\n if (item === selected) {\n callback(item);\n return;\n }\n\n const selectedItem: BoxItem = { ...item, selected: true };\n\n this.updateCollection(currentCollection, selectedItem, () => {\n onSelect(cloneDeep([selectedItem]));\n callback(selectedItem);\n });\n\n const focusedRow: number = items.findIndex((i: BoxItem) => i.id === item.id);\n\n this.setState({ focusedRow });\n };\n\n /**\n * Selects the clicked file and then previews it\n * or opens it, if it was a web link\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n preview = (item: BoxItem): void => {\n const { type, url }: BoxItem = item;\n if (type === TYPE_WEBLINK) {\n window.open(url);\n return;\n }\n\n this.select(item, this.previewCallback);\n };\n\n /**\n * Previews a file\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n previewCallback = (): void => {\n const { selected }: State = this.state;\n const { canPreview }: ContentExplorerProps = this.props;\n if (!selected || !canPreview) {\n return;\n }\n\n const { permissions } = selected;\n if (!permissions) {\n return;\n }\n\n const { can_preview }: BoxItemPermission = permissions;\n if (!can_preview) {\n return;\n }\n\n this.setState({ isPreviewModalOpen: true });\n };\n\n /**\n * Selects the clicked file and then downloads it\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n download = (item: BoxItem): void => {\n this.select(item, this.downloadCallback);\n };\n\n /**\n * Downloads a file\n *\n * @private\n * @return {void}\n */\n downloadCallback = (): void => {\n const { selected }: State = this.state;\n const { canDownload, onDownload }: ContentExplorerProps = this.props;\n if (!selected || !canDownload) {\n return;\n }\n\n const { id, permissions } = selected;\n if (!id || !permissions) {\n return;\n }\n\n const { can_download }: BoxItemPermission = permissions;\n if (!can_download) {\n return;\n }\n\n const openUrl = (url: string) => {\n openUrlInsideIframe(url);\n onDownload(cloneDeep([selected]));\n };\n\n const { type }: BoxItem = selected;\n if (type === TYPE_FILE) {\n this.api.getFileAPI().getDownloadUrl(id, selected, openUrl, noop);\n }\n };\n\n /**\n * Selects the clicked file and then deletes it\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n delete = (item: BoxItem): void => {\n this.select(item, this.deleteCallback);\n };\n\n /**\n * Deletes a file\n *\n * @private\n * @return {void}\n */\n deleteCallback = (): void => {\n const { selected, isDeleteModalOpen }: State = this.state;\n const { canDelete, onDelete }: ContentExplorerProps = this.props;\n if (!selected || !canDelete) {\n return;\n }\n\n const { id, permissions, parent, type }: BoxItem = selected;\n if (!id || !permissions || !parent || !type) {\n return;\n }\n\n const { id: parentId } = parent;\n const { can_delete }: BoxItemPermission = permissions;\n if (!can_delete || !parentId) {\n return;\n }\n\n if (!isDeleteModalOpen) {\n this.setState({ isDeleteModalOpen: true });\n return;\n }\n\n this.setState({ isLoading: true });\n this.api.getAPI(type).deleteItem(\n selected,\n () => {\n onDelete(cloneDeep([selected]));\n this.refreshCollection();\n },\n () => {\n this.refreshCollection();\n },\n );\n };\n\n /**\n * Selects the clicked file and then renames it\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n rename = (item: BoxItem): void => {\n this.select(item, this.renameCallback);\n };\n\n /**\n * Callback for renaming an item\n *\n * @private\n * @param {string} value new item name\n * @return {void}\n */\n renameCallback = (nameWithoutExt?: string, extension?: string): void => {\n const { selected, isRenameModalOpen }: State = this.state;\n const { canRename, onRename }: ContentExplorerProps = this.props;\n\n if (!selected || !canRename) {\n return;\n }\n\n const { id, permissions, type }: BoxItem = selected;\n if (!id || !permissions || !type) {\n return;\n }\n\n const { can_rename }: BoxItemPermission = permissions;\n\n if (!can_rename) {\n return;\n }\n\n if (!isRenameModalOpen || !nameWithoutExt) {\n this.setState({ isRenameModalOpen: true, errorCode: '' });\n return;\n }\n\n const name = `${nameWithoutExt}${extension}`;\n if (!nameWithoutExt.trim()) {\n this.setState({\n errorCode: ERROR_CODE_ITEM_NAME_INVALID,\n isLoading: false,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n this.api.getAPI(type).rename(\n selected,\n name.trim(),\n (updatedItem: BoxItem) => {\n this.setState({ isRenameModalOpen: false });\n this.refreshCollection();\n this.select(updatedItem);\n onRename(cloneDeep(selected));\n },\n ({ code }) => {\n this.setState({ errorCode: code, isLoading: false });\n },\n );\n };\n\n /**\n * Creates a new folder\n *\n * @private\n * @return {void}\n */\n createFolder = (): void => {\n this.throttledCreateFolderCallback();\n };\n\n /**\n * New folder callback\n *\n * @private\n * @param {string} name - folder name\n * @return {void}\n */\n createFolderCallback = (name?: string): void => {\n const { isCreateFolderModalOpen, currentCollection }: State = this.state;\n const { canCreateNewFolder, onCreate }: ContentExplorerProps = this.props;\n if (!canCreateNewFolder) {\n return;\n }\n\n const { id, permissions }: Collection = currentCollection;\n if (!id || !permissions) {\n return;\n }\n\n const { can_upload }: BoxItemPermission = permissions;\n if (!can_upload) {\n return;\n }\n\n if (!isCreateFolderModalOpen || !name) {\n this.setState({ isCreateFolderModalOpen: true, errorCode: '' });\n return;\n }\n\n if (!name.trim()) {\n this.setState({\n errorCode: ERROR_CODE_ITEM_NAME_INVALID,\n isLoading: false,\n });\n return;\n }\n\n if (name.length > 255) {\n this.setState({\n errorCode: ERROR_CODE_ITEM_NAME_TOO_LONG,\n isLoading: false,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n this.api.getFolderAPI().create(\n id,\n name.trim(),\n (item: BoxItem) => {\n this.refreshCollection();\n this.select(item);\n onCreate(cloneDeep(item));\n },\n ({ code }) => {\n this.setState({\n errorCode: code,\n isLoading: false,\n });\n },\n );\n };\n\n /**\n * Throttled version of createFolderCallback to prevent errors from rapid clicking.\n *\n * @private\n * @param {string} [name] - folder name\n * @return {void}\n */\n throttledCreateFolderCallback = throttle(this.createFolderCallback, 500, { trailing: false });\n\n /**\n * Selects the clicked file and then shares it\n *\n * @private\n * @param {Object} item - file or folder object\n * @return {void}\n */\n share = (item: BoxItem): void => {\n this.select(item, this.shareCallback);\n };\n\n /**\n * Fetch the shared link info\n * @param {BoxItem} item - The item (folder, file, weblink)\n * @returns {void}\n */\n fetchSharedLinkInfo = (item: BoxItem): void => {\n const { id, type }: BoxItem = item;\n\n switch (type) {\n case TYPE_FOLDER:\n this.api.getFolderAPI().getFolderFields(id, this.handleSharedLinkSuccess, noop, {\n fields: FILE_SHARED_LINK_FIELDS_TO_FETCH,\n });\n break;\n case TYPE_FILE:\n this.api\n .getFileAPI()\n .getFile(id, this.handleSharedLinkSuccess, noop, { fields: FILE_SHARED_LINK_FIELDS_TO_FETCH });\n break;\n case TYPE_WEBLINK:\n this.api\n .getWebLinkAPI()\n .getWeblink(id, this.handleSharedLinkSuccess, noop, { fields: FILE_SHARED_LINK_FIELDS_TO_FETCH });\n break;\n default:\n throw new Error('Unknown Type');\n }\n };\n\n /**\n * Handles the shared link info by either creating a share link using enterprise defaults if\n * it does not already exist, otherwise update the item in the state currentCollection.\n *\n * @param {Object} item file or folder\n * @returns {void}\n */\n handleSharedLinkSuccess = async (item: BoxItem) => {\n const { currentCollection } = this.state;\n let updatedItem = item;\n\n // if there is no shared link, create one with enterprise default access\n if (!item[FIELD_SHARED_LINK] && getProp(item, FIELD_PERMISSIONS_CAN_SHARE, false)) {\n await this.api.getAPI(item.type).share(item, undefined, (sharedItem: BoxItem) => {\n updatedItem = sharedItem;\n });\n }\n\n this.updateCollection(currentCollection, updatedItem, () => this.setState({ isShareModalOpen: true }));\n };\n\n /**\n * Callback for sharing an item\n *\n * @private\n * @return {void}\n */\n shareCallback = (): void => {\n const { selected }: State = this.state;\n const { canShare }: ContentExplorerProps = this.props;\n\n if (!selected || !canShare) {\n return;\n }\n\n const { permissions, type } = selected;\n if (!permissions || !type) {\n return;\n }\n\n const { can_share }: BoxItemPermission = permissions;\n if (!can_share) {\n return;\n }\n\n this.fetchSharedLinkInfo(selected);\n };\n\n /**\n * Closes the modal dialogs that may be open\n *\n * @private\n * @return {void}\n */\n closeModals = (): void => {\n const { focusedRow }: State = this.state;\n\n this.setState({\n isLoading: false,\n isDeleteModalOpen: false,\n isRenameModalOpen: false,\n isCreateFolderModalOpen: false,\n isShareModalOpen: false,\n isUploadModalOpen: false,\n isPreviewModalOpen: false,\n });\n\n const {\n selected,\n currentCollection: { items = [] },\n }: State = this.state;\n if (selected && items.length > 0) {\n focus(this.rootElement, `.bce-item-row-${focusedRow}`);\n }\n };\n\n /**\n * Keyboard events\n *\n * @private\n * @return {void}\n */\n onKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (isInputElement(event.target)) {\n return;\n }\n\n const { rootFolderId }: ContentExplorerProps = this.props;\n const key = event.key.toLowerCase();\n\n switch (key) {\n case '/':\n focus(this.rootElement, '.be-search input[type=\"search\"]', false);\n event.preventDefault();\n break;\n case 'arrowdown':\n if (this.getViewMode() === VIEW_MODE_GRID) {\n if (document.activeElement && !document.activeElement.closest('.be-ItemGrid')) {\n focus(this.rootElement, '.be-ItemGrid-item', false);\n event.preventDefault();\n }\n } else if (document.activeElement && !document.activeElement.closest('.be-ItemList')) {\n focus(this.rootElement, '.be-ItemList-item', false);\n this.setState({ focusedRow: 0 });\n event.preventDefault();\n }\n break;\n case 'g':\n break;\n case 'b':\n if (this.globalModifier) {\n focus(this.rootElement, '.be-breadcrumb button', false);\n event.preventDefault();\n }\n\n break;\n case 'f':\n if (this.globalModifier) {\n this.fetchFolder(rootFolderId);\n event.preventDefault();\n }\n\n break;\n case 'u':\n if (this.globalModifier) {\n this.upload();\n event.preventDefault();\n }\n\n break;\n case 'r':\n if (this.globalModifier) {\n this.showRecents();\n event.preventDefault();\n }\n\n break;\n case 'n':\n if (this.globalModifier) {\n this.createFolder();\n event.preventDefault();\n }\n\n break;\n default:\n this.globalModifier = false;\n return;\n }\n\n this.globalModifier = key === 'g';\n };\n\n /**\n * Handle pagination changes for offset based pagination\n *\n * @param {number} newOffset - the new page offset value\n */\n paginate = (newOffset: number) => {\n this.setState({ currentOffset: newOffset }, this.refreshCollection);\n };\n\n /**\n * Handle pagination changes for marker based pagination\n * @param {number} newOffset - the new page offset value\n */\n markerBasedPaginate = (newOffset: number) => {\n const { currentPageNumber } = this.state;\n this.setState(\n {\n currentPageNumber: currentPageNumber + newOffset, // newOffset could be negative\n },\n this.refreshCollection,\n );\n };\n\n /**\n * Get the current viewMode, checking local store if applicable\n *\n * @return {ViewMode}\n */\n getViewMode = (): ViewMode => this.store.getItem(localStoreViewMode) || VIEW_MODE_LIST;\n\n /**\n * Get the maximum number of grid view columns based on the current width of the\n * content explorer.\n *\n * @return {number}\n */\n getMaxNumberOfGridViewColumnsForWidth = (): number => {\n const { isSmall, isMedium, isLarge } = this.props;\n let maxWidthColumns = GRID_VIEW_MAX_COLUMNS;\n if (isSmall) {\n maxWidthColumns = 1;\n } else if (isMedium) {\n maxWidthColumns = 3;\n } else if (isLarge) {\n maxWidthColumns = 5;\n }\n return maxWidthColumns;\n };\n\n getMetadataViewProps = (): ContentExplorerProps['metadataViewProps'] => {\n const { metadataViewProps } = this.props;\n const { tableProps } = metadataViewProps ?? {};\n const { onSelectionChange } = tableProps ?? {};\n const { selectedItemIds } = this.state;\n\n return {\n ...metadataViewProps,\n tableProps: {\n ...tableProps,\n selectedKeys: selectedItemIds,\n onSelectionChange: (ids: Selection) => {\n onSelectionChange?.(ids);\n const isSelectionEmpty = ids !== 'all' && ids.size === 0;\n this.setState({\n selectedItemIds: ids,\n ...(isSelectionEmpty && { isMetadataSidePanelOpen: false }),\n });\n },\n },\n };\n };\n\n /**\n * Change the current view mode\n *\n * @param {ViewMode} viewMode - the new view mode\n * @return {void}\n */\n changeViewMode = (viewMode: ViewMode): void => {\n this.store.setItem(localStoreViewMode, viewMode);\n this.forceUpdate();\n };\n\n /**\n * Callback for when value of GridViewSlider changes\n *\n * @param {number} sliderValue - value of slider\n * @return {void}\n */\n onGridViewSliderChange = (sliderValue: number): void => {\n // need to do this calculation since lowest value of grid view slider\n // means highest number of columns\n const gridColumnCount = GRID_VIEW_MAX_COLUMNS - sliderValue + 1;\n this.setState({ gridColumnCount });\n };\n\n /**\n * Function to update metadata field value in metadata based view\n * @param {BoxItem} item - file item whose metadata is being changed\n * @param {string} field - metadata template field name\n * @param {MetadataFieldValue} oldValue - current value\n * @param {MetadataFieldValue} newVlaue - new value the field to be updated to\n */\n\n updateMetadata = (\n item: BoxItem,\n field: string,\n oldValue?: MetadataFieldValue | null,\n newValue?: MetadataFieldValue | null,\n ): void => {\n this.metadataQueryAPIHelper.updateMetadata(\n item,\n field,\n oldValue,\n newValue,\n () => {\n this.updateMetadataSuccessCallback(item, field, newValue);\n },\n this.errorCallback,\n );\n };\n\n updateMetadataSuccessCallback = (item: BoxItem, field: string, newValue?: MetadataFieldValue | null): void => {\n const { currentCollection }: State = this.state;\n const { items = [], nextMarker } = currentCollection;\n const updatedItems = items.map(collectionItem => {\n const clonedItem = cloneDeep(collectionItem);\n if (item.id === clonedItem.id) {\n const fields = getProp(clonedItem, 'metadata.enterprise.fields', []);\n fields.forEach(itemField => {\n if (itemField.key.split('.').pop() === field) {\n itemField.value = newValue; // set updated metadata value to correct item in currentCollection\n }\n });\n }\n return clonedItem;\n });\n\n this.setState({\n currentCollection: {\n items: updatedItems,\n nextMarker,\n percentLoaded: 100,\n },\n });\n };\n\n clearSelectedItemIds = () => {\n this.setState({\n selectedItemIds: new Set(),\n isMetadataSidePanelOpen: false,\n });\n };\n\n /**\n * Toggle metadata side panel visibility\n *\n * @private\n * @return {void}\n */\n onMetadataSidePanelToggle = () => {\n this.setState(prevState => ({\n isMetadataSidePanelOpen: !prevState.isMetadataSidePanelOpen,\n }));\n };\n\n /**\n * Close metadata side panel\n *\n * @private\n * @return {void}\n */\n closeMetadataSidePanel = () => {\n this.setState({ isMetadataSidePanelOpen: false });\n };\n\n filterMetadata = (fields: ExternalFilterValues) => {\n this.setState({ metadataFilters: fields }, this.refreshCollection);\n };\n\n /**\n * Renders the file picker\n *\n * @private\n * @inheritdoc\n * @return {Element}\n */\n render() {\n const {\n apiHost,\n appHost,\n bulkItemActions,\n canCreateNewFolder,\n canDelete,\n canDownload,\n canPreview,\n canRename,\n canSetShareAccess,\n canShare,\n canUpload,\n className,\n contentPreviewProps,\n contentUploaderProps,\n defaultView,\n features,\n hasProviders,\n isMedium,\n isSmall,\n isTouch,\n itemActions,\n language,\n logoUrl,\n measureRef,\n messages,\n fieldsToShow,\n onDownload,\n onPreview,\n onUpload,\n requestInterceptor,\n responseInterceptor,\n rootFolderId,\n sharedLink,\n sharedLinkPassword,\n staticHost,\n staticPath,\n previewLibraryVersion,\n theme,\n title,\n token,\n uploadHost,\n }: ContentExplorerProps = this.props;\n\n const {\n currentCollection,\n currentPageNumber,\n currentPageSize,\n errorCode,\n gridColumnCount,\n isCreateFolderModalOpen,\n isDeleteModalOpen,\n isLoading,\n isMetadataSidePanelOpen,\n isPreviewModalOpen,\n isRenameModalOpen,\n isShareModalOpen,\n isUploadModalOpen,\n markers,\n metadataTemplate,\n rootName,\n selected,\n selectedItemIds,\n view,\n }: State = this.state;\n\n const { id, offset, permissions, totalCount }: Collection = currentCollection;\n const { can_upload }: BoxItemPermission = permissions || {};\n const styleClassName = classNames('be bce', className);\n const allowUpload: boolean = canUpload && !!can_upload;\n const allowCreate: boolean = canCreateNewFolder && !!can_upload;\n const isDefaultViewMetadata: boolean = defaultView === DEFAULT_VIEW_METADATA;\n const isMetadataViewV2Feature = isFeatureEnabled(features, 'contentExplorer.metadataViewV2');\n const isErrorView: boolean = view === VIEW_ERROR;\n\n const viewMode = this.getViewMode();\n const maxGridColumnCount = this.getMaxNumberOfGridViewColumnsForWidth();\n\n const hasNextMarker: boolean = !!markers[currentPageNumber + 1];\n const hasPreviousMarker: boolean = currentPageNumber === 1 || !!markers[currentPageNumber - 1];\n\n const metadataViewProps = this.getMetadataViewProps();\n\n /* eslint-disable jsx-a11y/no-static-element-interactions */\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n return (\n <Internationalize language={language} messages={messages}>\n <Providers hasProviders={hasProviders}>\n <div id={this.id} className={styleClassName} ref={measureRef} data-testid=\"content-explorer\">\n <ThemingStyles selector={`#${this.id}`} theme={theme} />\n <div className=\"be-app-element\" onKeyDown={this.onKeyDown} tabIndex={0}>\n <div className=\"bce-ContentExplorer-main\">\n {!isDefaultViewMetadata && (\n <Header view={view} logoUrl={logoUrl} onSearch={this.search} />\n )}\n\n <SubHeader\n bulkItemActions={bulkItemActions}\n view={view}\n viewMode={viewMode}\n rootId={rootFolderId}\n isSmall={isSmall}\n rootName={rootName}\n currentCollection={currentCollection}\n canUpload={allowUpload}\n canCreateNewFolder={allowCreate}\n gridColumnCount={gridColumnCount}\n gridMaxColumns={GRID_VIEW_MAX_COLUMNS}\n gridMinColumns={GRID_VIEW_MIN_COLUMNS}\n maxGridColumnCountForWidth={maxGridColumnCount}\n onUpload={this.upload}\n onClearSelectedItemIds={this.clearSelectedItemIds}\n onCreate={this.createFolder}\n onGridViewSliderChange={this.onGridViewSliderChange}\n onItemClick={this.fetchFolder}\n onSortChange={this.sort}\n onMetadataSidePanelToggle={this.onMetadataSidePanelToggle}\n onViewModeChange={this.changeViewMode}\n portalElement={this.rootElement}\n selectedItemIds={selectedItemIds}\n title={title}\n />\n\n <Content\n canDelete={canDelete}\n canDownload={canDownload}\n canPreview={canPreview}\n canRename={canRename}\n canShare={canShare}\n currentCollection={currentCollection}\n features={features}\n gridColumnCount={Math.min(gridColumnCount, maxGridColumnCount)}\n isMedium={isMedium}\n isSmall={isSmall}\n isTouch={isTouch}\n itemActions={itemActions}\n fieldsToShow={fieldsToShow}\n metadataTemplate={metadataTemplate}\n metadataViewProps={metadataViewProps}\n onItemClick={this.onItemClick}\n onItemDelete={this.delete}\n onItemDownload={this.download}\n onItemPreview={this.preview}\n onItemRename={this.rename}\n onItemSelect={this.select}\n onItemShare={this.share}\n onMetadataFilter={this.filterMetadata}\n onMetadataUpdate={this.updateMetadata}\n onSortChange={this.sort}\n portalElement={this.rootElement}\n view={view}\n viewMode={viewMode}\n />\n\n {!isErrorView && (\n <Footer>\n <Pagination\n hasNextMarker={hasNextMarker}\n hasPrevMarker={hasPreviousMarker}\n isSmall={isSmall}\n offset={offset}\n onOffsetChange={this.paginate}\n pageSize={currentPageSize}\n totalCount={totalCount}\n onMarkerBasedPageChange={this.markerBasedPaginate}\n />\n </Footer>\n )}\n </div>\n {isDefaultViewMetadata && isMetadataViewV2Feature && isMetadataSidePanelOpen && (\n <MetadataSidePanel\n currentCollection={currentCollection}\n metadataTemplate={metadataTemplate}\n onClose={this.closeMetadataSidePanel}\n onUpdate={this.updateMetadataV2}\n refreshCollection={this.refreshCollection}\n selectedItemIds={selectedItemIds}\n />\n )}\n </div>\n {allowUpload && !!this.appElement ? (\n <UploadDialog\n isOpen={isUploadModalOpen}\n currentFolderId={id}\n token={token}\n sharedLink={sharedLink}\n sharedLinkPassword={sharedLinkPassword}\n apiHost={apiHost}\n uploadHost={uploadHost}\n onClose={this.uploadSuccessHandler}\n parentElement={this.rootElement}\n appElement={this.appElement}\n onUpload={onUpload}\n contentUploaderProps={contentUploaderProps}\n requestInterceptor={requestInterceptor}\n responseInterceptor={responseInterceptor}\n />\n ) : null}\n {allowCreate && !!this.appElement ? (\n <CreateFolderDialog\n isOpen={isCreateFolderModalOpen}\n onCreate={this.throttledCreateFolderCallback}\n onCancel={this.closeModals}\n isLoading={isLoading}\n errorCode={errorCode}\n parentElement={this.rootElement}\n appElement={this.appElement}\n />\n ) : null}\n {canDelete && selected && !!this.appElement ? (\n <DeleteConfirmationDialog\n isOpen={isDeleteModalOpen}\n onDelete={this.deleteCallback}\n onCancel={this.closeModals}\n item={selected}\n isLoading={isLoading}\n parentElement={this.rootElement}\n appElement={this.appElement}\n />\n ) : null}\n {canRename && selected && !!this.appElement ? (\n <RenameDialog\n isOpen={isRenameModalOpen}\n onRename={this.renameCallback}\n onCancel={this.closeModals}\n item={selected}\n isLoading={isLoading}\n errorCode={errorCode}\n parentElement={this.rootElement}\n appElement={this.appElement}\n />\n ) : null}\n {canShare && selected && !!this.appElement ? (\n <ShareDialog\n isOpen={isShareModalOpen}\n canSetShareAccess={canSetShareAccess}\n onShareAccessChange={this.changeShareAccess}\n onCancel={this.refreshCollection}\n item={selected}\n isLoading={isLoading}\n parentElement={this.rootElement}\n appElement={this.appElement}\n />\n ) : null}\n {canPreview && selected && !!this.appElement ? (\n <PreviewDialog\n isOpen={isPreviewModalOpen}\n isTouch={isTouch}\n onCancel={this.closeModals}\n item={selected}\n currentCollection={cloneDeep(currentCollection)}\n token={token}\n parentElement={this.rootElement}\n appElement={this.appElement}\n onPreview={onPreview}\n onDownload={onDownload}\n canDownload={canDownload}\n cache={this.api.getCache()}\n apiHost={apiHost}\n appHost={appHost}\n staticHost={staticHost}\n staticPath={staticPath}\n previewLibraryVersion={previewLibraryVersion}\n sharedLink={sharedLink}\n sharedLinkPassword={sharedLinkPassword}\n contentPreviewProps={contentPreviewProps}\n requestInterceptor={requestInterceptor}\n responseInterceptor={responseInterceptor}\n />\n ) : null}\n </div>\n </Providers>\n </Internationalize>\n );\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n }\n}\n\nexport { ContentExplorer as ContentExplorerComponent };\nexport default flow([makeResponsive, withFeatureConsumer, withFeatureProvider, withBlueprintModernization])(\n ContentExplorer,\n);\n"],"mappings":"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","ignoreList":[]}