box-ui-elements 16.0.0-beta.9 → 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 (788) 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 +84 -8
  19. package/es/api/Annotations.js.flow +60 -6
  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 -71
  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 -12
  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/line/AlertBubble16.js +31 -0
  372. package/es/icon/line/AlertBubble16.js.flow +29 -0
  373. package/es/icon/line/AlertBubble16.js.map +1 -0
  374. package/es/icon/line/AlertBubble16.stories.js +13 -0
  375. package/es/icon/line/AlertBubble16.stories.js.map +1 -0
  376. package/es/icon/line/AvatarXBadge16.js +45 -0
  377. package/es/icon/line/AvatarXBadge16.js.flow +39 -0
  378. package/es/icon/line/AvatarXBadge16.js.map +1 -0
  379. package/es/icon/line/AvatarXBadge16.stories.js +13 -0
  380. package/es/icon/line/AvatarXBadge16.stories.js.map +1 -0
  381. package/es/icon/line/CoEdit16.js +32 -0
  382. package/es/icon/line/CoEdit16.js.flow +30 -0
  383. package/es/icon/line/CoEdit16.js.map +1 -0
  384. package/es/icon/line/CoEdit16.stories.js +13 -0
  385. package/es/icon/line/CoEdit16.stories.js.map +1 -0
  386. package/es/icon/line/Collaborations16.js +32 -0
  387. package/es/icon/line/Collaborations16.js.flow +30 -0
  388. package/es/icon/line/Collaborations16.js.map +1 -0
  389. package/es/icon/line/Collaborations16.stories.js +13 -0
  390. package/es/icon/line/Collaborations16.stories.js.map +1 -0
  391. package/es/icon/line/CommentBubble16.js +35 -0
  392. package/es/icon/line/CommentBubble16.js.flow +34 -0
  393. package/es/icon/line/CommentBubble16.js.map +1 -0
  394. package/es/icon/line/CommentBubble16.stories.js +13 -0
  395. package/es/icon/line/CommentBubble16.stories.js.map +1 -0
  396. package/es/src/components/accessible-svg/AccessibleSVG.stories.d.ts +7 -0
  397. package/es/src/components/badge/Badge.stories.d.ts +0 -3
  398. package/es/src/components/badge/BetaBadge.stories.d.ts +6 -0
  399. package/es/src/components/badge/TrialBadge.stories.d.ts +6 -0
  400. package/es/src/components/badge/UpgradeBadge.stories.d.ts +6 -0
  401. package/es/src/components/draggable-list/DraggableList.stories.d.ts +3 -3
  402. package/es/src/components/infinite-scroll/InfiniteScroll.d.ts +1 -1
  403. package/es/src/components/tooltip/Tooltip.d.ts +2 -0
  404. package/es/src/elements/common/annotator-context/__tests__/useAnnotatorEvents.test.d.ts +1 -0
  405. package/es/src/elements/common/annotator-context/index.d.ts +1 -0
  406. package/es/src/elements/common/annotator-context/types.d.ts +28 -6
  407. package/es/src/elements/common/annotator-context/useAnnotatorEvents.d.ts +52 -0
  408. package/es/src/elements/common/annotator-context/withAnnotations.d.ts +11 -2
  409. package/es/src/elements/common/annotator-context/withAnnotatorContext.d.ts +6 -2
  410. package/es/src/elements/common/current-user/__tests__/withCurrentUser.test.d.ts +1 -0
  411. package/es/src/elements/common/current-user/index.d.ts +2 -0
  412. package/es/src/elements/common/current-user/withCurrentUser.d.ts +20 -0
  413. package/es/src/elements/content-sidebar/SidebarContentInsights.d.ts +15 -0
  414. package/es/src/elements/content-sidebar/__tests__/SidebarContentInsights.test.d.ts +1 -0
  415. package/es/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.d.ts +55 -0
  416. package/es/src/features/content-insights/CompactCount.d.ts +15 -0
  417. package/es/src/features/content-insights/ContentAnalyticsErrorState.d.ts +7 -0
  418. package/es/src/features/content-insights/ContentInsightsSummary.d.ts +12 -0
  419. package/es/src/features/content-insights/ContentInsightsSummaryGhostState.d.ts +3 -0
  420. package/es/src/features/content-insights/GraphCardGhostState.d.ts +3 -0
  421. package/es/src/features/content-insights/GraphCardPreviewsSummary.d.ts +16 -0
  422. package/es/src/features/content-insights/GraphGhostState.d.ts +3 -0
  423. package/es/src/features/content-insights/HeaderWithCount.d.ts +7 -0
  424. package/es/src/features/content-insights/MetricSummary.d.ts +18 -0
  425. package/es/src/features/content-insights/OpenContentInsightsButton.d.ts +5 -0
  426. package/es/src/features/content-insights/TrendPill.d.ts +15 -0
  427. package/es/src/features/content-insights/__tests__/CompactCount.test.d.ts +1 -0
  428. package/es/src/features/content-insights/__tests__/ContentAnalyticsErrorState.test.d.ts +1 -0
  429. package/es/src/features/content-insights/__tests__/ContentInsightsSummary.test.d.ts +1 -0
  430. package/es/src/features/content-insights/__tests__/GraphCardPreviewsSummary.test.d.ts +1 -0
  431. package/es/src/features/content-insights/__tests__/HeaderWithCount.test.d.ts +1 -0
  432. package/es/src/features/content-insights/__tests__/MetricSummary.test.d.ts +1 -0
  433. package/es/src/features/content-insights/charts/bar/Bar.d.ts +11 -0
  434. package/es/src/features/content-insights/charts/bar/BarChart.d.ts +19 -0
  435. package/es/src/features/content-insights/charts/bar/__tests__/Bar.test.d.ts +1 -0
  436. package/es/src/features/content-insights/charts/bar/__tests__/BarChart.test.d.ts +1 -0
  437. package/es/src/features/content-insights/charts/types.d.ts +2 -0
  438. package/es/src/features/content-insights/constants.d.ts +27 -0
  439. package/es/src/features/content-insights/messages.d.ts +83 -0
  440. package/es/src/features/content-insights/numberUtils.d.ts +3 -0
  441. package/es/src/features/content-insights/types.d.ts +24 -0
  442. package/es/src/icon/fill/AlertBadge16.d.ts +13 -0
  443. package/es/src/icon/fill/AlertBadge16.stories.d.ts +9 -0
  444. package/es/src/icon/fill/InfoBadge16.d.ts +13 -0
  445. package/es/src/icon/fill/InfoBadge16.stories.d.ts +9 -0
  446. package/es/src/icon/line/AlertBubble16.d.ts +13 -0
  447. package/es/src/icon/line/AlertBubble16.stories.d.ts +9 -0
  448. package/es/src/icon/line/AvatarXBadge16.d.ts +13 -0
  449. package/es/src/icon/line/AvatarXBadge16.stories.d.ts +9 -0
  450. package/es/src/icon/line/CoEdit16.d.ts +13 -0
  451. package/es/src/icon/line/CoEdit16.stories.d.ts +9 -0
  452. package/es/src/icon/line/Collaborations16.d.ts +13 -0
  453. package/es/src/icon/line/Collaborations16.stories.d.ts +9 -0
  454. package/es/src/icon/line/CommentBubble16.d.ts +13 -0
  455. package/es/src/icon/line/CommentBubble16.stories.d.ts +9 -0
  456. package/es/src/styles/variables.d.ts +3 -1
  457. package/es/styles/constants/_layout.scss +1 -1
  458. package/es/styles/constants/_media-queries.scss +2 -0
  459. package/es/styles/variables.js +6 -2
  460. package/es/styles/variables.js.flow +4 -2
  461. package/es/styles/variables.js.map +1 -1
  462. package/es/utils/error.js +5 -1
  463. package/es/utils/error.js.flow +5 -1
  464. package/es/utils/error.js.map +1 -1
  465. package/es/utils/fields.js +8 -3
  466. package/es/utils/fields.js.flow +21 -3
  467. package/es/utils/fields.js.map +1 -1
  468. package/es/utils/sorter.js.flow +2 -2
  469. package/es/utils/sorter.js.map +1 -1
  470. package/i18n/bn-IN.js +45 -7
  471. package/i18n/bn-IN.properties +83 -7
  472. package/i18n/da-DK.js +45 -7
  473. package/i18n/da-DK.properties +83 -7
  474. package/i18n/de-DE.js +45 -7
  475. package/i18n/de-DE.properties +83 -7
  476. package/i18n/en-AU.js +45 -7
  477. package/i18n/en-AU.properties +83 -7
  478. package/i18n/en-CA.js +45 -7
  479. package/i18n/en-CA.properties +83 -7
  480. package/i18n/en-GB.js +45 -7
  481. package/i18n/en-GB.properties +83 -7
  482. package/i18n/en-US.js +45 -7
  483. package/i18n/en-US.properties +83 -7
  484. package/i18n/en-x-pseudo.js +891 -854
  485. package/i18n/en-x-pseudo.properties +941 -843
  486. package/i18n/es-419.js +45 -7
  487. package/i18n/es-419.properties +83 -7
  488. package/i18n/es-ES.js +45 -7
  489. package/i18n/es-ES.properties +83 -7
  490. package/i18n/fi-FI.js +45 -7
  491. package/i18n/fi-FI.properties +83 -7
  492. package/i18n/fr-CA.js +45 -7
  493. package/i18n/fr-CA.properties +83 -7
  494. package/i18n/fr-FR.js +45 -7
  495. package/i18n/fr-FR.properties +83 -7
  496. package/i18n/hi-IN.js +45 -7
  497. package/i18n/hi-IN.properties +83 -7
  498. package/i18n/it-IT.js +45 -7
  499. package/i18n/it-IT.properties +83 -7
  500. package/i18n/ja-JP.js +47 -9
  501. package/i18n/ja-JP.properties +85 -9
  502. package/i18n/ko-KR.js +45 -7
  503. package/i18n/ko-KR.properties +83 -7
  504. package/i18n/nb-NO.js +45 -7
  505. package/i18n/nb-NO.properties +83 -7
  506. package/i18n/nl-NL.js +45 -7
  507. package/i18n/nl-NL.properties +83 -7
  508. package/i18n/pl-PL.js +45 -7
  509. package/i18n/pl-PL.properties +83 -7
  510. package/i18n/pt-BR.js +45 -7
  511. package/i18n/pt-BR.properties +83 -7
  512. package/i18n/ru-RU.js +45 -7
  513. package/i18n/ru-RU.properties +83 -7
  514. package/i18n/sv-SE.js +45 -7
  515. package/i18n/sv-SE.properties +83 -7
  516. package/i18n/tr-TR.js +45 -7
  517. package/i18n/tr-TR.properties +83 -7
  518. package/i18n/zh-CN.js +45 -7
  519. package/i18n/zh-CN.properties +83 -7
  520. package/i18n/zh-TW.js +45 -7
  521. package/i18n/zh-TW.properties +83 -7
  522. package/package.json +7 -8
  523. package/src/__mocks__/react-intl.js +4 -0
  524. package/src/api/APIFactory.js +26 -0
  525. package/src/api/Annotations.js +60 -6
  526. package/src/api/Comments.js +5 -4
  527. package/src/api/Feed.js +677 -17
  528. package/src/api/FileCollaborators.js +30 -0
  529. package/src/api/ThreadedComments.js +54 -29
  530. package/src/api/__tests__/Annotations.test.js +77 -3
  531. package/src/api/__tests__/Feed.test.js +698 -85
  532. package/src/api/__tests__/FileCollaborators.test.js +41 -0
  533. package/src/api/__tests__/ThreadedComments.test.js +47 -10
  534. package/src/api/__tests__/utils.test.js +11 -0
  535. package/src/api/fixtures.js +401 -0
  536. package/src/api/messages.js +5 -0
  537. package/src/api/utils.js +30 -0
  538. package/src/common/types/annotations.js +18 -12
  539. package/src/common/types/feed.js +40 -4
  540. package/src/components/accessible-svg/AccessibleSVG.stories.tsx +18 -0
  541. package/src/components/badge/Badge.stories.md +1 -7
  542. package/src/components/badge/Badge.stories.tsx +1 -10
  543. package/src/components/badge/BetaBadge.stories.tsx +9 -0
  544. package/src/components/badge/TrialBadge.stories.tsx +9 -0
  545. package/src/components/badge/UpgradeBadge.stories.tsx +9 -0
  546. package/src/components/breadcrumb/Breadcrumb.js +68 -42
  547. package/src/components/breadcrumb/EllipsisCrumb.js +10 -6
  548. package/src/components/count-badge/CountBadge.stories.tsx +1 -1
  549. package/src/components/draggable-list/DraggableList.stories.tsx +72 -5
  550. package/src/components/dropdown-menu/DropdownMenu.js +11 -0
  551. package/src/components/dropdown-menu/DropdownMenu.scss +3 -3
  552. package/src/components/dropdown-menu/__tests__/DropdownMenu.test.js +38 -0
  553. package/src/components/grid-view/__tests__/__snapshots__/GridViewSlider.test.js.snap +1 -0
  554. package/src/components/infinite-scroll/InfiniteScroll.md +1 -1
  555. package/src/components/infinite-scroll/InfiniteScroll.tsx +5 -2
  556. package/src/components/infinite-scroll/__tests__/InfiniteScroll.test.tsx +115 -127
  557. package/src/components/modal/Modal.scss +5 -1
  558. package/src/components/search-form/SearchForm.js +1 -1
  559. package/src/components/search-form/__tests__/SearchForm.test.js +25 -6
  560. package/src/components/sidebar-toggle-button/__tests__/__snapshots__/SidebarToggleButton.test.js.snap +4 -0
  561. package/src/components/table/__tests__/makeSelectable.test.js +654 -144
  562. package/src/components/table/makeSelectable.js +299 -98
  563. package/src/components/time/__tests__/ReadableTime.test.js +0 -1
  564. package/src/components/tooltip/Tooltip.tsx +5 -2
  565. package/src/components/tooltip/__tests__/Tooltip.test.tsx +10 -0
  566. package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +1 -1
  567. package/src/constants.js +11 -0
  568. package/src/elements/common/annotator-context/__tests__/useAnnotatorEvents.test.tsx +509 -0
  569. package/src/elements/common/annotator-context/__tests__/withAnnotations.test.tsx +275 -12
  570. package/src/elements/common/annotator-context/__tests__/withAnnotatorContext.test.tsx +18 -6
  571. package/src/elements/common/annotator-context/index.js.flow +4 -0
  572. package/src/elements/common/annotator-context/index.ts +1 -0
  573. package/src/elements/common/annotator-context/types.js.flow +77 -35
  574. package/src/elements/common/annotator-context/types.ts +28 -6
  575. package/src/elements/common/annotator-context/useAnnotatorEvents.js.flow +52 -0
  576. package/src/elements/common/annotator-context/useAnnotatorEvents.ts +190 -0
  577. package/src/elements/common/annotator-context/withAnnotations.js.flow +73 -36
  578. package/src/elements/common/annotator-context/withAnnotations.tsx +170 -7
  579. package/src/elements/common/annotator-context/withAnnotatorContext.js.flow +29 -9
  580. package/src/elements/common/annotator-context/withAnnotatorContext.tsx +28 -5
  581. package/src/elements/common/current-user/__tests__/withCurrentUser.test.tsx +108 -0
  582. package/src/elements/common/current-user/index.js.flow +8 -0
  583. package/src/elements/common/current-user/index.ts +2 -0
  584. package/src/elements/common/current-user/withCurrentUser.js.flow +40 -0
  585. package/src/elements/common/current-user/withCurrentUser.tsx +139 -0
  586. package/src/elements/common/flowTypes.js +22 -4
  587. package/src/elements/common/interactionTargets.js +2 -0
  588. package/src/elements/common/logger/Logger.js +1 -1
  589. package/src/elements/common/messages.js +5 -0
  590. package/src/elements/content-explorer/DeleteConfirmationDialog.js +3 -1
  591. package/src/elements/content-explorer/DeleteConfirmationDialog.scss +5 -0
  592. package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +60 -0
  593. package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.md +1 -0
  594. package/src/elements/content-sidebar/ActivitySidebar.js +381 -154
  595. package/src/elements/content-sidebar/ActivitySidebarFilter.js +59 -0
  596. package/src/elements/content-sidebar/ActivitySidebarFilter.scss +4 -0
  597. package/src/elements/content-sidebar/DetailsSidebar.js +32 -4
  598. package/src/elements/content-sidebar/Sidebar.js +6 -1
  599. package/src/elements/content-sidebar/SidebarContentInsights.scss +6 -0
  600. package/src/elements/content-sidebar/SidebarContentInsights.tsx +57 -0
  601. package/src/elements/content-sidebar/SidebarPanels.js +4 -0
  602. package/src/elements/content-sidebar/__tests__/ActivitySidebar.test.js +533 -243
  603. package/src/elements/content-sidebar/__tests__/ActivitySidebarFilter.test.js +54 -0
  604. package/src/elements/content-sidebar/__tests__/DetailsSidebar.test.js +45 -0
  605. package/src/elements/content-sidebar/__tests__/Sidebar.test.js +1 -1
  606. package/src/elements/content-sidebar/__tests__/SidebarContentInsights.test.tsx +56 -0
  607. package/src/elements/content-sidebar/__tests__/SidebarPanels.test.js +4 -3
  608. package/src/elements/content-sidebar/__tests__/__snapshots__/ActivitySidebar.test.js.snap +29 -15
  609. package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarFileProperties.test.js.snap +1 -0
  610. package/src/elements/content-sidebar/__tests__/withSidebarAnnotations.test.js +325 -32
  611. package/src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +122 -24
  612. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +59 -18
  613. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +126 -0
  614. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
  615. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +85 -0
  616. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
  617. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +59 -0
  618. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +22 -0
  619. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActiveState.test.js +19 -5
  620. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityFeed.test.js +22 -16
  621. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThread.test.js +80 -0
  622. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadReplies.test.js +24 -0
  623. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadRepliesForm.test.js +47 -0
  624. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActiveState.test.js.snap +74 -43
  625. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/activityFeedUtils.test.js +8 -8
  626. package/src/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js +2 -2
  627. package/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.ts +56 -0
  628. package/src/elements/content-sidebar/activity-feed/activity-feed/messages.js +20 -0
  629. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +117 -0
  630. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +7 -0
  631. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +105 -0
  632. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +5 -0
  633. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +86 -0
  634. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.scss +3 -0
  635. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThread.test.js +28 -0
  636. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadContent.test.js +89 -0
  637. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadCreate.test.js +103 -0
  638. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useAnnotationAPI.test.js +202 -0
  639. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useRepliesAPI.test.js +99 -0
  640. package/src/elements/content-sidebar/activity-feed/annotation-thread/errors.js +26 -0
  641. package/src/elements/content-sidebar/activity-feed/annotation-thread/index.js +1 -0
  642. package/src/elements/content-sidebar/activity-feed/annotation-thread/messages.js +21 -0
  643. package/src/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +203 -0
  644. package/src/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +121 -0
  645. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +24 -4
  646. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +36 -2
  647. package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivity.test.js +14 -10
  648. package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivityMenu.test.js +35 -1
  649. package/src/elements/content-sidebar/activity-feed/annotations/messages.js +10 -0
  650. package/src/elements/content-sidebar/activity-feed/comment/Comment.js +54 -10
  651. package/src/elements/content-sidebar/activity-feed/comment/__tests__/Comment.test.js +152 -7
  652. package/src/elements/content-sidebar/activity-feed/comment/__tests__/__snapshots__/Comment.test.js.snap +12 -7
  653. package/src/elements/content-sidebar/activity-feed/comment/messages.js +10 -0
  654. package/src/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +3 -1
  655. package/src/elements/content-sidebar/activity-feed/comment-form/__tests__/CommentForm.test.js +11 -0
  656. package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js +34 -4
  657. package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +40 -3
  658. package/src/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js +42 -0
  659. package/src/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js +24 -0
  660. package/src/elements/content-sidebar/activity-feed/common/activity-message/__tests__/ActivityMessage.test.js +48 -1
  661. package/src/elements/content-sidebar/activity-feed/common/activity-message/messages.js +15 -0
  662. package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js +30 -0
  663. package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +6 -0
  664. package/src/elements/content-sidebar/activity-feed/common/activity-status/__tests__/ActivityStatus.test.js +19 -0
  665. package/src/elements/content-sidebar/activity-feed/common/activity-status/index.js +2 -0
  666. package/src/elements/content-sidebar/activity-feed/common/activity-status/messages.js +13 -0
  667. package/src/elements/content-sidebar/activity-feed/common/activity-timestamp/ActivityTimestamp.scss +1 -1
  668. package/src/elements/content-sidebar/activity-feed/task-new/__tests__/Task.test.js +4 -3
  669. package/src/elements/content-sidebar/activity-feed/task-new/__tests__/__snapshots__/Task.test.js.snap +1 -2
  670. package/src/elements/content-sidebar/fixtures.js +185 -0
  671. package/src/elements/content-sidebar/flowTypes.js +9 -25
  672. package/src/elements/content-sidebar/messages.js +10 -0
  673. package/src/elements/content-sidebar/withErrorHandling.js +1 -1
  674. package/src/elements/content-sidebar/withSidebarAnnotations.js +162 -11
  675. package/src/elements/content-uploader/OverallUploadsProgressBar.js +11 -12
  676. package/src/features/classification/Classification.scss +1 -1
  677. package/src/features/classification/security-controls/SecurityControlsItem.scss +1 -0
  678. package/src/features/classification/security-controls/__tests__/__snapshots__/utils.test.js.snap +18 -16
  679. package/src/features/classification/security-controls/__tests__/utils.test.js +13 -5
  680. package/src/features/classification/security-controls/messages.js +10 -0
  681. package/src/features/classification/security-controls/utils.js +8 -12
  682. package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebarLogo.test.js.snap +2 -0
  683. package/src/features/content-explorer/content-explorer/ContentExplorer.js +4 -0
  684. package/src/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
  685. package/src/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +14 -11
  686. package/src/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +4 -1
  687. package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerBreadcrumbs.test.js +2 -2
  688. package/src/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +5 -1
  689. package/src/features/content-explorer/content-explorer-modal/__tests__/__snapshots__/ContentExplorerModal.test.js.snap +1 -0
  690. package/src/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +5 -1
  691. package/src/features/content-explorer/prop-types.js +8 -0
  692. package/src/features/content-insights/CompactCount.tsx +23 -0
  693. package/src/features/content-insights/ContentAnalyticsErrorState.scss +17 -0
  694. package/src/features/content-insights/ContentAnalyticsErrorState.tsx +44 -0
  695. package/src/features/content-insights/ContentInsightsSummary.scss +12 -0
  696. package/src/features/content-insights/ContentInsightsSummary.tsx +45 -0
  697. package/src/features/content-insights/ContentInsightsSummaryGhostState.scss +9 -0
  698. package/src/features/content-insights/ContentInsightsSummaryGhostState.tsx +18 -0
  699. package/src/features/content-insights/GraphCardGhostState.scss +18 -0
  700. package/src/features/content-insights/GraphCardGhostState.tsx +18 -0
  701. package/src/features/content-insights/GraphCardPreviewsSummary.scss +10 -0
  702. package/src/features/content-insights/GraphCardPreviewsSummary.tsx +40 -0
  703. package/src/features/content-insights/GraphGhostState.scss +11 -0
  704. package/src/features/content-insights/GraphGhostState.tsx +17 -0
  705. package/src/features/content-insights/HeaderWithCount.scss +10 -0
  706. package/src/features/content-insights/HeaderWithCount.tsx +24 -0
  707. package/src/features/content-insights/MetricSummary.scss +14 -0
  708. package/src/features/content-insights/MetricSummary.tsx +65 -0
  709. package/src/features/content-insights/OpenContentInsightsButton.tsx +20 -0
  710. package/src/features/content-insights/TrendPill.scss +33 -0
  711. package/src/features/content-insights/TrendPill.tsx +70 -0
  712. package/src/features/content-insights/__tests__/CompactCount.test.tsx +57 -0
  713. package/src/features/content-insights/__tests__/ContentAnalyticsErrorState.test.tsx +33 -0
  714. package/src/features/content-insights/__tests__/ContentInsightsSummary.test.tsx +81 -0
  715. package/src/features/content-insights/__tests__/GraphCardPreviewsSummary.test.tsx +35 -0
  716. package/src/features/content-insights/__tests__/HeaderWithCount.test.tsx +26 -0
  717. package/src/features/content-insights/__tests__/MetricSummary.test.tsx +88 -0
  718. package/src/features/content-insights/_mixins.scss +7 -0
  719. package/src/features/content-insights/_variables.scss +4 -0
  720. package/src/features/content-insights/charts/bar/Bar.scss +27 -0
  721. package/src/features/content-insights/charts/bar/Bar.tsx +48 -0
  722. package/src/features/content-insights/charts/bar/BarChart.scss +56 -0
  723. package/src/features/content-insights/charts/bar/BarChart.tsx +78 -0
  724. package/src/features/content-insights/charts/bar/__tests__/Bar.test.tsx +74 -0
  725. package/src/features/content-insights/charts/bar/__tests__/BarChart.test.tsx +110 -0
  726. package/src/features/content-insights/charts/types.ts +3 -0
  727. package/src/features/content-insights/constants.ts +60 -0
  728. package/src/features/content-insights/messages.ts +90 -0
  729. package/src/features/content-insights/numberUtils.ts +9 -0
  730. package/src/features/content-insights/types.ts +33 -0
  731. package/src/features/item-details/ItemProperties.scss +1 -1
  732. package/src/features/shared-link-settings-modal/SharedLinkSettingsModal.js +4 -2
  733. package/src/features/shared-link-settings-modal/__tests__/SharedLinkSettingsModal.test.js +22 -3
  734. package/src/features/shared-link-settings-modal/__tests__/__snapshots__/SharedLinkSettingsModal.test.js.snap +2 -1
  735. package/src/features/unified-share-modal/ContactRestrictionNotice.js +36 -6
  736. package/src/features/unified-share-modal/EmailForm.js +31 -13
  737. package/src/features/unified-share-modal/UnifiedShareForm.js +25 -8
  738. package/src/features/unified-share-modal/UnifiedShareModal.js +1 -0
  739. package/src/features/unified-share-modal/__tests__/ContactRestrictionNotice.test.js +55 -6
  740. package/src/features/unified-share-modal/__tests__/EmailForm.test.js +131 -24
  741. package/src/features/unified-share-modal/__tests__/UnifiedShareForm.test.js +89 -35
  742. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareForm.test.js.snap +16 -0
  743. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareModal.test.js.snap +17 -0
  744. package/src/features/unified-share-modal/flowTypes.js +4 -2
  745. package/src/features/unified-share-modal/messages.js +14 -8
  746. package/src/features/unified-share-modal/utils/__tests__/hasRestrictedContacts.test.js +24 -10
  747. package/src/features/unified-share-modal/utils/__tests__/isRestrictedContact.test.js +33 -0
  748. package/src/features/unified-share-modal/utils/hasRestrictedContacts.js +10 -3
  749. package/src/features/unified-share-modal/utils/isRestrictedContact.js +21 -0
  750. package/src/features/virtualized-table/__tests__/__snapshots__/VirtualizedTable.test.js.snap +1 -0
  751. package/src/icon/fill/Alert16.js.flow +3 -2
  752. package/src/icon/fill/Alert16.tsx +3 -2
  753. package/src/icon/fill/AlertBadge16.js.flow +29 -0
  754. package/src/icon/fill/AlertBadge16.stories.tsx +13 -0
  755. package/src/icon/fill/AlertBadge16.tsx +27 -0
  756. package/src/icon/fill/Info16.js.flow +1 -1
  757. package/src/icon/fill/Info16.tsx +1 -1
  758. package/src/icon/fill/InfoBadge16.js.flow +28 -0
  759. package/src/icon/fill/InfoBadge16.stories.tsx +13 -0
  760. package/src/icon/fill/InfoBadge16.tsx +26 -0
  761. package/src/icon/line/AlertBubble16.js.flow +29 -0
  762. package/src/icon/line/AlertBubble16.stories.tsx +13 -0
  763. package/src/icon/line/AlertBubble16.tsx +27 -0
  764. package/src/icon/line/AvatarXBadge16.js.flow +39 -0
  765. package/src/icon/line/AvatarXBadge16.stories.tsx +13 -0
  766. package/src/icon/line/AvatarXBadge16.tsx +37 -0
  767. package/src/icon/line/CoEdit16.js.flow +30 -0
  768. package/src/icon/line/CoEdit16.stories.tsx +13 -0
  769. package/src/icon/line/CoEdit16.tsx +28 -0
  770. package/src/icon/line/Collaborations16.js.flow +30 -0
  771. package/src/icon/line/Collaborations16.stories.tsx +13 -0
  772. package/src/icon/line/Collaborations16.tsx +28 -0
  773. package/src/icon/line/CommentBubble16.js.flow +34 -0
  774. package/src/icon/line/CommentBubble16.stories.tsx +13 -0
  775. package/src/icon/line/CommentBubble16.tsx +32 -0
  776. package/src/styles/constants/_layout.scss +1 -1
  777. package/src/styles/constants/_media-queries.scss +2 -0
  778. package/src/styles/variables.js +4 -2
  779. package/src/styles/variables.json +4 -2
  780. package/src/styles/variables.ts +3 -1
  781. package/src/utils/__tests__/fields.test.js +23 -4
  782. package/src/utils/__tests__/sorter.test.js +3 -3
  783. package/src/utils/error.js +5 -1
  784. package/src/utils/fields.js +21 -3
  785. package/src/utils/sorter.js +2 -2
  786. package/es/common/types/threadedComments.js +0 -2
  787. package/es/common/types/threadedComments.js.flow +0 -9
  788. package/src/common/types/threadedComments.js +0 -9
@@ -20,17 +20,14 @@ describe('features/unified-share-modal/UnifiedShareForm', () => {
20
20
  };
21
21
  const defaultContacts = [
22
22
  {
23
- value: 'x@example.com',
24
- email: 'x@example.com',
25
- id: '12345',
26
- isExternalUser: false,
23
+ id: 12345,
27
24
  name: 'X User',
28
25
  type: 'group',
29
26
  },
30
27
  {
31
28
  value: 'y@example.com',
32
29
  email: 'y@example.com',
33
- id: '23456',
30
+ id: 23456,
34
31
  isExternalUser: true,
35
32
  name: 'Y User',
36
33
  type: 'user',
@@ -38,12 +35,13 @@ describe('features/unified-share-modal/UnifiedShareForm', () => {
38
35
  {
39
36
  value: 'z@example.com',
40
37
  email: 'z@example.com',
41
- id: '34567',
38
+ id: 34567,
42
39
  isExternalUser: true,
43
40
  name: 'Z User',
44
41
  type: 'user',
45
42
  },
46
43
  ];
44
+ const defaultUserContacts = defaultContacts.filter(({ type }) => type === 'user');
47
45
  const testPermission = {
48
46
  text: 'Editor',
49
47
  value: 'Editor',
@@ -69,6 +67,7 @@ describe('features/unified-share-modal/UnifiedShareForm', () => {
69
67
  intl={intl}
70
68
  inviteePermissions={[testPermission]}
71
69
  item={defaultItem}
70
+ restrictedGroups={[]}
72
71
  sharedLink={{}}
73
72
  trackingProps={props.trackingProps || defaultTrackingProps}
74
73
  {...props}
@@ -629,39 +628,63 @@ describe('features/unified-share-modal/UnifiedShareForm', () => {
629
628
  });
630
629
  });
631
630
 
632
- describe('componendDidUpdate()', () => {
631
+ describe('componentDidUpdate()', () => {
633
632
  test.each`
634
- isCollabRestrictionJustificationAllowed | restrictedCollabEmails | shouldFetch | actionDescription | conditionDescription
635
- ${false} | ${[]} | ${false} | ${'not fetch'} | ${'collab restrictions do not change'}
636
- ${false} | ${defaultContacts.map(({ email }) => email)} | ${false} | ${'not fetch'} | ${'collab restrictions change but justification is not allowed'}
637
- ${true} | ${['unmatched_email@example.com']} | ${false} | ${'not fetch'} | ${'collab restrictions change but no restricted collabs are present'}
638
- ${true} | ${defaultContacts.map(({ email }) => email)} | ${true} | ${'fetch'} | ${'collab restrictions change, justification is allowed and restricted collabs are present'}
633
+ isCollabRestrictionJustificationAllowed | restrictedCollabEmails | restrictedGroups | conditionDescription
634
+ ${false} | ${[]} | ${[]} | ${'collab restrictions do not change'}
635
+ ${false} | ${defaultUserContacts.map(({ email }) => email)} | ${[]} | ${'collab restrictions change but justification is not allowed'}
636
+ ${true} | ${['unmatched_email@example.com']} | ${[]} | ${'collab restrictions change but no restricted collabs are present'}
639
637
  `(
640
- 'should $actionDescription justification reasons when $conditionDescription',
641
- ({ isCollabRestrictionJustificationAllowed, restrictedCollabEmails, shouldFetch }) => {
638
+ 'should not fetch justification reasons when $conditionDescription',
639
+ ({ isCollabRestrictionJustificationAllowed, restrictedCollabEmails, restrictedGroups }) => {
642
640
  const getJustificationReasons = jest.fn().mockResolvedValue({});
643
641
  const wrapper = getWrapper({
644
642
  getJustificationReasons,
645
643
  isCollabRestrictionJustificationAllowed: false,
646
644
  item: defaultItem,
647
645
  restrictedCollabEmails: [],
646
+ restrictedGroups: [],
648
647
  });
649
648
 
650
649
  wrapper.instance().updateInviteCollabsContacts(defaultContacts);
651
650
  wrapper.setProps({
652
651
  isCollabRestrictionJustificationAllowed,
653
652
  restrictedCollabEmails,
653
+ restrictedGroups,
654
654
  });
655
655
 
656
- if (shouldFetch) {
657
- expect(getJustificationReasons).toHaveBeenCalledTimes(1);
658
- expect(getJustificationReasons).toHaveBeenCalledWith(
659
- defaultItem.typedID,
660
- JUSTIFICATION_CHECKPOINT_EXTERNAL_COLLAB,
661
- );
662
- } else {
663
- expect(getJustificationReasons).toHaveBeenCalledTimes(0);
664
- }
656
+ expect(getJustificationReasons).toHaveBeenCalledTimes(0);
657
+ },
658
+ );
659
+
660
+ test.each`
661
+ isCollabRestrictionJustificationAllowed | restrictedCollabEmails | restrictedGroups | conditionDescription
662
+ ${true} | ${defaultUserContacts.map(({ email }) => email)} | ${[]} | ${'collab restrictions change, justification is allowed and restricted collabs are present'}
663
+ ${true} | ${[]} | ${[12345]} | ${'collab group restrictions change, justification is allowed and restricted collabs are present'}
664
+ `(
665
+ 'should fetch justification reasons when $conditionDescription',
666
+ ({ isCollabRestrictionJustificationAllowed, restrictedCollabEmails, restrictedGroups }) => {
667
+ const getJustificationReasons = jest.fn().mockResolvedValue({});
668
+ const wrapper = getWrapper({
669
+ getJustificationReasons,
670
+ isCollabRestrictionJustificationAllowed: false,
671
+ item: defaultItem,
672
+ restrictedCollabEmails: [],
673
+ restrictedGroups: [],
674
+ });
675
+
676
+ wrapper.instance().updateInviteCollabsContacts(defaultContacts);
677
+ wrapper.setProps({
678
+ isCollabRestrictionJustificationAllowed,
679
+ restrictedCollabEmails,
680
+ restrictedGroups,
681
+ });
682
+
683
+ expect(getJustificationReasons).toHaveBeenCalledTimes(1);
684
+ expect(getJustificationReasons).toHaveBeenCalledWith(
685
+ defaultItem.typedID,
686
+ JUSTIFICATION_CHECKPOINT_EXTERNAL_COLLAB,
687
+ );
665
688
  },
666
689
  );
667
690
  });
@@ -741,37 +764,68 @@ describe('features/unified-share-modal/UnifiedShareForm', () => {
741
764
 
742
765
  test('should call onRemoveAllRestrictedCollabs when update results in all restricted contacts being removed', () => {
743
766
  const onRemoveAllRestrictedCollabs = jest.fn();
744
- const restrictedCollabEmails = ['x@example.com', 'y@example.com'];
767
+ const restrictedCollabEmails = ['y@example.com', 'z@example.com'];
768
+ const contactsMinusOneRestriction = defaultContacts.filter(value => value !== 'y@example.com');
769
+ const contactsMinusAllRestrictions = defaultContacts.filter(value =>
770
+ restrictedCollabEmails.includes(value),
771
+ );
772
+ const wrapper = getWrapper({
773
+ onRemoveAllRestrictedCollabs,
774
+ restrictedCollabEmails,
775
+ });
776
+
777
+ // Adding new contacts, no call expected
778
+ wrapper.instance().updateInviteCollabsContacts(defaultContacts);
779
+ expect(onRemoveAllRestrictedCollabs).toHaveBeenCalledTimes(0);
780
+ // Minus one restricted contact
781
+ wrapper.instance().updateInviteCollabsContacts(contactsMinusOneRestriction);
782
+ expect(onRemoveAllRestrictedCollabs).toHaveBeenCalledTimes(0);
783
+ // Minus all restricted contacts
784
+ wrapper.instance().updateInviteCollabsContacts(contactsMinusAllRestrictions);
785
+ expect(onRemoveAllRestrictedCollabs).toHaveBeenCalledTimes(1);
786
+ });
787
+
788
+ test('should call onRemoveAllRestrictedCollabs when update results in all restricted contacts including groups being removed', () => {
789
+ const onRemoveAllRestrictedCollabs = jest.fn();
790
+ const restrictedCollabEmails = ['y@example.com'];
791
+ const restrictedGroups = ['12345'];
792
+ const contactsMinusOneRestriction = defaultContacts.filter(value => value !== 'y@example.com');
793
+ const contactsMinusAllRestrictions = defaultContacts.filter(
794
+ (id, value) => restrictedGroups.includes(id) || restrictedCollabEmails.includes(value),
795
+ );
745
796
  const wrapper = getWrapper({
746
797
  onRemoveAllRestrictedCollabs,
747
798
  restrictedCollabEmails,
748
799
  });
749
800
 
801
+ // Adding new contacts, no call expected
750
802
  wrapper.instance().updateInviteCollabsContacts(defaultContacts);
751
803
  expect(onRemoveAllRestrictedCollabs).toHaveBeenCalledTimes(0);
752
- // Minus first contact, which is restricted
753
- wrapper.instance().updateInviteCollabsContacts(defaultContacts.slice(1));
804
+ // Minus one restricted contact, group still remains
805
+ wrapper.instance().updateInviteCollabsContacts(contactsMinusOneRestriction);
754
806
  expect(onRemoveAllRestrictedCollabs).toHaveBeenCalledTimes(0);
755
- // Minus two first contacts, which are all the restricted ones
756
- wrapper.instance().updateInviteCollabsContacts(defaultContacts.slice(2));
807
+ // Minus all restricted contacts, including the group
808
+ wrapper.instance().updateInviteCollabsContacts(contactsMinusAllRestrictions);
757
809
  expect(onRemoveAllRestrictedCollabs).toHaveBeenCalledTimes(1);
758
810
  });
759
811
  });
760
812
 
761
813
  describe('shouldRequireCollabJustification()', () => {
762
814
  test.each`
763
- isCollabRestrictionJustificationAllowed | restrictedCollabEmails | expectedResult
764
- ${false} | ${[]} | ${false}
765
- ${true} | ${[]} | ${false}
766
- ${true} | ${[defaultContacts[0].value]} | ${true}
767
- ${true} | ${defaultContacts.map(({ value }) => value)} | ${true}
815
+ isCollabRestrictionJustificationAllowed | restrictedCollabEmails | restrictedGroups | expectedResult
816
+ ${false} | ${[]} | ${[]} | ${false}
817
+ ${true} | ${[]} | ${[]} | ${false}
818
+ ${true} | ${[defaultUserContacts[0].value]} | ${[]} | ${true}
819
+ ${true} | ${defaultUserContacts.map(({ value }) => value)} | ${[]} | ${true}
820
+ ${true} | ${[]} | ${[12345]} | ${true}
768
821
  `(
769
- 'should return $expectedResult when isCollabRestrictionJustificationAllowed is $isCollabRestrictionJustificationAllowed and restrictedCollabEmails is $restrictedCollabEmails',
770
- ({ isCollabRestrictionJustificationAllowed, restrictedCollabEmails, expectedResult }) => {
822
+ 'should return $expectedResult when isCollabRestrictionJustificationAllowed is $isCollabRestrictionJustificationAllowed, restrictedCollabEmails is $restrictedCollabEmails and restrictedGroups is $restrictedGroups',
823
+ ({ isCollabRestrictionJustificationAllowed, restrictedCollabEmails, restrictedGroups, expectedResult }) => {
771
824
  const wrapper = getWrapper({
772
825
  isCollabRestrictionJustificationAllowed,
773
826
  item: defaultItem,
774
827
  restrictedCollabEmails,
828
+ restrictedGroups,
775
829
  });
776
830
 
777
831
  wrapper.instance().updateInviteCollabsContacts(defaultContacts);
@@ -107,6 +107,7 @@ exports[`features/unified-share-modal/UnifiedShareForm closeEmailSharedLinkForm(
107
107
  openInviteCollaboratorsSection={[Function]}
108
108
  recommendedSharingTooltipCalloutName={null}
109
109
  restrictedEmails={Array []}
110
+ restrictedGroups={Array []}
110
111
  selectedContacts={Array []}
111
112
  showEnterEmailsCallout={false}
112
113
  updateSelectedContacts={[Function]}
@@ -306,6 +307,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should not rende
306
307
  openInviteCollaboratorsSection={[Function]}
307
308
  recommendedSharingTooltipCalloutName={null}
308
309
  restrictedEmails={Array []}
310
+ restrictedGroups={Array []}
309
311
  selectedContacts={Array []}
310
312
  showEnterEmailsCallout={false}
311
313
  updateSelectedContacts={[Function]}
@@ -469,6 +471,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should not rende
469
471
  openInviteCollaboratorsSection={[Function]}
470
472
  recommendedSharingTooltipCalloutName={null}
471
473
  restrictedEmails={Array []}
474
+ restrictedGroups={Array []}
472
475
  selectedContacts={Array []}
473
476
  showEnterEmailsCallout={false}
474
477
  updateSelectedContacts={[Function]}
@@ -632,6 +635,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
632
635
  openInviteCollaboratorsSection={[Function]}
633
636
  recommendedSharingTooltipCalloutName={null}
634
637
  restrictedEmails={Array []}
638
+ restrictedGroups={Array []}
635
639
  selectedContacts={Array []}
636
640
  showEnterEmailsCallout={false}
637
641
  updateSelectedContacts={[Function]}
@@ -800,6 +804,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
800
804
  openInviteCollaboratorsSection={[Function]}
801
805
  recommendedSharingTooltipCalloutName={null}
802
806
  restrictedEmails={Array []}
807
+ restrictedGroups={Array []}
803
808
  selectedContacts={Array []}
804
809
  showEnterEmailsCallout={false}
805
810
  updateSelectedContacts={[Function]}
@@ -964,6 +969,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
964
969
  openInviteCollaboratorsSection={[Function]}
965
970
  recommendedSharingTooltipCalloutName={null}
966
971
  restrictedEmails={Array []}
972
+ restrictedGroups={Array []}
967
973
  selectedContacts={Array []}
968
974
  showEnterEmailsCallout={false}
969
975
  updateSelectedContacts={[Function]}
@@ -1129,6 +1135,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
1129
1135
  openInviteCollaboratorsSection={[Function]}
1130
1136
  recommendedSharingTooltipCalloutName={null}
1131
1137
  restrictedEmails={Array []}
1138
+ restrictedGroups={Array []}
1132
1139
  selectedContacts={Array []}
1133
1140
  showEnterEmailsCallout={false}
1134
1141
  updateSelectedContacts={[Function]}
@@ -1264,6 +1271,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
1264
1271
  openInviteCollaboratorsSection={[Function]}
1265
1272
  recommendedSharingTooltipCalloutName={null}
1266
1273
  restrictedEmails={Array []}
1274
+ restrictedGroups={Array []}
1267
1275
  selectedContacts={Array []}
1268
1276
  showEnterEmailsCallout={false}
1269
1277
  updateSelectedContacts={[Function]}
@@ -1429,6 +1437,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
1429
1437
  openInviteCollaboratorsSection={[Function]}
1430
1438
  recommendedSharingTooltipCalloutName={null}
1431
1439
  restrictedEmails={Array []}
1440
+ restrictedGroups={Array []}
1432
1441
  selectedContacts={Array []}
1433
1442
  showEnterEmailsCallout={false}
1434
1443
  updateSelectedContacts={[Function]}
@@ -1594,6 +1603,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
1594
1603
  openInviteCollaboratorsSection={[Function]}
1595
1604
  recommendedSharingTooltipCalloutName={null}
1596
1605
  restrictedEmails={Array []}
1606
+ restrictedGroups={Array []}
1597
1607
  selectedContacts={Array []}
1598
1608
  showEnterEmailsCallout={false}
1599
1609
  updateSelectedContacts={[Function]}
@@ -1760,6 +1770,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
1760
1770
  openInviteCollaboratorsSection={[Function]}
1761
1771
  recommendedSharingTooltipCalloutName={null}
1762
1772
  restrictedEmails={Array []}
1773
+ restrictedGroups={Array []}
1763
1774
  selectedContacts={Array []}
1764
1775
  showEnterEmailsCallout={false}
1765
1776
  updateSelectedContacts={[Function]}
@@ -1935,6 +1946,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
1935
1946
  openInviteCollaboratorsSection={[Function]}
1936
1947
  recommendedSharingTooltipCalloutName={null}
1937
1948
  restrictedEmails={Array []}
1949
+ restrictedGroups={Array []}
1938
1950
  selectedContacts={Array []}
1939
1951
  showEnterEmailsCallout={false}
1940
1952
  updateSelectedContacts={[Function]}
@@ -2099,6 +2111,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
2099
2111
  openInviteCollaboratorsSection={[Function]}
2100
2112
  recommendedSharingTooltipCalloutName={null}
2101
2113
  restrictedEmails={Array []}
2114
+ restrictedGroups={Array []}
2102
2115
  selectedContacts={Array []}
2103
2116
  showEnterEmailsCallout={false}
2104
2117
  updateSelectedContacts={[Function]}
@@ -2267,6 +2280,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
2267
2280
  openInviteCollaboratorsSection={[Function]}
2268
2281
  recommendedSharingTooltipCalloutName={null}
2269
2282
  restrictedEmails={Array []}
2283
+ restrictedGroups={Array []}
2270
2284
  selectedContacts={Array []}
2271
2285
  showEnterEmailsCallout={false}
2272
2286
  updateSelectedContacts={[Function]}
@@ -2433,6 +2447,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
2433
2447
  openInviteCollaboratorsSection={[Function]}
2434
2448
  recommendedSharingTooltipCalloutName={null}
2435
2449
  restrictedEmails={Array []}
2450
+ restrictedGroups={Array []}
2436
2451
  selectedContacts={Array []}
2437
2452
  showEnterEmailsCallout={false}
2438
2453
  submitting={false}
@@ -2599,6 +2614,7 @@ exports[`features/unified-share-modal/UnifiedShareForm render() should render a
2599
2614
  openInviteCollaboratorsSection={[Function]}
2600
2615
  recommendedSharingTooltipCalloutName={null}
2601
2616
  restrictedEmails={Array []}
2617
+ restrictedGroups={Array []}
2602
2618
  selectedContacts={Array []}
2603
2619
  showEnterEmailsCallout={false}
2604
2620
  updateSelectedContacts={[Function]}
@@ -76,6 +76,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should not rend
76
76
  }
77
77
  openConfirmModal={[Function]}
78
78
  restrictedCollabEmails={Array []}
79
+ restrictedGroups={Array []}
79
80
  sharedLink={Object {}}
80
81
  sharedLinkLoaded={false}
81
82
  shouldRenderFTUXTooltip={true}
@@ -171,6 +172,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should not rend
171
172
  }
172
173
  openConfirmModal={[Function]}
173
174
  restrictedCollabEmails={Array []}
175
+ restrictedGroups={Array []}
174
176
  sharedLink={Object {}}
175
177
  sharedLinkLoaded={false}
176
178
  shouldRenderFTUXTooltip={false}
@@ -266,6 +268,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
266
268
  }
267
269
  openConfirmModal={[Function]}
268
270
  restrictedCollabEmails={Array []}
271
+ restrictedGroups={Array []}
269
272
  sharedLink={
270
273
  Object {
271
274
  "url": "https://foo.com",
@@ -364,6 +367,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
364
367
  }
365
368
  openConfirmModal={[Function]}
366
369
  restrictedCollabEmails={Array []}
370
+ restrictedGroups={Array []}
367
371
  sharedLink={Object {}}
368
372
  sharedLinkLoaded={false}
369
373
  shouldRenderFTUXTooltip={true}
@@ -459,6 +463,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
459
463
  }
460
464
  openConfirmModal={[Function]}
461
465
  restrictedCollabEmails={Array []}
466
+ restrictedGroups={Array []}
462
467
  sharedLink={Object {}}
463
468
  sharedLinkLoaded={false}
464
469
  shouldRenderFTUXTooltip={false}
@@ -553,6 +558,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
553
558
  }
554
559
  openConfirmModal={[Function]}
555
560
  restrictedCollabEmails={Array []}
561
+ restrictedGroups={Array []}
556
562
  sharedLink={Object {}}
557
563
  sharedLinkLoaded={false}
558
564
  shouldRenderFTUXTooltip={false}
@@ -648,6 +654,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
648
654
  }
649
655
  openConfirmModal={[Function]}
650
656
  restrictedCollabEmails={Array []}
657
+ restrictedGroups={Array []}
651
658
  sharedLink={Object {}}
652
659
  sharedLinkLoaded={false}
653
660
  shouldRenderFTUXTooltip={false}
@@ -743,6 +750,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
743
750
  }
744
751
  openConfirmModal={[Function]}
745
752
  restrictedCollabEmails={Array []}
753
+ restrictedGroups={Array []}
746
754
  sharedLink={Object {}}
747
755
  sharedLinkLoaded={false}
748
756
  shouldRenderFTUXTooltip={false}
@@ -838,6 +846,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
838
846
  }
839
847
  openConfirmModal={[Function]}
840
848
  restrictedCollabEmails={Array []}
849
+ restrictedGroups={Array []}
841
850
  sharedLink={Object {}}
842
851
  sharedLinkLoaded={false}
843
852
  shouldRenderFTUXTooltip={false}
@@ -933,6 +942,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
933
942
  }
934
943
  openConfirmModal={[Function]}
935
944
  restrictedCollabEmails={Array []}
945
+ restrictedGroups={Array []}
936
946
  sharedLink={Object {}}
937
947
  sharedLinkLoaded={false}
938
948
  shouldRenderFTUXTooltip={false}
@@ -1036,6 +1046,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
1036
1046
  }
1037
1047
  openConfirmModal={[Function]}
1038
1048
  restrictedCollabEmails={Array []}
1049
+ restrictedGroups={Array []}
1039
1050
  sharedLink={Object {}}
1040
1051
  sharedLinkLoaded={false}
1041
1052
  shouldRenderFTUXTooltip={false}
@@ -1131,6 +1142,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
1131
1142
  }
1132
1143
  openConfirmModal={[Function]}
1133
1144
  restrictedCollabEmails={Array []}
1145
+ restrictedGroups={Array []}
1134
1146
  sharedLink={Object {}}
1135
1147
  sharedLinkLoaded={false}
1136
1148
  shouldRenderFTUXTooltip={false}
@@ -1230,6 +1242,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
1230
1242
  }
1231
1243
  openConfirmModal={[Function]}
1232
1244
  restrictedCollabEmails={Array []}
1245
+ restrictedGroups={Array []}
1233
1246
  sharedLink={
1234
1247
  Object {
1235
1248
  "url": "https://foo.com",
@@ -1328,6 +1341,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
1328
1341
  }
1329
1342
  openConfirmModal={[Function]}
1330
1343
  restrictedCollabEmails={Array []}
1344
+ restrictedGroups={Array []}
1331
1345
  sharedLink={Object {}}
1332
1346
  sharedLinkLoaded={false}
1333
1347
  shouldRenderFTUXTooltip={false}
@@ -1420,6 +1434,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
1420
1434
  }
1421
1435
  openConfirmModal={[Function]}
1422
1436
  restrictedCollabEmails={Array []}
1437
+ restrictedGroups={Array []}
1423
1438
  sharedLink={Object {}}
1424
1439
  sharedLinkLoaded={false}
1425
1440
  shouldRenderFTUXTooltip={false}
@@ -1516,6 +1531,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
1516
1531
  }
1517
1532
  openConfirmModal={[Function]}
1518
1533
  restrictedCollabEmails={Array []}
1534
+ restrictedGroups={Array []}
1519
1535
  sendInvitesError={
1520
1536
  <span>
1521
1537
  Some Error
@@ -1616,6 +1632,7 @@ exports[`features/unified-share-modal/UnifiedShareModal render() should render a
1616
1632
  }
1617
1633
  openConfirmModal={[Function]}
1618
1634
  restrictedCollabEmails={Array []}
1635
+ restrictedGroups={Array []}
1619
1636
  sharedLink={Object {}}
1620
1637
  sharedLinkLoaded={false}
1621
1638
  shouldRenderFTUXTooltip={false}
@@ -246,7 +246,7 @@ export type CollabRestrictionType =
246
246
  | typeof constants.COLLAB_RESTRICTION_TYPE_ACCESS_POLICY
247
247
  | typeof constants.COLLAB_RESTRICTION_TYPE_INFORMATION_BARRIER;
248
248
 
249
- type ExternalCollabRestrictionsTypes = {
249
+ type CollabRestrictionsTypes = {
250
250
  /** The type of restriction that applies to restrictedCollabEmails */
251
251
  collabRestrictionType?: CollabRestrictionType,
252
252
  /** Function that fetches the array of justification reason options to display on the justification select field */
@@ -260,6 +260,8 @@ type ExternalCollabRestrictionsTypes = {
260
260
  onRemoveAllRestrictedCollabs?: () => void,
261
261
  /** An array of all the collab email addresses that have been determined to be restricted by a security policy. */
262
262
  restrictedCollabEmails: Array<string>,
263
+ /** An array of all the group ids that have been determined to be restricted by a security policy. */
264
+ restrictedGroups: Array<number>,
263
265
  };
264
266
 
265
267
  // Prop types used in the shared link section of the Unified Share Form
@@ -326,7 +328,7 @@ export type USMConfig = {
326
328
  // Prop types shared by both the Unified Share Modal and the Unified Share Form
327
329
  type BaseUnifiedShareProps = CollaboratorAvatarsTypes &
328
330
  EmailFormTypes &
329
- ExternalCollabRestrictionsTypes &
331
+ CollabRestrictionsTypes &
330
332
  InviteSectionTypes &
331
333
  SharedLinkSectionTypes & {
332
334
  /** Inline message */
@@ -458,27 +458,27 @@ const messages = defineMessages({
458
458
  id: 'boxui.unifiedShare.recommendedSharingTooltipCalloutText',
459
459
  },
460
460
 
461
- // External collab restrictions and business justifications
461
+ // Information Barrier restrictions, external collab restrictions and business justifications
462
462
  justificationSelectPlaceholder: {
463
463
  defaultMessage: 'Select Justification',
464
464
  description: 'The placeholder text of the select field that allows selecting a business justification reason',
465
465
  id: 'boxui.unifiedShare.justificationSelectPlaceholder',
466
466
  },
467
467
  justificationRequiredError: {
468
- defaultMessage: 'Select a justification or remove people to continue',
468
+ defaultMessage: 'Select a justification or remove to continue',
469
469
  description:
470
470
  'The error message that is displayed when a user tries to send invitations to external collaborators, but a business justification is required before proceeding',
471
471
  id: 'boxui.unifiedShare.justificationRequiredError',
472
472
  },
473
473
  restrictedContactsError: {
474
- defaultMessage: 'Remove people to continue',
474
+ defaultMessage: 'Remove to continue',
475
475
  description:
476
476
  'The error message that is displayed when a user tries to send invitations to external collaborators, but restricted contacts need to be removed before proceeding',
477
477
  id: 'boxui.unifiedShare.restrictedContactsError',
478
478
  },
479
479
  justifiableContactRestrictionNotice: {
480
480
  defaultMessage:
481
- 'This content requires a business justification to invite {count, plural, one {{count} person} other {{count} people}}. Please select a business justification below.',
481
+ 'This content requires a business justification for {count, plural, one {{count} invitation} other {{count} invitations}}. Please select a business justification below.',
482
482
  description:
483
483
  'Text for the notice that is displayed when there are collaboration restrictions that apply to one or more of the selected contacts and business justifications are allowed for bypassing restrictions',
484
484
  id: 'boxui.unifiedShare.justifiableContactRestrictionNotice',
@@ -491,14 +491,14 @@ const messages = defineMessages({
491
491
  id: 'boxui.unifiedShare.justifiableContactRestrictionNoticeSingular',
492
492
  },
493
493
  justifiableContactRestrictionRemoveButtonLabel: {
494
- defaultMessage: 'Alternatively, remove {count, plural, one {the person} other {{count} people}} and continue',
494
+ defaultMessage: 'Alternatively, remove to continue',
495
495
  description:
496
496
  'Label for the button that removes restricted contacts on the contact restriction notice when business justifications are allowed for bypassing restrictions',
497
497
  id: 'boxui.unifiedShare.justifiableContactRestrictionRemoveButtonLabel',
498
498
  },
499
499
  contactRestrictionNotice: {
500
500
  defaultMessage:
501
- 'Invitations cannot be sent to {count, plural, one {{count} person} other {{count} people}} because external collaboration is restricted due to the applied security policy.',
501
+ '{count, plural, one {{count} invitation} other {{count} invitations}} cannot be sent because external collaboration is restricted due to the applied security policy.',
502
502
  description:
503
503
  'Text for the notice that is displayed when there are collaboration restrictions that apply to one or more of the selected contacts',
504
504
  id: 'boxui.unifiedShare.contactRestrictionNotice',
@@ -512,7 +512,7 @@ const messages = defineMessages({
512
512
  },
513
513
  contactRestrictionNoticeInformationBarrier: {
514
514
  defaultMessage:
515
- 'Invitations cannot be sent to {count, plural, one {{count} person} other {{count} people}} due to a security policy.',
515
+ '{count, plural, one {{count} invitation} other {{count} invitations}} cannot be sent due to a security policy.',
516
516
  description:
517
517
  'Text for the notice that is displayed when there are Information Barrier collaboration restrictions that apply to one or more of the selected contacts',
518
518
  id: 'boxui.unifiedShare.contactRestrictionNoticeInformationBarrier',
@@ -523,8 +523,14 @@ const messages = defineMessages({
523
523
  'Text for the notice that is displayed when there are Information Barrier collaboration restrictions that apply to only one of the selected contacts',
524
524
  id: 'boxui.unifiedShare.contactRestrictionNoticeInformationBarrierSingular',
525
525
  },
526
+ contactRestrictionNoticeInformationBarrierSingularGroup: {
527
+ defaultMessage: 'Invitations cannot be sent to "{groupName}" due to a security policy.',
528
+ description:
529
+ 'Text for the notice that is displayed when there are Information Barrier collaboration restrictions that apply to only one of the selected contacts, which is a group',
530
+ id: 'boxui.unifiedShare.contactRestrictionNoticeInformationBarrierSingularGroup',
531
+ },
526
532
  contactRestrictionRemoveButtonLabel: {
527
- defaultMessage: 'Remove {count, plural, one {the person} other {{count} people}} and continue',
533
+ defaultMessage: 'Remove to continue',
528
534
  description: 'Label for the button that removes restricted contacts on the contact restriction notice',
529
535
  id: 'boxui.unifiedShare.contactRestrictionRemoveButtonLabel',
530
536
  },
@@ -3,22 +3,20 @@ import hasRestrictedContacts from '../hasRestrictedContacts';
3
3
  describe('features/unified-share-modal/utils/hasRestrictedContacts', () => {
4
4
  const contacts = [
5
5
  {
6
- email: 'x@example.com',
7
- id: '12345',
6
+ id: 12345,
8
7
  text: 'X User',
9
8
  type: 'group',
10
- value: 'x@example.com',
11
9
  },
12
10
  {
13
11
  email: 'y@example.com',
14
- id: '23456',
12
+ id: 23456,
15
13
  text: 'Y User',
16
14
  type: 'user',
17
15
  value: 'y@example.com',
18
16
  },
19
17
  {
20
18
  email: 'z@example.com',
21
- id: '34567',
19
+ id: 34567,
22
20
  text: 'Z User',
23
21
  type: 'user',
24
22
  value: 'z@example.com',
@@ -29,19 +27,35 @@ describe('features/unified-share-modal/utils/hasRestrictedContacts', () => {
29
27
  let restrictedEmails;
30
28
 
31
29
  restrictedEmails = [];
32
- expect(hasRestrictedContacts(contacts, restrictedEmails)).toBe(false);
30
+ expect(hasRestrictedContacts(contacts, restrictedEmails, [])).toBe(false);
33
31
 
34
32
  restrictedEmails = ['a@example.com', 'b@example.com'];
35
- expect(hasRestrictedContacts(contacts, restrictedEmails)).toBe(false);
33
+ expect(hasRestrictedContacts(contacts, restrictedEmails, [])).toBe(false);
34
+ });
35
+
36
+ test('should return false when no restricted groups are found within contacts', () => {
37
+ let restrictedGroups = [];
38
+
39
+ restrictedGroups = [];
40
+ expect(hasRestrictedContacts(contacts, [], restrictedGroups)).toBe(false);
41
+
42
+ restrictedGroups = [1111];
43
+ expect(hasRestrictedContacts(contacts, [], restrictedGroups)).toBe(false);
36
44
  });
37
45
 
38
46
  test('should return true when at least one restricted email is found within contacts', () => {
39
47
  let restrictedEmails;
40
48
 
41
49
  restrictedEmails = ['z@example.com'];
42
- expect(hasRestrictedContacts(contacts, restrictedEmails)).toBe(true);
50
+ expect(hasRestrictedContacts(contacts, restrictedEmails, [])).toBe(true);
51
+
52
+ restrictedEmails = ['y@example.com', 'z@example.com'];
53
+ expect(hasRestrictedContacts(contacts, restrictedEmails, [])).toBe(true);
54
+ });
55
+
56
+ test('should return true when at least one restricted group is found within contacts', () => {
57
+ const restrictedGroups = [12345];
43
58
 
44
- restrictedEmails = ['x@example.com', 'y@example.com', 'z@example.com'];
45
- expect(hasRestrictedContacts(contacts, restrictedEmails)).toBe(true);
59
+ expect(hasRestrictedContacts(contacts, [], restrictedGroups)).toBe(true);
46
60
  });
47
61
  });