box-ui-elements 16.1.0-beta.9 → 17.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 (987) hide show
  1. package/CONTRIBUTING.md +4 -0
  2. package/README.md +7 -1
  3. package/dist/explorer.css +1 -1
  4. package/dist/explorer.js +19 -19
  5. package/dist/openwith.css +1 -1
  6. package/dist/openwith.js +10 -10
  7. package/dist/picker.css +1 -1
  8. package/dist/picker.js +12 -12
  9. package/dist/preview.css +1 -1
  10. package/dist/preview.js +17 -17
  11. package/dist/sharing.css +1 -1
  12. package/dist/sharing.js +16 -55
  13. package/dist/sidebar.css +1 -1
  14. package/dist/sidebar.js +17 -17
  15. package/dist/uploader.css +1 -1
  16. package/dist/uploader.js +12 -12
  17. package/es/api/Feed.js +85 -38
  18. package/es/api/Feed.js.flow +46 -1
  19. package/es/api/Feed.js.map +1 -1
  20. package/es/api/Item.js +16 -10
  21. package/es/api/Item.js.flow +7 -4
  22. package/es/api/Item.js.map +1 -1
  23. package/es/api/ThreadedComments.js +58 -23
  24. package/es/api/ThreadedComments.js.flow +40 -0
  25. package/es/api/ThreadedComments.js.map +1 -1
  26. package/es/common/types/feed.js +1 -1
  27. package/es/common/types/feed.js.flow +34 -0
  28. package/es/common/types/feed.js.map +1 -1
  29. package/es/components/avatar/Avatar.js +22 -5
  30. package/es/components/avatar/Avatar.js.flow +24 -7
  31. package/es/components/avatar/Avatar.js.map +1 -1
  32. package/es/components/avatar/Avatar.scss +42 -0
  33. package/es/components/avatar/Avatar.stories.js +58 -0
  34. package/es/components/avatar/Avatar.stories.js.map +1 -1
  35. package/es/components/avatar/messages.js +9 -0
  36. package/es/components/avatar/messages.js.map +1 -0
  37. package/es/components/badgeable/Badgeable.scss +1 -1
  38. package/es/components/breadcrumb/Breadcrumb.js +1 -1
  39. package/es/components/breadcrumb/Breadcrumb.js.flow +1 -1
  40. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  41. package/es/components/button-group/ButtonGroup.scss +2 -2
  42. package/es/components/checkbox/Checkbox.js +5 -1
  43. package/es/components/checkbox/Checkbox.js.flow +7 -0
  44. package/es/components/checkbox/Checkbox.js.map +1 -1
  45. package/es/components/checkbox/Checkbox.scss +2 -2
  46. package/es/components/close-button/CloseButton.js +2 -2
  47. package/es/components/close-button/CloseButton.js.flow +2 -2
  48. package/es/components/close-button/CloseButton.js.map +1 -1
  49. package/es/components/contact-datalist-item/ContactDatalistItem.scss +1 -1
  50. package/es/components/date-picker/DatePicker.js +2 -2
  51. package/es/components/date-picker/DatePicker.js.map +1 -1
  52. package/es/components/date-picker/DatePicker.scss +1 -1
  53. package/es/components/draft-js-editor/DraftJSEditor.scss +1 -1
  54. package/es/components/dropdown-menu/DropdownMenu.js +5 -3
  55. package/es/components/dropdown-menu/DropdownMenu.js.flow +8 -2
  56. package/es/components/dropdown-menu/DropdownMenu.js.map +1 -1
  57. package/es/components/dropdown-menu/DropdownMenu.scss +6 -4
  58. package/es/components/error-mask/ErrorMask.scss +1 -1
  59. package/es/components/flyout/Flyout.js +9 -0
  60. package/es/components/flyout/Flyout.js.flow +13 -0
  61. package/es/components/flyout/Flyout.js.map +1 -1
  62. package/es/components/flyout/Flyout.scss +1 -1
  63. package/es/components/flyout/Overlay.js +2 -1
  64. package/es/components/flyout/Overlay.js.flow +2 -1
  65. package/es/components/flyout/Overlay.js.map +1 -1
  66. package/es/components/grid-view/GridView.js +3 -1
  67. package/es/components/grid-view/GridView.js.flow +3 -2
  68. package/es/components/grid-view/GridView.js.map +1 -1
  69. package/es/components/grid-view/GridViewSlider.js +5 -2
  70. package/es/components/grid-view/GridViewSlider.js.flow +5 -2
  71. package/es/components/grid-view/GridViewSlider.js.map +1 -1
  72. package/es/components/grid-view/GridViewSlider.scss +0 -10
  73. package/es/components/inline-error/InlineError.stories.js +12 -0
  74. package/es/components/inline-error/InlineError.stories.js.flow +9 -0
  75. package/es/components/inline-error/InlineError.stories.js.map +1 -0
  76. package/es/components/inline-notice/InlineNotice.stories.js +42 -0
  77. package/es/components/inline-notice/InlineNotice.stories.js.flow +59 -0
  78. package/es/components/inline-notice/InlineNotice.stories.js.map +1 -0
  79. package/es/components/label/InfoIconWithTooltip.js +2 -2
  80. package/es/components/label/InfoIconWithTooltip.js.map +1 -1
  81. package/es/components/label/Label.scss +1 -1
  82. package/es/components/media-query/stories/MediaQuery.stories.js +4 -2
  83. package/es/components/media-query/stories/MediaQuery.stories.js.flow +11 -2
  84. package/es/components/media-query/stories/MediaQuery.stories.js.map +1 -1
  85. package/es/components/media-query/types.js.flow +1 -0
  86. package/es/components/media-query/types.js.map +1 -1
  87. package/es/components/media-query/useMediaQuery.js +3 -1
  88. package/es/components/media-query/useMediaQuery.js.flow +3 -0
  89. package/es/components/media-query/useMediaQuery.js.map +1 -1
  90. package/es/components/menu/MenuHeader.scss +1 -1
  91. package/es/components/menu/SubmenuItem.js +3 -1
  92. package/es/components/menu/SubmenuItem.js.map +1 -1
  93. package/es/components/modal/Modal.scss +15 -0
  94. package/es/components/modal/ModalDialog.js +40 -10
  95. package/es/components/modal/ModalDialog.js.flow +44 -5
  96. package/es/components/modal/ModalDialog.js.map +1 -1
  97. package/es/components/nav-sidebar/NavSidebar.scss +1 -1
  98. package/es/components/nav-sidebar/NavSidebar.stories.js +37 -0
  99. package/es/components/nav-sidebar/NavSidebar.stories.js.flow +54 -0
  100. package/es/components/nav-sidebar/NavSidebar.stories.js.map +1 -0
  101. package/es/components/pill-cloud/PillCloud.stories.js +88 -0
  102. package/es/components/pill-cloud/PillCloud.stories.js.flow +48 -0
  103. package/es/components/pill-cloud/PillCloud.stories.js.map +1 -0
  104. package/es/components/pill-selector-dropdown/PillSelector.js +20 -11
  105. package/es/components/pill-selector-dropdown/PillSelector.js.flow +26 -4
  106. package/es/components/pill-selector-dropdown/PillSelector.js.map +1 -1
  107. package/es/components/pill-selector-dropdown/PillSelector.scss +4 -0
  108. package/es/components/pill-selector-dropdown/PillSelectorDropdown.js +1 -0
  109. package/es/components/pill-selector-dropdown/PillSelectorDropdown.js.flow +1 -0
  110. package/es/components/pill-selector-dropdown/PillSelectorDropdown.js.map +1 -1
  111. package/es/components/pill-selector-dropdown/_mixins.scss +1 -1
  112. package/es/components/popper/PopperComponent.js +3 -1
  113. package/es/components/popper/PopperComponent.js.flow +3 -2
  114. package/es/components/popper/PopperComponent.js.map +1 -1
  115. package/es/components/radio/RadioButton.scss +1 -1
  116. package/es/components/search-form/SearchForm.js +21 -11
  117. package/es/components/search-form/SearchForm.js.flow +30 -6
  118. package/es/components/search-form/SearchForm.js.map +1 -1
  119. package/es/components/select-button/SelectButton.js +6 -2
  120. package/es/components/select-button/SelectButton.js.flow +23 -2
  121. package/es/components/select-button/SelectButton.js.map +1 -1
  122. package/es/components/select-field/BaseSelectField.js +6 -2
  123. package/es/components/select-field/BaseSelectField.js.flow +19 -2
  124. package/es/components/select-field/BaseSelectField.js.map +1 -1
  125. package/es/components/select-field/SelectField.scss +8 -1
  126. package/es/components/selector-dropdown/SelectorDropdown.js +11 -3
  127. package/es/components/selector-dropdown/SelectorDropdown.js.flow +22 -5
  128. package/es/components/selector-dropdown/SelectorDropdown.js.map +1 -1
  129. package/es/components/selector-dropdown/SelectorDropdown.scss +2 -2
  130. package/es/components/table/makeSelectable.js +38 -7
  131. package/es/components/table/makeSelectable.js.flow +33 -6
  132. package/es/components/table/makeSelectable.js.map +1 -1
  133. package/es/components/text-area/TextArea.scss +1 -1
  134. package/es/components/text-input/TextInput.scss +1 -1
  135. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js +3 -2
  136. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js.flow +4 -1
  137. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js.map +1 -1
  138. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.scss +11 -7
  139. package/es/components/thumbnail-card/ThumbnailCard.scss +1 -1
  140. package/es/components/time/ReadableTime.stories.js +46 -0
  141. package/es/components/time/ReadableTime.stories.js.flow +56 -0
  142. package/es/components/time/ReadableTime.stories.js.map +1 -0
  143. package/es/components/toggle/Toggle.js +11 -4
  144. package/es/components/toggle/Toggle.js.flow +16 -5
  145. package/es/components/toggle/Toggle.js.map +1 -1
  146. package/es/components/toggle/Toggle.scss +3 -3
  147. package/es/components/tooltip/CloseButton.js +24 -0
  148. package/es/components/tooltip/CloseButton.js.map +1 -0
  149. package/es/components/tooltip/Tooltip.js +4 -10
  150. package/es/components/tooltip/Tooltip.js.map +1 -1
  151. package/es/constants.js +7 -0
  152. package/es/constants.js.flow +7 -0
  153. package/es/constants.js.map +1 -1
  154. package/es/elements/common/_variables.scss +7 -2
  155. package/es/elements/common/base.scss +14 -0
  156. package/es/elements/common/breadcrumbs/Breadcrumb.scss +1 -1
  157. package/es/elements/common/breadcrumbs/BreadcrumbDropdown.scss +1 -1
  158. package/es/elements/common/breadcrumbs/InlineBreadcrumbs.scss +2 -2
  159. package/es/elements/common/header/Header.js +6 -2
  160. package/es/elements/common/header/Header.js.flow +7 -2
  161. package/es/elements/common/header/Header.js.map +1 -1
  162. package/es/elements/common/header/Logo.js +2 -1
  163. package/es/elements/common/header/Logo.js.flow +5 -1
  164. package/es/elements/common/header/Logo.js.map +1 -1
  165. package/es/elements/common/item/IconCell.js +68 -0
  166. package/es/elements/common/item/IconCell.js.flow +55 -0
  167. package/es/elements/common/item/IconCell.js.map +1 -0
  168. package/es/elements/common/item/ItemDetails.scss +1 -1
  169. package/es/elements/common/item/iconCellRenderer.js +5 -36
  170. package/es/elements/common/item/iconCellRenderer.js.flow +6 -22
  171. package/es/elements/common/item/iconCellRenderer.js.map +1 -1
  172. package/es/elements/common/messages.js +28 -0
  173. package/es/elements/common/messages.js.flow +35 -0
  174. package/es/elements/common/messages.js.map +1 -1
  175. package/es/elements/common/modal.scss +0 -2
  176. package/es/elements/common/share-access-select/ShareAccessSelect.scss +1 -1
  177. package/es/elements/common/sub-header/AddButton.js +4 -1
  178. package/es/elements/common/sub-header/AddButton.js.flow +2 -1
  179. package/es/elements/common/sub-header/AddButton.js.map +1 -1
  180. package/es/elements/common/sub-header/Sort.js +4 -10
  181. package/es/elements/common/sub-header/Sort.js.flow +7 -6
  182. package/es/elements/common/sub-header/Sort.js.map +1 -1
  183. package/es/elements/common/sub-header/SortButton.js +19 -6
  184. package/es/elements/common/sub-header/SortButton.js.flow +23 -10
  185. package/es/elements/common/sub-header/SortButton.js.map +1 -1
  186. package/es/elements/common/sub-header/ViewModeChangeButton.js +3 -3
  187. package/es/elements/common/sub-header/ViewModeChangeButton.js.flow +3 -3
  188. package/es/elements/common/sub-header/ViewModeChangeButton.js.map +1 -1
  189. package/es/elements/content-explorer/Content.js.flow +2 -1
  190. package/es/elements/content-explorer/Content.js.map +1 -1
  191. package/es/elements/content-explorer/ContentExplorer.js +63 -20
  192. package/es/elements/content-explorer/ContentExplorer.js.flow +50 -13
  193. package/es/elements/content-explorer/ContentExplorer.js.map +1 -1
  194. package/es/elements/content-explorer/ItemGrid.js +55 -7
  195. package/es/elements/content-explorer/ItemGrid.js.flow +60 -9
  196. package/es/elements/content-explorer/ItemGrid.js.map +1 -1
  197. package/es/elements/content-explorer/ItemGridThumbnail.js +5 -2
  198. package/es/elements/content-explorer/ItemGridThumbnail.js.flow +5 -2
  199. package/es/elements/content-explorer/ItemGridThumbnail.js.map +1 -1
  200. package/es/elements/content-explorer/ItemList.js +4 -2
  201. package/es/elements/content-explorer/ItemList.js.flow +4 -2
  202. package/es/elements/content-explorer/ItemList.js.map +1 -1
  203. package/es/elements/content-explorer/ItemList.scss +16 -8
  204. package/es/elements/content-explorer/MoreOptions.js +6 -4
  205. package/es/elements/content-explorer/MoreOptions.js.flow +11 -4
  206. package/es/elements/content-explorer/MoreOptions.js.map +1 -1
  207. package/es/elements/content-open-with/ContentOpenWith.scss +1 -1
  208. package/es/elements/content-picker/Footer.js +15 -6
  209. package/es/elements/content-picker/Footer.js.flow +62 -51
  210. package/es/elements/content-picker/Footer.js.map +1 -1
  211. package/es/elements/content-picker/ItemList.scss +1 -1
  212. package/es/elements/content-preview/ContentPreview.js +44 -12
  213. package/es/elements/content-preview/ContentPreview.js.flow +43 -6
  214. package/es/elements/content-preview/ContentPreview.js.map +1 -1
  215. package/es/elements/content-preview/preview-header/PreviewHeader.scss +1 -1
  216. package/es/elements/content-sharing/ContentSharing.js +2 -2
  217. package/es/elements/content-sharing/ContentSharing.js.flow +2 -2
  218. package/es/elements/content-sharing/ContentSharing.js.map +1 -1
  219. package/es/elements/content-sidebar/ActivitySidebar.js +291 -62
  220. package/es/elements/content-sidebar/ActivitySidebar.js.flow +262 -17
  221. package/es/elements/content-sidebar/ActivitySidebar.js.map +1 -1
  222. package/es/elements/content-sidebar/ActivitySidebar.scss +7 -0
  223. package/es/elements/content-sidebar/ActivitySidebarFilter.js +36 -18
  224. package/es/elements/content-sidebar/ActivitySidebarFilter.js.flow +64 -23
  225. package/es/elements/content-sidebar/ActivitySidebarFilter.js.map +1 -1
  226. package/es/elements/content-sidebar/AddTaskMenu.scss +1 -1
  227. package/es/elements/content-sidebar/SidebarContent.js +2 -2
  228. package/es/elements/content-sidebar/SidebarContent.js.flow +1 -1
  229. package/es/elements/content-sidebar/SidebarContent.js.map +1 -1
  230. package/es/elements/content-sidebar/SidebarContent.scss +3 -3
  231. package/es/elements/content-sidebar/SidebarNav.js +3 -17
  232. package/es/elements/content-sidebar/SidebarNav.js.flow +3 -15
  233. package/es/elements/content-sidebar/SidebarNav.js.map +1 -1
  234. package/es/elements/content-sidebar/SidebarNavSign.js +48 -69
  235. package/es/elements/content-sidebar/SidebarNavSign.js.map +1 -1
  236. package/es/elements/content-sidebar/SidebarNavSign.scss +3 -25
  237. package/es/elements/content-sidebar/SidebarNavSignButton.js +79 -0
  238. package/es/elements/content-sidebar/SidebarNavSignButton.js.map +1 -0
  239. package/es/elements/content-sidebar/SidebarNavSignButton.scss +27 -0
  240. package/es/elements/content-sidebar/activity-feed/Avatar.js +4 -2
  241. package/es/elements/content-sidebar/activity-feed/Avatar.js.flow +5 -2
  242. package/es/elements/content-sidebar/activity-feed/Avatar.js.map +1 -1
  243. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +61 -15
  244. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.flow +73 -28
  245. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.map +1 -1
  246. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +122 -53
  247. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.flow +80 -13
  248. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.map +1 -1
  249. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.scss +11 -0
  250. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.js +9 -2
  251. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.js.map +1 -1
  252. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.scss +28 -0
  253. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +27 -7
  254. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.flow +48 -29
  255. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.map +1 -1
  256. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +69 -6
  257. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +35 -4
  258. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.flow +42 -5
  259. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.map +1 -1
  260. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +15 -0
  261. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +21 -8
  262. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.flow +30 -5
  263. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.map +1 -1
  264. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +4 -7
  265. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +45 -15
  266. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.flow +43 -13
  267. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.map +1 -1
  268. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +26 -3
  269. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +29 -48
  270. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.flow +67 -56
  271. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.map +1 -1
  272. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +1 -1
  273. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +14 -53
  274. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.flow +16 -51
  275. package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.map +1 -1
  276. package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js +3 -2
  277. package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.flow +5 -4
  278. package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.map +1 -1
  279. package/es/elements/content-sidebar/activity-feed/annotation-thread/types.js +2 -0
  280. package/es/elements/content-sidebar/activity-feed/annotation-thread/types.js.flow +7 -0
  281. package/es/elements/content-sidebar/activity-feed/annotation-thread/types.js.map +1 -0
  282. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +29 -17
  283. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.flow +32 -10
  284. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.map +1 -1
  285. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js +317 -63
  286. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js.flow +249 -55
  287. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js.map +1 -1
  288. package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +27 -93
  289. package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.flow +42 -83
  290. package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.map +1 -1
  291. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +15 -6
  292. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.flow +27 -12
  293. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.map +1 -1
  294. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.scss +11 -8
  295. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityLink.scss +1 -1
  296. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +3 -1
  297. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.flow +3 -1
  298. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.map +1 -1
  299. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.scss +5 -0
  300. package/es/elements/content-sidebar/activity-feed/comment/BaseComment.js +385 -0
  301. package/es/elements/content-sidebar/activity-feed/comment/BaseComment.js.flow +456 -0
  302. package/es/elements/content-sidebar/activity-feed/comment/BaseComment.js.map +1 -0
  303. package/es/elements/content-sidebar/activity-feed/comment/BaseComment.scss +30 -0
  304. package/es/elements/content-sidebar/activity-feed/comment/Comment.js +53 -9
  305. package/es/elements/content-sidebar/activity-feed/comment/Comment.js.flow +42 -5
  306. package/es/elements/content-sidebar/activity-feed/comment/Comment.js.map +1 -1
  307. package/es/elements/content-sidebar/activity-feed/comment/Comment.scss +10 -0
  308. package/es/elements/content-sidebar/activity-feed/comment/CreateReply.js +54 -0
  309. package/es/elements/content-sidebar/activity-feed/comment/CreateReply.js.flow +72 -0
  310. package/es/elements/content-sidebar/activity-feed/comment/CreateReply.js.map +1 -0
  311. package/es/elements/content-sidebar/activity-feed/comment/CreateReply.scss +21 -0
  312. package/es/elements/content-sidebar/activity-feed/comment/Replies.scss +41 -0
  313. package/es/elements/content-sidebar/activity-feed/comment/RepliesToggle.js +44 -0
  314. package/es/elements/content-sidebar/activity-feed/comment/RepliesToggle.js.flow +41 -0
  315. package/es/elements/content-sidebar/activity-feed/comment/RepliesToggle.js.map +1 -0
  316. package/es/elements/content-sidebar/activity-feed/comment/RepliesToggle.scss +6 -0
  317. package/es/elements/content-sidebar/activity-feed/comment/messages.js +16 -0
  318. package/es/elements/content-sidebar/activity-feed/comment/messages.js.flow +20 -0
  319. package/es/elements/content-sidebar/activity-feed/comment/messages.js.map +1 -1
  320. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +1 -1
  321. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.flow +3 -3
  322. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.map +1 -1
  323. package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.scss +1 -1
  324. package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +1 -1
  325. package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js +1 -1
  326. package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.flow +2 -2
  327. package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.map +1 -1
  328. package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +1 -1
  329. package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js +1 -0
  330. package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js.flow +1 -0
  331. package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js.map +1 -1
  332. package/es/elements/content-sidebar/activity-feed/task-new/AssigneeDetails.scss +1 -1
  333. package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js +7 -8
  334. package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js.flow +11 -7
  335. package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js.map +1 -1
  336. package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.scss +1 -5
  337. package/es/elements/content-sidebar/activity-feed/task-new/Task.js +2 -5
  338. package/es/elements/content-sidebar/activity-feed/task-new/Task.js.flow +1 -2
  339. package/es/elements/content-sidebar/activity-feed/task-new/Task.js.map +1 -1
  340. package/es/elements/content-sidebar/activity-feed/task-new/Task.scss +1 -8
  341. package/es/elements/content-sidebar/messages.js +22 -2
  342. package/es/elements/content-sidebar/messages.js.flow +29 -4
  343. package/es/elements/content-sidebar/messages.js.map +1 -1
  344. package/es/elements/content-sidebar/skills/timeline/Timeline.scss +1 -1
  345. package/es/elements/content-sidebar/skills/transcript/Transcript.scss +1 -1
  346. package/es/elements/content-sidebar/versions/VersionsGroup.scss +1 -1
  347. package/es/elements/content-sidebar/versions/VersionsItem.scss +3 -3
  348. package/es/elements/content-uploader/Footer.js +9 -3
  349. package/es/elements/content-uploader/Footer.js.flow +23 -3
  350. package/es/elements/content-uploader/Footer.js.map +1 -1
  351. package/es/elements/content-uploader/Footer.scss +0 -1
  352. package/es/elements/content-uploader/ItemAction.js +8 -4
  353. package/es/elements/content-uploader/ItemAction.js.flow +6 -3
  354. package/es/elements/content-uploader/ItemAction.js.map +1 -1
  355. package/es/elements/content-uploader/ItemRemove.js +11 -6
  356. package/es/elements/content-uploader/ItemRemove.js.flow +18 -6
  357. package/es/elements/content-uploader/ItemRemove.js.map +1 -1
  358. package/es/elements/content-uploader/UploadInput.js +21 -9
  359. package/es/elements/content-uploader/UploadInput.js.flow +19 -9
  360. package/es/elements/content-uploader/UploadInput.js.map +1 -1
  361. package/es/features/advanced-content-insights/AdvancedContentInsightsToggle.js +44 -0
  362. package/es/features/advanced-content-insights/AdvancedContentInsightsToggle.js.map +1 -0
  363. package/es/features/advanced-content-insights/AdvancedContentInsightsToggle.scss +19 -0
  364. package/es/features/advanced-content-insights/messages.js +17 -0
  365. package/es/features/advanced-content-insights/messages.js.map +1 -0
  366. package/es/features/classification/classificationColorsMap.js +1 -1
  367. package/es/features/classification/classificationColorsMap.js.flow +1 -1
  368. package/es/features/classification/classificationColorsMap.js.map +1 -1
  369. package/es/features/collaborator-avatars/CollaboratorAvatarItem.js +13 -9
  370. package/es/features/collaborator-avatars/CollaboratorAvatarItem.js.flow +11 -8
  371. package/es/features/collaborator-avatars/CollaboratorAvatarItem.js.map +1 -1
  372. package/es/features/collaborator-avatars/CollaboratorAvatars.scss +1 -1
  373. package/es/features/collaborator-avatars/CollaboratorList.js +4 -5
  374. package/es/features/collaborator-avatars/CollaboratorList.js.flow +3 -4
  375. package/es/features/collaborator-avatars/CollaboratorList.js.map +1 -1
  376. package/es/features/collaborator-avatars/CollaboratorListItem.js +7 -9
  377. package/es/features/collaborator-avatars/CollaboratorListItem.js.flow +7 -13
  378. package/es/features/collaborator-avatars/CollaboratorListItem.js.map +1 -1
  379. package/es/features/collaborator-avatars/CollaboratorListItem.scss +7 -3
  380. package/es/features/collapsible-sidebar/CollapsibleSidebar.js +3 -2
  381. package/es/features/collapsible-sidebar/CollapsibleSidebar.js.flow +5 -2
  382. package/es/features/collapsible-sidebar/CollapsibleSidebar.js.map +1 -1
  383. package/es/features/collapsible-sidebar/CollapsibleSidebar.scss +4 -7
  384. package/es/features/collapsible-sidebar/CollapsibleSidebarLogo.js +3 -1
  385. package/es/features/collapsible-sidebar/CollapsibleSidebarLogo.js.flow +15 -11
  386. package/es/features/collapsible-sidebar/CollapsibleSidebarLogo.js.map +1 -1
  387. package/es/features/content-explorer/content-explorer/ContentExplorer.js +146 -58
  388. package/es/features/content-explorer/content-explorer/ContentExplorer.js.flow +97 -20
  389. package/es/features/content-explorer/content-explorer/ContentExplorer.js.map +1 -1
  390. package/es/features/content-explorer/content-explorer/ContentExplorer.scss +67 -8
  391. package/es/features/content-explorer/content-explorer/ContentExplorerActionButtons.js +58 -11
  392. package/es/features/content-explorer/content-explorer/ContentExplorerActionButtons.js.flow +53 -13
  393. package/es/features/content-explorer/content-explorer/ContentExplorerActionButtons.js.map +1 -1
  394. package/es/features/content-explorer/content-explorer/ContentExplorerFolderTreeBreadcrumbs.js +68 -0
  395. package/es/features/content-explorer/content-explorer/ContentExplorerFolderTreeBreadcrumbs.js.flow +82 -0
  396. package/es/features/content-explorer/content-explorer/ContentExplorerFolderTreeBreadcrumbs.js.map +1 -0
  397. package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +13 -2
  398. package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.flow +22 -7
  399. package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.map +1 -1
  400. package/es/features/content-explorer/content-explorer/ContentExplorerIncludeSubfolders.js +33 -0
  401. package/es/features/content-explorer/content-explorer/ContentExplorerIncludeSubfolders.js.flow +30 -0
  402. package/es/features/content-explorer/content-explorer/ContentExplorerIncludeSubfolders.js.map +1 -0
  403. package/es/features/content-explorer/content-explorer/ContentExplorerSelectAll.js +16 -10
  404. package/es/features/content-explorer/content-explorer/ContentExplorerSelectAll.js.flow +34 -20
  405. package/es/features/content-explorer/content-explorer/ContentExplorerSelectAll.js.map +1 -1
  406. package/es/features/content-explorer/content-explorer/constants.js +7 -0
  407. package/es/features/content-explorer/content-explorer/constants.js.flow +6 -0
  408. package/es/features/content-explorer/content-explorer/constants.js.map +1 -0
  409. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +1 -0
  410. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.flow +13 -0
  411. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.map +1 -1
  412. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +42 -0
  413. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.flow +31 -0
  414. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.map +1 -1
  415. package/es/features/content-explorer/item-list/ItemList.js +20 -5
  416. package/es/features/content-explorer/item-list/ItemList.js.flow +17 -1
  417. package/es/features/content-explorer/item-list/ItemList.js.map +1 -1
  418. package/es/features/content-explorer/item-list/ItemList.scss +1 -1
  419. package/es/features/content-explorer/item-list/ItemListButton.js +4 -1
  420. package/es/features/content-explorer/item-list/ItemListButton.js.flow +10 -2
  421. package/es/features/content-explorer/item-list/ItemListButton.js.map +1 -1
  422. package/es/features/content-explorer/item-list/ItemListIcon.js +12 -45
  423. package/es/features/content-explorer/item-list/ItemListIcon.js.flow +5 -33
  424. package/es/features/content-explorer/item-list/ItemListIcon.js.map +1 -1
  425. package/es/features/content-explorer/item-list/ItemListName.js +2 -2
  426. package/es/features/content-explorer/item-list/ItemListName.js.flow +3 -2
  427. package/es/features/content-explorer/item-list/ItemListName.js.map +1 -1
  428. package/es/features/content-explorer/messages.js +23 -19
  429. package/es/features/content-explorer/messages.js.flow +41 -24
  430. package/es/features/content-explorer/messages.js.map +1 -1
  431. package/es/features/content-explorer/prop-types.js +2 -2
  432. package/es/features/content-explorer/prop-types.js.flow +2 -2
  433. package/es/features/content-explorer/prop-types.js.map +1 -1
  434. package/es/features/content-insights/_mixins.scss +1 -1
  435. package/es/features/content-insights/charts/bar/Bar.js +21 -2
  436. package/es/features/content-insights/charts/bar/Bar.js.map +1 -1
  437. package/es/features/content-insights/charts/bar/BarChart.js +6 -3
  438. package/es/features/content-insights/charts/bar/BarChart.js.map +1 -1
  439. package/es/features/invite-collaborators-modal/InviteCollaboratorsModal.scss +1 -1
  440. package/es/features/message-center/components/templates/common/styles/MessageFooter.scss +1 -1
  441. package/es/features/metadata-based-view/IconWithTooltip.js +4 -4
  442. package/es/features/metadata-based-view/IconWithTooltip.js.flow +4 -4
  443. package/es/features/metadata-based-view/IconWithTooltip.js.map +1 -1
  444. package/es/features/metadata-based-view/MetadataBasedItemList.scss +1 -1
  445. package/es/features/metadata-instance-editor/CascadePolicy.scss +1 -1
  446. package/es/features/metadata-instance-editor/TemplateDropdown.js +9 -21
  447. package/es/features/metadata-instance-editor/TemplateDropdown.js.flow +4 -10
  448. package/es/features/metadata-instance-editor/TemplateDropdown.js.map +1 -1
  449. package/es/features/metadata-instance-editor/TemplateDropdown.scss +2 -2
  450. package/es/features/metadata-instance-fields/EnumMetadataField.scss +2 -2
  451. package/es/features/metadata-instance-fields/MultiSelectMetadataField.scss +1 -1
  452. package/es/features/metadata-instance-fields/ReadOnlyMetadataField.scss +2 -2
  453. package/es/features/presence/PresenceAvatarList.scss +1 -1
  454. package/es/features/presence/PresenceCollaborator.scss +1 -1
  455. package/es/features/query-bar/styles/Condition.scss +2 -2
  456. package/es/features/quick-search/QuickSearchItem.js +4 -3
  457. package/es/features/quick-search/QuickSearchItem.js.flow +4 -3
  458. package/es/features/quick-search/QuickSearchItem.js.map +1 -1
  459. package/es/features/shared-link-settings-modal/ExpirationSection.js +5 -0
  460. package/es/features/shared-link-settings-modal/ExpirationSection.js.flow +4 -0
  461. package/es/features/shared-link-settings-modal/ExpirationSection.js.map +1 -1
  462. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js +9 -3
  463. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.flow +9 -5
  464. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.map +1 -1
  465. package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.scss +3 -3
  466. package/es/features/shared-link-settings-modal/VanityNameSection.js +2 -2
  467. package/es/features/shared-link-settings-modal/VanityNameSection.js.flow +2 -2
  468. package/es/features/shared-link-settings-modal/VanityNameSection.js.map +1 -1
  469. package/es/features/unified-share-modal/InviteePermissionsMenu.js +2 -1
  470. package/es/features/unified-share-modal/InviteePermissionsMenu.js.flow +1 -0
  471. package/es/features/unified-share-modal/InviteePermissionsMenu.js.map +1 -1
  472. package/es/features/unified-share-modal/SharedLinkAccessMenu.js +2 -1
  473. package/es/features/unified-share-modal/SharedLinkAccessMenu.js.flow +1 -0
  474. package/es/features/unified-share-modal/SharedLinkAccessMenu.js.map +1 -1
  475. package/es/features/unified-share-modal/SharedLinkPermissionMenu.js +2 -1
  476. package/es/features/unified-share-modal/SharedLinkPermissionMenu.js.flow +1 -0
  477. package/es/features/unified-share-modal/SharedLinkPermissionMenu.js.map +1 -1
  478. package/es/features/unified-share-modal/SharedLinkSection.js +18 -18
  479. package/es/features/unified-share-modal/SharedLinkSection.js.flow +30 -38
  480. package/es/features/unified-share-modal/SharedLinkSection.js.map +1 -1
  481. package/es/features/unified-share-modal/UnifiedShareForm.js +27 -16
  482. package/es/features/unified-share-modal/UnifiedShareForm.js.flow +38 -25
  483. package/es/features/unified-share-modal/UnifiedShareForm.js.map +1 -1
  484. package/es/features/unified-share-modal/UnifiedShareModal.js +10 -1
  485. package/es/features/unified-share-modal/UnifiedShareModal.js.flow +9 -1
  486. package/es/features/unified-share-modal/UnifiedShareModal.js.map +1 -1
  487. package/es/features/unified-share-modal/UnifiedShareModal.scss +24 -13
  488. package/es/features/unified-share-modal/flowTypes.js.flow +10 -2
  489. package/es/features/unified-share-modal/flowTypes.js.map +1 -1
  490. package/es/features/unified-share-modal/messages.js +12 -4
  491. package/es/features/unified-share-modal/messages.js.flow +17 -5
  492. package/es/features/unified-share-modal/messages.js.map +1 -1
  493. package/es/features/virtualized-table/VirtualizedTable.scss +1 -1
  494. package/es/features/virtualized-table-renderers/_mixins.scss +1 -1
  495. package/es/icons/badges/MetadataDefaultBadge.js +3 -3
  496. package/es/icons/badges/MetadataDefaultBadge.js.flow +3 -3
  497. package/es/icons/badges/MetadataDefaultBadge.js.map +1 -1
  498. package/es/icons/general/IconAnyTask.js +2 -2
  499. package/es/icons/general/IconAnyTask.js.flow +2 -2
  500. package/es/icons/general/IconAnyTask.js.map +1 -1
  501. package/es/icons/general/IconEdit.js +2 -1
  502. package/es/icons/general/IconEdit.js.flow +2 -1
  503. package/es/icons/general/IconEdit.js.map +1 -1
  504. package/es/icons/metadata-view/IconMetadataView.js +2 -1
  505. package/es/icons/metadata-view/IconMetadataView.js.flow +2 -1
  506. package/es/icons/metadata-view/IconMetadataView.js.map +1 -1
  507. package/es/icons/two-toned/IconAnnotation.js +36 -0
  508. package/es/icons/two-toned/IconAnnotation.js.flow +27 -0
  509. package/es/icons/two-toned/IconAnnotation.js.map +1 -0
  510. package/es/icons/two-toned/_IconAnnotation.mixins.scss +9 -0
  511. package/es/src/components/avatar/Avatar.d.ts +18 -2
  512. package/es/src/components/avatar/Avatar.stories.d.ts +7 -2
  513. package/es/src/components/avatar/messages.d.ts +8 -0
  514. package/es/src/components/checkbox/Checkbox.d.ts +4 -1
  515. package/es/src/components/checkbox/Checkbox.stories.d.ts +1 -1
  516. package/es/src/components/tooltip/CloseButton.d.ts +14 -0
  517. package/es/src/components/tooltip/__tests__/CloseButton.test.d.ts +1 -0
  518. package/es/src/elements/content-sidebar/SidebarNavSign.d.ts +2 -24
  519. package/es/src/elements/content-sidebar/SidebarNavSignButton.d.ts +25 -0
  520. package/es/src/elements/content-sidebar/__tests__/SidebarNavSignButton.test.d.ts +1 -0
  521. package/es/src/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.d.ts +3 -0
  522. package/es/src/features/advanced-content-insights/AdvancedContentInsightsToggle.d.ts +10 -0
  523. package/es/src/features/advanced-content-insights/__tests__/AdvancedContentInsightsToggle.test.d.ts +1 -0
  524. package/es/src/features/advanced-content-insights/messages.d.ts +18 -0
  525. package/es/src/features/content-insights/charts/bar/Bar.d.ts +6 -2
  526. package/es/src/features/content-insights/charts/bar/BarChart.d.ts +7 -2
  527. package/es/src/icons/two-toned/IconAnnotation.d.ts +3 -0
  528. package/es/src/icons/two-toned/__tests__/IconAnnotation.test.d.ts +1 -0
  529. package/es/src/styles/typography.stories.d.ts +8 -0
  530. package/es/src/styles/variables.d.ts +1 -1
  531. package/es/styles/_deprecated.scss +1 -0
  532. package/es/styles/_inputs.scss +2 -3
  533. package/es/styles/common/_buttons.scss +2 -2
  534. package/es/styles/common/_forms.scss +2 -0
  535. package/es/styles/common/_links.scss +1 -1
  536. package/es/styles/constants/_colors.scss +1 -1
  537. package/es/styles/constants/_themes.scss +1 -1
  538. package/es/styles/typography.stories.js +55 -0
  539. package/es/styles/typography.stories.js.map +1 -0
  540. package/es/styles/typography.stories.scss +60 -0
  541. package/es/styles/variables.js +2 -2
  542. package/es/styles/variables.js.flow +2 -2
  543. package/es/styles/variables.js.map +1 -1
  544. package/es/utils/createTheme.js +2 -2
  545. package/es/utils/createTheme.js.flow +2 -2
  546. package/es/utils/createTheme.js.map +1 -1
  547. package/i18n/bn-IN.js +46 -22
  548. package/i18n/bn-IN.properties +79 -31
  549. package/i18n/da-DK.js +46 -22
  550. package/i18n/da-DK.properties +79 -31
  551. package/i18n/de-DE.js +45 -21
  552. package/i18n/de-DE.properties +78 -30
  553. package/i18n/en-AU.js +33 -9
  554. package/i18n/en-AU.properties +66 -18
  555. package/i18n/en-CA.js +32 -8
  556. package/i18n/en-CA.properties +65 -17
  557. package/i18n/en-GB.js +33 -9
  558. package/i18n/en-GB.properties +66 -18
  559. package/i18n/en-US.js +32 -8
  560. package/i18n/en-US.properties +65 -17
  561. package/i18n/en-x-pseudo.js +39 -8
  562. package/i18n/es-419.js +46 -22
  563. package/i18n/es-419.properties +79 -31
  564. package/i18n/es-ES.js +46 -22
  565. package/i18n/es-ES.properties +79 -31
  566. package/i18n/fi-FI.js +45 -21
  567. package/i18n/fi-FI.properties +78 -30
  568. package/i18n/fr-CA.js +44 -20
  569. package/i18n/fr-CA.properties +78 -30
  570. package/i18n/fr-FR.js +44 -20
  571. package/i18n/fr-FR.properties +78 -30
  572. package/i18n/hi-IN.js +46 -22
  573. package/i18n/hi-IN.properties +79 -31
  574. package/i18n/it-IT.js +45 -21
  575. package/i18n/it-IT.properties +78 -30
  576. package/i18n/ja-JP.js +55 -31
  577. package/i18n/ja-JP.properties +88 -40
  578. package/i18n/ko-KR.js +44 -20
  579. package/i18n/ko-KR.properties +78 -30
  580. package/i18n/nb-NO.js +45 -21
  581. package/i18n/nb-NO.properties +78 -30
  582. package/i18n/nl-NL.js +46 -22
  583. package/i18n/nl-NL.properties +79 -31
  584. package/i18n/pl-PL.js +45 -21
  585. package/i18n/pl-PL.properties +78 -30
  586. package/i18n/pt-BR.js +45 -21
  587. package/i18n/pt-BR.properties +78 -30
  588. package/i18n/ru-RU.js +45 -21
  589. package/i18n/ru-RU.properties +78 -30
  590. package/i18n/sv-SE.js +46 -22
  591. package/i18n/sv-SE.properties +79 -31
  592. package/i18n/tr-TR.js +45 -21
  593. package/i18n/tr-TR.properties +78 -30
  594. package/i18n/zh-CN.js +45 -21
  595. package/i18n/zh-CN.properties +78 -30
  596. package/i18n/zh-TW.js +45 -21
  597. package/i18n/zh-TW.properties +78 -30
  598. package/package.json +3 -3
  599. package/src/api/Feed.js +46 -1
  600. package/src/api/Item.js +7 -4
  601. package/src/api/ThreadedComments.js +40 -0
  602. package/src/api/__tests__/Feed.test.js +48 -0
  603. package/src/api/__tests__/Item.test.js +14 -0
  604. package/src/api/__tests__/ThreadedComments.test.js +46 -0
  605. package/src/common/types/feed.js +34 -0
  606. package/src/components/avatar/Avatar.js.flow +24 -7
  607. package/src/components/avatar/Avatar.scss +42 -0
  608. package/src/components/avatar/Avatar.stories.tsx +45 -0
  609. package/src/components/avatar/Avatar.tsx +39 -9
  610. package/src/components/avatar/__tests__/Avatar.test.tsx +39 -29
  611. package/src/components/avatar/messages.ts +11 -0
  612. package/src/components/badgeable/Badgeable.scss +1 -1
  613. package/src/components/breadcrumb/Breadcrumb.js +1 -1
  614. package/src/components/breadcrumb/__tests__/Breadcrumb.test.js +1 -1
  615. package/src/components/button-group/ButtonGroup.scss +2 -2
  616. package/src/components/checkbox/Checkbox.js.flow +7 -0
  617. package/src/components/checkbox/Checkbox.scss +2 -2
  618. package/src/components/checkbox/Checkbox.tsx +7 -0
  619. package/src/components/checkbox/__tests__/Checkbox.test.tsx +19 -2
  620. package/src/components/close-button/CloseButton.js.flow +2 -2
  621. package/src/components/close-button/CloseButton.tsx +2 -2
  622. package/src/components/contact-datalist-item/ContactDatalistItem.scss +1 -1
  623. package/src/components/date-picker/DatePicker.scss +1 -1
  624. package/src/components/date-picker/DatePicker.tsx +2 -2
  625. package/src/components/date-picker/__tests__/DatePicker.test.tsx +4 -4
  626. package/src/components/draft-js-editor/DraftJSEditor.scss +1 -1
  627. package/src/components/dropdown-menu/DropdownMenu.js +8 -2
  628. package/src/components/dropdown-menu/DropdownMenu.scss +6 -4
  629. package/src/components/dropdown-menu/__tests__/DropdownMenu.test.js +18 -0
  630. package/src/components/error-mask/ErrorMask.scss +1 -1
  631. package/src/components/flyout/Flyout.js +13 -0
  632. package/src/components/flyout/Flyout.scss +1 -1
  633. package/src/components/flyout/Overlay.js +2 -1
  634. package/src/components/flyout/__tests__/Flyout.test.js +22 -1
  635. package/src/components/flyout/__tests__/Overlay.test.js +1 -1
  636. package/src/components/grid-view/GridView.js +3 -2
  637. package/src/components/grid-view/GridViewSlider.js +5 -2
  638. package/src/components/grid-view/GridViewSlider.scss +0 -10
  639. package/src/components/grid-view/__tests__/GridViewSlider.test.js +35 -2
  640. package/src/components/grid-view/__tests__/__snapshots__/GridView.test.js.snap +2 -0
  641. package/src/components/grid-view/__tests__/__snapshots__/GridViewSlider.test.js.snap +38 -13
  642. package/src/components/inline-error/InlineError.stories.js +9 -0
  643. package/src/components/inline-error/InlineError.stories.md +3 -0
  644. package/src/components/inline-notice/InlineNotice.stories.js +59 -0
  645. package/src/components/inline-notice/InlineNotice.stories.md +1 -0
  646. package/src/components/label/InfoIconWithTooltip.tsx +2 -2
  647. package/src/components/label/Label.scss +1 -1
  648. package/src/components/label/__tests__/__snapshots__/InfoIconWithTooltip.test.tsx.snap +1 -1
  649. package/src/components/media-query/__tests__/withMediaQuery.test.js +1 -0
  650. package/src/components/media-query/stories/MediaQuery.stories.js +11 -2
  651. package/src/components/media-query/stories/MediaQuery.stories.md +10 -9
  652. package/src/components/media-query/types.js +1 -0
  653. package/src/components/media-query/useMediaQuery.js +3 -0
  654. package/src/components/menu/MenuHeader.scss +1 -1
  655. package/src/components/menu/SubmenuItem.tsx +4 -1
  656. package/src/components/modal/Modal.scss +15 -0
  657. package/src/components/modal/ModalDialog.js +44 -5
  658. package/src/components/modal/__tests__/ModalDialog.test.js +22 -1
  659. package/src/components/nav-sidebar/NavSidebar.scss +1 -1
  660. package/src/components/nav-sidebar/NavSidebar.stories.js +54 -0
  661. package/src/components/nav-sidebar/NavSidebar.stories.md +1 -0
  662. package/src/components/pill-cloud/PillCloud.stories.js +48 -0
  663. package/src/components/pill-cloud/PillCloud.stories.md +1 -0
  664. package/src/components/pill-selector-dropdown/PillSelector.js +26 -4
  665. package/src/components/pill-selector-dropdown/PillSelector.scss +4 -0
  666. package/src/components/pill-selector-dropdown/PillSelectorDropdown.js +1 -0
  667. package/src/components/pill-selector-dropdown/__tests__/PillSelector.test.js +1 -1
  668. package/src/components/pill-selector-dropdown/__tests__/PillSelectorDropdown.test.js +4 -4
  669. package/src/components/pill-selector-dropdown/__tests__/__snapshots__/PillSelector.test.js.snap +1 -1
  670. package/src/components/pill-selector-dropdown/__tests__/__snapshots__/PillSelectorDropdown.test.js.snap +1 -1
  671. package/src/components/pill-selector-dropdown/_mixins.scss +1 -1
  672. package/src/components/popper/PopperComponent.js +3 -2
  673. package/src/components/radio/RadioButton.scss +1 -1
  674. package/src/components/search-form/SearchForm.js +30 -6
  675. package/src/components/search-form/__tests__/SearchForm.test.js +1 -1
  676. package/src/components/select-button/SelectButton.js +23 -2
  677. package/src/components/select-button/__tests__/SelectButton.test.js +8 -0
  678. package/src/components/select-field/BaseSelectField.js +19 -2
  679. package/src/components/select-field/SelectField.scss +8 -1
  680. package/src/components/select-field/__tests__/BaseSelectField.test.js +9 -0
  681. package/src/components/selector-dropdown/SelectorDropdown.js +22 -5
  682. package/src/components/selector-dropdown/SelectorDropdown.scss +2 -2
  683. package/src/components/selector-dropdown/__tests__/SelectorDropdown.test.js +2 -1
  684. package/src/components/table/__tests__/makeSelectable.test.js +65 -3
  685. package/src/components/table/makeSelectable.js +33 -6
  686. package/src/components/text-area/TextArea.scss +1 -1
  687. package/src/components/text-input/TextInput.scss +1 -1
  688. package/src/components/text-input-with-copy-button/TextInputWithCopyButton.js +4 -1
  689. package/src/components/text-input-with-copy-button/TextInputWithCopyButton.scss +11 -7
  690. package/src/components/thumbnail-card/ThumbnailCard.scss +1 -1
  691. package/src/components/time/ReadableTime.stories.js +56 -0
  692. package/src/components/time/ReadableTime.stories.md +1 -0
  693. package/src/components/toggle/Toggle.js +16 -5
  694. package/src/components/toggle/Toggle.scss +3 -3
  695. package/src/components/toggle/__tests__/__snapshots__/Toggle.test.js.snap +2 -0
  696. package/src/components/tooltip/CloseButton.tsx +22 -0
  697. package/src/components/tooltip/Tooltip.tsx +3 -8
  698. package/src/components/tooltip/__tests__/CloseButton.test.tsx +32 -0
  699. package/src/components/tooltip/__tests__/Tooltip.test.tsx +21 -0
  700. package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +3 -10
  701. package/src/constants.js +7 -0
  702. package/src/elements/common/_variables.scss +7 -2
  703. package/src/elements/common/base.scss +14 -0
  704. package/src/elements/common/breadcrumbs/Breadcrumb.scss +1 -1
  705. package/src/elements/common/breadcrumbs/BreadcrumbDropdown.scss +1 -1
  706. package/src/elements/common/breadcrumbs/InlineBreadcrumbs.scss +2 -2
  707. package/src/elements/common/header/Header.js +7 -2
  708. package/src/elements/common/header/Logo.js +5 -1
  709. package/src/elements/common/header/__tests__/Header.test.js +40 -0
  710. package/src/elements/common/item/IconCell.js +55 -0
  711. package/src/elements/common/item/ItemDetails.scss +1 -1
  712. package/src/elements/common/item/__tests__/IconCell.test.js +88 -0
  713. package/src/elements/common/item/iconCellRenderer.js +6 -22
  714. package/src/elements/common/messages.js +35 -0
  715. package/src/elements/common/modal.scss +0 -2
  716. package/src/elements/common/share-access-select/ShareAccessSelect.scss +1 -1
  717. package/src/elements/common/sub-header/AddButton.js +2 -1
  718. package/src/elements/common/sub-header/Sort.js +7 -6
  719. package/src/elements/common/sub-header/SortButton.js +23 -10
  720. package/src/elements/common/sub-header/ViewModeChangeButton.js +3 -3
  721. package/src/elements/common/sub-header/__tests__/Sort.test.js +12 -62
  722. package/src/elements/common/sub-header/__tests__/SortButton.test.js +24 -0
  723. package/src/elements/common/sub-header/__tests__/SubHeaderRight.test.js +1 -1
  724. package/src/elements/content-explorer/Content.js +2 -1
  725. package/src/elements/content-explorer/ContentExplorer.js +50 -13
  726. package/src/elements/content-explorer/ItemGrid.js +60 -9
  727. package/src/elements/content-explorer/ItemGridThumbnail.js +5 -2
  728. package/src/elements/content-explorer/ItemList.js +4 -2
  729. package/src/elements/content-explorer/ItemList.scss +16 -8
  730. package/src/elements/content-explorer/MoreOptions.js +11 -4
  731. package/src/elements/content-explorer/__tests__/ContentExplorer.test.js +44 -0
  732. package/src/elements/content-explorer/__tests__/MoreOptions.test.js +30 -0
  733. package/src/elements/content-open-with/ContentOpenWith.scss +1 -1
  734. package/src/elements/content-picker/Footer.js +62 -51
  735. package/src/elements/content-picker/ItemList.scss +1 -1
  736. package/src/elements/content-picker/__tests__/Footer.test.js +17 -0
  737. package/src/elements/content-preview/ContentPreview.js +43 -6
  738. package/src/elements/content-preview/__tests__/ContentPreview.test.js +96 -0
  739. package/src/elements/content-preview/preview-header/PreviewHeader.scss +1 -1
  740. package/src/elements/content-sharing/ContentSharing.js +2 -2
  741. package/src/elements/content-sidebar/ActivitySidebar.js +262 -17
  742. package/src/elements/content-sidebar/ActivitySidebar.scss +7 -0
  743. package/src/elements/content-sidebar/ActivitySidebarFilter.js +64 -23
  744. package/src/elements/content-sidebar/AddTaskMenu.scss +1 -1
  745. package/src/elements/content-sidebar/SidebarContent.js +1 -1
  746. package/src/elements/content-sidebar/SidebarContent.scss +3 -3
  747. package/src/elements/content-sidebar/SidebarNav.js +3 -15
  748. package/src/elements/content-sidebar/SidebarNavSign.scss +3 -25
  749. package/src/elements/content-sidebar/SidebarNavSign.tsx +53 -55
  750. package/src/elements/content-sidebar/SidebarNavSignButton.scss +27 -0
  751. package/src/elements/content-sidebar/SidebarNavSignButton.tsx +73 -0
  752. package/src/elements/content-sidebar/__tests__/ActivitySidebar.test.js +545 -16
  753. package/src/elements/content-sidebar/__tests__/ActivitySidebarFilter.test.js +47 -18
  754. package/src/elements/content-sidebar/__tests__/SidebarNav.test.js +3 -3
  755. package/src/elements/content-sidebar/__tests__/SidebarNavSign.test.tsx +72 -52
  756. package/src/elements/content-sidebar/__tests__/SidebarNavSignButton.test.tsx +60 -0
  757. package/src/elements/content-sidebar/__tests__/__snapshots__/ActivitySidebar.test.js.snap +2 -0
  758. package/src/elements/content-sidebar/activity-feed/Avatar.js +5 -2
  759. package/src/elements/content-sidebar/activity-feed/__tests__/Avatar.test.js +0 -10
  760. package/src/elements/content-sidebar/activity-feed/__tests__/__snapshots__/Avatar.test.js.snap +13 -10
  761. package/src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +73 -28
  762. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +80 -13
  763. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.scss +11 -0
  764. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.scss +28 -0
  765. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.tsx +16 -2
  766. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +48 -29
  767. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +69 -6
  768. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +42 -5
  769. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +15 -0
  770. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +30 -5
  771. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +4 -7
  772. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActiveState.test.js +11 -0
  773. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityFeed.test.js +74 -0
  774. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityItem.test.tsx +20 -0
  775. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThread.test.js +8 -3
  776. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadReplies.test.js +12 -0
  777. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadRepliesForm.test.js +20 -5
  778. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActiveState.test.js.snap +7 -0
  779. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActivityFeed.test.js.snap +3 -0
  780. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +43 -13
  781. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +26 -3
  782. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +67 -56
  783. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +1 -1
  784. package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +16 -51
  785. package/src/elements/content-sidebar/activity-feed/annotation-thread/__mocks__/useAnnotationThread.js +19 -0
  786. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThread.test.js +12 -1
  787. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadContent.test.js +18 -52
  788. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadCreate.test.js +23 -54
  789. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useAnnotationAPI.test.js +40 -3
  790. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useAnnotationThread.test.js +429 -25
  791. package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useRepliesAPI.test.js +15 -13
  792. package/src/elements/content-sidebar/activity-feed/annotation-thread/errors.js +5 -4
  793. package/src/elements/content-sidebar/activity-feed/annotation-thread/types.js +7 -0
  794. package/src/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +32 -10
  795. package/src/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js +249 -55
  796. package/src/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +42 -83
  797. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +27 -12
  798. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.scss +11 -8
  799. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityLink.scss +1 -1
  800. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +3 -1
  801. package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.scss +5 -0
  802. package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivity.test.js +26 -0
  803. package/src/elements/content-sidebar/activity-feed/comment/BaseComment.js +456 -0
  804. package/src/elements/content-sidebar/activity-feed/comment/BaseComment.scss +30 -0
  805. package/src/elements/content-sidebar/activity-feed/comment/Comment.js +42 -5
  806. package/src/elements/content-sidebar/activity-feed/comment/Comment.scss +10 -0
  807. package/src/elements/content-sidebar/activity-feed/comment/CreateReply.js +72 -0
  808. package/src/elements/content-sidebar/activity-feed/comment/CreateReply.scss +21 -0
  809. package/src/elements/content-sidebar/activity-feed/comment/Replies.scss +41 -0
  810. package/src/elements/content-sidebar/activity-feed/comment/RepliesToggle.js +41 -0
  811. package/src/elements/content-sidebar/activity-feed/comment/RepliesToggle.scss +6 -0
  812. package/src/elements/content-sidebar/activity-feed/comment/__tests__/BaseComment.test.js +373 -0
  813. package/src/elements/content-sidebar/activity-feed/comment/__tests__/Comment.test.js +14 -6
  814. package/src/elements/content-sidebar/activity-feed/comment/__tests__/CreateReply.test.js +127 -0
  815. package/src/elements/content-sidebar/activity-feed/comment/__tests__/Replies.test.js +219 -0
  816. package/src/elements/content-sidebar/activity-feed/comment/__tests__/RepliesToggle.test.js +82 -0
  817. package/src/elements/content-sidebar/activity-feed/comment/__tests__/__snapshots__/Comment.test.js.snap +18 -4
  818. package/src/elements/content-sidebar/activity-feed/comment/messages.js +20 -0
  819. package/src/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +3 -3
  820. package/src/elements/content-sidebar/activity-feed/comment-form/CommentForm.scss +1 -1
  821. package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +1 -1
  822. package/src/elements/content-sidebar/activity-feed/common/activity-message/messages.js +2 -2
  823. package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +1 -1
  824. package/src/elements/content-sidebar/activity-feed/task-form/TaskForm.js +1 -0
  825. package/src/elements/content-sidebar/activity-feed/task-new/AssigneeDetails.scss +1 -1
  826. package/src/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js +11 -7
  827. package/src/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.scss +1 -5
  828. package/src/elements/content-sidebar/activity-feed/task-new/Task.js +1 -2
  829. package/src/elements/content-sidebar/activity-feed/task-new/Task.scss +1 -8
  830. package/src/elements/content-sidebar/activity-feed/task-new/__tests__/__snapshots__/Task.test.js.snap +1 -5
  831. package/src/elements/content-sidebar/messages.js +29 -4
  832. package/src/elements/content-sidebar/skills/keywords/__tests__/__snapshots__/EditableKeywords.test.js.snap +0 -6
  833. package/src/elements/content-sidebar/skills/timeline/Timeline.scss +1 -1
  834. package/src/elements/content-sidebar/skills/transcript/Transcript.scss +1 -1
  835. package/src/elements/content-sidebar/versions/VersionsGroup.scss +1 -1
  836. package/src/elements/content-sidebar/versions/VersionsItem.scss +3 -3
  837. package/src/elements/content-uploader/Footer.js +23 -3
  838. package/src/elements/content-uploader/Footer.scss +0 -1
  839. package/src/elements/content-uploader/ItemAction.js +6 -3
  840. package/src/elements/content-uploader/ItemRemove.js +18 -6
  841. package/src/elements/content-uploader/UploadInput.js +19 -9
  842. package/src/elements/content-uploader/__tests__/Footer.test.js +59 -0
  843. package/src/elements/content-uploader/__tests__/ItemAction.test.js +11 -1
  844. package/src/elements/content-uploader/__tests__/ItemRemove.test.js +22 -0
  845. package/src/elements/content-uploader/__tests__/__snapshots__/ItemAction.test.js.snap +36 -0
  846. package/src/elements/content-uploader/__tests__/__snapshots__/UploadInput.test.js.snap +4 -0
  847. package/src/features/advanced-content-insights/AdvancedContentInsightsToggle.scss +19 -0
  848. package/src/features/advanced-content-insights/AdvancedContentInsightsToggle.tsx +59 -0
  849. package/src/features/advanced-content-insights/__tests__/AdvancedContentInsightsToggle.test.tsx +33 -0
  850. package/src/features/advanced-content-insights/__tests__/__snapshots__/AdvancedContentInsightsToggle.test.tsx.snap +42 -0
  851. package/src/features/advanced-content-insights/messages.ts +22 -0
  852. package/src/features/classification/classificationColorsMap.js +1 -1
  853. package/src/features/collaborator-avatars/CollaboratorAvatarItem.js +11 -8
  854. package/src/features/collaborator-avatars/CollaboratorAvatars.scss +1 -1
  855. package/src/features/collaborator-avatars/CollaboratorList.js +3 -4
  856. package/src/features/collaborator-avatars/CollaboratorListItem.js +7 -13
  857. package/src/features/collaborator-avatars/CollaboratorListItem.scss +7 -3
  858. package/src/features/collaborator-avatars/__tests__/CollaboratorAvatarItem.test.js +6 -2
  859. package/src/features/collaborator-avatars/__tests__/__snapshots__/CollaboratorAvatarItem.test.js.snap +5 -12
  860. package/src/features/collaborator-avatars/__tests__/__snapshots__/CollaboratorList.test.js.snap +6 -8
  861. package/src/features/collaborator-avatars/__tests__/__snapshots__/CollaboratorListItem.test.js.snap +36 -40
  862. package/src/features/collapsible-sidebar/CollapsibleSidebar.js +5 -2
  863. package/src/features/collapsible-sidebar/CollapsibleSidebar.scss +4 -7
  864. package/src/features/collapsible-sidebar/CollapsibleSidebarLogo.js +15 -11
  865. package/src/features/collapsible-sidebar/__tests__/CollapsibleSidebar.test.js +1 -0
  866. package/src/features/collapsible-sidebar/__tests__/CollapsibleSidebarLogo.test.js +14 -0
  867. package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebar.test.js.snap +1 -1
  868. package/src/features/content-explorer/content-explorer/ContentExplorer.js +97 -20
  869. package/src/features/content-explorer/content-explorer/ContentExplorer.scss +67 -8
  870. package/src/features/content-explorer/content-explorer/ContentExplorerActionButtons.js +53 -13
  871. package/src/features/content-explorer/content-explorer/ContentExplorerFolderTreeBreadcrumbs.js +82 -0
  872. package/src/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +22 -7
  873. package/src/features/content-explorer/content-explorer/ContentExplorerIncludeSubfolders.js +30 -0
  874. package/src/features/content-explorer/content-explorer/ContentExplorerSelectAll.js +34 -20
  875. package/src/features/content-explorer/content-explorer/__tests__/ContentExplorer.test.js +28 -0
  876. package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerActionButtons.test.js +96 -8
  877. package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerFolderTreeBreadcrumbs.test.js +91 -0
  878. package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerHeaderActions.test.js +8 -0
  879. package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerIncludeSubfolders.test.js +50 -0
  880. package/src/features/content-explorer/content-explorer/__tests__/__snapshots__/ContentExplorer.test.js.snap +4 -0
  881. package/src/features/content-explorer/content-explorer/constants.js +6 -0
  882. package/src/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +13 -0
  883. package/src/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +31 -0
  884. package/src/features/content-explorer/item-list/ItemList.js +17 -1
  885. package/src/features/content-explorer/item-list/ItemList.scss +1 -1
  886. package/src/features/content-explorer/item-list/ItemListButton.js +10 -2
  887. package/src/features/content-explorer/item-list/ItemListIcon.js +5 -33
  888. package/src/features/content-explorer/item-list/ItemListName.js +3 -2
  889. package/src/features/content-explorer/item-list/__tests__/ItemList.test.js +72 -0
  890. package/src/features/content-explorer/item-list/__tests__/ItemListButton.test.js +8 -0
  891. package/src/features/content-explorer/item-list/__tests__/ItemListIcon.test.js +24 -18
  892. package/src/features/content-explorer/item-list/__tests__/__snapshots__/ItemListIcon.test.js.snap +37 -24
  893. package/src/features/content-explorer/messages.js +41 -24
  894. package/src/features/content-explorer/prop-types.js +2 -2
  895. package/src/features/content-insights/_mixins.scss +1 -1
  896. package/src/features/content-insights/charts/bar/Bar.tsx +24 -3
  897. package/src/features/content-insights/charts/bar/BarChart.tsx +10 -3
  898. package/src/features/content-insights/charts/bar/__tests__/Bar.test.tsx +51 -0
  899. package/src/features/content-insights/charts/bar/__tests__/BarChart.test.tsx +7 -1
  900. package/src/features/invite-collaborators-modal/InviteCollaboratorsModal.scss +1 -1
  901. package/src/features/message-center/components/templates/common/styles/MessageFooter.scss +1 -1
  902. package/src/features/metadata-based-view/IconWithTooltip.js +4 -4
  903. package/src/features/metadata-based-view/MetadataBasedItemList.scss +1 -1
  904. package/src/features/metadata-based-view/__tests__/__snapshots__/IconWithTooltip.test.js.snap +3 -3
  905. package/src/features/metadata-instance-editor/CascadePolicy.scss +1 -1
  906. package/src/features/metadata-instance-editor/TemplateDropdown.js +4 -10
  907. package/src/features/metadata-instance-editor/TemplateDropdown.scss +2 -2
  908. package/src/features/metadata-instance-editor/__tests__/__snapshots__/TemplateDropdown.test.js.snap +28 -7
  909. package/src/features/metadata-instance-fields/EnumMetadataField.scss +2 -2
  910. package/src/features/metadata-instance-fields/MultiSelectMetadataField.scss +1 -1
  911. package/src/features/metadata-instance-fields/ReadOnlyMetadataField.scss +2 -2
  912. package/src/features/presence/PresenceAvatarList.scss +1 -1
  913. package/src/features/presence/PresenceCollaborator.scss +1 -1
  914. package/src/features/query-bar/styles/Condition.scss +2 -2
  915. package/src/features/quick-search/QuickSearchItem.js +4 -3
  916. package/src/features/shared-link-settings-modal/ExpirationSection.js +4 -0
  917. package/src/features/shared-link-settings-modal/SharedLinkSettingsModal.js +9 -5
  918. package/src/features/shared-link-settings-modal/SharedLinkSettingsModal.scss +3 -3
  919. package/src/features/shared-link-settings-modal/VanityNameSection.js +2 -2
  920. package/src/features/shared-link-settings-modal/__tests__/ExpirationSection.test.js +9 -0
  921. package/src/features/shared-link-settings-modal/__tests__/SharedLinkSettingsModal.test.js +9 -4
  922. package/src/features/unified-share-modal/InviteePermissionsMenu.js +1 -0
  923. package/src/features/unified-share-modal/SharedLinkAccessMenu.js +1 -0
  924. package/src/features/unified-share-modal/SharedLinkPermissionMenu.js +1 -0
  925. package/src/features/unified-share-modal/SharedLinkSection.js +30 -38
  926. package/src/features/unified-share-modal/UnifiedShareForm.js +38 -25
  927. package/src/features/unified-share-modal/UnifiedShareModal.js +9 -1
  928. package/src/features/unified-share-modal/UnifiedShareModal.scss +24 -13
  929. package/src/features/unified-share-modal/__tests__/SharedLinkSection.test.js +19 -3
  930. package/src/features/unified-share-modal/__tests__/UnifiedShareForm.test.js +10 -0
  931. package/src/features/unified-share-modal/__tests__/UnifiedShareModal.test.js +9 -0
  932. package/src/features/unified-share-modal/__tests__/__snapshots__/InviteePermissionsMenu.test.js.snap +16 -0
  933. package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkAccessMenu.test.js.snap +6 -0
  934. package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkPermissionMenu.test.js.snap +6 -0
  935. package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkSection.test.js.snap +211 -313
  936. package/src/features/unified-share-modal/flowTypes.js +10 -2
  937. package/src/features/unified-share-modal/messages.js +17 -5
  938. package/src/features/virtualized-table/VirtualizedTable.scss +1 -1
  939. package/src/features/virtualized-table/__tests__/__snapshots__/BaseVirtualizedTable.test.js.snap +3 -0
  940. package/src/features/virtualized-table/__tests__/__snapshots__/DraggableVirtualizedTable.test.js.snap +3 -0
  941. package/src/features/virtualized-table/__tests__/__snapshots__/VirtualizedTable.test.js.snap +8 -0
  942. package/src/features/virtualized-table-renderers/_mixins.scss +1 -1
  943. package/src/icons/badges/MetadataDefaultBadge.js.flow +3 -3
  944. package/src/icons/badges/MetadataDefaultBadge.tsx +3 -3
  945. package/src/icons/badges/__tests__/__snapshots__/MetadataDefaultBadge.test.tsx.snap +2 -2
  946. package/src/icons/general/IconAnyTask.js.flow +2 -2
  947. package/src/icons/general/IconAnyTask.tsx +2 -2
  948. package/src/icons/general/IconEdit.js.flow +2 -1
  949. package/src/icons/general/IconEdit.tsx +2 -1
  950. package/src/icons/general/__tests__/__snapshots__/IconAnyTask.test.tsx.snap +1 -1
  951. package/src/icons/general/__tests__/__snapshots__/IconEdit.test.tsx.snap +2 -2
  952. package/src/icons/metadata-view/IconMetadataView.js.flow +2 -1
  953. package/src/icons/metadata-view/IconMetadataView.tsx +3 -1
  954. package/src/icons/metadata-view/__tests__/__snapshots__/IconMetadataView.test.tsx.snap +1 -1
  955. package/src/icons/two-toned/IconAnnotation.js.flow +27 -0
  956. package/src/icons/two-toned/IconAnnotation.tsx +26 -0
  957. package/src/icons/two-toned/_IconAnnotation.mixins.scss +9 -0
  958. package/src/icons/two-toned/__tests__/IconAnnotation.test.tsx +28 -0
  959. package/src/icons/two-toned/__tests__/__snapshots__/IconAnnotation.test.tsx.snap +28 -0
  960. package/src/styles/_deprecated.scss +1 -0
  961. package/src/styles/_inputs.scss +2 -3
  962. package/src/styles/colors.md +1 -1
  963. package/src/styles/common/_buttons.scss +2 -2
  964. package/src/styles/common/_forms.scss +2 -0
  965. package/src/styles/common/_links.scss +1 -1
  966. package/src/styles/constants/_colors.scss +1 -1
  967. package/src/styles/constants/_themes.scss +1 -1
  968. package/src/styles/typography.stories.scss +60 -0
  969. package/src/styles/typography.stories.tsx +70 -0
  970. package/src/styles/variables.js +2 -2
  971. package/src/styles/variables.json +2 -2
  972. package/src/styles/variables.ts +2 -2
  973. package/src/utils/__tests__/__snapshots__/createTheme.test.js.snap +4 -4
  974. package/src/utils/createTheme.js +2 -2
  975. package/es/elements/common/sub-header/Sort.scss +0 -8
  976. package/es/elements/content-sidebar/activity-feed/task-new/_mixins.scss +0 -10
  977. package/es/features/content-explorer/item-types.js +0 -6
  978. package/es/features/content-explorer/item-types.js.flow +0 -5
  979. package/es/features/content-explorer/item-types.js.map +0 -1
  980. package/src/components/inline-error/README.md +0 -10
  981. package/src/components/inline-notice/README.md +0 -57
  982. package/src/components/nav-sidebar/README.md +0 -57
  983. package/src/components/pill-cloud/README.md +0 -39
  984. package/src/components/time/README.md +0 -58
  985. package/src/elements/common/sub-header/Sort.scss +0 -8
  986. package/src/elements/content-sidebar/activity-feed/task-new/_mixins.scss +0 -10
  987. package/src/features/content-explorer/item-types.js +0 -5
@@ -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","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"}
1
+ {"version":3,"sources":["../../../src/features/unified-share-modal/UnifiedShareForm.js"],"names":["React","isEmpty","isEqual","FormattedMessage","injectIntl","LoadingIndicatorWrapper","Link","Button","UpgradeBadge","InlineNotice","PlainButton","ITEM_TYPE_FILE","ITEM_TYPE_WEBLINK","Tooltip","CollaboratorAvatars","CollaboratorList","AdvancedContentInsightsToggle","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","collaboratorAccess","collabAccess","setLevelOfCollabAccess","upgradeLink","upgradeLinkProps","upgradeGetMoreAccessControlsLink","upgradeGetMoreAccessControlsDescription","upgradeInlineNoticeTitle","renderCollaboratorMessage","inviteePermissionsButtonProps","handleInviteePermissionChange","name","collaboratorListTracking","listContent","closeCollaboratorList","allShareRestrictionWarning","changeSharedLinkAccessLevel","changeSharedLinkPermissionLevel","displayInModal","getSharedLinkContacts","intl","isAdvancedContentInsightsChecked","isAllowEditSharedLinkForFileEnabled","isFetching","onAdvancedContentInsightsToggle","onCopyError","onCopyInit","onCopySuccess","onDismissTooltip","onSettingsClick","sendSharedLinkError","sharedLinkEditTagTargetingApi","sharedLinkEditTooltipTargetingApi","showSharedLinkSettingsCallout","tooltips","hasExpandedSections","showContentInsightsToggle","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 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_FILE, ITEM_TYPE_WEBLINK } from '../../common/constants';\nimport Tooltip from '../../components/tooltip';\nimport { CollaboratorAvatars, CollaboratorList } from '../collaborator-avatars';\n\nimport AdvancedContentInsightsToggle from '../advanced-content-insights/AdvancedContentInsightsToggle';\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 <FormattedMessage\n values={{\n collaboratorAccess: (\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 <FormattedMessage {...messages.collabAccess} />\n </Link>\n ),\n }}\n {...messages.setLevelOfCollabAccess}\n />\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 changeSharedLinkPermissionLevel,\n config,\n createSharedLinkOnLoad,\n displayInModal,\n focusSharedLinkOnLoad,\n getSharedLinkContacts,\n getContactAvatarUrl,\n intl,\n isAdvancedContentInsightsChecked,\n isAllowEditSharedLinkForFileEnabled,\n isFetching,\n item,\n onAddLink,\n onAdvancedContentInsightsToggle,\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 const hasExpandedSections = isEmailLinkSectionExpanded || isInviteSectionExpanded || showCollaboratorList;\n\n const showContentInsightsToggle =\n onAdvancedContentInsightsToggle && !hasExpandedSections && item?.type === ITEM_TYPE_FILE;\n\n return (\n <div className={displayInModal ? '' : 'be bdl-UnifiedShareForm'}>\n <LoadingIndicatorWrapper isLoading={isFetching} hideContent>\n {!hasExpandedSections && allShareRestrictionWarning}\n {showUpgradeOptions && showUpgradeInlineNotice && this.renderUpgradeInlineNotice()}\n\n {!isEmailLinkSectionExpanded && !showCollaboratorList && this.renderInviteSection()}\n\n {!hasExpandedSections && (\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 {showContentInsightsToggle && (\n <>\n <hr className=\"bdl-UnifiedShareForm-separator\" />\n <div className=\"bdl-UnifiedShareForm-row\">\n <AdvancedContentInsightsToggle\n isChecked={isAdvancedContentInsightsChecked}\n isDisabled={submitting || isFetching}\n onChange={onAdvancedContentInsightsToggle}\n />\n </div>\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"}
@@ -145,15 +145,24 @@ function (_React$Component) {
145
145
  value: function componentDidUpdate(prevProps) {
146
146
  var _this$props4 = this.props,
147
147
  item = _this$props4.item,
148
- sharedLink = _this$props4.sharedLink;
148
+ sharedLink = _this$props4.sharedLink,
149
+ trackingProps = _this$props4.trackingProps;
149
150
  var type = item.type,
150
151
  typedID = item.typedID;
152
+ var modalTracking = trackingProps.modalTracking;
153
+ var onLoadSharedLink = modalTracking.onLoadSharedLink;
151
154
  var prevSharedLink = prevProps.sharedLink;
152
155
  var getInitialDataCalled = this.state.getInitialDataCalled; // This check is to ensure minimum item props are
153
156
  // hydrated before we fetch data
154
157
 
155
158
  if (!getInitialDataCalled && type && typedID) {
156
159
  this.getInitialData();
160
+ } // this ensures that we obtain shared link information the first time data is returned
161
+ // so we can pass the corresponding permissions in the callback
162
+
163
+
164
+ if (!prevSharedLink.permissionLevel && sharedLink.permissionLevel && onLoadSharedLink) {
165
+ onLoadSharedLink(sharedLink.permissionLevel);
157
166
  } // we use state to override the default auto copy prop when a URL comes into view
158
167
 
159
168
 
@@ -77,8 +77,10 @@ class UnifiedShareModal extends React.Component<USMProps, State> {
77
77
  }
78
78
 
79
79
  componentDidUpdate(prevProps: USMProps) {
80
- const { item, sharedLink } = this.props;
80
+ const { item, sharedLink, trackingProps } = this.props;
81
81
  const { type, typedID } = item;
82
+ const { modalTracking } = trackingProps;
83
+ const { onLoadSharedLink } = modalTracking;
82
84
  const prevSharedLink = prevProps.sharedLink;
83
85
  const { getInitialDataCalled } = this.state;
84
86
 
@@ -88,6 +90,12 @@ class UnifiedShareModal extends React.Component<USMProps, State> {
88
90
  this.getInitialData();
89
91
  }
90
92
 
93
+ // this ensures that we obtain shared link information the first time data is returned
94
+ // so we can pass the corresponding permissions in the callback
95
+ if (!prevSharedLink.permissionLevel && sharedLink.permissionLevel && onLoadSharedLink) {
96
+ onLoadSharedLink(sharedLink.permissionLevel);
97
+ }
98
+
91
99
  // we use state to override the default auto copy prop when a URL comes into view
92
100
  if (prevSharedLink.url !== sharedLink.url && sharedLink.url) {
93
101
  this.setState({ sharedLinkLoaded: true });
@@ -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","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"}
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","onLoadSharedLink","prevSharedLink","permissionLevel","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, trackingProps } = this.props;\n const { type, typedID } = item;\n const { modalTracking } = trackingProps;\n const { onLoadSharedLink } = modalTracking;\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 // this ensures that we obtain shared link information the first time data is returned\n // so we can pass the corresponding permissions in the callback\n if (!prevSharedLink.permissionLevel && sharedLink.permissionLevel && onLoadSharedLink) {\n onLoadSharedLink(sharedLink.permissionLevel);\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"}
@@ -82,7 +82,7 @@
82
82
  // Menus are rendered at the root of the DOM, so this style is not nested
83
83
  .usm-menu-description {
84
84
  display: block;
85
- color: $bdl-gray-62;
85
+ color: $bdl-gray-65;
86
86
  font-size: 12px;
87
87
  }
88
88
 
@@ -216,7 +216,7 @@
216
216
  }
217
217
 
218
218
  .text-area-container textarea::placeholder {
219
- color: $bdl-gray-50;
219
+ color: $bdl-gray-65;
220
220
  }
221
221
 
222
222
  .bdl-PillSelector {
@@ -226,10 +226,10 @@
226
226
 
227
227
  .bdl-PillSelectorDropdown .bdl-PillSelector {
228
228
  margin-top: 10px;
229
- border: 1px solid $bdl-gray-20;
229
+ border: 1px solid $bdl-gray-50;
230
230
 
231
231
  .bdl-PillSelector-input::placeholder {
232
- color: $bdl-gray-50;
232
+ color: $bdl-gray-65;
233
233
  }
234
234
 
235
235
  &.bdl-is-disabled,
@@ -239,7 +239,7 @@
239
239
  box-shadow: none;
240
240
 
241
241
  .bdl-PillSelector-input::placeholder {
242
- color: $bdl-gray-50;
242
+ color: $bdl-gray-65;
243
243
  }
244
244
 
245
245
  &:hover {
@@ -255,15 +255,11 @@
255
255
  justify-content: space-between;
256
256
  margin-top: 10px;
257
257
 
258
- .share-toggle-container {
258
+ .toggle-container {
259
259
  flex: 0 1 80%;
260
260
  margin-bottom: 0;
261
261
  overflow-y: hidden;
262
262
 
263
- .toggle-container {
264
- margin-bottom: 0;
265
- }
266
-
267
263
  .toggle-simple-label {
268
264
  color: $bdl-gray;
269
265
  cursor: pointer;
@@ -317,14 +313,14 @@
317
313
  margin-right: 10px;
318
314
 
319
315
  &.can-edit-btn {
320
- color: $bdl-gray-62;
316
+ color: $bdl-gray-65;
321
317
  }
322
318
  }
323
319
  }
324
320
 
325
321
  .security-indicator-note {
326
322
  margin-top: 10px;
327
- color: $bdl-gray-62;
323
+ color: $bdl-gray-65;
328
324
 
329
325
  .security-indicator-icon-globe {
330
326
  padding-right: 5px;
@@ -370,6 +366,7 @@
370
366
 
371
367
  float: right;
372
368
  color: $bdl-box-blue;
369
+ letter-spacing: normal;
373
370
  }
374
371
  }
375
372
 
@@ -386,8 +383,22 @@
386
383
  padding: 2em;
387
384
  }
388
385
 
389
- .bdl-SharedLinkSection-separator {
386
+ .bdl-SharedLinkSection-separator,
387
+ .bdl-UnifiedShareForm-separator {
390
388
  margin: ($bdl-grid-unit * 5) 0;
391
389
  border: none;
392
390
  border-top: 1px solid $bdl-gray-20;
393
391
  }
392
+
393
+ .bdl-UnifiedShareForm-row {
394
+ margin-top: 10px;
395
+
396
+ .AdvancedContentInsightsToggle {
397
+ flex: 0 1 80%;
398
+ overflow-y: hidden;
399
+
400
+ .toggle-simple-label {
401
+ cursor: pointer;
402
+ }
403
+ }
404
+ }
@@ -140,6 +140,7 @@ export type trackingPropsType = {
140
140
  ftuxConfirmButtonProps?: Object,
141
141
  modalProps?: Object,
142
142
  onLoad?: Function,
143
+ onLoadSharedLink?: Function,
143
144
  },
144
145
  removeLinkConfirmModalTracking: {
145
146
  cancelButtonProps?: Object,
@@ -286,11 +287,11 @@ type SharedLinkSectionTypes = {
286
287
  onCopySuccess?: () => void,
287
288
  /** Handler function that gets called whenever the user dismisses a tooltip on the given component identifier */
288
289
  onDismissTooltip?: (componentIdentifier: tooltipComponentIdentifierType) => void,
289
- /** Handler function for clicks on the settings icon. If not provided, the settings icon won't be rendered. */
290
+ /** Handler function for clicks on the settings button. If not provided, the settings button won't be rendered. */
290
291
  onSettingsClick?: Function,
291
292
  /** Shared link data */
292
293
  sharedLink: sharedLinkType,
293
- /** Shows a callout tooltip next gear icon with info about what can be customized */
294
+ /** Shows a callout tooltip next to settings button with info about what can be customized */
294
295
  showSharedLinkSettingsCallout?: boolean,
295
296
  /** Mapping of components to the content that should be rendered in their tooltips */
296
297
  tooltips?: { [componentIdentifier: tooltipComponentIdentifierType]: React.Node },
@@ -318,6 +319,12 @@ type EmailFormTypes = {
318
319
  sendSharedLinkError: React.Node,
319
320
  };
320
321
 
322
+ type AdvancedContentInsightsUSProps = {
323
+ isAdvancedContentInsightsChecked?: boolean,
324
+ /** Handler function that gets called whenever the Advanced Content Insights toggle changes */
325
+ onAdvancedContentInsightsToggle?: Function,
326
+ };
327
+
321
328
  export type USMConfig = {
322
329
  /** Whether the "Email Shared Link" button and form should be rendered in the USM/USF */
323
330
  showEmailSharedLinkForm: boolean,
@@ -327,6 +334,7 @@ export type USMConfig = {
327
334
 
328
335
  // Prop types shared by both the Unified Share Modal and the Unified Share Form
329
336
  type BaseUnifiedShareProps = CollaboratorAvatarsTypes &
337
+ AdvancedContentInsightsUSProps &
330
338
  EmailFormTypes &
331
339
  CollabRestrictionsTypes &
332
340
  InviteSectionTypes &