box-ui-elements 16.0.0-beta.8 → 16.0.0

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 (798) hide show
  1. package/dist/explorer.css +1 -1
  2. package/dist/explorer.js +19 -58
  3. package/dist/openwith.css +1 -1
  4. package/dist/openwith.js +10 -10
  5. package/dist/picker.css +1 -1
  6. package/dist/picker.js +12 -12
  7. package/dist/preview.css +1 -1
  8. package/dist/preview.js +17 -56
  9. package/dist/sharing.css +1 -1
  10. package/dist/sharing.js +34 -34
  11. package/dist/sidebar.css +1 -1
  12. package/dist/sidebar.js +17 -56
  13. package/dist/uploader.css +1 -1
  14. package/dist/uploader.js +12 -12
  15. package/es/api/APIFactory.js +27 -0
  16. package/es/api/APIFactory.js.flow +26 -0
  17. package/es/api/APIFactory.js.map +1 -1
  18. package/es/api/Annotations.js +180 -27
  19. package/es/api/Annotations.js.flow +150 -14
  20. package/es/api/Annotations.js.map +1 -1
  21. package/es/api/Comments.js +2 -2
  22. package/es/api/Comments.js.flow +5 -4
  23. package/es/api/Comments.js.map +1 -1
  24. package/es/api/Feed.js +578 -69
  25. package/es/api/Feed.js.flow +677 -17
  26. package/es/api/Feed.js.map +1 -1
  27. package/es/api/FileCollaborators.js +29 -0
  28. package/es/api/FileCollaborators.js.flow +30 -0
  29. package/es/api/FileCollaborators.js.map +1 -1
  30. package/es/api/ThreadedComments.js +64 -27
  31. package/es/api/ThreadedComments.js.flow +54 -29
  32. package/es/api/ThreadedComments.js.map +1 -1
  33. package/es/api/fixtures.js +381 -0
  34. package/es/api/fixtures.js.flow +401 -0
  35. package/es/api/fixtures.js.map +1 -0
  36. package/es/api/messages.js +4 -0
  37. package/es/api/messages.js.flow +5 -0
  38. package/es/api/messages.js.map +1 -1
  39. package/es/api/utils.js +33 -0
  40. package/es/api/utils.js.flow +30 -0
  41. package/es/api/utils.js.map +1 -0
  42. package/es/common/types/annotations.js.flow +18 -10
  43. package/es/common/types/feed.js +1 -1
  44. package/es/common/types/feed.js.flow +40 -4
  45. package/es/common/types/feed.js.map +1 -1
  46. package/es/components/accessible-svg/AccessibleSVG.stories.js +20 -0
  47. package/es/components/accessible-svg/AccessibleSVG.stories.js.map +1 -0
  48. package/es/components/badge/Badge.stories.js +1 -13
  49. package/es/components/badge/Badge.stories.js.map +1 -1
  50. package/es/components/badge/BetaBadge.stories.js +10 -0
  51. package/es/components/badge/BetaBadge.stories.js.map +1 -0
  52. package/es/components/badge/TrialBadge.stories.js +10 -0
  53. package/es/components/badge/TrialBadge.stories.js.map +1 -0
  54. package/es/components/badge/UpgradeBadge.stories.js +10 -0
  55. package/es/components/badge/UpgradeBadge.stories.js.map +1 -0
  56. package/es/components/breadcrumb/Breadcrumb.js +48 -35
  57. package/es/components/breadcrumb/Breadcrumb.js.flow +68 -42
  58. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  59. package/es/components/breadcrumb/EllipsisCrumb.js +5 -3
  60. package/es/components/breadcrumb/EllipsisCrumb.js.flow +10 -6
  61. package/es/components/breadcrumb/EllipsisCrumb.js.map +1 -1
  62. package/es/components/count-badge/CountBadge.stories.js +1 -1
  63. package/es/components/count-badge/CountBadge.stories.js.map +1 -1
  64. package/es/components/draggable-list/DraggableList.stories.js +119 -5
  65. package/es/components/draggable-list/DraggableList.stories.js.map +1 -1
  66. package/es/components/dropdown-menu/DropdownMenu.js +9 -0
  67. package/es/components/dropdown-menu/DropdownMenu.js.flow +11 -0
  68. package/es/components/dropdown-menu/DropdownMenu.js.map +1 -1
  69. package/es/components/dropdown-menu/DropdownMenu.scss +3 -3
  70. package/es/components/infinite-scroll/InfiniteScroll.js +4 -2
  71. package/es/components/infinite-scroll/InfiniteScroll.js.map +1 -1
  72. package/es/components/modal/Modal.scss +5 -1
  73. package/es/components/search-form/SearchForm.js +1 -1
  74. package/es/components/search-form/SearchForm.js.flow +1 -1
  75. package/es/components/search-form/SearchForm.js.map +1 -1
  76. package/es/components/table/makeSelectable.js +304 -97
  77. package/es/components/table/makeSelectable.js.flow +299 -98
  78. package/es/components/table/makeSelectable.js.map +1 -1
  79. package/es/components/tooltip/Tooltip.js +3 -2
  80. package/es/components/tooltip/Tooltip.js.map +1 -1
  81. package/es/constants.js +11 -0
  82. package/es/constants.js.flow +11 -0
  83. package/es/constants.js.map +1 -1
  84. package/es/elements/common/annotator-context/index.js +1 -0
  85. package/es/elements/common/annotator-context/index.js.flow +4 -0
  86. package/es/elements/common/annotator-context/index.js.map +1 -1
  87. package/es/elements/common/annotator-context/types.js +12 -0
  88. package/es/elements/common/annotator-context/types.js.flow +77 -35
  89. package/es/elements/common/annotator-context/types.js.map +1 -1
  90. package/es/elements/common/annotator-context/useAnnotatorEvents.js +205 -0
  91. package/es/elements/common/annotator-context/useAnnotatorEvents.js.flow +52 -0
  92. package/es/elements/common/annotator-context/useAnnotatorEvents.js.map +1 -0
  93. package/es/elements/common/annotator-context/withAnnotations.js +224 -5
  94. package/es/elements/common/annotator-context/withAnnotations.js.flow +73 -36
  95. package/es/elements/common/annotator-context/withAnnotations.js.map +1 -1
  96. package/es/elements/common/annotator-context/withAnnotatorContext.js +12 -4
  97. package/es/elements/common/annotator-context/withAnnotatorContext.js.flow +29 -9
  98. package/es/elements/common/annotator-context/withAnnotatorContext.js.map +1 -1
  99. package/es/elements/common/current-user/index.js +3 -0
  100. package/es/elements/common/current-user/index.js.flow +8 -0
  101. package/es/elements/common/current-user/index.js.map +1 -0
  102. package/es/elements/common/current-user/withCurrentUser.js +139 -0
  103. package/es/elements/common/current-user/withCurrentUser.js.flow +40 -0
  104. package/es/elements/common/current-user/withCurrentUser.js.map +1 -0
  105. package/es/elements/common/flowTypes.js.flow +22 -4
  106. package/es/elements/common/flowTypes.js.map +1 -1
  107. package/es/elements/common/interactionTargets.js +2 -0
  108. package/es/elements/common/interactionTargets.js.flow +2 -0
  109. package/es/elements/common/interactionTargets.js.map +1 -1
  110. package/es/elements/common/logger/Logger.js +1 -1
  111. package/es/elements/common/logger/Logger.js.flow +1 -1
  112. package/es/elements/common/logger/Logger.js.map +1 -1
  113. package/es/elements/common/messages.js +4 -0
  114. package/es/elements/common/messages.js.flow +5 -0
  115. package/es/elements/common/messages.js.map +1 -1
  116. package/es/elements/content-explorer/DeleteConfirmationDialog.js +2 -1
  117. package/es/elements/content-explorer/DeleteConfirmationDialog.js.flow +3 -1
  118. package/es/elements/content-explorer/DeleteConfirmationDialog.js.map +1 -1
  119. package/es/elements/content-explorer/DeleteConfirmationDialog.scss +5 -0
  120. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +58 -0
  121. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.flow +60 -0
  122. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.map +1 -0
  123. package/es/elements/content-sidebar/ActivitySidebar.js +323 -197
  124. package/es/elements/content-sidebar/ActivitySidebar.js.flow +381 -154
  125. package/es/elements/content-sidebar/ActivitySidebar.js.map +1 -1
  126. package/es/elements/content-sidebar/ActivitySidebarFilter.js +52 -0
  127. package/es/elements/content-sidebar/ActivitySidebarFilter.js.flow +59 -0
  128. package/es/elements/content-sidebar/ActivitySidebarFilter.js.map +1 -0
  129. package/es/elements/content-sidebar/ActivitySidebarFilter.scss +4 -0
  130. package/es/elements/content-sidebar/DetailsSidebar.js +50 -25
  131. package/es/elements/content-sidebar/DetailsSidebar.js.flow +32 -4
  132. package/es/elements/content-sidebar/DetailsSidebar.js.map +1 -1
  133. package/es/elements/content-sidebar/Sidebar.js +4 -1
  134. package/es/elements/content-sidebar/Sidebar.js.flow +6 -1
  135. package/es/elements/content-sidebar/Sidebar.js.map +1 -1
  136. package/es/elements/content-sidebar/SidebarContentInsights.js +45 -0
  137. package/es/elements/content-sidebar/SidebarContentInsights.js.map +1 -0
  138. package/es/elements/content-sidebar/SidebarContentInsights.scss +6 -0
  139. package/es/elements/content-sidebar/SidebarPanels.js +2 -0
  140. package/es/elements/content-sidebar/SidebarPanels.js.flow +4 -0
  141. package/es/elements/content-sidebar/SidebarPanels.js.map +1 -1
  142. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +91 -10
  143. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.flow +122 -24
  144. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.map +1 -1
  145. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +27 -15
  146. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.flow +59 -18
  147. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.map +1 -1
  148. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +101 -0
  149. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.flow +126 -0
  150. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.map +1 -0
  151. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
  152. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +69 -0
  153. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.flow +85 -0
  154. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.map +1 -0
  155. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
  156. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +62 -0
  157. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.flow +59 -0
  158. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.map +1 -0
  159. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +22 -0
  160. package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js +2 -2
  161. package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js.flow +2 -2
  162. package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js.map +1 -1
  163. package/es/elements/content-sidebar/activity-feed/activity-feed/fixtures.js +55 -0
  164. package/es/elements/content-sidebar/activity-feed/activity-feed/fixtures.js.map +1 -0
  165. package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js +16 -0
  166. package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.flow +20 -0
  167. package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.map +1 -1
  168. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +121 -0
  169. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.flow +117 -0
  170. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.map +1 -0
  171. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +7 -0
  172. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +75 -0
  173. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.flow +105 -0
  174. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.map +1 -0
  175. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +5 -0
  176. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +77 -0
  177. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.flow +86 -0
  178. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.map +1 -0
  179. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.scss +3 -0
  180. package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js +11 -0
  181. package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.flow +26 -0
  182. package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.map +1 -0
  183. package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js +2 -0
  184. package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js.flow +1 -0
  185. package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js.map +1 -0
  186. package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js +17 -0
  187. package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js.flow +21 -0
  188. package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js.map +1 -0
  189. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +180 -0
  190. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.flow +203 -0
  191. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.map +1 -0
  192. package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +124 -0
  193. package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.flow +121 -0
  194. package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.map +1 -0
  195. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +19 -5
  196. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.flow +24 -4
  197. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.map +1 -1
  198. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +25 -4
  199. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.flow +36 -2
  200. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.map +1 -1
  201. package/es/elements/content-sidebar/activity-feed/annotations/messages.js +8 -0
  202. package/es/elements/content-sidebar/activity-feed/annotations/messages.js.flow +10 -0
  203. package/es/elements/content-sidebar/activity-feed/annotations/messages.js.map +1 -1
  204. package/es/elements/content-sidebar/activity-feed/comment/Comment.js +61 -28
  205. package/es/elements/content-sidebar/activity-feed/comment/Comment.js.flow +54 -10
  206. package/es/elements/content-sidebar/activity-feed/comment/Comment.js.map +1 -1
  207. package/es/elements/content-sidebar/activity-feed/comment/messages.js +8 -0
  208. package/es/elements/content-sidebar/activity-feed/comment/messages.js.flow +10 -0
  209. package/es/elements/content-sidebar/activity-feed/comment/messages.js.map +1 -1
  210. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +4 -2
  211. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.flow +3 -1
  212. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.map +1 -1
  213. package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js +16 -5
  214. package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js.flow +34 -4
  215. package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js.map +1 -1
  216. package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +40 -3
  217. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js +49 -0
  218. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js.flow +42 -0
  219. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js.map +1 -0
  220. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js +21 -0
  221. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js.flow +24 -0
  222. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js.map +1 -0
  223. package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js +12 -0
  224. package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.flow +15 -0
  225. package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.map +1 -1
  226. package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js +24 -0
  227. package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js.flow +30 -0
  228. package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js.map +1 -0
  229. package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +6 -0
  230. package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js +2 -0
  231. package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js.flow +2 -0
  232. package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js.map +1 -0
  233. package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js +9 -0
  234. package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js.flow +13 -0
  235. package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js.map +1 -0
  236. package/es/elements/content-sidebar/activity-feed/common/activity-timestamp/ActivityTimestamp.scss +1 -1
  237. package/es/elements/content-sidebar/fixtures.js +181 -0
  238. package/es/elements/content-sidebar/fixtures.js.flow +185 -0
  239. package/es/elements/content-sidebar/fixtures.js.map +1 -0
  240. package/es/elements/content-sidebar/flowTypes.js.flow +9 -25
  241. package/es/elements/content-sidebar/messages.js +8 -0
  242. package/es/elements/content-sidebar/messages.js.flow +10 -0
  243. package/es/elements/content-sidebar/messages.js.map +1 -1
  244. package/es/elements/content-sidebar/withErrorHandling.js.flow +1 -1
  245. package/es/elements/content-sidebar/withErrorHandling.js.map +1 -1
  246. package/es/elements/content-sidebar/withSidebarAnnotations.js +215 -30
  247. package/es/elements/content-sidebar/withSidebarAnnotations.js.flow +162 -11
  248. package/es/elements/content-sidebar/withSidebarAnnotations.js.map +1 -1
  249. package/es/elements/content-uploader/OverallUploadsProgressBar.js +10 -8
  250. package/es/elements/content-uploader/OverallUploadsProgressBar.js.flow +11 -12
  251. package/es/elements/content-uploader/OverallUploadsProgressBar.js.map +1 -1
  252. package/es/features/classification/Classification.scss +1 -1
  253. package/es/features/classification/security-controls/SecurityControlsItem.scss +1 -0
  254. package/es/features/classification/security-controls/messages.js +8 -0
  255. package/es/features/classification/security-controls/messages.js.flow +10 -0
  256. package/es/features/classification/security-controls/messages.js.map +1 -1
  257. package/es/features/classification/security-controls/utils.js +4 -7
  258. package/es/features/classification/security-controls/utils.js.flow +8 -12
  259. package/es/features/classification/security-controls/utils.js.map +1 -1
  260. package/es/features/content-explorer/content-explorer/ContentExplorer.js +6 -1
  261. package/es/features/content-explorer/content-explorer/ContentExplorer.js.flow +4 -0
  262. package/es/features/content-explorer/content-explorer/ContentExplorer.js.map +1 -1
  263. package/es/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
  264. package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +15 -9
  265. package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js.flow +14 -11
  266. package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js.map +1 -1
  267. package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +4 -1
  268. package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.flow +4 -1
  269. package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.map +1 -1
  270. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +6 -3
  271. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.flow +5 -1
  272. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.map +1 -1
  273. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +6 -1
  274. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.flow +5 -1
  275. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.map +1 -1
  276. package/es/features/content-explorer/prop-types.js +7 -1
  277. package/es/features/content-explorer/prop-types.js.flow +8 -0
  278. package/es/features/content-explorer/prop-types.js.map +1 -1
  279. package/es/features/content-insights/CompactCount.js +24 -0
  280. package/es/features/content-insights/CompactCount.js.map +1 -0
  281. package/es/features/content-insights/ContentAnalyticsErrorState.js +35 -0
  282. package/es/features/content-insights/ContentAnalyticsErrorState.js.map +1 -0
  283. package/es/features/content-insights/ContentAnalyticsErrorState.scss +17 -0
  284. package/es/features/content-insights/ContentInsightsSummary.js +42 -0
  285. package/es/features/content-insights/ContentInsightsSummary.js.map +1 -0
  286. package/es/features/content-insights/ContentInsightsSummary.scss +12 -0
  287. package/es/features/content-insights/ContentInsightsSummaryGhostState.js +19 -0
  288. package/es/features/content-insights/ContentInsightsSummaryGhostState.js.map +1 -0
  289. package/es/features/content-insights/ContentInsightsSummaryGhostState.scss +9 -0
  290. package/es/features/content-insights/GraphCardGhostState.js +25 -0
  291. package/es/features/content-insights/GraphCardGhostState.js.map +1 -0
  292. package/es/features/content-insights/GraphCardGhostState.scss +18 -0
  293. package/es/features/content-insights/GraphCardPreviewsSummary.js +30 -0
  294. package/es/features/content-insights/GraphCardPreviewsSummary.js.map +1 -0
  295. package/es/features/content-insights/GraphCardPreviewsSummary.scss +10 -0
  296. package/es/features/content-insights/GraphGhostState.js +21 -0
  297. package/es/features/content-insights/GraphGhostState.js.map +1 -0
  298. package/es/features/content-insights/GraphGhostState.scss +11 -0
  299. package/es/features/content-insights/HeaderWithCount.js +23 -0
  300. package/es/features/content-insights/HeaderWithCount.js.map +1 -0
  301. package/es/features/content-insights/HeaderWithCount.scss +10 -0
  302. package/es/features/content-insights/MetricSummary.js +85 -0
  303. package/es/features/content-insights/MetricSummary.js.map +1 -0
  304. package/es/features/content-insights/MetricSummary.scss +14 -0
  305. package/es/features/content-insights/OpenContentInsightsButton.js +16 -0
  306. package/es/features/content-insights/OpenContentInsightsButton.js.map +1 -0
  307. package/es/features/content-insights/TrendPill.js +61 -0
  308. package/es/features/content-insights/TrendPill.js.map +1 -0
  309. package/es/features/content-insights/TrendPill.scss +33 -0
  310. package/es/features/content-insights/_mixins.scss +7 -0
  311. package/es/features/content-insights/_variables.scss +4 -0
  312. package/es/features/content-insights/charts/bar/Bar.js +57 -0
  313. package/es/features/content-insights/charts/bar/Bar.js.map +1 -0
  314. package/es/features/content-insights/charts/bar/Bar.scss +27 -0
  315. package/es/features/content-insights/charts/bar/BarChart.js +70 -0
  316. package/es/features/content-insights/charts/bar/BarChart.js.map +1 -0
  317. package/es/features/content-insights/charts/bar/BarChart.scss +56 -0
  318. package/es/features/content-insights/charts/types.js +2 -0
  319. package/es/{common/types/threadedComments.js.map → features/content-insights/charts/types.js.map} +1 -1
  320. package/es/features/content-insights/constants.js +54 -0
  321. package/es/features/content-insights/constants.js.map +1 -0
  322. package/es/features/content-insights/messages.js +69 -0
  323. package/es/features/content-insights/messages.js.map +1 -0
  324. package/es/features/content-insights/numberUtils.js +10 -0
  325. package/es/features/content-insights/numberUtils.js.map +1 -0
  326. package/es/features/content-insights/types.js +2 -0
  327. package/es/features/content-insights/types.js.map +1 -0
  328. package/es/features/item-details/ItemProperties.scss +1 -1
  329. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js +5 -3
  330. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.flow +4 -2
  331. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.map +1 -1
  332. package/es/features/unified-share-modal/ContactRestrictionNotice.js +34 -8
  333. package/es/features/unified-share-modal/ContactRestrictionNotice.js.flow +36 -6
  334. package/es/features/unified-share-modal/ContactRestrictionNotice.js.map +1 -1
  335. package/es/features/unified-share-modal/EmailForm.js +59 -47
  336. package/es/features/unified-share-modal/EmailForm.js.flow +31 -13
  337. package/es/features/unified-share-modal/EmailForm.js.map +1 -1
  338. package/es/features/unified-share-modal/UnifiedShareForm.js +112 -103
  339. package/es/features/unified-share-modal/UnifiedShareForm.js.flow +25 -8
  340. package/es/features/unified-share-modal/UnifiedShareForm.js.map +1 -1
  341. package/es/features/unified-share-modal/UnifiedShareModal.js +1 -0
  342. package/es/features/unified-share-modal/UnifiedShareModal.js.flow +1 -0
  343. package/es/features/unified-share-modal/UnifiedShareModal.js.map +1 -1
  344. package/es/features/unified-share-modal/flowTypes.js.flow +4 -2
  345. package/es/features/unified-share-modal/flowTypes.js.map +1 -1
  346. package/es/features/unified-share-modal/messages.js +12 -8
  347. package/es/features/unified-share-modal/messages.js.flow +14 -8
  348. package/es/features/unified-share-modal/messages.js.map +1 -1
  349. package/es/features/unified-share-modal/utils/hasRestrictedContacts.js +9 -4
  350. package/es/features/unified-share-modal/utils/hasRestrictedContacts.js.flow +10 -3
  351. package/es/features/unified-share-modal/utils/hasRestrictedContacts.js.map +1 -1
  352. package/es/features/unified-share-modal/utils/isRestrictedContact.js +15 -0
  353. package/es/features/unified-share-modal/utils/isRestrictedContact.js.flow +21 -0
  354. package/es/features/unified-share-modal/utils/isRestrictedContact.js.map +1 -0
  355. package/es/icon/fill/Alert16.js +3 -2
  356. package/es/icon/fill/Alert16.js.flow +3 -2
  357. package/es/icon/fill/Alert16.js.map +1 -1
  358. package/es/icon/fill/AlertBadge16.js +31 -0
  359. package/es/icon/fill/AlertBadge16.js.flow +29 -0
  360. package/es/icon/fill/AlertBadge16.js.map +1 -0
  361. package/es/icon/fill/AlertBadge16.stories.js +13 -0
  362. package/es/icon/fill/AlertBadge16.stories.js.map +1 -0
  363. package/es/icon/fill/Info16.js +2 -2
  364. package/es/icon/fill/Info16.js.flow +1 -1
  365. package/es/icon/fill/Info16.js.map +1 -1
  366. package/es/icon/fill/InfoBadge16.js +30 -0
  367. package/es/icon/fill/InfoBadge16.js.flow +28 -0
  368. package/es/icon/fill/InfoBadge16.js.map +1 -0
  369. package/es/icon/fill/InfoBadge16.stories.js +13 -0
  370. package/es/icon/fill/InfoBadge16.stories.js.map +1 -0
  371. package/es/icon/fill/UserSettings16.js +38 -0
  372. package/es/icon/fill/UserSettings16.js.flow +38 -0
  373. package/es/icon/fill/UserSettings16.js.map +1 -0
  374. package/es/icon/fill/UserSettings16.stories.js +13 -0
  375. package/es/icon/fill/UserSettings16.stories.js.map +1 -0
  376. package/es/icon/line/AlertBubble16.js +31 -0
  377. package/es/icon/line/AlertBubble16.js.flow +29 -0
  378. package/es/icon/line/AlertBubble16.js.map +1 -0
  379. package/es/icon/line/AlertBubble16.stories.js +13 -0
  380. package/es/icon/line/AlertBubble16.stories.js.map +1 -0
  381. package/es/icon/line/AvatarXBadge16.js +45 -0
  382. package/es/icon/line/AvatarXBadge16.js.flow +39 -0
  383. package/es/icon/line/AvatarXBadge16.js.map +1 -0
  384. package/es/icon/line/AvatarXBadge16.stories.js +13 -0
  385. package/es/icon/line/AvatarXBadge16.stories.js.map +1 -0
  386. package/es/icon/line/CoEdit16.js +32 -0
  387. package/es/icon/line/CoEdit16.js.flow +30 -0
  388. package/es/icon/line/CoEdit16.js.map +1 -0
  389. package/es/icon/line/CoEdit16.stories.js +13 -0
  390. package/es/icon/line/CoEdit16.stories.js.map +1 -0
  391. package/es/icon/line/Collaborations16.js +32 -0
  392. package/es/icon/line/Collaborations16.js.flow +30 -0
  393. package/es/icon/line/Collaborations16.js.map +1 -0
  394. package/es/icon/line/Collaborations16.stories.js +13 -0
  395. package/es/icon/line/Collaborations16.stories.js.map +1 -0
  396. package/es/icon/line/CommentBubble16.js +35 -0
  397. package/es/icon/line/CommentBubble16.js.flow +34 -0
  398. package/es/icon/line/CommentBubble16.js.map +1 -0
  399. package/es/icon/line/CommentBubble16.stories.js +13 -0
  400. package/es/icon/line/CommentBubble16.stories.js.map +1 -0
  401. package/es/src/components/accessible-svg/AccessibleSVG.stories.d.ts +7 -0
  402. package/es/src/components/badge/Badge.stories.d.ts +0 -3
  403. package/es/src/components/badge/BetaBadge.stories.d.ts +6 -0
  404. package/es/src/components/badge/TrialBadge.stories.d.ts +6 -0
  405. package/es/src/components/badge/UpgradeBadge.stories.d.ts +6 -0
  406. package/es/src/components/draggable-list/DraggableList.stories.d.ts +3 -3
  407. package/es/src/components/infinite-scroll/InfiniteScroll.d.ts +1 -1
  408. package/es/src/components/tooltip/Tooltip.d.ts +2 -0
  409. package/es/src/elements/common/annotator-context/__tests__/useAnnotatorEvents.test.d.ts +1 -0
  410. package/es/src/elements/common/annotator-context/index.d.ts +1 -0
  411. package/es/src/elements/common/annotator-context/types.d.ts +28 -6
  412. package/es/src/elements/common/annotator-context/useAnnotatorEvents.d.ts +52 -0
  413. package/es/src/elements/common/annotator-context/withAnnotations.d.ts +11 -2
  414. package/es/src/elements/common/annotator-context/withAnnotatorContext.d.ts +6 -2
  415. package/es/src/elements/common/current-user/__tests__/withCurrentUser.test.d.ts +1 -0
  416. package/es/src/elements/common/current-user/index.d.ts +2 -0
  417. package/es/src/elements/common/current-user/withCurrentUser.d.ts +20 -0
  418. package/es/src/elements/content-sidebar/SidebarContentInsights.d.ts +15 -0
  419. package/es/src/elements/content-sidebar/__tests__/SidebarContentInsights.test.d.ts +1 -0
  420. package/es/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.d.ts +55 -0
  421. package/es/src/features/content-insights/CompactCount.d.ts +15 -0
  422. package/es/src/features/content-insights/ContentAnalyticsErrorState.d.ts +7 -0
  423. package/es/src/features/content-insights/ContentInsightsSummary.d.ts +12 -0
  424. package/es/src/features/content-insights/ContentInsightsSummaryGhostState.d.ts +3 -0
  425. package/es/src/features/content-insights/GraphCardGhostState.d.ts +3 -0
  426. package/es/src/features/content-insights/GraphCardPreviewsSummary.d.ts +16 -0
  427. package/es/src/features/content-insights/GraphGhostState.d.ts +3 -0
  428. package/es/src/features/content-insights/HeaderWithCount.d.ts +7 -0
  429. package/es/src/features/content-insights/MetricSummary.d.ts +18 -0
  430. package/es/src/features/content-insights/OpenContentInsightsButton.d.ts +5 -0
  431. package/es/src/features/content-insights/TrendPill.d.ts +15 -0
  432. package/es/src/features/content-insights/__tests__/CompactCount.test.d.ts +1 -0
  433. package/es/src/features/content-insights/__tests__/ContentAnalyticsErrorState.test.d.ts +1 -0
  434. package/es/src/features/content-insights/__tests__/ContentInsightsSummary.test.d.ts +1 -0
  435. package/es/src/features/content-insights/__tests__/GraphCardPreviewsSummary.test.d.ts +1 -0
  436. package/es/src/features/content-insights/__tests__/HeaderWithCount.test.d.ts +1 -0
  437. package/es/src/features/content-insights/__tests__/MetricSummary.test.d.ts +1 -0
  438. package/es/src/features/content-insights/charts/bar/Bar.d.ts +11 -0
  439. package/es/src/features/content-insights/charts/bar/BarChart.d.ts +19 -0
  440. package/es/src/features/content-insights/charts/bar/__tests__/Bar.test.d.ts +1 -0
  441. package/es/src/features/content-insights/charts/bar/__tests__/BarChart.test.d.ts +1 -0
  442. package/es/src/features/content-insights/charts/types.d.ts +2 -0
  443. package/es/src/features/content-insights/constants.d.ts +27 -0
  444. package/es/src/features/content-insights/messages.d.ts +83 -0
  445. package/es/src/features/content-insights/numberUtils.d.ts +3 -0
  446. package/es/src/features/content-insights/types.d.ts +24 -0
  447. package/es/src/icon/fill/AlertBadge16.d.ts +13 -0
  448. package/es/src/icon/fill/AlertBadge16.stories.d.ts +9 -0
  449. package/es/src/icon/fill/InfoBadge16.d.ts +13 -0
  450. package/es/src/icon/fill/InfoBadge16.stories.d.ts +9 -0
  451. package/es/src/icon/fill/UserSettings16.d.ts +13 -0
  452. package/es/src/icon/fill/UserSettings16.stories.d.ts +9 -0
  453. package/es/src/icon/line/AlertBubble16.d.ts +13 -0
  454. package/es/src/icon/line/AlertBubble16.stories.d.ts +9 -0
  455. package/es/src/icon/line/AvatarXBadge16.d.ts +13 -0
  456. package/es/src/icon/line/AvatarXBadge16.stories.d.ts +9 -0
  457. package/es/src/icon/line/CoEdit16.d.ts +13 -0
  458. package/es/src/icon/line/CoEdit16.stories.d.ts +9 -0
  459. package/es/src/icon/line/Collaborations16.d.ts +13 -0
  460. package/es/src/icon/line/Collaborations16.stories.d.ts +9 -0
  461. package/es/src/icon/line/CommentBubble16.d.ts +13 -0
  462. package/es/src/icon/line/CommentBubble16.stories.d.ts +9 -0
  463. package/es/src/styles/variables.d.ts +3 -1
  464. package/es/styles/constants/_layout.scss +1 -1
  465. package/es/styles/constants/_media-queries.scss +2 -0
  466. package/es/styles/variables.js +6 -2
  467. package/es/styles/variables.js.flow +4 -2
  468. package/es/styles/variables.js.map +1 -1
  469. package/es/utils/error.js +5 -1
  470. package/es/utils/error.js.flow +5 -1
  471. package/es/utils/error.js.map +1 -1
  472. package/es/utils/fields.js +8 -3
  473. package/es/utils/fields.js.flow +21 -3
  474. package/es/utils/fields.js.map +1 -1
  475. package/es/utils/sorter.js.flow +2 -2
  476. package/es/utils/sorter.js.map +1 -1
  477. package/i18n/bn-IN.js +45 -7
  478. package/i18n/bn-IN.properties +83 -7
  479. package/i18n/da-DK.js +45 -7
  480. package/i18n/da-DK.properties +83 -7
  481. package/i18n/de-DE.js +45 -7
  482. package/i18n/de-DE.properties +83 -7
  483. package/i18n/en-AU.js +45 -7
  484. package/i18n/en-AU.properties +83 -7
  485. package/i18n/en-CA.js +45 -7
  486. package/i18n/en-CA.properties +83 -7
  487. package/i18n/en-GB.js +45 -7
  488. package/i18n/en-GB.properties +83 -7
  489. package/i18n/en-US.js +45 -7
  490. package/i18n/en-US.properties +83 -7
  491. package/i18n/en-x-pseudo.js +891 -854
  492. package/i18n/en-x-pseudo.properties +941 -843
  493. package/i18n/es-419.js +45 -7
  494. package/i18n/es-419.properties +83 -7
  495. package/i18n/es-ES.js +45 -7
  496. package/i18n/es-ES.properties +83 -7
  497. package/i18n/fi-FI.js +45 -7
  498. package/i18n/fi-FI.properties +83 -7
  499. package/i18n/fr-CA.js +45 -7
  500. package/i18n/fr-CA.properties +83 -7
  501. package/i18n/fr-FR.js +45 -7
  502. package/i18n/fr-FR.properties +83 -7
  503. package/i18n/hi-IN.js +45 -7
  504. package/i18n/hi-IN.properties +83 -7
  505. package/i18n/it-IT.js +45 -7
  506. package/i18n/it-IT.properties +83 -7
  507. package/i18n/ja-JP.js +47 -9
  508. package/i18n/ja-JP.properties +85 -9
  509. package/i18n/ko-KR.js +45 -7
  510. package/i18n/ko-KR.properties +83 -7
  511. package/i18n/nb-NO.js +45 -7
  512. package/i18n/nb-NO.properties +83 -7
  513. package/i18n/nl-NL.js +45 -7
  514. package/i18n/nl-NL.properties +83 -7
  515. package/i18n/pl-PL.js +45 -7
  516. package/i18n/pl-PL.properties +83 -7
  517. package/i18n/pt-BR.js +45 -7
  518. package/i18n/pt-BR.properties +83 -7
  519. package/i18n/ru-RU.js +45 -7
  520. package/i18n/ru-RU.properties +83 -7
  521. package/i18n/sv-SE.js +45 -7
  522. package/i18n/sv-SE.properties +83 -7
  523. package/i18n/tr-TR.js +45 -7
  524. package/i18n/tr-TR.properties +83 -7
  525. package/i18n/zh-CN.js +45 -7
  526. package/i18n/zh-CN.properties +83 -7
  527. package/i18n/zh-TW.js +45 -7
  528. package/i18n/zh-TW.properties +83 -7
  529. package/package.json +7 -8
  530. package/src/__mocks__/react-intl.js +4 -0
  531. package/src/api/APIFactory.js +26 -0
  532. package/src/api/Annotations.js +150 -14
  533. package/src/api/Comments.js +5 -4
  534. package/src/api/Feed.js +677 -17
  535. package/src/api/FileCollaborators.js +30 -0
  536. package/src/api/ThreadedComments.js +54 -29
  537. package/src/api/__tests__/Annotations.test.js +217 -11
  538. package/src/api/__tests__/Feed.test.js +699 -86
  539. package/src/api/__tests__/FileCollaborators.test.js +41 -0
  540. package/src/api/__tests__/ThreadedComments.test.js +47 -10
  541. package/src/api/__tests__/utils.test.js +11 -0
  542. package/src/api/fixtures.js +401 -0
  543. package/src/api/messages.js +5 -0
  544. package/src/api/utils.js +30 -0
  545. package/src/common/types/annotations.js +18 -10
  546. package/src/common/types/feed.js +40 -4
  547. package/src/components/accessible-svg/AccessibleSVG.stories.tsx +18 -0
  548. package/src/components/badge/Badge.stories.md +1 -7
  549. package/src/components/badge/Badge.stories.tsx +1 -10
  550. package/src/components/badge/BetaBadge.stories.tsx +9 -0
  551. package/src/components/badge/TrialBadge.stories.tsx +9 -0
  552. package/src/components/badge/UpgradeBadge.stories.tsx +9 -0
  553. package/src/components/breadcrumb/Breadcrumb.js +68 -42
  554. package/src/components/breadcrumb/EllipsisCrumb.js +10 -6
  555. package/src/components/count-badge/CountBadge.stories.tsx +1 -1
  556. package/src/components/draggable-list/DraggableList.stories.tsx +72 -5
  557. package/src/components/dropdown-menu/DropdownMenu.js +11 -0
  558. package/src/components/dropdown-menu/DropdownMenu.scss +3 -3
  559. package/src/components/dropdown-menu/__tests__/DropdownMenu.test.js +38 -0
  560. package/src/components/grid-view/__tests__/__snapshots__/GridViewSlider.test.js.snap +1 -0
  561. package/src/components/infinite-scroll/InfiniteScroll.md +1 -1
  562. package/src/components/infinite-scroll/InfiniteScroll.tsx +5 -2
  563. package/src/components/infinite-scroll/__tests__/InfiniteScroll.test.tsx +115 -127
  564. package/src/components/modal/Modal.scss +5 -1
  565. package/src/components/search-form/SearchForm.js +1 -1
  566. package/src/components/search-form/__tests__/SearchForm.test.js +25 -6
  567. package/src/components/sidebar-toggle-button/__tests__/__snapshots__/SidebarToggleButton.test.js.snap +4 -0
  568. package/src/components/table/__tests__/makeSelectable.test.js +654 -144
  569. package/src/components/table/makeSelectable.js +299 -98
  570. package/src/components/time/__tests__/ReadableTime.test.js +0 -1
  571. package/src/components/tooltip/Tooltip.tsx +5 -2
  572. package/src/components/tooltip/__tests__/Tooltip.test.tsx +10 -0
  573. package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +1 -1
  574. package/src/constants.js +11 -0
  575. package/src/elements/common/annotator-context/__tests__/useAnnotatorEvents.test.tsx +509 -0
  576. package/src/elements/common/annotator-context/__tests__/withAnnotations.test.tsx +275 -12
  577. package/src/elements/common/annotator-context/__tests__/withAnnotatorContext.test.tsx +18 -6
  578. package/src/elements/common/annotator-context/index.js.flow +4 -0
  579. package/src/elements/common/annotator-context/index.ts +1 -0
  580. package/src/elements/common/annotator-context/types.js.flow +77 -35
  581. package/src/elements/common/annotator-context/types.ts +28 -6
  582. package/src/elements/common/annotator-context/useAnnotatorEvents.js.flow +52 -0
  583. package/src/elements/common/annotator-context/useAnnotatorEvents.ts +190 -0
  584. package/src/elements/common/annotator-context/withAnnotations.js.flow +73 -36
  585. package/src/elements/common/annotator-context/withAnnotations.tsx +170 -7
  586. package/src/elements/common/annotator-context/withAnnotatorContext.js.flow +29 -9
  587. package/src/elements/common/annotator-context/withAnnotatorContext.tsx +28 -5
  588. package/src/elements/common/current-user/__tests__/withCurrentUser.test.tsx +108 -0
  589. package/src/elements/common/current-user/index.js.flow +8 -0
  590. package/src/elements/common/current-user/index.ts +2 -0
  591. package/src/elements/common/current-user/withCurrentUser.js.flow +40 -0
  592. package/src/elements/common/current-user/withCurrentUser.tsx +139 -0
  593. package/src/elements/common/flowTypes.js +22 -4
  594. package/src/elements/common/interactionTargets.js +2 -0
  595. package/src/elements/common/logger/Logger.js +1 -1
  596. package/src/elements/common/messages.js +5 -0
  597. package/src/elements/content-explorer/DeleteConfirmationDialog.js +3 -1
  598. package/src/elements/content-explorer/DeleteConfirmationDialog.scss +5 -0
  599. package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +60 -0
  600. package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.md +1 -0
  601. package/src/elements/content-sidebar/ActivitySidebar.js +381 -154
  602. package/src/elements/content-sidebar/ActivitySidebarFilter.js +59 -0
  603. package/src/elements/content-sidebar/ActivitySidebarFilter.scss +4 -0
  604. package/src/elements/content-sidebar/DetailsSidebar.js +32 -4
  605. package/src/elements/content-sidebar/Sidebar.js +6 -1
  606. package/src/elements/content-sidebar/SidebarContentInsights.scss +6 -0
  607. package/src/elements/content-sidebar/SidebarContentInsights.tsx +57 -0
  608. package/src/elements/content-sidebar/SidebarPanels.js +4 -0
  609. package/src/elements/content-sidebar/__tests__/ActivitySidebar.test.js +533 -243
  610. package/src/elements/content-sidebar/__tests__/ActivitySidebarFilter.test.js +54 -0
  611. package/src/elements/content-sidebar/__tests__/DetailsSidebar.test.js +45 -0
  612. package/src/elements/content-sidebar/__tests__/Sidebar.test.js +1 -1
  613. package/src/elements/content-sidebar/__tests__/SidebarContentInsights.test.tsx +56 -0
  614. package/src/elements/content-sidebar/__tests__/SidebarPanels.test.js +4 -3
  615. package/src/elements/content-sidebar/__tests__/__snapshots__/ActivitySidebar.test.js.snap +29 -15
  616. package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarFileProperties.test.js.snap +1 -0
  617. package/src/elements/content-sidebar/__tests__/withSidebarAnnotations.test.js +325 -32
  618. package/src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +122 -24
  619. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +59 -18
  620. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +126 -0
  621. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
  622. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +85 -0
  623. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
  624. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +59 -0
  625. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +22 -0
  626. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActiveState.test.js +19 -5
  627. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityFeed.test.js +22 -16
  628. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThread.test.js +80 -0
  629. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadReplies.test.js +24 -0
  630. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadRepliesForm.test.js +47 -0
  631. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActiveState.test.js.snap +74 -43
  632. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/activityFeedUtils.test.js +8 -8
  633. package/src/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js +2 -2
  634. package/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.ts +56 -0
  635. package/src/elements/content-sidebar/activity-feed/activity-feed/messages.js +20 -0
  636. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +117 -0
  637. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +7 -0
  638. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +105 -0
  639. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +5 -0
  640. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +86 -0
  641. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.scss +3 -0
  642. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThread.test.js +28 -0
  643. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadContent.test.js +89 -0
  644. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadCreate.test.js +103 -0
  645. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useAnnotationAPI.test.js +202 -0
  646. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useRepliesAPI.test.js +99 -0
  647. package/src/elements/content-sidebar/activity-feed/annotation-thread/errors.js +26 -0
  648. package/src/elements/content-sidebar/activity-feed/annotation-thread/index.js +1 -0
  649. package/src/elements/content-sidebar/activity-feed/annotation-thread/messages.js +21 -0
  650. package/src/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +203 -0
  651. package/src/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +121 -0
  652. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +24 -4
  653. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +36 -2
  654. package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivity.test.js +14 -10
  655. package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivityMenu.test.js +35 -1
  656. package/src/elements/content-sidebar/activity-feed/annotations/messages.js +10 -0
  657. package/src/elements/content-sidebar/activity-feed/comment/Comment.js +54 -10
  658. package/src/elements/content-sidebar/activity-feed/comment/__tests__/Comment.test.js +152 -7
  659. package/src/elements/content-sidebar/activity-feed/comment/__tests__/__snapshots__/Comment.test.js.snap +12 -7
  660. package/src/elements/content-sidebar/activity-feed/comment/messages.js +10 -0
  661. package/src/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +3 -1
  662. package/src/elements/content-sidebar/activity-feed/comment-form/__tests__/CommentForm.test.js +11 -0
  663. package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js +34 -4
  664. package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +40 -3
  665. package/src/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js +42 -0
  666. package/src/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js +24 -0
  667. package/src/elements/content-sidebar/activity-feed/common/activity-message/__tests__/ActivityMessage.test.js +48 -1
  668. package/src/elements/content-sidebar/activity-feed/common/activity-message/messages.js +15 -0
  669. package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js +30 -0
  670. package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +6 -0
  671. package/src/elements/content-sidebar/activity-feed/common/activity-status/__tests__/ActivityStatus.test.js +19 -0
  672. package/src/elements/content-sidebar/activity-feed/common/activity-status/index.js +2 -0
  673. package/src/elements/content-sidebar/activity-feed/common/activity-status/messages.js +13 -0
  674. package/src/elements/content-sidebar/activity-feed/common/activity-timestamp/ActivityTimestamp.scss +1 -1
  675. package/src/elements/content-sidebar/activity-feed/task-new/__tests__/Task.test.js +4 -3
  676. package/src/elements/content-sidebar/activity-feed/task-new/__tests__/__snapshots__/Task.test.js.snap +1 -2
  677. package/src/elements/content-sidebar/fixtures.js +185 -0
  678. package/src/elements/content-sidebar/flowTypes.js +9 -25
  679. package/src/elements/content-sidebar/messages.js +10 -0
  680. package/src/elements/content-sidebar/withErrorHandling.js +1 -1
  681. package/src/elements/content-sidebar/withSidebarAnnotations.js +162 -11
  682. package/src/elements/content-uploader/OverallUploadsProgressBar.js +11 -12
  683. package/src/features/classification/Classification.scss +1 -1
  684. package/src/features/classification/security-controls/SecurityControlsItem.scss +1 -0
  685. package/src/features/classification/security-controls/__tests__/__snapshots__/utils.test.js.snap +18 -16
  686. package/src/features/classification/security-controls/__tests__/utils.test.js +13 -5
  687. package/src/features/classification/security-controls/messages.js +10 -0
  688. package/src/features/classification/security-controls/utils.js +8 -12
  689. package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebarLogo.test.js.snap +2 -0
  690. package/src/features/content-explorer/content-explorer/ContentExplorer.js +4 -0
  691. package/src/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
  692. package/src/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +14 -11
  693. package/src/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +4 -1
  694. package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerBreadcrumbs.test.js +2 -2
  695. package/src/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +5 -1
  696. package/src/features/content-explorer/content-explorer-modal/__tests__/__snapshots__/ContentExplorerModal.test.js.snap +1 -0
  697. package/src/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +5 -1
  698. package/src/features/content-explorer/prop-types.js +8 -0
  699. package/src/features/content-insights/CompactCount.tsx +23 -0
  700. package/src/features/content-insights/ContentAnalyticsErrorState.scss +17 -0
  701. package/src/features/content-insights/ContentAnalyticsErrorState.tsx +44 -0
  702. package/src/features/content-insights/ContentInsightsSummary.scss +12 -0
  703. package/src/features/content-insights/ContentInsightsSummary.tsx +45 -0
  704. package/src/features/content-insights/ContentInsightsSummaryGhostState.scss +9 -0
  705. package/src/features/content-insights/ContentInsightsSummaryGhostState.tsx +18 -0
  706. package/src/features/content-insights/GraphCardGhostState.scss +18 -0
  707. package/src/features/content-insights/GraphCardGhostState.tsx +18 -0
  708. package/src/features/content-insights/GraphCardPreviewsSummary.scss +10 -0
  709. package/src/features/content-insights/GraphCardPreviewsSummary.tsx +40 -0
  710. package/src/features/content-insights/GraphGhostState.scss +11 -0
  711. package/src/features/content-insights/GraphGhostState.tsx +17 -0
  712. package/src/features/content-insights/HeaderWithCount.scss +10 -0
  713. package/src/features/content-insights/HeaderWithCount.tsx +24 -0
  714. package/src/features/content-insights/MetricSummary.scss +14 -0
  715. package/src/features/content-insights/MetricSummary.tsx +65 -0
  716. package/src/features/content-insights/OpenContentInsightsButton.tsx +20 -0
  717. package/src/features/content-insights/TrendPill.scss +33 -0
  718. package/src/features/content-insights/TrendPill.tsx +70 -0
  719. package/src/features/content-insights/__tests__/CompactCount.test.tsx +57 -0
  720. package/src/features/content-insights/__tests__/ContentAnalyticsErrorState.test.tsx +33 -0
  721. package/src/features/content-insights/__tests__/ContentInsightsSummary.test.tsx +81 -0
  722. package/src/features/content-insights/__tests__/GraphCardPreviewsSummary.test.tsx +35 -0
  723. package/src/features/content-insights/__tests__/HeaderWithCount.test.tsx +26 -0
  724. package/src/features/content-insights/__tests__/MetricSummary.test.tsx +88 -0
  725. package/src/features/content-insights/_mixins.scss +7 -0
  726. package/src/features/content-insights/_variables.scss +4 -0
  727. package/src/features/content-insights/charts/bar/Bar.scss +27 -0
  728. package/src/features/content-insights/charts/bar/Bar.tsx +48 -0
  729. package/src/features/content-insights/charts/bar/BarChart.scss +56 -0
  730. package/src/features/content-insights/charts/bar/BarChart.tsx +78 -0
  731. package/src/features/content-insights/charts/bar/__tests__/Bar.test.tsx +74 -0
  732. package/src/features/content-insights/charts/bar/__tests__/BarChart.test.tsx +110 -0
  733. package/src/features/content-insights/charts/types.ts +3 -0
  734. package/src/features/content-insights/constants.ts +60 -0
  735. package/src/features/content-insights/messages.ts +90 -0
  736. package/src/features/content-insights/numberUtils.ts +9 -0
  737. package/src/features/content-insights/types.ts +33 -0
  738. package/src/features/item-details/ItemProperties.scss +1 -1
  739. package/src/features/shared-link-settings-modal/SharedLinkSettingsModal.js +4 -2
  740. package/src/features/shared-link-settings-modal/__tests__/SharedLinkSettingsModal.test.js +22 -3
  741. package/src/features/shared-link-settings-modal/__tests__/__snapshots__/SharedLinkSettingsModal.test.js.snap +2 -1
  742. package/src/features/unified-share-modal/ContactRestrictionNotice.js +36 -6
  743. package/src/features/unified-share-modal/EmailForm.js +31 -13
  744. package/src/features/unified-share-modal/UnifiedShareForm.js +25 -8
  745. package/src/features/unified-share-modal/UnifiedShareModal.js +1 -0
  746. package/src/features/unified-share-modal/__tests__/ContactRestrictionNotice.test.js +55 -6
  747. package/src/features/unified-share-modal/__tests__/EmailForm.test.js +131 -24
  748. package/src/features/unified-share-modal/__tests__/UnifiedShareForm.test.js +89 -35
  749. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareForm.test.js.snap +16 -0
  750. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareModal.test.js.snap +17 -0
  751. package/src/features/unified-share-modal/flowTypes.js +4 -2
  752. package/src/features/unified-share-modal/messages.js +14 -8
  753. package/src/features/unified-share-modal/utils/__tests__/hasRestrictedContacts.test.js +24 -10
  754. package/src/features/unified-share-modal/utils/__tests__/isRestrictedContact.test.js +33 -0
  755. package/src/features/unified-share-modal/utils/hasRestrictedContacts.js +10 -3
  756. package/src/features/unified-share-modal/utils/isRestrictedContact.js +21 -0
  757. package/src/features/virtualized-table/__tests__/__snapshots__/VirtualizedTable.test.js.snap +1 -0
  758. package/src/icon/fill/Alert16.js.flow +3 -2
  759. package/src/icon/fill/Alert16.tsx +3 -2
  760. package/src/icon/fill/AlertBadge16.js.flow +29 -0
  761. package/src/icon/fill/AlertBadge16.stories.tsx +13 -0
  762. package/src/icon/fill/AlertBadge16.tsx +27 -0
  763. package/src/icon/fill/Info16.js.flow +1 -1
  764. package/src/icon/fill/Info16.tsx +1 -1
  765. package/src/icon/fill/InfoBadge16.js.flow +28 -0
  766. package/src/icon/fill/InfoBadge16.stories.tsx +13 -0
  767. package/src/icon/fill/InfoBadge16.tsx +26 -0
  768. package/src/icon/fill/UserSettings16.js.flow +38 -0
  769. package/src/icon/fill/UserSettings16.stories.tsx +13 -0
  770. package/src/icon/fill/UserSettings16.tsx +36 -0
  771. package/src/icon/line/AlertBubble16.js.flow +29 -0
  772. package/src/icon/line/AlertBubble16.stories.tsx +13 -0
  773. package/src/icon/line/AlertBubble16.tsx +27 -0
  774. package/src/icon/line/AvatarXBadge16.js.flow +39 -0
  775. package/src/icon/line/AvatarXBadge16.stories.tsx +13 -0
  776. package/src/icon/line/AvatarXBadge16.tsx +37 -0
  777. package/src/icon/line/CoEdit16.js.flow +30 -0
  778. package/src/icon/line/CoEdit16.stories.tsx +13 -0
  779. package/src/icon/line/CoEdit16.tsx +28 -0
  780. package/src/icon/line/Collaborations16.js.flow +30 -0
  781. package/src/icon/line/Collaborations16.stories.tsx +13 -0
  782. package/src/icon/line/Collaborations16.tsx +28 -0
  783. package/src/icon/line/CommentBubble16.js.flow +34 -0
  784. package/src/icon/line/CommentBubble16.stories.tsx +13 -0
  785. package/src/icon/line/CommentBubble16.tsx +32 -0
  786. package/src/styles/constants/_layout.scss +1 -1
  787. package/src/styles/constants/_media-queries.scss +2 -0
  788. package/src/styles/variables.js +4 -2
  789. package/src/styles/variables.json +4 -2
  790. package/src/styles/variables.ts +3 -1
  791. package/src/utils/__tests__/fields.test.js +23 -4
  792. package/src/utils/__tests__/sorter.test.js +3 -3
  793. package/src/utils/error.js +5 -1
  794. package/src/utils/fields.js +21 -3
  795. package/src/utils/sorter.js +2 -2
  796. package/es/common/types/threadedComments.js +0 -2
  797. package/es/common/types/threadedComments.js.flow +0 -9
  798. package/src/common/types/threadedComments.js +0 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/content-explorer/content-explorer/ContentExplorer.js"],"names":["PropTypes","React","Component","classNames","omit","ContentExplorerHeaderActions","ContentExplorerEmptyState","ContentExplorerActionButtons","ContentExplorerSelectAll","ItemList","ContentExplorerModePropType","FoldersPathPropType","ItemsPropType","ContentExplorerModes","ItemTypes","ContentExplorer","props","node","className","limit","nodeOfInterest","counter","parentNode","includes","contentExplorerMode","MULTI_SELECT","event","isInside","domNode","contains","target","shouldDeselectItems","deselectItems","enteredFolder","onEnterFolder","foldersPath","state","folderIndex","findIndex","folder","id","newFoldersPath","slice","concat","newState","selectedItems","setState","searchQuery","onSearchSubmit","isInSearchMode","folderBeforeSearch","onExitSearch","index","items","onSelectItem","item","isDisabled","isLoading","stopPropagation","newSelectedItems","toggleSelectedItem","isSelectAllChecked","onChooseItems","type","FOLDER","enterFolder","preventDefault","result","forEach","unselectAll","selectAll","isViewingSearchResults","length","initialSelectedItems","initialFoldersPath","document","addEventListener","handleDocumentClick","prevInitialFoldersPath","removeEventListener","actionButtonsProps","cancelButtonProps","chooseButtonProps","chooseButtonText","customInput","headerActionsAccessory","onMoveItem","onCopyItem","onCancelButtonClick","onCreateNewFolderButtonClick","onSelectedClick","showCreateNewFolderButton","isChooseButtonLoading","isCopyButtonLoading","isCreateNewFolderAllowed","isMoveButtonLoading","isResponsive","isSelectAllAllowed","numItemsPerPage","numTotalItems","onLoadMoreItems","itemIconRenderer","itemNameLinkRenderer","itemButtonRenderer","itemRowRenderer","listWidth","listHeight","searchInputProps","rest","currentFolder","getCurrentFolder","contentExplorerProps","selectedItemsIds","Object","keys","areActionButtonsDisabled","isActionDisabled","SELECT_FILE","handleContentExplorerClick","ref","handleFoldersPathUpdated","handleExitSearch","handleSearchSubmit","handleSelectAllClick","renderItemListEmptyState","handleItemClick","handleItemDoubleClick","handleItemNameClick","object","string","isRequired","func","bool","number"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\n\nimport ContentExplorerHeaderActions from './ContentExplorerHeaderActions';\nimport ContentExplorerEmptyState from './ContentExplorerEmptyState';\nimport ContentExplorerActionButtons from './ContentExplorerActionButtons';\nimport ContentExplorerSelectAll from './ContentExplorerSelectAll';\n\nimport ItemList from '../item-list';\nimport { ContentExplorerModePropType, FoldersPathPropType, ItemsPropType } from '../prop-types';\nimport ContentExplorerModes from '../modes';\nimport ItemTypes from '../item-types';\n\nimport './ContentExplorer.scss';\n\nclass ContentExplorer extends Component {\n static propTypes = {\n /** Props for the action buttons container */\n actionButtonsProps: PropTypes.object,\n /** Props for the cancel button */\n cancelButtonProps: PropTypes.object,\n /** Props for the choose button */\n chooseButtonProps: PropTypes.object,\n /** Custom text for the choose button */\n chooseButtonText: PropTypes.node,\n /** Adds class name. */\n className: PropTypes.string,\n /** Configures the content explorer based on the user's intended action (ex. select file or move/copy) */\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n /** Props that contains the custom search input. Is rendered in header actions */\n customInput: PropTypes.func,\n /** Any extra items in the header to the right of the search input (and new folder button) */\n headerActionsAccessory: PropTypes.node,\n /** Initial path of folders. The last folder in the array is the current folder. */\n initialFoldersPath: FoldersPathPropType.isRequired,\n /** Initial items that will show up as selected */\n initialSelectedItems: PropTypes.object,\n /** Whether to use the responsive version */\n isResponsive: PropTypes.bool,\n /**\n * Called when the current folder changes\n *\n * @param {Object} enteredFolder\n * @param {Array} newFoldersPath\n */\n onEnterFolder: PropTypes.func.isRequired,\n /**\n * Called when an item is selected\n *\n * @param {Object} selectedItem\n * @param {number} selectedItemIndex\n */\n onSelectItem: PropTypes.func,\n /**\n * Called when an item is chosen\n *\n * @param {Object[]} chosenItems\n */\n onChooseItems: PropTypes.func,\n /** Called when selected button is clicked */\n onSelectedClick: PropTypes.func,\n /**\n * Called when a destination folder has been selected for moving an item to\n *\n * @param {Object} destFolder destination folder\n */\n onMoveItem: PropTypes.func,\n /**\n * Called when a destination folder has been selected for copying an item to\n *\n * @param {Object} destFolder destination folder\n */\n onCopyItem: PropTypes.func,\n /** Called when cancel button is clicked */\n onCancelButtonClick: PropTypes.func,\n /** Called when new folder button is clicked */\n onCreateNewFolderButtonClick: PropTypes.func,\n /** Whether the new folder button should be shown */\n showCreateNewFolderButton: PropTypes.bool,\n /** Whether the choose button should be shown with a loading indicator */\n isChooseButtonLoading: PropTypes.bool,\n /** Whether the copy button should be shown with a loading indicator */\n isCopyButtonLoading: PropTypes.bool,\n /** Whether the user has permission to create a new folder */\n isCreateNewFolderAllowed: PropTypes.bool,\n /** Whether the user can see select all checkbox */\n isSelectAllAllowed: PropTypes.bool,\n /** Whether the move button should be shown with a loading indicator */\n isMoveButtonLoading: PropTypes.bool,\n /**\n * Called when a search query is submitted.\n *\n * @param {string} searchQuery\n */\n onSearchSubmit: PropTypes.func.isRequired,\n /**\n * Called when search mode is exited. An updated items list should now be passed in to display the user's file tree.\n *\n * @param {Object} folderBeforeSearch the previous folder object before entering search mode\n */\n onExitSearch: PropTypes.func.isRequired,\n /** List of items to display */\n items: ItemsPropType.isRequired,\n /** Number of items to load per page as the user scrolls */\n numItemsPerPage: PropTypes.number,\n /** Total number of items across all pages */\n numTotalItems: PropTypes.number,\n /** Called to load more items */\n onLoadMoreItems: PropTypes.func,\n /** Used to render item icons in the list. Overrides the default icons. */\n itemIconRenderer: PropTypes.func,\n /** Used to render item name links in the list. Overrides the default links. */\n itemNameLinkRenderer: PropTypes.func,\n /** Used to render item buttons in the list. Overrides the default buttons. */\n itemButtonRenderer: PropTypes.func,\n /** Used to render the row element for items on the list. Allows row customizations such as adding tooltips, etc. */\n itemRowRenderer: PropTypes.func,\n /** Width of the item list */\n listWidth: PropTypes.number.isRequired,\n /** Height of the item list */\n listHeight: PropTypes.number.isRequired,\n /** Props for the search input */\n searchInputProps: PropTypes.object,\n };\n\n static defaultProps = {\n actionButtonsProps: {},\n cancelButtonProps: {},\n chooseButtonProps: {},\n className: '',\n searchInputProps: {},\n };\n\n constructor(props) {\n super(props);\n this.state = {\n selectedItems: props.initialSelectedItems || {},\n foldersPath: props.initialFoldersPath,\n isInSearchMode: false,\n isSelectAllChecked: false,\n };\n }\n\n componentDidMount() {\n document.addEventListener('click', this.handleDocumentClick, true);\n }\n\n componentDidUpdate({ initialFoldersPath: prevInitialFoldersPath }) {\n const { initialFoldersPath } = this.props;\n\n if (prevInitialFoldersPath !== initialFoldersPath) {\n this.setState({\n foldersPath: initialFoldersPath,\n });\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleDocumentClick, true);\n }\n\n getCurrentFolder() {\n const { foldersPath } = this.state;\n return foldersPath[foldersPath.length - 1];\n }\n\n /**\n * Traverse the hirerachy up to the limit to see if any of the parent has the className\n */\n doAncestersContainClassname = (node, className, limit) => {\n let nodeOfInterest = node;\n let counter = 0;\n while (nodeOfInterest.parentNode && counter < limit) {\n // Done traversing (Document node does not have classnames)\n if (!nodeOfInterest.parentNode.className) {\n break;\n }\n\n if (nodeOfInterest.parentNode.className.includes(className)) {\n return true;\n }\n\n nodeOfInterest = nodeOfInterest.parentNode;\n counter += 1;\n }\n\n return false;\n };\n\n shouldDeselectItems = () => {\n const { contentExplorerMode } = this.props;\n\n return (\n // always deselect when not in multi select mode\n contentExplorerMode !== ContentExplorerModes.MULTI_SELECT\n );\n };\n\n handleDocumentClick = event => {\n const isInside = (this.domNode && this.domNode.contains(event.target)) || this.domNode === event.target;\n\n if (!isInside && this.shouldDeselectItems()) {\n this.deselectItems();\n }\n };\n\n handleContentExplorerClick = () => {\n if (this.shouldDeselectItems()) {\n this.deselectItems();\n }\n };\n\n deselectItems() {\n this.setState({\n selectedItems: {},\n });\n }\n\n enterFolder = enteredFolder => {\n const { contentExplorerMode, onEnterFolder } = this.props;\n const { foldersPath } = this.state;\n\n const folderIndex = foldersPath.findIndex(folder => folder.id === enteredFolder.id);\n let newFoldersPath = foldersPath.slice();\n\n if (folderIndex === -1) {\n // Append folder to the path if it's not already in the folders path\n newFoldersPath = newFoldersPath.concat([\n {\n ...enteredFolder,\n },\n ]);\n } else {\n // Otherwise, remove all folders that came after the entered folder\n newFoldersPath = newFoldersPath.slice(0, folderIndex + 1);\n }\n\n const newState = { foldersPath: newFoldersPath };\n if (contentExplorerMode !== ContentExplorerModes.MULTI_SELECT) {\n newState.selectedItems = {};\n }\n\n this.setState(newState);\n\n onEnterFolder(enteredFolder, newFoldersPath);\n };\n\n handleFoldersPathUpdated = newFoldersPath => {\n this.setState({\n foldersPath: newFoldersPath,\n });\n };\n\n handleSearchSubmit = searchQuery => {\n const { onSearchSubmit } = this.props;\n\n this.setState({ isInSearchMode: true });\n onSearchSubmit(searchQuery);\n };\n\n handleExitSearch = folderBeforeSearch => {\n const { onExitSearch } = this.props;\n\n this.setState({ isInSearchMode: false });\n onExitSearch(folderBeforeSearch);\n };\n\n handleItemClick = ({ event, index }) => {\n const { contentExplorerMode, items, onSelectItem } = this.props;\n const { selectedItems } = this.state;\n const item = items[index];\n\n if (item.isDisabled || item.isLoading) {\n return;\n }\n\n // Prevent the event from bubbling up (so our content explorer click handler doesn't fire)\n event.stopPropagation();\n\n let newSelectedItems = {};\n if (contentExplorerMode === ContentExplorerModes.MULTI_SELECT) {\n newSelectedItems = this.toggleSelectedItem(selectedItems, item);\n } else {\n newSelectedItems[item.id] = item;\n }\n\n this.setState({ selectedItems: newSelectedItems, isSelectAllChecked: false });\n\n if (onSelectItem) {\n onSelectItem(item, index);\n }\n };\n\n handleItemDoubleClick = ({ index }) => {\n const { items, onChooseItems } = this.props;\n const item = items[index];\n\n if (item.isDisabled || item.isLoading) {\n return;\n }\n\n if (item.type === ItemTypes.FOLDER) {\n this.enterFolder(item);\n } else {\n onChooseItems([item]);\n }\n this.setState({ isSelectAllChecked: false });\n };\n\n handleItemNameClick = (event, index) => {\n const { items } = this.props;\n const item = items[index];\n\n if (item.isDisabled || item.isLoading) {\n return;\n }\n\n if (item.type !== ItemTypes.FOLDER) {\n return;\n }\n\n // Prevent the event from bubbling (so our row click handler doesn't fire)\n event.preventDefault();\n event.stopPropagation();\n\n this.enterFolder(item);\n this.setState({ isSelectAllChecked: false });\n };\n\n toggleSelectedItem = (selectedItems, item) => {\n const result = { ...selectedItems };\n if (result[item.id]) {\n delete result[item.id];\n } else {\n result[item.id] = item;\n }\n\n return result;\n };\n\n selectAll = () => {\n const { items } = this.props;\n const { selectedItems } = this.state;\n const result = { ...selectedItems };\n items.forEach(item => {\n if (!result[item.id]) {\n result[item.id] = item;\n }\n });\n\n return result;\n };\n\n unselectAll = () => {\n const { items } = this.props;\n const { selectedItems } = this.state;\n const result = { ...selectedItems };\n items.forEach(item => {\n if (result[item.id]) {\n delete result[item.id];\n }\n });\n\n return result;\n };\n\n handleSelectAllClick = async () => {\n // check if the items list is still loading\n const { items } = this.props;\n if (items && items[0] && items[0].isLoading) {\n return;\n }\n const { isSelectAllChecked } = this.state;\n const newSelectedItems = isSelectAllChecked ? this.unselectAll() : this.selectAll();\n this.setState({ selectedItems: newSelectedItems, isSelectAllChecked: !isSelectAllChecked });\n };\n\n renderItemListEmptyState = () => {\n const { foldersPath, isInSearchMode } = this.state;\n const isViewingSearchResults = isInSearchMode && foldersPath.length === 1;\n\n return <ContentExplorerEmptyState isSearch={isViewingSearchResults} />;\n };\n\n render() {\n const {\n actionButtonsProps,\n cancelButtonProps,\n chooseButtonProps,\n chooseButtonText,\n className,\n contentExplorerMode,\n customInput,\n headerActionsAccessory,\n onChooseItems,\n onMoveItem,\n onCopyItem,\n onCancelButtonClick,\n onCreateNewFolderButtonClick,\n onSelectedClick,\n showCreateNewFolderButton,\n isChooseButtonLoading,\n isCopyButtonLoading,\n isCreateNewFolderAllowed,\n isMoveButtonLoading,\n isResponsive = false,\n isSelectAllAllowed,\n items,\n numItemsPerPage,\n numTotalItems,\n onLoadMoreItems,\n itemIconRenderer,\n itemNameLinkRenderer,\n itemButtonRenderer,\n itemRowRenderer,\n listWidth,\n listHeight,\n searchInputProps,\n ...rest\n } = this.props;\n const { isInSearchMode, foldersPath, selectedItems, isSelectAllChecked } = this.state;\n const isViewingSearchResults = isInSearchMode && foldersPath.length === 1;\n const currentFolder = this.getCurrentFolder();\n const contentExplorerProps = omit(rest, [\n 'initialFoldersPath',\n 'onEnterFolder',\n 'onSelectItem',\n 'onSearchSubmit',\n 'onExitSearch',\n ]);\n\n const selectedItemsIds = Object.keys(selectedItems);\n let areActionButtonsDisabled;\n // NOTE: it almost feels like this whole section should be inside the\n // ContentExplorerActionButtons instead. There's a lot of implicit knowledge\n // of what the action buttons are and what they should be doing.\n if (contentExplorerMode === ContentExplorerModes.MULTI_SELECT) {\n // NOTE:o nly expecting to have 1 (choose) button so as long as something\n // is selected and that item's isActionDisabled is false, we enable the action button\n areActionButtonsDisabled =\n selectedItemsIds.length === 0 ||\n (selectedItemsIds.length === 1 && selectedItems[selectedItemsIds[0]].isActionDisabled);\n } else if (isViewingSearchResults || contentExplorerMode === ContentExplorerModes.SELECT_FILE) {\n // Buttons are only enabled when an item is selected\n // When viewing search results, there is no \"current folder\"\n // When selecting a file, the file can only selected from the list\n areActionButtonsDisabled =\n selectedItemsIds.length === 0 || selectedItems[selectedItemsIds[0]].isActionDisabled;\n } else {\n // Buttons are enabled using the selected item or the current folder if no item is selected\n areActionButtonsDisabled =\n selectedItemsIds.length > 0\n ? selectedItems[selectedItemsIds[0]].isActionDisabled\n : currentFolder.isActionDisabled;\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events\n <div\n className={classNames('content-explorer', className, {\n 'bdl-ContentExplorer--responsive': isResponsive,\n })}\n data-testid=\"content-explorer\"\n onClick={this.handleContentExplorerClick}\n ref={ref => {\n this.domNode = ref;\n }}\n {...contentExplorerProps}\n >\n <ContentExplorerHeaderActions\n contentExplorerMode={contentExplorerMode}\n customInput={customInput}\n foldersPath={foldersPath}\n isCreateNewFolderAllowed={isCreateNewFolderAllowed}\n onCreateNewFolderButtonClick={onCreateNewFolderButtonClick}\n onFoldersPathUpdated={this.handleFoldersPathUpdated}\n onEnterFolder={this.enterFolder}\n onExitSearch={this.handleExitSearch}\n onSearchSubmit={this.handleSearchSubmit}\n searchInputProps={searchInputProps}\n showCreateNewFolderButton={showCreateNewFolderButton}\n >\n {headerActionsAccessory}\n </ContentExplorerHeaderActions>\n {isSelectAllAllowed && (\n <ContentExplorerSelectAll\n numTotalItems={numTotalItems}\n isSelectAllChecked={isSelectAllChecked}\n handleSelectAllClick={this.handleSelectAllClick}\n />\n )}\n <ItemList\n contentExplorerMode={contentExplorerMode}\n height={listHeight}\n isResponsive={isResponsive}\n itemButtonRenderer={itemButtonRenderer}\n itemIconRenderer={itemIconRenderer}\n itemNameLinkRenderer={itemNameLinkRenderer}\n items={items}\n itemRowRenderer={itemRowRenderer}\n noItemsRenderer={this.renderItemListEmptyState}\n numItemsPerPage={numItemsPerPage}\n numTotalItems={numTotalItems}\n onItemClick={this.handleItemClick}\n onItemDoubleClick={this.handleItemDoubleClick}\n onItemNameClick={this.handleItemNameClick}\n onLoadMoreItems={onLoadMoreItems}\n selectedItems={selectedItems}\n width={listWidth}\n />\n <ContentExplorerActionButtons\n actionButtonsProps={actionButtonsProps}\n areButtonsDisabled={areActionButtonsDisabled}\n cancelButtonProps={cancelButtonProps}\n chooseButtonProps={chooseButtonProps}\n chooseButtonText={chooseButtonText}\n contentExplorerMode={contentExplorerMode}\n currentFolder={currentFolder}\n isChooseButtonLoading={isChooseButtonLoading}\n isCopyButtonLoading={isCopyButtonLoading}\n isMoveButtonLoading={isMoveButtonLoading}\n isResponsive={isResponsive}\n onCancelClick={onCancelButtonClick}\n onChooseClick={onChooseItems}\n onCopyClick={onCopyItem}\n onSelectedClick={onSelectedClick}\n onMoveClick={onMoveItem}\n selectedItems={selectedItems}\n />\n </div>\n );\n }\n}\n\nexport default ContentExplorer;\n"],"file":"ContentExplorer.js"}
1
+ {"version":3,"sources":["../../../../src/features/content-explorer/content-explorer/ContentExplorer.js"],"names":["PropTypes","React","Component","classNames","omit","ContentExplorerHeaderActions","ContentExplorerEmptyState","ContentExplorerActionButtons","ContentExplorerSelectAll","ItemList","ContentExplorerModePropType","FoldersPathPropType","ItemsPropType","ContentExplorerModes","ItemTypes","ContentExplorer","props","node","className","limit","nodeOfInterest","counter","parentNode","includes","contentExplorerMode","MULTI_SELECT","event","isInside","domNode","contains","target","shouldDeselectItems","deselectItems","enteredFolder","onEnterFolder","foldersPath","state","folderIndex","findIndex","folder","id","newFoldersPath","slice","concat","newState","selectedItems","setState","searchQuery","onSearchSubmit","isInSearchMode","folderBeforeSearch","onExitSearch","index","items","onSelectItem","item","isDisabled","isLoading","stopPropagation","newSelectedItems","toggleSelectedItem","isSelectAllChecked","onChooseItems","type","FOLDER","enterFolder","preventDefault","result","forEach","unselectAll","selectAll","isViewingSearchResults","length","initialSelectedItems","initialFoldersPath","document","addEventListener","handleDocumentClick","prevInitialFoldersPath","removeEventListener","actionButtonsProps","breadcrumbProps","cancelButtonProps","chooseButtonProps","chooseButtonText","customInput","headerActionsAccessory","onMoveItem","onCopyItem","onCancelButtonClick","onCreateNewFolderButtonClick","onSelectedClick","showCreateNewFolderButton","isChooseButtonLoading","isCopyButtonLoading","isCreateNewFolderAllowed","isMoveButtonLoading","isResponsive","isSelectAllAllowed","numItemsPerPage","numTotalItems","onLoadMoreItems","itemIconRenderer","itemNameLinkRenderer","itemButtonRenderer","itemRowRenderer","listWidth","listHeight","searchInputProps","rest","currentFolder","getCurrentFolder","contentExplorerProps","selectedItemsIds","Object","keys","areActionButtonsDisabled","isActionDisabled","SELECT_FILE","handleContentExplorerClick","ref","handleFoldersPathUpdated","handleExitSearch","handleSearchSubmit","handleSelectAllClick","renderItemListEmptyState","handleItemClick","handleItemDoubleClick","handleItemNameClick","object","string","isRequired","func","bool","number"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport omit from 'lodash/omit';\n\nimport ContentExplorerHeaderActions from './ContentExplorerHeaderActions';\nimport ContentExplorerEmptyState from './ContentExplorerEmptyState';\nimport ContentExplorerActionButtons from './ContentExplorerActionButtons';\nimport ContentExplorerSelectAll from './ContentExplorerSelectAll';\n\nimport ItemList from '../item-list';\nimport { ContentExplorerModePropType, FoldersPathPropType, ItemsPropType } from '../prop-types';\nimport ContentExplorerModes from '../modes';\nimport ItemTypes from '../item-types';\n\nimport './ContentExplorer.scss';\n\nclass ContentExplorer extends Component {\n static propTypes = {\n /** Props for the action buttons container */\n actionButtonsProps: PropTypes.object,\n /** Props for breadcrumbs */\n breadcrumbProps: PropTypes.object,\n /** Props for the cancel button */\n cancelButtonProps: PropTypes.object,\n /** Props for the choose button */\n chooseButtonProps: PropTypes.object,\n /** Custom text for the choose button */\n chooseButtonText: PropTypes.node,\n /** Adds class name. */\n className: PropTypes.string,\n /** Configures the content explorer based on the user's intended action (ex. select file or move/copy) */\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n /** Props that contains the custom search input. Is rendered in header actions */\n customInput: PropTypes.func,\n /** Any extra items in the header to the right of the search input (and new folder button) */\n headerActionsAccessory: PropTypes.node,\n /** Initial path of folders. The last folder in the array is the current folder. */\n initialFoldersPath: FoldersPathPropType.isRequired,\n /** Initial items that will show up as selected */\n initialSelectedItems: PropTypes.object,\n /** Whether to use the responsive version */\n isResponsive: PropTypes.bool,\n /**\n * Called when the current folder changes\n *\n * @param {Object} enteredFolder\n * @param {Array} newFoldersPath\n */\n onEnterFolder: PropTypes.func.isRequired,\n /**\n * Called when an item is selected\n *\n * @param {Object} selectedItem\n * @param {number} selectedItemIndex\n */\n onSelectItem: PropTypes.func,\n /**\n * Called when an item is chosen\n *\n * @param {Object[]} chosenItems\n */\n onChooseItems: PropTypes.func,\n /** Called when selected button is clicked */\n onSelectedClick: PropTypes.func,\n /**\n * Called when a destination folder has been selected for moving an item to\n *\n * @param {Object} destFolder destination folder\n */\n onMoveItem: PropTypes.func,\n /**\n * Called when a destination folder has been selected for copying an item to\n *\n * @param {Object} destFolder destination folder\n */\n onCopyItem: PropTypes.func,\n /** Called when cancel button is clicked */\n onCancelButtonClick: PropTypes.func,\n /** Called when new folder button is clicked */\n onCreateNewFolderButtonClick: PropTypes.func,\n /** Whether the new folder button should be shown */\n showCreateNewFolderButton: PropTypes.bool,\n /** Whether the choose button should be shown with a loading indicator */\n isChooseButtonLoading: PropTypes.bool,\n /** Whether the copy button should be shown with a loading indicator */\n isCopyButtonLoading: PropTypes.bool,\n /** Whether the user has permission to create a new folder */\n isCreateNewFolderAllowed: PropTypes.bool,\n /** Whether the user can see select all checkbox */\n isSelectAllAllowed: PropTypes.bool,\n /** Whether the move button should be shown with a loading indicator */\n isMoveButtonLoading: PropTypes.bool,\n /**\n * Called when a search query is submitted.\n *\n * @param {string} searchQuery\n */\n onSearchSubmit: PropTypes.func.isRequired,\n /**\n * Called when search mode is exited. An updated items list should now be passed in to display the user's file tree.\n *\n * @param {Object} folderBeforeSearch the previous folder object before entering search mode\n */\n onExitSearch: PropTypes.func.isRequired,\n /** List of items to display */\n items: ItemsPropType.isRequired,\n /** Number of items to load per page as the user scrolls */\n numItemsPerPage: PropTypes.number,\n /** Total number of items across all pages */\n numTotalItems: PropTypes.number,\n /** Called to load more items */\n onLoadMoreItems: PropTypes.func,\n /** Used to render item icons in the list. Overrides the default icons. */\n itemIconRenderer: PropTypes.func,\n /** Used to render item name links in the list. Overrides the default links. */\n itemNameLinkRenderer: PropTypes.func,\n /** Used to render item buttons in the list. Overrides the default buttons. */\n itemButtonRenderer: PropTypes.func,\n /** Used to render the row element for items on the list. Allows row customizations such as adding tooltips, etc. */\n itemRowRenderer: PropTypes.func,\n /** Width of the item list */\n listWidth: PropTypes.number.isRequired,\n /** Height of the item list */\n listHeight: PropTypes.number.isRequired,\n /** Props for the search input */\n searchInputProps: PropTypes.object,\n };\n\n static defaultProps = {\n actionButtonsProps: {},\n cancelButtonProps: {},\n chooseButtonProps: {},\n className: '',\n searchInputProps: {},\n };\n\n constructor(props) {\n super(props);\n this.state = {\n selectedItems: props.initialSelectedItems || {},\n foldersPath: props.initialFoldersPath,\n isInSearchMode: false,\n isSelectAllChecked: false,\n };\n }\n\n componentDidMount() {\n document.addEventListener('click', this.handleDocumentClick, true);\n }\n\n componentDidUpdate({ initialFoldersPath: prevInitialFoldersPath }) {\n const { initialFoldersPath } = this.props;\n\n if (prevInitialFoldersPath !== initialFoldersPath) {\n this.setState({\n foldersPath: initialFoldersPath,\n });\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleDocumentClick, true);\n }\n\n getCurrentFolder() {\n const { foldersPath } = this.state;\n return foldersPath[foldersPath.length - 1];\n }\n\n /**\n * Traverse the hirerachy up to the limit to see if any of the parent has the className\n */\n doAncestersContainClassname = (node, className, limit) => {\n let nodeOfInterest = node;\n let counter = 0;\n while (nodeOfInterest.parentNode && counter < limit) {\n // Done traversing (Document node does not have classnames)\n if (!nodeOfInterest.parentNode.className) {\n break;\n }\n\n if (nodeOfInterest.parentNode.className.includes(className)) {\n return true;\n }\n\n nodeOfInterest = nodeOfInterest.parentNode;\n counter += 1;\n }\n\n return false;\n };\n\n shouldDeselectItems = () => {\n const { contentExplorerMode } = this.props;\n\n return (\n // always deselect when not in multi select mode\n contentExplorerMode !== ContentExplorerModes.MULTI_SELECT\n );\n };\n\n handleDocumentClick = event => {\n const isInside = (this.domNode && this.domNode.contains(event.target)) || this.domNode === event.target;\n\n if (!isInside && this.shouldDeselectItems()) {\n this.deselectItems();\n }\n };\n\n handleContentExplorerClick = () => {\n if (this.shouldDeselectItems()) {\n this.deselectItems();\n }\n };\n\n deselectItems() {\n this.setState({\n selectedItems: {},\n });\n }\n\n enterFolder = enteredFolder => {\n const { contentExplorerMode, onEnterFolder } = this.props;\n const { foldersPath } = this.state;\n\n const folderIndex = foldersPath.findIndex(folder => folder.id === enteredFolder.id);\n let newFoldersPath = foldersPath.slice();\n\n if (folderIndex === -1) {\n // Append folder to the path if it's not already in the folders path\n newFoldersPath = newFoldersPath.concat([\n {\n ...enteredFolder,\n },\n ]);\n } else {\n // Otherwise, remove all folders that came after the entered folder\n newFoldersPath = newFoldersPath.slice(0, folderIndex + 1);\n }\n\n const newState = { foldersPath: newFoldersPath };\n if (contentExplorerMode !== ContentExplorerModes.MULTI_SELECT) {\n newState.selectedItems = {};\n }\n\n this.setState(newState);\n\n onEnterFolder(enteredFolder, newFoldersPath);\n };\n\n handleFoldersPathUpdated = newFoldersPath => {\n this.setState({\n foldersPath: newFoldersPath,\n });\n };\n\n handleSearchSubmit = searchQuery => {\n const { onSearchSubmit } = this.props;\n\n this.setState({ isInSearchMode: true });\n onSearchSubmit(searchQuery);\n };\n\n handleExitSearch = folderBeforeSearch => {\n const { onExitSearch } = this.props;\n\n this.setState({ isInSearchMode: false });\n onExitSearch(folderBeforeSearch);\n };\n\n handleItemClick = ({ event, index }) => {\n const { contentExplorerMode, items, onSelectItem } = this.props;\n const { selectedItems } = this.state;\n const item = items[index];\n\n if (item.isDisabled || item.isLoading) {\n return;\n }\n\n // Prevent the event from bubbling up (so our content explorer click handler doesn't fire)\n event.stopPropagation();\n\n let newSelectedItems = {};\n if (contentExplorerMode === ContentExplorerModes.MULTI_SELECT) {\n newSelectedItems = this.toggleSelectedItem(selectedItems, item);\n } else {\n newSelectedItems[item.id] = item;\n }\n\n this.setState({ selectedItems: newSelectedItems, isSelectAllChecked: false });\n\n if (onSelectItem) {\n onSelectItem(item, index);\n }\n };\n\n handleItemDoubleClick = ({ index }) => {\n const { items, onChooseItems } = this.props;\n const item = items[index];\n\n if (item.isDisabled || item.isLoading) {\n return;\n }\n\n if (item.type === ItemTypes.FOLDER) {\n this.enterFolder(item);\n } else {\n onChooseItems([item]);\n }\n this.setState({ isSelectAllChecked: false });\n };\n\n handleItemNameClick = (event, index) => {\n const { items } = this.props;\n const item = items[index];\n\n if (item.isDisabled || item.isLoading) {\n return;\n }\n\n if (item.type !== ItemTypes.FOLDER) {\n return;\n }\n\n // Prevent the event from bubbling (so our row click handler doesn't fire)\n event.preventDefault();\n event.stopPropagation();\n\n this.enterFolder(item);\n this.setState({ isSelectAllChecked: false });\n };\n\n toggleSelectedItem = (selectedItems, item) => {\n const result = { ...selectedItems };\n if (result[item.id]) {\n delete result[item.id];\n } else {\n result[item.id] = item;\n }\n\n return result;\n };\n\n selectAll = () => {\n const { items } = this.props;\n const { selectedItems } = this.state;\n const result = { ...selectedItems };\n items.forEach(item => {\n if (!result[item.id]) {\n result[item.id] = item;\n }\n });\n\n return result;\n };\n\n unselectAll = () => {\n const { items } = this.props;\n const { selectedItems } = this.state;\n const result = { ...selectedItems };\n items.forEach(item => {\n if (result[item.id]) {\n delete result[item.id];\n }\n });\n\n return result;\n };\n\n handleSelectAllClick = async () => {\n // check if the items list is still loading\n const { items } = this.props;\n if (items && items[0] && items[0].isLoading) {\n return;\n }\n const { isSelectAllChecked } = this.state;\n const newSelectedItems = isSelectAllChecked ? this.unselectAll() : this.selectAll();\n this.setState({ selectedItems: newSelectedItems, isSelectAllChecked: !isSelectAllChecked });\n };\n\n renderItemListEmptyState = () => {\n const { foldersPath, isInSearchMode } = this.state;\n const isViewingSearchResults = isInSearchMode && foldersPath.length === 1;\n\n return <ContentExplorerEmptyState isSearch={isViewingSearchResults} />;\n };\n\n render() {\n const {\n actionButtonsProps,\n breadcrumbProps,\n cancelButtonProps,\n chooseButtonProps,\n chooseButtonText,\n className,\n contentExplorerMode,\n customInput,\n headerActionsAccessory,\n onChooseItems,\n onMoveItem,\n onCopyItem,\n onCancelButtonClick,\n onCreateNewFolderButtonClick,\n onSelectedClick,\n showCreateNewFolderButton,\n isChooseButtonLoading,\n isCopyButtonLoading,\n isCreateNewFolderAllowed,\n isMoveButtonLoading,\n isResponsive = false,\n isSelectAllAllowed,\n items,\n numItemsPerPage,\n numTotalItems,\n onLoadMoreItems,\n itemIconRenderer,\n itemNameLinkRenderer,\n itemButtonRenderer,\n itemRowRenderer,\n listWidth,\n listHeight,\n searchInputProps,\n ...rest\n } = this.props;\n const { isInSearchMode, foldersPath, selectedItems, isSelectAllChecked } = this.state;\n const isViewingSearchResults = isInSearchMode && foldersPath.length === 1;\n const currentFolder = this.getCurrentFolder();\n const contentExplorerProps = omit(rest, [\n 'initialFoldersPath',\n 'onEnterFolder',\n 'onSelectItem',\n 'onSearchSubmit',\n 'onExitSearch',\n ]);\n\n const selectedItemsIds = Object.keys(selectedItems);\n let areActionButtonsDisabled;\n // NOTE: it almost feels like this whole section should be inside the\n // ContentExplorerActionButtons instead. There's a lot of implicit knowledge\n // of what the action buttons are and what they should be doing.\n if (contentExplorerMode === ContentExplorerModes.MULTI_SELECT) {\n // NOTE:o nly expecting to have 1 (choose) button so as long as something\n // is selected and that item's isActionDisabled is false, we enable the action button\n areActionButtonsDisabled =\n selectedItemsIds.length === 0 ||\n (selectedItemsIds.length === 1 && selectedItems[selectedItemsIds[0]].isActionDisabled);\n } else if (isViewingSearchResults || contentExplorerMode === ContentExplorerModes.SELECT_FILE) {\n // Buttons are only enabled when an item is selected\n // When viewing search results, there is no \"current folder\"\n // When selecting a file, the file can only selected from the list\n areActionButtonsDisabled =\n selectedItemsIds.length === 0 || selectedItems[selectedItemsIds[0]].isActionDisabled;\n } else {\n // Buttons are enabled using the selected item or the current folder if no item is selected\n areActionButtonsDisabled =\n selectedItemsIds.length > 0\n ? selectedItems[selectedItemsIds[0]].isActionDisabled\n : currentFolder.isActionDisabled;\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events\n <div\n className={classNames('content-explorer', className, {\n 'bdl-ContentExplorer--responsive': isResponsive,\n })}\n data-testid=\"content-explorer\"\n onClick={this.handleContentExplorerClick}\n ref={ref => {\n this.domNode = ref;\n }}\n {...contentExplorerProps}\n >\n <ContentExplorerHeaderActions\n breadcrumbProps={breadcrumbProps}\n contentExplorerMode={contentExplorerMode}\n customInput={customInput}\n foldersPath={foldersPath}\n isCreateNewFolderAllowed={isCreateNewFolderAllowed}\n onCreateNewFolderButtonClick={onCreateNewFolderButtonClick}\n onFoldersPathUpdated={this.handleFoldersPathUpdated}\n onEnterFolder={this.enterFolder}\n onExitSearch={this.handleExitSearch}\n onSearchSubmit={this.handleSearchSubmit}\n searchInputProps={searchInputProps}\n showCreateNewFolderButton={showCreateNewFolderButton}\n >\n {headerActionsAccessory}\n </ContentExplorerHeaderActions>\n {isSelectAllAllowed && (\n <ContentExplorerSelectAll\n numTotalItems={numTotalItems}\n isSelectAllChecked={isSelectAllChecked}\n handleSelectAllClick={this.handleSelectAllClick}\n />\n )}\n <ItemList\n contentExplorerMode={contentExplorerMode}\n height={listHeight}\n isResponsive={isResponsive}\n itemButtonRenderer={itemButtonRenderer}\n itemIconRenderer={itemIconRenderer}\n itemNameLinkRenderer={itemNameLinkRenderer}\n items={items}\n itemRowRenderer={itemRowRenderer}\n noItemsRenderer={this.renderItemListEmptyState}\n numItemsPerPage={numItemsPerPage}\n numTotalItems={numTotalItems}\n onItemClick={this.handleItemClick}\n onItemDoubleClick={this.handleItemDoubleClick}\n onItemNameClick={this.handleItemNameClick}\n onLoadMoreItems={onLoadMoreItems}\n selectedItems={selectedItems}\n width={listWidth}\n />\n <ContentExplorerActionButtons\n actionButtonsProps={actionButtonsProps}\n areButtonsDisabled={areActionButtonsDisabled}\n cancelButtonProps={cancelButtonProps}\n chooseButtonProps={chooseButtonProps}\n chooseButtonText={chooseButtonText}\n contentExplorerMode={contentExplorerMode}\n currentFolder={currentFolder}\n isChooseButtonLoading={isChooseButtonLoading}\n isCopyButtonLoading={isCopyButtonLoading}\n isMoveButtonLoading={isMoveButtonLoading}\n isResponsive={isResponsive}\n onCancelClick={onCancelButtonClick}\n onChooseClick={onChooseItems}\n onCopyClick={onCopyItem}\n onSelectedClick={onSelectedClick}\n onMoveClick={onMoveItem}\n selectedItems={selectedItems}\n />\n </div>\n );\n }\n}\n\nexport default ContentExplorer;\n"],"file":"ContentExplorer.js"}
@@ -112,4 +112,8 @@
112
112
  display: flex;
113
113
  flex: 1;
114
114
  flex-direction: column;
115
+
116
+ .content-explorer-breadcrumbs-up-button {
117
+ display: none;
118
+ }
115
119
  }
@@ -1,16 +1,19 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
1
3
  import PropTypes from 'prop-types';
2
4
  import React from 'react';
3
5
  import { injectIntl } from 'react-intl';
4
6
  import Button from '../../../components/button';
5
- import PlainButton from '../../../components/plain-button';
6
7
  import Breadcrumb from '../../../components/breadcrumb';
7
8
  import IconChevron from '../../../icons/general/IconChevron';
8
9
  import IconAllFiles from '../../../icons/general/IconAllFiles';
10
+ import PlainButton from '../../../components/plain-button';
9
11
  import { FoldersPathPropType } from '../prop-types';
10
12
  import messages from '../messages';
11
13
 
12
14
  var ContentExplorerBreadcrumbs = function ContentExplorerBreadcrumbs(_ref) {
13
- var foldersPath = _ref.foldersPath,
15
+ var breadcrumbProps = _ref.breadcrumbProps,
16
+ foldersPath = _ref.foldersPath,
14
17
  formatMessage = _ref.intl.formatMessage,
15
18
  _ref$isUpButtonDisabl = _ref.isUpButtonDisabled,
16
19
  isUpButtonDisabled = _ref$isUpButtonDisabl === void 0 ? false : _ref$isUpButtonDisabl,
@@ -28,21 +31,24 @@ var ContentExplorerBreadcrumbs = function ContentExplorerBreadcrumbs(_ref) {
28
31
  direction: "left",
29
32
  size: "6px",
30
33
  color: "#333"
31
- })), React.createElement(Breadcrumb, {
34
+ })), React.createElement(Breadcrumb, _extends({
32
35
  label: formatMessage(messages.breadcrumb)
33
- }, foldersPath.map(function (folder, i) {
34
- return React.createElement(PlainButton, {
35
- className: "lnk",
36
+ }, breadcrumbProps), foldersPath.map(function (folder, i) {
37
+ return React.createElement("div", {
36
38
  key: folder.id,
37
- title: folder.name,
39
+ className: "lnk"
40
+ }, React.createElement(PlainButton, {
41
+ "data-testid": "breadcrumb-lnk",
38
42
  onClick: function onClick(event) {
39
43
  return onBreadcrumbClick(i, event);
40
- }
41
- }, i === 0 && React.createElement(IconAllFiles, null), React.createElement("span", null, folder.name));
44
+ },
45
+ title: folder.name
46
+ }, i === 0 && React.createElement(IconAllFiles, null), React.createElement("span", null, folder.name)));
42
47
  })));
43
48
  };
44
49
 
45
50
  ContentExplorerBreadcrumbs.propTypes = {
51
+ breadcrumbProps: PropTypes.object,
46
52
  foldersPath: FoldersPathPropType.isRequired,
47
53
  intl: PropTypes.any,
48
54
  isUpButtonDisabled: PropTypes.bool,
@@ -3,15 +3,16 @@ import React from 'react';
3
3
  import { injectIntl } from 'react-intl';
4
4
 
5
5
  import Button from '../../../components/button';
6
- import PlainButton from '../../../components/plain-button';
7
6
  import Breadcrumb from '../../../components/breadcrumb';
8
7
  import IconChevron from '../../../icons/general/IconChevron';
9
8
  import IconAllFiles from '../../../icons/general/IconAllFiles';
9
+ import PlainButton from '../../../components/plain-button';
10
10
 
11
11
  import { FoldersPathPropType } from '../prop-types';
12
12
  import messages from '../messages';
13
13
 
14
14
  const ContentExplorerBreadcrumbs = ({
15
+ breadcrumbProps,
15
16
  foldersPath,
16
17
  intl: { formatMessage },
17
18
  isUpButtonDisabled = false,
@@ -28,23 +29,25 @@ const ContentExplorerBreadcrumbs = ({
28
29
  >
29
30
  <IconChevron direction="left" size="6px" color="#333" />
30
31
  </Button>
31
- <Breadcrumb label={formatMessage(messages.breadcrumb)}>
32
+ <Breadcrumb label={formatMessage(messages.breadcrumb)} {...breadcrumbProps}>
32
33
  {foldersPath.map((folder, i) => (
33
- <PlainButton
34
- className="lnk"
35
- key={folder.id}
36
- title={folder.name}
37
- onClick={event => onBreadcrumbClick(i, event)}
38
- >
39
- {i === 0 && <IconAllFiles />}
40
- <span>{folder.name}</span>
41
- </PlainButton>
34
+ <div key={folder.id} className="lnk">
35
+ <PlainButton
36
+ data-testid="breadcrumb-lnk"
37
+ onClick={event => onBreadcrumbClick(i, event)}
38
+ title={folder.name}
39
+ >
40
+ {i === 0 && <IconAllFiles />}
41
+ <span>{folder.name}</span>
42
+ </PlainButton>
43
+ </div>
42
44
  ))}
43
45
  </Breadcrumb>
44
46
  </div>
45
47
  );
46
48
 
47
49
  ContentExplorerBreadcrumbs.propTypes = {
50
+ breadcrumbProps: PropTypes.object,
48
51
  foldersPath: FoldersPathPropType.isRequired,
49
52
  intl: PropTypes.any,
50
53
  isUpButtonDisabled: PropTypes.bool,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js"],"names":["PropTypes","React","injectIntl","Button","PlainButton","Breadcrumb","IconChevron","IconAllFiles","FoldersPathPropType","messages","ContentExplorerBreadcrumbs","foldersPath","formatMessage","intl","isUpButtonDisabled","onUpButtonClick","onBreadcrumbClick","clickToGoBack","breadcrumb","map","folder","i","id","name","event","propTypes","isRequired","any","bool","func","ContentExplorerBreadcrumbsBase"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,QAA2B,YAA3B;AAEA,OAAOC,MAAP,MAAmB,4BAAnB;AACA,OAAOC,WAAP,MAAwB,kCAAxB;AACA,OAAOC,UAAP,MAAuB,gCAAvB;AACA,OAAOC,WAAP,MAAwB,oCAAxB;AACA,OAAOC,YAAP,MAAyB,qCAAzB;AAEA,SAASC,mBAAT,QAAoC,eAApC;AACA,OAAOC,QAAP,MAAqB,aAArB;;AAEA,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B;AAAA,MAC/BC,WAD+B,QAC/BA,WAD+B;AAAA,MAEvBC,aAFuB,QAE/BC,IAF+B,CAEvBD,aAFuB;AAAA,mCAG/BE,kBAH+B;AAAA,MAG/BA,kBAH+B,sCAGV,KAHU;AAAA,MAI/BC,eAJ+B,QAI/BA,eAJ+B;AAAA,MAK/BC,iBAL+B,QAK/BA,iBAL+B;AAAA,SAO/B;AAAK,IAAA,SAAS,EAAC;AAAf,KACI,oBAAC,MAAD;AACI,kBAAYJ,aAAa,CAACH,QAAQ,CAACQ,aAAV,CAD7B;AAEI,IAAA,SAAS,EAAC,wCAFd;AAGI,IAAA,IAAI,EAAC,QAHT;AAII,IAAA,OAAO,EAAEF,eAJb;AAKI,IAAA,UAAU,EAAED;AALhB,KAOI,oBAAC,WAAD;AAAa,IAAA,SAAS,EAAC,MAAvB;AAA8B,IAAA,IAAI,EAAC,KAAnC;AAAyC,IAAA,KAAK,EAAC;AAA/C,IAPJ,CADJ,EAUI,oBAAC,UAAD;AAAY,IAAA,KAAK,EAAEF,aAAa,CAACH,QAAQ,CAACS,UAAV;AAAhC,KACKP,WAAW,CAACQ,GAAZ,CAAgB,UAACC,MAAD,EAASC,CAAT;AAAA,WACb,oBAAC,WAAD;AACI,MAAA,SAAS,EAAC,KADd;AAEI,MAAA,GAAG,EAAED,MAAM,CAACE,EAFhB;AAGI,MAAA,KAAK,EAAEF,MAAM,CAACG,IAHlB;AAII,MAAA,OAAO,EAAE,iBAAAC,KAAK;AAAA,eAAIR,iBAAiB,CAACK,CAAD,EAAIG,KAAJ,CAArB;AAAA;AAJlB,OAMKH,CAAC,KAAK,CAAN,IAAW,oBAAC,YAAD,OANhB,EAOI,kCAAOD,MAAM,CAACG,IAAd,CAPJ,CADa;AAAA,GAAhB,CADL,CAVJ,CAP+B;AAAA,CAAnC;;AAiCAb,0BAA0B,CAACe,SAA3B,GAAuC;AACnCd,EAAAA,WAAW,EAAEH,mBAAmB,CAACkB,UADE;AAEnCb,EAAAA,IAAI,EAAEb,SAAS,CAAC2B,GAFmB;AAGnCb,EAAAA,kBAAkB,EAAEd,SAAS,CAAC4B,IAHK;AAInCb,EAAAA,eAAe,EAAEf,SAAS,CAAC6B,IAJQ;AAKnCb,EAAAA,iBAAiB,EAAEhB,SAAS,CAAC6B;AALM,CAAvC;AAQA,SAASnB,0BAA0B,IAAIoB,8BAAvC;AACA,eAAe5B,UAAU,CAACQ,0BAAD,CAAzB","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport Button from '../../../components/button';\nimport PlainButton from '../../../components/plain-button';\nimport Breadcrumb from '../../../components/breadcrumb';\nimport IconChevron from '../../../icons/general/IconChevron';\nimport IconAllFiles from '../../../icons/general/IconAllFiles';\n\nimport { FoldersPathPropType } from '../prop-types';\nimport messages from '../messages';\n\nconst ContentExplorerBreadcrumbs = ({\n foldersPath,\n intl: { formatMessage },\n isUpButtonDisabled = false,\n onUpButtonClick,\n onBreadcrumbClick,\n}) => (\n <div className=\"content-explorer-breadcrumbs-container\">\n <Button\n aria-label={formatMessage(messages.clickToGoBack)}\n className=\"content-explorer-breadcrumbs-up-button\"\n type=\"button\"\n onClick={onUpButtonClick}\n isDisabled={isUpButtonDisabled}\n >\n <IconChevron direction=\"left\" size=\"6px\" color=\"#333\" />\n </Button>\n <Breadcrumb label={formatMessage(messages.breadcrumb)}>\n {foldersPath.map((folder, i) => (\n <PlainButton\n className=\"lnk\"\n key={folder.id}\n title={folder.name}\n onClick={event => onBreadcrumbClick(i, event)}\n >\n {i === 0 && <IconAllFiles />}\n <span>{folder.name}</span>\n </PlainButton>\n ))}\n </Breadcrumb>\n </div>\n);\n\nContentExplorerBreadcrumbs.propTypes = {\n foldersPath: FoldersPathPropType.isRequired,\n intl: PropTypes.any,\n isUpButtonDisabled: PropTypes.bool,\n onUpButtonClick: PropTypes.func,\n onBreadcrumbClick: PropTypes.func,\n};\n\nexport { ContentExplorerBreadcrumbs as ContentExplorerBreadcrumbsBase };\nexport default injectIntl(ContentExplorerBreadcrumbs);\n"],"file":"ContentExplorerBreadcrumbs.js"}
1
+ {"version":3,"sources":["../../../../src/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js"],"names":["PropTypes","React","injectIntl","Button","Breadcrumb","IconChevron","IconAllFiles","PlainButton","FoldersPathPropType","messages","ContentExplorerBreadcrumbs","breadcrumbProps","foldersPath","formatMessage","intl","isUpButtonDisabled","onUpButtonClick","onBreadcrumbClick","clickToGoBack","breadcrumb","map","folder","i","id","event","name","propTypes","object","isRequired","any","bool","func","ContentExplorerBreadcrumbsBase"],"mappings":";;AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,QAA2B,YAA3B;AAEA,OAAOC,MAAP,MAAmB,4BAAnB;AACA,OAAOC,UAAP,MAAuB,gCAAvB;AACA,OAAOC,WAAP,MAAwB,oCAAxB;AACA,OAAOC,YAAP,MAAyB,qCAAzB;AACA,OAAOC,WAAP,MAAwB,kCAAxB;AAEA,SAASC,mBAAT,QAAoC,eAApC;AACA,OAAOC,QAAP,MAAqB,aAArB;;AAEA,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B;AAAA,MAC/BC,eAD+B,QAC/BA,eAD+B;AAAA,MAE/BC,WAF+B,QAE/BA,WAF+B;AAAA,MAGvBC,aAHuB,QAG/BC,IAH+B,CAGvBD,aAHuB;AAAA,mCAI/BE,kBAJ+B;AAAA,MAI/BA,kBAJ+B,sCAIV,KAJU;AAAA,MAK/BC,eAL+B,QAK/BA,eAL+B;AAAA,MAM/BC,iBAN+B,QAM/BA,iBAN+B;AAAA,SAQ/B;AAAK,IAAA,SAAS,EAAC;AAAf,KACI,oBAAC,MAAD;AACI,kBAAYJ,aAAa,CAACJ,QAAQ,CAACS,aAAV,CAD7B;AAEI,IAAA,SAAS,EAAC,wCAFd;AAGI,IAAA,IAAI,EAAC,QAHT;AAII,IAAA,OAAO,EAAEF,eAJb;AAKI,IAAA,UAAU,EAAED;AALhB,KAOI,oBAAC,WAAD;AAAa,IAAA,SAAS,EAAC,MAAvB;AAA8B,IAAA,IAAI,EAAC,KAAnC;AAAyC,IAAA,KAAK,EAAC;AAA/C,IAPJ,CADJ,EAUI,oBAAC,UAAD;AAAY,IAAA,KAAK,EAAEF,aAAa,CAACJ,QAAQ,CAACU,UAAV;AAAhC,KAA2DR,eAA3D,GACKC,WAAW,CAACQ,GAAZ,CAAgB,UAACC,MAAD,EAASC,CAAT;AAAA,WACb;AAAK,MAAA,GAAG,EAAED,MAAM,CAACE,EAAjB;AAAqB,MAAA,SAAS,EAAC;AAA/B,OACI,oBAAC,WAAD;AACI,qBAAY,gBADhB;AAEI,MAAA,OAAO,EAAE,iBAAAC,KAAK;AAAA,eAAIP,iBAAiB,CAACK,CAAD,EAAIE,KAAJ,CAArB;AAAA,OAFlB;AAGI,MAAA,KAAK,EAAEH,MAAM,CAACI;AAHlB,OAKKH,CAAC,KAAK,CAAN,IAAW,oBAAC,YAAD,OALhB,EAMI,kCAAOD,MAAM,CAACI,IAAd,CANJ,CADJ,CADa;AAAA,GAAhB,CADL,CAVJ,CAR+B;AAAA,CAAnC;;AAmCAf,0BAA0B,CAACgB,SAA3B,GAAuC;AACnCf,EAAAA,eAAe,EAAEX,SAAS,CAAC2B,MADQ;AAEnCf,EAAAA,WAAW,EAAEJ,mBAAmB,CAACoB,UAFE;AAGnCd,EAAAA,IAAI,EAAEd,SAAS,CAAC6B,GAHmB;AAInCd,EAAAA,kBAAkB,EAAEf,SAAS,CAAC8B,IAJK;AAKnCd,EAAAA,eAAe,EAAEhB,SAAS,CAAC+B,IALQ;AAMnCd,EAAAA,iBAAiB,EAAEjB,SAAS,CAAC+B;AANM,CAAvC;AASA,SAASrB,0BAA0B,IAAIsB,8BAAvC;AACA,eAAe9B,UAAU,CAACQ,0BAAD,CAAzB","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport Button from '../../../components/button';\nimport Breadcrumb from '../../../components/breadcrumb';\nimport IconChevron from '../../../icons/general/IconChevron';\nimport IconAllFiles from '../../../icons/general/IconAllFiles';\nimport PlainButton from '../../../components/plain-button';\n\nimport { FoldersPathPropType } from '../prop-types';\nimport messages from '../messages';\n\nconst ContentExplorerBreadcrumbs = ({\n breadcrumbProps,\n foldersPath,\n intl: { formatMessage },\n isUpButtonDisabled = false,\n onUpButtonClick,\n onBreadcrumbClick,\n}) => (\n <div className=\"content-explorer-breadcrumbs-container\">\n <Button\n aria-label={formatMessage(messages.clickToGoBack)}\n className=\"content-explorer-breadcrumbs-up-button\"\n type=\"button\"\n onClick={onUpButtonClick}\n isDisabled={isUpButtonDisabled}\n >\n <IconChevron direction=\"left\" size=\"6px\" color=\"#333\" />\n </Button>\n <Breadcrumb label={formatMessage(messages.breadcrumb)} {...breadcrumbProps}>\n {foldersPath.map((folder, i) => (\n <div key={folder.id} className=\"lnk\">\n <PlainButton\n data-testid=\"breadcrumb-lnk\"\n onClick={event => onBreadcrumbClick(i, event)}\n title={folder.name}\n >\n {i === 0 && <IconAllFiles />}\n <span>{folder.name}</span>\n </PlainButton>\n </div>\n ))}\n </Breadcrumb>\n </div>\n);\n\nContentExplorerBreadcrumbs.propTypes = {\n breadcrumbProps: PropTypes.object,\n foldersPath: FoldersPathPropType.isRequired,\n intl: PropTypes.any,\n isUpButtonDisabled: PropTypes.bool,\n onUpButtonClick: PropTypes.func,\n onBreadcrumbClick: PropTypes.func,\n};\n\nexport { ContentExplorerBreadcrumbs as ContentExplorerBreadcrumbsBase };\nexport default injectIntl(ContentExplorerBreadcrumbs);\n"],"file":"ContentExplorerBreadcrumbs.js"}
@@ -24,7 +24,7 @@ import { injectIntl } from 'react-intl';
24
24
  import ContentExplorerSearch from './ContentExplorerSearch';
25
25
  import ContentExplorerNewFolderButton from './ContentExplorerNewFolderButton';
26
26
  import ContentExplorerBreadcrumbs from './ContentExplorerBreadcrumbs';
27
- import { ContentExplorerModePropType, FoldersPathPropType } from '../prop-types';
27
+ import { BreadcrumbPropType, ContentExplorerModePropType, FoldersPathPropType } from '../prop-types';
28
28
  import messages from '../messages';
29
29
  var SEARCH_RESULTS_FOLDER_ID = 'search_results_id';
30
30
 
@@ -168,6 +168,7 @@ function (_Component) {
168
168
  key: "render",
169
169
  value: function render() {
170
170
  var _this$props4 = this.props,
171
+ breadcrumbProps = _this$props4.breadcrumbProps,
171
172
  children = _this$props4.children,
172
173
  contentExplorerMode = _this$props4.contentExplorerMode,
173
174
  CustomInput = _this$props4.customInput,
@@ -194,6 +195,7 @@ function (_Component) {
194
195
  isDisabled: !isCreateNewFolderAllowed || isInSearchMode,
195
196
  isCreateNewFolderAllowed: isCreateNewFolderAllowed
196
197
  }), children), React.createElement(ContentExplorerBreadcrumbs, {
198
+ breadcrumbProps: breadcrumbProps,
197
199
  foldersPath: foldersPath,
198
200
  isUpButtonDisabled: foldersPath.length <= 1 && !isInSearchMode,
199
201
  onUpButtonClick: this.handleBreadcrumbsUpButtonClick,
@@ -206,6 +208,7 @@ function (_Component) {
206
208
  }(Component);
207
209
 
208
210
  _defineProperty(ContentExplorerHeaderActions, "propTypes", {
211
+ breadcrumbProps: BreadcrumbPropType,
209
212
  children: PropTypes.node,
210
213
  contentExplorerMode: ContentExplorerModePropType.isRequired,
211
214
  customInput: PropTypes.func,
@@ -6,7 +6,7 @@ import ContentExplorerSearch from './ContentExplorerSearch';
6
6
  import ContentExplorerNewFolderButton from './ContentExplorerNewFolderButton';
7
7
  import ContentExplorerBreadcrumbs from './ContentExplorerBreadcrumbs';
8
8
 
9
- import { ContentExplorerModePropType, FoldersPathPropType } from '../prop-types';
9
+ import { BreadcrumbPropType, ContentExplorerModePropType, FoldersPathPropType } from '../prop-types';
10
10
  import messages from '../messages';
11
11
 
12
12
  const SEARCH_RESULTS_FOLDER_ID = 'search_results_id';
@@ -15,6 +15,7 @@ const isSearchResultsFolder = folder => folder && folder.id === SEARCH_RESULTS_F
15
15
 
16
16
  class ContentExplorerHeaderActions extends Component {
17
17
  static propTypes = {
18
+ breadcrumbProps: BreadcrumbPropType,
18
19
  children: PropTypes.node,
19
20
  contentExplorerMode: ContentExplorerModePropType.isRequired,
20
21
  customInput: PropTypes.func,
@@ -147,6 +148,7 @@ class ContentExplorerHeaderActions extends Component {
147
148
 
148
149
  render() {
149
150
  const {
151
+ breadcrumbProps,
150
152
  children,
151
153
  contentExplorerMode,
152
154
  customInput: CustomInput,
@@ -184,6 +186,7 @@ class ContentExplorerHeaderActions extends Component {
184
186
  {children}
185
187
  </div>
186
188
  <ContentExplorerBreadcrumbs
189
+ breadcrumbProps={breadcrumbProps}
187
190
  foldersPath={foldersPath}
188
191
  isUpButtonDisabled={foldersPath.length <= 1 && !isInSearchMode}
189
192
  onUpButtonClick={this.handleBreadcrumbsUpButtonClick}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js"],"names":["PropTypes","React","Component","injectIntl","ContentExplorerSearch","ContentExplorerNewFolderButton","ContentExplorerBreadcrumbs","ContentExplorerModePropType","FoldersPathPropType","messages","SEARCH_RESULTS_FOLDER_ID","isSearchResultsFolder","folder","id","ContentExplorerHeaderActions","props","folderPathIndex","event","foldersPath","onEnterFolder","clickedFolder","preventDefault","length","submitSearch","lastSubmittedSearchInput","newFolderIndex","isViewingSearchResults","exitSearch","handleBreadcrumbClick","input","setState","searchInput","state","foldersPathBeforeSearch","some","getCurrentFolder","onFoldersPathUpdated","onExitSearch","isInSearchMode","foldersPathLength","folderBeforeSearch","intl","onSearchSubmit","name","formatMessage","searchResults","children","contentExplorerMode","CustomInput","customInput","onCreateNewFolderButtonClick","showCreateNewFolderButton","isCreateNewFolderAllowed","searchInputProps","handleClearSearchButtonClick","handleSearchInput","handleSubmitSearch","handleBreadcrumbsUpButtonClick","node","isRequired","func","any","bool","object","ContentExplorerHeaderActionsBase"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport ContentExplorerSearch from './ContentExplorerSearch';\nimport ContentExplorerNewFolderButton from './ContentExplorerNewFolderButton';\nimport ContentExplorerBreadcrumbs from './ContentExplorerBreadcrumbs';\n\nimport { ContentExplorerModePropType, FoldersPathPropType } from '../prop-types';\nimport messages from '../messages';\n\nconst SEARCH_RESULTS_FOLDER_ID = 'search_results_id';\n\nconst isSearchResultsFolder = folder => folder && folder.id === SEARCH_RESULTS_FOLDER_ID;\n\nclass ContentExplorerHeaderActions extends Component {\n static propTypes = {\n children: PropTypes.node,\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n customInput: PropTypes.func,\n foldersPath: FoldersPathPropType.isRequired,\n intl: PropTypes.any,\n onFoldersPathUpdated: PropTypes.func.isRequired,\n onEnterFolder: PropTypes.func.isRequired,\n onCreateNewFolderButtonClick: PropTypes.func,\n showCreateNewFolderButton: PropTypes.bool,\n isCreateNewFolderAllowed: PropTypes.bool,\n onSearchSubmit: PropTypes.func.isRequired,\n onExitSearch: PropTypes.func.isRequired,\n searchInputProps: PropTypes.object,\n };\n\n static defaultProps = {\n showCreateNewFolderButton: true,\n isCreateNewFolderAllowed: true,\n searchInputProps: {},\n };\n\n constructor(props) {\n super(props);\n this.state = {\n searchInput: '',\n };\n this.foldersPathBeforeSearch = [];\n this.lastSubmittedSearchInput = '';\n }\n\n getCurrentFolder() {\n const { foldersPath } = this.props;\n return foldersPath[foldersPath.length - 1];\n }\n\n isInSearchMode() {\n const { foldersPath } = this.props;\n return foldersPath.some(isSearchResultsFolder);\n }\n\n isViewingSearchResults() {\n return isSearchResultsFolder(this.getCurrentFolder());\n }\n\n handleBreadcrumbClick = (folderPathIndex, event) => {\n const { foldersPath, onEnterFolder } = this.props;\n const clickedFolder = foldersPath[folderPathIndex];\n\n if (event) {\n event.preventDefault();\n }\n\n // Do nothing if the right-most breadcrumb (current folder) is clicked\n if (folderPathIndex === foldersPath.length - 1) {\n return;\n }\n\n // Show the search results for the last submitted input when clicking the \"Search Results\" breadcrumb\n if (isSearchResultsFolder(clickedFolder)) {\n this.submitSearch(this.lastSubmittedSearchInput);\n return;\n }\n\n onEnterFolder(clickedFolder);\n };\n\n handleBreadcrumbsUpButtonClick = () => {\n const { foldersPath } = this.props;\n const newFolderIndex = foldersPath.length - 2;\n\n if (this.isViewingSearchResults()) {\n this.exitSearch();\n } else if (newFolderIndex >= 0) {\n this.handleBreadcrumbClick(newFolderIndex);\n }\n };\n\n handleSearchInput = input => {\n this.setState({\n searchInput: input,\n });\n };\n\n handleClearSearchButtonClick = () => {\n this.exitSearch();\n };\n\n exitSearch() {\n const { onFoldersPathUpdated, onExitSearch } = this.props;\n\n // Clear the search input even if we aren't in search mode\n this.setState({ searchInput: '' });\n\n if (this.isInSearchMode()) {\n const foldersPathLength = this.foldersPathBeforeSearch.length;\n const folderBeforeSearch = foldersPathLength > 0 ? this.foldersPathBeforeSearch[foldersPathLength - 1] : {};\n onFoldersPathUpdated(this.foldersPathBeforeSearch);\n onExitSearch(folderBeforeSearch);\n }\n }\n\n handleSubmitSearch = () => {\n const { searchInput } = this.state;\n\n this.submitSearch(searchInput);\n };\n\n submitSearch(searchInput) {\n const { foldersPath, intl, onFoldersPathUpdated, onSearchSubmit } = this.props;\n\n if (searchInput) {\n // Only save folders path if we aren't already in search mode\n if (!this.isInSearchMode()) {\n this.foldersPathBeforeSearch = foldersPath;\n }\n\n this.lastSubmittedSearchInput = searchInput;\n onFoldersPathUpdated([\n {\n id: SEARCH_RESULTS_FOLDER_ID,\n name: intl.formatMessage(messages.searchResults),\n },\n ]);\n\n onSearchSubmit(searchInput);\n } else {\n this.exitSearch();\n }\n }\n\n render() {\n const {\n children,\n contentExplorerMode,\n customInput: CustomInput,\n foldersPath,\n onCreateNewFolderButtonClick,\n showCreateNewFolderButton,\n isCreateNewFolderAllowed,\n searchInputProps,\n } = this.props;\n const { searchInput } = this.state;\n const isInSearchMode = this.isInSearchMode();\n\n return (\n <div className=\"content-explorer-header-actions\">\n <div className=\"content-explorer-search-new-folder-container\">\n {CustomInput ? (\n <CustomInput />\n ) : (\n <ContentExplorerSearch\n inputValue={searchInput}\n onClearButtonClick={this.handleClearSearchButtonClick}\n onInput={this.handleSearchInput}\n onSubmit={this.handleSubmitSearch}\n searchInputProps={searchInputProps}\n />\n )}\n {showCreateNewFolderButton && (\n <ContentExplorerNewFolderButton\n contentExplorerMode={contentExplorerMode}\n onClick={onCreateNewFolderButtonClick}\n isDisabled={!isCreateNewFolderAllowed || isInSearchMode}\n isCreateNewFolderAllowed={isCreateNewFolderAllowed}\n />\n )}\n {children}\n </div>\n <ContentExplorerBreadcrumbs\n foldersPath={foldersPath}\n isUpButtonDisabled={foldersPath.length <= 1 && !isInSearchMode}\n onUpButtonClick={this.handleBreadcrumbsUpButtonClick}\n onBreadcrumbClick={this.handleBreadcrumbClick}\n />\n </div>\n );\n }\n}\n\nexport { ContentExplorerHeaderActions as ContentExplorerHeaderActionsBase };\nexport default injectIntl(ContentExplorerHeaderActions);\n"],"file":"ContentExplorerHeaderActions.js"}
1
+ {"version":3,"sources":["../../../../src/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js"],"names":["PropTypes","React","Component","injectIntl","ContentExplorerSearch","ContentExplorerNewFolderButton","ContentExplorerBreadcrumbs","BreadcrumbPropType","ContentExplorerModePropType","FoldersPathPropType","messages","SEARCH_RESULTS_FOLDER_ID","isSearchResultsFolder","folder","id","ContentExplorerHeaderActions","props","folderPathIndex","event","foldersPath","onEnterFolder","clickedFolder","preventDefault","length","submitSearch","lastSubmittedSearchInput","newFolderIndex","isViewingSearchResults","exitSearch","handleBreadcrumbClick","input","setState","searchInput","state","foldersPathBeforeSearch","some","getCurrentFolder","onFoldersPathUpdated","onExitSearch","isInSearchMode","foldersPathLength","folderBeforeSearch","intl","onSearchSubmit","name","formatMessage","searchResults","breadcrumbProps","children","contentExplorerMode","CustomInput","customInput","onCreateNewFolderButtonClick","showCreateNewFolderButton","isCreateNewFolderAllowed","searchInputProps","handleClearSearchButtonClick","handleSearchInput","handleSubmitSearch","handleBreadcrumbsUpButtonClick","node","isRequired","func","any","bool","object","ContentExplorerHeaderActionsBase"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,SAASC,UAAT,QAA2B,YAA3B;AAEA,OAAOC,qBAAP,MAAkC,yBAAlC;AACA,OAAOC,8BAAP,MAA2C,kCAA3C;AACA,OAAOC,0BAAP,MAAuC,8BAAvC;AAEA,SAASC,kBAAT,EAA6BC,2BAA7B,EAA0DC,mBAA1D,QAAqF,eAArF;AACA,OAAOC,QAAP,MAAqB,aAArB;AAEA,IAAMC,wBAAwB,GAAG,mBAAjC;;AAEA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAAC,MAAM;AAAA,SAAIA,MAAM,IAAIA,MAAM,CAACC,EAAP,KAAcH,wBAA5B;AAAA,CAApC;;IAEMI,4B;;;;;AAwBF,wCAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AACf,sGAAMA,KAAN;;AADe,4EAuBK,UAACC,eAAD,EAAkBC,KAAlB,EAA4B;AAAA,wBACT,MAAKF,KADI;AAAA,UACxCG,WADwC,eACxCA,WADwC;AAAA,UAC3BC,aAD2B,eAC3BA,aAD2B;AAEhD,UAAMC,aAAa,GAAGF,WAAW,CAACF,eAAD,CAAjC;;AAEA,UAAIC,KAAJ,EAAW;AACPA,QAAAA,KAAK,CAACI,cAAN;AACH,OAN+C,CAQhD;;;AACA,UAAIL,eAAe,KAAKE,WAAW,CAACI,MAAZ,GAAqB,CAA7C,EAAgD;AAC5C;AACH,OAX+C,CAahD;;;AACA,UAAIX,qBAAqB,CAACS,aAAD,CAAzB,EAA0C;AACtC,cAAKG,YAAL,CAAkB,MAAKC,wBAAvB;;AACA;AACH;;AAEDL,MAAAA,aAAa,CAACC,aAAD,CAAb;AACH,KA3CkB;;AAAA,qFA6Cc,YAAM;AAAA,UAC3BF,WAD2B,GACX,MAAKH,KADM,CAC3BG,WAD2B;AAEnC,UAAMO,cAAc,GAAGP,WAAW,CAACI,MAAZ,GAAqB,CAA5C;;AAEA,UAAI,MAAKI,sBAAL,EAAJ,EAAmC;AAC/B,cAAKC,UAAL;AACH,OAFD,MAEO,IAAIF,cAAc,IAAI,CAAtB,EAAyB;AAC5B,cAAKG,qBAAL,CAA2BH,cAA3B;AACH;AACJ,KAtDkB;;AAAA,wEAwDC,UAAAI,KAAK,EAAI;AACzB,YAAKC,QAAL,CAAc;AACVC,QAAAA,WAAW,EAAEF;AADH,OAAd;AAGH,KA5DkB;;AAAA,mFA8DY,YAAM;AACjC,YAAKF,UAAL;AACH,KAhEkB;;AAAA,yEAgFE,YAAM;AAAA,UACfI,WADe,GACC,MAAKC,KADN,CACfD,WADe;;AAGvB,YAAKR,YAAL,CAAkBQ,WAAlB;AACH,KApFkB;;AAEf,UAAKC,KAAL,GAAa;AACTD,MAAAA,WAAW,EAAE;AADJ,KAAb;AAGA,UAAKE,uBAAL,GAA+B,EAA/B;AACA,UAAKT,wBAAL,GAAgC,EAAhC;AANe;AAOlB;;;;uCAEkB;AAAA,UACPN,WADO,GACS,KAAKH,KADd,CACPG,WADO;AAEf,aAAOA,WAAW,CAACA,WAAW,CAACI,MAAZ,GAAqB,CAAtB,CAAlB;AACH;;;qCAEgB;AAAA,UACLJ,WADK,GACW,KAAKH,KADhB,CACLG,WADK;AAEb,aAAOA,WAAW,CAACgB,IAAZ,CAAiBvB,qBAAjB,CAAP;AACH;;;6CAEwB;AACrB,aAAOA,qBAAqB,CAAC,KAAKwB,gBAAL,EAAD,CAA5B;AACH;;;iCA6CY;AAAA,yBACsC,KAAKpB,KAD3C;AAAA,UACDqB,oBADC,gBACDA,oBADC;AAAA,UACqBC,YADrB,gBACqBA,YADrB,EAGT;;AACA,WAAKP,QAAL,CAAc;AAAEC,QAAAA,WAAW,EAAE;AAAf,OAAd;;AAEA,UAAI,KAAKO,cAAL,EAAJ,EAA2B;AACvB,YAAMC,iBAAiB,GAAG,KAAKN,uBAAL,CAA6BX,MAAvD;AACA,YAAMkB,kBAAkB,GAAGD,iBAAiB,GAAG,CAApB,GAAwB,KAAKN,uBAAL,CAA6BM,iBAAiB,GAAG,CAAjD,CAAxB,GAA8E,EAAzG;AACAH,QAAAA,oBAAoB,CAAC,KAAKH,uBAAN,CAApB;AACAI,QAAAA,YAAY,CAACG,kBAAD,CAAZ;AACH;AACJ;;;iCAQYT,W,EAAa;AAAA,yBAC8C,KAAKhB,KADnD;AAAA,UACdG,WADc,gBACdA,WADc;AAAA,UACDuB,IADC,gBACDA,IADC;AAAA,UACKL,oBADL,gBACKA,oBADL;AAAA,UAC2BM,cAD3B,gBAC2BA,cAD3B;;AAGtB,UAAIX,WAAJ,EAAiB;AACb;AACA,YAAI,CAAC,KAAKO,cAAL,EAAL,EAA4B;AACxB,eAAKL,uBAAL,GAA+Bf,WAA/B;AACH;;AAED,aAAKM,wBAAL,GAAgCO,WAAhC;AACAK,QAAAA,oBAAoB,CAAC,CACjB;AACIvB,UAAAA,EAAE,EAAEH,wBADR;AAEIiC,UAAAA,IAAI,EAAEF,IAAI,CAACG,aAAL,CAAmBnC,QAAQ,CAACoC,aAA5B;AAFV,SADiB,CAAD,CAApB;AAOAH,QAAAA,cAAc,CAACX,WAAD,CAAd;AACH,OAfD,MAeO;AACH,aAAKJ,UAAL;AACH;AACJ;;;6BAEQ;AAAA,yBAWD,KAAKZ,KAXJ;AAAA,UAED+B,eAFC,gBAEDA,eAFC;AAAA,UAGDC,QAHC,gBAGDA,QAHC;AAAA,UAIDC,mBAJC,gBAIDA,mBAJC;AAAA,UAKYC,WALZ,gBAKDC,WALC;AAAA,UAMDhC,WANC,gBAMDA,WANC;AAAA,UAODiC,4BAPC,gBAODA,4BAPC;AAAA,UAQDC,yBARC,gBAQDA,yBARC;AAAA,UASDC,wBATC,gBASDA,wBATC;AAAA,UAUDC,gBAVC,gBAUDA,gBAVC;AAAA,UAYGvB,WAZH,GAYmB,KAAKC,KAZxB,CAYGD,WAZH;AAaL,UAAMO,cAAc,GAAG,KAAKA,cAAL,EAAvB;AAEA,aACI;AAAK,QAAA,SAAS,EAAC;AAAf,SACI;AAAK,QAAA,SAAS,EAAC;AAAf,SACKW,WAAW,GACR,oBAAC,WAAD,OADQ,GAGR,oBAAC,qBAAD;AACI,QAAA,UAAU,EAAElB,WADhB;AAEI,QAAA,kBAAkB,EAAE,KAAKwB,4BAF7B;AAGI,QAAA,OAAO,EAAE,KAAKC,iBAHlB;AAII,QAAA,QAAQ,EAAE,KAAKC,kBAJnB;AAKI,QAAA,gBAAgB,EAAEH;AALtB,QAJR,EAYKF,yBAAyB,IACtB,oBAAC,8BAAD;AACI,QAAA,mBAAmB,EAAEJ,mBADzB;AAEI,QAAA,OAAO,EAAEG,4BAFb;AAGI,QAAA,UAAU,EAAE,CAACE,wBAAD,IAA6Bf,cAH7C;AAII,QAAA,wBAAwB,EAAEe;AAJ9B,QAbR,EAoBKN,QApBL,CADJ,EAuBI,oBAAC,0BAAD;AACI,QAAA,eAAe,EAAED,eADrB;AAEI,QAAA,WAAW,EAAE5B,WAFjB;AAGI,QAAA,kBAAkB,EAAEA,WAAW,CAACI,MAAZ,IAAsB,CAAtB,IAA2B,CAACgB,cAHpD;AAII,QAAA,eAAe,EAAE,KAAKoB,8BAJ1B;AAKI,QAAA,iBAAiB,EAAE,KAAK9B;AAL5B,QAvBJ,CADJ;AAiCH;;;;EArLsC3B,S;;gBAArCa,4B,eACiB;AACfgC,EAAAA,eAAe,EAAExC,kBADF;AAEfyC,EAAAA,QAAQ,EAAEhD,SAAS,CAAC4D,IAFL;AAGfX,EAAAA,mBAAmB,EAAEzC,2BAA2B,CAACqD,UAHlC;AAIfV,EAAAA,WAAW,EAAEnD,SAAS,CAAC8D,IAJR;AAKf3C,EAAAA,WAAW,EAAEV,mBAAmB,CAACoD,UALlB;AAMfnB,EAAAA,IAAI,EAAE1C,SAAS,CAAC+D,GAND;AAOf1B,EAAAA,oBAAoB,EAAErC,SAAS,CAAC8D,IAAV,CAAeD,UAPtB;AAQfzC,EAAAA,aAAa,EAAEpB,SAAS,CAAC8D,IAAV,CAAeD,UARf;AASfT,EAAAA,4BAA4B,EAAEpD,SAAS,CAAC8D,IATzB;AAUfT,EAAAA,yBAAyB,EAAErD,SAAS,CAACgE,IAVtB;AAWfV,EAAAA,wBAAwB,EAAEtD,SAAS,CAACgE,IAXrB;AAYfrB,EAAAA,cAAc,EAAE3C,SAAS,CAAC8D,IAAV,CAAeD,UAZhB;AAafvB,EAAAA,YAAY,EAAEtC,SAAS,CAAC8D,IAAV,CAAeD,UAbd;AAcfN,EAAAA,gBAAgB,EAAEvD,SAAS,CAACiE;AAdb,C;;gBADjBlD,4B,kBAkBoB;AAClBsC,EAAAA,yBAAyB,EAAE,IADT;AAElBC,EAAAA,wBAAwB,EAAE,IAFR;AAGlBC,EAAAA,gBAAgB,EAAE;AAHA,C;;AAsK1B,SAASxC,4BAA4B,IAAImD,gCAAzC;AACA,eAAe/D,UAAU,CAACY,4BAAD,CAAzB","sourcesContent":["import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport ContentExplorerSearch from './ContentExplorerSearch';\nimport ContentExplorerNewFolderButton from './ContentExplorerNewFolderButton';\nimport ContentExplorerBreadcrumbs from './ContentExplorerBreadcrumbs';\n\nimport { BreadcrumbPropType, ContentExplorerModePropType, FoldersPathPropType } from '../prop-types';\nimport messages from '../messages';\n\nconst SEARCH_RESULTS_FOLDER_ID = 'search_results_id';\n\nconst isSearchResultsFolder = folder => folder && folder.id === SEARCH_RESULTS_FOLDER_ID;\n\nclass ContentExplorerHeaderActions extends Component {\n static propTypes = {\n breadcrumbProps: BreadcrumbPropType,\n children: PropTypes.node,\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n customInput: PropTypes.func,\n foldersPath: FoldersPathPropType.isRequired,\n intl: PropTypes.any,\n onFoldersPathUpdated: PropTypes.func.isRequired,\n onEnterFolder: PropTypes.func.isRequired,\n onCreateNewFolderButtonClick: PropTypes.func,\n showCreateNewFolderButton: PropTypes.bool,\n isCreateNewFolderAllowed: PropTypes.bool,\n onSearchSubmit: PropTypes.func.isRequired,\n onExitSearch: PropTypes.func.isRequired,\n searchInputProps: PropTypes.object,\n };\n\n static defaultProps = {\n showCreateNewFolderButton: true,\n isCreateNewFolderAllowed: true,\n searchInputProps: {},\n };\n\n constructor(props) {\n super(props);\n this.state = {\n searchInput: '',\n };\n this.foldersPathBeforeSearch = [];\n this.lastSubmittedSearchInput = '';\n }\n\n getCurrentFolder() {\n const { foldersPath } = this.props;\n return foldersPath[foldersPath.length - 1];\n }\n\n isInSearchMode() {\n const { foldersPath } = this.props;\n return foldersPath.some(isSearchResultsFolder);\n }\n\n isViewingSearchResults() {\n return isSearchResultsFolder(this.getCurrentFolder());\n }\n\n handleBreadcrumbClick = (folderPathIndex, event) => {\n const { foldersPath, onEnterFolder } = this.props;\n const clickedFolder = foldersPath[folderPathIndex];\n\n if (event) {\n event.preventDefault();\n }\n\n // Do nothing if the right-most breadcrumb (current folder) is clicked\n if (folderPathIndex === foldersPath.length - 1) {\n return;\n }\n\n // Show the search results for the last submitted input when clicking the \"Search Results\" breadcrumb\n if (isSearchResultsFolder(clickedFolder)) {\n this.submitSearch(this.lastSubmittedSearchInput);\n return;\n }\n\n onEnterFolder(clickedFolder);\n };\n\n handleBreadcrumbsUpButtonClick = () => {\n const { foldersPath } = this.props;\n const newFolderIndex = foldersPath.length - 2;\n\n if (this.isViewingSearchResults()) {\n this.exitSearch();\n } else if (newFolderIndex >= 0) {\n this.handleBreadcrumbClick(newFolderIndex);\n }\n };\n\n handleSearchInput = input => {\n this.setState({\n searchInput: input,\n });\n };\n\n handleClearSearchButtonClick = () => {\n this.exitSearch();\n };\n\n exitSearch() {\n const { onFoldersPathUpdated, onExitSearch } = this.props;\n\n // Clear the search input even if we aren't in search mode\n this.setState({ searchInput: '' });\n\n if (this.isInSearchMode()) {\n const foldersPathLength = this.foldersPathBeforeSearch.length;\n const folderBeforeSearch = foldersPathLength > 0 ? this.foldersPathBeforeSearch[foldersPathLength - 1] : {};\n onFoldersPathUpdated(this.foldersPathBeforeSearch);\n onExitSearch(folderBeforeSearch);\n }\n }\n\n handleSubmitSearch = () => {\n const { searchInput } = this.state;\n\n this.submitSearch(searchInput);\n };\n\n submitSearch(searchInput) {\n const { foldersPath, intl, onFoldersPathUpdated, onSearchSubmit } = this.props;\n\n if (searchInput) {\n // Only save folders path if we aren't already in search mode\n if (!this.isInSearchMode()) {\n this.foldersPathBeforeSearch = foldersPath;\n }\n\n this.lastSubmittedSearchInput = searchInput;\n onFoldersPathUpdated([\n {\n id: SEARCH_RESULTS_FOLDER_ID,\n name: intl.formatMessage(messages.searchResults),\n },\n ]);\n\n onSearchSubmit(searchInput);\n } else {\n this.exitSearch();\n }\n }\n\n render() {\n const {\n breadcrumbProps,\n children,\n contentExplorerMode,\n customInput: CustomInput,\n foldersPath,\n onCreateNewFolderButtonClick,\n showCreateNewFolderButton,\n isCreateNewFolderAllowed,\n searchInputProps,\n } = this.props;\n const { searchInput } = this.state;\n const isInSearchMode = this.isInSearchMode();\n\n return (\n <div className=\"content-explorer-header-actions\">\n <div className=\"content-explorer-search-new-folder-container\">\n {CustomInput ? (\n <CustomInput />\n ) : (\n <ContentExplorerSearch\n inputValue={searchInput}\n onClearButtonClick={this.handleClearSearchButtonClick}\n onInput={this.handleSearchInput}\n onSubmit={this.handleSubmitSearch}\n searchInputProps={searchInputProps}\n />\n )}\n {showCreateNewFolderButton && (\n <ContentExplorerNewFolderButton\n contentExplorerMode={contentExplorerMode}\n onClick={onCreateNewFolderButtonClick}\n isDisabled={!isCreateNewFolderAllowed || isInSearchMode}\n isCreateNewFolderAllowed={isCreateNewFolderAllowed}\n />\n )}\n {children}\n </div>\n <ContentExplorerBreadcrumbs\n breadcrumbProps={breadcrumbProps}\n foldersPath={foldersPath}\n isUpButtonDisabled={foldersPath.length <= 1 && !isInSearchMode}\n onUpButtonClick={this.handleBreadcrumbsUpButtonClick}\n onBreadcrumbClick={this.handleBreadcrumbClick}\n />\n </div>\n );\n }\n}\n\nexport { ContentExplorerHeaderActions as ContentExplorerHeaderActionsBase };\nexport default injectIntl(ContentExplorerHeaderActions);\n"],"file":"ContentExplorerHeaderActions.js"}
@@ -6,12 +6,14 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
6
6
 
7
7
  import * as React from 'react';
8
8
  import classNames from 'classnames';
9
- import { Modal } from '../../../components/modal';
10
9
  import ContentExplorer from '../content-explorer';
10
+ import { Modal } from '../../../components/modal';
11
11
  import './ContentExplorerModal.scss';
12
12
 
13
13
  var ContentExplorerModal = function ContentExplorerModal(_ref) {
14
- var _ref$className = _ref.className,
14
+ var _ref$breadcrumbProps = _ref.breadcrumbProps,
15
+ breadcrumbProps = _ref$breadcrumbProps === void 0 ? {} : _ref$breadcrumbProps,
16
+ _ref$className = _ref.className,
15
17
  className = _ref$className === void 0 ? '' : _ref$className,
16
18
  customInput = _ref.customInput,
17
19
  _ref$title = _ref.title,
@@ -25,7 +27,7 @@ var ContentExplorerModal = function ContentExplorerModal(_ref) {
25
27
  onRequestClose = _ref.onRequestClose,
26
28
  onSelectedClick = _ref.onSelectedClick,
27
29
  onSelectItem = _ref.onSelectItem,
28
- rest = _objectWithoutProperties(_ref, ["className", "customInput", "title", "description", "isOpen", "isResponsive", "onRequestClose", "onSelectedClick", "onSelectItem"]);
30
+ rest = _objectWithoutProperties(_ref, ["breadcrumbProps", "className", "customInput", "title", "description", "isOpen", "isResponsive", "onRequestClose", "onSelectedClick", "onSelectItem"]);
29
31
 
30
32
  return React.createElement(Modal, {
31
33
  title: title,
@@ -35,6 +37,7 @@ var ContentExplorerModal = function ContentExplorerModal(_ref) {
35
37
  isOpen: isOpen,
36
38
  onRequestClose: onRequestClose
37
39
  }, description, React.createElement(ContentExplorer, _extends({
40
+ breadcrumbProps: breadcrumbProps,
38
41
  customInput: customInput,
39
42
  isResponsive: isResponsive,
40
43
  onCancelButtonClick: onRequestClose,
@@ -2,13 +2,15 @@
2
2
  import * as React from 'react';
3
3
  import classNames from 'classnames';
4
4
 
5
+ import ContentExplorer from '../content-explorer';
5
6
  import { Modal } from '../../../components/modal';
6
7
 
7
- import ContentExplorer from '../content-explorer';
8
+ import type { BreadcrumbProps } from '../../../components/breadcrumb/Breadcrumb';
8
9
 
9
10
  import './ContentExplorerModal.scss';
10
11
 
11
12
  type Props = {
13
+ breadcrumbProps?: BreadcrumbProps,
12
14
  className?: string,
13
15
  customInput?: React.ComponentType<any>,
14
16
  description?: string,
@@ -21,6 +23,7 @@ type Props = {
21
23
  };
22
24
 
23
25
  const ContentExplorerModal = ({
26
+ breadcrumbProps = {},
24
27
  className = '',
25
28
  customInput,
26
29
  title = '',
@@ -42,6 +45,7 @@ const ContentExplorerModal = ({
42
45
  >
43
46
  {description}
44
47
  <ContentExplorer
48
+ breadcrumbProps={breadcrumbProps}
45
49
  customInput={customInput}
46
50
  isResponsive={isResponsive}
47
51
  onCancelButtonClick={onRequestClose}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/content-explorer/content-explorer-modal/ContentExplorerModal.js"],"names":["React","classNames","Modal","ContentExplorer","ContentExplorerModal","className","customInput","title","description","isOpen","isResponsive","onRequestClose","onSelectedClick","onSelectItem","rest"],"mappings":";;;;;;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,SAASC,KAAT,QAAsB,2BAAtB;AAEA,OAAOC,eAAP,MAA4B,qBAA5B;AAEA,OAAO,6BAAP;;AAcA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB;AAAA,4BACzBC,SADyB;AAAA,MACzBA,SADyB,+BACb,EADa;AAAA,MAEzBC,WAFyB,QAEzBA,WAFyB;AAAA,wBAGzBC,KAHyB;AAAA,MAGzBA,KAHyB,2BAGjB,EAHiB;AAAA,8BAIzBC,WAJyB;AAAA,MAIzBA,WAJyB,iCAIX,EAJW;AAAA,yBAKzBC,MALyB;AAAA,MAKzBA,MALyB,4BAKhB,KALgB;AAAA,+BAMzBC,YANyB;AAAA,MAMzBA,YANyB,kCAMV,KANU;AAAA,MAOzBC,cAPyB,QAOzBA,cAPyB;AAAA,MAQzBC,eARyB,QAQzBA,eARyB;AAAA,MASzBC,YATyB,QASzBA,YATyB;AAAA,MAUtBC,IAVsB;;AAAA,SAYzB,oBAAC,KAAD;AACI,IAAA,KAAK,EAAEP,KADX;AAEI,IAAA,SAAS,EAAEN,UAAU,CAAC,wBAAD,EAA2BI,SAA3B,EAAsC;AACvD,8CAAwCK;AADe,KAAtC,CAFzB;AAKI,IAAA,MAAM,EAAED,MALZ;AAMI,IAAA,cAAc,EAAEE;AANpB,KAQKH,WARL,EASI,oBAAC,eAAD;AACI,IAAA,WAAW,EAAEF,WADjB;AAEI,IAAA,YAAY,EAAEI,YAFlB;AAGI,IAAA,mBAAmB,EAAEC,cAHzB;AAII,IAAA,eAAe,EAAEC,eAJrB;AAKI,IAAA,YAAY,EAAEC,YALlB;AAMI,IAAA,SAAS,EAAE,GANf;AAOI,IAAA,UAAU,EAAE;AAPhB,KAQQC,IARR,EATJ,CAZyB;AAAA,CAA7B;;AAkCA,eAAeV,oBAAf","sourcesContent":["/* @flow */\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nimport { Modal } from '../../../components/modal';\n\nimport ContentExplorer from '../content-explorer';\n\nimport './ContentExplorerModal.scss';\n\ntype Props = {\n className?: string,\n customInput?: React.ComponentType<any>,\n description?: string,\n isOpen?: boolean,\n isResponsive?: boolean,\n onRequestClose?: Function,\n onSelectItem?: (item: Object, index: number) => void,\n onSelectedClick?: () => void,\n title?: string,\n};\n\nconst ContentExplorerModal = ({\n className = '',\n customInput,\n title = '',\n description = '',\n isOpen = false,\n isResponsive = false,\n onRequestClose,\n onSelectedClick,\n onSelectItem,\n ...rest\n}: Props) => (\n <Modal\n title={title}\n className={classNames('content-explorer-modal', className, {\n 'bdl-ContentExplorerModal--responsive': isResponsive,\n })}\n isOpen={isOpen}\n onRequestClose={onRequestClose}\n >\n {description}\n <ContentExplorer\n customInput={customInput}\n isResponsive={isResponsive}\n onCancelButtonClick={onRequestClose}\n onSelectedClick={onSelectedClick}\n onSelectItem={onSelectItem}\n listWidth={560}\n listHeight={285}\n {...rest}\n />\n </Modal>\n);\n\nexport default ContentExplorerModal;\n"],"file":"ContentExplorerModal.js"}
1
+ {"version":3,"sources":["../../../../src/features/content-explorer/content-explorer-modal/ContentExplorerModal.js"],"names":["React","classNames","ContentExplorer","Modal","ContentExplorerModal","breadcrumbProps","className","customInput","title","description","isOpen","isResponsive","onRequestClose","onSelectedClick","onSelectItem","rest"],"mappings":";;;;;;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,SAASC,KAAT,QAAsB,2BAAtB;AAIA,OAAO,6BAAP;;AAeA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB;AAAA,kCACzBC,eADyB;AAAA,MACzBA,eADyB,qCACP,EADO;AAAA,4BAEzBC,SAFyB;AAAA,MAEzBA,SAFyB,+BAEb,EAFa;AAAA,MAGzBC,WAHyB,QAGzBA,WAHyB;AAAA,wBAIzBC,KAJyB;AAAA,MAIzBA,KAJyB,2BAIjB,EAJiB;AAAA,8BAKzBC,WALyB;AAAA,MAKzBA,WALyB,iCAKX,EALW;AAAA,yBAMzBC,MANyB;AAAA,MAMzBA,MANyB,4BAMhB,KANgB;AAAA,+BAOzBC,YAPyB;AAAA,MAOzBA,YAPyB,kCAOV,KAPU;AAAA,MAQzBC,cARyB,QAQzBA,cARyB;AAAA,MASzBC,eATyB,QASzBA,eATyB;AAAA,MAUzBC,YAVyB,QAUzBA,YAVyB;AAAA,MAWtBC,IAXsB;;AAAA,SAazB,oBAAC,KAAD;AACI,IAAA,KAAK,EAAEP,KADX;AAEI,IAAA,SAAS,EAAEP,UAAU,CAAC,wBAAD,EAA2BK,SAA3B,EAAsC;AACvD,8CAAwCK;AADe,KAAtC,CAFzB;AAKI,IAAA,MAAM,EAAED,MALZ;AAMI,IAAA,cAAc,EAAEE;AANpB,KAQKH,WARL,EASI,oBAAC,eAAD;AACI,IAAA,eAAe,EAAEJ,eADrB;AAEI,IAAA,WAAW,EAAEE,WAFjB;AAGI,IAAA,YAAY,EAAEI,YAHlB;AAII,IAAA,mBAAmB,EAAEC,cAJzB;AAKI,IAAA,eAAe,EAAEC,eALrB;AAMI,IAAA,YAAY,EAAEC,YANlB;AAOI,IAAA,SAAS,EAAE,GAPf;AAQI,IAAA,UAAU,EAAE;AARhB,KASQC,IATR,EATJ,CAbyB;AAAA,CAA7B;;AAoCA,eAAeX,oBAAf","sourcesContent":["/* @flow */\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nimport ContentExplorer from '../content-explorer';\nimport { Modal } from '../../../components/modal';\n\nimport type { BreadcrumbProps } from '../../../components/breadcrumb/Breadcrumb';\n\nimport './ContentExplorerModal.scss';\n\ntype Props = {\n breadcrumbProps?: BreadcrumbProps,\n className?: string,\n customInput?: React.ComponentType<any>,\n description?: string,\n isOpen?: boolean,\n isResponsive?: boolean,\n onRequestClose?: Function,\n onSelectItem?: (item: Object, index: number) => void,\n onSelectedClick?: () => void,\n title?: string,\n};\n\nconst ContentExplorerModal = ({\n breadcrumbProps = {},\n className = '',\n customInput,\n title = '',\n description = '',\n isOpen = false,\n isResponsive = false,\n onRequestClose,\n onSelectedClick,\n onSelectItem,\n ...rest\n}: Props) => (\n <Modal\n title={title}\n className={classNames('content-explorer-modal', className, {\n 'bdl-ContentExplorerModal--responsive': isResponsive,\n })}\n isOpen={isOpen}\n onRequestClose={onRequestClose}\n >\n {description}\n <ContentExplorer\n breadcrumbProps={breadcrumbProps}\n customInput={customInput}\n isResponsive={isResponsive}\n onCancelButtonClick={onRequestClose}\n onSelectedClick={onSelectedClick}\n onSelectItem={onSelectItem}\n listWidth={560}\n listHeight={285}\n {...rest}\n />\n </Modal>\n);\n\nexport default ContentExplorerModal;\n"],"file":"ContentExplorerModal.js"}
@@ -21,7 +21,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
21
21
  import PropTypes from 'prop-types';
22
22
  import React, { Component } from 'react';
23
23
  import classNames from 'classnames';
24
- import { ContentExplorerModePropType, FoldersPathPropType, ItemsPropType } from '../prop-types';
24
+ import { BreadcrumbPropType, ContentExplorerModePropType, FoldersPathPropType, ItemsPropType } from '../prop-types';
25
25
  import ContentExplorerModal from '../content-explorer-modal';
26
26
  import NewFolderModal from '../new-folder-modal';
27
27
 
@@ -92,6 +92,7 @@ function (_Component) {
92
92
  key: "render",
93
93
  value: function render() {
94
94
  var _this$props = this.props,
95
+ breadcrumbProps = _this$props.breadcrumbProps,
95
96
  className = _this$props.className,
96
97
  headerActionsAccessory = _this$props.headerActionsAccessory,
97
98
  modalTitle = _this$props.modalTitle,
@@ -130,6 +131,7 @@ function (_Component) {
130
131
  return React.createElement("div", {
131
132
  className: classNames('content-explorer-modal-container', className)
132
133
  }, React.createElement(ContentExplorerModal, {
134
+ breadcrumbProps: breadcrumbProps,
133
135
  className: isNewFolderModalOpen ? 'hidden' : '',
134
136
  headerActionsAccessory: headerActionsAccessory,
135
137
  title: modalTitle,
@@ -176,6 +178,9 @@ function (_Component) {
176
178
  }(Component);
177
179
 
178
180
  _defineProperty(ContentExplorerModalContainer, "propTypes", {
181
+ /** Breadcrumb component options */
182
+ breadcrumbProps: BreadcrumbPropType,
183
+
179
184
  /** Adds class name. */
180
185
  className: PropTypes.string,
181
186