box-ui-elements 24.0.0-beta.3 → 24.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/explorer.js +1 -1
- package/dist/openwith.js +1 -1
- package/dist/picker.js +1 -1
- package/dist/preview.js +1 -1
- package/dist/sharing.js +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/uploader.js +1 -1
- package/es/api/Metadata.js +98 -13
- package/es/api/Metadata.js.flow +110 -12
- package/es/api/Metadata.js.map +1 -1
- package/es/elements/common/messages.js +16 -0
- package/es/elements/common/messages.js.flow +25 -0
- package/es/elements/common/messages.js.map +1 -1
- package/es/elements/common/withBlueprintModernization.js +16 -0
- package/es/elements/common/withBlueprintModernization.js.map +1 -0
- package/es/elements/content-explorer/Content.js +2 -1
- package/es/elements/content-explorer/Content.js.map +1 -1
- package/es/elements/content-explorer/ContentExplorer.js +21 -6
- package/es/elements/content-explorer/ContentExplorer.js.map +1 -1
- package/es/elements/content-explorer/MetadataQueryAPIHelper.js +61 -4
- package/es/elements/content-explorer/MetadataQueryAPIHelper.js.map +1 -1
- package/es/elements/content-explorer/MetadataSidePanel.js +40 -14
- package/es/elements/content-explorer/MetadataSidePanel.js.map +1 -1
- package/es/elements/content-explorer/MetadataViewContainer.js +55 -4
- package/es/elements/content-explorer/MetadataViewContainer.js.map +1 -1
- package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +5 -0
- package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.flow +6 -0
- package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.map +1 -1
- package/es/elements/content-explorer/stories/tests/MetadataView-visual.stories.js +61 -13
- package/es/elements/content-explorer/stories/tests/MetadataView-visual.stories.js.map +1 -1
- package/es/elements/content-explorer/utils.js +140 -12
- package/es/elements/content-explorer/utils.js.map +1 -1
- package/es/elements/content-picker/ContentPicker.js +4 -1
- package/es/elements/content-picker/ContentPicker.js.flow +4 -1
- package/es/elements/content-picker/ContentPicker.js.map +1 -1
- package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +5 -0
- package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.flow +6 -0
- package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.map +1 -1
- package/es/elements/content-preview/ContentPreview.js +3 -1
- package/es/elements/content-preview/ContentPreview.js.flow +3 -0
- package/es/elements/content-preview/ContentPreview.js.map +1 -1
- package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +5 -0
- package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.flow +7 -1
- package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.map +1 -1
- package/es/elements/content-sharing/ContentSharing.js +4 -1
- package/es/elements/content-sharing/ContentSharing.js.flow +4 -1
- package/es/elements/content-sharing/ContentSharing.js.map +1 -1
- package/es/elements/content-sidebar/ContentSidebar.js +3 -1
- package/es/elements/content-sidebar/ContentSidebar.js.flow +3 -0
- package/es/elements/content-sidebar/ContentSidebar.js.map +1 -1
- package/es/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.js +5 -0
- package/es/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.js.map +1 -1
- package/es/elements/content-uploader/ContentUploader.js +3 -1
- package/es/elements/content-uploader/ContentUploader.js.map +1 -1
- package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +5 -0
- package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.flow +6 -0
- package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.map +1 -1
- package/es/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.js +51 -0
- package/es/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.js.map +1 -0
- package/es/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.scss +29 -0
- package/es/features/classification/applied-by-ai-classification-reason/messages.js +13 -0
- package/es/features/classification/applied-by-ai-classification-reason/messages.js.map +1 -0
- package/es/features/classification/types.js +2 -0
- package/es/features/classification/types.js.map +1 -0
- package/es/src/elements/common/__tests__/withBlueprintModernization.test.d.ts +1 -0
- package/es/src/elements/common/withBlueprintModernization.d.ts +3 -0
- package/es/src/elements/content-explorer/ContentExplorer.d.ts +11 -3
- package/es/src/elements/content-explorer/MetadataQueryAPIHelper.d.ts +11 -1
- package/es/src/elements/content-explorer/MetadataSidePanel.d.ts +6 -3
- package/es/src/elements/content-explorer/MetadataViewContainer.d.ts +3 -1
- package/es/src/elements/content-explorer/stories/tests/MetadataView-visual.stories.d.ts +1 -0
- package/es/src/elements/content-explorer/utils.d.ts +9 -3
- package/es/src/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.d.ts +5 -0
- package/es/src/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.d.ts +6 -0
- package/es/src/features/classification/applied-by-ai-classification-reason/__tests__/AppliedByAiClassificationReason.test.d.ts +1 -0
- package/es/src/features/classification/applied-by-ai-classification-reason/messages.d.ts +13 -0
- package/es/src/features/classification/types.d.ts +6 -0
- package/i18n/bn-IN.js +8 -2
- package/i18n/bn-IN.properties +6 -2
- package/i18n/da-DK.js +8 -2
- package/i18n/da-DK.properties +6 -2
- package/i18n/de-DE.js +8 -2
- package/i18n/de-DE.properties +6 -2
- package/i18n/en-AU.js +6 -0
- package/i18n/en-AU.properties +4 -0
- package/i18n/en-CA.js +6 -0
- package/i18n/en-CA.properties +4 -0
- package/i18n/en-GB.js +6 -0
- package/i18n/en-GB.properties +4 -0
- package/i18n/en-US.js +6 -0
- package/i18n/en-US.properties +12 -0
- package/i18n/en-x-pseudo.js +6 -0
- package/i18n/es-419.js +8 -2
- package/i18n/es-419.properties +6 -2
- package/i18n/es-ES.js +8 -2
- package/i18n/es-ES.properties +6 -2
- package/i18n/fi-FI.js +8 -2
- package/i18n/fi-FI.properties +6 -2
- package/i18n/fr-CA.js +8 -2
- package/i18n/fr-CA.properties +6 -2
- package/i18n/fr-FR.js +8 -2
- package/i18n/fr-FR.properties +6 -2
- package/i18n/hi-IN.js +8 -2
- package/i18n/hi-IN.properties +6 -2
- package/i18n/it-IT.js +8 -2
- package/i18n/it-IT.properties +6 -2
- package/i18n/ja-JP.js +8 -2
- package/i18n/ja-JP.properties +6 -2
- package/i18n/ko-KR.js +8 -2
- package/i18n/ko-KR.properties +6 -2
- package/i18n/nb-NO.js +8 -2
- package/i18n/nb-NO.properties +6 -2
- package/i18n/nl-NL.js +8 -2
- package/i18n/nl-NL.properties +6 -2
- package/i18n/pl-PL.js +8 -2
- package/i18n/pl-PL.properties +6 -2
- package/i18n/pt-BR.js +8 -2
- package/i18n/pt-BR.properties +6 -2
- package/i18n/ru-RU.js +8 -2
- package/i18n/ru-RU.properties +6 -2
- package/i18n/sv-SE.js +8 -2
- package/i18n/sv-SE.properties +6 -2
- package/i18n/tr-TR.js +8 -2
- package/i18n/tr-TR.properties +6 -2
- package/i18n/zh-CN.js +8 -2
- package/i18n/zh-CN.properties +6 -2
- package/i18n/zh-TW.js +8 -2
- package/i18n/zh-TW.properties +6 -2
- package/package.json +1 -1
- package/src/api/Metadata.js +110 -12
- package/src/api/__tests__/Metadata.test.js +120 -0
- package/src/elements/common/__tests__/withBlueprintModernization.test.tsx +91 -0
- package/src/elements/common/messages.js +25 -0
- package/src/elements/common/withBlueprintModernization.tsx +24 -0
- package/src/elements/content-explorer/Content.tsx +1 -0
- package/src/elements/content-explorer/ContentExplorer.tsx +224 -182
- package/src/elements/content-explorer/MetadataQueryAPIHelper.ts +89 -4
- package/src/elements/content-explorer/MetadataSidePanel.tsx +55 -14
- package/src/elements/content-explorer/MetadataViewContainer.tsx +61 -1
- package/src/elements/content-explorer/__tests__/ContentExplorer.test.tsx +36 -2
- package/src/elements/content-explorer/__tests__/MetadataQueryAPIHelper.test.ts +8 -5
- package/src/elements/content-explorer/__tests__/MetadataSidePanel.test.tsx +145 -3
- package/src/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +6 -0
- package/src/elements/content-explorer/stories/tests/MetadataView-visual.stories.tsx +54 -8
- package/src/elements/content-explorer/utils.ts +150 -13
- package/src/elements/content-picker/ContentPicker.js +4 -1
- package/src/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +6 -0
- package/src/elements/content-preview/ContentPreview.js +3 -0
- package/src/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +7 -1
- package/src/elements/content-sharing/ContentSharing.js +4 -1
- package/src/elements/content-sidebar/ContentSidebar.js +3 -0
- package/src/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.tsx +6 -0
- package/src/elements/content-uploader/ContentUploader.tsx +3 -1
- package/src/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +6 -0
- package/src/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.scss +29 -0
- package/src/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.tsx +55 -0
- package/src/features/classification/applied-by-ai-classification-reason/__tests__/AppliedByAiClassificationReason.test.tsx +105 -0
- package/src/features/classification/applied-by-ai-classification-reason/messages.ts +18 -0
- package/src/features/classification/types.ts +7 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentExplorer.js","names":["React","Component","classNames","cloneDeep","debounce","flow","getProp","noop","throttle","uniqueid","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","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","error","view","console","id","searchQuery","fetchFolder","showRecents","search","showMetadataQueryResults","Error","triggerNavigationEvent","rootFolderId","currentId","currentOffset","currentPageSize","limit","sortBy","sortDirection","folderId","hasFolderChanged","hasSearchQuery","trim","length","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","items","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","metadataQueryAPIHelper","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","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","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 { TooltipProvider } from '@box/blueprint-web';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { Selection } from 'react-aria-components';\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 { 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';\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;\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 * 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, 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 <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 onClose={this.closeMetadataSidePanel}\n metadataTemplate={metadataTemplate}\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 </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])(ContentExplorer);\n"],"mappings":"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","ignoreList":[]}
|
|
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":[]}
|