box-ui-elements 23.4.0-beta.24 → 23.4.0-beta.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/dist/explorer.js +1 -1
  2. package/dist/explorer.js.LICENSE.txt +9 -0
  3. package/dist/openwith.js +1 -1
  4. package/dist/openwith.js.LICENSE.txt +9 -0
  5. package/dist/picker.js +1 -1
  6. package/dist/picker.js.LICENSE.txt +9 -0
  7. package/dist/preview.js +1 -1
  8. package/dist/preview.js.LICENSE.txt +9 -0
  9. package/dist/sharing.js +1 -1
  10. package/dist/sharing.js.LICENSE.txt +9 -0
  11. package/dist/sidebar.js +1 -1
  12. package/dist/sidebar.js.LICENSE.txt +9 -0
  13. package/dist/uploader.js +1 -1
  14. package/dist/uploader.js.LICENSE.txt +9 -0
  15. package/es/api/Feed.js +2 -2
  16. package/es/api/Metadata.js +2 -2
  17. package/es/api/Versions.js +2 -2
  18. package/es/api/tasks/TasksBase.js +2 -2
  19. package/es/api/tasks/TasksNew.js +2 -2
  20. package/es/components/accessible-svg/AccessibleSVG.js +2 -2
  21. package/es/components/badge/Badge.js +2 -2
  22. package/es/components/badge/BetaBadge.js +2 -2
  23. package/es/components/badge/TrialBadge.js +2 -2
  24. package/es/components/badge/UpgradeBadge.js +2 -2
  25. package/es/components/breadcrumb/Breadcrumb.js +2 -1
  26. package/es/components/breadcrumb/Breadcrumb.js.flow +1 -0
  27. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  28. package/es/components/button/Button.js +2 -2
  29. package/es/components/button/Button.stories.js +3 -20
  30. package/es/components/button/Button.stories.js.map +1 -1
  31. package/es/components/button-group/ButtonGroup.stories.js +1 -4
  32. package/es/components/button-group/ButtonGroup.stories.js.map +1 -1
  33. package/es/components/button-group/__test__/ButtonGroup.test.js +1 -1
  34. package/es/components/button-group/__test__/ButtonGroup.test.js.map +1 -1
  35. package/es/components/checkbox/Checkbox.js +2 -2
  36. package/es/components/checkbox/CheckboxField.js +2 -2
  37. package/es/components/contact-datalist-item/ContactDatalistItem.js +2 -2
  38. package/es/components/count-badge/CountBadge.js +2 -2
  39. package/es/components/datalist-item/DatalistItem.js +2 -2
  40. package/es/components/date-picker/DatePicker.js +1 -1
  41. package/es/components/date-picker/DatePicker.js.map +1 -1
  42. package/es/components/fieldset/Fieldset.js +2 -2
  43. package/es/components/flyout/Overlay.js +2 -2
  44. package/es/components/focus-trap/FocusTrap.js +2 -2
  45. package/es/components/form-elements/draft-js-mention-selector/DraftJSMentionSelectorCore.js +2 -2
  46. package/es/components/ghost/Ghost.js +2 -2
  47. package/es/components/grid-view/GridView.js +1 -1
  48. package/es/components/grid-view/GridView.js.map +1 -1
  49. package/es/components/guide-tooltip/GuideTooltip.js +2 -2
  50. package/es/components/guide-tooltip/GuideTooltip.stories.js +5 -5
  51. package/es/components/guide-tooltip/GuideTooltip.stories.js.map +1 -1
  52. package/es/components/header/Header.js +2 -2
  53. package/es/components/hotkeys/HotkeyFriendlyModal.js +2 -2
  54. package/es/components/i18n/FormattedCompMessage.js +2 -2
  55. package/es/components/i18n/Param.js +1 -1
  56. package/es/components/i18n/Param.js.map +1 -1
  57. package/es/components/image-tooltip/ImageTooltip.js +2 -2
  58. package/es/components/inline-notice/InlineNotice.js +2 -2
  59. package/es/components/label/HiddenLabel.js +2 -2
  60. package/es/components/label/Label.js +1 -1
  61. package/es/components/label/Label.js.map +1 -1
  62. package/es/components/label/LabelPrimitive.js +2 -2
  63. package/es/components/label/StandardLabel.js +2 -2
  64. package/es/components/label-pill/LabelPill.js +2 -2
  65. package/es/components/label-pill/LabelPillIcon.js +2 -2
  66. package/es/components/label-pill/LabelPillText.js +2 -2
  67. package/es/components/link/Link.js +2 -2
  68. package/es/components/link/LinkBase.js +2 -2
  69. package/es/components/link/LinkButton.js +2 -2
  70. package/es/components/link/LinkPrimaryButton.js +2 -2
  71. package/es/components/link/stories/Link.stories.js +2 -2
  72. package/es/components/link/stories/LinkButton.stories.js +2 -2
  73. package/es/components/link/stories/LinkPrimaryButton.stories.js +2 -2
  74. package/es/components/loading-indicator/LoadingIndicatorWrapper.js +2 -2
  75. package/es/components/loading-indicator/makeLoadable.js +2 -2
  76. package/es/components/media/Media.js +2 -2
  77. package/es/components/media/MediaBody.js +2 -2
  78. package/es/components/media/MediaFigure.js +2 -2
  79. package/es/components/media/MediaMenu.js +2 -2
  80. package/es/components/media-query/withMediaQuery.js +2 -2
  81. package/es/components/menu/Menu.js +2 -2
  82. package/es/components/menu/MenuHeader.js +2 -2
  83. package/es/components/menu/MenuItem.js +2 -2
  84. package/es/components/menu/MenuLinkItem.js +2 -2
  85. package/es/components/menu/MenuSectionHeader.js +2 -2
  86. package/es/components/menu/SubmenuItem.js +2 -2
  87. package/es/components/modal/Modal.js +2 -2
  88. package/es/components/modal/ModalActions.js +2 -2
  89. package/es/components/modal/ModalDialog.js +2 -2
  90. package/es/components/nav-sidebar/NavSidebar.js +2 -2
  91. package/es/components/nav-sidebar/NavSidebar.stories.js +1 -1
  92. package/es/components/nav-sidebar/NavSidebar.stories.js.flow +1 -1
  93. package/es/components/nav-sidebar/NavSidebar.stories.js.map +1 -1
  94. package/es/components/pill-selector-dropdown/PillSelector.js +2 -2
  95. package/es/components/pill-selector-dropdown/RoundPill.js +2 -2
  96. package/es/components/plain-button/PlainButton.js +2 -2
  97. package/es/components/plain-button/PlainButton.stories.js +0 -2
  98. package/es/components/plain-button/PlainButton.stories.js.map +1 -1
  99. package/es/components/portal/Portal.js +1 -1
  100. package/es/components/portal/Portal.js.map +1 -1
  101. package/es/components/primary-button/PrimaryButton.js +2 -2
  102. package/es/components/primary-button/PrimaryButton.stories.js +1 -4
  103. package/es/components/primary-button/PrimaryButton.stories.js.map +1 -1
  104. package/es/components/radar/RadarAnimation.js +2 -2
  105. package/es/components/radio/RadioButton.js +2 -2
  106. package/es/components/radio/RadioButtonField.js +2 -2
  107. package/es/components/radio/RadioGroupField.js +2 -2
  108. package/es/components/react-virtualized-helpers/withInfiniteLoader.js +2 -2
  109. package/es/components/scroll-wrapper/ScrollWrapper.js +2 -2
  110. package/es/components/search-form/SearchForm.js +2 -2
  111. package/es/components/section/Section.js +2 -2
  112. package/es/components/select/Select.js +2 -2
  113. package/es/components/select-button/SelectButton.js +2 -2
  114. package/es/components/select-field/MultiSelectField.js +2 -2
  115. package/es/components/select-field/SelectField.js +2 -2
  116. package/es/components/select-field/SingleSelectField.js +2 -2
  117. package/es/components/selector-dropdown/SelectorDropdownExample.js +2 -2
  118. package/es/components/sidebar-toggle-button/SidebarToggleButton.js +2 -2
  119. package/es/components/slide-carousel/Slide.js +2 -2
  120. package/es/components/slide-carousel/SlideButton.js +2 -2
  121. package/es/components/table/Table.js +2 -2
  122. package/es/components/table/TableCell.js +2 -2
  123. package/es/components/table/TableHeaderCell.js +2 -2
  124. package/es/components/table/TableRow.js +2 -2
  125. package/es/components/text-area/TextArea.js +2 -2
  126. package/es/components/text-area/TextAreaField.js +2 -2
  127. package/es/components/text-input/TextInput.js +2 -2
  128. package/es/components/text-input/TextInputField.js +2 -2
  129. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js +2 -2
  130. package/es/components/thumbnail-card/ThumbnailCard.js +2 -2
  131. package/es/components/toggle/Toggle.js +2 -2
  132. package/es/components/toggle/ToggleField.js +2 -2
  133. package/es/components/tooltip/Tooltip.stories.js +8 -8
  134. package/es/components/tooltip/Tooltip.stories.js.map +1 -1
  135. package/es/elements/common/Tooltip.js +2 -2
  136. package/es/elements/common/back-button/BackButton.js +2 -2
  137. package/es/elements/common/content-answers/ContentAnswers.js +2 -2
  138. package/es/elements/common/droppable/makeDroppable.js +2 -2
  139. package/es/elements/common/error-boundary/ErrorBoundary.js +2 -2
  140. package/es/elements/common/feature-checking/withFeatureProvider.js +2 -2
  141. package/es/elements/common/item/ItemTypeIcon.js +2 -2
  142. package/es/elements/common/item/iconCellRenderer.js +2 -2
  143. package/es/elements/common/item/iconCellRenderer.js.map +1 -1
  144. package/es/elements/common/item/nameCellRenderer.js +2 -2
  145. package/es/elements/common/item/nameCellRenderer.js.map +1 -1
  146. package/es/elements/common/item-grid/ItemGrid.js +2 -2
  147. package/es/elements/common/item-list/ItemList.js +2 -2
  148. package/es/elements/common/logger/Logger.js +2 -2
  149. package/es/elements/common/makePopup.js +2 -2
  150. package/es/elements/common/makeResponsive.js +2 -2
  151. package/es/elements/common/nav-router/NavRouter.js +2 -2
  152. package/es/elements/common/nav-router/withNavRouter.js +2 -2
  153. package/es/elements/common/pagination/Pagination.js +2 -2
  154. package/es/elements/common/selectors/version.js +2 -2
  155. package/es/elements/common/stories/PreviewDialog.stories.js +1 -1
  156. package/es/elements/common/stories/PreviewDialog.stories.js.map +1 -1
  157. package/es/elements/common/sub-header/ViewModeChangeButton.js +2 -2
  158. package/es/elements/content-explorer/Content.js +2 -2
  159. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +1 -1
  160. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.map +1 -1
  161. package/es/elements/content-explorer/stories/RenameDialog.stories.js +1 -1
  162. package/es/elements/content-explorer/stories/RenameDialog.stories.js.map +1 -1
  163. package/es/elements/content-explorer/stories/ShareDialog.stories.js +1 -1
  164. package/es/elements/content-explorer/stories/ShareDialog.stories.js.map +1 -1
  165. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +1 -1
  166. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.flow +1 -2
  167. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.map +1 -1
  168. package/es/elements/content-picker/ContentPicker.js +1 -2
  169. package/es/elements/content-picker/ContentPicker.js.flow +0 -1
  170. package/es/elements/content-picker/ContentPicker.js.map +1 -1
  171. package/es/elements/content-picker/ItemList.js +1 -1
  172. package/es/elements/content-picker/ItemList.js.flow +1 -1
  173. package/es/elements/content-picker/ItemList.js.map +1 -1
  174. package/es/elements/content-picker/checkboxCellRenderer.js +2 -2
  175. package/es/elements/content-picker/checkboxCellRenderer.js.map +1 -1
  176. package/es/elements/content-picker/selectionCellRenderer.js +2 -2
  177. package/es/elements/content-picker/selectionCellRenderer.js.map +1 -1
  178. package/es/elements/content-picker/shareAccessCellRenderer.js +2 -2
  179. package/es/elements/content-picker/shareAccessCellRenderer.js.map +1 -1
  180. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +1 -25
  181. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.flow +1 -25
  182. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.map +1 -1
  183. package/es/elements/content-preview/ContentPreview.js +3 -3
  184. package/es/elements/content-preview/ContentPreview.js.map +1 -1
  185. package/es/elements/content-preview/preview-header/PreviewHeader.js +2 -2
  186. package/es/elements/content-preview/preview-header/PreviewHeader.js.map +1 -1
  187. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +1 -1
  188. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.flow +1 -1
  189. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.map +1 -1
  190. package/es/elements/content-sharing/ContentSharing.js +1 -1
  191. package/es/elements/content-sharing/ContentSharing.js.map +1 -1
  192. package/es/elements/content-sidebar/BoxAISidebar.js +2 -2
  193. package/es/elements/content-sidebar/BoxAISidebarContent.js +2 -2
  194. package/es/elements/content-sidebar/SidebarContent.js +2 -2
  195. package/es/elements/content-sidebar/SidebarNavSignButton.js +2 -2
  196. package/es/elements/content-sidebar/SidebarUtils.js +8 -8
  197. package/es/elements/content-sidebar/SidebarUtils.js.map +1 -1
  198. package/es/elements/content-sidebar/activity-feed/ActivityCard.js +2 -2
  199. package/es/elements/content-sidebar/activity-feed/SelectableActivityCard.js +2 -2
  200. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.js +2 -2
  201. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js +2 -2
  202. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityLink.js +2 -2
  203. package/es/elements/content-sidebar/activity-feed/common/activity-datestamp/ActivityDatestamp.js +2 -2
  204. package/es/elements/content-sidebar/activity-feed/common/activity-error/ActivityError.js +2 -2
  205. package/es/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.js +2 -2
  206. package/es/elements/content-sidebar/activity-feed/common/user-link/UserLink.js +2 -2
  207. package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js +2 -2
  208. package/es/elements/content-sidebar/additional-tabs/AdditionalTab.js +2 -2
  209. package/es/elements/content-sidebar/fetchers/metadataTaxonomyFetcher.js +2 -2
  210. package/es/elements/content-sidebar/stories/MetadataSidebarRedesign.stories.js +1 -1
  211. package/es/elements/content-sidebar/stories/MetadataSidebarRedesign.stories.js.map +1 -1
  212. package/es/elements/content-sidebar/stories/tests/BoxAISidebar-visual.stories.js +1 -1
  213. package/es/elements/content-sidebar/stories/tests/BoxAISidebar-visual.stories.js.map +1 -1
  214. package/es/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.js +1 -1
  215. package/es/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.js.map +1 -1
  216. package/es/elements/content-sidebar/versions/VersionsGroup.js +2 -2
  217. package/es/elements/content-sidebar/versions/VersionsItemAction.js +2 -2
  218. package/es/elements/content-sidebar/versions/VersionsList.js +2 -2
  219. package/es/elements/content-sidebar/versions/VersionsMenu.js +2 -2
  220. package/es/elements/content-sidebar/versions/VersionsSidebar.js +2 -2
  221. package/es/elements/content-sidebar/withErrorHandling.js +2 -2
  222. package/es/elements/content-uploader/actionCellRenderer.js +2 -2
  223. package/es/elements/content-uploader/actionCellRenderer.js.map +1 -1
  224. package/es/elements/content-uploader/nameCellRenderer.js +2 -2
  225. package/es/elements/content-uploader/nameCellRenderer.js.map +1 -1
  226. package/es/elements/content-uploader/progressCellRenderer.js +2 -2
  227. package/es/elements/content-uploader/progressCellRenderer.js.map +1 -1
  228. package/es/elements/content-uploader/removeCellRenderer.js +2 -2
  229. package/es/elements/content-uploader/removeCellRenderer.js.map +1 -1
  230. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +1 -1
  231. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.flow +1 -1
  232. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.map +1 -1
  233. package/es/elements/wrappers/ContentExplorer.js +1 -1
  234. package/es/elements/wrappers/ContentExplorer.js.map +1 -1
  235. package/es/elements/wrappers/ContentOpenWith.js +1 -1
  236. package/es/elements/wrappers/ContentOpenWith.js.map +1 -1
  237. package/es/elements/wrappers/ContentPicker.js +3 -3
  238. package/es/elements/wrappers/ContentPicker.js.map +1 -1
  239. package/es/elements/wrappers/ContentPreview.js +1 -1
  240. package/es/elements/wrappers/ContentPreview.js.map +1 -1
  241. package/es/elements/wrappers/ContentSharing.js +1 -1
  242. package/es/elements/wrappers/ContentSharing.js.map +1 -1
  243. package/es/elements/wrappers/ContentSidebar.js +1 -1
  244. package/es/elements/wrappers/ContentSidebar.js.map +1 -1
  245. package/es/elements/wrappers/ContentUploader.js +3 -3
  246. package/es/elements/wrappers/ContentUploader.js.map +1 -1
  247. package/es/features/beta-feedback/BetaFeedbackBadge.js +2 -2
  248. package/es/features/classification/EditClassificationButton.js +2 -2
  249. package/es/features/collaborator-avatars/CollaboratorAvatarItem.js +2 -2
  250. package/es/features/collaborator-avatars/CollaboratorList.js +1 -1
  251. package/es/features/collaborator-avatars/CollaboratorList.js.map +1 -1
  252. package/es/features/collapsible-sidebar/CollapsibleSidebar.stories.js +1 -1
  253. package/es/features/collapsible-sidebar/CollapsibleSidebar.stories.js.map +1 -1
  254. package/es/features/collapsible-sidebar/CollapsibleSidebarMenuItem.js +2 -2
  255. package/es/features/collapsible-sidebar/CollapsibleSidebarNav.js +2 -2
  256. package/es/features/content-explorer/content-explorer/ContentExplorer.js +2 -2
  257. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +2 -2
  258. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +2 -2
  259. package/es/features/content-insights/CompactCount.js +2 -2
  260. package/es/features/header-flyout/HeaderFlyout.js +2 -2
  261. package/es/features/invite-collaborators-modal/InviteCollaboratorsModal.js +2 -2
  262. package/es/features/item-details/RetentionPolicy.js +2 -1
  263. package/es/features/item-details/RetentionPolicy.js.flow +5 -1
  264. package/es/features/item-details/RetentionPolicy.js.map +1 -1
  265. package/es/features/item-details/VersionHistoryLink.js +2 -2
  266. package/es/features/left-sidebar/LeftSidebarDropWrapper.js +2 -2
  267. package/es/features/message-center/components/collapsibile-scrollbar/CollapsibleScrollbar.js +2 -2
  268. package/es/features/pagination/Pagination.js +2 -2
  269. package/es/features/presence/PresenceAvatar.js +2 -2
  270. package/es/features/presence/PresenceAvatarList.js +2 -2
  271. package/es/features/presence/PresenceCollaborator.js +2 -2
  272. package/es/features/quick-search/QuickSearchItem.js +3 -3
  273. package/es/features/quick-search/QuickSearchItem.js.map +1 -1
  274. package/es/features/quick-search/QuickSearchSelector.js +2 -2
  275. package/es/features/security/SecurityBadge.js +2 -2
  276. package/es/features/share/ShareMenu.js +2 -2
  277. package/es/features/targeting/hocs/withTargetedClickThrough.js +2 -2
  278. package/es/features/virtualized-table/BaseVirtualizedTable.js +2 -2
  279. package/es/features/virtualized-table/DraggableVirtualizedTable.js +2 -2
  280. package/es/features/virtualized-table/VirtualizedTable.js +2 -2
  281. package/es/icons/accessible-svg/AccessibleSVG.js +2 -2
  282. package/es/icons/icons.stories.js +5 -22
  283. package/es/icons/icons.stories.js.map +1 -1
  284. package/es/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.d.ts +2 -2
  285. package/es/src/icons/icons.stories.d.ts +1 -4
  286. package/package.json +16 -24
  287. package/src/components/avatar/__tests__/Avatar.test.tsx +1 -2
  288. package/src/components/breadcrumb/Breadcrumb.js +1 -0
  289. package/src/components/button/Button.stories.tsx +2 -16
  290. package/src/components/button-group/ButtonGroup.stories.tsx +1 -2
  291. package/src/components/nav-sidebar/NavSidebar.stories.js +1 -1
  292. package/src/components/plain-button/PlainButton.stories.tsx +1 -2
  293. package/src/components/primary-button/PrimaryButton.stories.tsx +1 -4
  294. package/src/components/time-input/__tests__/TimeInput.test.tsx +1 -2
  295. package/src/elements/common/stories/PreviewDialog.stories.tsx +1 -2
  296. package/src/elements/common/stories/__tests__/PreviewDialog-visual.stories.tsx +2 -3
  297. package/src/elements/content-explorer/stories/ContentExplorer.mdx +1 -1
  298. package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.tsx +1 -2
  299. package/src/elements/content-explorer/stories/RenameDialog.stories.tsx +1 -1
  300. package/src/elements/content-explorer/stories/ShareDialog.stories.tsx +1 -1
  301. package/src/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +1 -2
  302. package/src/elements/content-open-with/stories/ContentOpenWith.mdx +1 -1
  303. package/src/elements/content-picker/ContentPicker.js +0 -1
  304. package/src/elements/content-picker/ItemList.js +1 -1
  305. package/src/elements/content-picker/stories/ContentPicker.mdx +1 -1
  306. package/src/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +1 -25
  307. package/src/elements/content-preview/stories/ContentPreview.mdx +1 -1
  308. package/src/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +1 -1
  309. package/src/elements/content-sharing/stories/ContentSharing.mdx +1 -1
  310. package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarFileProperties.test.js.snap +2 -0
  311. package/src/elements/content-sidebar/stories/BoxAISideBar.mdx +1 -1
  312. package/src/elements/content-sidebar/stories/ContentSidebar.mdx +1 -1
  313. package/src/elements/content-sidebar/stories/MetadataSidebar.mdx +1 -1
  314. package/src/elements/content-sidebar/stories/MetadataSidebarRedesign.stories.tsx +2 -2
  315. package/src/elements/content-sidebar/stories/tests/BoxAISidebar-visual.stories.tsx +1 -1
  316. package/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx +2 -2
  317. package/src/elements/content-uploader/stories/ContentUploader.mdx +1 -1
  318. package/src/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +1 -1
  319. package/src/features/item-details/RetentionPolicy.js +5 -1
  320. package/src/features/item-details/__tests__/__snapshots__/RetentionPolicy.test.js.snap +1 -0
  321. package/src/icons/icons.stories.tsx +3 -12
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPicker.js","names":["React","Component","classNames","debounce","getProp","uniqueid","noop","Header","SubHeader","UploadDialog","CreateFolderDialog","Internationalize","makeResponsive","ThemingStyles","Pagination","isFocusableElement","isInputElement","focus","API","Content","Footer","CLIENT_NAME_CONTENT_PICKER","DEFAULT_HOSTNAME_API","DEFAULT_HOSTNAME_UPLOAD","DEFAULT_PAGE_NUMBER","DEFAULT_PAGE_SIZE","DEFAULT_ROOT","DEFAULT_SEARCH_DEBOUNCE","DEFAULT_VIEW_FILES","DEFAULT_VIEW_RECENTS","ERROR_CODE_ITEM_NAME_INVALID","ERROR_CODE_ITEM_NAME_TOO_LONG","FIELD_NAME","FIELD_PERMISSIONS_CAN_SHARE","FIELD_SHARED_LINK","SORT_ASC","TYPE_FILE","TYPE_FOLDER","TYPE_WEBLINK","TYPED_ID_FOLDER_PREFIX","VIEW_ERROR","VIEW_FOLDER","VIEW_RECENTS","VIEW_SEARCH","VIEW_SELECTED","FILE_SHARED_LINK_FIELDS_TO_FETCH","defaultType","ContentPicker","constructor","props","_defineProperty","selected","state","Object","keys","map","key","clone","_objectSpread","onChoose","results","getSelectedItems","forEach","onCancel","deleteSelectedKeys","setState","currentCollection","id","view","searchQuery","fetchFolder","showRecents","search","showSelected","Error","error","code","console","item","type","triggerNavigationEvent","rootFolderId","currentId","currentOffset","currentPageSize","limit","sortBy","sortDirection","folderId","hasFolderChanged","hasSearchQuery","trim","length","offset","firstLoad","rootElement","currentUnloadedCollection","api","getFolderAPI","getFolder","collection","fetchFolderSuccessCallback","errorCallback","forceFetch","percentLoaded","items","getCache","get","finishNavigation","_extends","query","getSearchAPI","searchSuccessCallback","trimmedQuery","debouncedSearch","cancel","permissions","canUpload","can_upload","canUploadPermission","isUploadModalOpen","createFolderCallback","name","isCreateFolderModalOpen","canCreateNewFolder","errorCode","isLoading","create","forceSharedLink","canSetShareAccess","selectableType","maxSelectable","indexOf","selectedKeys","selectedCount","hasHitSelectionLimit","isSingleFileSelection","cacheKey","getAPI","getCacheKey","existing","existingFromCache","existInSelected","prior","fetchSharedLinkInfo","focusedRow","findIndex","i","getFolderFields","handleSharedLinkSuccess","fields","getFileAPI","getFile","getWebLinkAPI","getWeblink","updatedItem","share","undefined","sharedItem","updateItemInCollection","select","access","can_set_share_access","newState","collectionItem","refreshCollection","table","event","target","toLowerCase","preventDefault","globalModifier","choose","upload","createFolder","newOffset","apiHost","clientName","initialPage","initialPageSize","language","requestInterceptor","responseInterceptor","sharedLink","sharedLinkPassword","token","uploadHost","rootName","clearCache","destroy","componentWillUnmount","componentDidMount","defaultView","currentFolderId","document","getElementById","appElement","firstElementChild","componentDidUpdate","prevFolderId","prevState","autoFocus","activeElement","clearSelectedItemsOnNavigation","commonState","closeModals","recentsSuccessCallback","getRecentsAPI","recents","render","messages","logoUrl","contentUploaderProps","extensions","isHeaderLogoVisible","isPaginationVisible","isSmall","className","measureRef","chooseButtonLabel","cancelButtonLabel","renderCustomActionButtons","showSelectedButton","theme","itemActions","totalCount","isSingleSelect","allowUpload","allowCreate","styleClassName","createElement","ref","onKeyDown","tabIndex","onSearch","rootId","onUpload","onCreate","onItemClick","onSortChange","sort","extensionsWhitelist","tableRef","onItemSelect","onFocusChange","onShareAccessChange","changeShareAccess","selectedItems","onSelectedClick","onOffsetChange","paginate","pageSize","isOpen","onClose","uploadSuccessHandler","parentElement","Infinity","ContentPickerComponent"],"sources":["../../../src/elements/content-picker/ContentPicker.js"],"sourcesContent":["/**\n * @flow\n * @file Content Picker Component\n * @author Box\n */\n\nimport 'regenerator-runtime/runtime';\nimport React, { Component } from 'react';\nimport type { Node } from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport getProp from 'lodash/get';\nimport uniqueid from 'lodash/uniqueId';\nimport noop from 'lodash/noop';\nimport Header from '../common/header';\nimport SubHeader from '../common/sub-header/SubHeader';\nimport UploadDialog from '../common/upload-dialog';\nimport CreateFolderDialog from '../common/create-folder-dialog';\nimport Internationalize from '../common/Internationalize';\nimport makeResponsive from '../common/makeResponsive';\n// $FlowFixMe TypeScript file\nimport ThemingStyles from '../common/theming';\nimport Pagination from '../../features/pagination';\nimport { isFocusableElement, isInputElement, focus } from '../../utils/dom';\nimport API from '../../api';\nimport Content from './Content';\nimport Footer from './Footer';\nimport {\n CLIENT_NAME_CONTENT_PICKER,\n DEFAULT_HOSTNAME_API,\n DEFAULT_HOSTNAME_UPLOAD,\n DEFAULT_PAGE_NUMBER,\n DEFAULT_PAGE_SIZE,\n DEFAULT_ROOT,\n DEFAULT_SEARCH_DEBOUNCE,\n DEFAULT_VIEW_FILES,\n DEFAULT_VIEW_RECENTS,\n ERROR_CODE_ITEM_NAME_INVALID,\n ERROR_CODE_ITEM_NAME_TOO_LONG,\n FIELD_NAME,\n FIELD_PERMISSIONS_CAN_SHARE,\n FIELD_SHARED_LINK,\n SORT_ASC,\n TYPE_FILE,\n TYPE_FOLDER,\n TYPE_WEBLINK,\n TYPED_ID_FOLDER_PREFIX,\n VIEW_ERROR,\n VIEW_FOLDER,\n VIEW_RECENTS,\n VIEW_SEARCH,\n VIEW_SELECTED,\n} from '../../constants';\nimport { FILE_SHARED_LINK_FIELDS_TO_FETCH } from '../../utils/fields';\n// $FlowFixMe TypeScript file\nimport type { Theme } from '../common/theming';\nimport type { ElementsXhrError } from '../../common/types/api';\nimport type {\n View,\n DefaultView,\n StringAnyMap,\n StringMap,\n SortBy,\n SortDirection,\n Token,\n Access,\n BoxItemPermission,\n BoxItem,\n Collection,\n} from '../../common/types/core';\n// $FlowFixMe TypeScript file\nimport type { ItemAction } from '../common/item';\n\nimport '../common/fonts.scss';\nimport '../common/base.scss';\nimport '../common/modal.scss';\nimport './ContentPicker.scss';\n\ntype Props = {\n apiHost: string,\n autoFocus: boolean,\n canCreateNewFolder: boolean,\n canSetShareAccess: boolean,\n canUpload: boolean,\n cancelButtonLabel?: string,\n chooseButtonLabel?: string,\n className: string,\n clearSelectedItemsOnNavigation: boolean,\n clientName: string,\n contentUploaderProps: ContentUploaderProps,\n currentFolderId?: string,\n defaultView: DefaultView,\n extensions: string[],\n initialPage: number,\n initialPageSize: number,\n isHeaderLogoVisible?: boolean,\n isLarge: boolean,\n isPaginationVisible?: boolean,\n isSmall: boolean,\n isTouch: boolean,\n itemActions?: ItemAction[],\n language?: string,\n logoUrl?: string,\n maxSelectable: number,\n measureRef?: Function,\n messages?: StringMap,\n onCancel: Function,\n onChoose: Function,\n renderCustomActionButtons?: ({\n onCancel: Function,\n onChoose: Function,\n selectedCount: number,\n selectedItems: BoxItem[],\n }) => Node,\n requestInterceptor?: Function,\n responseInterceptor?: Function,\n rootFolderId: string,\n sharedLink?: string,\n sharedLinkPassword?: string,\n showSelectedButton: boolean,\n sortBy: SortBy,\n sortDirection: SortDirection,\n theme?: Theme,\n token: Token,\n type: string,\n uploadHost: string,\n};\n\ntype State = {\n currentCollection: Collection,\n currentOffset: number,\n currentPageSize: number,\n errorCode: string,\n focusedRow: number,\n isCreateFolderModalOpen: boolean,\n isLoading: boolean,\n isUploadModalOpen: boolean,\n rootName: string,\n searchQuery: string,\n selected: { [string]: BoxItem },\n sortBy: SortBy,\n sortDirection: SortDirection,\n view: View,\n};\n\nconst defaultType = `${TYPE_FILE},${TYPE_WEBLINK}`;\n\nclass ContentPicker extends Component<Props, State> {\n id: string;\n\n api: API;\n\n state: State;\n\n props: Props;\n\n table: any;\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 static defaultProps = {\n type: defaultType,\n rootFolderId: DEFAULT_ROOT,\n onChoose: noop,\n onCancel: noop,\n initialPage: DEFAULT_PAGE_NUMBER,\n initialPageSize: DEFAULT_PAGE_SIZE,\n sortBy: FIELD_NAME,\n sortDirection: SORT_ASC,\n extensions: [],\n maxSelectable: Infinity,\n canUpload: true,\n canSetShareAccess: true,\n canCreateNewFolder: true,\n autoFocus: false,\n className: '',\n apiHost: DEFAULT_HOSTNAME_API,\n uploadHost: DEFAULT_HOSTNAME_UPLOAD,\n clientName: CLIENT_NAME_CONTENT_PICKER,\n defaultView: DEFAULT_VIEW_FILES,\n contentUploaderProps: {},\n showSelectedButton: true,\n clearSelectedItemsOnNavigation: false,\n isHeaderLogoVisible: true,\n isPaginationVisible: true,\n itemActions: [],\n };\n\n /**\n * [constructor]\n *\n * @private\n * @return {ContentPicker}\n */\n constructor(props: Props) {\n super(props);\n\n const {\n apiHost,\n clientName,\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 } = props;\n\n this.api = new API({\n apiHost,\n clientName,\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('bcp_');\n\n this.state = {\n sortBy,\n sortDirection,\n rootName: '',\n currentCollection: {},\n currentOffset: initialPageSize * (initialPage - 1),\n currentPageSize: initialPageSize,\n selected: {},\n searchQuery: '',\n view: VIEW_FOLDER,\n isCreateFolderModalOpen: false,\n isUploadModalOpen: false,\n focusedRow: 0,\n isLoading: false,\n errorCode: '',\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 { defaultView, currentFolderId }: Props = this.props;\n this.rootElement = ((document.getElementById(this.id): any): HTMLElement);\n this.appElement = ((this.rootElement.firstElementChild: any): HTMLElement);\n\n if (defaultView === DEFAULT_VIEW_RECENTS) {\n this.showRecents();\n } else {\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 }: Props, prevState: State): void {\n const { currentFolderId }: Props = 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 * Gets selected items from state.\n * Clones values before returning so that\n * object references are broken. Also cleans\n * up the selected attribute since it was\n * added by the file picker.\n *\n * @private\n * @return {BoxItem[]}\n */\n getSelectedItems = (): BoxItem[] => {\n const { selected }: State = this.state;\n return Object.keys(selected).map(key => {\n const clone: BoxItem = { ...selected[key] };\n delete clone.selected;\n return clone;\n });\n };\n\n /**\n * Choose button action.\n *\n * @private\n * @fires choose\n * @return {void}\n */\n choose = (): void => {\n const { onChoose }: Props = this.props;\n const results = this.getSelectedItems();\n onChoose(results);\n };\n\n /**\n * Deletes selected keys off of selected items in state.\n *\n * @private\n * @return {void}\n */\n deleteSelectedKeys = (): void => {\n const { selected }: State = this.state;\n\n // Clear out the selected field\n Object.keys(selected).forEach(key => delete selected[key].selected);\n };\n\n /**\n * Cancel button action\n *\n * @private\n * @fires cancel\n * @return {void}\n */\n cancel = (): void => {\n const { onCancel }: Props = this.props;\n\n this.deleteSelectedKeys();\n\n // Reset the selected state\n this.setState({ selected: {} }, () => onCancel());\n };\n\n /**\n * Resets the percentLoaded in the collection\n * 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 * Refreshing the item collection depending\n * upon the view. Collection is gotten from cache.\n * Navigation event is prevented.\n *\n * @private\n * @return {void}\n */\n refreshCollection = (): void => {\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_SELECTED) {\n this.showSelected();\n } else {\n throw new Error('Cannot refresh incompatible view!');\n }\n };\n\n /**\n * Network error callback\n *\n * @private\n * @param {Error} error error object\n * @return {void}\n */\n errorCallback = (error: ElementsXhrError, code: string): void => {\n this.setState({ view: VIEW_ERROR });\n /* eslint-disable no-console */\n console.error(error, code);\n /* eslint-enable no-console */\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): void => {\n // If the id was passed in, just use that\n if (typeof item === 'string') {\n this.fetchFolder(item);\n return;\n }\n\n // If the item was passed in\n const { id, type }: BoxItem = item;\n if (type === TYPE_FOLDER) {\n this.fetchFolder(id);\n }\n };\n\n /**\n * Focuses the grid\n *\n * @private\n * @return {void}\n */\n finishNavigation(): void {\n const { autoFocus }: Props = 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, '.bcp-item-row');\n this.setState({ focusedRow: 0 });\n }\n\n this.firstLoad = false;\n }\n\n /**\n * Folder fetch success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @param {Boolean|void} triggerNavigationEvent - To focus the grid\n * @return {void}\n */\n fetchFolderSuccessCallback(collection: Collection, triggerNavigationEvent: boolean): void {\n const { clearSelectedItemsOnNavigation, rootFolderId }: Props = this.props;\n const { id, name }: Collection = collection;\n\n const commonState = {\n currentCollection: collection,\n rootName: id === rootFolderId ? name : '',\n };\n\n // New folder state\n const newState = clearSelectedItemsOnNavigation ? { ...commonState, selected: {} } : commonState;\n\n // Close any open modals\n this.closeModals();\n\n // Deletes selected keys\n if (clearSelectedItemsOnNavigation) {\n this.deleteSelectedKeys();\n }\n\n if (triggerNavigationEvent) {\n // Fire folder navigation event\n this.setState(newState, this.finishNavigation);\n } else {\n this.setState(newState);\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 focus the grid\n * @return {void}\n */\n fetchFolder = (id?: string, triggerNavigationEvent?: boolean = true): void => {\n const { rootFolderId }: Props = 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 { forceFetch: true },\n );\n };\n\n /**\n * Recents fetch success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @return {void}\n */\n recentsSuccessCallback(collection: Collection, triggerNavigationEvent: boolean): void {\n const newState = { currentCollection: collection };\n if (triggerNavigationEvent) {\n this.setState(newState, this.finishNavigation);\n } else {\n this.setState(newState);\n }\n }\n\n /**\n * Shows recents.\n * We always try to force fetch recents.\n *\n * @private\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @param {Boolean|void} [forceFetch] To void cache\n * @return {void}\n */\n showRecents(triggerNavigationEvent: boolean = true): void {\n const { rootFolderId }: Props = 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 { forceFetch: true },\n );\n }\n\n /**\n * Shows the selected items\n *\n * @private\n * @return {void}\n */\n showSelected = (): void => {\n const { selected, sortBy, sortDirection }: State = this.state;\n this.setState(\n {\n searchQuery: '',\n view: VIEW_SELECTED,\n currentCollection: {\n sortBy,\n sortDirection,\n percentLoaded: 100,\n items: Object.keys(selected).map(key => this.api.getCache().get(key)),\n },\n },\n this.finishNavigation,\n );\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): void => {\n const { currentCollection }: State = this.state;\n this.setState({\n currentCollection: Object.assign(currentCollection, collection),\n });\n };\n\n /**\n * Debounced searching\n *\n * @private\n * @param {string} id folder id\n * @param {string} query search string\n * @param {Boolean|void} [forceFetch] To void cache\n * @return {void}\n */\n debouncedSearch: Function = debounce((id: string, query: string): void => {\n const { currentOffset, currentPageSize }: State = this.state;\n\n this.api\n .getSearchAPI()\n .search(id, query, currentPageSize, currentOffset, this.searchSuccessCallback, this.errorCallback, {\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): void => {\n const { rootFolderId }: Props = 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 searchQuery: query,\n view: VIEW_SEARCH,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: trimmedQuery === searchQuery ? currentOffset : 0,\n });\n\n this.debouncedSearch(folderId, query);\n };\n\n /**\n * Uploads\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n upload = (): void => {\n const {\n currentCollection: { id, permissions },\n }: State = this.state;\n const { canUpload }: Props = this.props;\n if (!id || !permissions) {\n return;\n }\n\n const { can_upload: canUploadPermission }: BoxItemPermission = permissions;\n if (!canUpload || !canUploadPermission) {\n return;\n }\n\n this.setState({ isUploadModalOpen: true });\n };\n\n /**\n * Upload success handler\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n uploadSuccessHandler = (): void => {\n const {\n currentCollection: { id },\n }: State = this.state;\n this.fetchFolder(id, false);\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 }: Props = 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 () => {\n this.fetchFolder(id);\n },\n ({ code }) => {\n this.setState({\n errorCode: code,\n isLoading: false,\n });\n },\n );\n };\n\n /**\n * Selects or unselects an item\n *\n * @private\n * @param {Object} item file or folder object\n * @param {boolean} options.forceSharedLink Force a shared link if no link exists\n * @return {void}\n */\n select = (item: BoxItem, { forceSharedLink = true }: StringAnyMap = {}): void => {\n const { canSetShareAccess, type: selectableType, maxSelectable }: Props = this.props;\n const {\n view,\n selected,\n currentCollection: { items = [] },\n }: State = this.state;\n const { id, type }: BoxItem = item;\n\n if (!id || !type || selectableType.indexOf(type) === -1) {\n return;\n }\n\n const selectedKeys: Array<string> = Object.keys(selected);\n const selectedCount: number = selectedKeys.length;\n const hasHitSelectionLimit: boolean = selectedCount === maxSelectable;\n const isSingleFileSelection: boolean = maxSelectable === 1;\n const cacheKey: string = this.api.getAPI(type).getCacheKey(id);\n const existing: BoxItem = selected[cacheKey];\n const existingFromCache: BoxItem = this.api.getCache().get(cacheKey);\n const existInSelected = selectedKeys.indexOf(cacheKey) !== -1;\n\n // Existing object could have mutated and we just need to update the\n // reference in the selected map. In that case treat it like a new selection.\n if (existing && existing === existingFromCache) {\n // We are selecting the same item that was already\n // selected. Unselect it in this case. Toggle case.\n delete existing.selected;\n delete selected[cacheKey];\n } else {\n // We are selecting a new item that was never\n // selected before. However if we are in a single\n // item selection mode, we should also unselect any\n // prior item that was selected.\n\n // Check if we hit the selection limit and if selection\n // is not already currently in the selected data structure.\n // Ignore when in single file selection mode.\n if (hasHitSelectionLimit && !isSingleFileSelection && !existInSelected) {\n return;\n }\n\n // Clear out the prior item for single file selection mode\n if (selectedCount > 0 && isSingleFileSelection) {\n const prior = selectedKeys[0]; // only one item\n delete selected[prior].selected;\n delete selected[prior];\n }\n\n // Select the new item\n item.selected = true;\n selected[cacheKey] = item;\n\n // If can set share access, fetch the shared link properties of the item\n // In the case where another item is selected, any in flight XHR will get\n // cancelled\n if (canSetShareAccess && forceSharedLink) {\n this.fetchSharedLinkInfo(item);\n }\n }\n\n const focusedRow = items.findIndex((i: BoxItem) => i.id === item.id);\n this.setState({ selected, focusedRow }, () => {\n if (view === VIEW_SELECTED) {\n // Need to refresh the selected view\n this.showSelected();\n }\n });\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 { selected } = this.state;\n const { id, type } = item;\n // $FlowFixMe\n const cacheKey = this.api.getAPI(type).getCacheKey(id);\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 // $FlowFixMe\n await this.api.getAPI(item.type).share(item, undefined, (sharedItem: BoxItem) => {\n updatedItem = sharedItem;\n });\n }\n\n this.updateItemInCollection(updatedItem);\n if (updatedItem.selected && updatedItem !== selected[cacheKey]) {\n this.select(updatedItem, { forceSharedLink: false });\n }\n };\n\n /**\n * Changes the share access of an item\n *\n * @private\n * @param {string} access share access\n * @param {Object} item file or folder object\n * @return {void}\n */\n changeShareAccess = (access: Access, item: BoxItem): void => {\n const { canSetShareAccess }: Props = this.props;\n if (!item || !canSetShareAccess) {\n return;\n }\n\n const { permissions, type }: BoxItem = item;\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.api.getAPI(type).share(item, access, (updatedItem: BoxItem) => {\n this.updateItemInCollection(updatedItem);\n if (item.selected) {\n this.select(updatedItem, { forceSharedLink: false });\n }\n });\n };\n\n /**\n * Updates the BoxItem in the state's currentCollection\n *\n * @param {Object} item file or folder object\n * @returns {void}\n */\n updateItemInCollection = (item: BoxItem) => {\n const { currentCollection } = this.state;\n const { items = [] } = currentCollection;\n const newState = {\n currentCollection: {\n ...currentCollection,\n items: items.map(collectionItem => (collectionItem.id === item.id ? item : collectionItem)),\n },\n };\n this.setState(newState);\n };\n\n /**\n * Changes the sort by and sort direction\n *\n * @private\n * @param {string} sortBy - field to sorty 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 * Saves reference to table component\n *\n * @private\n * @param {Component} react component\n * @return {void}\n */\n tableRef = (table: React$Component<*, *>) => {\n this.table = table;\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 isCreateFolderModalOpen: false,\n isUploadModalOpen: false,\n });\n\n const {\n selected,\n currentCollection: { items = [] },\n }: State = this.state;\n if (selected && items.length > 0) {\n focus(this.rootElement, `.bcp-item-row-${focusedRow}`);\n }\n };\n\n /**\n * Keyboard events\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n onKeyDown = (event: SyntheticKeyboardEvent<HTMLElement>) => {\n if (isInputElement(event.target)) {\n return;\n }\n\n const { rootFolderId }: Props = 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 focus(this.rootElement, '.bcp-item-row', false);\n this.setState({ focusedRow: 0 });\n event.preventDefault();\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 'c':\n if (this.globalModifier) {\n this.choose();\n event.preventDefault();\n }\n\n break;\n case 'x':\n if (this.globalModifier) {\n this.cancel();\n event.preventDefault();\n }\n\n break;\n case 's':\n if (this.globalModifier) {\n this.showSelected();\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 * Updates the focused row based on key binder\n *\n * @private\n * @param {number} focusedRow - the row index thats focused\n * @return {void}\n */\n onFocusChange = (focusedRow: number) => {\n this.setState({ focusedRow });\n };\n\n /**\n * Handle pagination changes\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 * Renders the file picker\n *\n * @private\n * @inheritdoc\n * @return {Element}\n */\n render() {\n const {\n language,\n messages,\n rootFolderId,\n logoUrl,\n canUpload,\n canSetShareAccess,\n canCreateNewFolder,\n contentUploaderProps,\n extensions,\n maxSelectable,\n type,\n token,\n sharedLink,\n sharedLinkPassword,\n apiHost,\n uploadHost,\n isHeaderLogoVisible,\n isPaginationVisible,\n isSmall,\n className,\n measureRef,\n chooseButtonLabel,\n cancelButtonLabel,\n requestInterceptor,\n responseInterceptor,\n renderCustomActionButtons,\n showSelectedButton,\n theme,\n itemActions,\n }: Props = this.props;\n const {\n view,\n rootName,\n selected,\n currentCollection,\n currentPageSize,\n searchQuery,\n isCreateFolderModalOpen,\n isUploadModalOpen,\n isLoading,\n errorCode,\n focusedRow,\n }: State = this.state;\n const { id, offset, permissions, totalCount }: Collection = currentCollection;\n const { can_upload }: BoxItemPermission = permissions || {};\n const selectedCount: number = Object.keys(selected).length;\n const isSingleSelect = maxSelectable === 1;\n const hasHitSelectionLimit: boolean = selectedCount === maxSelectable && !isSingleSelect;\n const allowUpload: boolean = canUpload && !!can_upload;\n const allowCreate: boolean = canCreateNewFolder && !!can_upload;\n const styleClassName = classNames('be bcp', className);\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 <div id={this.id} className={styleClassName} ref={measureRef} data-testid=\"content-picker\">\n <ThemingStyles theme={theme} />\n <div className=\"be-app-element\" onKeyDown={this.onKeyDown} tabIndex={0}>\n <Header\n view={view}\n isHeaderLogoVisible={isHeaderLogoVisible}\n searchQuery={searchQuery}\n logoUrl={logoUrl}\n onSearch={this.search}\n />\n <SubHeader\n view={view}\n rootId={rootFolderId}\n isSmall={isSmall}\n rootName={rootName}\n currentCollection={currentCollection}\n canUpload={allowUpload}\n canCreateNewFolder={allowCreate}\n onUpload={this.upload}\n onCreate={this.createFolder}\n onItemClick={this.fetchFolder}\n onSortChange={this.sort}\n />\n <Content\n view={view}\n isSmall={isSmall}\n rootId={rootFolderId}\n rootElement={this.rootElement}\n focusedRow={focusedRow}\n selectableType={type}\n canSetShareAccess={canSetShareAccess}\n extensionsWhitelist={extensions}\n hasHitSelectionLimit={hasHitSelectionLimit}\n currentCollection={currentCollection}\n isSingleSelect={isSingleSelect}\n tableRef={this.tableRef}\n onItemSelect={this.select}\n onItemClick={this.onItemClick}\n onFocusChange={this.onFocusChange}\n onShareAccessChange={this.changeShareAccess}\n itemActions={itemActions}\n />\n <Footer\n currentCollection={currentCollection}\n selectedCount={selectedCount}\n selectedItems={this.getSelectedItems()}\n showSelectedButton={showSelectedButton}\n hasHitSelectionLimit={hasHitSelectionLimit}\n isSingleSelect={isSingleSelect}\n onSelectedClick={this.showSelected}\n onChoose={this.choose}\n onCancel={this.cancel}\n chooseButtonLabel={chooseButtonLabel}\n cancelButtonLabel={cancelButtonLabel}\n renderCustomActionButtons={renderCustomActionButtons}\n >\n {isPaginationVisible ? (\n <Pagination\n offset={offset}\n onOffsetChange={this.paginate}\n pageSize={currentPageSize}\n totalCount={totalCount}\n />\n ) : null}\n </Footer>\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 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 </div>\n </Internationalize>\n );\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n }\n}\n\nexport { ContentPicker as ContentPickerComponent };\nexport default makeResponsive(ContentPicker);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ContentPicker.js","names":["React","Component","classNames","debounce","getProp","uniqueid","noop","Header","SubHeader","UploadDialog","CreateFolderDialog","Internationalize","makeResponsive","ThemingStyles","Pagination","isFocusableElement","isInputElement","focus","API","Content","Footer","CLIENT_NAME_CONTENT_PICKER","DEFAULT_HOSTNAME_API","DEFAULT_HOSTNAME_UPLOAD","DEFAULT_PAGE_NUMBER","DEFAULT_PAGE_SIZE","DEFAULT_ROOT","DEFAULT_SEARCH_DEBOUNCE","DEFAULT_VIEW_FILES","DEFAULT_VIEW_RECENTS","ERROR_CODE_ITEM_NAME_INVALID","ERROR_CODE_ITEM_NAME_TOO_LONG","FIELD_NAME","FIELD_PERMISSIONS_CAN_SHARE","FIELD_SHARED_LINK","SORT_ASC","TYPE_FILE","TYPE_FOLDER","TYPE_WEBLINK","TYPED_ID_FOLDER_PREFIX","VIEW_ERROR","VIEW_FOLDER","VIEW_RECENTS","VIEW_SEARCH","VIEW_SELECTED","FILE_SHARED_LINK_FIELDS_TO_FETCH","defaultType","ContentPicker","constructor","props","_defineProperty","selected","state","Object","keys","map","key","clone","_objectSpread","onChoose","results","getSelectedItems","forEach","onCancel","deleteSelectedKeys","setState","currentCollection","id","view","searchQuery","fetchFolder","showRecents","search","showSelected","Error","error","code","console","item","type","triggerNavigationEvent","rootFolderId","currentId","currentOffset","currentPageSize","limit","sortBy","sortDirection","folderId","hasFolderChanged","hasSearchQuery","trim","length","offset","firstLoad","rootElement","currentUnloadedCollection","api","getFolderAPI","getFolder","collection","fetchFolderSuccessCallback","errorCallback","forceFetch","percentLoaded","items","getCache","get","finishNavigation","_extends","query","getSearchAPI","searchSuccessCallback","trimmedQuery","debouncedSearch","cancel","permissions","canUpload","can_upload","canUploadPermission","isUploadModalOpen","createFolderCallback","name","isCreateFolderModalOpen","canCreateNewFolder","errorCode","isLoading","create","forceSharedLink","canSetShareAccess","selectableType","maxSelectable","indexOf","selectedKeys","selectedCount","hasHitSelectionLimit","isSingleFileSelection","cacheKey","getAPI","getCacheKey","existing","existingFromCache","existInSelected","prior","fetchSharedLinkInfo","focusedRow","findIndex","i","getFolderFields","handleSharedLinkSuccess","fields","getFileAPI","getFile","getWebLinkAPI","getWeblink","updatedItem","share","undefined","sharedItem","updateItemInCollection","select","access","can_set_share_access","newState","collectionItem","refreshCollection","table","event","target","toLowerCase","preventDefault","globalModifier","choose","upload","createFolder","newOffset","apiHost","clientName","initialPage","initialPageSize","language","requestInterceptor","responseInterceptor","sharedLink","sharedLinkPassword","token","uploadHost","rootName","clearCache","destroy","componentWillUnmount","componentDidMount","defaultView","currentFolderId","document","getElementById","appElement","firstElementChild","componentDidUpdate","prevFolderId","prevState","autoFocus","activeElement","clearSelectedItemsOnNavigation","commonState","closeModals","recentsSuccessCallback","getRecentsAPI","recents","render","messages","logoUrl","contentUploaderProps","extensions","isHeaderLogoVisible","isPaginationVisible","isSmall","className","measureRef","chooseButtonLabel","cancelButtonLabel","renderCustomActionButtons","showSelectedButton","theme","itemActions","totalCount","isSingleSelect","allowUpload","allowCreate","styleClassName","createElement","ref","onKeyDown","tabIndex","onSearch","rootId","onUpload","onCreate","onItemClick","onSortChange","sort","extensionsWhitelist","tableRef","onItemSelect","onFocusChange","onShareAccessChange","changeShareAccess","selectedItems","onSelectedClick","onOffsetChange","paginate","pageSize","isOpen","onClose","uploadSuccessHandler","parentElement","Infinity","ContentPickerComponent"],"sources":["../../../src/elements/content-picker/ContentPicker.js"],"sourcesContent":["/**\n * @flow\n * @file Content Picker Component\n * @author Box\n */\n\nimport 'regenerator-runtime/runtime';\nimport React, { Component } from 'react';\nimport type { Node } from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport getProp from 'lodash/get';\nimport uniqueid from 'lodash/uniqueId';\nimport noop from 'lodash/noop';\nimport Header from '../common/header';\nimport SubHeader from '../common/sub-header/SubHeader';\nimport UploadDialog from '../common/upload-dialog';\nimport CreateFolderDialog from '../common/create-folder-dialog';\nimport Internationalize from '../common/Internationalize';\nimport makeResponsive from '../common/makeResponsive';\n// $FlowFixMe TypeScript file\nimport ThemingStyles from '../common/theming';\nimport Pagination from '../../features/pagination';\nimport { isFocusableElement, isInputElement, focus } from '../../utils/dom';\nimport API from '../../api';\nimport Content from './Content';\nimport Footer from './Footer';\nimport {\n CLIENT_NAME_CONTENT_PICKER,\n DEFAULT_HOSTNAME_API,\n DEFAULT_HOSTNAME_UPLOAD,\n DEFAULT_PAGE_NUMBER,\n DEFAULT_PAGE_SIZE,\n DEFAULT_ROOT,\n DEFAULT_SEARCH_DEBOUNCE,\n DEFAULT_VIEW_FILES,\n DEFAULT_VIEW_RECENTS,\n ERROR_CODE_ITEM_NAME_INVALID,\n ERROR_CODE_ITEM_NAME_TOO_LONG,\n FIELD_NAME,\n FIELD_PERMISSIONS_CAN_SHARE,\n FIELD_SHARED_LINK,\n SORT_ASC,\n TYPE_FILE,\n TYPE_FOLDER,\n TYPE_WEBLINK,\n TYPED_ID_FOLDER_PREFIX,\n VIEW_ERROR,\n VIEW_FOLDER,\n VIEW_RECENTS,\n VIEW_SEARCH,\n VIEW_SELECTED,\n} from '../../constants';\nimport { FILE_SHARED_LINK_FIELDS_TO_FETCH } from '../../utils/fields';\n// $FlowFixMe TypeScript file\nimport type { Theme } from '../common/theming';\nimport type { ElementsXhrError } from '../../common/types/api';\nimport type {\n View,\n DefaultView,\n StringAnyMap,\n StringMap,\n SortBy,\n SortDirection,\n Token,\n Access,\n BoxItemPermission,\n BoxItem,\n Collection,\n} from '../../common/types/core';\n// $FlowFixMe TypeScript file\nimport type { ItemAction } from '../common/item';\n\nimport '../common/fonts.scss';\nimport '../common/base.scss';\nimport '../common/modal.scss';\nimport './ContentPicker.scss';\n\ntype Props = {\n apiHost: string,\n autoFocus: boolean,\n canCreateNewFolder: boolean,\n canSetShareAccess: boolean,\n canUpload: boolean,\n cancelButtonLabel?: string,\n chooseButtonLabel?: string,\n className: string,\n clearSelectedItemsOnNavigation: boolean,\n clientName: string,\n contentUploaderProps: ContentUploaderProps,\n currentFolderId?: string,\n defaultView: DefaultView,\n extensions: string[],\n initialPage: number,\n initialPageSize: number,\n isHeaderLogoVisible?: boolean,\n isLarge: boolean,\n isPaginationVisible?: boolean,\n isSmall: boolean,\n isTouch: boolean,\n itemActions?: ItemAction[],\n language?: string,\n logoUrl?: string,\n maxSelectable: number,\n measureRef?: Function,\n messages?: StringMap,\n onCancel: Function,\n onChoose: Function,\n renderCustomActionButtons?: ({\n onCancel: Function,\n onChoose: Function,\n selectedCount: number,\n selectedItems: BoxItem[],\n }) => Node,\n requestInterceptor?: Function,\n responseInterceptor?: Function,\n rootFolderId: string,\n sharedLink?: string,\n sharedLinkPassword?: string,\n showSelectedButton: boolean,\n sortBy: SortBy,\n sortDirection: SortDirection,\n theme?: Theme,\n token: Token,\n type: string,\n uploadHost: string,\n};\n\ntype State = {\n currentCollection: Collection,\n currentOffset: number,\n currentPageSize: number,\n errorCode: string,\n focusedRow: number,\n isCreateFolderModalOpen: boolean,\n isLoading: boolean,\n isUploadModalOpen: boolean,\n rootName: string,\n searchQuery: string,\n selected: { [string]: BoxItem },\n sortBy: SortBy,\n sortDirection: SortDirection,\n view: View,\n};\n\nconst defaultType = `${TYPE_FILE},${TYPE_WEBLINK}`;\n\nclass ContentPicker extends Component<Props, State> {\n id: string;\n\n api: API;\n\n state: State;\n\n props: Props;\n\n table: any;\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 static defaultProps = {\n type: defaultType,\n rootFolderId: DEFAULT_ROOT,\n onChoose: noop,\n onCancel: noop,\n initialPage: DEFAULT_PAGE_NUMBER,\n initialPageSize: DEFAULT_PAGE_SIZE,\n sortBy: FIELD_NAME,\n sortDirection: SORT_ASC,\n extensions: [],\n maxSelectable: Infinity,\n canUpload: true,\n canSetShareAccess: true,\n canCreateNewFolder: true,\n autoFocus: false,\n className: '',\n apiHost: DEFAULT_HOSTNAME_API,\n uploadHost: DEFAULT_HOSTNAME_UPLOAD,\n clientName: CLIENT_NAME_CONTENT_PICKER,\n defaultView: DEFAULT_VIEW_FILES,\n contentUploaderProps: {},\n showSelectedButton: true,\n clearSelectedItemsOnNavigation: false,\n isHeaderLogoVisible: true,\n isPaginationVisible: true,\n };\n\n /**\n * [constructor]\n *\n * @private\n * @return {ContentPicker}\n */\n constructor(props: Props) {\n super(props);\n\n const {\n apiHost,\n clientName,\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 } = props;\n\n this.api = new API({\n apiHost,\n clientName,\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('bcp_');\n\n this.state = {\n sortBy,\n sortDirection,\n rootName: '',\n currentCollection: {},\n currentOffset: initialPageSize * (initialPage - 1),\n currentPageSize: initialPageSize,\n selected: {},\n searchQuery: '',\n view: VIEW_FOLDER,\n isCreateFolderModalOpen: false,\n isUploadModalOpen: false,\n focusedRow: 0,\n isLoading: false,\n errorCode: '',\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 { defaultView, currentFolderId }: Props = this.props;\n this.rootElement = ((document.getElementById(this.id): any): HTMLElement);\n this.appElement = ((this.rootElement.firstElementChild: any): HTMLElement);\n\n if (defaultView === DEFAULT_VIEW_RECENTS) {\n this.showRecents();\n } else {\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 }: Props, prevState: State): void {\n const { currentFolderId }: Props = 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 * Gets selected items from state.\n * Clones values before returning so that\n * object references are broken. Also cleans\n * up the selected attribute since it was\n * added by the file picker.\n *\n * @private\n * @return {BoxItem[]}\n */\n getSelectedItems = (): BoxItem[] => {\n const { selected }: State = this.state;\n return Object.keys(selected).map(key => {\n const clone: BoxItem = { ...selected[key] };\n delete clone.selected;\n return clone;\n });\n };\n\n /**\n * Choose button action.\n *\n * @private\n * @fires choose\n * @return {void}\n */\n choose = (): void => {\n const { onChoose }: Props = this.props;\n const results = this.getSelectedItems();\n onChoose(results);\n };\n\n /**\n * Deletes selected keys off of selected items in state.\n *\n * @private\n * @return {void}\n */\n deleteSelectedKeys = (): void => {\n const { selected }: State = this.state;\n\n // Clear out the selected field\n Object.keys(selected).forEach(key => delete selected[key].selected);\n };\n\n /**\n * Cancel button action\n *\n * @private\n * @fires cancel\n * @return {void}\n */\n cancel = (): void => {\n const { onCancel }: Props = this.props;\n\n this.deleteSelectedKeys();\n\n // Reset the selected state\n this.setState({ selected: {} }, () => onCancel());\n };\n\n /**\n * Resets the percentLoaded in the collection\n * 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 * Refreshing the item collection depending\n * upon the view. Collection is gotten from cache.\n * Navigation event is prevented.\n *\n * @private\n * @return {void}\n */\n refreshCollection = (): void => {\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_SELECTED) {\n this.showSelected();\n } else {\n throw new Error('Cannot refresh incompatible view!');\n }\n };\n\n /**\n * Network error callback\n *\n * @private\n * @param {Error} error error object\n * @return {void}\n */\n errorCallback = (error: ElementsXhrError, code: string): void => {\n this.setState({ view: VIEW_ERROR });\n /* eslint-disable no-console */\n console.error(error, code);\n /* eslint-enable no-console */\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): void => {\n // If the id was passed in, just use that\n if (typeof item === 'string') {\n this.fetchFolder(item);\n return;\n }\n\n // If the item was passed in\n const { id, type }: BoxItem = item;\n if (type === TYPE_FOLDER) {\n this.fetchFolder(id);\n }\n };\n\n /**\n * Focuses the grid\n *\n * @private\n * @return {void}\n */\n finishNavigation(): void {\n const { autoFocus }: Props = 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, '.bcp-item-row');\n this.setState({ focusedRow: 0 });\n }\n\n this.firstLoad = false;\n }\n\n /**\n * Folder fetch success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @param {Boolean|void} triggerNavigationEvent - To focus the grid\n * @return {void}\n */\n fetchFolderSuccessCallback(collection: Collection, triggerNavigationEvent: boolean): void {\n const { clearSelectedItemsOnNavigation, rootFolderId }: Props = this.props;\n const { id, name }: Collection = collection;\n\n const commonState = {\n currentCollection: collection,\n rootName: id === rootFolderId ? name : '',\n };\n\n // New folder state\n const newState = clearSelectedItemsOnNavigation ? { ...commonState, selected: {} } : commonState;\n\n // Close any open modals\n this.closeModals();\n\n // Deletes selected keys\n if (clearSelectedItemsOnNavigation) {\n this.deleteSelectedKeys();\n }\n\n if (triggerNavigationEvent) {\n // Fire folder navigation event\n this.setState(newState, this.finishNavigation);\n } else {\n this.setState(newState);\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 focus the grid\n * @return {void}\n */\n fetchFolder = (id?: string, triggerNavigationEvent?: boolean = true): void => {\n const { rootFolderId }: Props = 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 { forceFetch: true },\n );\n };\n\n /**\n * Recents fetch success callback\n *\n * @private\n * @param {Object} collection item collection object\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @return {void}\n */\n recentsSuccessCallback(collection: Collection, triggerNavigationEvent: boolean): void {\n const newState = { currentCollection: collection };\n if (triggerNavigationEvent) {\n this.setState(newState, this.finishNavigation);\n } else {\n this.setState(newState);\n }\n }\n\n /**\n * Shows recents.\n * We always try to force fetch recents.\n *\n * @private\n * @param {Boolean|void} [triggerNavigationEvent] To trigger navigate event\n * @param {Boolean|void} [forceFetch] To void cache\n * @return {void}\n */\n showRecents(triggerNavigationEvent: boolean = true): void {\n const { rootFolderId }: Props = 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 { forceFetch: true },\n );\n }\n\n /**\n * Shows the selected items\n *\n * @private\n * @return {void}\n */\n showSelected = (): void => {\n const { selected, sortBy, sortDirection }: State = this.state;\n this.setState(\n {\n searchQuery: '',\n view: VIEW_SELECTED,\n currentCollection: {\n sortBy,\n sortDirection,\n percentLoaded: 100,\n items: Object.keys(selected).map(key => this.api.getCache().get(key)),\n },\n },\n this.finishNavigation,\n );\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): void => {\n const { currentCollection }: State = this.state;\n this.setState({\n currentCollection: Object.assign(currentCollection, collection),\n });\n };\n\n /**\n * Debounced searching\n *\n * @private\n * @param {string} id folder id\n * @param {string} query search string\n * @param {Boolean|void} [forceFetch] To void cache\n * @return {void}\n */\n debouncedSearch: Function = debounce((id: string, query: string): void => {\n const { currentOffset, currentPageSize }: State = this.state;\n\n this.api\n .getSearchAPI()\n .search(id, query, currentPageSize, currentOffset, this.searchSuccessCallback, this.errorCallback, {\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): void => {\n const { rootFolderId }: Props = 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 searchQuery: query,\n view: VIEW_SEARCH,\n currentCollection: this.currentUnloadedCollection(),\n currentOffset: trimmedQuery === searchQuery ? currentOffset : 0,\n });\n\n this.debouncedSearch(folderId, query);\n };\n\n /**\n * Uploads\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n upload = (): void => {\n const {\n currentCollection: { id, permissions },\n }: State = this.state;\n const { canUpload }: Props = this.props;\n if (!id || !permissions) {\n return;\n }\n\n const { can_upload: canUploadPermission }: BoxItemPermission = permissions;\n if (!canUpload || !canUploadPermission) {\n return;\n }\n\n this.setState({ isUploadModalOpen: true });\n };\n\n /**\n * Upload success handler\n *\n * @private\n * @param {File} file dom file object\n * @return {void}\n */\n uploadSuccessHandler = (): void => {\n const {\n currentCollection: { id },\n }: State = this.state;\n this.fetchFolder(id, false);\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 }: Props = 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 () => {\n this.fetchFolder(id);\n },\n ({ code }) => {\n this.setState({\n errorCode: code,\n isLoading: false,\n });\n },\n );\n };\n\n /**\n * Selects or unselects an item\n *\n * @private\n * @param {Object} item file or folder object\n * @param {boolean} options.forceSharedLink Force a shared link if no link exists\n * @return {void}\n */\n select = (item: BoxItem, { forceSharedLink = true }: StringAnyMap = {}): void => {\n const { canSetShareAccess, type: selectableType, maxSelectable }: Props = this.props;\n const {\n view,\n selected,\n currentCollection: { items = [] },\n }: State = this.state;\n const { id, type }: BoxItem = item;\n\n if (!id || !type || selectableType.indexOf(type) === -1) {\n return;\n }\n\n const selectedKeys: Array<string> = Object.keys(selected);\n const selectedCount: number = selectedKeys.length;\n const hasHitSelectionLimit: boolean = selectedCount === maxSelectable;\n const isSingleFileSelection: boolean = maxSelectable === 1;\n const cacheKey: string = this.api.getAPI(type).getCacheKey(id);\n const existing: BoxItem = selected[cacheKey];\n const existingFromCache: BoxItem = this.api.getCache().get(cacheKey);\n const existInSelected = selectedKeys.indexOf(cacheKey) !== -1;\n\n // Existing object could have mutated and we just need to update the\n // reference in the selected map. In that case treat it like a new selection.\n if (existing && existing === existingFromCache) {\n // We are selecting the same item that was already\n // selected. Unselect it in this case. Toggle case.\n delete existing.selected;\n delete selected[cacheKey];\n } else {\n // We are selecting a new item that was never\n // selected before. However if we are in a single\n // item selection mode, we should also unselect any\n // prior item that was selected.\n\n // Check if we hit the selection limit and if selection\n // is not already currently in the selected data structure.\n // Ignore when in single file selection mode.\n if (hasHitSelectionLimit && !isSingleFileSelection && !existInSelected) {\n return;\n }\n\n // Clear out the prior item for single file selection mode\n if (selectedCount > 0 && isSingleFileSelection) {\n const prior = selectedKeys[0]; // only one item\n delete selected[prior].selected;\n delete selected[prior];\n }\n\n // Select the new item\n item.selected = true;\n selected[cacheKey] = item;\n\n // If can set share access, fetch the shared link properties of the item\n // In the case where another item is selected, any in flight XHR will get\n // cancelled\n if (canSetShareAccess && forceSharedLink) {\n this.fetchSharedLinkInfo(item);\n }\n }\n\n const focusedRow = items.findIndex((i: BoxItem) => i.id === item.id);\n this.setState({ selected, focusedRow }, () => {\n if (view === VIEW_SELECTED) {\n // Need to refresh the selected view\n this.showSelected();\n }\n });\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 { selected } = this.state;\n const { id, type } = item;\n // $FlowFixMe\n const cacheKey = this.api.getAPI(type).getCacheKey(id);\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 // $FlowFixMe\n await this.api.getAPI(item.type).share(item, undefined, (sharedItem: BoxItem) => {\n updatedItem = sharedItem;\n });\n }\n\n this.updateItemInCollection(updatedItem);\n if (updatedItem.selected && updatedItem !== selected[cacheKey]) {\n this.select(updatedItem, { forceSharedLink: false });\n }\n };\n\n /**\n * Changes the share access of an item\n *\n * @private\n * @param {string} access share access\n * @param {Object} item file or folder object\n * @return {void}\n */\n changeShareAccess = (access: Access, item: BoxItem): void => {\n const { canSetShareAccess }: Props = this.props;\n if (!item || !canSetShareAccess) {\n return;\n }\n\n const { permissions, type }: BoxItem = item;\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.api.getAPI(type).share(item, access, (updatedItem: BoxItem) => {\n this.updateItemInCollection(updatedItem);\n if (item.selected) {\n this.select(updatedItem, { forceSharedLink: false });\n }\n });\n };\n\n /**\n * Updates the BoxItem in the state's currentCollection\n *\n * @param {Object} item file or folder object\n * @returns {void}\n */\n updateItemInCollection = (item: BoxItem) => {\n const { currentCollection } = this.state;\n const { items = [] } = currentCollection;\n const newState = {\n currentCollection: {\n ...currentCollection,\n items: items.map(collectionItem => (collectionItem.id === item.id ? item : collectionItem)),\n },\n };\n this.setState(newState);\n };\n\n /**\n * Changes the sort by and sort direction\n *\n * @private\n * @param {string} sortBy - field to sorty 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 * Saves reference to table component\n *\n * @private\n * @param {Component} react component\n * @return {void}\n */\n tableRef = (table: React$Component<*, *>) => {\n this.table = table;\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 isCreateFolderModalOpen: false,\n isUploadModalOpen: false,\n });\n\n const {\n selected,\n currentCollection: { items = [] },\n }: State = this.state;\n if (selected && items.length > 0) {\n focus(this.rootElement, `.bcp-item-row-${focusedRow}`);\n }\n };\n\n /**\n * Keyboard events\n *\n * @private\n * @inheritdoc\n * @return {void}\n */\n onKeyDown = (event: SyntheticKeyboardEvent<HTMLElement>) => {\n if (isInputElement(event.target)) {\n return;\n }\n\n const { rootFolderId }: Props = 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 focus(this.rootElement, '.bcp-item-row', false);\n this.setState({ focusedRow: 0 });\n event.preventDefault();\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 'c':\n if (this.globalModifier) {\n this.choose();\n event.preventDefault();\n }\n\n break;\n case 'x':\n if (this.globalModifier) {\n this.cancel();\n event.preventDefault();\n }\n\n break;\n case 's':\n if (this.globalModifier) {\n this.showSelected();\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 * Updates the focused row based on key binder\n *\n * @private\n * @param {number} focusedRow - the row index thats focused\n * @return {void}\n */\n onFocusChange = (focusedRow: number) => {\n this.setState({ focusedRow });\n };\n\n /**\n * Handle pagination changes\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 * Renders the file picker\n *\n * @private\n * @inheritdoc\n * @return {Element}\n */\n render() {\n const {\n language,\n messages,\n rootFolderId,\n logoUrl,\n canUpload,\n canSetShareAccess,\n canCreateNewFolder,\n contentUploaderProps,\n extensions,\n maxSelectable,\n type,\n token,\n sharedLink,\n sharedLinkPassword,\n apiHost,\n uploadHost,\n isHeaderLogoVisible,\n isPaginationVisible,\n isSmall,\n className,\n measureRef,\n chooseButtonLabel,\n cancelButtonLabel,\n requestInterceptor,\n responseInterceptor,\n renderCustomActionButtons,\n showSelectedButton,\n theme,\n itemActions,\n }: Props = this.props;\n const {\n view,\n rootName,\n selected,\n currentCollection,\n currentPageSize,\n searchQuery,\n isCreateFolderModalOpen,\n isUploadModalOpen,\n isLoading,\n errorCode,\n focusedRow,\n }: State = this.state;\n const { id, offset, permissions, totalCount }: Collection = currentCollection;\n const { can_upload }: BoxItemPermission = permissions || {};\n const selectedCount: number = Object.keys(selected).length;\n const isSingleSelect = maxSelectable === 1;\n const hasHitSelectionLimit: boolean = selectedCount === maxSelectable && !isSingleSelect;\n const allowUpload: boolean = canUpload && !!can_upload;\n const allowCreate: boolean = canCreateNewFolder && !!can_upload;\n const styleClassName = classNames('be bcp', className);\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 <div id={this.id} className={styleClassName} ref={measureRef} data-testid=\"content-picker\">\n <ThemingStyles theme={theme} />\n <div className=\"be-app-element\" onKeyDown={this.onKeyDown} tabIndex={0}>\n <Header\n view={view}\n isHeaderLogoVisible={isHeaderLogoVisible}\n searchQuery={searchQuery}\n logoUrl={logoUrl}\n onSearch={this.search}\n />\n <SubHeader\n view={view}\n rootId={rootFolderId}\n isSmall={isSmall}\n rootName={rootName}\n currentCollection={currentCollection}\n canUpload={allowUpload}\n canCreateNewFolder={allowCreate}\n onUpload={this.upload}\n onCreate={this.createFolder}\n onItemClick={this.fetchFolder}\n onSortChange={this.sort}\n />\n <Content\n view={view}\n isSmall={isSmall}\n rootId={rootFolderId}\n rootElement={this.rootElement}\n focusedRow={focusedRow}\n selectableType={type}\n canSetShareAccess={canSetShareAccess}\n extensionsWhitelist={extensions}\n hasHitSelectionLimit={hasHitSelectionLimit}\n currentCollection={currentCollection}\n isSingleSelect={isSingleSelect}\n tableRef={this.tableRef}\n onItemSelect={this.select}\n onItemClick={this.onItemClick}\n onFocusChange={this.onFocusChange}\n onShareAccessChange={this.changeShareAccess}\n itemActions={itemActions}\n />\n <Footer\n currentCollection={currentCollection}\n selectedCount={selectedCount}\n selectedItems={this.getSelectedItems()}\n showSelectedButton={showSelectedButton}\n hasHitSelectionLimit={hasHitSelectionLimit}\n isSingleSelect={isSingleSelect}\n onSelectedClick={this.showSelected}\n onChoose={this.choose}\n onCancel={this.cancel}\n chooseButtonLabel={chooseButtonLabel}\n cancelButtonLabel={cancelButtonLabel}\n renderCustomActionButtons={renderCustomActionButtons}\n >\n {isPaginationVisible ? (\n <Pagination\n offset={offset}\n onOffsetChange={this.paginate}\n pageSize={currentPageSize}\n totalCount={totalCount}\n />\n ) : null}\n </Footer>\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 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 </div>\n </Internationalize>\n );\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n }\n}\n\nexport { ContentPicker as ContentPickerComponent };\nexport default makeResponsive(ContentPicker);\n"],"mappings":"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","ignoreList":[]}
@@ -147,7 +147,7 @@ const ItemList = ({
147
147
  cellRenderer: shareAccessCell,
148
148
  width: 260,
149
149
  flexShrink: 0
150
- }), itemActions && /*#__PURE__*/React.createElement(Column, {
150
+ }), !!itemActions?.length && /*#__PURE__*/React.createElement(Column, {
151
151
  disableSort: true,
152
152
  dataKey: FIELD_ID,
153
153
  cellRenderer: moreOptionsCell,
@@ -176,7 +176,7 @@ const ItemList = ({
176
176
  flexShrink={0}
177
177
  />
178
178
  )}
179
- {itemActions && (
179
+ {!!itemActions?.length && (
180
180
  <Column
181
181
  disableSort
182
182
  dataKey={FIELD_ID}
@@ -1 +1 @@
1
- {"version":3,"file":"ItemList.js","names":["React","classNames","Table","Column","AutoSizer","KeyBinder","nameCellRenderer","iconCellRenderer","ItemOptions","isFocusableElement","focus","shareAccessCellRenderer","selectionCellRenderer","isRowSelectable","VIEW_SELECTED","FIELD_NAME","FIELD_ID","FIELD_SHARED_LINK","TYPE_FOLDER","moreOptionsCellRenderer","props","rowData","createElement","className","_extends","item","ItemList","view","rootId","isSmall","rootElement","focusedRow","selectableType","canSetShareAccess","hasHitSelectionLimit","isSingleSelect","extensionsWhitelist","onItemSelect","onItemClick","onShareAccessChange","onFocusChange","currentCollection","tableRef","itemActions","iconCell","nameCell","selectionCell","shareAccessCell","moreOptionsCell","id","items","rowCount","length","rowClassName","index","selected","type","isSelectable","onRowClick","event","target","columnCount","onSelect","onOpen","scrollToRow","onScrollToChange","onSectionRendered","focusOnRender","width","height","disableHeader","headerHeight","rowHeight","rowGetter","ref","scrollToIndex","onRowsRendered","startIndex","stopIndex","rowStartIndex","rowStopIndex","dataKey","cellRenderer","flexShrink","flexGrow","disableSort","headerRole"],"sources":["../../../src/elements/content-picker/ItemList.js"],"sourcesContent":["/**\n * @flow\n * @file Item list component\n * @author Box\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Table, Column } from '@box/react-virtualized/dist/es/Table';\nimport AutoSizer from '@box/react-virtualized/dist/es/AutoSizer';\nimport KeyBinder from '../common/KeyBinder';\nimport nameCellRenderer from '../common/item/nameCellRenderer';\nimport iconCellRenderer from '../common/item/iconCellRenderer';\n// $FlowFixMe TypeScript file\nimport { ItemOptions, type ItemAction } from '../common/item';\nimport { isFocusableElement, focus } from '../../utils/dom';\nimport shareAccessCellRenderer from './shareAccessCellRenderer';\nimport selectionCellRenderer from './selectionCellRenderer';\nimport isRowSelectable from './cellRendererHelper';\nimport { VIEW_SELECTED, FIELD_NAME, FIELD_ID, FIELD_SHARED_LINK, TYPE_FOLDER } from '../../constants';\nimport type { View, Collection, BoxItem } from '../../common/types/core';\nimport '@box/react-virtualized/styles.css';\nimport './ItemList.scss';\n\ntype Props = {\n canSetShareAccess: boolean,\n currentCollection: Collection,\n extensionsWhitelist: string[],\n focusedRow: number,\n hasHitSelectionLimit: boolean,\n isSingleSelect: boolean,\n isSmall: boolean,\n itemActions?: ItemAction[],\n onFocusChange: Function,\n onItemClick: Function,\n onItemSelect: Function,\n onShareAccessChange: Function,\n rootElement?: HTMLElement,\n rootId: string,\n selectableType: string,\n tableRef: Function,\n view: View,\n};\n\nconst moreOptionsCellRenderer =\n props =>\n ({ rowData }) => (\n <div className=\"bcp-more-options\">\n <ItemOptions item={rowData} {...props} />\n </div>\n );\n\nconst ItemList = ({\n view,\n rootId,\n isSmall,\n rootElement,\n focusedRow,\n selectableType,\n canSetShareAccess,\n hasHitSelectionLimit,\n isSingleSelect,\n extensionsWhitelist,\n onItemSelect,\n onItemClick,\n onShareAccessChange,\n onFocusChange,\n currentCollection,\n tableRef,\n itemActions,\n}: Props) => {\n const iconCell = iconCellRenderer();\n const nameCell = nameCellRenderer(rootId, view, onItemClick);\n const selectionCell = selectionCellRenderer(\n onItemSelect,\n selectableType,\n extensionsWhitelist,\n hasHitSelectionLimit,\n isSingleSelect,\n );\n const shareAccessCell = shareAccessCellRenderer(\n onShareAccessChange,\n canSetShareAccess,\n selectableType,\n extensionsWhitelist,\n hasHitSelectionLimit,\n );\n const moreOptionsCell = moreOptionsCellRenderer({\n itemActions,\n });\n const { id, items = [] }: Collection = currentCollection;\n const rowCount: number = items.length;\n\n const rowClassName = ({ index }) => {\n if (index === -1) {\n return '';\n }\n\n const { selected, type } = items[index];\n const isSelectable = isRowSelectable(selectableType, extensionsWhitelist, hasHitSelectionLimit, items[index]);\n return classNames(`bcp-item-row bcp-item-row-${index}`, {\n 'bcp-item-row-selected': selected && view !== VIEW_SELECTED,\n 'bcp-item-row-unselectable': type !== TYPE_FOLDER && !isSelectable, // folder row should never dim\n });\n };\n\n const onRowClick = ({\n event,\n rowData,\n index,\n }: {\n event: Event & { target: HTMLElement },\n index: number,\n rowData: BoxItem,\n }) => {\n // If the click is happening on a clickable element on the item row, ignore row selection\n if (\n isRowSelectable(selectableType, extensionsWhitelist, hasHitSelectionLimit, rowData) &&\n !isFocusableElement(event.target)\n ) {\n onItemSelect(rowData);\n } else {\n onFocusChange(index);\n }\n };\n\n return (\n <KeyBinder\n columnCount={1}\n rowCount={rowCount}\n className=\"bcp-item-grid\"\n id={id}\n items={items}\n onSelect={onItemSelect}\n onOpen={onItemClick}\n scrollToRow={focusedRow}\n onScrollToChange={({ scrollToRow }) => focus(rootElement, `.bcp-item-row-${scrollToRow}`)}\n >\n {({ onSectionRendered, scrollToRow, focusOnRender }) => (\n <AutoSizer>\n {({ width, height }) => (\n <Table\n width={width}\n height={height}\n disableHeader\n headerHeight={0}\n rowHeight={isSmall ? 70 : 50}\n rowCount={rowCount}\n rowGetter={({ index }) => items[index]}\n ref={tableRef}\n rowClassName={rowClassName}\n onRowClick={onRowClick}\n scrollToIndex={scrollToRow}\n onRowsRendered={({ startIndex, stopIndex }) => {\n onSectionRendered({\n rowStartIndex: startIndex,\n rowStopIndex: stopIndex,\n });\n if (focusOnRender) {\n focus(rootElement, `.bcp-item-row-${scrollToRow}`);\n }\n }}\n >\n <Column\n dataKey={FIELD_ID}\n cellRenderer={iconCell}\n width={isSmall ? 30 : 50}\n flexShrink={0}\n />\n <Column dataKey={FIELD_NAME} cellRenderer={nameCell} width={300} flexGrow={1} />\n {isSmall ? null : (\n <Column\n dataKey={FIELD_SHARED_LINK}\n cellRenderer={shareAccessCell}\n width={260}\n flexShrink={0}\n />\n )}\n {itemActions && (\n <Column\n disableSort\n dataKey={FIELD_ID}\n cellRenderer={moreOptionsCell}\n headerRole=\"gridcell\"\n width={58}\n flexShrink={0}\n />\n )}\n <Column\n dataKey={FIELD_ID}\n cellRenderer={selectionCell}\n width={isSmall ? 20 : 30}\n flexShrink={0}\n />\n </Table>\n )}\n </AutoSizer>\n )}\n </KeyBinder>\n );\n};\n\nexport default ItemList;\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,KAAK,EAAEC,MAAM,QAAQ,sCAAsC;AACpE,OAAOC,SAAS,MAAM,0CAA0C;AAChE,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,gBAAgB,MAAM,iCAAiC;AAC9D,OAAOC,gBAAgB,MAAM,iCAAiC;AAC9D;AACA,SAASC,WAAW,QAAyB,gBAAgB;AAC7D,SAASC,kBAAkB,EAAEC,KAAK,QAAQ,iBAAiB;AAC3D,OAAOC,uBAAuB,MAAM,2BAA2B;AAC/D,OAAOC,qBAAqB,MAAM,yBAAyB;AAC3D,OAAOC,eAAe,MAAM,sBAAsB;AAClD,SAASC,aAAa,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,iBAAiB,EAAEC,WAAW,QAAQ,iBAAiB;AAErG,OAAO,mCAAmC;AAC1C,OAAO,iBAAiB;AAsBxB,MAAMC,uBAAuB,GACzBC,KAAK,IACL,CAAC;EAAEC;AAAQ,CAAC,kBACRrB,KAAA,CAAAsB,aAAA;EAAKC,SAAS,EAAC;AAAkB,gBAC7BvB,KAAA,CAAAsB,aAAA,CAACd,WAAW,EAAAgB,QAAA;EAACC,IAAI,EAAEJ;AAAQ,GAAKD,KAAK,CAAG,CACvC,CACR;AAEL,MAAMM,QAAQ,GAAGA,CAAC;EACdC,IAAI;EACJC,MAAM;EACNC,OAAO;EACPC,WAAW;EACXC,UAAU;EACVC,cAAc;EACdC,iBAAiB;EACjBC,oBAAoB;EACpBC,cAAc;EACdC,mBAAmB;EACnBC,YAAY;EACZC,WAAW;EACXC,mBAAmB;EACnBC,aAAa;EACbC,iBAAiB;EACjBC,QAAQ;EACRC;AACG,CAAC,KAAK;EACT,MAAMC,QAAQ,GAAGrC,gBAAgB,CAAC,CAAC;EACnC,MAAMsC,QAAQ,GAAGvC,gBAAgB,CAACsB,MAAM,EAAED,IAAI,EAAEW,WAAW,CAAC;EAC5D,MAAMQ,aAAa,GAAGlC,qBAAqB,CACvCyB,YAAY,EACZL,cAAc,EACdI,mBAAmB,EACnBF,oBAAoB,EACpBC,cACJ,CAAC;EACD,MAAMY,eAAe,GAAGpC,uBAAuB,CAC3C4B,mBAAmB,EACnBN,iBAAiB,EACjBD,cAAc,EACdI,mBAAmB,EACnBF,oBACJ,CAAC;EACD,MAAMc,eAAe,GAAG7B,uBAAuB,CAAC;IAC5CwB;EACJ,CAAC,CAAC;EACF,MAAM;IAAEM,EAAE;IAAEC,KAAK,GAAG;EAAe,CAAC,GAAGT,iBAAiB;EACxD,MAAMU,QAAgB,GAAGD,KAAK,CAACE,MAAM;EAErC,MAAMC,YAAY,GAAGA,CAAC;IAAEC;EAAM,CAAC,KAAK;IAChC,IAAIA,KAAK,KAAK,CAAC,CAAC,EAAE;MACd,OAAO,EAAE;IACb;IAEA,MAAM;MAAEC,QAAQ;MAAEC;IAAK,CAAC,GAAGN,KAAK,CAACI,KAAK,CAAC;IACvC,MAAMG,YAAY,GAAG5C,eAAe,CAACmB,cAAc,EAAEI,mBAAmB,EAAEF,oBAAoB,EAAEgB,KAAK,CAACI,KAAK,CAAC,CAAC;IAC7G,OAAOrD,UAAU,CAAC,6BAA6BqD,KAAK,EAAE,EAAE;MACpD,uBAAuB,EAAEC,QAAQ,IAAI5B,IAAI,KAAKb,aAAa;MAC3D,2BAA2B,EAAE0C,IAAI,KAAKtC,WAAW,IAAI,CAACuC,YAAY,CAAE;IACxE,CAAC,CAAC;EACN,CAAC;EAED,MAAMC,UAAU,GAAGA,CAAC;IAChBC,KAAK;IACLtC,OAAO;IACPiC;EAKJ,CAAC,KAAK;IACF;IACA,IACIzC,eAAe,CAACmB,cAAc,EAAEI,mBAAmB,EAAEF,oBAAoB,EAAEb,OAAO,CAAC,IACnF,CAACZ,kBAAkB,CAACkD,KAAK,CAACC,MAAM,CAAC,EACnC;MACEvB,YAAY,CAAChB,OAAO,CAAC;IACzB,CAAC,MAAM;MACHmB,aAAa,CAACc,KAAK,CAAC;IACxB;EACJ,CAAC;EAED,oBACItD,KAAA,CAAAsB,aAAA,CAACjB,SAAS;IACNwD,WAAW,EAAE,CAAE;IACfV,QAAQ,EAAEA,QAAS;IACnB5B,SAAS,EAAC,eAAe;IACzB0B,EAAE,EAAEA,EAAG;IACPC,KAAK,EAAEA,KAAM;IACbY,QAAQ,EAAEzB,YAAa;IACvB0B,MAAM,EAAEzB,WAAY;IACpB0B,WAAW,EAAEjC,UAAW;IACxBkC,gBAAgB,EAAEA,CAAC;MAAED;IAAY,CAAC,KAAKtD,KAAK,CAACoB,WAAW,EAAE,iBAAiBkC,WAAW,EAAE;EAAE,GAEzF,CAAC;IAAEE,iBAAiB;IAAEF,WAAW;IAAEG;EAAc,CAAC,kBAC/CnE,KAAA,CAAAsB,aAAA,CAAClB,SAAS,QACL,CAAC;IAAEgE,KAAK;IAAEC;EAAO,CAAC,kBACfrE,KAAA,CAAAsB,aAAA,CAACpB,KAAK;IACFkE,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IACfC,aAAa;IACbC,YAAY,EAAE,CAAE;IAChBC,SAAS,EAAE3C,OAAO,GAAG,EAAE,GAAG,EAAG;IAC7BsB,QAAQ,EAAEA,QAAS;IACnBsB,SAAS,EAAEA,CAAC;MAAEnB;IAAM,CAAC,KAAKJ,KAAK,CAACI,KAAK,CAAE;IACvCoB,GAAG,EAAEhC,QAAS;IACdW,YAAY,EAAEA,YAAa;IAC3BK,UAAU,EAAEA,UAAW;IACvBiB,aAAa,EAAEX,WAAY;IAC3BY,cAAc,EAAEA,CAAC;MAAEC,UAAU;MAAEC;IAAU,CAAC,KAAK;MAC3CZ,iBAAiB,CAAC;QACda,aAAa,EAAEF,UAAU;QACzBG,YAAY,EAAEF;MAClB,CAAC,CAAC;MACF,IAAIX,aAAa,EAAE;QACfzD,KAAK,CAACoB,WAAW,EAAE,iBAAiBkC,WAAW,EAAE,CAAC;MACtD;IACJ;EAAE,gBAEFhE,KAAA,CAAAsB,aAAA,CAACnB,MAAM;IACH8E,OAAO,EAAEjE,QAAS;IAClBkE,YAAY,EAAEtC,QAAS;IACvBwB,KAAK,EAAEvC,OAAO,GAAG,EAAE,GAAG,EAAG;IACzBsD,UAAU,EAAE;EAAE,CACjB,CAAC,eACFnF,KAAA,CAAAsB,aAAA,CAACnB,MAAM;IAAC8E,OAAO,EAAElE,UAAW;IAACmE,YAAY,EAAErC,QAAS;IAACuB,KAAK,EAAE,GAAI;IAACgB,QAAQ,EAAE;EAAE,CAAE,CAAC,EAC/EvD,OAAO,GAAG,IAAI,gBACX7B,KAAA,CAAAsB,aAAA,CAACnB,MAAM;IACH8E,OAAO,EAAEhE,iBAAkB;IAC3BiE,YAAY,EAAEnC,eAAgB;IAC9BqB,KAAK,EAAE,GAAI;IACXe,UAAU,EAAE;EAAE,CACjB,CACJ,EACAxC,WAAW,iBACR3C,KAAA,CAAAsB,aAAA,CAACnB,MAAM;IACHkF,WAAW;IACXJ,OAAO,EAAEjE,QAAS;IAClBkE,YAAY,EAAElC,eAAgB;IAC9BsC,UAAU,EAAC,UAAU;IACrBlB,KAAK,EAAE,EAAG;IACVe,UAAU,EAAE;EAAE,CACjB,CACJ,eACDnF,KAAA,CAAAsB,aAAA,CAACnB,MAAM;IACH8E,OAAO,EAAEjE,QAAS;IAClBkE,YAAY,EAAEpC,aAAc;IAC5BsB,KAAK,EAAEvC,OAAO,GAAG,EAAE,GAAG,EAAG;IACzBsD,UAAU,EAAE;EAAE,CACjB,CACE,CAEJ,CAER,CAAC;AAEpB,CAAC;AAED,eAAezD,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"ItemList.js","names":["React","classNames","Table","Column","AutoSizer","KeyBinder","nameCellRenderer","iconCellRenderer","ItemOptions","isFocusableElement","focus","shareAccessCellRenderer","selectionCellRenderer","isRowSelectable","VIEW_SELECTED","FIELD_NAME","FIELD_ID","FIELD_SHARED_LINK","TYPE_FOLDER","moreOptionsCellRenderer","props","rowData","createElement","className","_extends","item","ItemList","view","rootId","isSmall","rootElement","focusedRow","selectableType","canSetShareAccess","hasHitSelectionLimit","isSingleSelect","extensionsWhitelist","onItemSelect","onItemClick","onShareAccessChange","onFocusChange","currentCollection","tableRef","itemActions","iconCell","nameCell","selectionCell","shareAccessCell","moreOptionsCell","id","items","rowCount","length","rowClassName","index","selected","type","isSelectable","onRowClick","event","target","columnCount","onSelect","onOpen","scrollToRow","onScrollToChange","onSectionRendered","focusOnRender","width","height","disableHeader","headerHeight","rowHeight","rowGetter","ref","scrollToIndex","onRowsRendered","startIndex","stopIndex","rowStartIndex","rowStopIndex","dataKey","cellRenderer","flexShrink","flexGrow","disableSort","headerRole"],"sources":["../../../src/elements/content-picker/ItemList.js"],"sourcesContent":["/**\n * @flow\n * @file Item list component\n * @author Box\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Table, Column } from '@box/react-virtualized/dist/es/Table';\nimport AutoSizer from '@box/react-virtualized/dist/es/AutoSizer';\nimport KeyBinder from '../common/KeyBinder';\nimport nameCellRenderer from '../common/item/nameCellRenderer';\nimport iconCellRenderer from '../common/item/iconCellRenderer';\n// $FlowFixMe TypeScript file\nimport { ItemOptions, type ItemAction } from '../common/item';\nimport { isFocusableElement, focus } from '../../utils/dom';\nimport shareAccessCellRenderer from './shareAccessCellRenderer';\nimport selectionCellRenderer from './selectionCellRenderer';\nimport isRowSelectable from './cellRendererHelper';\nimport { VIEW_SELECTED, FIELD_NAME, FIELD_ID, FIELD_SHARED_LINK, TYPE_FOLDER } from '../../constants';\nimport type { View, Collection, BoxItem } from '../../common/types/core';\nimport '@box/react-virtualized/styles.css';\nimport './ItemList.scss';\n\ntype Props = {\n canSetShareAccess: boolean,\n currentCollection: Collection,\n extensionsWhitelist: string[],\n focusedRow: number,\n hasHitSelectionLimit: boolean,\n isSingleSelect: boolean,\n isSmall: boolean,\n itemActions?: ItemAction[],\n onFocusChange: Function,\n onItemClick: Function,\n onItemSelect: Function,\n onShareAccessChange: Function,\n rootElement?: HTMLElement,\n rootId: string,\n selectableType: string,\n tableRef: Function,\n view: View,\n};\n\nconst moreOptionsCellRenderer =\n props =>\n ({ rowData }) => (\n <div className=\"bcp-more-options\">\n <ItemOptions item={rowData} {...props} />\n </div>\n );\n\nconst ItemList = ({\n view,\n rootId,\n isSmall,\n rootElement,\n focusedRow,\n selectableType,\n canSetShareAccess,\n hasHitSelectionLimit,\n isSingleSelect,\n extensionsWhitelist,\n onItemSelect,\n onItemClick,\n onShareAccessChange,\n onFocusChange,\n currentCollection,\n tableRef,\n itemActions,\n}: Props) => {\n const iconCell = iconCellRenderer();\n const nameCell = nameCellRenderer(rootId, view, onItemClick);\n const selectionCell = selectionCellRenderer(\n onItemSelect,\n selectableType,\n extensionsWhitelist,\n hasHitSelectionLimit,\n isSingleSelect,\n );\n const shareAccessCell = shareAccessCellRenderer(\n onShareAccessChange,\n canSetShareAccess,\n selectableType,\n extensionsWhitelist,\n hasHitSelectionLimit,\n );\n const moreOptionsCell = moreOptionsCellRenderer({\n itemActions,\n });\n const { id, items = [] }: Collection = currentCollection;\n const rowCount: number = items.length;\n\n const rowClassName = ({ index }) => {\n if (index === -1) {\n return '';\n }\n\n const { selected, type } = items[index];\n const isSelectable = isRowSelectable(selectableType, extensionsWhitelist, hasHitSelectionLimit, items[index]);\n return classNames(`bcp-item-row bcp-item-row-${index}`, {\n 'bcp-item-row-selected': selected && view !== VIEW_SELECTED,\n 'bcp-item-row-unselectable': type !== TYPE_FOLDER && !isSelectable, // folder row should never dim\n });\n };\n\n const onRowClick = ({\n event,\n rowData,\n index,\n }: {\n event: Event & { target: HTMLElement },\n index: number,\n rowData: BoxItem,\n }) => {\n // If the click is happening on a clickable element on the item row, ignore row selection\n if (\n isRowSelectable(selectableType, extensionsWhitelist, hasHitSelectionLimit, rowData) &&\n !isFocusableElement(event.target)\n ) {\n onItemSelect(rowData);\n } else {\n onFocusChange(index);\n }\n };\n\n return (\n <KeyBinder\n columnCount={1}\n rowCount={rowCount}\n className=\"bcp-item-grid\"\n id={id}\n items={items}\n onSelect={onItemSelect}\n onOpen={onItemClick}\n scrollToRow={focusedRow}\n onScrollToChange={({ scrollToRow }) => focus(rootElement, `.bcp-item-row-${scrollToRow}`)}\n >\n {({ onSectionRendered, scrollToRow, focusOnRender }) => (\n <AutoSizer>\n {({ width, height }) => (\n <Table\n width={width}\n height={height}\n disableHeader\n headerHeight={0}\n rowHeight={isSmall ? 70 : 50}\n rowCount={rowCount}\n rowGetter={({ index }) => items[index]}\n ref={tableRef}\n rowClassName={rowClassName}\n onRowClick={onRowClick}\n scrollToIndex={scrollToRow}\n onRowsRendered={({ startIndex, stopIndex }) => {\n onSectionRendered({\n rowStartIndex: startIndex,\n rowStopIndex: stopIndex,\n });\n if (focusOnRender) {\n focus(rootElement, `.bcp-item-row-${scrollToRow}`);\n }\n }}\n >\n <Column\n dataKey={FIELD_ID}\n cellRenderer={iconCell}\n width={isSmall ? 30 : 50}\n flexShrink={0}\n />\n <Column dataKey={FIELD_NAME} cellRenderer={nameCell} width={300} flexGrow={1} />\n {isSmall ? null : (\n <Column\n dataKey={FIELD_SHARED_LINK}\n cellRenderer={shareAccessCell}\n width={260}\n flexShrink={0}\n />\n )}\n {!!itemActions?.length && (\n <Column\n disableSort\n dataKey={FIELD_ID}\n cellRenderer={moreOptionsCell}\n headerRole=\"gridcell\"\n width={58}\n flexShrink={0}\n />\n )}\n <Column\n dataKey={FIELD_ID}\n cellRenderer={selectionCell}\n width={isSmall ? 20 : 30}\n flexShrink={0}\n />\n </Table>\n )}\n </AutoSizer>\n )}\n </KeyBinder>\n );\n};\n\nexport default ItemList;\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@
7
7
  import * as React from 'react';
8
8
  import Checkbox from '../../components/checkbox/Checkbox';
9
9
  import isRowSelectable from './cellRendererHelper';
10
- export default ((onItemSelect, selectableType, extensionsWhitelist, hasHitSelectionLimit) => ({
10
+ export default (onItemSelect, selectableType, extensionsWhitelist, hasHitSelectionLimit) => ({
11
11
  rowData
12
12
  }) => {
13
13
  const {
@@ -24,5 +24,5 @@ export default ((onItemSelect, selectableType, extensionsWhitelist, hasHitSelect
24
24
  name: name,
25
25
  onChange: () => onItemSelect(rowData)
26
26
  });
27
- });
27
+ };
28
28
  //# sourceMappingURL=checkboxCellRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkboxCellRenderer.js","names":["React","Checkbox","isRowSelectable","onItemSelect","selectableType","extensionsWhitelist","hasHitSelectionLimit","rowData","name","selected","createElement","hideLabel","isChecked","label","onChange"],"sources":["../../../src/elements/content-picker/checkboxCellRenderer.js"],"sourcesContent":["/**\n * @flow\n * @file Function to render the checkbox table cell\n * @author Box\n */\n\nimport * as React from 'react';\nimport Checkbox from '../../components/checkbox/Checkbox';\nimport isRowSelectable from './cellRendererHelper';\nimport type { BoxItem } from '../../common/types/core';\n\nexport default (\n onItemSelect: Function,\n selectableType: string,\n extensionsWhitelist: string[],\n hasHitSelectionLimit: boolean,\n): Function => ({ rowData }: { rowData: BoxItem }) => {\n const { name, selected = false } = rowData;\n\n if (!isRowSelectable(selectableType, extensionsWhitelist, hasHitSelectionLimit, rowData)) {\n return <span />;\n }\n\n return (\n <Checkbox\n hideLabel\n isChecked={selected}\n label={((name: any): string)}\n name={((name: any): string)}\n onChange={() => onItemSelect(rowData)}\n />\n );\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,QAAQ,MAAM,oCAAoC;AACzD,OAAOC,eAAe,MAAM,sBAAsB;AAGlD,gBAAe,CACXC,YAAsB,EACtBC,cAAsB,EACtBC,mBAA6B,EAC7BC,oBAA6B,KAClB,CAAC;EAAEC;AAA8B,CAAC,KAAK;EAClD,MAAM;IAAEC,IAAI;IAAEC,QAAQ,GAAG;EAAM,CAAC,GAAGF,OAAO;EAE1C,IAAI,CAACL,eAAe,CAACE,cAAc,EAAEC,mBAAmB,EAAEC,oBAAoB,EAAEC,OAAO,CAAC,EAAE;IACtF,oBAAOP,KAAA,CAAAU,aAAA,aAAO,CAAC;EACnB;EAEA,oBACIV,KAAA,CAAAU,aAAA,CAACT,QAAQ;IACLU,SAAS;IACTC,SAAS,EAAEH,QAAS;IACpBI,KAAK,EAAIL,IAAoB;IAC7BA,IAAI,EAAIA,IAAoB;IAC5BM,QAAQ,EAAEA,CAAA,KAAMX,YAAY,CAACI,OAAO;EAAE,CACzC,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"checkboxCellRenderer.js","names":["React","Checkbox","isRowSelectable","onItemSelect","selectableType","extensionsWhitelist","hasHitSelectionLimit","rowData","name","selected","createElement","hideLabel","isChecked","label","onChange"],"sources":["../../../src/elements/content-picker/checkboxCellRenderer.js"],"sourcesContent":["/**\n * @flow\n * @file Function to render the checkbox table cell\n * @author Box\n */\n\nimport * as React from 'react';\nimport Checkbox from '../../components/checkbox/Checkbox';\nimport isRowSelectable from './cellRendererHelper';\nimport type { BoxItem } from '../../common/types/core';\n\nexport default (\n onItemSelect: Function,\n selectableType: string,\n extensionsWhitelist: string[],\n hasHitSelectionLimit: boolean,\n): Function => ({ rowData }: { rowData: BoxItem }) => {\n const { name, selected = false } = rowData;\n\n if (!isRowSelectable(selectableType, extensionsWhitelist, hasHitSelectionLimit, rowData)) {\n return <span />;\n }\n\n return (\n <Checkbox\n hideLabel\n isChecked={selected}\n label={((name: any): string)}\n name={((name: any): string)}\n onChange={() => onItemSelect(rowData)}\n />\n );\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,QAAQ,MAAM,oCAAoC;AACzD,OAAOC,eAAe,MAAM,sBAAsB;AAGlD,eAAe,CACXC,YAAsB,EACtBC,cAAsB,EACtBC,mBAA6B,EAC7BC,oBAA6B,KAClB,CAAC;EAAEC;AAA8B,CAAC,KAAK;EAClD,MAAM;IAAEC,IAAI;IAAEC,QAAQ,GAAG;EAAM,CAAC,GAAGF,OAAO;EAE1C,IAAI,CAACL,eAAe,CAACE,cAAc,EAAEC,mBAAmB,EAAEC,oBAAoB,EAAEC,OAAO,CAAC,EAAE;IACtF,oBAAOP,KAAA,CAAAU,aAAA,aAAO,CAAC;EACnB;EAEA,oBACIV,KAAA,CAAAU,aAAA,CAACT,QAAQ;IACLU,SAAS;IACTC,SAAS,EAAEH,QAAS;IACpBI,KAAK,EAAIL,IAAoB;IAC7BA,IAAI,EAAIA,IAAoB;IAC5BM,QAAQ,EAAEA,CAAA,KAAMX,YAAY,CAACI,OAAO;EAAE,CACzC,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -8,7 +8,7 @@ import * as React from 'react';
8
8
  import Checkbox from '../../components/checkbox';
9
9
  import RadioButton from '../../components/radio/RadioButton';
10
10
  import isRowSelectable from './cellRendererHelper';
11
- export default ((onItemSelect, selectableType, extensionsWhitelist, hasHitSelectionLimit, isRadio) => ({
11
+ export default (onItemSelect, selectableType, extensionsWhitelist, hasHitSelectionLimit, isRadio) => ({
12
12
  rowData
13
13
  }) => {
14
14
  const {
@@ -27,5 +27,5 @@ export default ((onItemSelect, selectableType, extensionsWhitelist, hasHitSelect
27
27
  value: name,
28
28
  [isRadio ? 'isSelected' : 'isChecked']: selected
29
29
  });
30
- });
30
+ };
31
31
  //# sourceMappingURL=selectionCellRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectionCellRenderer.js","names":["React","Checkbox","RadioButton","isRowSelectable","onItemSelect","selectableType","extensionsWhitelist","hasHitSelectionLimit","isRadio","rowData","name","selected","Component","createElement","hideLabel","label","onChange","value"],"sources":["../../../src/elements/content-picker/selectionCellRenderer.js"],"sourcesContent":["/**\n * @flow strict\n * @file Function to render the checkbox or radio table cell\n * @author Box\n */\n\nimport * as React from 'react';\nimport Checkbox from '../../components/checkbox';\nimport RadioButton from '../../components/radio/RadioButton';\nimport isRowSelectable from './cellRendererHelper';\nimport type { BoxItem } from '../../common/types/core';\n\nexport default (\n onItemSelect: (rowData: BoxItem) => {},\n selectableType: string,\n extensionsWhitelist: string[],\n hasHitSelectionLimit: boolean,\n isRadio: boolean,\n): (({ rowData: BoxItem }) => {}) => ({ rowData }: { rowData: BoxItem }) => {\n const { name = '', selected = false } = rowData;\n const Component = isRadio ? RadioButton : Checkbox;\n\n if (!isRowSelectable(selectableType, extensionsWhitelist, hasHitSelectionLimit, rowData)) {\n return <span />;\n }\n\n return (\n <Component\n hideLabel\n label={name}\n name={name}\n onChange={() => onItemSelect(rowData)}\n value={name}\n {...{ [isRadio ? 'isSelected' : 'isChecked']: selected }}\n />\n );\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,QAAQ,MAAM,2BAA2B;AAChD,OAAOC,WAAW,MAAM,oCAAoC;AAC5D,OAAOC,eAAe,MAAM,sBAAsB;AAGlD,gBAAe,CACXC,YAAsC,EACtCC,cAAsB,EACtBC,mBAA6B,EAC7BC,oBAA6B,EAC7BC,OAAgB,KACiB,CAAC;EAAEC;AAA8B,CAAC,KAAK;EACxE,MAAM;IAAEC,IAAI,GAAG,EAAE;IAAEC,QAAQ,GAAG;EAAM,CAAC,GAAGF,OAAO;EAC/C,MAAMG,SAAS,GAAGJ,OAAO,GAAGN,WAAW,GAAGD,QAAQ;EAElD,IAAI,CAACE,eAAe,CAACE,cAAc,EAAEC,mBAAmB,EAAEC,oBAAoB,EAAEE,OAAO,CAAC,EAAE;IACtF,oBAAOT,KAAA,CAAAa,aAAA,aAAO,CAAC;EACnB;EAEA,oBACIb,KAAA,CAAAa,aAAA,CAACD,SAAS;IACNE,SAAS;IACTC,KAAK,EAAEL,IAAK;IACZA,IAAI,EAAEA,IAAK;IACXM,QAAQ,EAAEA,CAAA,KAAMZ,YAAY,CAACK,OAAO,CAAE;IACtCQ,KAAK,EAAEP,IAAK;IACN,CAACF,OAAO,GAAG,YAAY,GAAG,WAAW,GAAGG;EAAQ,CACzD,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"selectionCellRenderer.js","names":["React","Checkbox","RadioButton","isRowSelectable","onItemSelect","selectableType","extensionsWhitelist","hasHitSelectionLimit","isRadio","rowData","name","selected","Component","createElement","hideLabel","label","onChange","value"],"sources":["../../../src/elements/content-picker/selectionCellRenderer.js"],"sourcesContent":["/**\n * @flow strict\n * @file Function to render the checkbox or radio table cell\n * @author Box\n */\n\nimport * as React from 'react';\nimport Checkbox from '../../components/checkbox';\nimport RadioButton from '../../components/radio/RadioButton';\nimport isRowSelectable from './cellRendererHelper';\nimport type { BoxItem } from '../../common/types/core';\n\nexport default (\n onItemSelect: (rowData: BoxItem) => {},\n selectableType: string,\n extensionsWhitelist: string[],\n hasHitSelectionLimit: boolean,\n isRadio: boolean,\n): (({ rowData: BoxItem }) => {}) => ({ rowData }: { rowData: BoxItem }) => {\n const { name = '', selected = false } = rowData;\n const Component = isRadio ? RadioButton : Checkbox;\n\n if (!isRowSelectable(selectableType, extensionsWhitelist, hasHitSelectionLimit, rowData)) {\n return <span />;\n }\n\n return (\n <Component\n hideLabel\n label={name}\n name={name}\n onChange={() => onItemSelect(rowData)}\n value={name}\n {...{ [isRadio ? 'isSelected' : 'isChecked']: selected }}\n />\n );\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,QAAQ,MAAM,2BAA2B;AAChD,OAAOC,WAAW,MAAM,oCAAoC;AAC5D,OAAOC,eAAe,MAAM,sBAAsB;AAGlD,eAAe,CACXC,YAAsC,EACtCC,cAAsB,EACtBC,mBAA6B,EAC7BC,oBAA6B,EAC7BC,OAAgB,KACiB,CAAC;EAAEC;AAA8B,CAAC,KAAK;EACxE,MAAM;IAAEC,IAAI,GAAG,EAAE;IAAEC,QAAQ,GAAG;EAAM,CAAC,GAAGF,OAAO;EAC/C,MAAMG,SAAS,GAAGJ,OAAO,GAAGN,WAAW,GAAGD,QAAQ;EAElD,IAAI,CAACE,eAAe,CAACE,cAAc,EAAEC,mBAAmB,EAAEC,oBAAoB,EAAEE,OAAO,CAAC,EAAE;IACtF,oBAAOT,KAAA,CAAAa,aAAA,aAAO,CAAC;EACnB;EAEA,oBACIb,KAAA,CAAAa,aAAA,CAACD,SAAS;IACNE,SAAS;IACTC,KAAK,EAAEL,IAAK;IACZA,IAAI,EAAEA,IAAK;IACXM,QAAQ,EAAEA,CAAA,KAAMZ,YAAY,CAACK,OAAO,CAAE;IACtCQ,KAAK,EAAEP,IAAK;IACN,CAACF,OAAO,GAAG,YAAY,GAAG,WAAW,GAAGG;EAAQ,CACzD,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -9,7 +9,7 @@ import getProp from 'lodash/get';
9
9
  import ShareAccessSelect from '../common/share-access-select';
10
10
  import isRowSelectable from './cellRendererHelper';
11
11
  import LoadingIndicator from '../../components/loading-indicator';
12
- export default ((onChange, canSetShareAccess, selectableType, extensionsWhitelist, hasHitSelectionLimit) => ({
12
+ export default (onChange, canSetShareAccess, selectableType, extensionsWhitelist, hasHitSelectionLimit) => ({
13
13
  rowData
14
14
  }) => {
15
15
  const itemCanSetShareAccess = getProp(rowData, 'permissions.can_set_share_access', false);
@@ -28,5 +28,5 @@ export default ((onChange, canSetShareAccess, selectableType, extensionsWhitelis
28
28
  item: rowData,
29
29
  onChange: onChange
30
30
  });
31
- });
31
+ };
32
32
  //# sourceMappingURL=shareAccessCellRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shareAccessCellRenderer.js","names":["React","getProp","ShareAccessSelect","isRowSelectable","LoadingIndicator","onChange","canSetShareAccess","selectableType","extensionsWhitelist","hasHitSelectionLimit","rowData","itemCanSetShareAccess","selected","createElement","allowed_shared_link_access_levels","isLoading","className","item"],"sources":["../../../src/elements/content-picker/shareAccessCellRenderer.js"],"sourcesContent":["/**\n * @flow\n * @file Function to render the share access table cell\n * @author Box\n */\n\nimport * as React from 'react';\nimport getProp from 'lodash/get';\nimport ShareAccessSelect from '../common/share-access-select';\nimport isRowSelectable from './cellRendererHelper';\nimport LoadingIndicator from '../../components/loading-indicator';\nimport type { BoxItem } from '../../common/types/core';\n\nexport default (\n onChange: Function,\n canSetShareAccess: boolean,\n selectableType: string,\n extensionsWhitelist: string[],\n hasHitSelectionLimit: boolean,\n) => ({ rowData }: { rowData: BoxItem }) => {\n const itemCanSetShareAccess = getProp(rowData, 'permissions.can_set_share_access', false);\n\n if (\n !canSetShareAccess ||\n !itemCanSetShareAccess ||\n !isRowSelectable(selectableType, extensionsWhitelist, hasHitSelectionLimit, rowData) ||\n !rowData.selected\n ) {\n return <span />;\n }\n\n const { allowed_shared_link_access_levels } = rowData;\n const isLoading = !allowed_shared_link_access_levels;\n\n return isLoading ? (\n <LoadingIndicator className=\"bcp-share-access-loading\" />\n ) : (\n <ShareAccessSelect\n canSetShareAccess={canSetShareAccess}\n className=\"bcp-shared-access-select\"\n item={rowData}\n onChange={onChange}\n />\n );\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,iBAAiB,MAAM,+BAA+B;AAC7D,OAAOC,eAAe,MAAM,sBAAsB;AAClD,OAAOC,gBAAgB,MAAM,oCAAoC;AAGjE,gBAAe,CACXC,QAAkB,EAClBC,iBAA0B,EAC1BC,cAAsB,EACtBC,mBAA6B,EAC7BC,oBAA6B,KAC5B,CAAC;EAAEC;AAA8B,CAAC,KAAK;EACxC,MAAMC,qBAAqB,GAAGV,OAAO,CAACS,OAAO,EAAE,kCAAkC,EAAE,KAAK,CAAC;EAEzF,IACI,CAACJ,iBAAiB,IAClB,CAACK,qBAAqB,IACtB,CAACR,eAAe,CAACI,cAAc,EAAEC,mBAAmB,EAAEC,oBAAoB,EAAEC,OAAO,CAAC,IACpF,CAACA,OAAO,CAACE,QAAQ,EACnB;IACE,oBAAOZ,KAAA,CAAAa,aAAA,aAAO,CAAC;EACnB;EAEA,MAAM;IAAEC;EAAkC,CAAC,GAAGJ,OAAO;EACrD,MAAMK,SAAS,GAAG,CAACD,iCAAiC;EAEpD,OAAOC,SAAS,gBACZf,KAAA,CAAAa,aAAA,CAACT,gBAAgB;IAACY,SAAS,EAAC;EAA0B,CAAE,CAAC,gBAEzDhB,KAAA,CAAAa,aAAA,CAACX,iBAAiB;IACdI,iBAAiB,EAAEA,iBAAkB;IACrCU,SAAS,EAAC,0BAA0B;IACpCC,IAAI,EAAEP,OAAQ;IACdL,QAAQ,EAAEA;EAAS,CACtB,CACJ;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"shareAccessCellRenderer.js","names":["React","getProp","ShareAccessSelect","isRowSelectable","LoadingIndicator","onChange","canSetShareAccess","selectableType","extensionsWhitelist","hasHitSelectionLimit","rowData","itemCanSetShareAccess","selected","createElement","allowed_shared_link_access_levels","isLoading","className","item"],"sources":["../../../src/elements/content-picker/shareAccessCellRenderer.js"],"sourcesContent":["/**\n * @flow\n * @file Function to render the share access table cell\n * @author Box\n */\n\nimport * as React from 'react';\nimport getProp from 'lodash/get';\nimport ShareAccessSelect from '../common/share-access-select';\nimport isRowSelectable from './cellRendererHelper';\nimport LoadingIndicator from '../../components/loading-indicator';\nimport type { BoxItem } from '../../common/types/core';\n\nexport default (\n onChange: Function,\n canSetShareAccess: boolean,\n selectableType: string,\n extensionsWhitelist: string[],\n hasHitSelectionLimit: boolean,\n) => ({ rowData }: { rowData: BoxItem }) => {\n const itemCanSetShareAccess = getProp(rowData, 'permissions.can_set_share_access', false);\n\n if (\n !canSetShareAccess ||\n !itemCanSetShareAccess ||\n !isRowSelectable(selectableType, extensionsWhitelist, hasHitSelectionLimit, rowData) ||\n !rowData.selected\n ) {\n return <span />;\n }\n\n const { allowed_shared_link_access_levels } = rowData;\n const isLoading = !allowed_shared_link_access_levels;\n\n return isLoading ? (\n <LoadingIndicator className=\"bcp-share-access-loading\" />\n ) : (\n <ShareAccessSelect\n canSetShareAccess={canSetShareAccess}\n className=\"bcp-shared-access-select\"\n item={rowData}\n onChange={onChange}\n />\n );\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,iBAAiB,MAAM,+BAA+B;AAC7D,OAAOC,eAAe,MAAM,sBAAsB;AAClD,OAAOC,gBAAgB,MAAM,oCAAoC;AAGjE,eAAe,CACXC,QAAkB,EAClBC,iBAA0B,EAC1BC,cAAsB,EACtBC,mBAA6B,EAC7BC,oBAA6B,KAC5B,CAAC;EAAEC;AAA8B,CAAC,KAAK;EACxC,MAAMC,qBAAqB,GAAGV,OAAO,CAACS,OAAO,EAAE,kCAAkC,EAAE,KAAK,CAAC;EAEzF,IACI,CAACJ,iBAAiB,IAClB,CAACK,qBAAqB,IACtB,CAACR,eAAe,CAACI,cAAc,EAAEC,mBAAmB,EAAEC,oBAAoB,EAAEC,OAAO,CAAC,IACpF,CAACA,OAAO,CAACE,QAAQ,EACnB;IACE,oBAAOZ,KAAA,CAAAa,aAAA,aAAO,CAAC;EACnB;EAEA,MAAM;IAAEC;EAAkC,CAAC,GAAGJ,OAAO;EACrD,MAAMK,SAAS,GAAG,CAACD,iCAAiC;EAEpD,OAAOC,SAAS,gBACZf,KAAA,CAAAa,aAAA,CAACT,gBAAgB;IAACY,SAAS,EAAC;EAA0B,CAAE,CAAC,gBAEzDhB,KAAA,CAAAa,aAAA,CAACX,iBAAiB;IACdI,iBAAiB,EAAEA,iBAAkB;IACrCU,SAAS,EAAC,0BAA0B;IACpCC,IAAI,EAAEP,OAAQ;IACdL,QAAQ,EAAEA;EAAS,CACtB,CACJ;AACL,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { expect, userEvent, waitFor, within } from '@storybook/test';
2
+ import { expect, userEvent, waitFor, within } from 'storybook/test';
3
3
  import { http, HttpResponse } from 'msw';
4
4
  import ContentPicker from '../../ContentPicker';
5
5
  import { mockRootFolder, mockEmptyRootFolder } from '../../../common/__mocks__/mockRootFolder';
@@ -121,30 +121,6 @@ export const customActionButtons = {
121
121
  }, "Custom Action (", selectedCount, " items)")
122
122
  }
123
123
  };
124
- export const itemCustomActions = {
125
- args: {
126
- itemActions: [{
127
- label: 'alert',
128
- onAction: () => {
129
- // eslint-disable-next-line no-alert
130
- alert('You clicked me!');
131
- }
132
- }]
133
- },
134
- play: async ({
135
- canvasElement
136
- }) => {
137
- const canvas = within(canvasElement);
138
- await waitFor(async () => {
139
- const moreOptions = await canvas.findAllByRole('button', {
140
- name: 'More options'
141
- });
142
- await userEvent.click(moreOptions[0]);
143
- const menuItem = await waitFor(() => document.querySelector('[role="menuitem"]'));
144
- expect(menuItem).toBeInTheDocument();
145
- });
146
- }
147
- };
148
124
  export default {
149
125
  title: 'Elements/ContentPicker/tests/visual',
150
126
  component: ContentPicker,