box-ui-elements 24.0.0-beta.3 → 24.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/explorer.js +1 -1
  2. package/dist/openwith.js +1 -1
  3. package/dist/picker.js +1 -1
  4. package/dist/preview.js +1 -1
  5. package/dist/sharing.js +1 -1
  6. package/dist/sidebar.js +1 -1
  7. package/dist/uploader.js +1 -1
  8. package/es/elements/common/withBlueprintModernization.js +16 -0
  9. package/es/elements/common/withBlueprintModernization.js.map +1 -0
  10. package/es/elements/content-explorer/ContentExplorer.js +2 -1
  11. package/es/elements/content-explorer/ContentExplorer.js.map +1 -1
  12. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +5 -0
  13. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.flow +6 -0
  14. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.map +1 -1
  15. package/es/elements/content-picker/ContentPicker.js +4 -1
  16. package/es/elements/content-picker/ContentPicker.js.flow +4 -1
  17. package/es/elements/content-picker/ContentPicker.js.map +1 -1
  18. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +5 -0
  19. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.flow +6 -0
  20. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.map +1 -1
  21. package/es/elements/content-preview/ContentPreview.js +3 -1
  22. package/es/elements/content-preview/ContentPreview.js.flow +3 -0
  23. package/es/elements/content-preview/ContentPreview.js.map +1 -1
  24. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +5 -0
  25. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.flow +7 -1
  26. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.map +1 -1
  27. package/es/elements/content-sharing/ContentSharing.js +4 -1
  28. package/es/elements/content-sharing/ContentSharing.js.flow +4 -1
  29. package/es/elements/content-sharing/ContentSharing.js.map +1 -1
  30. package/es/elements/content-sidebar/ContentSidebar.js +3 -1
  31. package/es/elements/content-sidebar/ContentSidebar.js.flow +3 -0
  32. package/es/elements/content-sidebar/ContentSidebar.js.map +1 -1
  33. package/es/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.js +5 -0
  34. package/es/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.js.map +1 -1
  35. package/es/elements/content-uploader/ContentUploader.js +3 -1
  36. package/es/elements/content-uploader/ContentUploader.js.map +1 -1
  37. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +5 -0
  38. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.flow +6 -0
  39. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.map +1 -1
  40. package/es/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.js +51 -0
  41. package/es/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.js.map +1 -0
  42. package/es/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.scss +29 -0
  43. package/es/features/classification/applied-by-ai-classification-reason/messages.js +13 -0
  44. package/es/features/classification/applied-by-ai-classification-reason/messages.js.map +1 -0
  45. package/es/features/classification/types.js +2 -0
  46. package/es/features/classification/types.js.map +1 -0
  47. package/es/src/elements/common/__tests__/withBlueprintModernization.test.d.ts +1 -0
  48. package/es/src/elements/common/withBlueprintModernization.d.ts +3 -0
  49. package/es/src/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.d.ts +5 -0
  50. package/es/src/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.d.ts +6 -0
  51. package/es/src/features/classification/applied-by-ai-classification-reason/__tests__/AppliedByAiClassificationReason.test.d.ts +1 -0
  52. package/es/src/features/classification/applied-by-ai-classification-reason/messages.d.ts +13 -0
  53. package/es/src/features/classification/types.d.ts +6 -0
  54. package/i18n/bn-IN.js +4 -2
  55. package/i18n/bn-IN.properties +2 -2
  56. package/i18n/da-DK.js +4 -2
  57. package/i18n/da-DK.properties +2 -2
  58. package/i18n/de-DE.js +4 -2
  59. package/i18n/de-DE.properties +2 -2
  60. package/i18n/en-AU.js +2 -0
  61. package/i18n/en-CA.js +2 -0
  62. package/i18n/en-GB.js +2 -0
  63. package/i18n/en-US.js +2 -0
  64. package/i18n/en-US.properties +4 -0
  65. package/i18n/en-x-pseudo.js +2 -0
  66. package/i18n/es-419.js +4 -2
  67. package/i18n/es-419.properties +2 -2
  68. package/i18n/es-ES.js +4 -2
  69. package/i18n/es-ES.properties +2 -2
  70. package/i18n/fi-FI.js +4 -2
  71. package/i18n/fi-FI.properties +2 -2
  72. package/i18n/fr-CA.js +4 -2
  73. package/i18n/fr-CA.properties +2 -2
  74. package/i18n/fr-FR.js +4 -2
  75. package/i18n/fr-FR.properties +2 -2
  76. package/i18n/hi-IN.js +4 -2
  77. package/i18n/hi-IN.properties +2 -2
  78. package/i18n/it-IT.js +4 -2
  79. package/i18n/it-IT.properties +2 -2
  80. package/i18n/ja-JP.js +2 -0
  81. package/i18n/ko-KR.js +4 -2
  82. package/i18n/ko-KR.properties +2 -2
  83. package/i18n/nb-NO.js +4 -2
  84. package/i18n/nb-NO.properties +2 -2
  85. package/i18n/nl-NL.js +4 -2
  86. package/i18n/nl-NL.properties +2 -2
  87. package/i18n/pl-PL.js +4 -2
  88. package/i18n/pl-PL.properties +2 -2
  89. package/i18n/pt-BR.js +4 -2
  90. package/i18n/pt-BR.properties +2 -2
  91. package/i18n/ru-RU.js +4 -2
  92. package/i18n/ru-RU.properties +2 -2
  93. package/i18n/sv-SE.js +4 -2
  94. package/i18n/sv-SE.properties +2 -2
  95. package/i18n/tr-TR.js +4 -2
  96. package/i18n/tr-TR.properties +2 -2
  97. package/i18n/zh-CN.js +4 -2
  98. package/i18n/zh-CN.properties +2 -2
  99. package/i18n/zh-TW.js +4 -2
  100. package/i18n/zh-TW.properties +2 -2
  101. package/package.json +1 -1
  102. package/src/elements/common/__tests__/withBlueprintModernization.test.tsx +91 -0
  103. package/src/elements/common/withBlueprintModernization.tsx +24 -0
  104. package/src/elements/content-explorer/ContentExplorer.tsx +4 -1
  105. package/src/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +6 -0
  106. package/src/elements/content-picker/ContentPicker.js +4 -1
  107. package/src/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +6 -0
  108. package/src/elements/content-preview/ContentPreview.js +3 -0
  109. package/src/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +7 -1
  110. package/src/elements/content-sharing/ContentSharing.js +4 -1
  111. package/src/elements/content-sidebar/ContentSidebar.js +3 -0
  112. package/src/elements/content-sidebar/stories/tests/ContentSidebar-visual.stories.tsx +6 -0
  113. package/src/elements/content-uploader/ContentUploader.tsx +3 -1
  114. package/src/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +6 -0
  115. package/src/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.scss +29 -0
  116. package/src/features/classification/applied-by-ai-classification-reason/AppliedByAiClassificationReason.tsx +55 -0
  117. package/src/features/classification/applied-by-ai-classification-reason/__tests__/AppliedByAiClassificationReason.test.tsx +105 -0
  118. package/src/features/classification/applied-by-ai-classification-reason/messages.ts +18 -0
  119. package/src/features/classification/types.ts +7 -0
@@ -0,0 +1,16 @@
1
+ import React, { useContext } from 'react';
2
+ import { BlueprintModernizationContext, BlueprintModernizationProvider } from '@box/blueprint-web';
3
+ export function withBlueprintModernization(Component) {
4
+ return function WithBlueprintModernization(props) {
5
+ const context = useContext(BlueprintModernizationContext);
6
+ // no context found from the parent component, so we need to provide our own
7
+ if (!context.enableModernizedComponents) {
8
+ return /*#__PURE__*/React.createElement(BlueprintModernizationProvider, {
9
+ enableModernizedComponents: !!props.enableModernizedComponents
10
+ }, /*#__PURE__*/React.createElement(Component, props));
11
+ }
12
+ // context found, so load the component with the existing context
13
+ return /*#__PURE__*/React.createElement(Component, props);
14
+ };
15
+ }
16
+ //# sourceMappingURL=withBlueprintModernization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withBlueprintModernization.js","names":["React","useContext","BlueprintModernizationContext","BlueprintModernizationProvider","withBlueprintModernization","Component","WithBlueprintModernization","props","context","enableModernizedComponents","createElement"],"sources":["../../../src/elements/common/withBlueprintModernization.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport {\n BlueprintModernizationContext,\n BlueprintModernizationContextValue,\n BlueprintModernizationProvider,\n} from '@box/blueprint-web';\n\nexport function withBlueprintModernization<P>(\n Component: React.ComponentType<P & BlueprintModernizationContextValue>,\n): React.FC<(P & BlueprintModernizationContextValue) | P> {\n return function WithBlueprintModernization(props: P & BlueprintModernizationContextValue) {\n const context = useContext(BlueprintModernizationContext);\n // no context found from the parent component, so we need to provide our own\n if (!context.enableModernizedComponents) {\n return (\n <BlueprintModernizationProvider enableModernizedComponents={!!props.enableModernizedComponents}>\n <Component {...props} />\n </BlueprintModernizationProvider>\n );\n }\n // context found, so load the component with the existing context\n return <Component {...props} />;\n };\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SACIC,6BAA6B,EAE7BC,8BAA8B,QAC3B,oBAAoB;AAE3B,OAAO,SAASC,0BAA0BA,CACtCC,SAAsE,EAChB;EACtD,OAAO,SAASC,0BAA0BA,CAACC,KAA6C,EAAE;IACtF,MAAMC,OAAO,GAAGP,UAAU,CAACC,6BAA6B,CAAC;IACzD;IACA,IAAI,CAACM,OAAO,CAACC,0BAA0B,EAAE;MACrC,oBACIT,KAAA,CAAAU,aAAA,CAACP,8BAA8B;QAACM,0BAA0B,EAAE,CAAC,CAACF,KAAK,CAACE;MAA2B,gBAC3FT,KAAA,CAAAU,aAAA,CAACL,SAAS,EAAKE,KAAQ,CACK,CAAC;IAEzC;IACA;IACA,oBAAOP,KAAA,CAAAU,aAAA,CAACL,SAAS,EAAKE,KAAQ,CAAC;EACnC,CAAC;AACL","ignoreList":[]}
@@ -45,6 +45,7 @@ import '../common/fonts.scss';
45
45
  import '../common/base.scss';
46
46
  import '../common/modal.scss';
47
47
  import './ContentExplorer.scss';
48
+ import { withBlueprintModernization } from '../common/withBlueprintModernization';
48
49
  const GRID_VIEW_MAX_COLUMNS = 7;
49
50
  const GRID_VIEW_MIN_COLUMNS = 1;
50
51
  const localStoreViewMode = 'bce.defaultViewMode';
@@ -1845,5 +1846,5 @@ _defineProperty(ContentExplorer, "defaultProps", {
1845
1846
  metadataViewProps: {}
1846
1847
  });
1847
1848
  export { ContentExplorer as ContentExplorerComponent };
1848
- export default flow([makeResponsive, withFeatureConsumer, withFeatureProvider])(ContentExplorer);
1849
+ export default flow([makeResponsive, withFeatureConsumer, withFeatureProvider, withBlueprintModernization])(ContentExplorer);
1849
1850
  //# sourceMappingURL=ContentExplorer.js.map
@@ -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","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","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';\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;\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, withBlueprintModernization])(\n ContentExplorer,\n);\n"],"mappings":"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","ignoreList":[]}