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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (798) hide show
  1. package/dist/explorer.css +1 -1
  2. package/dist/explorer.js +19 -58
  3. package/dist/openwith.css +1 -1
  4. package/dist/openwith.js +10 -10
  5. package/dist/picker.css +1 -1
  6. package/dist/picker.js +12 -12
  7. package/dist/preview.css +1 -1
  8. package/dist/preview.js +17 -56
  9. package/dist/sharing.css +1 -1
  10. package/dist/sharing.js +34 -34
  11. package/dist/sidebar.css +1 -1
  12. package/dist/sidebar.js +17 -56
  13. package/dist/uploader.css +1 -1
  14. package/dist/uploader.js +12 -12
  15. package/es/api/APIFactory.js +27 -0
  16. package/es/api/APIFactory.js.flow +26 -0
  17. package/es/api/APIFactory.js.map +1 -1
  18. package/es/api/Annotations.js +180 -27
  19. package/es/api/Annotations.js.flow +150 -14
  20. package/es/api/Annotations.js.map +1 -1
  21. package/es/api/Comments.js +2 -2
  22. package/es/api/Comments.js.flow +5 -4
  23. package/es/api/Comments.js.map +1 -1
  24. package/es/api/Feed.js +578 -69
  25. package/es/api/Feed.js.flow +677 -17
  26. package/es/api/Feed.js.map +1 -1
  27. package/es/api/FileCollaborators.js +29 -0
  28. package/es/api/FileCollaborators.js.flow +30 -0
  29. package/es/api/FileCollaborators.js.map +1 -1
  30. package/es/api/ThreadedComments.js +64 -27
  31. package/es/api/ThreadedComments.js.flow +54 -29
  32. package/es/api/ThreadedComments.js.map +1 -1
  33. package/es/api/fixtures.js +381 -0
  34. package/es/api/fixtures.js.flow +401 -0
  35. package/es/api/fixtures.js.map +1 -0
  36. package/es/api/messages.js +4 -0
  37. package/es/api/messages.js.flow +5 -0
  38. package/es/api/messages.js.map +1 -1
  39. package/es/api/utils.js +33 -0
  40. package/es/api/utils.js.flow +30 -0
  41. package/es/api/utils.js.map +1 -0
  42. package/es/common/types/annotations.js.flow +18 -10
  43. package/es/common/types/feed.js +1 -1
  44. package/es/common/types/feed.js.flow +40 -4
  45. package/es/common/types/feed.js.map +1 -1
  46. package/es/components/accessible-svg/AccessibleSVG.stories.js +20 -0
  47. package/es/components/accessible-svg/AccessibleSVG.stories.js.map +1 -0
  48. package/es/components/badge/Badge.stories.js +1 -13
  49. package/es/components/badge/Badge.stories.js.map +1 -1
  50. package/es/components/badge/BetaBadge.stories.js +10 -0
  51. package/es/components/badge/BetaBadge.stories.js.map +1 -0
  52. package/es/components/badge/TrialBadge.stories.js +10 -0
  53. package/es/components/badge/TrialBadge.stories.js.map +1 -0
  54. package/es/components/badge/UpgradeBadge.stories.js +10 -0
  55. package/es/components/badge/UpgradeBadge.stories.js.map +1 -0
  56. package/es/components/breadcrumb/Breadcrumb.js +48 -35
  57. package/es/components/breadcrumb/Breadcrumb.js.flow +68 -42
  58. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  59. package/es/components/breadcrumb/EllipsisCrumb.js +5 -3
  60. package/es/components/breadcrumb/EllipsisCrumb.js.flow +10 -6
  61. package/es/components/breadcrumb/EllipsisCrumb.js.map +1 -1
  62. package/es/components/count-badge/CountBadge.stories.js +1 -1
  63. package/es/components/count-badge/CountBadge.stories.js.map +1 -1
  64. package/es/components/draggable-list/DraggableList.stories.js +119 -5
  65. package/es/components/draggable-list/DraggableList.stories.js.map +1 -1
  66. package/es/components/dropdown-menu/DropdownMenu.js +9 -0
  67. package/es/components/dropdown-menu/DropdownMenu.js.flow +11 -0
  68. package/es/components/dropdown-menu/DropdownMenu.js.map +1 -1
  69. package/es/components/dropdown-menu/DropdownMenu.scss +3 -3
  70. package/es/components/infinite-scroll/InfiniteScroll.js +4 -2
  71. package/es/components/infinite-scroll/InfiniteScroll.js.map +1 -1
  72. package/es/components/modal/Modal.scss +5 -1
  73. package/es/components/search-form/SearchForm.js +1 -1
  74. package/es/components/search-form/SearchForm.js.flow +1 -1
  75. package/es/components/search-form/SearchForm.js.map +1 -1
  76. package/es/components/table/makeSelectable.js +304 -97
  77. package/es/components/table/makeSelectable.js.flow +299 -98
  78. package/es/components/table/makeSelectable.js.map +1 -1
  79. package/es/components/tooltip/Tooltip.js +3 -2
  80. package/es/components/tooltip/Tooltip.js.map +1 -1
  81. package/es/constants.js +11 -0
  82. package/es/constants.js.flow +11 -0
  83. package/es/constants.js.map +1 -1
  84. package/es/elements/common/annotator-context/index.js +1 -0
  85. package/es/elements/common/annotator-context/index.js.flow +4 -0
  86. package/es/elements/common/annotator-context/index.js.map +1 -1
  87. package/es/elements/common/annotator-context/types.js +12 -0
  88. package/es/elements/common/annotator-context/types.js.flow +77 -35
  89. package/es/elements/common/annotator-context/types.js.map +1 -1
  90. package/es/elements/common/annotator-context/useAnnotatorEvents.js +205 -0
  91. package/es/elements/common/annotator-context/useAnnotatorEvents.js.flow +52 -0
  92. package/es/elements/common/annotator-context/useAnnotatorEvents.js.map +1 -0
  93. package/es/elements/common/annotator-context/withAnnotations.js +224 -5
  94. package/es/elements/common/annotator-context/withAnnotations.js.flow +73 -36
  95. package/es/elements/common/annotator-context/withAnnotations.js.map +1 -1
  96. package/es/elements/common/annotator-context/withAnnotatorContext.js +12 -4
  97. package/es/elements/common/annotator-context/withAnnotatorContext.js.flow +29 -9
  98. package/es/elements/common/annotator-context/withAnnotatorContext.js.map +1 -1
  99. package/es/elements/common/current-user/index.js +3 -0
  100. package/es/elements/common/current-user/index.js.flow +8 -0
  101. package/es/elements/common/current-user/index.js.map +1 -0
  102. package/es/elements/common/current-user/withCurrentUser.js +139 -0
  103. package/es/elements/common/current-user/withCurrentUser.js.flow +40 -0
  104. package/es/elements/common/current-user/withCurrentUser.js.map +1 -0
  105. package/es/elements/common/flowTypes.js.flow +22 -4
  106. package/es/elements/common/flowTypes.js.map +1 -1
  107. package/es/elements/common/interactionTargets.js +2 -0
  108. package/es/elements/common/interactionTargets.js.flow +2 -0
  109. package/es/elements/common/interactionTargets.js.map +1 -1
  110. package/es/elements/common/logger/Logger.js +1 -1
  111. package/es/elements/common/logger/Logger.js.flow +1 -1
  112. package/es/elements/common/logger/Logger.js.map +1 -1
  113. package/es/elements/common/messages.js +4 -0
  114. package/es/elements/common/messages.js.flow +5 -0
  115. package/es/elements/common/messages.js.map +1 -1
  116. package/es/elements/content-explorer/DeleteConfirmationDialog.js +2 -1
  117. package/es/elements/content-explorer/DeleteConfirmationDialog.js.flow +3 -1
  118. package/es/elements/content-explorer/DeleteConfirmationDialog.js.map +1 -1
  119. package/es/elements/content-explorer/DeleteConfirmationDialog.scss +5 -0
  120. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +58 -0
  121. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.flow +60 -0
  122. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.map +1 -0
  123. package/es/elements/content-sidebar/ActivitySidebar.js +323 -197
  124. package/es/elements/content-sidebar/ActivitySidebar.js.flow +381 -154
  125. package/es/elements/content-sidebar/ActivitySidebar.js.map +1 -1
  126. package/es/elements/content-sidebar/ActivitySidebarFilter.js +52 -0
  127. package/es/elements/content-sidebar/ActivitySidebarFilter.js.flow +59 -0
  128. package/es/elements/content-sidebar/ActivitySidebarFilter.js.map +1 -0
  129. package/es/elements/content-sidebar/ActivitySidebarFilter.scss +4 -0
  130. package/es/elements/content-sidebar/DetailsSidebar.js +50 -25
  131. package/es/elements/content-sidebar/DetailsSidebar.js.flow +32 -4
  132. package/es/elements/content-sidebar/DetailsSidebar.js.map +1 -1
  133. package/es/elements/content-sidebar/Sidebar.js +4 -1
  134. package/es/elements/content-sidebar/Sidebar.js.flow +6 -1
  135. package/es/elements/content-sidebar/Sidebar.js.map +1 -1
  136. package/es/elements/content-sidebar/SidebarContentInsights.js +45 -0
  137. package/es/elements/content-sidebar/SidebarContentInsights.js.map +1 -0
  138. package/es/elements/content-sidebar/SidebarContentInsights.scss +6 -0
  139. package/es/elements/content-sidebar/SidebarPanels.js +2 -0
  140. package/es/elements/content-sidebar/SidebarPanels.js.flow +4 -0
  141. package/es/elements/content-sidebar/SidebarPanels.js.map +1 -1
  142. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +91 -10
  143. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.flow +122 -24
  144. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.map +1 -1
  145. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +27 -15
  146. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.flow +59 -18
  147. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.map +1 -1
  148. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +101 -0
  149. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.flow +126 -0
  150. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.map +1 -0
  151. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
  152. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +69 -0
  153. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.flow +85 -0
  154. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.map +1 -0
  155. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
  156. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +62 -0
  157. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.flow +59 -0
  158. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.map +1 -0
  159. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +22 -0
  160. package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js +2 -2
  161. package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js.flow +2 -2
  162. package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js.map +1 -1
  163. package/es/elements/content-sidebar/activity-feed/activity-feed/fixtures.js +55 -0
  164. package/es/elements/content-sidebar/activity-feed/activity-feed/fixtures.js.map +1 -0
  165. package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js +16 -0
  166. package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.flow +20 -0
  167. package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.map +1 -1
  168. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +121 -0
  169. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.flow +117 -0
  170. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.map +1 -0
  171. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +7 -0
  172. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +75 -0
  173. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.flow +105 -0
  174. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.map +1 -0
  175. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +5 -0
  176. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +77 -0
  177. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.flow +86 -0
  178. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.map +1 -0
  179. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.scss +3 -0
  180. package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js +11 -0
  181. package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.flow +26 -0
  182. package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.map +1 -0
  183. package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js +2 -0
  184. package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js.flow +1 -0
  185. package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js.map +1 -0
  186. package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js +17 -0
  187. package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js.flow +21 -0
  188. package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js.map +1 -0
  189. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +180 -0
  190. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.flow +203 -0
  191. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.map +1 -0
  192. package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +124 -0
  193. package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.flow +121 -0
  194. package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.map +1 -0
  195. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +19 -5
  196. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.flow +24 -4
  197. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.map +1 -1
  198. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +25 -4
  199. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.flow +36 -2
  200. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.map +1 -1
  201. package/es/elements/content-sidebar/activity-feed/annotations/messages.js +8 -0
  202. package/es/elements/content-sidebar/activity-feed/annotations/messages.js.flow +10 -0
  203. package/es/elements/content-sidebar/activity-feed/annotations/messages.js.map +1 -1
  204. package/es/elements/content-sidebar/activity-feed/comment/Comment.js +61 -28
  205. package/es/elements/content-sidebar/activity-feed/comment/Comment.js.flow +54 -10
  206. package/es/elements/content-sidebar/activity-feed/comment/Comment.js.map +1 -1
  207. package/es/elements/content-sidebar/activity-feed/comment/messages.js +8 -0
  208. package/es/elements/content-sidebar/activity-feed/comment/messages.js.flow +10 -0
  209. package/es/elements/content-sidebar/activity-feed/comment/messages.js.map +1 -1
  210. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +4 -2
  211. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.flow +3 -1
  212. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.map +1 -1
  213. package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js +16 -5
  214. package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js.flow +34 -4
  215. package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js.map +1 -1
  216. package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +40 -3
  217. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js +49 -0
  218. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js.flow +42 -0
  219. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js.map +1 -0
  220. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js +21 -0
  221. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js.flow +24 -0
  222. package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js.map +1 -0
  223. package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js +12 -0
  224. package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.flow +15 -0
  225. package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.map +1 -1
  226. package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js +24 -0
  227. package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js.flow +30 -0
  228. package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js.map +1 -0
  229. package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +6 -0
  230. package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js +2 -0
  231. package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js.flow +2 -0
  232. package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js.map +1 -0
  233. package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js +9 -0
  234. package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js.flow +13 -0
  235. package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js.map +1 -0
  236. package/es/elements/content-sidebar/activity-feed/common/activity-timestamp/ActivityTimestamp.scss +1 -1
  237. package/es/elements/content-sidebar/fixtures.js +181 -0
  238. package/es/elements/content-sidebar/fixtures.js.flow +185 -0
  239. package/es/elements/content-sidebar/fixtures.js.map +1 -0
  240. package/es/elements/content-sidebar/flowTypes.js.flow +9 -25
  241. package/es/elements/content-sidebar/messages.js +8 -0
  242. package/es/elements/content-sidebar/messages.js.flow +10 -0
  243. package/es/elements/content-sidebar/messages.js.map +1 -1
  244. package/es/elements/content-sidebar/withErrorHandling.js.flow +1 -1
  245. package/es/elements/content-sidebar/withErrorHandling.js.map +1 -1
  246. package/es/elements/content-sidebar/withSidebarAnnotations.js +215 -30
  247. package/es/elements/content-sidebar/withSidebarAnnotations.js.flow +162 -11
  248. package/es/elements/content-sidebar/withSidebarAnnotations.js.map +1 -1
  249. package/es/elements/content-uploader/OverallUploadsProgressBar.js +10 -8
  250. package/es/elements/content-uploader/OverallUploadsProgressBar.js.flow +11 -12
  251. package/es/elements/content-uploader/OverallUploadsProgressBar.js.map +1 -1
  252. package/es/features/classification/Classification.scss +1 -1
  253. package/es/features/classification/security-controls/SecurityControlsItem.scss +1 -0
  254. package/es/features/classification/security-controls/messages.js +8 -0
  255. package/es/features/classification/security-controls/messages.js.flow +10 -0
  256. package/es/features/classification/security-controls/messages.js.map +1 -1
  257. package/es/features/classification/security-controls/utils.js +4 -7
  258. package/es/features/classification/security-controls/utils.js.flow +8 -12
  259. package/es/features/classification/security-controls/utils.js.map +1 -1
  260. package/es/features/content-explorer/content-explorer/ContentExplorer.js +6 -1
  261. package/es/features/content-explorer/content-explorer/ContentExplorer.js.flow +4 -0
  262. package/es/features/content-explorer/content-explorer/ContentExplorer.js.map +1 -1
  263. package/es/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
  264. package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +15 -9
  265. package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js.flow +14 -11
  266. package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js.map +1 -1
  267. package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +4 -1
  268. package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.flow +4 -1
  269. package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.map +1 -1
  270. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +6 -3
  271. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.flow +5 -1
  272. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.map +1 -1
  273. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +6 -1
  274. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.flow +5 -1
  275. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.map +1 -1
  276. package/es/features/content-explorer/prop-types.js +7 -1
  277. package/es/features/content-explorer/prop-types.js.flow +8 -0
  278. package/es/features/content-explorer/prop-types.js.map +1 -1
  279. package/es/features/content-insights/CompactCount.js +24 -0
  280. package/es/features/content-insights/CompactCount.js.map +1 -0
  281. package/es/features/content-insights/ContentAnalyticsErrorState.js +35 -0
  282. package/es/features/content-insights/ContentAnalyticsErrorState.js.map +1 -0
  283. package/es/features/content-insights/ContentAnalyticsErrorState.scss +17 -0
  284. package/es/features/content-insights/ContentInsightsSummary.js +42 -0
  285. package/es/features/content-insights/ContentInsightsSummary.js.map +1 -0
  286. package/es/features/content-insights/ContentInsightsSummary.scss +12 -0
  287. package/es/features/content-insights/ContentInsightsSummaryGhostState.js +19 -0
  288. package/es/features/content-insights/ContentInsightsSummaryGhostState.js.map +1 -0
  289. package/es/features/content-insights/ContentInsightsSummaryGhostState.scss +9 -0
  290. package/es/features/content-insights/GraphCardGhostState.js +25 -0
  291. package/es/features/content-insights/GraphCardGhostState.js.map +1 -0
  292. package/es/features/content-insights/GraphCardGhostState.scss +18 -0
  293. package/es/features/content-insights/GraphCardPreviewsSummary.js +30 -0
  294. package/es/features/content-insights/GraphCardPreviewsSummary.js.map +1 -0
  295. package/es/features/content-insights/GraphCardPreviewsSummary.scss +10 -0
  296. package/es/features/content-insights/GraphGhostState.js +21 -0
  297. package/es/features/content-insights/GraphGhostState.js.map +1 -0
  298. package/es/features/content-insights/GraphGhostState.scss +11 -0
  299. package/es/features/content-insights/HeaderWithCount.js +23 -0
  300. package/es/features/content-insights/HeaderWithCount.js.map +1 -0
  301. package/es/features/content-insights/HeaderWithCount.scss +10 -0
  302. package/es/features/content-insights/MetricSummary.js +85 -0
  303. package/es/features/content-insights/MetricSummary.js.map +1 -0
  304. package/es/features/content-insights/MetricSummary.scss +14 -0
  305. package/es/features/content-insights/OpenContentInsightsButton.js +16 -0
  306. package/es/features/content-insights/OpenContentInsightsButton.js.map +1 -0
  307. package/es/features/content-insights/TrendPill.js +61 -0
  308. package/es/features/content-insights/TrendPill.js.map +1 -0
  309. package/es/features/content-insights/TrendPill.scss +33 -0
  310. package/es/features/content-insights/_mixins.scss +7 -0
  311. package/es/features/content-insights/_variables.scss +4 -0
  312. package/es/features/content-insights/charts/bar/Bar.js +57 -0
  313. package/es/features/content-insights/charts/bar/Bar.js.map +1 -0
  314. package/es/features/content-insights/charts/bar/Bar.scss +27 -0
  315. package/es/features/content-insights/charts/bar/BarChart.js +70 -0
  316. package/es/features/content-insights/charts/bar/BarChart.js.map +1 -0
  317. package/es/features/content-insights/charts/bar/BarChart.scss +56 -0
  318. package/es/features/content-insights/charts/types.js +2 -0
  319. package/es/{common/types/threadedComments.js.map → features/content-insights/charts/types.js.map} +1 -1
  320. package/es/features/content-insights/constants.js +54 -0
  321. package/es/features/content-insights/constants.js.map +1 -0
  322. package/es/features/content-insights/messages.js +69 -0
  323. package/es/features/content-insights/messages.js.map +1 -0
  324. package/es/features/content-insights/numberUtils.js +10 -0
  325. package/es/features/content-insights/numberUtils.js.map +1 -0
  326. package/es/features/content-insights/types.js +2 -0
  327. package/es/features/content-insights/types.js.map +1 -0
  328. package/es/features/item-details/ItemProperties.scss +1 -1
  329. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js +5 -3
  330. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.flow +4 -2
  331. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.map +1 -1
  332. package/es/features/unified-share-modal/ContactRestrictionNotice.js +34 -8
  333. package/es/features/unified-share-modal/ContactRestrictionNotice.js.flow +36 -6
  334. package/es/features/unified-share-modal/ContactRestrictionNotice.js.map +1 -1
  335. package/es/features/unified-share-modal/EmailForm.js +59 -47
  336. package/es/features/unified-share-modal/EmailForm.js.flow +31 -13
  337. package/es/features/unified-share-modal/EmailForm.js.map +1 -1
  338. package/es/features/unified-share-modal/UnifiedShareForm.js +112 -103
  339. package/es/features/unified-share-modal/UnifiedShareForm.js.flow +25 -8
  340. package/es/features/unified-share-modal/UnifiedShareForm.js.map +1 -1
  341. package/es/features/unified-share-modal/UnifiedShareModal.js +1 -0
  342. package/es/features/unified-share-modal/UnifiedShareModal.js.flow +1 -0
  343. package/es/features/unified-share-modal/UnifiedShareModal.js.map +1 -1
  344. package/es/features/unified-share-modal/flowTypes.js.flow +4 -2
  345. package/es/features/unified-share-modal/flowTypes.js.map +1 -1
  346. package/es/features/unified-share-modal/messages.js +12 -8
  347. package/es/features/unified-share-modal/messages.js.flow +14 -8
  348. package/es/features/unified-share-modal/messages.js.map +1 -1
  349. package/es/features/unified-share-modal/utils/hasRestrictedContacts.js +9 -4
  350. package/es/features/unified-share-modal/utils/hasRestrictedContacts.js.flow +10 -3
  351. package/es/features/unified-share-modal/utils/hasRestrictedContacts.js.map +1 -1
  352. package/es/features/unified-share-modal/utils/isRestrictedContact.js +15 -0
  353. package/es/features/unified-share-modal/utils/isRestrictedContact.js.flow +21 -0
  354. package/es/features/unified-share-modal/utils/isRestrictedContact.js.map +1 -0
  355. package/es/icon/fill/Alert16.js +3 -2
  356. package/es/icon/fill/Alert16.js.flow +3 -2
  357. package/es/icon/fill/Alert16.js.map +1 -1
  358. package/es/icon/fill/AlertBadge16.js +31 -0
  359. package/es/icon/fill/AlertBadge16.js.flow +29 -0
  360. package/es/icon/fill/AlertBadge16.js.map +1 -0
  361. package/es/icon/fill/AlertBadge16.stories.js +13 -0
  362. package/es/icon/fill/AlertBadge16.stories.js.map +1 -0
  363. package/es/icon/fill/Info16.js +2 -2
  364. package/es/icon/fill/Info16.js.flow +1 -1
  365. package/es/icon/fill/Info16.js.map +1 -1
  366. package/es/icon/fill/InfoBadge16.js +30 -0
  367. package/es/icon/fill/InfoBadge16.js.flow +28 -0
  368. package/es/icon/fill/InfoBadge16.js.map +1 -0
  369. package/es/icon/fill/InfoBadge16.stories.js +13 -0
  370. package/es/icon/fill/InfoBadge16.stories.js.map +1 -0
  371. package/es/icon/fill/UserSettings16.js +38 -0
  372. package/es/icon/fill/UserSettings16.js.flow +38 -0
  373. package/es/icon/fill/UserSettings16.js.map +1 -0
  374. package/es/icon/fill/UserSettings16.stories.js +13 -0
  375. package/es/icon/fill/UserSettings16.stories.js.map +1 -0
  376. package/es/icon/line/AlertBubble16.js +31 -0
  377. package/es/icon/line/AlertBubble16.js.flow +29 -0
  378. package/es/icon/line/AlertBubble16.js.map +1 -0
  379. package/es/icon/line/AlertBubble16.stories.js +13 -0
  380. package/es/icon/line/AlertBubble16.stories.js.map +1 -0
  381. package/es/icon/line/AvatarXBadge16.js +45 -0
  382. package/es/icon/line/AvatarXBadge16.js.flow +39 -0
  383. package/es/icon/line/AvatarXBadge16.js.map +1 -0
  384. package/es/icon/line/AvatarXBadge16.stories.js +13 -0
  385. package/es/icon/line/AvatarXBadge16.stories.js.map +1 -0
  386. package/es/icon/line/CoEdit16.js +32 -0
  387. package/es/icon/line/CoEdit16.js.flow +30 -0
  388. package/es/icon/line/CoEdit16.js.map +1 -0
  389. package/es/icon/line/CoEdit16.stories.js +13 -0
  390. package/es/icon/line/CoEdit16.stories.js.map +1 -0
  391. package/es/icon/line/Collaborations16.js +32 -0
  392. package/es/icon/line/Collaborations16.js.flow +30 -0
  393. package/es/icon/line/Collaborations16.js.map +1 -0
  394. package/es/icon/line/Collaborations16.stories.js +13 -0
  395. package/es/icon/line/Collaborations16.stories.js.map +1 -0
  396. package/es/icon/line/CommentBubble16.js +35 -0
  397. package/es/icon/line/CommentBubble16.js.flow +34 -0
  398. package/es/icon/line/CommentBubble16.js.map +1 -0
  399. package/es/icon/line/CommentBubble16.stories.js +13 -0
  400. package/es/icon/line/CommentBubble16.stories.js.map +1 -0
  401. package/es/src/components/accessible-svg/AccessibleSVG.stories.d.ts +7 -0
  402. package/es/src/components/badge/Badge.stories.d.ts +0 -3
  403. package/es/src/components/badge/BetaBadge.stories.d.ts +6 -0
  404. package/es/src/components/badge/TrialBadge.stories.d.ts +6 -0
  405. package/es/src/components/badge/UpgradeBadge.stories.d.ts +6 -0
  406. package/es/src/components/draggable-list/DraggableList.stories.d.ts +3 -3
  407. package/es/src/components/infinite-scroll/InfiniteScroll.d.ts +1 -1
  408. package/es/src/components/tooltip/Tooltip.d.ts +2 -0
  409. package/es/src/elements/common/annotator-context/__tests__/useAnnotatorEvents.test.d.ts +1 -0
  410. package/es/src/elements/common/annotator-context/index.d.ts +1 -0
  411. package/es/src/elements/common/annotator-context/types.d.ts +28 -6
  412. package/es/src/elements/common/annotator-context/useAnnotatorEvents.d.ts +52 -0
  413. package/es/src/elements/common/annotator-context/withAnnotations.d.ts +11 -2
  414. package/es/src/elements/common/annotator-context/withAnnotatorContext.d.ts +6 -2
  415. package/es/src/elements/common/current-user/__tests__/withCurrentUser.test.d.ts +1 -0
  416. package/es/src/elements/common/current-user/index.d.ts +2 -0
  417. package/es/src/elements/common/current-user/withCurrentUser.d.ts +20 -0
  418. package/es/src/elements/content-sidebar/SidebarContentInsights.d.ts +15 -0
  419. package/es/src/elements/content-sidebar/__tests__/SidebarContentInsights.test.d.ts +1 -0
  420. package/es/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.d.ts +55 -0
  421. package/es/src/features/content-insights/CompactCount.d.ts +15 -0
  422. package/es/src/features/content-insights/ContentAnalyticsErrorState.d.ts +7 -0
  423. package/es/src/features/content-insights/ContentInsightsSummary.d.ts +12 -0
  424. package/es/src/features/content-insights/ContentInsightsSummaryGhostState.d.ts +3 -0
  425. package/es/src/features/content-insights/GraphCardGhostState.d.ts +3 -0
  426. package/es/src/features/content-insights/GraphCardPreviewsSummary.d.ts +16 -0
  427. package/es/src/features/content-insights/GraphGhostState.d.ts +3 -0
  428. package/es/src/features/content-insights/HeaderWithCount.d.ts +7 -0
  429. package/es/src/features/content-insights/MetricSummary.d.ts +18 -0
  430. package/es/src/features/content-insights/OpenContentInsightsButton.d.ts +5 -0
  431. package/es/src/features/content-insights/TrendPill.d.ts +15 -0
  432. package/es/src/features/content-insights/__tests__/CompactCount.test.d.ts +1 -0
  433. package/es/src/features/content-insights/__tests__/ContentAnalyticsErrorState.test.d.ts +1 -0
  434. package/es/src/features/content-insights/__tests__/ContentInsightsSummary.test.d.ts +1 -0
  435. package/es/src/features/content-insights/__tests__/GraphCardPreviewsSummary.test.d.ts +1 -0
  436. package/es/src/features/content-insights/__tests__/HeaderWithCount.test.d.ts +1 -0
  437. package/es/src/features/content-insights/__tests__/MetricSummary.test.d.ts +1 -0
  438. package/es/src/features/content-insights/charts/bar/Bar.d.ts +11 -0
  439. package/es/src/features/content-insights/charts/bar/BarChart.d.ts +19 -0
  440. package/es/src/features/content-insights/charts/bar/__tests__/Bar.test.d.ts +1 -0
  441. package/es/src/features/content-insights/charts/bar/__tests__/BarChart.test.d.ts +1 -0
  442. package/es/src/features/content-insights/charts/types.d.ts +2 -0
  443. package/es/src/features/content-insights/constants.d.ts +27 -0
  444. package/es/src/features/content-insights/messages.d.ts +83 -0
  445. package/es/src/features/content-insights/numberUtils.d.ts +3 -0
  446. package/es/src/features/content-insights/types.d.ts +24 -0
  447. package/es/src/icon/fill/AlertBadge16.d.ts +13 -0
  448. package/es/src/icon/fill/AlertBadge16.stories.d.ts +9 -0
  449. package/es/src/icon/fill/InfoBadge16.d.ts +13 -0
  450. package/es/src/icon/fill/InfoBadge16.stories.d.ts +9 -0
  451. package/es/src/icon/fill/UserSettings16.d.ts +13 -0
  452. package/es/src/icon/fill/UserSettings16.stories.d.ts +9 -0
  453. package/es/src/icon/line/AlertBubble16.d.ts +13 -0
  454. package/es/src/icon/line/AlertBubble16.stories.d.ts +9 -0
  455. package/es/src/icon/line/AvatarXBadge16.d.ts +13 -0
  456. package/es/src/icon/line/AvatarXBadge16.stories.d.ts +9 -0
  457. package/es/src/icon/line/CoEdit16.d.ts +13 -0
  458. package/es/src/icon/line/CoEdit16.stories.d.ts +9 -0
  459. package/es/src/icon/line/Collaborations16.d.ts +13 -0
  460. package/es/src/icon/line/Collaborations16.stories.d.ts +9 -0
  461. package/es/src/icon/line/CommentBubble16.d.ts +13 -0
  462. package/es/src/icon/line/CommentBubble16.stories.d.ts +9 -0
  463. package/es/src/styles/variables.d.ts +3 -1
  464. package/es/styles/constants/_layout.scss +1 -1
  465. package/es/styles/constants/_media-queries.scss +2 -0
  466. package/es/styles/variables.js +6 -2
  467. package/es/styles/variables.js.flow +4 -2
  468. package/es/styles/variables.js.map +1 -1
  469. package/es/utils/error.js +5 -1
  470. package/es/utils/error.js.flow +5 -1
  471. package/es/utils/error.js.map +1 -1
  472. package/es/utils/fields.js +8 -3
  473. package/es/utils/fields.js.flow +21 -3
  474. package/es/utils/fields.js.map +1 -1
  475. package/es/utils/sorter.js.flow +2 -2
  476. package/es/utils/sorter.js.map +1 -1
  477. package/i18n/bn-IN.js +45 -7
  478. package/i18n/bn-IN.properties +83 -7
  479. package/i18n/da-DK.js +45 -7
  480. package/i18n/da-DK.properties +83 -7
  481. package/i18n/de-DE.js +45 -7
  482. package/i18n/de-DE.properties +83 -7
  483. package/i18n/en-AU.js +45 -7
  484. package/i18n/en-AU.properties +83 -7
  485. package/i18n/en-CA.js +45 -7
  486. package/i18n/en-CA.properties +83 -7
  487. package/i18n/en-GB.js +45 -7
  488. package/i18n/en-GB.properties +83 -7
  489. package/i18n/en-US.js +45 -7
  490. package/i18n/en-US.properties +83 -7
  491. package/i18n/en-x-pseudo.js +891 -854
  492. package/i18n/en-x-pseudo.properties +941 -843
  493. package/i18n/es-419.js +45 -7
  494. package/i18n/es-419.properties +83 -7
  495. package/i18n/es-ES.js +45 -7
  496. package/i18n/es-ES.properties +83 -7
  497. package/i18n/fi-FI.js +45 -7
  498. package/i18n/fi-FI.properties +83 -7
  499. package/i18n/fr-CA.js +45 -7
  500. package/i18n/fr-CA.properties +83 -7
  501. package/i18n/fr-FR.js +45 -7
  502. package/i18n/fr-FR.properties +83 -7
  503. package/i18n/hi-IN.js +45 -7
  504. package/i18n/hi-IN.properties +83 -7
  505. package/i18n/it-IT.js +45 -7
  506. package/i18n/it-IT.properties +83 -7
  507. package/i18n/ja-JP.js +47 -9
  508. package/i18n/ja-JP.properties +85 -9
  509. package/i18n/ko-KR.js +45 -7
  510. package/i18n/ko-KR.properties +83 -7
  511. package/i18n/nb-NO.js +45 -7
  512. package/i18n/nb-NO.properties +83 -7
  513. package/i18n/nl-NL.js +45 -7
  514. package/i18n/nl-NL.properties +83 -7
  515. package/i18n/pl-PL.js +45 -7
  516. package/i18n/pl-PL.properties +83 -7
  517. package/i18n/pt-BR.js +45 -7
  518. package/i18n/pt-BR.properties +83 -7
  519. package/i18n/ru-RU.js +45 -7
  520. package/i18n/ru-RU.properties +83 -7
  521. package/i18n/sv-SE.js +45 -7
  522. package/i18n/sv-SE.properties +83 -7
  523. package/i18n/tr-TR.js +45 -7
  524. package/i18n/tr-TR.properties +83 -7
  525. package/i18n/zh-CN.js +45 -7
  526. package/i18n/zh-CN.properties +83 -7
  527. package/i18n/zh-TW.js +45 -7
  528. package/i18n/zh-TW.properties +83 -7
  529. package/package.json +7 -8
  530. package/src/__mocks__/react-intl.js +4 -0
  531. package/src/api/APIFactory.js +26 -0
  532. package/src/api/Annotations.js +150 -14
  533. package/src/api/Comments.js +5 -4
  534. package/src/api/Feed.js +677 -17
  535. package/src/api/FileCollaborators.js +30 -0
  536. package/src/api/ThreadedComments.js +54 -29
  537. package/src/api/__tests__/Annotations.test.js +217 -11
  538. package/src/api/__tests__/Feed.test.js +699 -86
  539. package/src/api/__tests__/FileCollaborators.test.js +41 -0
  540. package/src/api/__tests__/ThreadedComments.test.js +47 -10
  541. package/src/api/__tests__/utils.test.js +11 -0
  542. package/src/api/fixtures.js +401 -0
  543. package/src/api/messages.js +5 -0
  544. package/src/api/utils.js +30 -0
  545. package/src/common/types/annotations.js +18 -10
  546. package/src/common/types/feed.js +40 -4
  547. package/src/components/accessible-svg/AccessibleSVG.stories.tsx +18 -0
  548. package/src/components/badge/Badge.stories.md +1 -7
  549. package/src/components/badge/Badge.stories.tsx +1 -10
  550. package/src/components/badge/BetaBadge.stories.tsx +9 -0
  551. package/src/components/badge/TrialBadge.stories.tsx +9 -0
  552. package/src/components/badge/UpgradeBadge.stories.tsx +9 -0
  553. package/src/components/breadcrumb/Breadcrumb.js +68 -42
  554. package/src/components/breadcrumb/EllipsisCrumb.js +10 -6
  555. package/src/components/count-badge/CountBadge.stories.tsx +1 -1
  556. package/src/components/draggable-list/DraggableList.stories.tsx +72 -5
  557. package/src/components/dropdown-menu/DropdownMenu.js +11 -0
  558. package/src/components/dropdown-menu/DropdownMenu.scss +3 -3
  559. package/src/components/dropdown-menu/__tests__/DropdownMenu.test.js +38 -0
  560. package/src/components/grid-view/__tests__/__snapshots__/GridViewSlider.test.js.snap +1 -0
  561. package/src/components/infinite-scroll/InfiniteScroll.md +1 -1
  562. package/src/components/infinite-scroll/InfiniteScroll.tsx +5 -2
  563. package/src/components/infinite-scroll/__tests__/InfiniteScroll.test.tsx +115 -127
  564. package/src/components/modal/Modal.scss +5 -1
  565. package/src/components/search-form/SearchForm.js +1 -1
  566. package/src/components/search-form/__tests__/SearchForm.test.js +25 -6
  567. package/src/components/sidebar-toggle-button/__tests__/__snapshots__/SidebarToggleButton.test.js.snap +4 -0
  568. package/src/components/table/__tests__/makeSelectable.test.js +654 -144
  569. package/src/components/table/makeSelectable.js +299 -98
  570. package/src/components/time/__tests__/ReadableTime.test.js +0 -1
  571. package/src/components/tooltip/Tooltip.tsx +5 -2
  572. package/src/components/tooltip/__tests__/Tooltip.test.tsx +10 -0
  573. package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +1 -1
  574. package/src/constants.js +11 -0
  575. package/src/elements/common/annotator-context/__tests__/useAnnotatorEvents.test.tsx +509 -0
  576. package/src/elements/common/annotator-context/__tests__/withAnnotations.test.tsx +275 -12
  577. package/src/elements/common/annotator-context/__tests__/withAnnotatorContext.test.tsx +18 -6
  578. package/src/elements/common/annotator-context/index.js.flow +4 -0
  579. package/src/elements/common/annotator-context/index.ts +1 -0
  580. package/src/elements/common/annotator-context/types.js.flow +77 -35
  581. package/src/elements/common/annotator-context/types.ts +28 -6
  582. package/src/elements/common/annotator-context/useAnnotatorEvents.js.flow +52 -0
  583. package/src/elements/common/annotator-context/useAnnotatorEvents.ts +190 -0
  584. package/src/elements/common/annotator-context/withAnnotations.js.flow +73 -36
  585. package/src/elements/common/annotator-context/withAnnotations.tsx +170 -7
  586. package/src/elements/common/annotator-context/withAnnotatorContext.js.flow +29 -9
  587. package/src/elements/common/annotator-context/withAnnotatorContext.tsx +28 -5
  588. package/src/elements/common/current-user/__tests__/withCurrentUser.test.tsx +108 -0
  589. package/src/elements/common/current-user/index.js.flow +8 -0
  590. package/src/elements/common/current-user/index.ts +2 -0
  591. package/src/elements/common/current-user/withCurrentUser.js.flow +40 -0
  592. package/src/elements/common/current-user/withCurrentUser.tsx +139 -0
  593. package/src/elements/common/flowTypes.js +22 -4
  594. package/src/elements/common/interactionTargets.js +2 -0
  595. package/src/elements/common/logger/Logger.js +1 -1
  596. package/src/elements/common/messages.js +5 -0
  597. package/src/elements/content-explorer/DeleteConfirmationDialog.js +3 -1
  598. package/src/elements/content-explorer/DeleteConfirmationDialog.scss +5 -0
  599. package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +60 -0
  600. package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.md +1 -0
  601. package/src/elements/content-sidebar/ActivitySidebar.js +381 -154
  602. package/src/elements/content-sidebar/ActivitySidebarFilter.js +59 -0
  603. package/src/elements/content-sidebar/ActivitySidebarFilter.scss +4 -0
  604. package/src/elements/content-sidebar/DetailsSidebar.js +32 -4
  605. package/src/elements/content-sidebar/Sidebar.js +6 -1
  606. package/src/elements/content-sidebar/SidebarContentInsights.scss +6 -0
  607. package/src/elements/content-sidebar/SidebarContentInsights.tsx +57 -0
  608. package/src/elements/content-sidebar/SidebarPanels.js +4 -0
  609. package/src/elements/content-sidebar/__tests__/ActivitySidebar.test.js +533 -243
  610. package/src/elements/content-sidebar/__tests__/ActivitySidebarFilter.test.js +54 -0
  611. package/src/elements/content-sidebar/__tests__/DetailsSidebar.test.js +45 -0
  612. package/src/elements/content-sidebar/__tests__/Sidebar.test.js +1 -1
  613. package/src/elements/content-sidebar/__tests__/SidebarContentInsights.test.tsx +56 -0
  614. package/src/elements/content-sidebar/__tests__/SidebarPanels.test.js +4 -3
  615. package/src/elements/content-sidebar/__tests__/__snapshots__/ActivitySidebar.test.js.snap +29 -15
  616. package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarFileProperties.test.js.snap +1 -0
  617. package/src/elements/content-sidebar/__tests__/withSidebarAnnotations.test.js +325 -32
  618. package/src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +122 -24
  619. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +59 -18
  620. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +126 -0
  621. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
  622. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +85 -0
  623. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
  624. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +59 -0
  625. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +22 -0
  626. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActiveState.test.js +19 -5
  627. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityFeed.test.js +22 -16
  628. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThread.test.js +80 -0
  629. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadReplies.test.js +24 -0
  630. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadRepliesForm.test.js +47 -0
  631. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActiveState.test.js.snap +74 -43
  632. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/activityFeedUtils.test.js +8 -8
  633. package/src/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js +2 -2
  634. package/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.ts +56 -0
  635. package/src/elements/content-sidebar/activity-feed/activity-feed/messages.js +20 -0
  636. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +117 -0
  637. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +7 -0
  638. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +105 -0
  639. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +5 -0
  640. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +86 -0
  641. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.scss +3 -0
  642. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThread.test.js +28 -0
  643. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadContent.test.js +89 -0
  644. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadCreate.test.js +103 -0
  645. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useAnnotationAPI.test.js +202 -0
  646. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useRepliesAPI.test.js +99 -0
  647. package/src/elements/content-sidebar/activity-feed/annotation-thread/errors.js +26 -0
  648. package/src/elements/content-sidebar/activity-feed/annotation-thread/index.js +1 -0
  649. package/src/elements/content-sidebar/activity-feed/annotation-thread/messages.js +21 -0
  650. package/src/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +203 -0
  651. package/src/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +121 -0
  652. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +24 -4
  653. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +36 -2
  654. package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivity.test.js +14 -10
  655. package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivityMenu.test.js +35 -1
  656. package/src/elements/content-sidebar/activity-feed/annotations/messages.js +10 -0
  657. package/src/elements/content-sidebar/activity-feed/comment/Comment.js +54 -10
  658. package/src/elements/content-sidebar/activity-feed/comment/__tests__/Comment.test.js +152 -7
  659. package/src/elements/content-sidebar/activity-feed/comment/__tests__/__snapshots__/Comment.test.js.snap +12 -7
  660. package/src/elements/content-sidebar/activity-feed/comment/messages.js +10 -0
  661. package/src/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +3 -1
  662. package/src/elements/content-sidebar/activity-feed/comment-form/__tests__/CommentForm.test.js +11 -0
  663. package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js +34 -4
  664. package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +40 -3
  665. package/src/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js +42 -0
  666. package/src/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js +24 -0
  667. package/src/elements/content-sidebar/activity-feed/common/activity-message/__tests__/ActivityMessage.test.js +48 -1
  668. package/src/elements/content-sidebar/activity-feed/common/activity-message/messages.js +15 -0
  669. package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js +30 -0
  670. package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +6 -0
  671. package/src/elements/content-sidebar/activity-feed/common/activity-status/__tests__/ActivityStatus.test.js +19 -0
  672. package/src/elements/content-sidebar/activity-feed/common/activity-status/index.js +2 -0
  673. package/src/elements/content-sidebar/activity-feed/common/activity-status/messages.js +13 -0
  674. package/src/elements/content-sidebar/activity-feed/common/activity-timestamp/ActivityTimestamp.scss +1 -1
  675. package/src/elements/content-sidebar/activity-feed/task-new/__tests__/Task.test.js +4 -3
  676. package/src/elements/content-sidebar/activity-feed/task-new/__tests__/__snapshots__/Task.test.js.snap +1 -2
  677. package/src/elements/content-sidebar/fixtures.js +185 -0
  678. package/src/elements/content-sidebar/flowTypes.js +9 -25
  679. package/src/elements/content-sidebar/messages.js +10 -0
  680. package/src/elements/content-sidebar/withErrorHandling.js +1 -1
  681. package/src/elements/content-sidebar/withSidebarAnnotations.js +162 -11
  682. package/src/elements/content-uploader/OverallUploadsProgressBar.js +11 -12
  683. package/src/features/classification/Classification.scss +1 -1
  684. package/src/features/classification/security-controls/SecurityControlsItem.scss +1 -0
  685. package/src/features/classification/security-controls/__tests__/__snapshots__/utils.test.js.snap +18 -16
  686. package/src/features/classification/security-controls/__tests__/utils.test.js +13 -5
  687. package/src/features/classification/security-controls/messages.js +10 -0
  688. package/src/features/classification/security-controls/utils.js +8 -12
  689. package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebarLogo.test.js.snap +2 -0
  690. package/src/features/content-explorer/content-explorer/ContentExplorer.js +4 -0
  691. package/src/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
  692. package/src/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +14 -11
  693. package/src/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +4 -1
  694. package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerBreadcrumbs.test.js +2 -2
  695. package/src/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +5 -1
  696. package/src/features/content-explorer/content-explorer-modal/__tests__/__snapshots__/ContentExplorerModal.test.js.snap +1 -0
  697. package/src/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +5 -1
  698. package/src/features/content-explorer/prop-types.js +8 -0
  699. package/src/features/content-insights/CompactCount.tsx +23 -0
  700. package/src/features/content-insights/ContentAnalyticsErrorState.scss +17 -0
  701. package/src/features/content-insights/ContentAnalyticsErrorState.tsx +44 -0
  702. package/src/features/content-insights/ContentInsightsSummary.scss +12 -0
  703. package/src/features/content-insights/ContentInsightsSummary.tsx +45 -0
  704. package/src/features/content-insights/ContentInsightsSummaryGhostState.scss +9 -0
  705. package/src/features/content-insights/ContentInsightsSummaryGhostState.tsx +18 -0
  706. package/src/features/content-insights/GraphCardGhostState.scss +18 -0
  707. package/src/features/content-insights/GraphCardGhostState.tsx +18 -0
  708. package/src/features/content-insights/GraphCardPreviewsSummary.scss +10 -0
  709. package/src/features/content-insights/GraphCardPreviewsSummary.tsx +40 -0
  710. package/src/features/content-insights/GraphGhostState.scss +11 -0
  711. package/src/features/content-insights/GraphGhostState.tsx +17 -0
  712. package/src/features/content-insights/HeaderWithCount.scss +10 -0
  713. package/src/features/content-insights/HeaderWithCount.tsx +24 -0
  714. package/src/features/content-insights/MetricSummary.scss +14 -0
  715. package/src/features/content-insights/MetricSummary.tsx +65 -0
  716. package/src/features/content-insights/OpenContentInsightsButton.tsx +20 -0
  717. package/src/features/content-insights/TrendPill.scss +33 -0
  718. package/src/features/content-insights/TrendPill.tsx +70 -0
  719. package/src/features/content-insights/__tests__/CompactCount.test.tsx +57 -0
  720. package/src/features/content-insights/__tests__/ContentAnalyticsErrorState.test.tsx +33 -0
  721. package/src/features/content-insights/__tests__/ContentInsightsSummary.test.tsx +81 -0
  722. package/src/features/content-insights/__tests__/GraphCardPreviewsSummary.test.tsx +35 -0
  723. package/src/features/content-insights/__tests__/HeaderWithCount.test.tsx +26 -0
  724. package/src/features/content-insights/__tests__/MetricSummary.test.tsx +88 -0
  725. package/src/features/content-insights/_mixins.scss +7 -0
  726. package/src/features/content-insights/_variables.scss +4 -0
  727. package/src/features/content-insights/charts/bar/Bar.scss +27 -0
  728. package/src/features/content-insights/charts/bar/Bar.tsx +48 -0
  729. package/src/features/content-insights/charts/bar/BarChart.scss +56 -0
  730. package/src/features/content-insights/charts/bar/BarChart.tsx +78 -0
  731. package/src/features/content-insights/charts/bar/__tests__/Bar.test.tsx +74 -0
  732. package/src/features/content-insights/charts/bar/__tests__/BarChart.test.tsx +110 -0
  733. package/src/features/content-insights/charts/types.ts +3 -0
  734. package/src/features/content-insights/constants.ts +60 -0
  735. package/src/features/content-insights/messages.ts +90 -0
  736. package/src/features/content-insights/numberUtils.ts +9 -0
  737. package/src/features/content-insights/types.ts +33 -0
  738. package/src/features/item-details/ItemProperties.scss +1 -1
  739. package/src/features/shared-link-settings-modal/SharedLinkSettingsModal.js +4 -2
  740. package/src/features/shared-link-settings-modal/__tests__/SharedLinkSettingsModal.test.js +22 -3
  741. package/src/features/shared-link-settings-modal/__tests__/__snapshots__/SharedLinkSettingsModal.test.js.snap +2 -1
  742. package/src/features/unified-share-modal/ContactRestrictionNotice.js +36 -6
  743. package/src/features/unified-share-modal/EmailForm.js +31 -13
  744. package/src/features/unified-share-modal/UnifiedShareForm.js +25 -8
  745. package/src/features/unified-share-modal/UnifiedShareModal.js +1 -0
  746. package/src/features/unified-share-modal/__tests__/ContactRestrictionNotice.test.js +55 -6
  747. package/src/features/unified-share-modal/__tests__/EmailForm.test.js +131 -24
  748. package/src/features/unified-share-modal/__tests__/UnifiedShareForm.test.js +89 -35
  749. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareForm.test.js.snap +16 -0
  750. package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareModal.test.js.snap +17 -0
  751. package/src/features/unified-share-modal/flowTypes.js +4 -2
  752. package/src/features/unified-share-modal/messages.js +14 -8
  753. package/src/features/unified-share-modal/utils/__tests__/hasRestrictedContacts.test.js +24 -10
  754. package/src/features/unified-share-modal/utils/__tests__/isRestrictedContact.test.js +33 -0
  755. package/src/features/unified-share-modal/utils/hasRestrictedContacts.js +10 -3
  756. package/src/features/unified-share-modal/utils/isRestrictedContact.js +21 -0
  757. package/src/features/virtualized-table/__tests__/__snapshots__/VirtualizedTable.test.js.snap +1 -0
  758. package/src/icon/fill/Alert16.js.flow +3 -2
  759. package/src/icon/fill/Alert16.tsx +3 -2
  760. package/src/icon/fill/AlertBadge16.js.flow +29 -0
  761. package/src/icon/fill/AlertBadge16.stories.tsx +13 -0
  762. package/src/icon/fill/AlertBadge16.tsx +27 -0
  763. package/src/icon/fill/Info16.js.flow +1 -1
  764. package/src/icon/fill/Info16.tsx +1 -1
  765. package/src/icon/fill/InfoBadge16.js.flow +28 -0
  766. package/src/icon/fill/InfoBadge16.stories.tsx +13 -0
  767. package/src/icon/fill/InfoBadge16.tsx +26 -0
  768. package/src/icon/fill/UserSettings16.js.flow +38 -0
  769. package/src/icon/fill/UserSettings16.stories.tsx +13 -0
  770. package/src/icon/fill/UserSettings16.tsx +36 -0
  771. package/src/icon/line/AlertBubble16.js.flow +29 -0
  772. package/src/icon/line/AlertBubble16.stories.tsx +13 -0
  773. package/src/icon/line/AlertBubble16.tsx +27 -0
  774. package/src/icon/line/AvatarXBadge16.js.flow +39 -0
  775. package/src/icon/line/AvatarXBadge16.stories.tsx +13 -0
  776. package/src/icon/line/AvatarXBadge16.tsx +37 -0
  777. package/src/icon/line/CoEdit16.js.flow +30 -0
  778. package/src/icon/line/CoEdit16.stories.tsx +13 -0
  779. package/src/icon/line/CoEdit16.tsx +28 -0
  780. package/src/icon/line/Collaborations16.js.flow +30 -0
  781. package/src/icon/line/Collaborations16.stories.tsx +13 -0
  782. package/src/icon/line/Collaborations16.tsx +28 -0
  783. package/src/icon/line/CommentBubble16.js.flow +34 -0
  784. package/src/icon/line/CommentBubble16.stories.tsx +13 -0
  785. package/src/icon/line/CommentBubble16.tsx +32 -0
  786. package/src/styles/constants/_layout.scss +1 -1
  787. package/src/styles/constants/_media-queries.scss +2 -0
  788. package/src/styles/variables.js +4 -2
  789. package/src/styles/variables.json +4 -2
  790. package/src/styles/variables.ts +3 -1
  791. package/src/utils/__tests__/fields.test.js +23 -4
  792. package/src/utils/__tests__/sorter.test.js +3 -3
  793. package/src/utils/error.js +5 -1
  794. package/src/utils/fields.js +21 -3
  795. package/src/utils/sorter.js +2 -2
  796. package/es/common/types/threadedComments.js +0 -2
  797. package/es/common/types/threadedComments.js.flow +0 -9
  798. package/src/common/types/threadedComments.js +0 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/unified-share-modal/UnifiedShareForm.js"],"names":["React","isEmpty","isEqual","FormattedMessage","injectIntl","FormattedCompMessage","LoadingIndicatorWrapper","Link","Button","UpgradeBadge","InlineNotice","PlainButton","ITEM_TYPE_WEBLINK","Tooltip","CollaboratorAvatars","CollaboratorList","InviteePermissionsMenu","messages","SharedLinkSection","EmailForm","getDefaultPermissionLevel","hasRestrictedContacts","mergeContacts","JUSTIFICATION_CHECKPOINT_EXTERNAL_COLLAB","SHARED_LINKS_COMMUNITY_URL","INVITE_COLLABS_CONTACTS_TYPE","EMAIL_SHARED_LINK_CONTACTS_TYPE","UnifiedShareForm","props","item","checkpoint","justificationReasons","state","getJustificationReasons","hasJustificationReasons","length","Promise","resolve","setState","isFetchingJustificationReasons","typedID","then","classificationLabelId","options","map","id","title","displayText","value","finally","inviteCollabsContacts","isCollabRestrictionJustificationAllowed","restrictedCollabEmails","hasRestrictedCollabs","pills","onPillCreate","event","target","handleFtuxCloseClick","onAddLink","openConfirmModal","shouldRenderFTUXTooltip","trackingProps","sharedLinkTracking","onToggleLink","type","checked","showCollaboratorList","data","inviteePermissions","sendInvites","inviteCollabsEmailTracking","onSendClick","inviteePermissionLevel","defaultPermissionLevel","selectedPermissionLevel","emails","groupIDs","justificationReason","message","restrictedEmails","params","join","emailMessage","permission","numsOfInvitees","numOfInviteeGroups","hasJustificationReason","hasRestrictedInvitees","shouldSubmitJustificationReason","sendSharedLink","sharedLink","sharedLinkEmailTracking","permissionLevel","numsOfRecipients","numOfRecipientGroups","inviteCollabTracking","onInviteePermissionChange","selectOptionPills","filter","pill","getContactsByEmail","contacts","prevState","emailSharedLinkContacts","isInviteSectionExpanded","onEnterInviteCollabs","isEmailLinkSectionExpanded","some","contact","isExternalUser","currentInviteCollabsContacts","newInviteCollabsContacts","hasRestrictedCollabsAfterUpdate","onRemoveAllRestrictedCollabs","setUpdatedContacts","isRemovingAllRestrictedCollabs","focusSharedLinkOnLoad","sharedLinkLoaded","createSharedLinkOnLoad","isNewSharedLink","initiallySelectedContacts","prevProps","prevRestrictedCollabEmails","prevIsCollabRestrictionJustificationAllowed","didCollabRestrictionsChange","shouldRequireCollabJustification","fetchJustificationReasons","canInvite","collabRestrictionType","collaborationRestrictionWarning","config","contactLimit","getCollaboratorContacts","getContactAvatarUrl","recommendedSharingTooltipCalloutName","sendInvitesError","showEnterEmailsCallout","showCalloutForUser","showUpgradeInlineNotice","showUpgradeOptions","submitting","suggestedCollaborators","modalTracking","contactsFieldDisabledTooltip","inviteDisabledWeblinkTooltip","inviteDisabledTooltip","inlineNotice","content","avatars","renderCollaboratorAvatars","ftuxConfirmButtonProps","ftuxTooltipText","ftuxNewUSMUserTitle","ftuxNewUSMUserBody","ftuxLinkText","ftuxConfirmLabel","ftuxTooltipProps","className","isShown","position","showCloseButton","text","theme","inviteFieldLabel","hasExternalContact","openInviteCollaborators","handleInviteCollabPillCreate","closeInviteCollaborators","handleSendInvites","openInviteCollaboratorsSection","updateInviteCollabsContacts","renderInviteePermissionsDropdown","renderUpgradeLinkDescription","collaboratorsList","currentUserID","avatarsContent","collaborators","hideCollaborators","canShowCollaboratorAvatars","collaborator","String","userID","collaboratorAvatarsProps","resinTarget","openUpgradePlanModal","upgradeLink","upgradeLinkProps","upgradeGetMoreAccessControlsLink","upgradeGetMoreAccessControlsDescription","upgradeInlineNoticeTitle","renderCollaboratorMessage","inviteePermissionsButtonProps","handleInviteePermissionChange","name","collaboratorListTracking","listContent","closeCollaboratorList","allShareRestrictionWarning","changeSharedLinkAccessLevel","changeSharedLinkPermissionLevel","displayInModal","getSharedLinkContacts","intl","isAllowEditSharedLinkForFileEnabled","isFetching","onCopyError","onCopyInit","onCopySuccess","onDismissTooltip","onSettingsClick","sendSharedLinkError","sharedLinkEditTagTargetingApi","sharedLinkEditTooltipTargetingApi","showSharedLinkSettingsCallout","tooltips","showShareRestrictionWarning","renderUpgradeInlineNotice","renderInviteSection","shouldAutoFocusSharedLink","openEmailSharedLinkForm","onToggleSharedLink","sendSharedLinkFieldLabel","handleEmailSharedLinkPillCreate","closeEmailSharedLinkForm","handleSendSharedLink","updateEmailSharedLinkContacts","renderCollaboratorList","Component","removeLinkConfirmModalTracking","UnifiedShareFormBase"],"mappings":"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","sourcesContent":["// @flow\n\nimport * as React from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport { FormattedMessage, injectIntl } from 'react-intl';\n\nimport FormattedCompMessage from '../../components/i18n/FormattedCompMessage';\nimport LoadingIndicatorWrapper from '../../components/loading-indicator/LoadingIndicatorWrapper';\nimport { Link } from '../../components/link';\nimport Button from '../../components/button';\nimport { UpgradeBadge } from '../../components/badge';\nimport InlineNotice from '../../components/inline-notice';\nimport PlainButton from '../../components/plain-button';\nimport { ITEM_TYPE_WEBLINK } from '../../common/constants';\nimport Tooltip from '../../components/tooltip';\nimport { CollaboratorAvatars, CollaboratorList } from '../collaborator-avatars';\n\nimport InviteePermissionsMenu from './InviteePermissionsMenu';\nimport messages from './messages';\nimport SharedLinkSection from './SharedLinkSection';\nimport EmailForm from './EmailForm';\nimport getDefaultPermissionLevel from './utils/defaultPermissionLevel';\nimport hasRestrictedContacts from './utils/hasRestrictedContacts';\nimport mergeContacts from './utils/mergeContacts';\nimport { JUSTIFICATION_CHECKPOINT_EXTERNAL_COLLAB } from './constants';\n\nimport type {\n contactType as Contact,\n getJustificationReasonsResponseType as GetJustificationReasonsResponse,\n item as Item,\n justificationCheckpointType as JustificationCheckpoint,\n USFProps,\n} from './flowTypes';\nimport type { SelectOptionProp } from '../../components/select-field/props';\n\nconst SHARED_LINKS_COMMUNITY_URL = 'https://community.box.com/t5/Using-Shared-Links/Creating-Shared-Links/ta-p/19523';\nconst INVITE_COLLABS_CONTACTS_TYPE = 'inviteCollabsContacts';\nconst EMAIL_SHARED_LINK_CONTACTS_TYPE = 'emailSharedLinkContacts';\n\ntype State = {\n classificationLabelId: string,\n emailSharedLinkContacts: Array<Contact>,\n inviteCollabsContacts: Array<Contact>,\n inviteePermissionLevel: string,\n isEmailLinkSectionExpanded: boolean,\n isFetchingJustificationReasons: boolean,\n isInviteSectionExpanded: boolean,\n justificationReasons: Array<SelectOptionProp>,\n showCollaboratorList: boolean,\n};\n\nclass UnifiedShareForm extends React.Component<USFProps, State> {\n static defaultProps = {\n displayInModal: true,\n initiallySelectedContacts: [],\n createSharedLinkOnLoad: false,\n focusSharedLinkOnLoad: false,\n restrictedCollabEmails: [],\n trackingProps: {\n collaboratorListTracking: {},\n inviteCollabsEmailTracking: {},\n inviteCollabTracking: {},\n modalTracking: {},\n removeLinkConfirmModalTracking: {},\n sharedLinkEmailTracking: {},\n sharedLinkTracking: {},\n },\n };\n\n constructor(props: USFProps) {\n super(props);\n\n this.state = {\n classificationLabelId: '',\n emailSharedLinkContacts: [],\n inviteCollabsContacts: props.initiallySelectedContacts,\n inviteePermissionLevel: '',\n isEmailLinkSectionExpanded: false,\n isFetchingJustificationReasons: false,\n isInviteSectionExpanded: !!props.initiallySelectedContacts.length,\n justificationReasons: [],\n showCollaboratorList: false,\n };\n }\n\n componentDidUpdate(prevProps: USFProps) {\n const { isCollabRestrictionJustificationAllowed, item, restrictedCollabEmails } = this.props;\n const {\n restrictedCollabEmails: prevRestrictedCollabEmails,\n isCollabRestrictionJustificationAllowed: prevIsCollabRestrictionJustificationAllowed,\n } = prevProps;\n\n const didCollabRestrictionsChange =\n !isEqual(restrictedCollabEmails, prevRestrictedCollabEmails) ||\n isCollabRestrictionJustificationAllowed !== prevIsCollabRestrictionJustificationAllowed;\n\n if (didCollabRestrictionsChange && this.shouldRequireCollabJustification()) {\n this.fetchJustificationReasons(item, JUSTIFICATION_CHECKPOINT_EXTERNAL_COLLAB);\n }\n }\n\n fetchJustificationReasons = (item: Item, checkpoint: JustificationCheckpoint) => {\n const { justificationReasons } = this.state;\n const { getJustificationReasons } = this.props;\n const hasJustificationReasons = !!justificationReasons.length;\n\n if (!getJustificationReasons || hasJustificationReasons) {\n return Promise.resolve();\n }\n this.setState({ isFetchingJustificationReasons: true });\n\n return getJustificationReasons(item.typedID, checkpoint)\n .then(({ classificationLabelId, options }: GetJustificationReasonsResponse) => {\n this.setState({\n classificationLabelId,\n justificationReasons: options.map(({ id, title }) => ({\n displayText: title,\n value: id,\n })),\n });\n })\n .finally(() => {\n this.setState({ isFetchingJustificationReasons: false });\n });\n };\n\n shouldRequireCollabJustification = () => {\n const { inviteCollabsContacts } = this.state;\n const { isCollabRestrictionJustificationAllowed, restrictedCollabEmails } = this.props;\n\n const hasRestrictedCollabs = hasRestrictedContacts(inviteCollabsContacts, restrictedCollabEmails);\n return hasRestrictedCollabs && isCollabRestrictionJustificationAllowed;\n };\n\n handleInviteCollabPillCreate = (pills: Array<SelectOptionProp | Contact>) => {\n return this.onPillCreate(INVITE_COLLABS_CONTACTS_TYPE, pills);\n };\n\n handleEmailSharedLinkPillCreate = (pills: Array<SelectOptionProp | Contact>) => {\n return this.onPillCreate(EMAIL_SHARED_LINK_CONTACTS_TYPE, pills);\n };\n\n onToggleSharedLink = (event: SyntheticInputEvent<HTMLInputElement>) => {\n const { target } = event;\n const {\n handleFtuxCloseClick,\n onAddLink,\n openConfirmModal,\n shouldRenderFTUXTooltip,\n trackingProps,\n } = this.props;\n const { sharedLinkTracking } = trackingProps;\n const { onToggleLink } = sharedLinkTracking;\n\n if (shouldRenderFTUXTooltip) {\n handleFtuxCloseClick();\n }\n\n if (target.type === 'checkbox') {\n if (target.checked === false) {\n openConfirmModal();\n } else {\n onAddLink();\n }\n\n if (onToggleLink) {\n onToggleLink(target.checked);\n }\n }\n };\n\n showCollaboratorList = () => {\n this.setState({ showCollaboratorList: true });\n };\n\n closeCollaboratorList = () => {\n this.setState({ showCollaboratorList: false });\n };\n\n handleSendInvites = (data: Object) => {\n const { inviteePermissions, isCollabRestrictionJustificationAllowed, sendInvites, trackingProps } = this.props;\n const { inviteCollabsEmailTracking } = trackingProps;\n const { onSendClick } = inviteCollabsEmailTracking;\n const { classificationLabelId, inviteePermissionLevel } = this.state;\n const defaultPermissionLevel = getDefaultPermissionLevel(inviteePermissions);\n const selectedPermissionLevel = inviteePermissionLevel || defaultPermissionLevel;\n const { emails, groupIDs, justificationReason, message, restrictedEmails } = data;\n\n let params = {\n emails: emails.join(','),\n groupIDs: groupIDs.join(','),\n emailMessage: message,\n permission: selectedPermissionLevel,\n numsOfInvitees: emails.length,\n numOfInviteeGroups: groupIDs.length,\n };\n\n const hasJustificationReason = !!justificationReason;\n const hasRestrictedInvitees = !isEmpty(restrictedEmails);\n const shouldSubmitJustificationReason =\n hasJustificationReason && hasRestrictedInvitees && isCollabRestrictionJustificationAllowed;\n\n if (shouldSubmitJustificationReason) {\n params = {\n ...params,\n classificationLabelId,\n justificationReason: {\n id: justificationReason.value,\n title: justificationReason.displayText,\n },\n };\n }\n\n if (onSendClick) {\n onSendClick(params);\n }\n\n return sendInvites(params);\n };\n\n handleSendSharedLink = (data: Object) => {\n const { sendSharedLink, sharedLink, trackingProps } = this.props;\n const { sharedLinkEmailTracking } = trackingProps;\n const { permissionLevel } = sharedLink;\n const { onSendClick } = sharedLinkEmailTracking;\n\n const { emails, groupIDs } = data;\n\n if (onSendClick) {\n const params = {\n ...data,\n numsOfRecipients: emails.length,\n numOfRecipientGroups: groupIDs.length,\n permissionLevel,\n };\n onSendClick(params);\n }\n\n return sendSharedLink(data);\n };\n\n // TODO-AH: Change permission level to use the appropriate flow type\n handleInviteePermissionChange = (permissionLevel: string) => {\n const { trackingProps } = this.props;\n const { inviteCollabTracking } = trackingProps;\n const { onInviteePermissionChange } = inviteCollabTracking;\n\n this.setState({ inviteePermissionLevel: permissionLevel });\n\n if (onInviteePermissionChange) {\n onInviteePermissionChange(permissionLevel);\n }\n };\n\n onPillCreate = (type: string, pills: Array<SelectOptionProp | Contact>) => {\n // If this is a dropdown select event, we ignore it\n // $FlowFixMe\n const selectOptionPills = pills.filter(pill => !pill.id);\n if (selectOptionPills.length === 0) {\n return;\n }\n\n const { getContactsByEmail } = this.props;\n\n if (getContactsByEmail) {\n const emails = pills.map(pill => pill.value);\n // $FlowFixMe\n getContactsByEmail({ emails }).then((contacts: Object) => {\n if (type === INVITE_COLLABS_CONTACTS_TYPE) {\n this.setState(prevState => ({\n inviteCollabsContacts: mergeContacts(prevState.inviteCollabsContacts, contacts),\n }));\n } else if (type === EMAIL_SHARED_LINK_CONTACTS_TYPE) {\n this.setState(prevState => ({\n emailSharedLinkContacts: mergeContacts(prevState.emailSharedLinkContacts, contacts),\n }));\n }\n });\n }\n };\n\n openInviteCollaborators = (value: string) => {\n const { handleFtuxCloseClick } = this.props;\n if (this.state.isInviteSectionExpanded) {\n return;\n }\n\n // checking the value because IE seems to trigger onInput immediately\n // on focus of the contacts field\n if (value !== '') {\n handleFtuxCloseClick();\n this.setState(\n {\n isInviteSectionExpanded: true,\n },\n () => {\n const {\n trackingProps: {\n inviteCollabTracking: { onEnterInviteCollabs },\n },\n } = this.props;\n\n if (onEnterInviteCollabs) {\n onEnterInviteCollabs();\n }\n },\n );\n }\n };\n\n openInviteCollaboratorsSection = () => {\n this.setState({\n isInviteSectionExpanded: true,\n });\n };\n\n closeInviteCollaborators = () => {\n this.setState({\n isInviteSectionExpanded: false,\n });\n };\n\n openEmailSharedLinkForm = () => {\n const { handleFtuxCloseClick } = this.props;\n handleFtuxCloseClick();\n this.setState({\n isEmailLinkSectionExpanded: true,\n });\n };\n\n closeEmailSharedLinkForm = () => {\n this.setState({ isEmailLinkSectionExpanded: false });\n };\n\n hasExternalContact = (type: string): boolean => {\n const { inviteCollabsContacts, emailSharedLinkContacts } = this.state;\n if (type === INVITE_COLLABS_CONTACTS_TYPE) {\n return inviteCollabsContacts.some(contact => contact.isExternalUser);\n }\n if (type === EMAIL_SHARED_LINK_CONTACTS_TYPE) {\n return emailSharedLinkContacts.some(contact => contact.isExternalUser);\n }\n return false;\n };\n\n isRemovingAllRestrictedCollabs = (\n currentInviteCollabsContacts: Array<Contact>,\n newInviteCollabsContacts: Array<Contact>,\n ) => {\n const { restrictedCollabEmails } = this.props;\n\n const hasRestrictedCollabs = hasRestrictedContacts(currentInviteCollabsContacts, restrictedCollabEmails);\n const hasRestrictedCollabsAfterUpdate = hasRestrictedContacts(newInviteCollabsContacts, restrictedCollabEmails);\n\n return hasRestrictedCollabs && !hasRestrictedCollabsAfterUpdate;\n };\n\n updateInviteCollabsContacts = (inviteCollabsContacts: Array<Contact>) => {\n const { inviteCollabsContacts: currentInviteCollabsContacts } = this.state;\n const { onRemoveAllRestrictedCollabs, setUpdatedContacts } = this.props;\n\n const isRemovingAllRestrictedCollabs = this.isRemovingAllRestrictedCollabs(\n currentInviteCollabsContacts,\n inviteCollabsContacts,\n );\n\n this.setState({\n inviteCollabsContacts,\n });\n\n if (setUpdatedContacts) {\n setUpdatedContacts(inviteCollabsContacts);\n }\n if (onRemoveAllRestrictedCollabs && isRemovingAllRestrictedCollabs) {\n onRemoveAllRestrictedCollabs();\n }\n };\n\n updateEmailSharedLinkContacts = (emailSharedLinkContacts: Array<Contact>) => {\n this.setState({\n emailSharedLinkContacts,\n });\n };\n\n shouldAutoFocusSharedLink = () => {\n const { focusSharedLinkOnLoad, sharedLink, sharedLinkLoaded, createSharedLinkOnLoad } = this.props;\n\n if (!createSharedLinkOnLoad && !focusSharedLinkOnLoad) {\n return false;\n }\n // if not forcing focus or not a newly added shared link, return false\n if (!(focusSharedLinkOnLoad || sharedLink.isNewSharedLink)) {\n return false;\n }\n // otherwise wait until the link data is loaded before focusing\n if (!sharedLinkLoaded) {\n return false;\n }\n return true;\n };\n\n renderInviteSection() {\n const {\n canInvite,\n collabRestrictionType,\n collaborationRestrictionWarning,\n config,\n contactLimit,\n getCollaboratorContacts,\n getContactAvatarUrl,\n handleFtuxCloseClick,\n item,\n recommendedSharingTooltipCalloutName = null,\n restrictedCollabEmails,\n sendInvitesError,\n shouldRenderFTUXTooltip,\n showEnterEmailsCallout = false,\n showCalloutForUser = false,\n showUpgradeInlineNotice = false,\n showUpgradeOptions,\n submitting,\n suggestedCollaborators,\n trackingProps,\n } = this.props;\n const { type } = item;\n const { isFetchingJustificationReasons, isInviteSectionExpanded, justificationReasons } = this.state;\n const { inviteCollabsEmailTracking, modalTracking } = trackingProps;\n const contactsFieldDisabledTooltip =\n type === ITEM_TYPE_WEBLINK ? (\n <FormattedMessage {...messages.inviteDisabledWeblinkTooltip} />\n ) : (\n <FormattedMessage {...messages.inviteDisabledTooltip} />\n );\n const inlineNotice = sendInvitesError\n ? {\n type: 'error',\n content: sendInvitesError,\n }\n : {\n type: 'warning',\n content: collaborationRestrictionWarning,\n };\n const avatars = this.renderCollaboratorAvatars();\n const { ftuxConfirmButtonProps } = modalTracking;\n const ftuxTooltipText = (\n <div>\n <h4 className=\"ftux-tooltip-title\">\n <FormattedMessage {...messages.ftuxNewUSMUserTitle} />\n </h4>\n <p className=\"ftux-tooltip-body\">\n <FormattedMessage {...messages.ftuxNewUSMUserBody} />{' '}\n <Link className=\"ftux-tooltip-link\" href={SHARED_LINKS_COMMUNITY_URL} target=\"_blank\">\n <FormattedMessage {...messages.ftuxLinkText} />\n </Link>\n </p>\n <div className=\"ftux-tooltip-controls\">\n <Button className=\"ftux-tooltip-button\" onClick={handleFtuxCloseClick} {...ftuxConfirmButtonProps}>\n <FormattedMessage {...messages.ftuxConfirmLabel} />\n </Button>\n </div>\n </div>\n );\n const ftuxTooltipProps = {\n className: 'usm-ftux-tooltip',\n // don't want ftux tooltip to show if the recommended sharing tooltip callout is showing\n isShown: !recommendedSharingTooltipCalloutName && shouldRenderFTUXTooltip && showCalloutForUser,\n position: 'middle-left',\n showCloseButton: true,\n text: ftuxTooltipText,\n theme: 'callout',\n };\n\n return (\n <>\n <Tooltip {...ftuxTooltipProps}>\n <div className=\"invite-collaborator-container\" data-testid=\"invite-collaborator-container\">\n <EmailForm\n config={config}\n contactLimit={contactLimit}\n collabRestrictionType={collabRestrictionType}\n contactsFieldAvatars={avatars}\n contactsFieldDisabledTooltip={contactsFieldDisabledTooltip}\n contactsFieldLabel={<FormattedMessage {...messages.inviteFieldLabel} />}\n getContacts={getCollaboratorContacts}\n getContactAvatarUrl={getContactAvatarUrl}\n inlineNotice={inlineNotice}\n isContactsFieldEnabled={canInvite}\n isExpanded={isInviteSectionExpanded}\n isFetchingJustificationReasons={isFetchingJustificationReasons}\n isExternalUserSelected={this.hasExternalContact(INVITE_COLLABS_CONTACTS_TYPE)}\n isRestrictionJustificationEnabled={this.shouldRequireCollabJustification()}\n justificationReasons={justificationReasons}\n onContactInput={this.openInviteCollaborators}\n onPillCreate={this.handleInviteCollabPillCreate}\n onRequestClose={this.closeInviteCollaborators}\n onSubmit={this.handleSendInvites}\n openInviteCollaboratorsSection={this.openInviteCollaboratorsSection}\n recommendedSharingTooltipCalloutName={recommendedSharingTooltipCalloutName}\n restrictedEmails={restrictedCollabEmails}\n showEnterEmailsCallout={showEnterEmailsCallout}\n submitting={submitting}\n selectedContacts={this.state.inviteCollabsContacts}\n suggestedCollaborators={suggestedCollaborators}\n updateSelectedContacts={this.updateInviteCollabsContacts}\n {...inviteCollabsEmailTracking}\n >\n {this.renderInviteePermissionsDropdown()}\n {showUpgradeOptions && !showUpgradeInlineNotice && this.renderUpgradeLinkDescription()}\n </EmailForm>\n </div>\n </Tooltip>\n </>\n );\n }\n\n renderCollaboratorAvatars() {\n const { collaboratorsList, canInvite, currentUserID, item, trackingProps } = this.props;\n const { modalTracking } = trackingProps;\n let avatarsContent = null;\n\n if (collaboratorsList) {\n const { collaborators } = collaboratorsList;\n const { hideCollaborators = true } = item;\n const canShowCollaboratorAvatars = hideCollaborators ? canInvite : true;\n\n // filter out the current user by comparing to the ItemCollabRecord ID field\n avatarsContent = canShowCollaboratorAvatars && (\n <CollaboratorAvatars\n collaborators={collaborators.filter(collaborator => String(collaborator.userID) !== currentUserID)}\n onClick={this.showCollaboratorList}\n containerAttributes={modalTracking.collaboratorAvatarsProps}\n />\n );\n }\n\n return avatarsContent;\n }\n\n renderCollaboratorMessage(resinTarget: string) {\n const { openUpgradePlanModal = () => {} } = this.props;\n return (\n <>\n <FormattedCompMessage\n id=\"boxui.unifiedShare.upgradeCollaboratorAccessDescription\"\n description=\"Description for cta to upgrade to get collaborator access controls\"\n >\n Set the level of{' '}\n <Link\n className=\"upgrade-link\"\n href=\"https://support.box.com/hc/en-us/articles/360044196413-Understanding-Collaborator-Permission-Levels\"\n target=\"_blank\"\n >\n collaborator access\n </Link>{' '}\n and increase security through one of our paid plans.{' '}\n </FormattedCompMessage>\n <PlainButton\n className=\"upgrade-link\"\n data-resin-target={resinTarget}\n onClick={openUpgradePlanModal}\n type=\"button\"\n >\n <FormattedMessage {...messages.upgradeLink} />\n </PlainButton>\n </>\n );\n }\n\n renderUpgradeLinkDescription() {\n const { openUpgradePlanModal = () => {}, trackingProps = {} } = this.props;\n const { inviteCollabsEmailTracking = {} } = trackingProps;\n const { upgradeLinkProps = {} } = inviteCollabsEmailTracking;\n\n return (\n <div className=\"upgrade-description\">\n <UpgradeBadge />\n <FormattedMessage\n values={{\n upgradeGetMoreAccessControlsLink: (\n <PlainButton\n className=\"upgrade-link\"\n onClick={openUpgradePlanModal}\n type=\"button\"\n {...upgradeLinkProps}\n >\n <FormattedMessage {...messages.upgradeGetMoreAccessControlsLink} />\n </PlainButton>\n ),\n }}\n {...messages.upgradeGetMoreAccessControlsDescription}\n />\n </div>\n );\n }\n\n renderUpgradeInlineNotice() {\n return (\n <InlineNotice title={<FormattedMessage {...messages.upgradeInlineNoticeTitle} />} type=\"info\">\n {this.renderCollaboratorMessage('external_collab_top_message_upgrade_cta')}\n </InlineNotice>\n );\n }\n\n renderInviteePermissionsDropdown() {\n const { inviteePermissions, item, submitting, canInvite, trackingProps } = this.props;\n const { type } = item;\n const { inviteCollabTracking } = trackingProps;\n\n return (\n inviteePermissions && (\n <InviteePermissionsMenu\n disabled={!canInvite || submitting}\n inviteePermissionsButtonProps={inviteCollabTracking.inviteePermissionsButtonProps}\n inviteePermissionLevel={this.state.inviteePermissionLevel}\n inviteePermissions={inviteePermissions}\n changeInviteePermissionLevel={this.handleInviteePermissionChange}\n itemType={type}\n />\n )\n );\n }\n\n renderCollaboratorList() {\n const { item, collaboratorsList, trackingProps } = this.props;\n const { name, type } = item;\n const { collaboratorListTracking } = trackingProps;\n let listContent = null;\n\n if (collaboratorsList) {\n const { collaborators } = collaboratorsList;\n\n listContent = (\n <CollaboratorList\n itemName={name}\n itemType={type}\n onDoneClick={this.closeCollaboratorList}\n item={item}\n collaborators={collaborators}\n trackingProps={collaboratorListTracking}\n />\n );\n }\n\n return listContent;\n }\n\n render() {\n // Shared link section props\n const {\n allShareRestrictionWarning,\n changeSharedLinkAccessLevel,\n createSharedLinkOnLoad,\n changeSharedLinkPermissionLevel,\n config,\n displayInModal,\n focusSharedLinkOnLoad,\n getSharedLinkContacts,\n getContactAvatarUrl,\n intl,\n isAllowEditSharedLinkForFileEnabled,\n isFetching,\n item,\n onAddLink,\n onCopyError,\n onCopyInit,\n onCopySuccess,\n onDismissTooltip = () => {},\n onSettingsClick,\n sendSharedLinkError,\n sharedLink,\n sharedLinkEditTagTargetingApi,\n sharedLinkEditTooltipTargetingApi,\n showEnterEmailsCallout = false,\n showSharedLinkSettingsCallout = false,\n showUpgradeInlineNotice = false,\n showUpgradeOptions,\n submitting,\n tooltips = {},\n trackingProps,\n } = this.props;\n const { sharedLinkTracking, sharedLinkEmailTracking } = trackingProps;\n const { isEmailLinkSectionExpanded, isInviteSectionExpanded, showCollaboratorList } = this.state;\n\n // Only show the restriction warning on the main page of the USM where the email and share link option is available\n const showShareRestrictionWarning =\n !isEmailLinkSectionExpanded &&\n !isInviteSectionExpanded &&\n !showCollaboratorList &&\n allShareRestrictionWarning;\n\n return (\n <div className={displayInModal ? '' : 'be bdl-UnifiedShareForm'}>\n <LoadingIndicatorWrapper isLoading={isFetching} hideContent>\n {showShareRestrictionWarning && allShareRestrictionWarning}\n {showUpgradeOptions && showUpgradeInlineNotice && this.renderUpgradeInlineNotice()}\n\n {!isEmailLinkSectionExpanded && !showCollaboratorList && this.renderInviteSection()}\n\n {!isEmailLinkSectionExpanded && !isInviteSectionExpanded && !showCollaboratorList && (\n <SharedLinkSection\n addSharedLink={onAddLink}\n autofocusSharedLink={this.shouldAutoFocusSharedLink()}\n autoCreateSharedLink={createSharedLinkOnLoad}\n config={config}\n triggerCopyOnLoad={createSharedLinkOnLoad && focusSharedLinkOnLoad}\n changeSharedLinkAccessLevel={changeSharedLinkAccessLevel}\n changeSharedLinkPermissionLevel={changeSharedLinkPermissionLevel}\n intl={intl}\n isAllowEditSharedLinkForFileEnabled={isAllowEditSharedLinkForFileEnabled}\n item={item}\n itemType={item.type}\n onDismissTooltip={onDismissTooltip}\n onEmailSharedLinkClick={this.openEmailSharedLinkForm}\n onSettingsClick={onSettingsClick}\n onToggleSharedLink={this.onToggleSharedLink}\n onCopyInit={onCopyInit}\n onCopySuccess={onCopySuccess}\n onCopyError={onCopyError}\n sharedLink={sharedLink}\n sharedLinkEditTagTargetingApi={sharedLinkEditTagTargetingApi}\n sharedLinkEditTooltipTargetingApi={sharedLinkEditTooltipTargetingApi}\n showSharedLinkSettingsCallout={showSharedLinkSettingsCallout}\n submitting={submitting || isFetching}\n trackingProps={sharedLinkTracking}\n tooltips={tooltips}\n />\n )}\n\n {isEmailLinkSectionExpanded && !showCollaboratorList && (\n <EmailForm\n contactsFieldLabel={<FormattedMessage {...messages.sendSharedLinkFieldLabel} />}\n getContactAvatarUrl={getContactAvatarUrl}\n getContacts={getSharedLinkContacts}\n inlineNotice={{\n type: 'error',\n content: sendSharedLinkError,\n }}\n isContactsFieldEnabled\n isExpanded\n isExternalUserSelected={this.hasExternalContact(EMAIL_SHARED_LINK_CONTACTS_TYPE)}\n onPillCreate={this.handleEmailSharedLinkPillCreate}\n onRequestClose={this.closeEmailSharedLinkForm}\n onSubmit={this.handleSendSharedLink}\n showEnterEmailsCallout={showEnterEmailsCallout}\n submitting={submitting}\n selectedContacts={this.state.emailSharedLinkContacts}\n updateSelectedContacts={this.updateEmailSharedLinkContacts}\n {...sharedLinkEmailTracking}\n />\n )}\n {showCollaboratorList && this.renderCollaboratorList()}\n </LoadingIndicatorWrapper>\n </div>\n );\n }\n}\n\nexport { UnifiedShareForm as UnifiedShareFormBase };\nexport default injectIntl(UnifiedShareForm);\n"],"file":"UnifiedShareForm.js"}
1
+ {"version":3,"sources":["../../../src/features/unified-share-modal/UnifiedShareForm.js"],"names":["React","isEmpty","isEqual","FormattedMessage","injectIntl","FormattedCompMessage","LoadingIndicatorWrapper","Link","Button","UpgradeBadge","InlineNotice","PlainButton","ITEM_TYPE_WEBLINK","Tooltip","CollaboratorAvatars","CollaboratorList","InviteePermissionsMenu","messages","SharedLinkSection","EmailForm","getDefaultPermissionLevel","hasRestrictedContacts","mergeContacts","JUSTIFICATION_CHECKPOINT_EXTERNAL_COLLAB","SHARED_LINKS_COMMUNITY_URL","INVITE_COLLABS_CONTACTS_TYPE","EMAIL_SHARED_LINK_CONTACTS_TYPE","UnifiedShareForm","props","item","checkpoint","justificationReasons","state","getJustificationReasons","hasJustificationReasons","length","Promise","resolve","setState","isFetchingJustificationReasons","typedID","then","classificationLabelId","options","map","id","title","displayText","value","finally","inviteCollabsContacts","isCollabRestrictionJustificationAllowed","restrictedCollabEmails","restrictedGroups","hasRestrictedCollabs","pills","onPillCreate","event","target","handleFtuxCloseClick","onAddLink","openConfirmModal","shouldRenderFTUXTooltip","trackingProps","sharedLinkTracking","onToggleLink","type","checked","showCollaboratorList","data","inviteePermissions","sendInvites","inviteCollabsEmailTracking","onSendClick","inviteePermissionLevel","defaultPermissionLevel","selectedPermissionLevel","emails","groupIDs","justificationReason","message","restrictedEmails","params","join","emailMessage","permission","numsOfInvitees","numOfInviteeGroups","hasJustificationReason","hasRestrictedInvitees","shouldSubmitJustificationReason","sendSharedLink","sharedLink","sharedLinkEmailTracking","permissionLevel","numsOfRecipients","numOfRecipientGroups","inviteCollabTracking","onInviteePermissionChange","selectOptionPills","filter","pill","getContactsByEmail","contacts","prevState","emailSharedLinkContacts","isInviteSectionExpanded","onEnterInviteCollabs","isEmailLinkSectionExpanded","some","contact","isExternalUser","currentInviteCollabsContacts","newInviteCollabsContacts","hasRestrictedCollabsAfterUpdate","onRemoveAllRestrictedCollabs","setUpdatedContacts","isRemovingAllRestrictedCollabs","focusSharedLinkOnLoad","sharedLinkLoaded","createSharedLinkOnLoad","isNewSharedLink","initiallySelectedContacts","prevProps","prevRestrictedGroups","prevRestrictedCollabEmails","prevIsCollabRestrictionJustificationAllowed","didCollabRestrictionsChange","shouldRequireCollabJustification","fetchJustificationReasons","canInvite","collabRestrictionType","collaborationRestrictionWarning","config","contactLimit","getCollaboratorContacts","getContactAvatarUrl","recommendedSharingTooltipCalloutName","sendInvitesError","showEnterEmailsCallout","showCalloutForUser","showUpgradeInlineNotice","showUpgradeOptions","submitting","suggestedCollaborators","modalTracking","contactsFieldDisabledTooltip","inviteDisabledWeblinkTooltip","inviteDisabledTooltip","inlineNotice","content","avatars","renderCollaboratorAvatars","ftuxConfirmButtonProps","ftuxTooltipText","ftuxNewUSMUserTitle","ftuxNewUSMUserBody","ftuxLinkText","ftuxConfirmLabel","ftuxTooltipProps","className","isShown","position","showCloseButton","text","theme","inviteFieldLabel","hasExternalContact","openInviteCollaborators","handleInviteCollabPillCreate","closeInviteCollaborators","handleSendInvites","openInviteCollaboratorsSection","updateInviteCollabsContacts","renderInviteePermissionsDropdown","renderUpgradeLinkDescription","collaboratorsList","currentUserID","avatarsContent","collaborators","hideCollaborators","canShowCollaboratorAvatars","collaborator","String","userID","collaboratorAvatarsProps","resinTarget","openUpgradePlanModal","upgradeLink","upgradeLinkProps","upgradeGetMoreAccessControlsLink","upgradeGetMoreAccessControlsDescription","upgradeInlineNoticeTitle","renderCollaboratorMessage","inviteePermissionsButtonProps","handleInviteePermissionChange","name","collaboratorListTracking","listContent","closeCollaboratorList","allShareRestrictionWarning","changeSharedLinkAccessLevel","changeSharedLinkPermissionLevel","displayInModal","getSharedLinkContacts","intl","isAllowEditSharedLinkForFileEnabled","isFetching","onCopyError","onCopyInit","onCopySuccess","onDismissTooltip","onSettingsClick","sendSharedLinkError","sharedLinkEditTagTargetingApi","sharedLinkEditTooltipTargetingApi","showSharedLinkSettingsCallout","tooltips","showShareRestrictionWarning","renderUpgradeInlineNotice","renderInviteSection","shouldAutoFocusSharedLink","openEmailSharedLinkForm","onToggleSharedLink","sendSharedLinkFieldLabel","handleEmailSharedLinkPillCreate","closeEmailSharedLinkForm","handleSendSharedLink","updateEmailSharedLinkContacts","renderCollaboratorList","Component","retrictedGroups","removeLinkConfirmModalTracking","UnifiedShareFormBase"],"mappings":"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","sourcesContent":["// @flow\n\nimport * as React from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport { FormattedMessage, injectIntl } from 'react-intl';\n\nimport FormattedCompMessage from '../../components/i18n/FormattedCompMessage';\nimport LoadingIndicatorWrapper from '../../components/loading-indicator/LoadingIndicatorWrapper';\nimport { Link } from '../../components/link';\nimport Button from '../../components/button';\nimport { UpgradeBadge } from '../../components/badge';\nimport InlineNotice from '../../components/inline-notice';\nimport PlainButton from '../../components/plain-button';\nimport { ITEM_TYPE_WEBLINK } from '../../common/constants';\nimport Tooltip from '../../components/tooltip';\nimport { CollaboratorAvatars, CollaboratorList } from '../collaborator-avatars';\n\nimport InviteePermissionsMenu from './InviteePermissionsMenu';\nimport messages from './messages';\nimport SharedLinkSection from './SharedLinkSection';\nimport EmailForm from './EmailForm';\nimport getDefaultPermissionLevel from './utils/defaultPermissionLevel';\nimport hasRestrictedContacts from './utils/hasRestrictedContacts';\nimport mergeContacts from './utils/mergeContacts';\nimport { JUSTIFICATION_CHECKPOINT_EXTERNAL_COLLAB } from './constants';\n\nimport type {\n contactType as Contact,\n getJustificationReasonsResponseType as GetJustificationReasonsResponse,\n item as Item,\n justificationCheckpointType as JustificationCheckpoint,\n USFProps,\n} from './flowTypes';\nimport type { SelectOptionProp } from '../../components/select-field/props';\n\nconst SHARED_LINKS_COMMUNITY_URL = 'https://community.box.com/t5/Using-Shared-Links/Creating-Shared-Links/ta-p/19523';\nconst INVITE_COLLABS_CONTACTS_TYPE = 'inviteCollabsContacts';\nconst EMAIL_SHARED_LINK_CONTACTS_TYPE = 'emailSharedLinkContacts';\n\ntype State = {\n classificationLabelId: string,\n emailSharedLinkContacts: Array<Contact>,\n inviteCollabsContacts: Array<Contact>,\n inviteePermissionLevel: string,\n isEmailLinkSectionExpanded: boolean,\n isFetchingJustificationReasons: boolean,\n isInviteSectionExpanded: boolean,\n justificationReasons: Array<SelectOptionProp>,\n showCollaboratorList: boolean,\n};\n\nclass UnifiedShareForm extends React.Component<USFProps, State> {\n static defaultProps = {\n displayInModal: true,\n initiallySelectedContacts: [],\n createSharedLinkOnLoad: false,\n focusSharedLinkOnLoad: false,\n restrictedCollabEmails: [],\n retrictedGroups: [],\n trackingProps: {\n collaboratorListTracking: {},\n inviteCollabsEmailTracking: {},\n inviteCollabTracking: {},\n modalTracking: {},\n removeLinkConfirmModalTracking: {},\n sharedLinkEmailTracking: {},\n sharedLinkTracking: {},\n },\n };\n\n constructor(props: USFProps) {\n super(props);\n\n this.state = {\n classificationLabelId: '',\n emailSharedLinkContacts: [],\n inviteCollabsContacts: props.initiallySelectedContacts,\n inviteePermissionLevel: '',\n isEmailLinkSectionExpanded: false,\n isFetchingJustificationReasons: false,\n isInviteSectionExpanded: !!props.initiallySelectedContacts.length,\n justificationReasons: [],\n showCollaboratorList: false,\n };\n }\n\n componentDidUpdate(prevProps: USFProps) {\n const { isCollabRestrictionJustificationAllowed, item, restrictedCollabEmails, restrictedGroups } = this.props;\n const {\n restrictedGroups: prevRestrictedGroups,\n restrictedCollabEmails: prevRestrictedCollabEmails,\n isCollabRestrictionJustificationAllowed: prevIsCollabRestrictionJustificationAllowed,\n } = prevProps;\n\n const didCollabRestrictionsChange =\n !isEqual(restrictedGroups, prevRestrictedGroups) ||\n !isEqual(restrictedCollabEmails, prevRestrictedCollabEmails) ||\n isCollabRestrictionJustificationAllowed !== prevIsCollabRestrictionJustificationAllowed;\n\n if (didCollabRestrictionsChange && this.shouldRequireCollabJustification()) {\n this.fetchJustificationReasons(item, JUSTIFICATION_CHECKPOINT_EXTERNAL_COLLAB);\n }\n }\n\n fetchJustificationReasons = (item: Item, checkpoint: JustificationCheckpoint) => {\n const { justificationReasons } = this.state;\n const { getJustificationReasons } = this.props;\n const hasJustificationReasons = !!justificationReasons.length;\n\n if (!getJustificationReasons || hasJustificationReasons) {\n return Promise.resolve();\n }\n this.setState({ isFetchingJustificationReasons: true });\n\n return getJustificationReasons(item.typedID, checkpoint)\n .then(({ classificationLabelId, options }: GetJustificationReasonsResponse) => {\n this.setState({\n classificationLabelId,\n justificationReasons: options.map(({ id, title }) => ({\n displayText: title,\n value: id,\n })),\n });\n })\n .finally(() => {\n this.setState({ isFetchingJustificationReasons: false });\n });\n };\n\n shouldRequireCollabJustification = () => {\n const { inviteCollabsContacts } = this.state;\n const { isCollabRestrictionJustificationAllowed, restrictedCollabEmails, restrictedGroups } = this.props;\n\n const hasRestrictedCollabs = hasRestrictedContacts(\n inviteCollabsContacts,\n restrictedCollabEmails,\n restrictedGroups,\n );\n return hasRestrictedCollabs && isCollabRestrictionJustificationAllowed;\n };\n\n handleInviteCollabPillCreate = (pills: Array<SelectOptionProp | Contact>) => {\n return this.onPillCreate(INVITE_COLLABS_CONTACTS_TYPE, pills);\n };\n\n handleEmailSharedLinkPillCreate = (pills: Array<SelectOptionProp | Contact>) => {\n return this.onPillCreate(EMAIL_SHARED_LINK_CONTACTS_TYPE, pills);\n };\n\n onToggleSharedLink = (event: SyntheticInputEvent<HTMLInputElement>) => {\n const { target } = event;\n const {\n handleFtuxCloseClick,\n onAddLink,\n openConfirmModal,\n shouldRenderFTUXTooltip,\n trackingProps,\n } = this.props;\n const { sharedLinkTracking } = trackingProps;\n const { onToggleLink } = sharedLinkTracking;\n\n if (shouldRenderFTUXTooltip) {\n handleFtuxCloseClick();\n }\n\n if (target.type === 'checkbox') {\n if (target.checked === false) {\n openConfirmModal();\n } else {\n onAddLink();\n }\n\n if (onToggleLink) {\n onToggleLink(target.checked);\n }\n }\n };\n\n showCollaboratorList = () => {\n this.setState({ showCollaboratorList: true });\n };\n\n closeCollaboratorList = () => {\n this.setState({ showCollaboratorList: false });\n };\n\n handleSendInvites = (data: Object) => {\n const { inviteePermissions, isCollabRestrictionJustificationAllowed, sendInvites, trackingProps } = this.props;\n const { inviteCollabsEmailTracking } = trackingProps;\n const { onSendClick } = inviteCollabsEmailTracking;\n const { classificationLabelId, inviteePermissionLevel } = this.state;\n const defaultPermissionLevel = getDefaultPermissionLevel(inviteePermissions);\n const selectedPermissionLevel = inviteePermissionLevel || defaultPermissionLevel;\n const { emails, groupIDs, justificationReason, message, restrictedEmails, restrictedGroups } = data;\n\n let params = {\n emails: emails.join(','),\n groupIDs: groupIDs.join(','),\n emailMessage: message,\n permission: selectedPermissionLevel,\n numsOfInvitees: emails.length,\n numOfInviteeGroups: groupIDs.length,\n };\n\n const hasJustificationReason = !!justificationReason;\n const hasRestrictedInvitees = !isEmpty(restrictedEmails) || !isEmpty(restrictedGroups);\n const shouldSubmitJustificationReason =\n hasJustificationReason && hasRestrictedInvitees && isCollabRestrictionJustificationAllowed;\n\n if (shouldSubmitJustificationReason) {\n params = {\n ...params,\n classificationLabelId,\n justificationReason: {\n id: justificationReason.value,\n title: justificationReason.displayText,\n },\n };\n }\n\n if (onSendClick) {\n onSendClick(params);\n }\n\n return sendInvites(params);\n };\n\n handleSendSharedLink = (data: Object) => {\n const { sendSharedLink, sharedLink, trackingProps } = this.props;\n const { sharedLinkEmailTracking } = trackingProps;\n const { permissionLevel } = sharedLink;\n const { onSendClick } = sharedLinkEmailTracking;\n\n const { emails, groupIDs } = data;\n\n if (onSendClick) {\n const params = {\n ...data,\n numsOfRecipients: emails.length,\n numOfRecipientGroups: groupIDs.length,\n permissionLevel,\n };\n onSendClick(params);\n }\n\n return sendSharedLink(data);\n };\n\n // TODO-AH: Change permission level to use the appropriate flow type\n handleInviteePermissionChange = (permissionLevel: string) => {\n const { trackingProps } = this.props;\n const { inviteCollabTracking } = trackingProps;\n const { onInviteePermissionChange } = inviteCollabTracking;\n\n this.setState({ inviteePermissionLevel: permissionLevel });\n\n if (onInviteePermissionChange) {\n onInviteePermissionChange(permissionLevel);\n }\n };\n\n onPillCreate = (type: string, pills: Array<SelectOptionProp | Contact>) => {\n // If this is a dropdown select event, we ignore it\n // $FlowFixMe\n const selectOptionPills = pills.filter(pill => !pill.id);\n if (selectOptionPills.length === 0) {\n return;\n }\n\n const { getContactsByEmail } = this.props;\n\n if (getContactsByEmail) {\n const emails = pills.map(pill => pill.value);\n // $FlowFixMe\n getContactsByEmail({ emails }).then((contacts: Object) => {\n if (type === INVITE_COLLABS_CONTACTS_TYPE) {\n this.setState(prevState => ({\n inviteCollabsContacts: mergeContacts(prevState.inviteCollabsContacts, contacts),\n }));\n } else if (type === EMAIL_SHARED_LINK_CONTACTS_TYPE) {\n this.setState(prevState => ({\n emailSharedLinkContacts: mergeContacts(prevState.emailSharedLinkContacts, contacts),\n }));\n }\n });\n }\n };\n\n openInviteCollaborators = (value: string) => {\n const { handleFtuxCloseClick } = this.props;\n if (this.state.isInviteSectionExpanded) {\n return;\n }\n\n // checking the value because IE seems to trigger onInput immediately\n // on focus of the contacts field\n if (value !== '') {\n handleFtuxCloseClick();\n this.setState(\n {\n isInviteSectionExpanded: true,\n },\n () => {\n const {\n trackingProps: {\n inviteCollabTracking: { onEnterInviteCollabs },\n },\n } = this.props;\n\n if (onEnterInviteCollabs) {\n onEnterInviteCollabs();\n }\n },\n );\n }\n };\n\n openInviteCollaboratorsSection = () => {\n this.setState({\n isInviteSectionExpanded: true,\n });\n };\n\n closeInviteCollaborators = () => {\n this.setState({\n isInviteSectionExpanded: false,\n });\n };\n\n openEmailSharedLinkForm = () => {\n const { handleFtuxCloseClick } = this.props;\n handleFtuxCloseClick();\n this.setState({\n isEmailLinkSectionExpanded: true,\n });\n };\n\n closeEmailSharedLinkForm = () => {\n this.setState({ isEmailLinkSectionExpanded: false });\n };\n\n hasExternalContact = (type: string): boolean => {\n const { inviteCollabsContacts, emailSharedLinkContacts } = this.state;\n if (type === INVITE_COLLABS_CONTACTS_TYPE) {\n return inviteCollabsContacts.some(contact => contact.isExternalUser);\n }\n if (type === EMAIL_SHARED_LINK_CONTACTS_TYPE) {\n return emailSharedLinkContacts.some(contact => contact.isExternalUser);\n }\n return false;\n };\n\n isRemovingAllRestrictedCollabs = (\n currentInviteCollabsContacts: Array<Contact>,\n newInviteCollabsContacts: Array<Contact>,\n ) => {\n const { restrictedCollabEmails, restrictedGroups } = this.props;\n\n const hasRestrictedCollabs = hasRestrictedContacts(\n currentInviteCollabsContacts,\n restrictedCollabEmails,\n restrictedGroups,\n );\n const hasRestrictedCollabsAfterUpdate = hasRestrictedContacts(\n newInviteCollabsContacts,\n restrictedCollabEmails,\n restrictedGroups,\n );\n\n return hasRestrictedCollabs && !hasRestrictedCollabsAfterUpdate;\n };\n\n updateInviteCollabsContacts = (inviteCollabsContacts: Array<Contact>) => {\n const { inviteCollabsContacts: currentInviteCollabsContacts } = this.state;\n const { onRemoveAllRestrictedCollabs, setUpdatedContacts } = this.props;\n\n const isRemovingAllRestrictedCollabs = this.isRemovingAllRestrictedCollabs(\n currentInviteCollabsContacts,\n inviteCollabsContacts,\n );\n\n this.setState({\n inviteCollabsContacts,\n });\n\n if (setUpdatedContacts) {\n setUpdatedContacts(inviteCollabsContacts);\n }\n if (onRemoveAllRestrictedCollabs && isRemovingAllRestrictedCollabs) {\n onRemoveAllRestrictedCollabs();\n }\n };\n\n updateEmailSharedLinkContacts = (emailSharedLinkContacts: Array<Contact>) => {\n this.setState({\n emailSharedLinkContacts,\n });\n };\n\n shouldAutoFocusSharedLink = () => {\n const { focusSharedLinkOnLoad, sharedLink, sharedLinkLoaded, createSharedLinkOnLoad } = this.props;\n\n if (!createSharedLinkOnLoad && !focusSharedLinkOnLoad) {\n return false;\n }\n // if not forcing focus or not a newly added shared link, return false\n if (!(focusSharedLinkOnLoad || sharedLink.isNewSharedLink)) {\n return false;\n }\n // otherwise wait until the link data is loaded before focusing\n if (!sharedLinkLoaded) {\n return false;\n }\n return true;\n };\n\n renderInviteSection() {\n const {\n canInvite,\n collabRestrictionType,\n collaborationRestrictionWarning,\n config,\n contactLimit,\n getCollaboratorContacts,\n getContactAvatarUrl,\n handleFtuxCloseClick,\n item,\n recommendedSharingTooltipCalloutName = null,\n restrictedCollabEmails,\n restrictedGroups,\n sendInvitesError,\n shouldRenderFTUXTooltip,\n showEnterEmailsCallout = false,\n showCalloutForUser = false,\n showUpgradeInlineNotice = false,\n showUpgradeOptions,\n submitting,\n suggestedCollaborators,\n trackingProps,\n } = this.props;\n const { type } = item;\n const { isFetchingJustificationReasons, isInviteSectionExpanded, justificationReasons } = this.state;\n const { inviteCollabsEmailTracking, modalTracking } = trackingProps;\n const contactsFieldDisabledTooltip =\n type === ITEM_TYPE_WEBLINK ? (\n <FormattedMessage {...messages.inviteDisabledWeblinkTooltip} />\n ) : (\n <FormattedMessage {...messages.inviteDisabledTooltip} />\n );\n const inlineNotice = sendInvitesError\n ? {\n type: 'error',\n content: sendInvitesError,\n }\n : {\n type: 'warning',\n content: collaborationRestrictionWarning,\n };\n const avatars = this.renderCollaboratorAvatars();\n const { ftuxConfirmButtonProps } = modalTracking;\n const ftuxTooltipText = (\n <div>\n <h4 className=\"ftux-tooltip-title\">\n <FormattedMessage {...messages.ftuxNewUSMUserTitle} />\n </h4>\n <p className=\"ftux-tooltip-body\">\n <FormattedMessage {...messages.ftuxNewUSMUserBody} />{' '}\n <Link className=\"ftux-tooltip-link\" href={SHARED_LINKS_COMMUNITY_URL} target=\"_blank\">\n <FormattedMessage {...messages.ftuxLinkText} />\n </Link>\n </p>\n <div className=\"ftux-tooltip-controls\">\n <Button className=\"ftux-tooltip-button\" onClick={handleFtuxCloseClick} {...ftuxConfirmButtonProps}>\n <FormattedMessage {...messages.ftuxConfirmLabel} />\n </Button>\n </div>\n </div>\n );\n const ftuxTooltipProps = {\n className: 'usm-ftux-tooltip',\n // don't want ftux tooltip to show if the recommended sharing tooltip callout is showing\n isShown: !recommendedSharingTooltipCalloutName && shouldRenderFTUXTooltip && showCalloutForUser,\n position: 'middle-left',\n showCloseButton: true,\n text: ftuxTooltipText,\n theme: 'callout',\n };\n\n return (\n <>\n <Tooltip {...ftuxTooltipProps}>\n <div className=\"invite-collaborator-container\" data-testid=\"invite-collaborator-container\">\n <EmailForm\n config={config}\n contactLimit={contactLimit}\n collabRestrictionType={collabRestrictionType}\n contactsFieldAvatars={avatars}\n contactsFieldDisabledTooltip={contactsFieldDisabledTooltip}\n contactsFieldLabel={<FormattedMessage {...messages.inviteFieldLabel} />}\n getContacts={getCollaboratorContacts}\n getContactAvatarUrl={getContactAvatarUrl}\n inlineNotice={inlineNotice}\n isContactsFieldEnabled={canInvite}\n isExpanded={isInviteSectionExpanded}\n isFetchingJustificationReasons={isFetchingJustificationReasons}\n isExternalUserSelected={this.hasExternalContact(INVITE_COLLABS_CONTACTS_TYPE)}\n isRestrictionJustificationEnabled={this.shouldRequireCollabJustification()}\n justificationReasons={justificationReasons}\n onContactInput={this.openInviteCollaborators}\n onPillCreate={this.handleInviteCollabPillCreate}\n onRequestClose={this.closeInviteCollaborators}\n onSubmit={this.handleSendInvites}\n openInviteCollaboratorsSection={this.openInviteCollaboratorsSection}\n recommendedSharingTooltipCalloutName={recommendedSharingTooltipCalloutName}\n restrictedEmails={restrictedCollabEmails}\n restrictedGroups={restrictedGroups}\n showEnterEmailsCallout={showEnterEmailsCallout}\n submitting={submitting}\n selectedContacts={this.state.inviteCollabsContacts}\n suggestedCollaborators={suggestedCollaborators}\n updateSelectedContacts={this.updateInviteCollabsContacts}\n {...inviteCollabsEmailTracking}\n >\n {this.renderInviteePermissionsDropdown()}\n {showUpgradeOptions && !showUpgradeInlineNotice && this.renderUpgradeLinkDescription()}\n </EmailForm>\n </div>\n </Tooltip>\n </>\n );\n }\n\n renderCollaboratorAvatars() {\n const { collaboratorsList, canInvite, currentUserID, item, trackingProps } = this.props;\n const { modalTracking } = trackingProps;\n let avatarsContent = null;\n\n if (collaboratorsList) {\n const { collaborators } = collaboratorsList;\n const { hideCollaborators = true } = item;\n const canShowCollaboratorAvatars = hideCollaborators ? canInvite : true;\n\n // filter out the current user by comparing to the ItemCollabRecord ID field\n avatarsContent = canShowCollaboratorAvatars && (\n <CollaboratorAvatars\n collaborators={collaborators.filter(collaborator => String(collaborator.userID) !== currentUserID)}\n onClick={this.showCollaboratorList}\n containerAttributes={modalTracking.collaboratorAvatarsProps}\n />\n );\n }\n\n return avatarsContent;\n }\n\n renderCollaboratorMessage(resinTarget: string) {\n const { openUpgradePlanModal = () => {} } = this.props;\n return (\n <>\n <FormattedCompMessage\n id=\"boxui.unifiedShare.upgradeCollaboratorAccessDescription\"\n description=\"Description for cta to upgrade to get collaborator access controls\"\n >\n Set the level of{' '}\n <Link\n className=\"upgrade-link\"\n href=\"https://support.box.com/hc/en-us/articles/360044196413-Understanding-Collaborator-Permission-Levels\"\n target=\"_blank\"\n >\n collaborator access\n </Link>{' '}\n and increase security through one of our paid plans.{' '}\n </FormattedCompMessage>\n <PlainButton\n className=\"upgrade-link\"\n data-resin-target={resinTarget}\n onClick={openUpgradePlanModal}\n type=\"button\"\n >\n <FormattedMessage {...messages.upgradeLink} />\n </PlainButton>\n </>\n );\n }\n\n renderUpgradeLinkDescription() {\n const { openUpgradePlanModal = () => {}, trackingProps = {} } = this.props;\n const { inviteCollabsEmailTracking = {} } = trackingProps;\n const { upgradeLinkProps = {} } = inviteCollabsEmailTracking;\n\n return (\n <div className=\"upgrade-description\">\n <UpgradeBadge />\n <FormattedMessage\n values={{\n upgradeGetMoreAccessControlsLink: (\n <PlainButton\n className=\"upgrade-link\"\n onClick={openUpgradePlanModal}\n type=\"button\"\n {...upgradeLinkProps}\n >\n <FormattedMessage {...messages.upgradeGetMoreAccessControlsLink} />\n </PlainButton>\n ),\n }}\n {...messages.upgradeGetMoreAccessControlsDescription}\n />\n </div>\n );\n }\n\n renderUpgradeInlineNotice() {\n return (\n <InlineNotice title={<FormattedMessage {...messages.upgradeInlineNoticeTitle} />} type=\"info\">\n {this.renderCollaboratorMessage('external_collab_top_message_upgrade_cta')}\n </InlineNotice>\n );\n }\n\n renderInviteePermissionsDropdown() {\n const { inviteePermissions, item, submitting, canInvite, trackingProps } = this.props;\n const { type } = item;\n const { inviteCollabTracking } = trackingProps;\n\n return (\n inviteePermissions && (\n <InviteePermissionsMenu\n disabled={!canInvite || submitting}\n inviteePermissionsButtonProps={inviteCollabTracking.inviteePermissionsButtonProps}\n inviteePermissionLevel={this.state.inviteePermissionLevel}\n inviteePermissions={inviteePermissions}\n changeInviteePermissionLevel={this.handleInviteePermissionChange}\n itemType={type}\n />\n )\n );\n }\n\n renderCollaboratorList() {\n const { item, collaboratorsList, trackingProps } = this.props;\n const { name, type } = item;\n const { collaboratorListTracking } = trackingProps;\n let listContent = null;\n\n if (collaboratorsList) {\n const { collaborators } = collaboratorsList;\n\n listContent = (\n <CollaboratorList\n itemName={name}\n itemType={type}\n onDoneClick={this.closeCollaboratorList}\n item={item}\n collaborators={collaborators}\n trackingProps={collaboratorListTracking}\n />\n );\n }\n\n return listContent;\n }\n\n render() {\n // Shared link section props\n const {\n allShareRestrictionWarning,\n changeSharedLinkAccessLevel,\n createSharedLinkOnLoad,\n changeSharedLinkPermissionLevel,\n config,\n displayInModal,\n focusSharedLinkOnLoad,\n getSharedLinkContacts,\n getContactAvatarUrl,\n intl,\n isAllowEditSharedLinkForFileEnabled,\n isFetching,\n item,\n onAddLink,\n onCopyError,\n onCopyInit,\n onCopySuccess,\n onDismissTooltip = () => {},\n onSettingsClick,\n sendSharedLinkError,\n sharedLink,\n sharedLinkEditTagTargetingApi,\n sharedLinkEditTooltipTargetingApi,\n showEnterEmailsCallout = false,\n showSharedLinkSettingsCallout = false,\n showUpgradeInlineNotice = false,\n showUpgradeOptions,\n submitting,\n tooltips = {},\n trackingProps,\n } = this.props;\n const { sharedLinkTracking, sharedLinkEmailTracking } = trackingProps;\n const { isEmailLinkSectionExpanded, isInviteSectionExpanded, showCollaboratorList } = this.state;\n\n // Only show the restriction warning on the main page of the USM where the email and share link option is available\n const showShareRestrictionWarning =\n !isEmailLinkSectionExpanded &&\n !isInviteSectionExpanded &&\n !showCollaboratorList &&\n allShareRestrictionWarning;\n\n return (\n <div className={displayInModal ? '' : 'be bdl-UnifiedShareForm'}>\n <LoadingIndicatorWrapper isLoading={isFetching} hideContent>\n {showShareRestrictionWarning && allShareRestrictionWarning}\n {showUpgradeOptions && showUpgradeInlineNotice && this.renderUpgradeInlineNotice()}\n\n {!isEmailLinkSectionExpanded && !showCollaboratorList && this.renderInviteSection()}\n\n {!isEmailLinkSectionExpanded && !isInviteSectionExpanded && !showCollaboratorList && (\n <SharedLinkSection\n addSharedLink={onAddLink}\n autofocusSharedLink={this.shouldAutoFocusSharedLink()}\n autoCreateSharedLink={createSharedLinkOnLoad}\n config={config}\n triggerCopyOnLoad={createSharedLinkOnLoad && focusSharedLinkOnLoad}\n changeSharedLinkAccessLevel={changeSharedLinkAccessLevel}\n changeSharedLinkPermissionLevel={changeSharedLinkPermissionLevel}\n intl={intl}\n isAllowEditSharedLinkForFileEnabled={isAllowEditSharedLinkForFileEnabled}\n item={item}\n itemType={item.type}\n onDismissTooltip={onDismissTooltip}\n onEmailSharedLinkClick={this.openEmailSharedLinkForm}\n onSettingsClick={onSettingsClick}\n onToggleSharedLink={this.onToggleSharedLink}\n onCopyInit={onCopyInit}\n onCopySuccess={onCopySuccess}\n onCopyError={onCopyError}\n sharedLink={sharedLink}\n sharedLinkEditTagTargetingApi={sharedLinkEditTagTargetingApi}\n sharedLinkEditTooltipTargetingApi={sharedLinkEditTooltipTargetingApi}\n showSharedLinkSettingsCallout={showSharedLinkSettingsCallout}\n submitting={submitting || isFetching}\n trackingProps={sharedLinkTracking}\n tooltips={tooltips}\n />\n )}\n\n {isEmailLinkSectionExpanded && !showCollaboratorList && (\n <EmailForm\n contactsFieldLabel={<FormattedMessage {...messages.sendSharedLinkFieldLabel} />}\n getContactAvatarUrl={getContactAvatarUrl}\n getContacts={getSharedLinkContacts}\n inlineNotice={{\n type: 'error',\n content: sendSharedLinkError,\n }}\n isContactsFieldEnabled\n isExpanded\n isExternalUserSelected={this.hasExternalContact(EMAIL_SHARED_LINK_CONTACTS_TYPE)}\n onPillCreate={this.handleEmailSharedLinkPillCreate}\n onRequestClose={this.closeEmailSharedLinkForm}\n onSubmit={this.handleSendSharedLink}\n showEnterEmailsCallout={showEnterEmailsCallout}\n submitting={submitting}\n selectedContacts={this.state.emailSharedLinkContacts}\n updateSelectedContacts={this.updateEmailSharedLinkContacts}\n {...sharedLinkEmailTracking}\n />\n )}\n {showCollaboratorList && this.renderCollaboratorList()}\n </LoadingIndicatorWrapper>\n </div>\n );\n }\n}\n\nexport { UnifiedShareForm as UnifiedShareFormBase };\nexport default injectIntl(UnifiedShareForm);\n"],"file":"UnifiedShareForm.js"}
@@ -218,6 +218,7 @@ _defineProperty(UnifiedShareModal, "defaultProps", {
218
218
  createSharedLinkOnLoad: false,
219
219
  focusSharedLinkOnLoad: false,
220
220
  restrictedCollabEmails: [],
221
+ restrictedGroups: [],
221
222
  trackingProps: {
222
223
  inviteCollabsEmailTracking: {},
223
224
  sharedLinkEmailTracking: {},
@@ -30,6 +30,7 @@ class UnifiedShareModal extends React.Component<USMProps, State> {
30
30
  createSharedLinkOnLoad: false,
31
31
  focusSharedLinkOnLoad: false,
32
32
  restrictedCollabEmails: [],
33
+ restrictedGroups: [],
33
34
  trackingProps: {
34
35
  inviteCollabsEmailTracking: {},
35
36
  sharedLinkEmailTracking: {},
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/unified-share-modal/UnifiedShareModal.js"],"names":["React","injectIntl","Modal","UnifiedShareModalTitle","UnifiedShareForm","RemoveLinkConfirmModal","UnifiedShareModal","props","getInitialData","finally","setState","isFetching","shouldRenderFTUXTooltip","getInitialDataCalled","isConfirmModalOpen","onRemoveLink","displayInModal","closeConfirmModal","sharedLinkEditTagTargetingApi","sharedLinkEditTooltipTargetingApi","state","sharedLinkLoaded","handleFtuxCloseClick","openConfirmModal","initialDataReceived","isEmailLinkSectionExpanded","showCollaboratorList","item","trackingProps","type","typedID","modalTracking","onLoad","prevProps","sharedLink","prevSharedLink","url","canInvite","isOpen","onRequestClose","submitting","removeLinkConfirmModalTracking","modalProps","extendedModalProps","focusElementSelector","undefined","renderUSF","removeLink","Component","initiallySelectedContacts","isAllowEditSharedLinkForFileEnabled","createSharedLinkOnLoad","focusSharedLinkOnLoad","restrictedCollabEmails","inviteCollabsEmailTracking","sharedLinkEmailTracking","sharedLinkTracking","inviteCollabTracking","collaboratorListTracking","UnifiedShareModalBase"],"mappings":"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","sourcesContent":["// @flow\n\nimport * as React from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport { Modal } from '../../components/modal';\n\nimport UnifiedShareModalTitle from './UnifiedShareModalTitle';\nimport UnifiedShareForm from './UnifiedShareForm';\nimport RemoveLinkConfirmModal from './RemoveLinkConfirmModal';\nimport type { USMProps } from './flowTypes';\n\nimport './UnifiedShareModal.scss';\n\ntype State = {\n getInitialDataCalled: boolean,\n isConfirmModalOpen: boolean,\n isEmailLinkSectionExpanded: boolean,\n isFetching: boolean,\n sharedLinkLoaded: boolean,\n shouldRenderFTUXTooltip: boolean,\n showCollaboratorList: boolean,\n};\n\nclass UnifiedShareModal extends React.Component<USMProps, State> {\n static defaultProps = {\n displayInModal: true,\n initiallySelectedContacts: [],\n isAllowEditSharedLinkForFileEnabled: false,\n createSharedLinkOnLoad: false,\n focusSharedLinkOnLoad: false,\n restrictedCollabEmails: [],\n trackingProps: {\n inviteCollabsEmailTracking: {},\n sharedLinkEmailTracking: {},\n sharedLinkTracking: {},\n inviteCollabTracking: {},\n modalTracking: {},\n removeLinkConfirmModalTracking: {},\n collaboratorListTracking: {},\n },\n };\n\n constructor(props: USMProps) {\n super(props);\n\n const { initialDataReceived } = props;\n\n this.state = {\n getInitialDataCalled: !!initialDataReceived,\n isConfirmModalOpen: false,\n isEmailLinkSectionExpanded: false,\n isFetching: !initialDataReceived,\n sharedLinkLoaded: false,\n shouldRenderFTUXTooltip: false,\n showCollaboratorList: false,\n };\n }\n\n componentDidMount() {\n const { item, trackingProps } = this.props;\n const { type, typedID } = item;\n const { modalTracking } = trackingProps;\n const { onLoad } = modalTracking;\n const { getInitialDataCalled } = this.state;\n\n // This check is to ensure minimum item props are\n // hydrated before we fetch data\n if (!getInitialDataCalled && type && typedID) {\n this.getInitialData();\n }\n\n if (onLoad) {\n onLoad();\n }\n }\n\n componentDidUpdate(prevProps: USMProps) {\n const { item, sharedLink } = this.props;\n const { type, typedID } = item;\n const prevSharedLink = prevProps.sharedLink;\n const { getInitialDataCalled } = this.state;\n\n // This check is to ensure minimum item props are\n // hydrated before we fetch data\n if (!getInitialDataCalled && type && typedID) {\n this.getInitialData();\n }\n\n // we use state to override the default auto copy prop when a URL comes into view\n if (prevSharedLink.url !== sharedLink.url && sharedLink.url) {\n this.setState({ sharedLinkLoaded: true });\n }\n }\n\n getInitialData = () => {\n const { getInitialData } = this.props;\n\n getInitialData().finally(() => {\n this.setState({\n isFetching: false,\n shouldRenderFTUXTooltip: true,\n });\n });\n this.setState({ getInitialDataCalled: true });\n };\n\n handleFtuxCloseClick = () => {\n this.setState({\n shouldRenderFTUXTooltip: false,\n });\n };\n\n openConfirmModal = () => {\n this.setState({ isConfirmModalOpen: true });\n };\n\n closeConfirmModal = () => {\n this.setState({ isConfirmModalOpen: false });\n };\n\n removeLink = () => {\n const { onRemoveLink, displayInModal } = this.props;\n onRemoveLink();\n if (!displayInModal) {\n this.closeConfirmModal();\n }\n };\n\n renderUSF = () => {\n const { sharedLinkEditTagTargetingApi, sharedLinkEditTooltipTargetingApi } = this.props;\n const { isFetching, sharedLinkLoaded, shouldRenderFTUXTooltip } = this.state;\n\n return (\n <UnifiedShareForm\n {...this.props}\n handleFtuxCloseClick={this.handleFtuxCloseClick}\n isFetching={isFetching}\n openConfirmModal={this.openConfirmModal}\n sharedLinkEditTagTargetingApi={sharedLinkEditTagTargetingApi}\n sharedLinkEditTooltipTargetingApi={sharedLinkEditTooltipTargetingApi}\n sharedLinkLoaded={sharedLinkLoaded}\n shouldRenderFTUXTooltip={shouldRenderFTUXTooltip}\n />\n );\n };\n\n render() {\n // Shared link section props\n const { canInvite, displayInModal, isOpen, item, onRequestClose, submitting, trackingProps } = this.props;\n const { modalTracking, removeLinkConfirmModalTracking } = trackingProps;\n const { modalProps } = modalTracking;\n const { isEmailLinkSectionExpanded, isConfirmModalOpen, showCollaboratorList } = this.state;\n\n // focus logic at modal level\n const extendedModalProps = {\n focusElementSelector: canInvite\n ? '.bdl-PillSelector-input' // focus on invite collabs field\n : '.toggle-simple', // focus on shared link toggle\n ...modalProps,\n };\n\n return (\n <>\n {displayInModal ? (\n <Modal\n className=\"be-modal unified-share-modal\"\n isOpen={isConfirmModalOpen ? false : isOpen}\n onRequestClose={submitting ? undefined : onRequestClose}\n title={\n <UnifiedShareModalTitle\n isEmailLinkSectionExpanded={isEmailLinkSectionExpanded}\n showCollaboratorList={showCollaboratorList}\n item={item}\n />\n }\n {...extendedModalProps}\n >\n {this.renderUSF()}\n </Modal>\n ) : (\n <div className=\"bdl-UnifiedShareForm-container\">{this.renderUSF()}</div>\n )}\n {isConfirmModalOpen && (\n <RemoveLinkConfirmModal\n isOpen={isConfirmModalOpen}\n onRequestClose={this.closeConfirmModal}\n removeLink={this.removeLink}\n submitting={submitting}\n {...removeLinkConfirmModalTracking}\n />\n )}\n </>\n );\n }\n}\n\nexport { UnifiedShareModal as UnifiedShareModalBase };\nexport default injectIntl(UnifiedShareModal);\n"],"file":"UnifiedShareModal.js"}
1
+ {"version":3,"sources":["../../../src/features/unified-share-modal/UnifiedShareModal.js"],"names":["React","injectIntl","Modal","UnifiedShareModalTitle","UnifiedShareForm","RemoveLinkConfirmModal","UnifiedShareModal","props","getInitialData","finally","setState","isFetching","shouldRenderFTUXTooltip","getInitialDataCalled","isConfirmModalOpen","onRemoveLink","displayInModal","closeConfirmModal","sharedLinkEditTagTargetingApi","sharedLinkEditTooltipTargetingApi","state","sharedLinkLoaded","handleFtuxCloseClick","openConfirmModal","initialDataReceived","isEmailLinkSectionExpanded","showCollaboratorList","item","trackingProps","type","typedID","modalTracking","onLoad","prevProps","sharedLink","prevSharedLink","url","canInvite","isOpen","onRequestClose","submitting","removeLinkConfirmModalTracking","modalProps","extendedModalProps","focusElementSelector","undefined","renderUSF","removeLink","Component","initiallySelectedContacts","isAllowEditSharedLinkForFileEnabled","createSharedLinkOnLoad","focusSharedLinkOnLoad","restrictedCollabEmails","restrictedGroups","inviteCollabsEmailTracking","sharedLinkEmailTracking","sharedLinkTracking","inviteCollabTracking","collaboratorListTracking","UnifiedShareModalBase"],"mappings":"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","sourcesContent":["// @flow\n\nimport * as React from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport { Modal } from '../../components/modal';\n\nimport UnifiedShareModalTitle from './UnifiedShareModalTitle';\nimport UnifiedShareForm from './UnifiedShareForm';\nimport RemoveLinkConfirmModal from './RemoveLinkConfirmModal';\nimport type { USMProps } from './flowTypes';\n\nimport './UnifiedShareModal.scss';\n\ntype State = {\n getInitialDataCalled: boolean,\n isConfirmModalOpen: boolean,\n isEmailLinkSectionExpanded: boolean,\n isFetching: boolean,\n sharedLinkLoaded: boolean,\n shouldRenderFTUXTooltip: boolean,\n showCollaboratorList: boolean,\n};\n\nclass UnifiedShareModal extends React.Component<USMProps, State> {\n static defaultProps = {\n displayInModal: true,\n initiallySelectedContacts: [],\n isAllowEditSharedLinkForFileEnabled: false,\n createSharedLinkOnLoad: false,\n focusSharedLinkOnLoad: false,\n restrictedCollabEmails: [],\n restrictedGroups: [],\n trackingProps: {\n inviteCollabsEmailTracking: {},\n sharedLinkEmailTracking: {},\n sharedLinkTracking: {},\n inviteCollabTracking: {},\n modalTracking: {},\n removeLinkConfirmModalTracking: {},\n collaboratorListTracking: {},\n },\n };\n\n constructor(props: USMProps) {\n super(props);\n\n const { initialDataReceived } = props;\n\n this.state = {\n getInitialDataCalled: !!initialDataReceived,\n isConfirmModalOpen: false,\n isEmailLinkSectionExpanded: false,\n isFetching: !initialDataReceived,\n sharedLinkLoaded: false,\n shouldRenderFTUXTooltip: false,\n showCollaboratorList: false,\n };\n }\n\n componentDidMount() {\n const { item, trackingProps } = this.props;\n const { type, typedID } = item;\n const { modalTracking } = trackingProps;\n const { onLoad } = modalTracking;\n const { getInitialDataCalled } = this.state;\n\n // This check is to ensure minimum item props are\n // hydrated before we fetch data\n if (!getInitialDataCalled && type && typedID) {\n this.getInitialData();\n }\n\n if (onLoad) {\n onLoad();\n }\n }\n\n componentDidUpdate(prevProps: USMProps) {\n const { item, sharedLink } = this.props;\n const { type, typedID } = item;\n const prevSharedLink = prevProps.sharedLink;\n const { getInitialDataCalled } = this.state;\n\n // This check is to ensure minimum item props are\n // hydrated before we fetch data\n if (!getInitialDataCalled && type && typedID) {\n this.getInitialData();\n }\n\n // we use state to override the default auto copy prop when a URL comes into view\n if (prevSharedLink.url !== sharedLink.url && sharedLink.url) {\n this.setState({ sharedLinkLoaded: true });\n }\n }\n\n getInitialData = () => {\n const { getInitialData } = this.props;\n\n getInitialData().finally(() => {\n this.setState({\n isFetching: false,\n shouldRenderFTUXTooltip: true,\n });\n });\n this.setState({ getInitialDataCalled: true });\n };\n\n handleFtuxCloseClick = () => {\n this.setState({\n shouldRenderFTUXTooltip: false,\n });\n };\n\n openConfirmModal = () => {\n this.setState({ isConfirmModalOpen: true });\n };\n\n closeConfirmModal = () => {\n this.setState({ isConfirmModalOpen: false });\n };\n\n removeLink = () => {\n const { onRemoveLink, displayInModal } = this.props;\n onRemoveLink();\n if (!displayInModal) {\n this.closeConfirmModal();\n }\n };\n\n renderUSF = () => {\n const { sharedLinkEditTagTargetingApi, sharedLinkEditTooltipTargetingApi } = this.props;\n const { isFetching, sharedLinkLoaded, shouldRenderFTUXTooltip } = this.state;\n\n return (\n <UnifiedShareForm\n {...this.props}\n handleFtuxCloseClick={this.handleFtuxCloseClick}\n isFetching={isFetching}\n openConfirmModal={this.openConfirmModal}\n sharedLinkEditTagTargetingApi={sharedLinkEditTagTargetingApi}\n sharedLinkEditTooltipTargetingApi={sharedLinkEditTooltipTargetingApi}\n sharedLinkLoaded={sharedLinkLoaded}\n shouldRenderFTUXTooltip={shouldRenderFTUXTooltip}\n />\n );\n };\n\n render() {\n // Shared link section props\n const { canInvite, displayInModal, isOpen, item, onRequestClose, submitting, trackingProps } = this.props;\n const { modalTracking, removeLinkConfirmModalTracking } = trackingProps;\n const { modalProps } = modalTracking;\n const { isEmailLinkSectionExpanded, isConfirmModalOpen, showCollaboratorList } = this.state;\n\n // focus logic at modal level\n const extendedModalProps = {\n focusElementSelector: canInvite\n ? '.bdl-PillSelector-input' // focus on invite collabs field\n : '.toggle-simple', // focus on shared link toggle\n ...modalProps,\n };\n\n return (\n <>\n {displayInModal ? (\n <Modal\n className=\"be-modal unified-share-modal\"\n isOpen={isConfirmModalOpen ? false : isOpen}\n onRequestClose={submitting ? undefined : onRequestClose}\n title={\n <UnifiedShareModalTitle\n isEmailLinkSectionExpanded={isEmailLinkSectionExpanded}\n showCollaboratorList={showCollaboratorList}\n item={item}\n />\n }\n {...extendedModalProps}\n >\n {this.renderUSF()}\n </Modal>\n ) : (\n <div className=\"bdl-UnifiedShareForm-container\">{this.renderUSF()}</div>\n )}\n {isConfirmModalOpen && (\n <RemoveLinkConfirmModal\n isOpen={isConfirmModalOpen}\n onRequestClose={this.closeConfirmModal}\n removeLink={this.removeLink}\n submitting={submitting}\n {...removeLinkConfirmModalTracking}\n />\n )}\n </>\n );\n }\n}\n\nexport { UnifiedShareModal as UnifiedShareModalBase };\nexport default injectIntl(UnifiedShareModal);\n"],"file":"UnifiedShareModal.js"}
@@ -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 */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/unified-share-modal/flowTypes.js"],"names":["React","constants","accessLevelValues","ANYONE_WITH_LINK","ANYONE_IN_COMPANY","PEOPLE_IN_ITEM","permissionLevelValues","CAN_EDIT","CAN_VIEW_DOWNLOAD","CAN_VIEW_ONLY","collaboratorGroupValues","COLLAB_GROUP_TYPE","COLLAB_USER_TYPE","COLLAB_PENDING_TYPE"],"mappings":";;;;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAO,KAAKC,SAAZ,MAA2B,aAA3B;AAIA;AACA,IAAMC,iBAAiB,iEAClBD,SAAS,CAACE,gBADQ,EACW,kBADX,uCAElBF,SAAS,CAACG,iBAFQ,EAEY,mBAFZ,uCAGlBH,SAAS,CAACI,cAHQ,EAGS,gBAHT,sBAAvB;AAOA,IAAMC,qBAAqB,uEACtBL,SAAS,CAACM,QADY,EACD,UADC,0CAEtBN,SAAS,CAACO,iBAFY,EAEQ,mBAFR,0CAGtBP,SAAS,CAACQ,aAHY,EAGI,eAHJ,yBAA3B;AAOA,IAAMC,uBAAuB,uEACxBT,SAAS,CAACU,iBADc,EACM,mBADN,0CAExBV,SAAS,CAACW,gBAFc,EAEK,kBAFL,0CAGxBX,SAAS,CAACY,mBAHc,EAGQ,qBAHR,yBAA7B","sourcesContent":["// @flow\nimport * as React from 'react';\nimport * as constants from './constants';\nimport type { BoxItemPermission, ItemType } from '../../common/types/core';\nimport type { TargetingApi } from '../targeting/types';\n\n// DRY: Invert the constants so that we can construct the appropriate enum types\nconst accessLevelValues = {\n [constants.ANYONE_WITH_LINK]: 'ANYONE_WITH_LINK',\n [constants.ANYONE_IN_COMPANY]: 'ANYONE_IN_COMPANY',\n [constants.PEOPLE_IN_ITEM]: 'PEOPLE_IN_ITEM',\n};\nexport type accessLevelType = $Keys<typeof accessLevelValues>;\n\nconst permissionLevelValues = {\n [constants.CAN_EDIT]: 'CAN_EDIT',\n [constants.CAN_VIEW_DOWNLOAD]: 'CAN_VIEW_DOWNLOAD',\n [constants.CAN_VIEW_ONLY]: 'CAN_VIEW_ONLY',\n};\nexport type permissionLevelType = $Keys<typeof permissionLevelValues>;\n\nconst collaboratorGroupValues = {\n [constants.COLLAB_GROUP_TYPE]: 'COLLAB_GROUP_TYPE',\n [constants.COLLAB_USER_TYPE]: 'COLLAB_USER_TYPE',\n [constants.COLLAB_PENDING_TYPE]: 'COLLAB_PENDING_TYPE',\n};\nexport type collaboratorGroupType = $Keys<typeof collaboratorGroupValues>;\n\nexport type allowedAccessLevelsType = {\n peopleInThisItem?: boolean,\n peopleInYourCompany?: boolean,\n peopleWithTheLink?: boolean,\n};\n\nexport type accessLevelsDisabledReasonType = {\n peopleInThisItem?:\n | typeof constants.DISABLED_REASON_ACCESS_POLICY\n | typeof constants.DISABLED_REASON_MALICIOUS_CONTENT\n | null,\n peopleInYourCompany?:\n | typeof constants.DISABLED_REASON_ACCESS_POLICY\n | typeof constants.DISABLED_REASON_MALICIOUS_CONTENT\n | null,\n peopleWithTheLink?:\n | typeof constants.DISABLED_REASON_ACCESS_POLICY\n | typeof constants.DISABLED_REASON_MALICIOUS_CONTENT\n | null,\n};\n\nexport type contactType = {\n email?: string,\n id: string,\n isExternalUser?: boolean,\n name?: string,\n text?: string,\n type: string,\n value?: string,\n};\n\nexport type SuggestedCollab = contactType & {\n userScore: number,\n};\n\nexport type SuggestedCollabLookup = {\n [id: string]: SuggestedCollab,\n};\n\nexport type inviteePermissionType = {\n default: boolean,\n disabled?: boolean,\n text: string,\n value: string,\n};\n\nexport type item = {\n bannerPolicy?: {\n body: string,\n colorID?: number,\n title?: string,\n },\n canUserSeeClassification: boolean,\n classification?: string,\n description: string,\n extension: string,\n grantedPermissions: {\n itemShare: boolean,\n },\n hideCollaborators: boolean,\n id: string,\n name: string,\n ownerEmail?: string,\n ownerID?: string,\n permissions?: BoxItemPermission,\n type: ItemType,\n typedID: string,\n};\n\nexport type emailFormTrackingType = {\n cancelButtonProps?: Object,\n messageProps?: Object,\n onContactAdd?: Function,\n onContactRemove?: Function,\n onSendClick?: Function,\n};\n\nexport type sharedLinkTrackingType = {\n copyButtonProps?: Object,\n onChangeSharedLinkAccessLevel?: Function,\n onChangeSharedLinkPermissionLevel?: Function,\n onSharedLinkAccessMenuOpen?: Function,\n onSharedLinkCopy?: Function,\n onToggleLink?: Function,\n sendSharedLinkButtonProps?: Object,\n sharedLinkAccessMenuButtonProps?: Object,\n sharedLinkPermissionsMenuButtonProps?: Object,\n sharedLinkSettingsButtonProps?: Object,\n};\n\nexport type collaboratorListTrackingType = {\n doneButtonProps?: Object,\n emailProps?: Object,\n manageLinkProps?: Object,\n usernameProps?: Object,\n viewAdditionalProps?: Object,\n};\n\nexport type trackingPropsType = {\n collaboratorListTracking: collaboratorListTrackingType,\n inviteCollabTracking: {\n inviteePermissionsButtonProps?: Object,\n onEnterInviteCollabs?: Function,\n onInviteePermissionChange?: Function,\n },\n inviteCollabsEmailTracking: {\n ...emailFormTrackingType,\n upgradeLinkProps?: Object,\n },\n modalTracking: {\n collaboratorAvatarsProps?: Object,\n ftuxConfirmButtonProps?: Object,\n modalProps?: Object,\n onLoad?: Function,\n },\n removeLinkConfirmModalTracking: {\n cancelButtonProps?: Object,\n modalProps?: Object,\n okayButtonProps?: Object,\n onLoad?: Function,\n },\n sharedLinkEmailTracking: emailFormTrackingType,\n sharedLinkTracking: sharedLinkTrackingType,\n};\n\n// this type is a strict subset of the SharedLinkRecord data returned from the server\nexport type sharedLinkType = {\n accessLevel: accessLevelType,\n accessLevelsDisabledReason?: accessLevelsDisabledReasonType,\n allowedAccessLevels: allowedAccessLevelsType,\n canChangeAccessLevel: boolean,\n enterpriseName: string,\n expirationTimestamp: ?number,\n isDownloadAllowed: boolean,\n isDownloadSettingAvailable: boolean,\n isEditAllowed: boolean,\n isEditSettingAvailable: boolean,\n isNewSharedLink: boolean,\n isPreviewAllowed: boolean,\n permissionLevel: permissionLevelType,\n url: string,\n};\n\nexport type collaboratorType = {\n collabID: number,\n email?: string,\n expiration?: {\n executeAt: string,\n },\n hasCustomAvatar: boolean,\n imageURL: ?string,\n isExternalCollab?: boolean,\n name: string,\n type: collaboratorGroupType,\n userID: ?number,\n};\n\nexport type collaboratorsListType = {\n collaborators: Array<collaboratorType>,\n};\n\nexport type tooltipComponentIdentifierType =\n | 'shared-link-access-menu'\n | 'shared-link-copy-button'\n | 'shared-link-settings'\n | 'shared-link-toggle';\n\nexport type justificationCheckpointType =\n | typeof constants.JUSTIFICATION_CHECKPOINT_COLLAB\n | typeof constants.JUSTIFICATION_CHECKPOINT_CREATE_SHARED_LINK\n | typeof constants.JUSTIFICATION_CHECKPOINT_DOWNLOAD\n | typeof constants.JUSTIFICATION_CHECKPOINT_EXTERNAL_COLLAB;\n\nexport type justificationReasonType = {\n description?: string,\n id: string,\n isDetailsRequired?: boolean,\n title: string,\n};\nexport type getJustificationReasonsResponseType = {\n classificationLabelId: string,\n options: Array<justificationReasonType>,\n};\n\n// Prop types used in the invite section of the Unified Share Form\ntype InviteSectionTypes = {\n /** Message warning about restrictions regarding inviting collaborators to the item */\n collaborationRestrictionWarning: React.Node,\n /** Used to limit the number of contacts that can be added in the contacts field */\n contactLimit?: number,\n /** Handler function for when the user types into invite collaborators field to fetch contacts. */\n getCollaboratorContacts: (query: string) => Promise<Array<contactType>>,\n /** Shows a callout tooltip next to the names / email addresses input field explaining pre-populated recommendation */\n recommendedSharingTooltipCalloutName: ?string,\n /**\n * Function to send collab invitations based on the given parameters object.\n * This function should return a Promise.\n */\n sendInvites: (params: Object) => Promise<Object>,\n /** Message indicating an error occurred while sending the invites. */\n sendInvitesError: React.Node,\n /** Function hoists contact data upon updates to the parent component. Only needed for suggested collabs. */\n setUpdatedContacts?: (inviteCollabsContacts: Array<contactType>) => void,\n /** Determine whether to show the First-time experience tooltip on load */\n showCalloutForUser?: boolean,\n /**\n * Flag to show link to upgrade and get more access controls.\n * Only applicable to non-file item types.\n */\n showUpgradeOptions: boolean,\n /** Data for suggested collaborators shown at bottom of input box. UI doesn't render when this has length of 0. */\n suggestedCollaborators?: SuggestedCollabLookup,\n};\n\n// Additional invite section types that related with information barrier, external collab\n// restrictions and business justifications.\nexport type CollabRestrictionType =\n | typeof constants.COLLAB_RESTRICTION_TYPE_ACCESS_POLICY\n | typeof constants.COLLAB_RESTRICTION_TYPE_INFORMATION_BARRIER;\n\ntype ExternalCollabRestrictionsTypes = {\n /** The type of restriction that applies to restrictedCollabEmails */\n collabRestrictionType?: CollabRestrictionType,\n /** Function that fetches the array of justification reason options to display on the justification select field */\n getJustificationReasons?: (\n itemTypedID: string,\n checkpoint: justificationCheckpointType,\n ) => Promise<getJustificationReasonsResponseType>,\n /** Determines whether or not a business justification can be provided to bypass external collab restrictions */\n isCollabRestrictionJustificationAllowed?: boolean,\n /** Function that is called when all restricted collaborators are removed from the email form */\n onRemoveAllRestrictedCollabs?: () => void,\n /** An array of all the collab email addresses that have been determined to be restricted by a security policy. */\n restrictedCollabEmails: Array<string>,\n};\n\n// Prop types used in the shared link section of the Unified Share Form\n// (Note: while there is an overlap between these types and the props passed to the Shared Link Section component,\n// they are different. See the render() function of the Unified Share Form for details.)\ntype SharedLinkSectionTypes = {\n /** Handler function that changes shared link access level */\n changeSharedLinkAccessLevel: (newAccessLevel: accessLevelType) => Promise<{ accessLevel: accessLevelType }>,\n /** Handler function that changes shared link permission level */\n changeSharedLinkPermissionLevel: (\n newPermissionLevel: permissionLevelType,\n ) => Promise<{ permissionLevel: permissionLevelType }>,\n /** Whether the form should create a shared link on load */\n createSharedLinkOnLoad?: boolean,\n /** Handler function that adds the shared link */\n onAddLink: () => void,\n /** Handler for when there is an error copying to clipboard */\n onCopyError?: () => void,\n /** Handler for when we initiate copying from to clipboard */\n onCopyInit?: () => void,\n /** Handler for when successfully copying to clipboard */\n onCopySuccess?: () => void,\n /** Handler function that gets called whenever the user dismisses a tooltip on the given component identifier */\n onDismissTooltip?: (componentIdentifier: tooltipComponentIdentifierType) => void,\n /** Handler function for clicks on the settings icon. If not provided, the settings icon won't be rendered. */\n onSettingsClick?: Function,\n /** Shared link data */\n sharedLink: sharedLinkType,\n /** Shows a callout tooltip next gear icon with info about what can be customized */\n showSharedLinkSettingsCallout?: boolean,\n /** Mapping of components to the content that should be rendered in their tooltips */\n tooltips?: { [componentIdentifier: tooltipComponentIdentifierType]: React.Node },\n};\n\n// Prop types used in the collaborator avatars section of the Unified Share Form\ntype CollaboratorAvatarsTypes = {\n /** List of existing collaborators */\n collaboratorsList?: collaboratorsListType,\n /** User ID of currently logged in user */\n currentUserID: string,\n};\n\ntype EmailFormTypes = {\n /** Function to retrieve the URL for an avatar, given contact details */\n getContactAvatarUrl?: (contact: contactType) => string,\n /** Handler function for when the user types into email shared link field to fetch contacts. */\n getSharedLinkContacts: (query: string) => Promise<Array<contactType>>,\n /**\n * Function to send shared link email based on the given parameters object.\n * This function should return a Promise.\n */\n sendSharedLink: (params: Object) => Promise<Object>,\n /** Message indicating an error occurred while sending the shared link. */\n sendSharedLinkError: React.Node,\n};\n\nexport type USMConfig = {\n /** Whether the \"Email Shared Link\" button and form should be rendered in the USM/USF */\n showEmailSharedLinkForm: boolean,\n /* Whether the message section of the invite collaborator page should be rendered in the USM/USF */\n showInviteCollaboratorMessageSection: boolean,\n};\n\n// Prop types shared by both the Unified Share Modal and the Unified Share Form\ntype BaseUnifiedShareProps = CollaboratorAvatarsTypes &\n EmailFormTypes &\n ExternalCollabRestrictionsTypes &\n InviteSectionTypes &\n SharedLinkSectionTypes & {\n /** Inline message */\n allShareRestrictionWarning?: React.Node,\n /** Flag to determine whether to enable invite collaborators section */\n canInvite: boolean,\n /** Configuration object for hiding parts of the USM */\n config?: USMConfig,\n /** Whether the full USM should be rendered */\n displayInModal?: boolean,\n /** Whether the form should focus the shared link after the URL is resolved */\n focusSharedLinkOnLoad?: boolean,\n /** Handler function that gets contacts by a list of emails */\n getContactsByEmail?: ({ emails: Array<string>, itemTypedID?: string }) => Promise<Object>,\n /** Handler function for getting intial data for form */\n getInitialData: Function,\n /** An array of initially selected contacts. If none are initially selected, an empty array. */\n initiallySelectedContacts: Array<contactType>,\n /** Intl object */\n intl: any,\n /** An array of invitee permissions */\n inviteePermissions: Array<inviteePermissionType>,\n /** Item data */\n item: item,\n /** Shows a callout tooltip next to the names / email addresses input field encouraging users to fill out coworkers contact info */\n showEnterEmailsCallout?: boolean,\n /** Whether or not a request is in progress */\n submitting: boolean,\n /** Object with props and handlers for tracking interactions */\n trackingProps: trackingPropsType,\n };\n\n// Prop types for the Unified Share Modal\nexport type USMProps = BaseUnifiedShareProps & {\n /** Function for closing the Remove Link Confirm Modal */\n closeConfirmModal: () => void,\n /** Whether initial data for the USM has already been received */\n initialDataReceived: boolean,\n /** Whether the allow edit shared link for file FF is enabled */\n isAllowEditSharedLinkForFileEnabled?: boolean,\n /** Whether the USM is open */\n isOpen?: boolean,\n /** Handler function that removes the shared link, used in the Remove Link Confirm Modal */\n onRemoveLink: () => void,\n /** Handler function for when the USM is closed */\n onRequestClose?: Function,\n /** Whether the FTUX tag should be rendered for the Can Edit option */\n sharedLinkEditTagTargetingApi?: TargetingApi,\n /** Whether the FTUX tooltip should be rendered for Editable Shared Links */\n sharedLinkEditTooltipTargetingApi?: TargetingApi,\n};\n\n// Prop types for the Unified Share Form, passed from the Unified Share Modal\nexport type USFProps = BaseUnifiedShareProps & {\n /** Function for closing the FTUX tooltip */\n handleFtuxCloseClick: () => void,\n /** Whether the allow edit shared link for file FF is enabled */\n isAllowEditSharedLinkForFileEnabled: boolean,\n /** Whether the data for the USM/USF is being fetched */\n isFetching: boolean,\n /** Function for opening the Remove Link Confirm Modal */\n openConfirmModal: () => void,\n /** Function for opening the Upgrade Plan Modal */\n openUpgradePlanModal: () => void,\n /** Whether the FTUX tag should be rendered for the Can Edit option */\n sharedLinkEditTagTargetingApi?: TargetingApi,\n /** Whether the FTUX tooltip should be rendered for Editable Shared Links */\n sharedLinkEditTooltipTargetingApi?: TargetingApi,\n /** Whether the shared link has loaded */\n sharedLinkLoaded: boolean,\n /** Whether the FTUX tooltip should be rendered */\n shouldRenderFTUXTooltip: boolean,\n /** Whether the upgrade inline notice should be rendered */\n showUpgradeInlineNotice?: boolean,\n};\n\nexport type InviteCollaboratorsRequest = {\n classificationLabelId?: string,\n emailMessage: string,\n emails: string,\n groupIDs: string,\n justificationReason?: justificationReasonType,\n numOfInviteeGroups: number,\n numsOfInvitees: number,\n permission: string,\n};\n"],"file":"flowTypes.js"}
1
+ {"version":3,"sources":["../../../src/features/unified-share-modal/flowTypes.js"],"names":["React","constants","accessLevelValues","ANYONE_WITH_LINK","ANYONE_IN_COMPANY","PEOPLE_IN_ITEM","permissionLevelValues","CAN_EDIT","CAN_VIEW_DOWNLOAD","CAN_VIEW_ONLY","collaboratorGroupValues","COLLAB_GROUP_TYPE","COLLAB_USER_TYPE","COLLAB_PENDING_TYPE"],"mappings":";;;;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAO,KAAKC,SAAZ,MAA2B,aAA3B;AAIA;AACA,IAAMC,iBAAiB,iEAClBD,SAAS,CAACE,gBADQ,EACW,kBADX,uCAElBF,SAAS,CAACG,iBAFQ,EAEY,mBAFZ,uCAGlBH,SAAS,CAACI,cAHQ,EAGS,gBAHT,sBAAvB;AAOA,IAAMC,qBAAqB,uEACtBL,SAAS,CAACM,QADY,EACD,UADC,0CAEtBN,SAAS,CAACO,iBAFY,EAEQ,mBAFR,0CAGtBP,SAAS,CAACQ,aAHY,EAGI,eAHJ,yBAA3B;AAOA,IAAMC,uBAAuB,uEACxBT,SAAS,CAACU,iBADc,EACM,mBADN,0CAExBV,SAAS,CAACW,gBAFc,EAEK,kBAFL,0CAGxBX,SAAS,CAACY,mBAHc,EAGQ,qBAHR,yBAA7B","sourcesContent":["// @flow\nimport * as React from 'react';\nimport * as constants from './constants';\nimport type { BoxItemPermission, ItemType } from '../../common/types/core';\nimport type { TargetingApi } from '../targeting/types';\n\n// DRY: Invert the constants so that we can construct the appropriate enum types\nconst accessLevelValues = {\n [constants.ANYONE_WITH_LINK]: 'ANYONE_WITH_LINK',\n [constants.ANYONE_IN_COMPANY]: 'ANYONE_IN_COMPANY',\n [constants.PEOPLE_IN_ITEM]: 'PEOPLE_IN_ITEM',\n};\nexport type accessLevelType = $Keys<typeof accessLevelValues>;\n\nconst permissionLevelValues = {\n [constants.CAN_EDIT]: 'CAN_EDIT',\n [constants.CAN_VIEW_DOWNLOAD]: 'CAN_VIEW_DOWNLOAD',\n [constants.CAN_VIEW_ONLY]: 'CAN_VIEW_ONLY',\n};\nexport type permissionLevelType = $Keys<typeof permissionLevelValues>;\n\nconst collaboratorGroupValues = {\n [constants.COLLAB_GROUP_TYPE]: 'COLLAB_GROUP_TYPE',\n [constants.COLLAB_USER_TYPE]: 'COLLAB_USER_TYPE',\n [constants.COLLAB_PENDING_TYPE]: 'COLLAB_PENDING_TYPE',\n};\nexport type collaboratorGroupType = $Keys<typeof collaboratorGroupValues>;\n\nexport type allowedAccessLevelsType = {\n peopleInThisItem?: boolean,\n peopleInYourCompany?: boolean,\n peopleWithTheLink?: boolean,\n};\n\nexport type accessLevelsDisabledReasonType = {\n peopleInThisItem?:\n | typeof constants.DISABLED_REASON_ACCESS_POLICY\n | typeof constants.DISABLED_REASON_MALICIOUS_CONTENT\n | null,\n peopleInYourCompany?:\n | typeof constants.DISABLED_REASON_ACCESS_POLICY\n | typeof constants.DISABLED_REASON_MALICIOUS_CONTENT\n | null,\n peopleWithTheLink?:\n | typeof constants.DISABLED_REASON_ACCESS_POLICY\n | typeof constants.DISABLED_REASON_MALICIOUS_CONTENT\n | null,\n};\n\nexport type contactType = {\n email?: string,\n id: string,\n isExternalUser?: boolean,\n name?: string,\n text?: string,\n type: string,\n value?: string,\n};\n\nexport type SuggestedCollab = contactType & {\n userScore: number,\n};\n\nexport type SuggestedCollabLookup = {\n [id: string]: SuggestedCollab,\n};\n\nexport type inviteePermissionType = {\n default: boolean,\n disabled?: boolean,\n text: string,\n value: string,\n};\n\nexport type item = {\n bannerPolicy?: {\n body: string,\n colorID?: number,\n title?: string,\n },\n canUserSeeClassification: boolean,\n classification?: string,\n description: string,\n extension: string,\n grantedPermissions: {\n itemShare: boolean,\n },\n hideCollaborators: boolean,\n id: string,\n name: string,\n ownerEmail?: string,\n ownerID?: string,\n permissions?: BoxItemPermission,\n type: ItemType,\n typedID: string,\n};\n\nexport type emailFormTrackingType = {\n cancelButtonProps?: Object,\n messageProps?: Object,\n onContactAdd?: Function,\n onContactRemove?: Function,\n onSendClick?: Function,\n};\n\nexport type sharedLinkTrackingType = {\n copyButtonProps?: Object,\n onChangeSharedLinkAccessLevel?: Function,\n onChangeSharedLinkPermissionLevel?: Function,\n onSharedLinkAccessMenuOpen?: Function,\n onSharedLinkCopy?: Function,\n onToggleLink?: Function,\n sendSharedLinkButtonProps?: Object,\n sharedLinkAccessMenuButtonProps?: Object,\n sharedLinkPermissionsMenuButtonProps?: Object,\n sharedLinkSettingsButtonProps?: Object,\n};\n\nexport type collaboratorListTrackingType = {\n doneButtonProps?: Object,\n emailProps?: Object,\n manageLinkProps?: Object,\n usernameProps?: Object,\n viewAdditionalProps?: Object,\n};\n\nexport type trackingPropsType = {\n collaboratorListTracking: collaboratorListTrackingType,\n inviteCollabTracking: {\n inviteePermissionsButtonProps?: Object,\n onEnterInviteCollabs?: Function,\n onInviteePermissionChange?: Function,\n },\n inviteCollabsEmailTracking: {\n ...emailFormTrackingType,\n upgradeLinkProps?: Object,\n },\n modalTracking: {\n collaboratorAvatarsProps?: Object,\n ftuxConfirmButtonProps?: Object,\n modalProps?: Object,\n onLoad?: Function,\n },\n removeLinkConfirmModalTracking: {\n cancelButtonProps?: Object,\n modalProps?: Object,\n okayButtonProps?: Object,\n onLoad?: Function,\n },\n sharedLinkEmailTracking: emailFormTrackingType,\n sharedLinkTracking: sharedLinkTrackingType,\n};\n\n// this type is a strict subset of the SharedLinkRecord data returned from the server\nexport type sharedLinkType = {\n accessLevel: accessLevelType,\n accessLevelsDisabledReason?: accessLevelsDisabledReasonType,\n allowedAccessLevels: allowedAccessLevelsType,\n canChangeAccessLevel: boolean,\n enterpriseName: string,\n expirationTimestamp: ?number,\n isDownloadAllowed: boolean,\n isDownloadSettingAvailable: boolean,\n isEditAllowed: boolean,\n isEditSettingAvailable: boolean,\n isNewSharedLink: boolean,\n isPreviewAllowed: boolean,\n permissionLevel: permissionLevelType,\n url: string,\n};\n\nexport type collaboratorType = {\n collabID: number,\n email?: string,\n expiration?: {\n executeAt: string,\n },\n hasCustomAvatar: boolean,\n imageURL: ?string,\n isExternalCollab?: boolean,\n name: string,\n type: collaboratorGroupType,\n userID: ?number,\n};\n\nexport type collaboratorsListType = {\n collaborators: Array<collaboratorType>,\n};\n\nexport type tooltipComponentIdentifierType =\n | 'shared-link-access-menu'\n | 'shared-link-copy-button'\n | 'shared-link-settings'\n | 'shared-link-toggle';\n\nexport type justificationCheckpointType =\n | typeof constants.JUSTIFICATION_CHECKPOINT_COLLAB\n | typeof constants.JUSTIFICATION_CHECKPOINT_CREATE_SHARED_LINK\n | typeof constants.JUSTIFICATION_CHECKPOINT_DOWNLOAD\n | typeof constants.JUSTIFICATION_CHECKPOINT_EXTERNAL_COLLAB;\n\nexport type justificationReasonType = {\n description?: string,\n id: string,\n isDetailsRequired?: boolean,\n title: string,\n};\nexport type getJustificationReasonsResponseType = {\n classificationLabelId: string,\n options: Array<justificationReasonType>,\n};\n\n// Prop types used in the invite section of the Unified Share Form\ntype InviteSectionTypes = {\n /** Message warning about restrictions regarding inviting collaborators to the item */\n collaborationRestrictionWarning: React.Node,\n /** Used to limit the number of contacts that can be added in the contacts field */\n contactLimit?: number,\n /** Handler function for when the user types into invite collaborators field to fetch contacts. */\n getCollaboratorContacts: (query: string) => Promise<Array<contactType>>,\n /** Shows a callout tooltip next to the names / email addresses input field explaining pre-populated recommendation */\n recommendedSharingTooltipCalloutName: ?string,\n /**\n * Function to send collab invitations based on the given parameters object.\n * This function should return a Promise.\n */\n sendInvites: (params: Object) => Promise<Object>,\n /** Message indicating an error occurred while sending the invites. */\n sendInvitesError: React.Node,\n /** Function hoists contact data upon updates to the parent component. Only needed for suggested collabs. */\n setUpdatedContacts?: (inviteCollabsContacts: Array<contactType>) => void,\n /** Determine whether to show the First-time experience tooltip on load */\n showCalloutForUser?: boolean,\n /**\n * Flag to show link to upgrade and get more access controls.\n * Only applicable to non-file item types.\n */\n showUpgradeOptions: boolean,\n /** Data for suggested collaborators shown at bottom of input box. UI doesn't render when this has length of 0. */\n suggestedCollaborators?: SuggestedCollabLookup,\n};\n\n// Additional invite section types that related with information barrier, external collab\n// restrictions and business justifications.\nexport type CollabRestrictionType =\n | typeof constants.COLLAB_RESTRICTION_TYPE_ACCESS_POLICY\n | typeof constants.COLLAB_RESTRICTION_TYPE_INFORMATION_BARRIER;\n\ntype CollabRestrictionsTypes = {\n /** The type of restriction that applies to restrictedCollabEmails */\n collabRestrictionType?: CollabRestrictionType,\n /** Function that fetches the array of justification reason options to display on the justification select field */\n getJustificationReasons?: (\n itemTypedID: string,\n checkpoint: justificationCheckpointType,\n ) => Promise<getJustificationReasonsResponseType>,\n /** Determines whether or not a business justification can be provided to bypass external collab restrictions */\n isCollabRestrictionJustificationAllowed?: boolean,\n /** Function that is called when all restricted collaborators are removed from the email form */\n onRemoveAllRestrictedCollabs?: () => void,\n /** An array of all the collab email addresses that have been determined to be restricted by a security policy. */\n restrictedCollabEmails: Array<string>,\n /** An array of all the group ids that have been determined to be restricted by a security policy. */\n restrictedGroups: Array<number>,\n};\n\n// Prop types used in the shared link section of the Unified Share Form\n// (Note: while there is an overlap between these types and the props passed to the Shared Link Section component,\n// they are different. See the render() function of the Unified Share Form for details.)\ntype SharedLinkSectionTypes = {\n /** Handler function that changes shared link access level */\n changeSharedLinkAccessLevel: (newAccessLevel: accessLevelType) => Promise<{ accessLevel: accessLevelType }>,\n /** Handler function that changes shared link permission level */\n changeSharedLinkPermissionLevel: (\n newPermissionLevel: permissionLevelType,\n ) => Promise<{ permissionLevel: permissionLevelType }>,\n /** Whether the form should create a shared link on load */\n createSharedLinkOnLoad?: boolean,\n /** Handler function that adds the shared link */\n onAddLink: () => void,\n /** Handler for when there is an error copying to clipboard */\n onCopyError?: () => void,\n /** Handler for when we initiate copying from to clipboard */\n onCopyInit?: () => void,\n /** Handler for when successfully copying to clipboard */\n onCopySuccess?: () => void,\n /** Handler function that gets called whenever the user dismisses a tooltip on the given component identifier */\n onDismissTooltip?: (componentIdentifier: tooltipComponentIdentifierType) => void,\n /** Handler function for clicks on the settings icon. If not provided, the settings icon won't be rendered. */\n onSettingsClick?: Function,\n /** Shared link data */\n sharedLink: sharedLinkType,\n /** Shows a callout tooltip next gear icon with info about what can be customized */\n showSharedLinkSettingsCallout?: boolean,\n /** Mapping of components to the content that should be rendered in their tooltips */\n tooltips?: { [componentIdentifier: tooltipComponentIdentifierType]: React.Node },\n};\n\n// Prop types used in the collaborator avatars section of the Unified Share Form\ntype CollaboratorAvatarsTypes = {\n /** List of existing collaborators */\n collaboratorsList?: collaboratorsListType,\n /** User ID of currently logged in user */\n currentUserID: string,\n};\n\ntype EmailFormTypes = {\n /** Function to retrieve the URL for an avatar, given contact details */\n getContactAvatarUrl?: (contact: contactType) => string,\n /** Handler function for when the user types into email shared link field to fetch contacts. */\n getSharedLinkContacts: (query: string) => Promise<Array<contactType>>,\n /**\n * Function to send shared link email based on the given parameters object.\n * This function should return a Promise.\n */\n sendSharedLink: (params: Object) => Promise<Object>,\n /** Message indicating an error occurred while sending the shared link. */\n sendSharedLinkError: React.Node,\n};\n\nexport type USMConfig = {\n /** Whether the \"Email Shared Link\" button and form should be rendered in the USM/USF */\n showEmailSharedLinkForm: boolean,\n /* Whether the message section of the invite collaborator page should be rendered in the USM/USF */\n showInviteCollaboratorMessageSection: boolean,\n};\n\n// Prop types shared by both the Unified Share Modal and the Unified Share Form\ntype BaseUnifiedShareProps = CollaboratorAvatarsTypes &\n EmailFormTypes &\n CollabRestrictionsTypes &\n InviteSectionTypes &\n SharedLinkSectionTypes & {\n /** Inline message */\n allShareRestrictionWarning?: React.Node,\n /** Flag to determine whether to enable invite collaborators section */\n canInvite: boolean,\n /** Configuration object for hiding parts of the USM */\n config?: USMConfig,\n /** Whether the full USM should be rendered */\n displayInModal?: boolean,\n /** Whether the form should focus the shared link after the URL is resolved */\n focusSharedLinkOnLoad?: boolean,\n /** Handler function that gets contacts by a list of emails */\n getContactsByEmail?: ({ emails: Array<string>, itemTypedID?: string }) => Promise<Object>,\n /** Handler function for getting intial data for form */\n getInitialData: Function,\n /** An array of initially selected contacts. If none are initially selected, an empty array. */\n initiallySelectedContacts: Array<contactType>,\n /** Intl object */\n intl: any,\n /** An array of invitee permissions */\n inviteePermissions: Array<inviteePermissionType>,\n /** Item data */\n item: item,\n /** Shows a callout tooltip next to the names / email addresses input field encouraging users to fill out coworkers contact info */\n showEnterEmailsCallout?: boolean,\n /** Whether or not a request is in progress */\n submitting: boolean,\n /** Object with props and handlers for tracking interactions */\n trackingProps: trackingPropsType,\n };\n\n// Prop types for the Unified Share Modal\nexport type USMProps = BaseUnifiedShareProps & {\n /** Function for closing the Remove Link Confirm Modal */\n closeConfirmModal: () => void,\n /** Whether initial data for the USM has already been received */\n initialDataReceived: boolean,\n /** Whether the allow edit shared link for file FF is enabled */\n isAllowEditSharedLinkForFileEnabled?: boolean,\n /** Whether the USM is open */\n isOpen?: boolean,\n /** Handler function that removes the shared link, used in the Remove Link Confirm Modal */\n onRemoveLink: () => void,\n /** Handler function for when the USM is closed */\n onRequestClose?: Function,\n /** Whether the FTUX tag should be rendered for the Can Edit option */\n sharedLinkEditTagTargetingApi?: TargetingApi,\n /** Whether the FTUX tooltip should be rendered for Editable Shared Links */\n sharedLinkEditTooltipTargetingApi?: TargetingApi,\n};\n\n// Prop types for the Unified Share Form, passed from the Unified Share Modal\nexport type USFProps = BaseUnifiedShareProps & {\n /** Function for closing the FTUX tooltip */\n handleFtuxCloseClick: () => void,\n /** Whether the allow edit shared link for file FF is enabled */\n isAllowEditSharedLinkForFileEnabled: boolean,\n /** Whether the data for the USM/USF is being fetched */\n isFetching: boolean,\n /** Function for opening the Remove Link Confirm Modal */\n openConfirmModal: () => void,\n /** Function for opening the Upgrade Plan Modal */\n openUpgradePlanModal: () => void,\n /** Whether the FTUX tag should be rendered for the Can Edit option */\n sharedLinkEditTagTargetingApi?: TargetingApi,\n /** Whether the FTUX tooltip should be rendered for Editable Shared Links */\n sharedLinkEditTooltipTargetingApi?: TargetingApi,\n /** Whether the shared link has loaded */\n sharedLinkLoaded: boolean,\n /** Whether the FTUX tooltip should be rendered */\n shouldRenderFTUXTooltip: boolean,\n /** Whether the upgrade inline notice should be rendered */\n showUpgradeInlineNotice?: boolean,\n};\n\nexport type InviteCollaboratorsRequest = {\n classificationLabelId?: string,\n emailMessage: string,\n emails: string,\n groupIDs: string,\n justificationReason?: justificationReasonType,\n numOfInviteeGroups: number,\n numsOfInvitees: number,\n permission: string,\n};\n"],"file":"flowTypes.js"}
@@ -350,22 +350,22 @@ var messages = defineMessages({
350
350
  "id": "boxui.unifiedShare.recommendedSharingTooltipCalloutText",
351
351
  "defaultMessage": "Based on your usage, we think {fullName} would be interested in this file."
352
352
  },
353
- // External collab restrictions and business justifications
353
+ // Information Barrier restrictions, external collab restrictions and business justifications
354
354
  justificationSelectPlaceholder: {
355
355
  "id": "boxui.unifiedShare.justificationSelectPlaceholder",
356
356
  "defaultMessage": "Select Justification"
357
357
  },
358
358
  justificationRequiredError: {
359
359
  "id": "boxui.unifiedShare.justificationRequiredError",
360
- "defaultMessage": "Select a justification or remove people to continue"
360
+ "defaultMessage": "Select a justification or remove to continue"
361
361
  },
362
362
  restrictedContactsError: {
363
363
  "id": "boxui.unifiedShare.restrictedContactsError",
364
- "defaultMessage": "Remove people to continue"
364
+ "defaultMessage": "Remove to continue"
365
365
  },
366
366
  justifiableContactRestrictionNotice: {
367
367
  "id": "boxui.unifiedShare.justifiableContactRestrictionNotice",
368
- "defaultMessage": "This content requires a business justification to invite {count, plural, one {{count} person} other {{count} people}}. Please select a business justification below."
368
+ "defaultMessage": "This content requires a business justification for {count, plural, one {{count} invitation} other {{count} invitations}}. Please select a business justification below."
369
369
  },
370
370
  justifiableContactRestrictionNoticeSingular: {
371
371
  "id": "boxui.unifiedShare.justifiableContactRestrictionNoticeSingular",
@@ -373,11 +373,11 @@ var messages = defineMessages({
373
373
  },
374
374
  justifiableContactRestrictionRemoveButtonLabel: {
375
375
  "id": "boxui.unifiedShare.justifiableContactRestrictionRemoveButtonLabel",
376
- "defaultMessage": "Alternatively, remove {count, plural, one {the person} other {{count} people}} and continue"
376
+ "defaultMessage": "Alternatively, remove to continue"
377
377
  },
378
378
  contactRestrictionNotice: {
379
379
  "id": "boxui.unifiedShare.contactRestrictionNotice",
380
- "defaultMessage": "Invitations cannot be sent to {count, plural, one {{count} person} other {{count} people}} because external collaboration is restricted due to the applied security policy."
380
+ "defaultMessage": "{count, plural, one {{count} invitation} other {{count} invitations}} cannot be sent because external collaboration is restricted due to the applied security policy."
381
381
  },
382
382
  contactRestrictionNoticeSingular: {
383
383
  "id": "boxui.unifiedShare.contactRestrictionNoticeSingular",
@@ -385,15 +385,19 @@ var messages = defineMessages({
385
385
  },
386
386
  contactRestrictionNoticeInformationBarrier: {
387
387
  "id": "boxui.unifiedShare.contactRestrictionNoticeInformationBarrier",
388
- "defaultMessage": "Invitations cannot be sent to {count, plural, one {{count} person} other {{count} people}} due to a security policy."
388
+ "defaultMessage": "{count, plural, one {{count} invitation} other {{count} invitations}} cannot be sent due to a security policy."
389
389
  },
390
390
  contactRestrictionNoticeInformationBarrierSingular: {
391
391
  "id": "boxui.unifiedShare.contactRestrictionNoticeInformationBarrierSingular",
392
392
  "defaultMessage": "Invitations cannot be sent to {email} due to a security policy."
393
393
  },
394
+ contactRestrictionNoticeInformationBarrierSingularGroup: {
395
+ "id": "boxui.unifiedShare.contactRestrictionNoticeInformationBarrierSingularGroup",
396
+ "defaultMessage": "Invitations cannot be sent to \"{groupName}\" due to a security policy."
397
+ },
394
398
  contactRestrictionRemoveButtonLabel: {
395
399
  "id": "boxui.unifiedShare.contactRestrictionRemoveButtonLabel",
396
- "defaultMessage": "Remove {count, plural, one {the person} other {{count} people}} and continue"
400
+ "defaultMessage": "Remove to continue"
397
401
  },
398
402
  contactEmailsTooltipText: {
399
403
  "id": "boxui.unifiedShare.contactEmailsTooltipText",