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
@@ -17,10 +17,18 @@ import messages from './messages';
17
17
  import { collapseFeedState, ItemTypes } from './activityFeedUtils';
18
18
  import { PERMISSION_CAN_CREATE_ANNOTATIONS } from '../../../../constants';
19
19
  import { scrollIntoView } from '../../../../utils/dom';
20
- import type { Annotation, AnnotationPermission, FocusableFeedItemType, FeedItems } from '../../../../common/types/feed';
20
+ import type {
21
+ Annotation,
22
+ AnnotationPermission,
23
+ BoxCommentPermission,
24
+ CommentFeedItemType,
25
+ FocusableFeedItemType,
26
+ FeedItems,
27
+ FeedItemStatus,
28
+ } from '../../../../common/types/feed';
21
29
  import type { SelectorItems, User, GroupMini, BoxItem } from '../../../../common/types/core';
22
- import type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
23
- import type { Translations, Errors } from '../../flowTypes';
30
+ import type { Errors, GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
31
+ import type { Translations } from '../../flowTypes';
24
32
  import './ActivityFeed.scss';
25
33
 
26
34
  type Props = {
@@ -36,15 +44,36 @@ type Props = {
36
44
  getAvatarUrl: GetAvatarUrlCallback,
37
45
  getMentionWithQuery?: Function,
38
46
  getUserProfileUrl?: GetProfileUrlCallback,
47
+ hasReplies?: boolean,
39
48
  isDisabled?: boolean,
40
49
  mentionSelectorContacts?: SelectorItems<User>,
41
50
  onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,
42
51
  onAnnotationEdit?: (id: string, text: string, permissions: AnnotationPermission) => void,
43
52
  onAnnotationSelect?: (annotation: Annotation) => void,
53
+ onAnnotationStatusChange?: (id: string, status: FeedItemStatus, permissions: AnnotationPermission) => void,
44
54
  onAppActivityDelete?: Function,
45
55
  onCommentCreate?: Function,
46
56
  onCommentDelete?: Function,
47
- onCommentUpdate?: Function,
57
+ onCommentUpdate?: (
58
+ id: string,
59
+ text?: string,
60
+ status?: FeedItemStatus,
61
+ hasMention: boolean,
62
+ permissions: BoxCommentPermission,
63
+ onSuccess: ?Function,
64
+ onError: ?Function,
65
+ ) => void,
66
+ onReplyCreate?: (parentId: string, parentType: CommentFeedItemType, text: string) => void,
67
+ onReplyDelete?: ({ id: string, parentId: string, permissions: BoxCommentPermission }) => void,
68
+ onReplyUpdate?: (
69
+ id: string,
70
+ parentId: string,
71
+ text: string,
72
+ permissions: BoxCommentPermission,
73
+ onSuccess: ?Function,
74
+ onError: ?Function,
75
+ ) => void,
76
+ onShowReplies?: (id: string, type: CommentFeedItemType) => void,
48
77
  onTaskAssignmentUpdate?: Function,
49
78
  onTaskCreate?: Function,
50
79
  onTaskDelete?: Function,
@@ -206,16 +235,22 @@ class ActivityFeed extends React.Component<Props, State> {
206
235
  getAvatarUrl,
207
236
  getMentionWithQuery,
208
237
  getUserProfileUrl,
238
+ hasReplies,
209
239
  isDisabled,
210
240
  mentionSelectorContacts,
211
241
  contactsLoaded,
212
242
  onAnnotationDelete,
213
243
  onAnnotationEdit,
214
244
  onAnnotationSelect,
245
+ onAnnotationStatusChange,
215
246
  onAppActivityDelete,
216
247
  onCommentCreate,
217
248
  onCommentDelete,
218
249
  onCommentUpdate,
250
+ onReplyCreate,
251
+ onReplyDelete,
252
+ onReplyUpdate,
253
+ onShowReplies,
219
254
  onTaskAssignmentUpdate,
220
255
  onTaskDelete,
221
256
  onTaskModalClose,
@@ -273,32 +308,38 @@ class ActivityFeed extends React.Component<Props, State> {
273
308
  {!isEmpty && !isLoading && (
274
309
  <ActiveState
275
310
  {...activityFeedError}
276
- items={collapseFeedState(feedItems)}
277
- isDisabled={isDisabled}
278
- currentUser={currentUser}
311
+ activeFeedEntryId={activeFeedEntryId}
312
+ activeFeedEntryType={activeFeedEntryType}
313
+ activeFeedItemRef={this.activeFeedItemRef}
314
+ approverSelectorContacts={approverSelectorContacts}
279
315
  currentFileVersionId={currentFileVersionId}
280
- onTaskAssignmentUpdate={onTaskAssignmentUpdate}
316
+ currentUser={currentUser}
317
+ getApproverWithQuery={getApproverWithQuery}
318
+ getAvatarUrl={getAvatarUrl}
319
+ getMentionWithQuery={getMentionWithQuery}
320
+ getUserProfileUrl={getUserProfileUrl}
321
+ hasReplies={hasReplies}
322
+ isDisabled={isDisabled}
323
+ items={collapseFeedState(feedItems)}
324
+ mentionSelectorContacts={mentionSelectorContacts}
281
325
  onAnnotationDelete={onAnnotationDelete}
282
326
  onAnnotationEdit={onAnnotationEdit}
283
327
  onAnnotationSelect={onAnnotationSelect}
328
+ onAnnotationStatusChange={onAnnotationStatusChange}
284
329
  onAppActivityDelete={onAppActivityDelete}
285
330
  onCommentDelete={hasCommentPermission ? onCommentDelete : noop}
286
331
  onCommentEdit={hasCommentPermission ? onCommentUpdate : noop}
332
+ onReplyCreate={hasCommentPermission ? onReplyCreate : noop}
333
+ onReplyDelete={hasCommentPermission ? onReplyDelete : noop}
334
+ onReplyUpdate={hasCommentPermission ? onReplyUpdate : noop}
335
+ onShowReplies={onShowReplies}
336
+ onTaskAssignmentUpdate={onTaskAssignmentUpdate}
287
337
  onTaskDelete={onTaskDelete}
288
338
  onTaskEdit={onTaskUpdate}
289
- onTaskView={onTaskView}
290
339
  onTaskModalClose={onTaskModalClose}
340
+ onTaskView={onTaskView}
291
341
  onVersionInfo={onVersionHistoryClick ? this.openVersionHistoryPopup : null}
292
342
  translations={translations}
293
- getAvatarUrl={getAvatarUrl}
294
- getUserProfileUrl={getUserProfileUrl}
295
- mentionSelectorContacts={mentionSelectorContacts}
296
- getMentionWithQuery={getMentionWithQuery}
297
- approverSelectorContacts={approverSelectorContacts}
298
- getApproverWithQuery={getApproverWithQuery}
299
- activeFeedEntryId={activeFeedEntryId}
300
- activeFeedEntryType={activeFeedEntryType}
301
- activeFeedItemRef={this.activeFeedItemRef}
302
343
  />
303
344
  )}
304
345
  {isInlineFeedItemErrorVisible && inlineFeedItemErrorMessage && (
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js"],"names":["React","getProp","noop","FormattedMessage","classNames","ActiveState","CommentForm","EmptyState","InlineError","LoadingIndicator","messages","collapseFeedState","ItemTypes","PERMISSION_CAN_CREATE_ANNOTATIONS","scrollIntoView","ActivityFeed","isInputOpen","createRef","props","feedItems","undefined","length","type","fileVersion","prevCurrentUser","prevFeedItems","currentUser","feedContainer","scrollTop","scrollHeight","event","nativeEvent","stopImmediatePropagation","resetFeedScroll","setState","text","hasMention","onCommentCreate","commentFormSubmitHandler","assignees","dueAt","onTaskCreate","data","versionInfoHandler","onVersionHistoryClick","prevProps","prevState","prevActiveFeedEntryId","activeFeedEntryId","currFeedItems","prevIsInputOpen","currIsInputOpen","state","hasLoaded","hasMoreItems","didLoadFeedItems","hasInputOpened","hasActiveFeedEntryIdChanged","scrollToActiveFeedItemOrErrorMessage","activeFeedItemRef","current","activeFeedEntryType","activityFeedError","approverSelectorContacts","file","getApproverWithQuery","getAvatarUrl","getMentionWithQuery","getUserProfileUrl","isDisabled","mentionSelectorContacts","contactsLoaded","onAnnotationDelete","onAnnotationEdit","onAnnotationSelect","onAppActivityDelete","onCommentDelete","onCommentUpdate","onTaskAssignmentUpdate","onTaskDelete","onTaskModalClose","onTaskUpdate","onTaskView","translations","hasAnnotationCreatePermission","hasCommentPermission","showCommentForm","isEmpty","isLoading","activeEntry","Array","isArray","find","id","errorMessageByEntryType","annotation","annotationMissingError","comment","commentMissingError","task","taskMissingError","inlineFeedItemErrorMessage","isInlineFeedItemErrorVisible","currentFileVersionId","onKeyDown","ref","openVersionHistoryPopup","feedInlineErrorTitle","commentFormCancelHandler","commentFormFocusHandler","Component"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Component for Activity feed\n */\n\nimport * as React from 'react';\nimport getProp from 'lodash/get';\nimport noop from 'lodash/noop';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport ActiveState from './ActiveState';\nimport CommentForm from '../comment-form';\nimport EmptyState from './EmptyState';\nimport InlineError from '../../../../components/inline-error/InlineError';\nimport LoadingIndicator from '../../../../components/loading-indicator/LoadingIndicator';\nimport messages from './messages';\nimport { collapseFeedState, ItemTypes } from './activityFeedUtils';\nimport { PERMISSION_CAN_CREATE_ANNOTATIONS } from '../../../../constants';\nimport { scrollIntoView } from '../../../../utils/dom';\nimport type { Annotation, AnnotationPermission, FocusableFeedItemType, FeedItems } from '../../../../common/types/feed';\nimport type { SelectorItems, User, GroupMini, BoxItem } from '../../../../common/types/core';\nimport type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations, Errors } from '../../flowTypes';\nimport './ActivityFeed.scss';\n\ntype Props = {\n activeFeedEntryId?: string,\n activeFeedEntryType?: FocusableFeedItemType,\n activityFeedError: ?Errors,\n approverSelectorContacts?: SelectorItems<User | GroupMini>,\n contactsLoaded?: boolean,\n currentUser?: User,\n feedItems?: FeedItems,\n file: BoxItem,\n getApproverWithQuery?: Function,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n getUserProfileUrl?: GetProfileUrlCallback,\n isDisabled?: boolean,\n mentionSelectorContacts?: SelectorItems<User>,\n onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,\n onAnnotationEdit?: (id: string, text: string, permissions: AnnotationPermission) => void,\n onAnnotationSelect?: (annotation: Annotation) => void,\n onAppActivityDelete?: Function,\n onCommentCreate?: Function,\n onCommentDelete?: Function,\n onCommentUpdate?: Function,\n onTaskAssignmentUpdate?: Function,\n onTaskCreate?: Function,\n onTaskDelete?: Function,\n onTaskModalClose?: Function,\n onTaskUpdate?: Function,\n onTaskView?: Function,\n onVersionHistoryClick?: Function,\n translations?: Translations,\n};\n\ntype State = {\n isInputOpen: boolean,\n};\n\nclass ActivityFeed extends React.Component<Props, State> {\n state = {\n isInputOpen: false,\n };\n\n activeFeedItemRef = React.createRef<null | HTMLElement>();\n\n feedContainer: null | HTMLElement;\n\n componentDidMount() {\n this.resetFeedScroll();\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n const {\n activeFeedEntryId: prevActiveFeedEntryId,\n currentUser: prevCurrentUser,\n feedItems: prevFeedItems,\n } = prevProps;\n const { feedItems: currFeedItems, activeFeedEntryId } = this.props;\n const { isInputOpen: prevIsInputOpen } = prevState;\n const { isInputOpen: currIsInputOpen } = this.state;\n\n const hasLoaded = this.hasLoaded(prevCurrentUser, prevFeedItems);\n const hasMoreItems = prevFeedItems && currFeedItems && prevFeedItems.length < currFeedItems.length;\n const didLoadFeedItems = prevFeedItems === undefined && currFeedItems !== undefined;\n const hasInputOpened = currIsInputOpen !== prevIsInputOpen;\n const hasActiveFeedEntryIdChanged = activeFeedEntryId !== prevActiveFeedEntryId;\n\n if ((hasLoaded || hasMoreItems || didLoadFeedItems || hasInputOpened) && activeFeedEntryId === undefined) {\n this.resetFeedScroll();\n }\n\n if (didLoadFeedItems || hasActiveFeedEntryIdChanged) {\n this.scrollToActiveFeedItemOrErrorMessage();\n }\n }\n\n scrollToActiveFeedItemOrErrorMessage() {\n const { current: activeFeedItemRef } = this.activeFeedItemRef;\n const { activeFeedEntryId } = this.props;\n\n // if there is no active item, do not scroll\n if (!activeFeedEntryId) {\n return;\n }\n\n // if there was supposed to be an active feed item but the feed item does not exist\n // scroll to the bottom to show the inline error message\n if (activeFeedItemRef === null) {\n this.resetFeedScroll();\n return;\n }\n\n scrollIntoView(activeFeedItemRef);\n }\n\n /**\n * Detects whether or not the empty state should be shown.\n * @param {object} currentUser - The user that is logged into the account\n * @param {object} feedItems - Items in the activity feed\n */\n isEmpty = ({ feedItems }: Props = this.props): boolean => {\n if (feedItems === undefined) {\n return false;\n }\n return feedItems.length === 0 || (feedItems.length === 1 && feedItems[0].type === ItemTypes.fileVersion);\n };\n\n /**\n * Determines whether currentUser and feedItems have loaded.\n * @param prevCurrentUser - The previous value of the currentUser prop\n * @param prevFeedItems - The previous value of the feedItems prop\n * @returns {boolean}\n */\n hasLoaded = (prevCurrentUser?: User, prevFeedItems?: FeedItems): boolean => {\n const { currentUser, feedItems } = this.props;\n return currentUser !== undefined && feedItems !== undefined && (!prevCurrentUser || !prevFeedItems);\n };\n\n /**\n * Scrolls the container to the bottom\n */\n resetFeedScroll = () => {\n if (this.feedContainer) {\n this.feedContainer.scrollTop = this.feedContainer.scrollHeight;\n }\n };\n\n onKeyDown = (event: SyntheticKeyboardEvent<>): void => {\n const { nativeEvent } = event;\n nativeEvent.stopImmediatePropagation();\n };\n\n commentFormFocusHandler = (): void => {\n this.resetFeedScroll();\n this.setState({ isInputOpen: true });\n };\n\n commentFormCancelHandler = (): void => this.setState({ isInputOpen: false });\n\n commentFormSubmitHandler = (): void => this.setState({ isInputOpen: false });\n\n onCommentCreate = ({ text, hasMention }: { hasMention: boolean, text: string }) => {\n const { onCommentCreate = noop } = this.props;\n onCommentCreate(text, hasMention);\n this.commentFormSubmitHandler();\n };\n\n /**\n * Creates a task.\n *\n * @param {string} text - Task text\n * @param {Array} assignees - List of assignees\n * @param {number} dueAt - Task's due date\n * @return {void}\n */\n onTaskCreate = ({ text, assignees, dueAt }: { assignees: SelectorItems<>, dueAt: string, text: string }): void => {\n const { onTaskCreate = noop } = this.props;\n onTaskCreate(text, assignees, dueAt);\n this.commentFormSubmitHandler();\n };\n\n /**\n * Invokes version history popup handler.\n *\n * @param {Object} data - Version history data\n * @return {void}\n */\n openVersionHistoryPopup = (data: any): void => {\n const versionInfoHandler = this.props.onVersionHistoryClick || noop;\n versionInfoHandler(data);\n };\n\n render(): React.Node {\n const {\n activeFeedEntryId,\n activeFeedEntryType,\n activityFeedError,\n approverSelectorContacts,\n currentUser,\n feedItems,\n file,\n getApproverWithQuery,\n getAvatarUrl,\n getMentionWithQuery,\n getUserProfileUrl,\n isDisabled,\n mentionSelectorContacts,\n contactsLoaded,\n onAnnotationDelete,\n onAnnotationEdit,\n onAnnotationSelect,\n onAppActivityDelete,\n onCommentCreate,\n onCommentDelete,\n onCommentUpdate,\n onTaskAssignmentUpdate,\n onTaskDelete,\n onTaskModalClose,\n onTaskUpdate,\n onTaskView,\n onVersionHistoryClick,\n translations,\n } = this.props;\n const { isInputOpen } = this.state;\n const hasAnnotationCreatePermission = getProp(file, ['permissions', PERMISSION_CAN_CREATE_ANNOTATIONS], false);\n const hasCommentPermission = getProp(file, 'permissions.can_comment', false);\n const showCommentForm = !!(currentUser && hasCommentPermission && onCommentCreate && feedItems);\n\n const isEmpty = this.isEmpty(this.props);\n const isLoading = !this.hasLoaded();\n\n const activeEntry =\n Array.isArray(feedItems) &&\n feedItems.find(({ id, type }) => id === activeFeedEntryId && type === activeFeedEntryType);\n\n const errorMessageByEntryType = {\n annotation: messages.annotationMissingError,\n comment: messages.commentMissingError,\n task: messages.taskMissingError,\n };\n\n const inlineFeedItemErrorMessage = activeFeedEntryType\n ? errorMessageByEntryType[activeFeedEntryType]\n : undefined;\n\n const isInlineFeedItemErrorVisible = !isLoading && activeFeedEntryType && !activeEntry;\n const currentFileVersionId = getProp(file, 'file_version.id');\n\n return (\n // eslint-disable-next-line\n <div className=\"bcs-activity-feed\" data-testid=\"activityfeed\" onKeyDown={this.onKeyDown}>\n <div\n ref={ref => {\n this.feedContainer = ref;\n }}\n className=\"bcs-activity-feed-items-container\"\n >\n {isLoading && (\n <div className=\"bcs-activity-feed-loading-state\">\n <LoadingIndicator />\n </div>\n )}\n\n {isEmpty && !isLoading && (\n <EmptyState\n showAnnotationMessage={hasAnnotationCreatePermission}\n showCommentMessage={showCommentForm}\n />\n )}\n {!isEmpty && !isLoading && (\n <ActiveState\n {...activityFeedError}\n items={collapseFeedState(feedItems)}\n isDisabled={isDisabled}\n currentUser={currentUser}\n currentFileVersionId={currentFileVersionId}\n onTaskAssignmentUpdate={onTaskAssignmentUpdate}\n onAnnotationDelete={onAnnotationDelete}\n onAnnotationEdit={onAnnotationEdit}\n onAnnotationSelect={onAnnotationSelect}\n onAppActivityDelete={onAppActivityDelete}\n onCommentDelete={hasCommentPermission ? onCommentDelete : noop}\n onCommentEdit={hasCommentPermission ? onCommentUpdate : noop}\n onTaskDelete={onTaskDelete}\n onTaskEdit={onTaskUpdate}\n onTaskView={onTaskView}\n onTaskModalClose={onTaskModalClose}\n onVersionInfo={onVersionHistoryClick ? this.openVersionHistoryPopup : null}\n translations={translations}\n getAvatarUrl={getAvatarUrl}\n getUserProfileUrl={getUserProfileUrl}\n mentionSelectorContacts={mentionSelectorContacts}\n getMentionWithQuery={getMentionWithQuery}\n approverSelectorContacts={approverSelectorContacts}\n getApproverWithQuery={getApproverWithQuery}\n activeFeedEntryId={activeFeedEntryId}\n activeFeedEntryType={activeFeedEntryType}\n activeFeedItemRef={this.activeFeedItemRef}\n />\n )}\n {isInlineFeedItemErrorVisible && inlineFeedItemErrorMessage && (\n <InlineError\n title={<FormattedMessage {...messages.feedInlineErrorTitle} />}\n className=\"bcs-feedItemInlineError\"\n >\n <FormattedMessage {...inlineFeedItemErrorMessage} />\n </InlineError>\n )}\n </div>\n\n {showCommentForm ? (\n <CommentForm\n onSubmit={this.resetFeedScroll}\n isDisabled={isDisabled}\n mentionSelectorContacts={mentionSelectorContacts}\n contactsLoaded={contactsLoaded}\n className={classNames('bcs-activity-feed-comment-input', {\n 'bcs-is-disabled': isDisabled,\n })}\n createComment={hasCommentPermission ? this.onCommentCreate : noop}\n getMentionWithQuery={getMentionWithQuery}\n isOpen={isInputOpen}\n // $FlowFixMe\n user={currentUser}\n onCancel={this.commentFormCancelHandler}\n onFocus={this.commentFormFocusHandler}\n getAvatarUrl={getAvatarUrl}\n />\n ) : null}\n </div>\n );\n }\n}\n\nexport default ActivityFeed;\n"],"file":"ActivityFeed.js"}
1
+ {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js"],"names":["React","getProp","noop","FormattedMessage","classNames","ActiveState","CommentForm","EmptyState","InlineError","LoadingIndicator","messages","collapseFeedState","ItemTypes","PERMISSION_CAN_CREATE_ANNOTATIONS","scrollIntoView","ActivityFeed","isInputOpen","createRef","props","feedItems","undefined","length","type","fileVersion","prevCurrentUser","prevFeedItems","currentUser","feedContainer","scrollTop","scrollHeight","event","nativeEvent","stopImmediatePropagation","resetFeedScroll","setState","text","hasMention","onCommentCreate","commentFormSubmitHandler","assignees","dueAt","onTaskCreate","data","versionInfoHandler","onVersionHistoryClick","prevProps","prevState","prevActiveFeedEntryId","activeFeedEntryId","currFeedItems","prevIsInputOpen","currIsInputOpen","state","hasLoaded","hasMoreItems","didLoadFeedItems","hasInputOpened","hasActiveFeedEntryIdChanged","scrollToActiveFeedItemOrErrorMessage","activeFeedItemRef","current","activeFeedEntryType","activityFeedError","approverSelectorContacts","file","getApproverWithQuery","getAvatarUrl","getMentionWithQuery","getUserProfileUrl","hasReplies","isDisabled","mentionSelectorContacts","contactsLoaded","onAnnotationDelete","onAnnotationEdit","onAnnotationSelect","onAnnotationStatusChange","onAppActivityDelete","onCommentDelete","onCommentUpdate","onReplyCreate","onReplyDelete","onReplyUpdate","onShowReplies","onTaskAssignmentUpdate","onTaskDelete","onTaskModalClose","onTaskUpdate","onTaskView","translations","hasAnnotationCreatePermission","hasCommentPermission","showCommentForm","isEmpty","isLoading","activeEntry","Array","isArray","find","id","errorMessageByEntryType","annotation","annotationMissingError","comment","commentMissingError","task","taskMissingError","inlineFeedItemErrorMessage","isInlineFeedItemErrorVisible","currentFileVersionId","onKeyDown","ref","openVersionHistoryPopup","feedInlineErrorTitle","commentFormCancelHandler","commentFormFocusHandler","Component"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Component for Activity feed\n */\n\nimport * as React from 'react';\nimport getProp from 'lodash/get';\nimport noop from 'lodash/noop';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport ActiveState from './ActiveState';\nimport CommentForm from '../comment-form';\nimport EmptyState from './EmptyState';\nimport InlineError from '../../../../components/inline-error/InlineError';\nimport LoadingIndicator from '../../../../components/loading-indicator/LoadingIndicator';\nimport messages from './messages';\nimport { collapseFeedState, ItemTypes } from './activityFeedUtils';\nimport { PERMISSION_CAN_CREATE_ANNOTATIONS } from '../../../../constants';\nimport { scrollIntoView } from '../../../../utils/dom';\nimport type {\n Annotation,\n AnnotationPermission,\n BoxCommentPermission,\n CommentFeedItemType,\n FocusableFeedItemType,\n FeedItems,\n FeedItemStatus,\n} from '../../../../common/types/feed';\nimport type { SelectorItems, User, GroupMini, BoxItem } from '../../../../common/types/core';\nimport type { Errors, GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations } from '../../flowTypes';\nimport './ActivityFeed.scss';\n\ntype Props = {\n activeFeedEntryId?: string,\n activeFeedEntryType?: FocusableFeedItemType,\n activityFeedError: ?Errors,\n approverSelectorContacts?: SelectorItems<User | GroupMini>,\n contactsLoaded?: boolean,\n currentUser?: User,\n feedItems?: FeedItems,\n file: BoxItem,\n getApproverWithQuery?: Function,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n getUserProfileUrl?: GetProfileUrlCallback,\n hasReplies?: boolean,\n isDisabled?: boolean,\n mentionSelectorContacts?: SelectorItems<User>,\n onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,\n onAnnotationEdit?: (id: string, text: string, permissions: AnnotationPermission) => void,\n onAnnotationSelect?: (annotation: Annotation) => void,\n onAnnotationStatusChange?: (id: string, status: FeedItemStatus, permissions: AnnotationPermission) => void,\n onAppActivityDelete?: Function,\n onCommentCreate?: Function,\n onCommentDelete?: Function,\n onCommentUpdate?: (\n id: string,\n text?: string,\n status?: FeedItemStatus,\n hasMention: boolean,\n permissions: BoxCommentPermission,\n onSuccess: ?Function,\n onError: ?Function,\n ) => void,\n onReplyCreate?: (parentId: string, parentType: CommentFeedItemType, text: string) => void,\n onReplyDelete?: ({ id: string, parentId: string, permissions: BoxCommentPermission }) => void,\n onReplyUpdate?: (\n id: string,\n parentId: string,\n text: string,\n permissions: BoxCommentPermission,\n onSuccess: ?Function,\n onError: ?Function,\n ) => void,\n onShowReplies?: (id: string, type: CommentFeedItemType) => void,\n onTaskAssignmentUpdate?: Function,\n onTaskCreate?: Function,\n onTaskDelete?: Function,\n onTaskModalClose?: Function,\n onTaskUpdate?: Function,\n onTaskView?: Function,\n onVersionHistoryClick?: Function,\n translations?: Translations,\n};\n\ntype State = {\n isInputOpen: boolean,\n};\n\nclass ActivityFeed extends React.Component<Props, State> {\n state = {\n isInputOpen: false,\n };\n\n activeFeedItemRef = React.createRef<null | HTMLElement>();\n\n feedContainer: null | HTMLElement;\n\n componentDidMount() {\n this.resetFeedScroll();\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n const {\n activeFeedEntryId: prevActiveFeedEntryId,\n currentUser: prevCurrentUser,\n feedItems: prevFeedItems,\n } = prevProps;\n const { feedItems: currFeedItems, activeFeedEntryId } = this.props;\n const { isInputOpen: prevIsInputOpen } = prevState;\n const { isInputOpen: currIsInputOpen } = this.state;\n\n const hasLoaded = this.hasLoaded(prevCurrentUser, prevFeedItems);\n const hasMoreItems = prevFeedItems && currFeedItems && prevFeedItems.length < currFeedItems.length;\n const didLoadFeedItems = prevFeedItems === undefined && currFeedItems !== undefined;\n const hasInputOpened = currIsInputOpen !== prevIsInputOpen;\n const hasActiveFeedEntryIdChanged = activeFeedEntryId !== prevActiveFeedEntryId;\n\n if ((hasLoaded || hasMoreItems || didLoadFeedItems || hasInputOpened) && activeFeedEntryId === undefined) {\n this.resetFeedScroll();\n }\n\n if (didLoadFeedItems || hasActiveFeedEntryIdChanged) {\n this.scrollToActiveFeedItemOrErrorMessage();\n }\n }\n\n scrollToActiveFeedItemOrErrorMessage() {\n const { current: activeFeedItemRef } = this.activeFeedItemRef;\n const { activeFeedEntryId } = this.props;\n\n // if there is no active item, do not scroll\n if (!activeFeedEntryId) {\n return;\n }\n\n // if there was supposed to be an active feed item but the feed item does not exist\n // scroll to the bottom to show the inline error message\n if (activeFeedItemRef === null) {\n this.resetFeedScroll();\n return;\n }\n\n scrollIntoView(activeFeedItemRef);\n }\n\n /**\n * Detects whether or not the empty state should be shown.\n * @param {object} currentUser - The user that is logged into the account\n * @param {object} feedItems - Items in the activity feed\n */\n isEmpty = ({ feedItems }: Props = this.props): boolean => {\n if (feedItems === undefined) {\n return false;\n }\n return feedItems.length === 0 || (feedItems.length === 1 && feedItems[0].type === ItemTypes.fileVersion);\n };\n\n /**\n * Determines whether currentUser and feedItems have loaded.\n * @param prevCurrentUser - The previous value of the currentUser prop\n * @param prevFeedItems - The previous value of the feedItems prop\n * @returns {boolean}\n */\n hasLoaded = (prevCurrentUser?: User, prevFeedItems?: FeedItems): boolean => {\n const { currentUser, feedItems } = this.props;\n return currentUser !== undefined && feedItems !== undefined && (!prevCurrentUser || !prevFeedItems);\n };\n\n /**\n * Scrolls the container to the bottom\n */\n resetFeedScroll = () => {\n if (this.feedContainer) {\n this.feedContainer.scrollTop = this.feedContainer.scrollHeight;\n }\n };\n\n onKeyDown = (event: SyntheticKeyboardEvent<>): void => {\n const { nativeEvent } = event;\n nativeEvent.stopImmediatePropagation();\n };\n\n commentFormFocusHandler = (): void => {\n this.resetFeedScroll();\n this.setState({ isInputOpen: true });\n };\n\n commentFormCancelHandler = (): void => this.setState({ isInputOpen: false });\n\n commentFormSubmitHandler = (): void => this.setState({ isInputOpen: false });\n\n onCommentCreate = ({ text, hasMention }: { hasMention: boolean, text: string }) => {\n const { onCommentCreate = noop } = this.props;\n onCommentCreate(text, hasMention);\n this.commentFormSubmitHandler();\n };\n\n /**\n * Creates a task.\n *\n * @param {string} text - Task text\n * @param {Array} assignees - List of assignees\n * @param {number} dueAt - Task's due date\n * @return {void}\n */\n onTaskCreate = ({ text, assignees, dueAt }: { assignees: SelectorItems<>, dueAt: string, text: string }): void => {\n const { onTaskCreate = noop } = this.props;\n onTaskCreate(text, assignees, dueAt);\n this.commentFormSubmitHandler();\n };\n\n /**\n * Invokes version history popup handler.\n *\n * @param {Object} data - Version history data\n * @return {void}\n */\n openVersionHistoryPopup = (data: any): void => {\n const versionInfoHandler = this.props.onVersionHistoryClick || noop;\n versionInfoHandler(data);\n };\n\n render(): React.Node {\n const {\n activeFeedEntryId,\n activeFeedEntryType,\n activityFeedError,\n approverSelectorContacts,\n currentUser,\n feedItems,\n file,\n getApproverWithQuery,\n getAvatarUrl,\n getMentionWithQuery,\n getUserProfileUrl,\n hasReplies,\n isDisabled,\n mentionSelectorContacts,\n contactsLoaded,\n onAnnotationDelete,\n onAnnotationEdit,\n onAnnotationSelect,\n onAnnotationStatusChange,\n onAppActivityDelete,\n onCommentCreate,\n onCommentDelete,\n onCommentUpdate,\n onReplyCreate,\n onReplyDelete,\n onReplyUpdate,\n onShowReplies,\n onTaskAssignmentUpdate,\n onTaskDelete,\n onTaskModalClose,\n onTaskUpdate,\n onTaskView,\n onVersionHistoryClick,\n translations,\n } = this.props;\n const { isInputOpen } = this.state;\n const hasAnnotationCreatePermission = getProp(file, ['permissions', PERMISSION_CAN_CREATE_ANNOTATIONS], false);\n const hasCommentPermission = getProp(file, 'permissions.can_comment', false);\n const showCommentForm = !!(currentUser && hasCommentPermission && onCommentCreate && feedItems);\n\n const isEmpty = this.isEmpty(this.props);\n const isLoading = !this.hasLoaded();\n\n const activeEntry =\n Array.isArray(feedItems) &&\n feedItems.find(({ id, type }) => id === activeFeedEntryId && type === activeFeedEntryType);\n\n const errorMessageByEntryType = {\n annotation: messages.annotationMissingError,\n comment: messages.commentMissingError,\n task: messages.taskMissingError,\n };\n\n const inlineFeedItemErrorMessage = activeFeedEntryType\n ? errorMessageByEntryType[activeFeedEntryType]\n : undefined;\n\n const isInlineFeedItemErrorVisible = !isLoading && activeFeedEntryType && !activeEntry;\n const currentFileVersionId = getProp(file, 'file_version.id');\n\n return (\n // eslint-disable-next-line\n <div className=\"bcs-activity-feed\" data-testid=\"activityfeed\" onKeyDown={this.onKeyDown}>\n <div\n ref={ref => {\n this.feedContainer = ref;\n }}\n className=\"bcs-activity-feed-items-container\"\n >\n {isLoading && (\n <div className=\"bcs-activity-feed-loading-state\">\n <LoadingIndicator />\n </div>\n )}\n\n {isEmpty && !isLoading && (\n <EmptyState\n showAnnotationMessage={hasAnnotationCreatePermission}\n showCommentMessage={showCommentForm}\n />\n )}\n {!isEmpty && !isLoading && (\n <ActiveState\n {...activityFeedError}\n activeFeedEntryId={activeFeedEntryId}\n activeFeedEntryType={activeFeedEntryType}\n activeFeedItemRef={this.activeFeedItemRef}\n approverSelectorContacts={approverSelectorContacts}\n currentFileVersionId={currentFileVersionId}\n currentUser={currentUser}\n getApproverWithQuery={getApproverWithQuery}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n hasReplies={hasReplies}\n isDisabled={isDisabled}\n items={collapseFeedState(feedItems)}\n mentionSelectorContacts={mentionSelectorContacts}\n onAnnotationDelete={onAnnotationDelete}\n onAnnotationEdit={onAnnotationEdit}\n onAnnotationSelect={onAnnotationSelect}\n onAnnotationStatusChange={onAnnotationStatusChange}\n onAppActivityDelete={onAppActivityDelete}\n onCommentDelete={hasCommentPermission ? onCommentDelete : noop}\n onCommentEdit={hasCommentPermission ? onCommentUpdate : noop}\n onReplyCreate={hasCommentPermission ? onReplyCreate : noop}\n onReplyDelete={hasCommentPermission ? onReplyDelete : noop}\n onReplyUpdate={hasCommentPermission ? onReplyUpdate : noop}\n onShowReplies={onShowReplies}\n onTaskAssignmentUpdate={onTaskAssignmentUpdate}\n onTaskDelete={onTaskDelete}\n onTaskEdit={onTaskUpdate}\n onTaskModalClose={onTaskModalClose}\n onTaskView={onTaskView}\n onVersionInfo={onVersionHistoryClick ? this.openVersionHistoryPopup : null}\n translations={translations}\n />\n )}\n {isInlineFeedItemErrorVisible && inlineFeedItemErrorMessage && (\n <InlineError\n title={<FormattedMessage {...messages.feedInlineErrorTitle} />}\n className=\"bcs-feedItemInlineError\"\n >\n <FormattedMessage {...inlineFeedItemErrorMessage} />\n </InlineError>\n )}\n </div>\n\n {showCommentForm ? (\n <CommentForm\n onSubmit={this.resetFeedScroll}\n isDisabled={isDisabled}\n mentionSelectorContacts={mentionSelectorContacts}\n contactsLoaded={contactsLoaded}\n className={classNames('bcs-activity-feed-comment-input', {\n 'bcs-is-disabled': isDisabled,\n })}\n createComment={hasCommentPermission ? this.onCommentCreate : noop}\n getMentionWithQuery={getMentionWithQuery}\n isOpen={isInputOpen}\n // $FlowFixMe\n user={currentUser}\n onCancel={this.commentFormCancelHandler}\n onFocus={this.commentFormFocusHandler}\n getAvatarUrl={getAvatarUrl}\n />\n ) : null}\n </div>\n );\n }\n}\n\nexport default ActivityFeed;\n"],"file":"ActivityFeed.js"}
@@ -0,0 +1,101 @@
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
+
3
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
4
+
5
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
6
+
7
+ function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
8
+
9
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
+
11
+ import * as React from 'react';
12
+ import { FormattedMessage } from 'react-intl';
13
+ import noop from 'lodash/noop';
14
+ import LoadingIndicator from '../../../../components/loading-indicator';
15
+ import PlainButton from '../../../../components/plain-button';
16
+ import ActivityThreadReplies from './ActivityThreadReplies';
17
+ import ActivityThreadReplyForm from './ActivityThreadReplyForm';
18
+ import messages from './messages';
19
+ import './ActivityThread.scss';
20
+
21
+ var ActivityThread = function ActivityThread(_ref) {
22
+ var children = _ref.children,
23
+ currentUser = _ref.currentUser,
24
+ getAvatarUrl = _ref.getAvatarUrl,
25
+ getMentionWithQuery = _ref.getMentionWithQuery,
26
+ getUserProfileUrl = _ref.getUserProfileUrl,
27
+ hasReplies = _ref.hasReplies,
28
+ _ref$isAlwaysExpanded = _ref.isAlwaysExpanded,
29
+ isAlwaysExpanded = _ref$isAlwaysExpanded === void 0 ? false : _ref$isAlwaysExpanded,
30
+ isRepliesLoading = _ref.isRepliesLoading,
31
+ mentionSelectorContacts = _ref.mentionSelectorContacts,
32
+ onReplyCreate = _ref.onReplyCreate,
33
+ _ref$onReplyDelete = _ref.onReplyDelete,
34
+ onReplyDelete = _ref$onReplyDelete === void 0 ? noop : _ref$onReplyDelete,
35
+ _ref$onReplyEdit = _ref.onReplyEdit,
36
+ onReplyEdit = _ref$onReplyEdit === void 0 ? noop : _ref$onReplyEdit,
37
+ _ref$onShowReplies = _ref.onShowReplies,
38
+ onShowReplies = _ref$onShowReplies === void 0 ? noop : _ref$onShowReplies,
39
+ _ref$replies = _ref.replies,
40
+ replies = _ref$replies === void 0 ? [] : _ref$replies,
41
+ _ref$repliesTotalCoun = _ref.repliesTotalCount,
42
+ repliesTotalCount = _ref$repliesTotalCoun === void 0 ? 0 : _ref$repliesTotalCoun,
43
+ translations = _ref.translations;
44
+
45
+ var _React$useState = React.useState(isAlwaysExpanded),
46
+ _React$useState2 = _slicedToArray(_React$useState, 2),
47
+ isExpanded = _React$useState2[0],
48
+ setIsExpanded = _React$useState2[1];
49
+
50
+ var toggleButtonLabel = isExpanded ? messages.hideReplies : messages.showReplies;
51
+ var repliesToLoadCount = Math.max(repliesTotalCount - 1, 0);
52
+
53
+ var toggleReplies = function toggleReplies() {
54
+ if (!isExpanded) {
55
+ onShowReplies();
56
+ }
57
+
58
+ setIsExpanded(function (previousState) {
59
+ return !previousState;
60
+ });
61
+ };
62
+
63
+ if (!hasReplies) {
64
+ return children;
65
+ }
66
+
67
+ return React.createElement("div", {
68
+ className: "bcs-ActivityThread",
69
+ "data-testid": "activity-thread"
70
+ }, children, isRepliesLoading && React.createElement("div", {
71
+ className: "bcs-ActivityThread-loading",
72
+ "data-testid": "activity-thread-loading"
73
+ }, React.createElement(LoadingIndicator, null)), !isAlwaysExpanded && !isRepliesLoading && repliesTotalCount > 1 && React.createElement(PlainButton, {
74
+ className: "bcs-ActivityThread-toggle",
75
+ onClick: toggleReplies,
76
+ type: "button",
77
+ "data-testid": "activity-thread-button"
78
+ }, React.createElement(FormattedMessage, _extends({
79
+ values: {
80
+ repliesToLoadCount: repliesToLoadCount
81
+ }
82
+ }, toggleButtonLabel))), !isRepliesLoading && repliesTotalCount > 0 && replies.length > 0 && React.createElement(ActivityThreadReplies, {
83
+ currentUser: currentUser,
84
+ getAvatarUrl: getAvatarUrl,
85
+ getMentionWithQuery: getMentionWithQuery,
86
+ getUserProfileUrl: getUserProfileUrl,
87
+ isExpanded: isExpanded,
88
+ mentionSelectorContacts: mentionSelectorContacts,
89
+ onDelete: onReplyDelete,
90
+ onEdit: onReplyEdit,
91
+ replies: replies,
92
+ translations: translations
93
+ }), onReplyCreate ? React.createElement(ActivityThreadReplyForm, {
94
+ getMentionWithQuery: getMentionWithQuery,
95
+ mentionSelectorContacts: mentionSelectorContacts,
96
+ onReplyCreate: onReplyCreate
97
+ }) : null);
98
+ };
99
+
100
+ export default ActivityThread;
101
+ //# sourceMappingURL=ActivityThread.js.map
@@ -0,0 +1,126 @@
1
+ // @flow
2
+ import * as React from 'react';
3
+ import { FormattedMessage } from 'react-intl';
4
+ import noop from 'lodash/noop';
5
+
6
+ import LoadingIndicator from '../../../../components/loading-indicator';
7
+ import PlainButton from '../../../../components/plain-button';
8
+ import ActivityThreadReplies from './ActivityThreadReplies';
9
+ import ActivityThreadReplyForm from './ActivityThreadReplyForm';
10
+
11
+ import type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
12
+ import type { Translations } from '../../flowTypes';
13
+ import type { SelectorItems, User } from '../../../../common/types/core';
14
+ import type { BoxCommentPermission, Comment as CommentType, FeedItemStatus } from '../../../../common/types/feed';
15
+
16
+ import messages from './messages';
17
+
18
+ import './ActivityThread.scss';
19
+
20
+ type Props = {
21
+ children: React.Node,
22
+ currentUser?: User,
23
+ getAvatarUrl: GetAvatarUrlCallback,
24
+ getMentionWithQuery?: Function,
25
+ getUserProfileUrl?: GetProfileUrlCallback,
26
+ hasReplies: boolean,
27
+ isAlwaysExpanded?: boolean,
28
+ isRepliesLoading?: boolean,
29
+ mentionSelectorContacts?: SelectorItems<>,
30
+ onReplyCreate?: (text: string) => void,
31
+ onReplyDelete?: ({ id: string, permissions: BoxCommentPermission }) => void,
32
+ onReplyEdit?: (
33
+ id: string,
34
+ text: string,
35
+ status?: FeedItemStatus,
36
+ hasMention?: boolean,
37
+ permissions: BoxCommentPermission,
38
+ onSuccess: ?Function,
39
+ onError: ?Function,
40
+ ) => void,
41
+ onShowReplies?: () => void,
42
+ replies?: Array<CommentType>,
43
+ repliesTotalCount?: number,
44
+ translations?: Translations,
45
+ };
46
+
47
+ const ActivityThread = ({
48
+ children,
49
+ currentUser,
50
+ getAvatarUrl,
51
+ getMentionWithQuery,
52
+ getUserProfileUrl,
53
+ hasReplies,
54
+ isAlwaysExpanded = false,
55
+ isRepliesLoading,
56
+ mentionSelectorContacts,
57
+ onReplyCreate,
58
+ onReplyDelete = noop,
59
+ onReplyEdit = noop,
60
+ onShowReplies = noop,
61
+ replies = [],
62
+ repliesTotalCount = 0,
63
+ translations,
64
+ }: Props) => {
65
+ const [isExpanded, setIsExpanded] = React.useState(isAlwaysExpanded);
66
+
67
+ const toggleButtonLabel = isExpanded ? messages.hideReplies : messages.showReplies;
68
+ const repliesToLoadCount = Math.max(repliesTotalCount - 1, 0);
69
+
70
+ const toggleReplies = () => {
71
+ if (!isExpanded) {
72
+ onShowReplies();
73
+ }
74
+ setIsExpanded(previousState => !previousState);
75
+ };
76
+
77
+ if (!hasReplies) {
78
+ return children;
79
+ }
80
+ return (
81
+ <div className="bcs-ActivityThread" data-testid="activity-thread">
82
+ {children}
83
+
84
+ {isRepliesLoading && (
85
+ <div className="bcs-ActivityThread-loading" data-testid="activity-thread-loading">
86
+ <LoadingIndicator />
87
+ </div>
88
+ )}
89
+ {!isAlwaysExpanded && !isRepliesLoading && repliesTotalCount > 1 && (
90
+ <PlainButton
91
+ className="bcs-ActivityThread-toggle"
92
+ onClick={toggleReplies}
93
+ type="button"
94
+ data-testid="activity-thread-button"
95
+ >
96
+ <FormattedMessage values={{ repliesToLoadCount }} {...toggleButtonLabel} />
97
+ </PlainButton>
98
+ )}
99
+
100
+ {!isRepliesLoading && repliesTotalCount > 0 && replies.length > 0 && (
101
+ <ActivityThreadReplies
102
+ currentUser={currentUser}
103
+ getAvatarUrl={getAvatarUrl}
104
+ getMentionWithQuery={getMentionWithQuery}
105
+ getUserProfileUrl={getUserProfileUrl}
106
+ isExpanded={isExpanded}
107
+ mentionSelectorContacts={mentionSelectorContacts}
108
+ onDelete={onReplyDelete}
109
+ onEdit={onReplyEdit}
110
+ replies={replies}
111
+ translations={translations}
112
+ />
113
+ )}
114
+
115
+ {onReplyCreate ? (
116
+ <ActivityThreadReplyForm
117
+ getMentionWithQuery={getMentionWithQuery}
118
+ mentionSelectorContacts={mentionSelectorContacts}
119
+ onReplyCreate={onReplyCreate}
120
+ />
121
+ ) : null}
122
+ </div>
123
+ );
124
+ };
125
+
126
+ export default ActivityThread;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js"],"names":["React","FormattedMessage","noop","LoadingIndicator","PlainButton","ActivityThreadReplies","ActivityThreadReplyForm","messages","ActivityThread","children","currentUser","getAvatarUrl","getMentionWithQuery","getUserProfileUrl","hasReplies","isAlwaysExpanded","isRepliesLoading","mentionSelectorContacts","onReplyCreate","onReplyDelete","onReplyEdit","onShowReplies","replies","repliesTotalCount","translations","useState","isExpanded","setIsExpanded","toggleButtonLabel","hideReplies","showReplies","repliesToLoadCount","Math","max","toggleReplies","previousState","length"],"mappings":"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","sourcesContent":["// @flow\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport noop from 'lodash/noop';\n\nimport LoadingIndicator from '../../../../components/loading-indicator';\nimport PlainButton from '../../../../components/plain-button';\nimport ActivityThreadReplies from './ActivityThreadReplies';\nimport ActivityThreadReplyForm from './ActivityThreadReplyForm';\n\nimport type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations } from '../../flowTypes';\nimport type { SelectorItems, User } from '../../../../common/types/core';\nimport type { BoxCommentPermission, Comment as CommentType, FeedItemStatus } from '../../../../common/types/feed';\n\nimport messages from './messages';\n\nimport './ActivityThread.scss';\n\ntype Props = {\n children: React.Node,\n currentUser?: User,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n getUserProfileUrl?: GetProfileUrlCallback,\n hasReplies: boolean,\n isAlwaysExpanded?: boolean,\n isRepliesLoading?: boolean,\n mentionSelectorContacts?: SelectorItems<>,\n onReplyCreate?: (text: string) => void,\n onReplyDelete?: ({ id: string, permissions: BoxCommentPermission }) => void,\n onReplyEdit?: (\n id: string,\n text: string,\n status?: FeedItemStatus,\n hasMention?: boolean,\n permissions: BoxCommentPermission,\n onSuccess: ?Function,\n onError: ?Function,\n ) => void,\n onShowReplies?: () => void,\n replies?: Array<CommentType>,\n repliesTotalCount?: number,\n translations?: Translations,\n};\n\nconst ActivityThread = ({\n children,\n currentUser,\n getAvatarUrl,\n getMentionWithQuery,\n getUserProfileUrl,\n hasReplies,\n isAlwaysExpanded = false,\n isRepliesLoading,\n mentionSelectorContacts,\n onReplyCreate,\n onReplyDelete = noop,\n onReplyEdit = noop,\n onShowReplies = noop,\n replies = [],\n repliesTotalCount = 0,\n translations,\n}: Props) => {\n const [isExpanded, setIsExpanded] = React.useState(isAlwaysExpanded);\n\n const toggleButtonLabel = isExpanded ? messages.hideReplies : messages.showReplies;\n const repliesToLoadCount = Math.max(repliesTotalCount - 1, 0);\n\n const toggleReplies = () => {\n if (!isExpanded) {\n onShowReplies();\n }\n setIsExpanded(previousState => !previousState);\n };\n\n if (!hasReplies) {\n return children;\n }\n return (\n <div className=\"bcs-ActivityThread\" data-testid=\"activity-thread\">\n {children}\n\n {isRepliesLoading && (\n <div className=\"bcs-ActivityThread-loading\" data-testid=\"activity-thread-loading\">\n <LoadingIndicator />\n </div>\n )}\n {!isAlwaysExpanded && !isRepliesLoading && repliesTotalCount > 1 && (\n <PlainButton\n className=\"bcs-ActivityThread-toggle\"\n onClick={toggleReplies}\n type=\"button\"\n data-testid=\"activity-thread-button\"\n >\n <FormattedMessage values={{ repliesToLoadCount }} {...toggleButtonLabel} />\n </PlainButton>\n )}\n\n {!isRepliesLoading && repliesTotalCount > 0 && replies.length > 0 && (\n <ActivityThreadReplies\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n isExpanded={isExpanded}\n mentionSelectorContacts={mentionSelectorContacts}\n onDelete={onReplyDelete}\n onEdit={onReplyEdit}\n replies={replies}\n translations={translations}\n />\n )}\n\n {onReplyCreate ? (\n <ActivityThreadReplyForm\n getMentionWithQuery={getMentionWithQuery}\n mentionSelectorContacts={mentionSelectorContacts}\n onReplyCreate={onReplyCreate}\n />\n ) : null}\n </div>\n );\n};\n\nexport default ActivityThread;\n"],"file":"ActivityThread.js"}
@@ -0,0 +1,17 @@
1
+ @import '../../../common/variables';
2
+
3
+ .bcs-ActivityThread-toggle {
4
+ margin-left: $sidebarActivityFeedSpacingHorizontal;
5
+ color: $bdl-box-blue;
6
+ font-weight: bold;
7
+
8
+ &:hover,
9
+ &:active {
10
+ margin-left: $sidebarActivityFeedSpacingHorizontal;
11
+ font-weight: bold;
12
+ }
13
+ }
14
+
15
+ .bcs-ActivityThread-loading {
16
+ padding-bottom: $bdl-grid-unit * 5;
17
+ }
@@ -0,0 +1,69 @@
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
+
3
+ import React from 'react';
4
+ import Comment from '../comment';
5
+ import './ActivityThreadReplies.scss';
6
+
7
+ var ActivityThreadReplies = function ActivityThreadReplies(_ref) {
8
+ var currentUser = _ref.currentUser,
9
+ getAvatarUrl = _ref.getAvatarUrl,
10
+ getMentionWithQuery = _ref.getMentionWithQuery,
11
+ getUserProfileUrl = _ref.getUserProfileUrl,
12
+ isExpanded = _ref.isExpanded,
13
+ mentionSelectorContacts = _ref.mentionSelectorContacts,
14
+ onDelete = _ref.onDelete,
15
+ onEdit = _ref.onEdit,
16
+ replies = _ref.replies,
17
+ translations = _ref.translations;
18
+ var lastReply = replies[replies.length - 1];
19
+
20
+ var getReplyPermissions = function getReplyPermissions(reply) {
21
+ var _reply$permissions = reply.permissions;
22
+ _reply$permissions = _reply$permissions === void 0 ? {} : _reply$permissions;
23
+ var _reply$permissions$ca = _reply$permissions.can_delete,
24
+ can_delete = _reply$permissions$ca === void 0 ? false : _reply$permissions$ca,
25
+ _reply$permissions$ca2 = _reply$permissions.can_edit,
26
+ can_edit = _reply$permissions$ca2 === void 0 ? false : _reply$permissions$ca2,
27
+ _reply$permissions$ca3 = _reply$permissions.can_resolve,
28
+ can_resolve = _reply$permissions$ca3 === void 0 ? false : _reply$permissions$ca3;
29
+ return {
30
+ can_delete: can_delete,
31
+ can_edit: can_edit,
32
+ can_resolve: can_resolve
33
+ };
34
+ };
35
+
36
+ return React.createElement("div", {
37
+ className: "bcs-ActivityThreadReplies",
38
+ "data-testid": "activity-thread-replies"
39
+ }, !isExpanded ? React.createElement(Comment, _extends({
40
+ key: lastReply.type + lastReply.id
41
+ }, lastReply, {
42
+ currentUser: currentUser,
43
+ getAvatarUrl: getAvatarUrl,
44
+ getMentionWithQuery: getMentionWithQuery,
45
+ getUserProfileUrl: getUserProfileUrl,
46
+ mentionSelectorContacts: mentionSelectorContacts,
47
+ onDelete: onDelete,
48
+ onEdit: onEdit,
49
+ permissions: getReplyPermissions(lastReply),
50
+ translations: translations
51
+ })) : replies.map(function (reply) {
52
+ return React.createElement(Comment, _extends({
53
+ key: reply.type + reply.id
54
+ }, reply, {
55
+ currentUser: currentUser,
56
+ getAvatarUrl: getAvatarUrl,
57
+ getMentionWithQuery: getMentionWithQuery,
58
+ getUserProfileUrl: getUserProfileUrl,
59
+ mentionSelectorContacts: mentionSelectorContacts,
60
+ onDelete: onDelete,
61
+ onEdit: onEdit,
62
+ permissions: getReplyPermissions(reply),
63
+ translations: translations
64
+ }));
65
+ }));
66
+ };
67
+
68
+ export default ActivityThreadReplies;
69
+ //# sourceMappingURL=ActivityThreadReplies.js.map