box-ui-elements 23.4.0-beta.28 → 23.4.0-beta.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/explorer.js +1 -1
- package/es/elements/content-explorer/ContentExplorer.js +13 -2
- package/es/elements/content-explorer/ContentExplorer.js.map +1 -1
- package/es/src/elements/content-explorer/ContentExplorer.d.ts +8 -0
- package/package.json +1 -1
- package/src/elements/content-explorer/ContentExplorer.tsx +12 -2
|
@@ -12,6 +12,7 @@ import debounce from 'lodash/debounce';
|
|
|
12
12
|
import flow from 'lodash/flow';
|
|
13
13
|
import getProp from 'lodash/get';
|
|
14
14
|
import noop from 'lodash/noop';
|
|
15
|
+
import throttle from 'lodash/throttle';
|
|
15
16
|
import uniqueid from 'lodash/uniqueId';
|
|
16
17
|
import { TooltipProvider } from '@box/blueprint-web';
|
|
17
18
|
import CreateFolderDialog from '../common/create-folder-dialog';
|
|
@@ -720,7 +721,7 @@ class ContentExplorer extends Component {
|
|
|
720
721
|
* @return {void}
|
|
721
722
|
*/
|
|
722
723
|
_defineProperty(this, "createFolder", () => {
|
|
723
|
-
this.
|
|
724
|
+
this.throttledCreateFolderCallback();
|
|
724
725
|
});
|
|
725
726
|
/**
|
|
726
727
|
* New folder callback
|
|
@@ -791,6 +792,16 @@ class ContentExplorer extends Component {
|
|
|
791
792
|
});
|
|
792
793
|
});
|
|
793
794
|
});
|
|
795
|
+
/**
|
|
796
|
+
* Throttled version of createFolderCallback to prevent errors from rapid clicking.
|
|
797
|
+
*
|
|
798
|
+
* @private
|
|
799
|
+
* @param {string} [name] - folder name
|
|
800
|
+
* @return {void}
|
|
801
|
+
*/
|
|
802
|
+
_defineProperty(this, "throttledCreateFolderCallback", throttle(this.createFolderCallback, 500, {
|
|
803
|
+
trailing: false
|
|
804
|
+
}));
|
|
794
805
|
/**
|
|
795
806
|
* Selects the clicked file and then shares it
|
|
796
807
|
*
|
|
@@ -1617,7 +1628,7 @@ class ContentExplorer extends Component {
|
|
|
1617
1628
|
responseInterceptor: responseInterceptor
|
|
1618
1629
|
}) : null, allowCreate && !!this.appElement ? /*#__PURE__*/React.createElement(CreateFolderDialog, {
|
|
1619
1630
|
isOpen: isCreateFolderModalOpen,
|
|
1620
|
-
onCreate: this.
|
|
1631
|
+
onCreate: this.throttledCreateFolderCallback,
|
|
1621
1632
|
onCancel: this.closeModals,
|
|
1622
1633
|
isLoading: isLoading,
|
|
1623
1634
|
errorCode: errorCode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentExplorer.js","names":["React","Component","classNames","cloneDeep","debounce","flow","getProp","noop","uniqueid","TooltipProvider","CreateFolderDialog","UploadDialog","Header","Pagination","SubHeader","makeResponsive","openUrlInsideIframe","Internationalize","ThemingStyles","API","MetadataQueryAPIHelper","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","DEFAULT_HOSTNAME_UPLOAD","DEFAULT_HOSTNAME_API","DEFAULT_HOSTNAME_APP","DEFAULT_HOSTNAME_STATIC","DEFAULT_SEARCH_DEBOUNCE","SORT_ASC","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","nextMarker","currentCollection","currentPageNumber","markers","state","cloneMarkers","setState","_objectSpread","percentLoaded","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","api","getFolderAPI","getFolder","collection","fetchFolderSuccessCallback","errorCallback","fields","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","name","rename","code","createFolderCallback","isCreateFolderModalOpen","canCreateNewFolder","onCreate","create","shareCallback","getFolderFields","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","viewMode","setItem","forceUpdate","sliderValue","gridColumnCount","field","oldValue","newValue","metadataQueryAPIHelper","updateMetadata","updateMetadataSuccessCallback","updatedItems","collectionItem","clonedItem","forEach","itemField","split","pop","value","apiHost","initialPage","initialPageSize","language","requestInterceptor","responseInterceptor","sharedLink","sharedLinkPassword","token","uploadHost","clientName","rootName","clearCache","destroy","componentWillUnmount","componentDidMount","currentFolderId","defaultView","getElementById","appElement","firstElementChild","componentDidUpdate","prevFolderId","prevState","metadataQuery","metadataQueryClone","marker","fetchMetadataQueryResults","showMetadataQueryResultsSuccessCallback","_extends","finishNavigation","autoFocus","onNavigate","boxItem","recentsSuccessCallback","getRecentsAPI","recents","fileAPI","selectedId","newSelectedItem","itemThumbnails","Promise","all","getThumbnailUrl","index","isSelected","currentItem","thumbnailUrl","attemptThumbnailGeneration","render","appHost","className","contentPreviewProps","contentUploaderProps","features","itemActions","logoUrl","measureRef","messages","fieldsToShow","onPreview","onUpload","staticHost","staticPath","previewLibraryVersion","theme","totalCount","styleClassName","allowUpload","allowCreate","isDefaultViewMetadata","isErrorView","maxGridColumnCount","getMaxNumberOfGridViewColumnsForWidth","hasNextMarker","hasPreviousMarker","createElement","container","ref","selector","onKeyDown","tabIndex","onSearch","rootId","gridMaxColumns","gridMinColumns","maxGridColumnCountForWidth","onGridViewSliderChange","onItemClick","onSortChange","sort","onViewModeChange","changeViewMode","portalElement","Math","min","onItemDelete","delete","onItemDownload","download","onItemPreview","onItemRename","onItemSelect","onItemShare","onMetadataUpdate","hasPrevMarker","onOffsetChange","paginate","pageSize","onMarkerBasedPageChange","markerBasedPaginate","isOpen","onClose","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 uniqueid from 'lodash/uniqueId';\nimport { TooltipProvider } from '@box/blueprint-web';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\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 MetadataQueryAPIHelper from '../../features/metadata-based-view/MetadataQueryAPIHelper';\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 { withFeatureConsumer, withFeatureProvider, type FeatureConfig } 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_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 } 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 { ContentPreviewProps } from '../content-preview';\nimport type { ContentUploaderProps } from '../content-uploader';\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 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 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 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 isPreviewModalOpen: boolean;\n isRenameModalOpen: boolean;\n isShareModalOpen: boolean;\n isUploadModalOpen: boolean;\n markers: Array<string | null | undefined>;\n rootName: string;\n searchQuery: string;\n selected?: BoxItem;\n sortBy: SortBy;\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 };\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 isPreviewModalOpen: false,\n isRenameModalOpen: false,\n isShareModalOpen: false,\n isUploadModalOpen: false,\n markers: [],\n rootName: '',\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 = (metadataQueryCollection: Collection): void => {\n const { nextMarker } = metadataQueryCollection;\n const { currentCollection, currentPageNumber, markers }: State = this.state;\n const cloneMarkers = [...markers];\n if (nextMarker) {\n cloneMarkers[currentPageNumber + 1] = nextMarker;\n }\n this.setState({\n currentCollection: {\n ...currentCollection,\n ...metadataQueryCollection,\n percentLoaded: 100,\n },\n markers: cloneMarkers,\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 { metadataQuery = {} }: ContentExplorerProps = this.props;\n const { currentPageNumber, markers }: 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 // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n currentCollection: this.currentUnloadedCollection(),\n view: VIEW_METADATA,\n });\n this.metadataQueryAPIHelper = new MetadataQueryAPIHelper(this.api);\n this.metadataQueryAPIHelper.fetchMetadataQueryResults(\n metadataQueryClone,\n this.showMetadataQueryResultsSuccessCallback,\n this.errorCallback,\n );\n }\n\n /**\n * 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 }: State = this.state;\n if (id) {\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.createFolderCallback();\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 * 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 /**\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 /**\n * Renders the file picker\n *\n * @private\n * @inheritdoc\n * @return {Element}\n */\n render() {\n const {\n apiHost,\n appHost,\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 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 isPreviewModalOpen,\n isRenameModalOpen,\n isShareModalOpen,\n isUploadModalOpen,\n markers,\n rootName,\n selected,\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 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 /* 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 {!isDefaultViewMetadata && <Header view={view} logoUrl={logoUrl} onSearch={this.search} />}\n\n <SubHeader\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 onCreate={this.createFolder}\n onGridViewSliderChange={this.onGridViewSliderChange}\n onItemClick={this.fetchFolder}\n onSortChange={this.sort}\n onViewModeChange={this.changeViewMode}\n portalElement={this.rootElement}\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 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 {!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 {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.createFolderCallback}\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","MetadataQueryAPIHelper","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","DEFAULT_HOSTNAME_UPLOAD","DEFAULT_HOSTNAME_API","DEFAULT_HOSTNAME_APP","DEFAULT_HOSTNAME_STATIC","DEFAULT_SEARCH_DEBOUNCE","SORT_ASC","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","nextMarker","currentCollection","currentPageNumber","markers","state","cloneMarkers","setState","_objectSpread","percentLoaded","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","api","getFolderAPI","getFolder","collection","fetchFolderSuccessCallback","errorCallback","fields","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","name","rename","code","throttledCreateFolderCallback","isCreateFolderModalOpen","canCreateNewFolder","onCreate","create","createFolderCallback","trailing","shareCallback","getFolderFields","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","viewMode","setItem","forceUpdate","sliderValue","gridColumnCount","field","oldValue","newValue","metadataQueryAPIHelper","updateMetadata","updateMetadataSuccessCallback","updatedItems","collectionItem","clonedItem","forEach","itemField","split","pop","value","apiHost","initialPage","initialPageSize","language","requestInterceptor","responseInterceptor","sharedLink","sharedLinkPassword","token","uploadHost","clientName","rootName","clearCache","destroy","componentWillUnmount","componentDidMount","currentFolderId","defaultView","getElementById","appElement","firstElementChild","componentDidUpdate","prevFolderId","prevState","metadataQuery","metadataQueryClone","marker","fetchMetadataQueryResults","showMetadataQueryResultsSuccessCallback","_extends","finishNavigation","autoFocus","onNavigate","boxItem","recentsSuccessCallback","getRecentsAPI","recents","fileAPI","selectedId","newSelectedItem","itemThumbnails","Promise","all","getThumbnailUrl","index","isSelected","currentItem","thumbnailUrl","attemptThumbnailGeneration","render","appHost","className","contentPreviewProps","contentUploaderProps","features","itemActions","logoUrl","measureRef","messages","fieldsToShow","onPreview","onUpload","staticHost","staticPath","previewLibraryVersion","theme","totalCount","styleClassName","allowUpload","allowCreate","isDefaultViewMetadata","isErrorView","maxGridColumnCount","getMaxNumberOfGridViewColumnsForWidth","hasNextMarker","hasPreviousMarker","createElement","container","ref","selector","onKeyDown","tabIndex","onSearch","rootId","gridMaxColumns","gridMinColumns","maxGridColumnCountForWidth","onGridViewSliderChange","onItemClick","onSortChange","sort","onViewModeChange","changeViewMode","portalElement","Math","min","onItemDelete","delete","onItemDownload","download","onItemPreview","onItemRename","onItemSelect","onItemShare","onMetadataUpdate","hasPrevMarker","onOffsetChange","paginate","pageSize","onMarkerBasedPageChange","markerBasedPaginate","isOpen","onClose","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 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 MetadataQueryAPIHelper from '../../features/metadata-based-view/MetadataQueryAPIHelper';\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 { withFeatureConsumer, withFeatureProvider, type FeatureConfig } 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_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 } 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 { ContentPreviewProps } from '../content-preview';\nimport type { ContentUploaderProps } from '../content-uploader';\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 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 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 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 isPreviewModalOpen: boolean;\n isRenameModalOpen: boolean;\n isShareModalOpen: boolean;\n isUploadModalOpen: boolean;\n markers: Array<string | null | undefined>;\n rootName: string;\n searchQuery: string;\n selected?: BoxItem;\n sortBy: SortBy;\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 };\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 isPreviewModalOpen: false,\n isRenameModalOpen: false,\n isShareModalOpen: false,\n isUploadModalOpen: false,\n markers: [],\n rootName: '',\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 = (metadataQueryCollection: Collection): void => {\n const { nextMarker } = metadataQueryCollection;\n const { currentCollection, currentPageNumber, markers }: State = this.state;\n const cloneMarkers = [...markers];\n if (nextMarker) {\n cloneMarkers[currentPageNumber + 1] = nextMarker;\n }\n this.setState({\n currentCollection: {\n ...currentCollection,\n ...metadataQueryCollection,\n percentLoaded: 100,\n },\n markers: cloneMarkers,\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 { metadataQuery = {} }: ContentExplorerProps = this.props;\n const { currentPageNumber, markers }: 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 // Reset search state, the view and show busy indicator\n this.setState({\n searchQuery: '',\n currentCollection: this.currentUnloadedCollection(),\n view: VIEW_METADATA,\n });\n this.metadataQueryAPIHelper = new MetadataQueryAPIHelper(this.api);\n this.metadataQueryAPIHelper.fetchMetadataQueryResults(\n metadataQueryClone,\n this.showMetadataQueryResultsSuccessCallback,\n this.errorCallback,\n );\n }\n\n /**\n * 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 }: State = this.state;\n if (id) {\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 /**\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 /**\n * Renders the file picker\n *\n * @private\n * @inheritdoc\n * @return {Element}\n */\n render() {\n const {\n apiHost,\n appHost,\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 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 isPreviewModalOpen,\n isRenameModalOpen,\n isShareModalOpen,\n isUploadModalOpen,\n markers,\n rootName,\n selected,\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 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 /* 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 {!isDefaultViewMetadata && <Header view={view} logoUrl={logoUrl} onSearch={this.search} />}\n\n <SubHeader\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 onCreate={this.createFolder}\n onGridViewSliderChange={this.onGridViewSliderChange}\n onItemClick={this.fetchFolder}\n onSortChange={this.sort}\n onViewModeChange={this.changeViewMode}\n portalElement={this.rootElement}\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 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 {!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 {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":";;;;;;AAAA,OAAO,6BAA6B;AACpC,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,kBAAkB;AACxC,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,OAAOC,IAAI,MAAM,aAAa;AAC9B,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,IAAI,MAAM,aAAa;AAC9B,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,OAAOC,kBAAkB,MAAM,gCAAgC;AAC/D,OAAOC,YAAY,MAAM,yBAAyB;AAClD,OAAOC,MAAM,MAAM,kBAAkB;AACrC,OAAOC,UAAU,MAAM,sBAAsB;AAC7C,OAAOC,SAAS,MAAM,gCAAgC;AACtD,OAAOC,cAAc,MAAM,0BAA0B;AACrD,OAAOC,mBAAmB,MAAM,oBAAoB;AACpD,OAAOC,gBAAgB,MAAM,4BAA4B;AACzD,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,OAAOC,GAAG,MAAM,WAAW;AAC3B,OAAOC,sBAAsB,MAAM,2DAA2D;AAC9F,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,aAAa,MAAM,wCAAwC;AAClE,OAAOC,WAAW,MAAM,eAAe;AACvC,OAAOC,YAAY,MAAM,gBAAgB;AACzC,OAAOC,wBAAwB,MAAM,4BAA4B;AACjE,OAAOC,OAAO,MAAM,WAAW;AAC/B,SAASC,oBAAoB,QAAQ,iBAAiB;AACtD,SAASC,kBAAkB,EAAEC,cAAc,EAAEC,KAAK,QAAQ,iBAAiB;AAC3E,SAASC,gCAAgC,QAAQ,oBAAoB;AACrE,OAAOC,uCAAuC,MAAM,aAAa;AACjE,OAAOC,UAAU,MAAM,wBAAwB;AAC/C,SAASC,mBAAmB,EAAEC,mBAAmB,QAA4B,4BAA4B;AACzG,SACIC,uBAAuB,EACvBC,oBAAoB,EACpBC,oBAAoB,EACpBC,uBAAuB,EACvBC,uBAAuB,EACvBC,QAAQ,EACRC,UAAU,EACVC,2BAA2B,EAC3BC,iBAAiB,EACjBC,YAAY,EACZC,WAAW,EACXC,WAAW,EACXC,UAAU,EACVC,YAAY,EACZC,aAAa,EACbC,cAAc,EACdC,SAAS,EACTC,YAAY,EACZC,WAAW,EACXC,4BAA4B,EAC5BC,mBAAmB,EACnBC,iBAAiB,EACjBC,kBAAkB,EAClBC,oBAAoB,EACpBC,qBAAqB,EACrBC,4BAA4B,EAC5BC,6BAA6B,EAC7BC,sBAAsB,EACtBC,cAAc,QACX,iBAAiB;AAqBxB,OAAO,sBAAsB;AAC7B,OAAO,qBAAqB;AAC5B,OAAO,sBAAsB;AAC7B,OAAO,wBAAwB;AAE/B,MAAMC,qBAAqB,GAAG,CAAC;AAC/B,MAAMC,qBAAqB,GAAG,CAAC;AAiF/B,MAAMC,kBAAkB,GAAG,qBAAqB;AAEhD,MAAMC,eAAe,SAASpE,SAAS,CAA8B;EAwDjE;AACJ;AACA;AACA;AACA;AACA;EACIqE,WAAWA,CAACC,KAA2B,EAAE;IACrC,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA,oBAhDI,IAAI;IAAE;IAAAA,eAAA,gBAEP,IAAItC,UAAU,CAAC,CAAC;IA2KpC;AACJ;AACA;AACA;AACA;AACA;AACA;IANIsC,eAAA,kDAO2CC,uBAAmC,IAAW;MACrF,MAAM;QAAEC;MAAW,CAAC,GAAGD,uBAAuB;MAC9C,MAAM;QAAEE,iBAAiB;QAAEC,iBAAiB;QAAEC;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAC3E,MAAMC,YAAY,GAAG,CAAC,GAAGF,OAAO,CAAC;MACjC,IAAIH,UAAU,EAAE;QACZK,YAAY,CAACH,iBAAiB,GAAG,CAAC,CAAC,GAAGF,UAAU;MACpD;MACA,IAAI,CAACM,QAAQ,CAAC;QACVL,iBAAiB,EAAAM,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACVN,iBAAiB,GACjBF,uBAAuB;UAC1BS,aAAa,EAAE;QAAG,EACrB;QACDL,OAAO,EAAEE;MACb,CAAC,CAAC;IACN,CAAC;IAsDD;AACJ;AACA;AACA;AACA;AACA;AACA;IANIP,eAAA,wBAOiBW,KAAc,IAAK;MAChC,IAAI,CAACH,QAAQ,CAAC;QACVI,IAAI,EAAEnC;MACV,CAAC,CAAC;MACF;MACAoC,OAAO,CAACF,KAAK,CAACA,KAAK,CAAC;MACpB;IACJ,CAAC;IA6BD;AACJ;AACA;AACA;AACA;AACA;AACA;IANIX,eAAA,4BAOoB,MAAM;MACtB,MAAM;QACFG,iBAAiB,EAAE;UAAEW;QAAG,CAAC;QACzBF,IAAI;QACJG;MACG,CAAC,GAAG,IAAI,CAACT,KAAK;MACrB,IAAIM,IAAI,KAAKpC,WAAW,IAAIsC,EAAE,EAAE;QAC5B,IAAI,CAACE,WAAW,CAACF,EAAE,EAAE,KAAK,CAAC;MAC/B,CAAC,MAAM,IAAIF,IAAI,KAAKlC,YAAY,EAAE;QAC9B,IAAI,CAACuC,WAAW,CAAC,KAAK,CAAC;MAC3B,CAAC,MAAM,IAAIL,IAAI,KAAKrC,WAAW,IAAIwC,WAAW,EAAE;QAC5C,IAAI,CAACG,MAAM,CAACH,WAAW,CAAC;MAC5B,CAAC,MAAM,IAAIH,IAAI,KAAKjC,aAAa,EAAE;QAC/B,IAAI,CAACwC,wBAAwB,CAAC,CAAC;MACnC,CAAC,MAAM;QACH,MAAM,IAAIC,KAAK,CAAC,mCAAmC,CAAC;MACxD;IACJ,CAAC;IAgCD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IAPIpB,eAAA,sBAQc,CAACc,EAAW,EAAEO,sBAA+B,GAAG,IAAI,KAAK;MACnE,MAAM;QAAEC;MAAmC,CAAC,GAAG,IAAI,CAACvB,KAAK;MACzD,MAAM;QACFI,iBAAiB,EAAE;UAAEW,EAAE,EAAES;QAAU,CAAC;QACpCC,aAAa;QACbC,eAAe,EAAEC,KAAK;QACtBX,WAAW,GAAG,EAAE;QAChBY,MAAM;QACNC;MACG,CAAC,GAAG,IAAI,CAACtB,KAAK;MACrB,MAAMuB,QAAgB,GAAG,OAAOf,EAAE,KAAK,QAAQ,GAAGA,EAAE,GAAGQ,YAAY;MACnE,MAAMQ,gBAAgB,GAAGP,SAAS,IAAIA,SAAS,KAAKM,QAAQ;MAC5D,MAAME,cAAc,GAAG,CAAC,CAAChB,WAAW,CAACiB,IAAI,CAAC,CAAC,CAACC,MAAM;MAClD,MAAMC,MAAM,GAAGJ,gBAAgB,IAAIC,cAAc,GAAG,CAAC,GAAGP,aAAa,CAAC,CAAC;;MAEvE;MACA;MACA;MACA;MACA,IAAI,CAAC,IAAI,CAACW,SAAS,EAAE;QACjB,IAAI,CAACC,WAAW,CAAC7E,KAAK,CAAC,CAAC;MAC5B;;MAEA;MACA,IAAI,CAACiD,QAAQ,CAAC;QACVO,WAAW,EAAE,EAAE;QACfH,IAAI,EAAEpC,WAAW;QACjB2B,iBAAiB,EAAE,IAAI,CAACkC,yBAAyB,CAAC,CAAC;QACnDb,aAAa,EAAEU;MACnB,CAAC,CAAC;;MAEF;MACA,IAAI,CAACI,GAAG,CAACC,YAAY,CAAC,CAAC,CAACC,SAAS,CAC7BX,QAAQ,EACRH,KAAK,EACLQ,MAAM,EACNP,MAAM,EACNC,aAAa,EACZa,UAAsB,IAAK;QACxB,IAAI,CAACC,0BAA0B,CAACD,UAAU,EAAEpB,sBAAsB,CAAC;MACvE,CAAC,EACD,IAAI,CAACsB,aAAa,EAClB;QAAEC,MAAM,EAAEnF,uCAAuC;QAAEoF,UAAU,EAAE;MAAK,CACxE,CAAC;IACL,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANI7C,eAAA,sBAOe8C,IAAsB,IAAK;MACtC;MACA,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QAC1B,IAAI,CAAC9B,WAAW,CAAC8B,IAAI,CAAC;QACtB;MACJ;MAEA,MAAM;QAAEhC,EAAE;QAAEiC;MAAc,CAAC,GAAGD,IAAI;MAClC,MAAM;QAAEE;MAA8B,CAAC,GAAG,IAAI,CAACjD,KAAK;MAEpD,IAAIgD,IAAI,KAAKhE,WAAW,EAAE;QACtB,IAAI,CAACiC,WAAW,CAACF,EAAE,CAAC;QACpB;MACJ;MAEA,IAAIkC,OAAO,EAAE;QACT;MACJ;MAEA,IAAI,CAACC,OAAO,CAACH,IAAI,CAAC;IACtB,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANI9C,eAAA,gCAOyByC,UAAsB,IAAK;MAChD,MAAM;QAAES;MAAgB,CAAC,GAAG,IAAI,CAAC5C,KAAK;;MAEtC;MACA,IAAI,CAAC6C,WAAW,CAAC,CAAC;MAElB,IAAI,CAACC,gBAAgB,CAACX,UAAU,EAAES,QAAQ,CAAC;IAC/C,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IAPIlD,eAAA,0BAQkBpE,QAAQ,CAAC,CAACkF,EAAU,EAAEuC,KAAa,KAAK;MACtD,MAAM;QAAE7B,aAAa;QAAEC;MAAuB,CAAC,GAAG,IAAI,CAACnB,KAAK;MAE5D,IAAI,CAACgC,GAAG,CACHgB,YAAY,CAAC,CAAC,CACdpC,MAAM,CAACJ,EAAE,EAAEuC,KAAK,EAAE5B,eAAe,EAAED,aAAa,EAAE,IAAI,CAAC+B,qBAAqB,EAAE,IAAI,CAACZ,aAAa,EAAE;QAC/FC,MAAM,EAAEnF,uCAAuC;QAC/CoF,UAAU,EAAE;MAChB,CAAC,CAAC;IACV,CAAC,EAAE5E,uBAAuB,CAAC;IAE3B;AACJ;AACA;AACA;AACA;AACA;AACA;IANI+B,eAAA,iBAOUqD,KAAa,IAAK;MACxB,MAAM;QAAE/B;MAAmC,CAAC,GAAG,IAAI,CAACvB,KAAK;MACzD,MAAM;QACFI,iBAAiB,EAAE;UAAEW;QAAG,CAAC;QACzBU,aAAa;QACbT;MACG,CAAC,GAAG,IAAI,CAACT,KAAK;MACrB,MAAMuB,QAAQ,GAAG,OAAOf,EAAE,KAAK,QAAQ,GAAGA,EAAE,GAAGQ,YAAY;MAC3D,MAAMkC,YAAoB,GAAGH,KAAK,CAACrB,IAAI,CAAC,CAAC;MAEzC,IAAI,CAACqB,KAAK,EAAE;QACR;QACA,IAAI,CAACI,eAAe,CAACC,MAAM,CAAC,CAAC;;QAE7B;QACA;QACA,IAAI,CAAClD,QAAQ,CAAC;UAAEgB,aAAa,EAAE;QAAE,CAAC,EAAE,MAAM;UACtC,IAAI,CAACR,WAAW,CAACa,QAAQ,EAAE,KAAK,CAAC;QACrC,CAAC,CAAC;QAEF;MACJ;MAEA,IAAI,CAAC2B,YAAY,EAAE;QACf;QACA;QACA,IAAI,CAAChD,QAAQ,CAAC;UACVO,WAAW,EAAEsC;QACjB,CAAC,CAAC;QACF;MACJ;MAEA,IAAI,CAAC7C,QAAQ,CAAC;QACVL,iBAAiB,EAAE,IAAI,CAACkC,yBAAyB,CAAC,CAAC;QACnDb,aAAa,EAAEgC,YAAY,KAAKzC,WAAW,GAAGS,aAAa,GAAG,CAAC;QAC/DT,WAAW,EAAEsC,KAAK;QAClBH,QAAQ,EAAES,SAAS;QACnB/C,IAAI,EAAErC;MACV,CAAC,CAAC;MAEF,IAAI,CAACkF,eAAe,CAAC5B,QAAQ,EAAEwB,KAAK,CAAC;IACzC,CAAC;IA+CD;AACJ;AACA;AACA;AACA;AACA;AACA;IANIrD,eAAA,iBAOS,MAAM;MACX,MAAM;QACFG,iBAAiB,EAAE;UAAEW,EAAE;UAAE8C;QAAY;MAClC,CAAC,GAAG,IAAI,CAACtD,KAAK;MACrB,MAAM;QAAEuD;MAAgC,CAAC,GAAG,IAAI,CAAC9D,KAAK;MACtD,IAAI,CAAC8D,SAAS,IAAI,CAAC/C,EAAE,IAAI,CAAC8C,WAAW,EAAE;QACnC;MACJ;MAEA,MAAM;QAAEE;MAA8B,CAAC,GAAGF,WAAW;MACrD,IAAI,CAACE,UAAU,EAAE;QACb;MACJ;MAEA,IAAI,CAACtD,QAAQ,CAAC;QACVuD,iBAAiB,EAAE;MACvB,CAAC,CAAC;IACN,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANI/D,eAAA,+BAOuB,MAAM;MACzB,MAAM;QACFG,iBAAiB,EAAE;UAAEW;QAAG;MACrB,CAAC,GAAG,IAAI,CAACR,KAAK;MACrB,IAAI,CAACU,WAAW,CAACF,EAAE,EAAE,KAAK,CAAC;IAC/B,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANId,eAAA,4BAOqBgE,MAAc,IAAK;MACpC,MAAM;QAAEd;MAAgB,CAAC,GAAG,IAAI,CAAC5C,KAAK;MACtC,MAAM;QAAE2D;MAAwC,CAAC,GAAG,IAAI,CAAClE,KAAK;MAC9D,IAAI,CAACmD,QAAQ,IAAI,CAACe,iBAAiB,EAAE;QACjC;MACJ;MAEA,MAAM;QAAEL,WAAW;QAAEb;MAAc,CAAC,GAAGG,QAAQ;MAC/C,IAAI,CAACU,WAAW,IAAI,CAACb,IAAI,EAAE;QACvB;MACJ;MAEA,MAAM;QAAEmB;MAAwC,CAAC,GAAGN,WAAW;MAC/D,IAAI,CAACM,oBAAoB,EAAE;QACvB;MACJ;MAEA,IAAI,CAAC1D,QAAQ,CAAC;QAAE2D,SAAS,EAAE;MAAK,CAAC,CAAC;MAClC,IAAI,CAAC7B,GAAG,CAAC8B,MAAM,CAACrB,IAAI,CAAC,CAACsB,KAAK,CAACnB,QAAQ,EAAEc,MAAM,EAAGM,WAAoB,IAAK;QACpE,IAAI,CAAC9D,QAAQ,CAAC;UAAE2D,SAAS,EAAE;QAAM,CAAC,CAAC;QACnC,IAAI,CAACI,MAAM,CAACD,WAAW,CAAC;MAC5B,CAAC,CAAC;IACN,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IAPItE,eAAA,eAQO,CAAC2B,MAAc,EAAEC,aAA4B,KAAK;MACrD,MAAM;QACFzB,iBAAiB,EAAE;UAAEW;QAAG;MACrB,CAAC,GAAG,IAAI,CAACR,KAAK;MACrB,IAAIQ,EAAE,EAAE;QACJ,IAAI,CAACN,QAAQ,CAAC;UAAEmB,MAAM;UAAEC;QAAc,CAAC,EAAE,IAAI,CAAC4C,iBAAiB,CAAC;MACpE;IACJ,CAAC;IAyDD;AACJ;AACA;AACA;AACA;AACA;AACA;IANIxE,eAAA,qCAO6B,MAAO8C,IAAa,IAAoB;MACjE,MAAM2B,OAAO,GAAG3I,OAAO,CAACgH,IAAI,EAAE,yBAAyB,CAAC;MACxD,MAAM4B,cAAc,GAAG5I,OAAO,CAAC2I,OAAO,EAAE,KAAK,CAAC;MAE9C,IAAIC,cAAc,EAAE;QAChB,MAAMC,qBAAqB,GAAG,MAAM,IAAI,CAACrC,GAAG,CAACsC,UAAU,CAAC,KAAK,CAAC,CAACC,sBAAsB,CAACH,cAAc,CAAC;QACrG,IAAIC,qBAAqB,KAAKD,cAAc,EAAE;UAC1C,IAAI,CAACI,sBAAsB,CAAArE,aAAA,CAAAA,aAAA,KACpB9E,SAAS,CAACmH,IAAI,CAAC;YAClBiC,eAAe,EAAE;cACbN,OAAO,EAAE,CAACE,qBAAqB,EAAE,GAAGF,OAAO,CAACO,KAAK,CAAC,CAAC,CAAC;YACxD;UAAC,EACJ,CAAC;QACN;MACJ;IACJ,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IALIhF,eAAA,iCAM0BiF,OAAgB,IAAW;MACjD,MAAM;QAAE9E;MAAkB,CAAC,GAAG,IAAI,CAACG,KAAK;MACxC,MAAM;QAAE4E,KAAK,GAAG;MAAG,CAAC,GAAG/E,iBAAiB;MACxC,MAAMgF,aAAa,GAAA1E,aAAA,KAAQN,iBAAiB,CAAW;MAEvDgF,aAAa,CAACD,KAAK,GAAGA,KAAK,CAACE,GAAG,CAACtC,IAAI,IAAKA,IAAI,CAAChC,EAAE,KAAKmE,OAAO,CAACnE,EAAE,GAAGmE,OAAO,GAAGnC,IAAK,CAAC;MAClF,IAAI,CAACtC,QAAQ,CAAC;QAAEL,iBAAiB,EAAEgF;MAAc,CAAC,CAAC;IACvD,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IAPInF,eAAA,iBAQS,CAAC8C,IAAa,EAAEuC,QAAiC,GAAGtJ,IAAI,KAAW;MACxE,MAAM;QAAEmH,QAAQ;QAAE/C;MAAyB,CAAC,GAAG,IAAI,CAACG,KAAK;MACzD,MAAM;QAAE4E,KAAK,GAAG;MAAG,CAAC,GAAG/E,iBAAiB;MACxC,MAAM;QAAEmF;MAA+B,CAAC,GAAG,IAAI,CAACvF,KAAK;MAErD,IAAI+C,IAAI,KAAKI,QAAQ,EAAE;QACnBmC,QAAQ,CAACvC,IAAI,CAAC;QACd;MACJ;MAEA,MAAMyC,YAAqB,GAAA9E,aAAA,CAAAA,aAAA,KAAQqC,IAAI;QAAEI,QAAQ,EAAE;MAAI,EAAE;MAEzD,IAAI,CAACE,gBAAgB,CAACjD,iBAAiB,EAAEoF,YAAY,EAAE,MAAM;QACzDD,QAAQ,CAAC3J,SAAS,CAAC,CAAC4J,YAAY,CAAC,CAAC,CAAC;QACnCF,QAAQ,CAACE,YAAY,CAAC;MAC1B,CAAC,CAAC;MAEF,MAAMC,UAAkB,GAAGN,KAAK,CAACO,SAAS,CAAEC,CAAU,IAAKA,CAAC,CAAC5E,EAAE,KAAKgC,IAAI,CAAChC,EAAE,CAAC;MAE5E,IAAI,CAACN,QAAQ,CAAC;QAAEgF;MAAW,CAAC,CAAC;IACjC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IAPIxF,eAAA,kBAQW8C,IAAa,IAAW;MAC/B,MAAM;QAAEC,IAAI;QAAE4C;MAAa,CAAC,GAAG7C,IAAI;MACnC,IAAIC,IAAI,KAAKjE,YAAY,EAAE;QACvB8G,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC;QAChB;MACJ;MAEA,IAAI,CAACpB,MAAM,CAACzB,IAAI,EAAE,IAAI,CAACgD,eAAe,CAAC;IAC3C,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANI9F,eAAA,0BAOkB,MAAY;MAC1B,MAAM;QAAEkD;MAAgB,CAAC,GAAG,IAAI,CAAC5C,KAAK;MACtC,MAAM;QAAEyF;MAAiC,CAAC,GAAG,IAAI,CAAChG,KAAK;MACvD,IAAI,CAACmD,QAAQ,IAAI,CAAC6C,UAAU,EAAE;QAC1B;MACJ;MAEA,MAAM;QAAEnC;MAAY,CAAC,GAAGV,QAAQ;MAChC,IAAI,CAACU,WAAW,EAAE;QACd;MACJ;MAEA,MAAM;QAAEoC;MAA+B,CAAC,GAAGpC,WAAW;MACtD,IAAI,CAACoC,WAAW,EAAE;QACd;MACJ;MAEA,IAAI,CAACxF,QAAQ,CAAC;QAAEyF,kBAAkB,EAAE;MAAK,CAAC,CAAC;IAC/C,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANIjG,eAAA,mBAOY8C,IAAa,IAAW;MAChC,IAAI,CAACyB,MAAM,CAACzB,IAAI,EAAE,IAAI,CAACoD,gBAAgB,CAAC;IAC5C,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IALIlG,eAAA,2BAMmB,MAAY;MAC3B,MAAM;QAAEkD;MAAgB,CAAC,GAAG,IAAI,CAAC5C,KAAK;MACtC,MAAM;QAAE6F,WAAW;QAAEC;MAAiC,CAAC,GAAG,IAAI,CAACrG,KAAK;MACpE,IAAI,CAACmD,QAAQ,IAAI,CAACiD,WAAW,EAAE;QAC3B;MACJ;MAEA,MAAM;QAAErF,EAAE;QAAE8C;MAAY,CAAC,GAAGV,QAAQ;MACpC,IAAI,CAACpC,EAAE,IAAI,CAAC8C,WAAW,EAAE;QACrB;MACJ;MAEA,MAAM;QAAEyC;MAAgC,CAAC,GAAGzC,WAAW;MACvD,IAAI,CAACyC,YAAY,EAAE;QACf;MACJ;MAEA,MAAMC,OAAO,GAAIX,GAAW,IAAK;QAC7BlJ,mBAAmB,CAACkJ,GAAG,CAAC;QACxBS,UAAU,CAACzK,SAAS,CAAC,CAACuH,QAAQ,CAAC,CAAC,CAAC;MACrC,CAAC;MAED,MAAM;QAAEH;MAAc,CAAC,GAAGG,QAAQ;MAClC,IAAIH,IAAI,KAAKlE,SAAS,EAAE;QACpB,IAAI,CAACyD,GAAG,CAACsC,UAAU,CAAC,CAAC,CAAC2B,cAAc,CAACzF,EAAE,EAAEoC,QAAQ,EAAEoD,OAAO,EAAEvK,IAAI,CAAC;MACrE;IACJ,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANIiE,eAAA,iBAOU8C,IAAa,IAAW;MAC9B,IAAI,CAACyB,MAAM,CAACzB,IAAI,EAAE,IAAI,CAAC0D,cAAc,CAAC;IAC1C,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IALIxG,eAAA,yBAMiB,MAAY;MACzB,MAAM;QAAEkD,QAAQ;QAAEuD;MAAyB,CAAC,GAAG,IAAI,CAACnG,KAAK;MACzD,MAAM;QAAEoG,SAAS;QAAEC;MAA+B,CAAC,GAAG,IAAI,CAAC5G,KAAK;MAChE,IAAI,CAACmD,QAAQ,IAAI,CAACwD,SAAS,EAAE;QACzB;MACJ;MAEA,MAAM;QAAE5F,EAAE;QAAE8C,WAAW;QAAEgD,MAAM;QAAE7D;MAAc,CAAC,GAAGG,QAAQ;MAC3D,IAAI,CAACpC,EAAE,IAAI,CAAC8C,WAAW,IAAI,CAACgD,MAAM,IAAI,CAAC7D,IAAI,EAAE;QACzC;MACJ;MAEA,MAAM;QAAEjC,EAAE,EAAE+F;MAAS,CAAC,GAAGD,MAAM;MAC/B,MAAM;QAAEE;MAA8B,CAAC,GAAGlD,WAAW;MACrD,IAAI,CAACkD,UAAU,IAAI,CAACD,QAAQ,EAAE;QAC1B;MACJ;MAEA,IAAI,CAACJ,iBAAiB,EAAE;QACpB,IAAI,CAACjG,QAAQ,CAAC;UAAEiG,iBAAiB,EAAE;QAAK,CAAC,CAAC;QAC1C;MACJ;MAEA,IAAI,CAACjG,QAAQ,CAAC;QAAE2D,SAAS,EAAE;MAAK,CAAC,CAAC;MAClC,IAAI,CAAC7B,GAAG,CAAC8B,MAAM,CAACrB,IAAI,CAAC,CAACgE,UAAU,CAC5B7D,QAAQ,EACR,MAAM;QACFyD,QAAQ,CAAChL,SAAS,CAAC,CAACuH,QAAQ,CAAC,CAAC,CAAC;QAC/B,IAAI,CAACsB,iBAAiB,CAAC,CAAC;MAC5B,CAAC,EACD,MAAM;QACF,IAAI,CAACA,iBAAiB,CAAC,CAAC;MAC5B,CACJ,CAAC;IACL,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANIxE,eAAA,iBAOU8C,IAAa,IAAW;MAC9B,IAAI,CAACyB,MAAM,CAACzB,IAAI,EAAE,IAAI,CAACkE,cAAc,CAAC;IAC1C,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANIhH,eAAA,yBAOiB,CAACiH,cAAuB,EAAEC,SAAkB,KAAW;MACpE,MAAM;QAAEhE,QAAQ;QAAEiE;MAAyB,CAAC,GAAG,IAAI,CAAC7G,KAAK;MACzD,MAAM;QAAE8G,SAAS;QAAEC;MAA+B,CAAC,GAAG,IAAI,CAACtH,KAAK;MAEhE,IAAI,CAACmD,QAAQ,IAAI,CAACkE,SAAS,EAAE;QACzB;MACJ;MAEA,MAAM;QAAEtG,EAAE;QAAE8C,WAAW;QAAEb;MAAc,CAAC,GAAGG,QAAQ;MACnD,IAAI,CAACpC,EAAE,IAAI,CAAC8C,WAAW,IAAI,CAACb,IAAI,EAAE;QAC9B;MACJ;MAEA,MAAM;QAAEuE;MAA8B,CAAC,GAAG1D,WAAW;MAErD,IAAI,CAAC0D,UAAU,EAAE;QACb;MACJ;MAEA,IAAI,CAACH,iBAAiB,IAAI,CAACF,cAAc,EAAE;QACvC,IAAI,CAACzG,QAAQ,CAAC;UAAE2G,iBAAiB,EAAE,IAAI;UAAEI,SAAS,EAAE;QAAG,CAAC,CAAC;QACzD;MACJ;MAEA,MAAMC,IAAI,GAAG,GAAGP,cAAc,GAAGC,SAAS,EAAE;MAC5C,IAAI,CAACD,cAAc,CAACjF,IAAI,CAAC,CAAC,EAAE;QACxB,IAAI,CAACxB,QAAQ,CAAC;UACV+G,SAAS,EAAEjI,4BAA4B;UACvC6E,SAAS,EAAE;QACf,CAAC,CAAC;QACF;MACJ;MAEA,IAAI,CAAC3D,QAAQ,CAAC;QAAE2D,SAAS,EAAE;MAAK,CAAC,CAAC;MAClC,IAAI,CAAC7B,GAAG,CAAC8B,MAAM,CAACrB,IAAI,CAAC,CAAC0E,MAAM,CACxBvE,QAAQ,EACRsE,IAAI,CAACxF,IAAI,CAAC,CAAC,EACVsC,WAAoB,IAAK;QACtB,IAAI,CAAC9D,QAAQ,CAAC;UAAE2G,iBAAiB,EAAE;QAAM,CAAC,CAAC;QAC3C,IAAI,CAAC3C,iBAAiB,CAAC,CAAC;QACxB,IAAI,CAACD,MAAM,CAACD,WAAW,CAAC;QACxB+C,QAAQ,CAAC1L,SAAS,CAACuH,QAAQ,CAAC,CAAC;MACjC,CAAC,EACD,CAAC;QAAEwE;MAAK,CAAC,KAAK;QACV,IAAI,CAAClH,QAAQ,CAAC;UAAE+G,SAAS,EAAEG,IAAI;UAAEvD,SAAS,EAAE;QAAM,CAAC,CAAC;MACxD,CACJ,CAAC;IACL,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IALInE,eAAA,uBAMe,MAAY;MACvB,IAAI,CAAC2H,6BAA6B,CAAC,CAAC;IACxC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANI3H,eAAA,+BAOwBwH,IAAa,IAAW;MAC5C,MAAM;QAAEI,uBAAuB;QAAEzH;MAAyB,CAAC,GAAG,IAAI,CAACG,KAAK;MACxE,MAAM;QAAEuH,kBAAkB;QAAEC;MAA+B,CAAC,GAAG,IAAI,CAAC/H,KAAK;MACzE,IAAI,CAAC8H,kBAAkB,EAAE;QACrB;MACJ;MAEA,MAAM;QAAE/G,EAAE;QAAE8C;MAAwB,CAAC,GAAGzD,iBAAiB;MACzD,IAAI,CAACW,EAAE,IAAI,CAAC8C,WAAW,EAAE;QACrB;MACJ;MAEA,MAAM;QAAEE;MAA8B,CAAC,GAAGF,WAAW;MACrD,IAAI,CAACE,UAAU,EAAE;QACb;MACJ;MAEA,IAAI,CAAC8D,uBAAuB,IAAI,CAACJ,IAAI,EAAE;QACnC,IAAI,CAAChH,QAAQ,CAAC;UAAEoH,uBAAuB,EAAE,IAAI;UAAEL,SAAS,EAAE;QAAG,CAAC,CAAC;QAC/D;MACJ;MAEA,IAAI,CAACC,IAAI,CAACxF,IAAI,CAAC,CAAC,EAAE;QACd,IAAI,CAACxB,QAAQ,CAAC;UACV+G,SAAS,EAAEjI,4BAA4B;UACvC6E,SAAS,EAAE;QACf,CAAC,CAAC;QACF;MACJ;MAEA,IAAIqD,IAAI,CAACvF,MAAM,GAAG,GAAG,EAAE;QACnB,IAAI,CAACzB,QAAQ,CAAC;UACV+G,SAAS,EAAEhI,6BAA6B;UACxC4E,SAAS,EAAE;QACf,CAAC,CAAC;QACF;MACJ;MAEA,IAAI,CAAC3D,QAAQ,CAAC;QAAE2D,SAAS,EAAE;MAAK,CAAC,CAAC;MAClC,IAAI,CAAC7B,GAAG,CAACC,YAAY,CAAC,CAAC,CAACwF,MAAM,CAC1BjH,EAAE,EACF0G,IAAI,CAACxF,IAAI,CAAC,CAAC,EACVc,IAAa,IAAK;QACf,IAAI,CAAC0B,iBAAiB,CAAC,CAAC;QACxB,IAAI,CAACD,MAAM,CAACzB,IAAI,CAAC;QACjBgF,QAAQ,CAACnM,SAAS,CAACmH,IAAI,CAAC,CAAC;MAC7B,CAAC,EACD,CAAC;QAAE4E;MAAK,CAAC,KAAK;QACV,IAAI,CAAClH,QAAQ,CAAC;UACV+G,SAAS,EAAEG,IAAI;UACfvD,SAAS,EAAE;QACf,CAAC,CAAC;MACN,CACJ,CAAC;IACL,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANInE,eAAA,wCAOgChE,QAAQ,CAAC,IAAI,CAACgM,oBAAoB,EAAE,GAAG,EAAE;MAAEC,QAAQ,EAAE;IAAM,CAAC,CAAC;IAE7F;AACJ;AACA;AACA;AACA;AACA;AACA;IANIjI,eAAA,gBAOS8C,IAAa,IAAW;MAC7B,IAAI,CAACyB,MAAM,CAACzB,IAAI,EAAE,IAAI,CAACoF,aAAa,CAAC;IACzC,CAAC;IAED;AACJ;AACA;AACA;AACA;IAJIlI,eAAA,8BAKuB8C,IAAa,IAAW;MAC3C,MAAM;QAAEhC,EAAE;QAAEiC;MAAc,CAAC,GAAGD,IAAI;MAElC,QAAQC,IAAI;QACR,KAAKhE,WAAW;UACZ,IAAI,CAACuD,GAAG,CAACC,YAAY,CAAC,CAAC,CAAC4F,eAAe,CAACrH,EAAE,EAAE,IAAI,CAACsH,uBAAuB,EAAErM,IAAI,EAAE;YAC5E6G,MAAM,EAAEpF;UACZ,CAAC,CAAC;UACF;QACJ,KAAKqB,SAAS;UACV,IAAI,CAACyD,GAAG,CACHsC,UAAU,CAAC,CAAC,CACZyD,OAAO,CAACvH,EAAE,EAAE,IAAI,CAACsH,uBAAuB,EAAErM,IAAI,EAAE;YAAE6G,MAAM,EAAEpF;UAAiC,CAAC,CAAC;UAClG;QACJ,KAAKsB,YAAY;UACb,IAAI,CAACwD,GAAG,CACHgG,aAAa,CAAC,CAAC,CACfC,UAAU,CAACzH,EAAE,EAAE,IAAI,CAACsH,uBAAuB,EAAErM,IAAI,EAAE;YAAE6G,MAAM,EAAEpF;UAAiC,CAAC,CAAC;UACrG;QACJ;UACI,MAAM,IAAI4D,KAAK,CAAC,cAAc,CAAC;MACvC;IACJ,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANIpB,eAAA,kCAO0B,MAAO8C,IAAa,IAAK;MAC/C,MAAM;QAAE3C;MAAkB,CAAC,GAAG,IAAI,CAACG,KAAK;MACxC,IAAIgE,WAAW,GAAGxB,IAAI;;MAEtB;MACA,IAAI,CAACA,IAAI,CAACzE,iBAAiB,CAAC,IAAIvC,OAAO,CAACgH,IAAI,EAAE1E,2BAA2B,EAAE,KAAK,CAAC,EAAE;QAC/E,MAAM,IAAI,CAACkE,GAAG,CAAC8B,MAAM,CAACtB,IAAI,CAACC,IAAI,CAAC,CAACsB,KAAK,CAACvB,IAAI,EAAEa,SAAS,EAAG6E,UAAmB,IAAK;UAC7ElE,WAAW,GAAGkE,UAAU;QAC5B,CAAC,CAAC;MACN;MAEA,IAAI,CAACpF,gBAAgB,CAACjD,iBAAiB,EAAEmE,WAAW,EAAE,MAAM,IAAI,CAAC9D,QAAQ,CAAC;QAAEiI,gBAAgB,EAAE;MAAK,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IALIzI,eAAA,wBAMgB,MAAY;MACxB,MAAM;QAAEkD;MAAgB,CAAC,GAAG,IAAI,CAAC5C,KAAK;MACtC,MAAM;QAAEoI;MAA+B,CAAC,GAAG,IAAI,CAAC3I,KAAK;MAErD,IAAI,CAACmD,QAAQ,IAAI,CAACwF,QAAQ,EAAE;QACxB;MACJ;MAEA,MAAM;QAAE9E,WAAW;QAAEb;MAAK,CAAC,GAAGG,QAAQ;MACtC,IAAI,CAACU,WAAW,IAAI,CAACb,IAAI,EAAE;QACvB;MACJ;MAEA,MAAM;QAAE4F;MAA6B,CAAC,GAAG/E,WAAW;MACpD,IAAI,CAAC+E,SAAS,EAAE;QACZ;MACJ;MAEA,IAAI,CAACC,mBAAmB,CAAC1F,QAAQ,CAAC;IACtC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IALIlD,eAAA,sBAMc,MAAY;MACtB,MAAM;QAAEwF;MAAkB,CAAC,GAAG,IAAI,CAAClF,KAAK;MAExC,IAAI,CAACE,QAAQ,CAAC;QACV2D,SAAS,EAAE,KAAK;QAChBsC,iBAAiB,EAAE,KAAK;QACxBU,iBAAiB,EAAE,KAAK;QACxBS,uBAAuB,EAAE,KAAK;QAC9Ba,gBAAgB,EAAE,KAAK;QACvB1E,iBAAiB,EAAE,KAAK;QACxBkC,kBAAkB,EAAE;MACxB,CAAC,CAAC;MAEF,MAAM;QACF/C,QAAQ;QACR/C,iBAAiB,EAAE;UAAE+E,KAAK,GAAG;QAAG;MAC7B,CAAC,GAAG,IAAI,CAAC5E,KAAK;MACrB,IAAI4C,QAAQ,IAAIgC,KAAK,CAACjD,MAAM,GAAG,CAAC,EAAE;QAC9B1E,KAAK,CAAC,IAAI,CAAC6E,WAAW,EAAE,iBAAiBoD,UAAU,EAAE,CAAC;MAC1D;IACJ,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IALIxF,eAAA,oBAMa6I,KAAuC,IAAK;MACrD,IAAIvL,cAAc,CAACuL,KAAK,CAACC,MAAM,CAAC,EAAE;QAC9B;MACJ;MAEA,MAAM;QAAExH;MAAmC,CAAC,GAAG,IAAI,CAACvB,KAAK;MACzD,MAAMgJ,GAAG,GAAGF,KAAK,CAACE,GAAG,CAACC,WAAW,CAAC,CAAC;MAEnC,QAAQD,GAAG;QACP,KAAK,GAAG;UACJxL,KAAK,CAAC,IAAI,CAAC6E,WAAW,EAAE,iCAAiC,EAAE,KAAK,CAAC;UACjEyG,KAAK,CAACI,cAAc,CAAC,CAAC;UACtB;QACJ,KAAK,WAAW;UACZ,IAAI,IAAI,CAACC,WAAW,CAAC,CAAC,KAAKzJ,cAAc,EAAE;YACvC,IAAI0J,QAAQ,CAACC,aAAa,IAAI,CAACD,QAAQ,CAACC,aAAa,CAACC,OAAO,CAAC,cAAc,CAAC,EAAE;cAC3E9L,KAAK,CAAC,IAAI,CAAC6E,WAAW,EAAE,mBAAmB,EAAE,KAAK,CAAC;cACnDyG,KAAK,CAACI,cAAc,CAAC,CAAC;YAC1B;UACJ,CAAC,MAAM,IAAIE,QAAQ,CAACC,aAAa,IAAI,CAACD,QAAQ,CAACC,aAAa,CAACC,OAAO,CAAC,cAAc,CAAC,EAAE;YAClF9L,KAAK,CAAC,IAAI,CAAC6E,WAAW,EAAE,mBAAmB,EAAE,KAAK,CAAC;YACnD,IAAI,CAAC5B,QAAQ,CAAC;cAAEgF,UAAU,EAAE;YAAE,CAAC,CAAC;YAChCqD,KAAK,CAACI,cAAc,CAAC,CAAC;UAC1B;UACA;QACJ,KAAK,GAAG;UACJ;QACJ,KAAK,GAAG;UACJ,IAAI,IAAI,CAACK,cAAc,EAAE;YACrB/L,KAAK,CAAC,IAAI,CAAC6E,WAAW,EAAE,uBAAuB,EAAE,KAAK,CAAC;YACvDyG,KAAK,CAACI,cAAc,CAAC,CAAC;UAC1B;UAEA;QACJ,KAAK,GAAG;UACJ,IAAI,IAAI,CAACK,cAAc,EAAE;YACrB,IAAI,CAACtI,WAAW,CAACM,YAAY,CAAC;YAC9BuH,KAAK,CAACI,cAAc,CAAC,CAAC;UAC1B;UAEA;QACJ,KAAK,GAAG;UACJ,IAAI,IAAI,CAACK,cAAc,EAAE;YACrB,IAAI,CAACC,MAAM,CAAC,CAAC;YACbV,KAAK,CAACI,cAAc,CAAC,CAAC;UAC1B;UAEA;QACJ,KAAK,GAAG;UACJ,IAAI,IAAI,CAACK,cAAc,EAAE;YACrB,IAAI,CAACrI,WAAW,CAAC,CAAC;YAClB4H,KAAK,CAACI,cAAc,CAAC,CAAC;UAC1B;UAEA;QACJ,KAAK,GAAG;UACJ,IAAI,IAAI,CAACK,cAAc,EAAE;YACrB,IAAI,CAACE,YAAY,CAAC,CAAC;YACnBX,KAAK,CAACI,cAAc,CAAC,CAAC;UAC1B;UAEA;QACJ;UACI,IAAI,CAACK,cAAc,GAAG,KAAK;UAC3B;MACR;MAEA,IAAI,CAACA,cAAc,GAAGP,GAAG,KAAK,GAAG;IACrC,CAAC;IAED;AACJ;AACA;AACA;AACA;IAJI/I,eAAA,mBAKYyJ,SAAiB,IAAK;MAC9B,IAAI,CAACjJ,QAAQ,CAAC;QAAEgB,aAAa,EAAEiI;MAAU,CAAC,EAAE,IAAI,CAACjF,iBAAiB,CAAC;IACvE,CAAC;IAED;AACJ;AACA;AACA;IAHIxE,eAAA,8BAIuByJ,SAAiB,IAAK;MACzC,MAAM;QAAErJ;MAAkB,CAAC,GAAG,IAAI,CAACE,KAAK;MACxC,IAAI,CAACE,QAAQ,CACT;QACIJ,iBAAiB,EAAEA,iBAAiB,GAAGqJ,SAAS,CAAE;MACtD,CAAC,EACD,IAAI,CAACjF,iBACT,CAAC;IACL,CAAC;IAED;AACJ;AACA;AACA;AACA;IAJIxE,eAAA,sBAKc,MAAgB,IAAI,CAAC0J,KAAK,CAACC,OAAO,CAAC/J,kBAAkB,CAAC,IAAIhB,cAAc;IAEtF;AACJ;AACA;AACA;AACA;AACA;IALIoB,eAAA,gDAMwC,MAAc;MAClD,MAAM;QAAE4J,OAAO;QAAEC,QAAQ;QAAEC;MAAQ,CAAC,GAAG,IAAI,CAAC/J,KAAK;MACjD,IAAIgK,eAAe,GAAGrK,qBAAqB;MAC3C,IAAIkK,OAAO,EAAE;QACTG,eAAe,GAAG,CAAC;MACvB,CAAC,MAAM,IAAIF,QAAQ,EAAE;QACjBE,eAAe,GAAG,CAAC;MACvB,CAAC,MAAM,IAAID,OAAO,EAAE;QAChBC,eAAe,GAAG,CAAC;MACvB;MACA,OAAOA,eAAe;IAC1B,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IALI/J,eAAA,yBAMkBgK,QAAkB,IAAW;MAC3C,IAAI,CAACN,KAAK,CAACO,OAAO,CAACrK,kBAAkB,EAAEoK,QAAQ,CAAC;MAChD,IAAI,CAACE,WAAW,CAAC,CAAC;IACtB,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IALIlK,eAAA,iCAM0BmK,WAAmB,IAAW;MACpD;MACA;MACA,MAAMC,eAAe,GAAG1K,qBAAqB,GAAGyK,WAAW,GAAG,CAAC;MAC/D,IAAI,CAAC3J,QAAQ,CAAC;QAAE4J;MAAgB,CAAC,CAAC;IACtC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IANIpK,eAAA,yBAQiB,CACb8C,IAAa,EACbuH,KAAa,EACbC,QAAoC,EACpCC,QAAoC,KAC7B;MACP,IAAI,CAACC,sBAAsB,CAACC,cAAc,CACtC3H,IAAI,EACJuH,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACR,MAAM;QACF,IAAI,CAACG,6BAA6B,CAAC5H,IAAI,EAAEuH,KAAK,EAAEE,QAAQ,CAAC;MAC7D,CAAC,EACD,IAAI,CAAC5H,aACT,CAAC;IACL,CAAC;IAAA3C,eAAA,wCAE+B,CAAC8C,IAAa,EAAEuH,KAAa,EAAEE,QAAoC,KAAW;MAC1G,MAAM;QAAEpK;MAAyB,CAAC,GAAG,IAAI,CAACG,KAAK;MAC/C,MAAM;QAAE4E,KAAK,GAAG,EAAE;QAAEhF;MAAW,CAAC,GAAGC,iBAAiB;MACpD,MAAMwK,YAAY,GAAGzF,KAAK,CAACE,GAAG,CAACwF,cAAc,IAAI;QAC7C,MAAMC,UAAU,GAAGlP,SAAS,CAACiP,cAAc,CAAC;QAC5C,IAAI9H,IAAI,CAAChC,EAAE,KAAK+J,UAAU,CAAC/J,EAAE,EAAE;UAC3B,MAAM8B,MAAM,GAAG9G,OAAO,CAAC+O,UAAU,EAAE,4BAA4B,EAAE,EAAE,CAAC;UACpEjI,MAAM,CAACkI,OAAO,CAACC,SAAS,IAAI;YACxB,IAAIA,SAAS,CAAChC,GAAG,CAACiC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,KAAKZ,KAAK,EAAE;cAC1CU,SAAS,CAACG,KAAK,GAAGX,QAAQ,CAAC,CAAC;YAChC;UACJ,CAAC,CAAC;QACN;QACA,OAAOM,UAAU;MACrB,CAAC,CAAC;MAEF,IAAI,CAACrK,QAAQ,CAAC;QACVL,iBAAiB,EAAE;UACf+E,KAAK,EAAEyF,YAAY;UACnBzK,UAAU;UACVQ,aAAa,EAAE;QACnB;MACJ,CAAC,CAAC;IACN,CAAC;IAjzCG,MAAM;MACFyK,OAAO;MACPC,WAAW;MACXC,eAAe;MACfC,QAAQ;MACRC,kBAAkB;MAClBC,mBAAmB;MACnBlK,YAAY,EAAZA,aAAY;MACZmK,UAAU;MACVC,kBAAkB;MAClB/J,MAAM,EAANA,OAAM;MACNC,aAAa,EAAbA,cAAa;MACb+J,KAAK;MACLC;IACkB,CAAC,GAAG7L,KAAK;IAE/B,IAAI,CAACuC,GAAG,GAAG,IAAI1F,GAAG,CAAC;MACfuO,OAAO;MACPU,UAAU,EAAE7M,4BAA4B;MACxC8B,EAAE,EAAE,GAAGtB,sBAAsB,GAAG8B,aAAY,EAAE;MAC9CgK,QAAQ;MACRC,kBAAkB;MAClBC,mBAAmB;MACnBC,UAAU;MACVC,kBAAkB;MAClBC,KAAK;MACLC;IACJ,CAAC,CAAC;IAEF,IAAI,CAAC9K,EAAE,GAAG7E,QAAQ,CAAC,MAAM,CAAC;IAE1B,IAAI,CAACqE,KAAK,GAAG;MACTH,iBAAiB,EAAE,CAAC,CAAC;MACrBqB,aAAa,EAAE6J,eAAe,IAAID,WAAW,GAAG,CAAC,CAAC;MAClD3J,eAAe,EAAE4J,eAAe;MAChCjL,iBAAiB,EAAE,CAAC;MACpBmH,SAAS,EAAE,EAAE;MACb/B,UAAU,EAAE,CAAC;MACb4E,eAAe,EAAE,CAAC;MAClBxC,uBAAuB,EAAE,KAAK;MAC9BnB,iBAAiB,EAAE,KAAK;MACxBtC,SAAS,EAAE,KAAK;MAChB8B,kBAAkB,EAAE,KAAK;MACzBkB,iBAAiB,EAAE,KAAK;MACxBsB,gBAAgB,EAAE,KAAK;MACvB1E,iBAAiB,EAAE,KAAK;MACxB1D,OAAO,EAAE,EAAE;MACXyL,QAAQ,EAAE,EAAE;MACZ/K,WAAW,EAAE,EAAE;MACfY,MAAM,EAANA,OAAM;MACNC,aAAa,EAAbA,cAAa;MACbhB,IAAI,EAAEpC;IACV,CAAC;EACL;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACIuN,UAAUA,CAAA,EAAS;IACf,IAAI,CAACzJ,GAAG,CAAC0J,OAAO,CAAC,IAAI,CAAC;EAC1B;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIC,oBAAoBA,CAAA,EAAG;IACnB,IAAI,CAACF,UAAU,CAAC,CAAC;EACrB;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIG,iBAAiBA,CAAA,EAAG;IAChB,MAAM;MAAEC,eAAe;MAAEC;IAAkC,CAAC,GAAG,IAAI,CAACrM,KAAK;IACzE,IAAI,CAACqC,WAAW,GAAG+G,QAAQ,CAACkD,cAAc,CAAC,IAAI,CAACvL,EAAE,CAAgB;IAClE,IAAI,CAACwL,UAAU,GAAG,IAAI,CAAClK,WAAW,CAACmK,iBAAgC;IAEnE,QAAQH,WAAW;MACf,KAAKhN,oBAAoB;QACrB,IAAI,CAAC6B,WAAW,CAAC,CAAC;QAClB;MACJ,KAAK5B,qBAAqB;QACtB,IAAI,CAAC8B,wBAAwB,CAAC,CAAC;QAC/B;MACJ;QACI,IAAI,CAACH,WAAW,CAACmL,eAAe,CAAC;IACzC;EACJ;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIK,kBAAkBA,CAAC;IAAEL,eAAe,EAAEM;EAAmC,CAAC,EAAEC,SAAgB,EAAQ;IAChG,MAAM;MAAEP;IAAsC,CAAC,GAAG,IAAI,CAACpM,KAAK;IAC5D,MAAM;MACFI,iBAAiB,EAAE;QAAEW;MAAG;IACrB,CAAC,GAAG4L,SAAS;IAEpB,IAAID,YAAY,KAAKN,eAAe,EAAE;MAClC;IACJ;IAEA,IAAI,OAAOA,eAAe,KAAK,QAAQ,IAAIrL,EAAE,KAAKqL,eAAe,EAAE;MAC/D,IAAI,CAACnL,WAAW,CAACmL,eAAe,CAAC;IACrC;EACJ;EA0BA;AACJ;AACA;AACA;AACA;AACA;EACIhL,wBAAwBA,CAAA,EAAG;IACvB,MAAM;MAAEwL,aAAa,GAAG,CAAC;IAAwB,CAAC,GAAG,IAAI,CAAC5M,KAAK;IAC/D,MAAM;MAAEK,iBAAiB;MAAEC;IAAe,CAAC,GAAG,IAAI,CAACC,KAAK;IACxD,MAAMsM,kBAAkB,GAAGjR,SAAS,CAACgR,aAAa,CAAC;IAEnD,IAAIvM,iBAAiB,KAAK,CAAC,EAAE;MACzB;MACAC,OAAO,CAACD,iBAAiB,CAAC,GAAGwM,kBAAkB,CAACC,MAAM;IAC1D;IAEA,IAAI,OAAOxM,OAAO,CAACD,iBAAiB,CAAC,KAAK,QAAQ,EAAE;MAChD;MACAwM,kBAAkB,CAACC,MAAM,GAAGxM,OAAO,CAACD,iBAAiB,CAAC;IAC1D;IAEA,IAAI,OAAOwM,kBAAkB,CAAClL,KAAK,KAAK,QAAQ,EAAE;MAC9C;MACAkL,kBAAkB,CAAClL,KAAK,GAAGxC,iBAAiB;IAChD;IACA;IACA,IAAI,CAACsB,QAAQ,CAAC;MACVO,WAAW,EAAE,EAAE;MACfZ,iBAAiB,EAAE,IAAI,CAACkC,yBAAyB,CAAC,CAAC;MACnDzB,IAAI,EAAEjC;IACV,CAAC,CAAC;IACF,IAAI,CAAC6L,sBAAsB,GAAG,IAAI3N,sBAAsB,CAAC,IAAI,CAACyF,GAAG,CAAC;IAClE,IAAI,CAACkI,sBAAsB,CAACsC,yBAAyB,CACjDF,kBAAkB,EAClB,IAAI,CAACG,uCAAuC,EAC5C,IAAI,CAACpK,aACT,CAAC;EACL;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACIN,yBAAyBA,CAAA,EAAe;IACpC,MAAM;MAAElC;IAAyB,CAAC,GAAG,IAAI,CAACG,KAAK;IAC/C,OAAO0M,QAAA,CAAc7M,iBAAiB,EAAE;MACpCO,aAAa,EAAE;IACnB,CAAC,CAAC;EACN;EAkBA;AACJ;AACA;AACA;AACA;AACA;EACIuM,gBAAgBA,CAAA,EAAG;IACf,MAAM;MAAEC;IAAgC,CAAC,GAAG,IAAI,CAACnN,KAAK;IACtD,MAAM;MACFI,iBAAiB,EAAE;QAAEO;MAAc;IAChC,CAAC,GAAG,IAAI,CAACJ,KAAK;;IAErB;IACA,IAAI,IAAI,CAAC6B,SAAS,IAAI,CAAC+K,SAAS,EAAE;MAC9B,IAAI,CAAC/K,SAAS,GAAG,KAAK;MACtB;IACJ;;IAEA;IACA,IAAIzB,aAAa,KAAK,GAAG,IAAI,CAACrD,kBAAkB,CAAC8L,QAAQ,CAACC,aAAa,CAAC,EAAE;MACtE7L,KAAK,CAAC,IAAI,CAAC6E,WAAW,EAAE,eAAe,CAAC;MACxC,IAAI,CAAC5B,QAAQ,CAAC;QAAEgF,UAAU,EAAE;MAAE,CAAC,CAAC;IACpC;IAEA,IAAI,CAACrD,SAAS,GAAG,KAAK;EAC1B;EA4BA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIO,0BAA0BA,CAACD,UAAsB,EAAEpB,sBAA+B,EAAQ;IACtF,MAAM;MAAE8L,UAAU;MAAE7L;IAAmC,CAAC,GAAG,IAAI,CAACvB,KAAK;IACrE,MAAM;MAAEqN,OAAO;MAAEtM,EAAE;MAAE0G;IAAiB,CAAC,GAAG/E,UAAU;IACpD,MAAM;MAAES;IAAgB,CAAC,GAAG,IAAI,CAAC5C,KAAK;IACtC,MAAMwL,QAAQ,GAAGhL,EAAE,KAAKQ,YAAY,GAAGkG,IAAI,GAAG,EAAE;;IAEhD;IACA,IAAI,CAACrE,WAAW,CAAC,CAAC;IAElB,IAAI,CAACC,gBAAgB,CAACX,UAAU,EAAES,QAAQ,EAAE,MAAM;MAC9C,IAAI7B,sBAAsB,EAAE;QACxB;QACA,IAAI,CAACb,QAAQ,CAAC;UAAEsL;QAAS,CAAC,EAAE,IAAI,CAACmB,gBAAgB,CAAC;QAClD,IAAIG,OAAO,EAAE;UACTD,UAAU,CAACxR,SAAS,CAACyR,OAAO,CAAC,CAAC;QAClC;MACJ,CAAC,MAAM;QACH,IAAI,CAAC5M,QAAQ,CAAC;UAAEsL;QAAS,CAAC,CAAC;MAC/B;IACJ,CAAC,CAAC;EACN;EA0KA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIuB,sBAAsBA,CAAC5K,UAAsB,EAAEpB,sBAA+B,EAAE;IAC5E,IAAIA,sBAAsB,EAAE;MACxB,IAAI,CAAC+B,gBAAgB,CAACX,UAAU,EAAEkB,SAAS,EAAE,IAAI,CAACsJ,gBAAgB,CAAC;IACvE,CAAC,MAAM;MACH,IAAI,CAAC7J,gBAAgB,CAACX,UAAU,CAAC;IACrC;EACJ;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIxB,WAAWA,CAACI,sBAA+B,GAAG,IAAI,EAAQ;IACtD,MAAM;MAAEC;IAAmC,CAAC,GAAG,IAAI,CAACvB,KAAK;;IAEzD;IACA,IAAI,CAACS,QAAQ,CAAC;MACVO,WAAW,EAAE,EAAE;MACfH,IAAI,EAAElC,YAAY;MAClByB,iBAAiB,EAAE,IAAI,CAACkC,yBAAyB,CAAC,CAAC;MACnDb,aAAa,EAAE;IACnB,CAAC,CAAC;;IAEF;IACA,IAAI,CAACc,GAAG,CAACgL,aAAa,CAAC,CAAC,CAACC,OAAO,CAC5BjM,YAAY,EACXmB,UAAsB,IAAK;MACxB,IAAI,CAAC4K,sBAAsB,CAAC5K,UAAU,EAAEpB,sBAAsB,CAAC;IACnE,CAAC,EACD,IAAI,CAACsB,aAAa,EAClB;MAAEC,MAAM,EAAEnF,uCAAuC;MAAEoF,UAAU,EAAE;IAAK,CACxE,CAAC;EACL;EA0FA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,MAAMO,gBAAgBA,CAClBX,UAAsB,EACtB8C,YAA6B,EAC7BF,QAAoB,GAAGtJ,IAAI,EACd;IACb,MAAMoJ,aAAyB,GAAGxJ,SAAS,CAAC8G,UAAU,CAAC;IACvD,MAAM;MAAEyC,KAAK,GAAG;IAAG,CAAC,GAAGC,aAAa;IAEpC,MAAMqI,OAAO,GAAG,IAAI,CAAClL,GAAG,CAACsC,UAAU,CAAC,KAAK,CAAC;IAC1C,MAAM6I,UAAU,GAAGlI,YAAY,GAAGA,YAAY,CAACzE,EAAE,GAAG,IAAI;IACxD,IAAI4M,eAA2C;IAE/C,MAAMC,cAAc,GAAG,MAAMC,OAAO,CAACC,GAAG,CACpC3I,KAAK,CAACE,GAAG,CAACtC,IAAI,IAAI;MACd,OAAOA,IAAI,CAACC,IAAI,KAAKlE,SAAS,GAAG2O,OAAO,CAACM,eAAe,CAAChL,IAAI,CAAC,GAAG,IAAI;IACzE,CAAC,CACL,CAAC;IAEDqC,aAAa,CAACD,KAAK,GAAGA,KAAK,CAACE,GAAG,CAAC,CAACtC,IAAI,EAAEiL,KAAK,KAAK;MAC7C,MAAMC,UAAU,GAAGlL,IAAI,CAAChC,EAAE,KAAK2M,UAAU;MACzC,MAAMQ,WAAW,GAAGD,UAAU,GAAGzI,YAAY,GAAGzC,IAAI;MACpD,MAAMoL,YAAY,GAAGP,cAAc,CAACI,KAAK,CAAC;MAE1C,MAAM9I,OAAO,GAAAxE,aAAA,CAAAA,aAAA,KACNwN,WAAW;QACd/K,QAAQ,EAAE8K,UAAU;QACpBE;MAAY,EACN;MAEV,IAAIpL,IAAI,CAACC,IAAI,KAAKlE,SAAS,IAAIqP,YAAY,IAAI,CAAC9Q,oBAAoB,CAAC6H,OAAO,CAAC,EAAE;QAC3E,IAAI,CAACkJ,0BAA0B,CAAClJ,OAAO,CAAC;MAC5C;;MAEA;MACA,IAAI+I,UAAU,EAAE;QACZN,eAAe,GAAGzI,OAAO;MAC7B;MAEA,OAAOA,OAAO;IAClB,CAAC,CAAC;IACF,IAAI,CAACzE,QAAQ,CAAC;MAAEL,iBAAiB,EAAEgF,aAAa;MAAEjC,QAAQ,EAAEwK;IAAgB,CAAC,EAAErI,QAAQ,CAAC;EAC5F;EAuqBA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI+I,MAAMA,CAAA,EAAG;IACL,MAAM;MACFjD,OAAO;MACPkD,OAAO;MACPxG,kBAAkB;MAClBnB,SAAS;MACTP,WAAW;MACXJ,UAAU;MACVqB,SAAS;MACTnD,iBAAiB;MACjByE,QAAQ;MACR7E,SAAS;MACTyK,SAAS;MACTC,mBAAmB;MACnBC,oBAAoB;MACpBpC,WAAW;MACXqC,QAAQ;MACR5E,QAAQ;MACRD,OAAO;MACP5G,OAAO;MACP0L,WAAW;MACXpD,QAAQ;MACRqD,OAAO;MACPC,UAAU;MACVC,QAAQ;MACRC,YAAY;MACZ1I,UAAU;MACV2I,SAAS;MACTC,QAAQ;MACRzD,kBAAkB;MAClBC,mBAAmB;MACnBlK,YAAY;MACZmK,UAAU;MACVC,kBAAkB;MAClBuD,UAAU;MACVC,UAAU;MACVC,qBAAqB;MACrBC,KAAK;MACLzD,KAAK;MACLC;IACkB,CAAC,GAAG,IAAI,CAAC7L,KAAK;IAEpC,MAAM;MACFI,iBAAiB;MACjBC,iBAAiB;MACjBqB,eAAe;MACf8F,SAAS;MACT6C,eAAe;MACfxC,uBAAuB;MACvBnB,iBAAiB;MACjBtC,SAAS;MACT8B,kBAAkB;MAClBkB,iBAAiB;MACjBsB,gBAAgB;MAChB1E,iBAAiB;MACjB1D,OAAO;MACPyL,QAAQ;MACR5I,QAAQ;MACRtC;IACG,CAAC,GAAG,IAAI,CAACN,KAAK;IAErB,MAAM;MAAEQ,EAAE;MAAEoB,MAAM;MAAE0B,WAAW;MAAEyL;IAAuB,CAAC,GAAGlP,iBAAiB;IAC7E,MAAM;MAAE2D;IAA8B,CAAC,GAAGF,WAAW,IAAI,CAAC,CAAC;IAC3D,MAAM0L,cAAc,GAAG5T,UAAU,CAAC,QAAQ,EAAE4S,SAAS,CAAC;IACtD,MAAMiB,WAAoB,GAAG1L,SAAS,IAAI,CAAC,CAACC,UAAU;IACtD,MAAM0L,WAAoB,GAAG3H,kBAAkB,IAAI,CAAC,CAAC/D,UAAU;IAC/D,MAAM2L,qBAA8B,GAAGrD,WAAW,KAAK/M,qBAAqB;IAC5E,MAAMqQ,WAAoB,GAAG9O,IAAI,KAAKnC,UAAU;IAEhD,MAAMuL,QAAQ,GAAG,IAAI,CAACd,WAAW,CAAC,CAAC;IACnC,MAAMyG,kBAAkB,GAAG,IAAI,CAACC,qCAAqC,CAAC,CAAC;IAEvE,MAAMC,aAAsB,GAAG,CAAC,CAACxP,OAAO,CAACD,iBAAiB,GAAG,CAAC,CAAC;IAC/D,MAAM0P,iBAA0B,GAAG1P,iBAAiB,KAAK,CAAC,IAAI,CAAC,CAACC,OAAO,CAACD,iBAAiB,GAAG,CAAC,CAAC;;IAE9F;IACA;IACA,oBACI5E,KAAA,CAAAuU,aAAA,CAACrT,gBAAgB;MAAC4O,QAAQ,EAAEA,QAAS;MAACuD,QAAQ,EAAEA;IAAS,gBACrDrT,KAAA,CAAAuU,aAAA,CAAC7T,eAAe;MAAC8T,SAAS,EAAE,IAAI,CAAC5N;IAAY,gBACzC5G,KAAA,CAAAuU,aAAA;MAAKjP,EAAE,EAAE,IAAI,CAACA,EAAG;MAACwN,SAAS,EAAEgB,cAAe;MAACW,GAAG,EAAErB,UAAW;MAAC,eAAY;IAAkB,gBACxFpT,KAAA,CAAAuU,aAAA,CAACpT,aAAa;MAACuT,QAAQ,EAAE,IAAI,IAAI,CAACpP,EAAE,EAAG;MAACsO,KAAK,EAAEA;IAAM,CAAE,CAAC,eACxD5T,KAAA,CAAAuU,aAAA;MAAKzB,SAAS,EAAC,gBAAgB;MAAC6B,SAAS,EAAE,IAAI,CAACA,SAAU;MAACC,QAAQ,EAAE;IAAE,GAClE,CAACX,qBAAqB,iBAAIjU,KAAA,CAAAuU,aAAA,CAAC1T,MAAM;MAACuE,IAAI,EAAEA,IAAK;MAAC+N,OAAO,EAAEA,OAAQ;MAAC0B,QAAQ,EAAE,IAAI,CAACnP;IAAO,CAAE,CAAC,eAE1F1F,KAAA,CAAAuU,aAAA,CAACxT,SAAS;MACNqE,IAAI,EAAEA,IAAK;MACXoJ,QAAQ,EAAEA,QAAS;MACnBsG,MAAM,EAAEhP,YAAa;MACrBsI,OAAO,EAAEA,OAAQ;MACjBkC,QAAQ,EAAEA,QAAS;MACnB3L,iBAAiB,EAAEA,iBAAkB;MACrC0D,SAAS,EAAE0L,WAAY;MACvB1H,kBAAkB,EAAE2H,WAAY;MAChCpF,eAAe,EAAEA,eAAgB;MACjCmG,cAAc,EAAE7Q,qBAAsB;MACtC8Q,cAAc,EAAE7Q,qBAAsB;MACtC8Q,0BAA0B,EAAEd,kBAAmB;MAC/CX,QAAQ,EAAE,IAAI,CAACzF,MAAO;MACtBzB,QAAQ,EAAE,IAAI,CAAC0B,YAAa;MAC5BkH,sBAAsB,EAAE,IAAI,CAACA,sBAAuB;MACpDC,WAAW,EAAE,IAAI,CAAC3P,WAAY;MAC9B4P,YAAY,EAAE,IAAI,CAACC,IAAK;MACxBC,gBAAgB,EAAE,IAAI,CAACC,cAAe;MACtCC,aAAa,EAAE,IAAI,CAAC5O;IAAY,CACnC,CAAC,eAEF5G,KAAA,CAAAuU,aAAA,CAAC5S,OAAO;MACJuJ,SAAS,EAAEA,SAAU;MACrBP,WAAW,EAAEA,WAAY;MACzBJ,UAAU,EAAEA,UAAW;MACvBqB,SAAS,EAAEA,SAAU;MACrBsB,QAAQ,EAAEA,QAAS;MACnBvI,iBAAiB,EAAEA,iBAAkB;MACrCsO,QAAQ,EAAEA,QAAS;MACnBrE,eAAe,EAAE6G,IAAI,CAACC,GAAG,CAAC9G,eAAe,EAAEuF,kBAAkB,CAAE;MAC/D9F,QAAQ,EAAEA,QAAS;MACnBD,OAAO,EAAEA,OAAQ;MACjB5G,OAAO,EAAEA,OAAQ;MACjB0L,WAAW,EAAEA,WAAY;MACzBI,YAAY,EAAEA,YAAa;MAC3B6B,WAAW,EAAE,IAAI,CAACA,WAAY;MAC9BQ,YAAY,EAAE,IAAI,CAACC,MAAO;MAC1BC,cAAc,EAAE,IAAI,CAACC,QAAS;MAC9BC,aAAa,EAAE,IAAI,CAACtO,OAAQ;MAC5BuO,YAAY,EAAE,IAAI,CAAC/J,MAAO;MAC1BgK,YAAY,EAAE,IAAI,CAAClN,MAAO;MAC1BmN,WAAW,EAAE,IAAI,CAACrN,KAAM;MACxBsN,gBAAgB,EAAE,IAAI,CAAClH,cAAe;MACtCmG,YAAY,EAAE,IAAI,CAACC,IAAK;MACxBG,aAAa,EAAE,IAAI,CAAC5O,WAAY;MAChCxB,IAAI,EAAEA,IAAK;MACXoJ,QAAQ,EAAEA;IAAS,CACtB,CAAC,EACD,CAAC0F,WAAW,iBACTlU,KAAA,CAAAuU,aAAA,CAACjT,MAAM,qBACHtB,KAAA,CAAAuU,aAAA,CAACzT,UAAU;MACPuT,aAAa,EAAEA,aAAc;MAC7B+B,aAAa,EAAE9B,iBAAkB;MACjClG,OAAO,EAAEA,OAAQ;MACjB1H,MAAM,EAAEA,MAAO;MACf2P,cAAc,EAAE,IAAI,CAACC,QAAS;MAC9BC,QAAQ,EAAEtQ,eAAgB;MAC1B4N,UAAU,EAAEA,UAAW;MACvB2C,uBAAuB,EAAE,IAAI,CAACC;IAAoB,CACrD,CACG,CAEX,CAAC,EACL1C,WAAW,IAAI,CAAC,CAAC,IAAI,CAACjD,UAAU,gBAC7B9Q,KAAA,CAAAuU,aAAA,CAAC3T,YAAY;MACT8V,MAAM,EAAEnO,iBAAkB;MAC1BoI,eAAe,EAAErL,EAAG;MACpB6K,KAAK,EAAEA,KAAM;MACbF,UAAU,EAAEA,UAAW;MACvBC,kBAAkB,EAAEA,kBAAmB;MACvCP,OAAO,EAAEA,OAAQ;MACjBS,UAAU,EAAEA,UAAW;MACvBuG,OAAO,EAAE,IAAI,CAACC,oBAAqB;MACnCC,aAAa,EAAE,IAAI,CAACjQ,WAAY;MAChCkK,UAAU,EAAE,IAAI,CAACA,UAAW;MAC5B0C,QAAQ,EAAEA,QAAS;MACnBR,oBAAoB,EAAEA,oBAAqB;MAC3CjD,kBAAkB,EAAEA,kBAAmB;MACvCC,mBAAmB,EAAEA;IAAoB,CAC5C,CAAC,GACF,IAAI,EACPgE,WAAW,IAAI,CAAC,CAAC,IAAI,CAAClD,UAAU,gBAC7B9Q,KAAA,CAAAuU,aAAA,CAAC5T,kBAAkB;MACf+V,MAAM,EAAEtK,uBAAwB;MAChCE,QAAQ,EAAE,IAAI,CAACH,6BAA8B;MAC7C2K,QAAQ,EAAE,IAAI,CAACnP,WAAY;MAC3BgB,SAAS,EAAEA,SAAU;MACrBoD,SAAS,EAAEA,SAAU;MACrB8K,aAAa,EAAE,IAAI,CAACjQ,WAAY;MAChCkK,UAAU,EAAE,IAAI,CAACA;IAAW,CAC/B,CAAC,GACF,IAAI,EACP5F,SAAS,IAAIxD,QAAQ,IAAI,CAAC,CAAC,IAAI,CAACoJ,UAAU,gBACvC9Q,KAAA,CAAAuU,aAAA,CAAC7S,wBAAwB;MACrBgV,MAAM,EAAEzL,iBAAkB;MAC1BE,QAAQ,EAAE,IAAI,CAACH,cAAe;MAC9B8L,QAAQ,EAAE,IAAI,CAACnP,WAAY;MAC3BL,IAAI,EAAEI,QAAS;MACfiB,SAAS,EAAEA,SAAU;MACrBkO,aAAa,EAAE,IAAI,CAACjQ,WAAY;MAChCkK,UAAU,EAAE,IAAI,CAACA;IAAW,CAC/B,CAAC,GACF,IAAI,EACPlF,SAAS,IAAIlE,QAAQ,IAAI,CAAC,CAAC,IAAI,CAACoJ,UAAU,gBACvC9Q,KAAA,CAAAuU,aAAA,CAAC9S,YAAY;MACTiV,MAAM,EAAE/K,iBAAkB;MAC1BE,QAAQ,EAAE,IAAI,CAACL,cAAe;MAC9BsL,QAAQ,EAAE,IAAI,CAACnP,WAAY;MAC3BL,IAAI,EAAEI,QAAS;MACfiB,SAAS,EAAEA,SAAU;MACrBoD,SAAS,EAAEA,SAAU;MACrB8K,aAAa,EAAE,IAAI,CAACjQ,WAAY;MAChCkK,UAAU,EAAE,IAAI,CAACA;IAAW,CAC/B,CAAC,GACF,IAAI,EACP5D,QAAQ,IAAIxF,QAAQ,IAAI,CAAC,CAAC,IAAI,CAACoJ,UAAU,gBACtC9Q,KAAA,CAAAuU,aAAA,CAAC/S,WAAW;MACRkV,MAAM,EAAEzJ,gBAAiB;MACzBxE,iBAAiB,EAAEA,iBAAkB;MACrCsO,mBAAmB,EAAE,IAAI,CAACC,iBAAkB;MAC5CF,QAAQ,EAAE,IAAI,CAAC9N,iBAAkB;MACjC1B,IAAI,EAAEI,QAAS;MACfiB,SAAS,EAAEA,SAAU;MACrBkO,aAAa,EAAE,IAAI,CAACjQ,WAAY;MAChCkK,UAAU,EAAE,IAAI,CAACA;IAAW,CAC/B,CAAC,GACF,IAAI,EACPvG,UAAU,IAAI7C,QAAQ,IAAI,CAAC,CAAC,IAAI,CAACoJ,UAAU,gBACxC9Q,KAAA,CAAAuU,aAAA,CAAChT,aAAa;MACVmV,MAAM,EAAEjM,kBAAmB;MAC3BjD,OAAO,EAAEA,OAAQ;MACjBsP,QAAQ,EAAE,IAAI,CAACnP,WAAY;MAC3BL,IAAI,EAAEI,QAAS;MACf/C,iBAAiB,EAAExE,SAAS,CAACwE,iBAAiB,CAAE;MAChDwL,KAAK,EAAEA,KAAM;MACb0G,aAAa,EAAE,IAAI,CAACjQ,WAAY;MAChCkK,UAAU,EAAE,IAAI,CAACA,UAAW;MAC5ByC,SAAS,EAAEA,SAAU;MACrB3I,UAAU,EAAEA,UAAW;MACvBD,WAAW,EAAEA,WAAY;MACzBsM,KAAK,EAAE,IAAI,CAACnQ,GAAG,CAACoQ,QAAQ,CAAC,CAAE;MAC3BvH,OAAO,EAAEA,OAAQ;MACjBkD,OAAO,EAAEA,OAAQ;MACjBY,UAAU,EAAEA,UAAW;MACvBC,UAAU,EAAEA,UAAW;MACvBC,qBAAqB,EAAEA,qBAAsB;MAC7C1D,UAAU,EAAEA,UAAW;MACvBC,kBAAkB,EAAEA,kBAAmB;MACvC6C,mBAAmB,EAAEA,mBAAoB;MACzChD,kBAAkB,EAAEA,kBAAmB;MACvCC,mBAAmB,EAAEA;IAAoB,CAC5C,CAAC,GACF,IACH,CACQ,CACH,CAAC;IAEvB;IACA;EACJ;AACJ;AAACxL,eAAA,CAjnDKH,eAAe,kBAqBK;EAClByB,YAAY,EAAEhD,YAAY;EAC1BqD,MAAM,EAAExD,UAAU;EAClByD,aAAa,EAAE1D,QAAQ;EACvBiI,WAAW,EAAE,IAAI;EACjBO,SAAS,EAAE,IAAI;EACf7C,SAAS,EAAE,IAAI;EACfuD,SAAS,EAAE,IAAI;EACfsB,QAAQ,EAAE,IAAI;EACd3C,UAAU,EAAE,IAAI;EAChB9B,iBAAiB,EAAE,IAAI;EACvB4D,kBAAkB,EAAE,IAAI;EACxBqF,SAAS,EAAE,KAAK;EAChB/B,OAAO,EAAErN,oBAAoB;EAC7BuQ,OAAO,EAAEtQ,oBAAoB;EAC7BkR,UAAU,EAAEjR,uBAAuB;EACnC4N,UAAU,EAAE/N,uBAAuB;EACnCyQ,SAAS,EAAE,EAAE;EACb3H,QAAQ,EAAE5K,IAAI;EACdqK,UAAU,EAAErK,IAAI;EAChBgT,SAAS,EAAEhT,IAAI;EACfsL,QAAQ,EAAEtL,IAAI;EACd+L,QAAQ,EAAE/L,IAAI;EACduJ,QAAQ,EAAEvJ,IAAI;EACdiT,QAAQ,EAAEjT,IAAI;EACdoR,UAAU,EAAEpR,IAAI;EAChBqQ,WAAW,EAAEjN,kBAAkB;EAC/BiM,WAAW,EAAEnM,mBAAmB;EAChCoM,eAAe,EAAEnM,iBAAiB;EAClCqP,mBAAmB,EAAE;IACjBoE,mBAAmB,EAAE,CAAC;EAC1B,CAAC;EACDnE,oBAAoB,EAAE,CAAC;AAC3B,CAAC;AA6jDL,SAAS3O,eAAe,IAAI+S,wBAAwB;AACpD,eAAe/W,IAAI,CAAC,CAACW,cAAc,EAAEmB,mBAAmB,EAAEC,mBAAmB,CAAC,CAAC,CAACiC,eAAe,CAAC","ignoreList":[]}
|
|
@@ -439,6 +439,14 @@ declare class ContentExplorer extends Component<ContentExplorerProps, State> {
|
|
|
439
439
|
* @return {void}
|
|
440
440
|
*/
|
|
441
441
|
createFolderCallback: (name?: string) => void;
|
|
442
|
+
/**
|
|
443
|
+
* Throttled version of createFolderCallback to prevent errors from rapid clicking.
|
|
444
|
+
*
|
|
445
|
+
* @private
|
|
446
|
+
* @param {string} [name] - folder name
|
|
447
|
+
* @return {void}
|
|
448
|
+
*/
|
|
449
|
+
throttledCreateFolderCallback: import("lodash").DebouncedFuncLeading<(name?: string) => void>;
|
|
442
450
|
/**
|
|
443
451
|
* Selects the clicked file and then shares it
|
|
444
452
|
*
|