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
@@ -0,0 +1,41 @@
1
+ // @flow
2
+ import * as React from 'react';
3
+ import { FormattedMessage } from 'react-intl';
4
+
5
+ import messages from './messages';
6
+ import PlainButton from '../../../../components/plain-button';
7
+
8
+ import './RepliesToggle.scss';
9
+
10
+ type Props = {
11
+ onHideReplies: (index: number) => void,
12
+ onShowReplies: () => void,
13
+ repliesShownCount: number,
14
+ repliesTotalCount: number,
15
+ };
16
+
17
+ const RepliesToggle = ({ onShowReplies, onHideReplies, repliesShownCount, repliesTotalCount }: Props) => {
18
+ if (repliesTotalCount <= 1) {
19
+ return null;
20
+ }
21
+
22
+ const hasMoreRepliesToShow = repliesTotalCount > repliesShownCount;
23
+ const toggleMessage = hasMoreRepliesToShow ? messages.showReplies : messages.hideReplies;
24
+ const repliesToLoadCount = Math.max(repliesTotalCount - repliesShownCount, 0);
25
+
26
+ const handleToggle = () => {
27
+ if (hasMoreRepliesToShow) {
28
+ onShowReplies();
29
+ } else if (repliesShownCount) {
30
+ onHideReplies(repliesShownCount - 1);
31
+ }
32
+ };
33
+
34
+ return (
35
+ <PlainButton className="bcs-RepliesToggle" onClick={handleToggle} type="button" data-testid="replies-toggle">
36
+ <FormattedMessage values={{ repliesToLoadCount }} {...toggleMessage} />
37
+ </PlainButton>
38
+ );
39
+ };
40
+
41
+ export default RepliesToggle;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/comment/RepliesToggle.js"],"names":["React","FormattedMessage","messages","PlainButton","RepliesToggle","onShowReplies","onHideReplies","repliesShownCount","repliesTotalCount","hasMoreRepliesToShow","toggleMessage","showReplies","hideReplies","repliesToLoadCount","Math","max","handleToggle"],"mappings":";;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,gBAAT,QAAiC,YAAjC;AAEA,OAAOC,QAAP,MAAqB,YAArB;AACA,OAAOC,WAAP,MAAwB,qCAAxB;AAEA,OAAO,sBAAP;;AASA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAAmF;AAAA,MAAhFC,aAAgF,QAAhFA,aAAgF;AAAA,MAAjEC,aAAiE,QAAjEA,aAAiE;AAAA,MAAlDC,iBAAkD,QAAlDA,iBAAkD;AAAA,MAA/BC,iBAA+B,QAA/BA,iBAA+B;;AACrG,MAAIA,iBAAiB,IAAI,CAAzB,EAA4B;AACxB,WAAO,IAAP;AACH;;AAED,MAAMC,oBAAoB,GAAGD,iBAAiB,GAAGD,iBAAjD;AACA,MAAMG,aAAa,GAAGD,oBAAoB,GAAGP,QAAQ,CAACS,WAAZ,GAA0BT,QAAQ,CAACU,WAA7E;AACA,MAAMC,kBAAkB,GAAGC,IAAI,CAACC,GAAL,CAASP,iBAAiB,GAAGD,iBAA7B,EAAgD,CAAhD,CAA3B;;AAEA,MAAMS,YAAY,GAAG,SAAfA,YAAe,GAAM;AACvB,QAAIP,oBAAJ,EAA0B;AACtBJ,MAAAA,aAAa;AAChB,KAFD,MAEO,IAAIE,iBAAJ,EAAuB;AAC1BD,MAAAA,aAAa,CAACC,iBAAiB,GAAG,CAArB,CAAb;AACH;AACJ,GAND;;AAQA,SACI,oBAAC,WAAD;AAAa,IAAA,SAAS,EAAC,mBAAvB;AAA2C,IAAA,OAAO,EAAES,YAApD;AAAkE,IAAA,IAAI,EAAC,QAAvE;AAAgF,mBAAY;AAA5F,KACI,oBAAC,gBAAD;AAAkB,IAAA,MAAM,EAAE;AAAEH,MAAAA,kBAAkB,EAAlBA;AAAF;AAA1B,KAAsDH,aAAtD,EADJ,CADJ;AAKH,CAtBD;;AAwBA,eAAeN,aAAf","sourcesContent":["// @flow\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport messages from './messages';\nimport PlainButton from '../../../../components/plain-button';\n\nimport './RepliesToggle.scss';\n\ntype Props = {\n onHideReplies: (index: number) => void,\n onShowReplies: () => void,\n repliesShownCount: number,\n repliesTotalCount: number,\n};\n\nconst RepliesToggle = ({ onShowReplies, onHideReplies, repliesShownCount, repliesTotalCount }: Props) => {\n if (repliesTotalCount <= 1) {\n return null;\n }\n\n const hasMoreRepliesToShow = repliesTotalCount > repliesShownCount;\n const toggleMessage = hasMoreRepliesToShow ? messages.showReplies : messages.hideReplies;\n const repliesToLoadCount = Math.max(repliesTotalCount - repliesShownCount, 0);\n\n const handleToggle = () => {\n if (hasMoreRepliesToShow) {\n onShowReplies();\n } else if (repliesShownCount) {\n onHideReplies(repliesShownCount - 1);\n }\n };\n\n return (\n <PlainButton className=\"bcs-RepliesToggle\" onClick={handleToggle} type=\"button\" data-testid=\"replies-toggle\">\n <FormattedMessage values={{ repliesToLoadCount }} {...toggleMessage} />\n </PlainButton>\n );\n};\n\nexport default RepliesToggle;\n"],"file":"RepliesToggle.js"}
@@ -0,0 +1,6 @@
1
+ @import '../../../common/variables';
2
+
3
+ .btn-plain.bcs-RepliesToggle {
4
+ color: $bdl-box-blue;
5
+ font-weight: bold;
6
+ }
@@ -28,6 +28,22 @@ var messages = defineMessages({
28
28
  commentUnresolveMenuItem: {
29
29
  "id": "be.contentSidebar.activityFeed.comment.commentUnresolveMenuItem",
30
30
  "defaultMessage": "Unresolve"
31
+ },
32
+ reply: {
33
+ "id": "be.contentSidebar.activityFeed.comment.reply",
34
+ "defaultMessage": "Reply"
35
+ },
36
+ replyInThread: {
37
+ "id": "be.contentSidebar.activityFeed.comment.replyInThread",
38
+ "defaultMessage": "Reply in thread"
39
+ },
40
+ hideReplies: {
41
+ "id": "be.contentSidebar.activityFeed.comment.hideReplies",
42
+ "defaultMessage": "Hide replies"
43
+ },
44
+ showReplies: {
45
+ "id": "be.contentSidebar.activityFeed.comment.showReplies",
46
+ "defaultMessage": "See {repliesToLoadCount, plural, one {# reply} other {# replies}}"
31
47
  }
32
48
  });
33
49
  export default messages;
@@ -37,6 +37,26 @@ const messages = defineMessages({
37
37
  defaultMessage: 'Unresolve',
38
38
  description: 'Text to show on menu item to unresolve the comment',
39
39
  },
40
+ reply: {
41
+ id: 'be.contentSidebar.activityFeed.comment.reply',
42
+ defaultMessage: 'Reply',
43
+ description: 'Text to show on button to start replying to comment',
44
+ },
45
+ replyInThread: {
46
+ id: 'be.contentSidebar.activityFeed.comment.replyInThread',
47
+ defaultMessage: 'Reply in thread',
48
+ description: 'Text to show on reply form input placeholder',
49
+ },
50
+ hideReplies: {
51
+ id: 'be.contentSidebar.activityFeed.comment.hideReplies',
52
+ defaultMessage: 'Hide replies',
53
+ description: 'Text to show to hide more replies of comment or annotation',
54
+ },
55
+ showReplies: {
56
+ id: 'be.contentSidebar.activityFeed.comment.showReplies',
57
+ defaultMessage: 'See {repliesToLoadCount, plural, one {# reply} other {# replies}}',
58
+ description: 'Text to show to get more replies of comment or annotation',
59
+ },
40
60
  });
41
61
 
42
62
  export default messages;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/comment/messages.js"],"names":["defineMessages","messages","commentDeleteMenuItem","commentDeletePrompt","commentEditMenuItem","commentPostedFullDateTime","commentResolveMenuItem","commentUnresolveMenuItem"],"mappings":"AAAA;;;;;AAMA,SAASA,cAAT,QAA+B,YAA/B;AAEA,IAAMC,QAAQ,GAAGD,cAAc,CAAC;AAC5BE,EAAAA,qBAAqB;AAAA;AAAA;AAAA,GADO;AAM5BC,EAAAA,mBAAmB;AAAA;AAAA;AAAA,GANS;AAW5BC,EAAAA,mBAAmB;AAAA;AAAA;AAAA,GAXS;AAgB5BC,EAAAA,yBAAyB;AAAA;AAAA;AAAA,GAhBG;AAqB5BC,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GArBM;AA0B5BC,EAAAA,wBAAwB;AAAA;AAAA;AAAA;AA1BI,CAAD,CAA/B;AAiCA,eAAeN,QAAf","sourcesContent":["/**\n * @flow\n * @file i18n messages\n * @author Box\n */\n\nimport { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n commentDeleteMenuItem: {\n id: 'be.contentSidebar.activityFeed.comment.commentDeleteMenuItem',\n defaultMessage: 'Delete',\n description: 'Text to show on menu item to delete comment',\n },\n commentDeletePrompt: {\n id: 'be.contentSidebar.activityFeed.comment.commentDeletePrompt',\n defaultMessage: 'Are you sure you want to permanently delete this comment?',\n description: 'Confirmation prompt text to delete comment',\n },\n commentEditMenuItem: {\n id: 'be.contentSidebar.activityFeed.comment.commentEditMenuItem',\n defaultMessage: 'Modify',\n description: 'Text to show on menu item to edit comment',\n },\n commentPostedFullDateTime: {\n id: 'be.contentSidebar.activityFeed.comment.commentPostedFullDateTime',\n defaultMessage: '{time, date, full} at {time, time, short}',\n description: 'Comment posted full date time for title',\n },\n commentResolveMenuItem: {\n id: 'be.contentSidebar.activityFeed.comment.commentResolveMenuItem',\n defaultMessage: 'Resolve',\n description: 'Text to show on menu item to resolve the comment',\n },\n commentUnresolveMenuItem: {\n id: 'be.contentSidebar.activityFeed.comment.commentUnresolveMenuItem',\n defaultMessage: 'Unresolve',\n description: 'Text to show on menu item to unresolve the comment',\n },\n});\n\nexport default messages;\n"],"file":"messages.js"}
1
+ {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/comment/messages.js"],"names":["defineMessages","messages","commentDeleteMenuItem","commentDeletePrompt","commentEditMenuItem","commentPostedFullDateTime","commentResolveMenuItem","commentUnresolveMenuItem","reply","replyInThread","hideReplies","showReplies"],"mappings":"AAAA;;;;;AAMA,SAASA,cAAT,QAA+B,YAA/B;AAEA,IAAMC,QAAQ,GAAGD,cAAc,CAAC;AAC5BE,EAAAA,qBAAqB;AAAA;AAAA;AAAA,GADO;AAM5BC,EAAAA,mBAAmB;AAAA;AAAA;AAAA,GANS;AAW5BC,EAAAA,mBAAmB;AAAA;AAAA;AAAA,GAXS;AAgB5BC,EAAAA,yBAAyB;AAAA;AAAA;AAAA,GAhBG;AAqB5BC,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GArBM;AA0B5BC,EAAAA,wBAAwB;AAAA;AAAA;AAAA,GA1BI;AA+B5BC,EAAAA,KAAK;AAAA;AAAA;AAAA,GA/BuB;AAoC5BC,EAAAA,aAAa;AAAA;AAAA;AAAA,GApCe;AAyC5BC,EAAAA,WAAW;AAAA;AAAA;AAAA,GAzCiB;AA8C5BC,EAAAA,WAAW;AAAA;AAAA;AAAA;AA9CiB,CAAD,CAA/B;AAqDA,eAAeV,QAAf","sourcesContent":["/**\n * @flow\n * @file i18n messages\n * @author Box\n */\n\nimport { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n commentDeleteMenuItem: {\n id: 'be.contentSidebar.activityFeed.comment.commentDeleteMenuItem',\n defaultMessage: 'Delete',\n description: 'Text to show on menu item to delete comment',\n },\n commentDeletePrompt: {\n id: 'be.contentSidebar.activityFeed.comment.commentDeletePrompt',\n defaultMessage: 'Are you sure you want to permanently delete this comment?',\n description: 'Confirmation prompt text to delete comment',\n },\n commentEditMenuItem: {\n id: 'be.contentSidebar.activityFeed.comment.commentEditMenuItem',\n defaultMessage: 'Modify',\n description: 'Text to show on menu item to edit comment',\n },\n commentPostedFullDateTime: {\n id: 'be.contentSidebar.activityFeed.comment.commentPostedFullDateTime',\n defaultMessage: '{time, date, full} at {time, time, short}',\n description: 'Comment posted full date time for title',\n },\n commentResolveMenuItem: {\n id: 'be.contentSidebar.activityFeed.comment.commentResolveMenuItem',\n defaultMessage: 'Resolve',\n description: 'Text to show on menu item to resolve the comment',\n },\n commentUnresolveMenuItem: {\n id: 'be.contentSidebar.activityFeed.comment.commentUnresolveMenuItem',\n defaultMessage: 'Unresolve',\n description: 'Text to show on menu item to unresolve the comment',\n },\n reply: {\n id: 'be.contentSidebar.activityFeed.comment.reply',\n defaultMessage: 'Reply',\n description: 'Text to show on button to start replying to comment',\n },\n replyInThread: {\n id: 'be.contentSidebar.activityFeed.comment.replyInThread',\n defaultMessage: 'Reply in thread',\n description: 'Text to show on reply form input placeholder',\n },\n hideReplies: {\n id: 'be.contentSidebar.activityFeed.comment.hideReplies',\n defaultMessage: 'Hide replies',\n description: 'Text to show to hide more replies of comment or annotation',\n },\n showReplies: {\n id: 'be.contentSidebar.activityFeed.comment.showReplies',\n defaultMessage: 'See {repliesToLoadCount, plural, one {# reply} other {# replies}}',\n description: 'Text to show to get more replies of comment or annotation',\n },\n});\n\nexport default messages;\n"],"file":"messages.js"}
@@ -149,7 +149,7 @@ function (_React$Component) {
149
149
  });
150
150
  return React.createElement(Media, {
151
151
  className: inputContainerClassNames
152
- }, !isEditing && React.createElement(Media.Figure, {
152
+ }, !isEditing && !!user && React.createElement(Media.Figure, {
153
153
  className: "bcs-CommentForm-avatar"
154
154
  }, React.createElement(Avatar, {
155
155
  getAvatarUrl: getAvatarUrl,
@@ -27,7 +27,7 @@ type Props = {
27
27
  contactsLoaded?: boolean,
28
28
  createComment?: Function,
29
29
  entityId?: string,
30
- getAvatarUrl: GetAvatarUrlCallback,
30
+ getAvatarUrl?: GetAvatarUrlCallback,
31
31
  getMentionWithQuery?: Function,
32
32
  isDisabled?: boolean,
33
33
  isEditing?: boolean,
@@ -40,7 +40,7 @@ type Props = {
40
40
  showTip?: boolean,
41
41
  tagged_message?: string,
42
42
  updateComment?: Function,
43
- user: User,
43
+ user?: User,
44
44
  } & InjectIntlProvidedProps;
45
45
 
46
46
  type State = {
@@ -129,7 +129,7 @@ class CommentForm extends React.Component<Props, State> {
129
129
 
130
130
  return (
131
131
  <Media className={inputContainerClassNames}>
132
- {!isEditing && (
132
+ {!isEditing && !!user && (
133
133
  <Media.Figure className="bcs-CommentForm-avatar">
134
134
  <Avatar getAvatarUrl={getAvatarUrl} user={user} />
135
135
  </Media.Figure>
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/comment-form/CommentForm.js"],"names":["React","noop","classNames","FormattedMessage","injectIntl","Avatar","CommentFormControls","DraftJSMentionSelector","createMentionSelectorState","getFormattedCommentText","Form","Media","messages","CommentForm","commentEditorState","props","tagged_message","createComment","updateComment","onSubmit","entityId","text","hasMention","id","setState","nextEditorState","state","prevIsOpen","isOpen","className","getMentionWithQuery","formatMessage","intl","isDisabled","mentionSelectorContacts","contactsLoaded","onCancel","onFocus","user","isEditing","getAvatarUrl","showTip","placeholder","commentWrite","inputContainerClassNames","onFormValidSubmitHandler","commentLabel","atMentionTipDescription","onMentionSelectorChangeHandler","undefined","atMentionTip","Component","CommentFormUnwrapped"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Component for Approval comment form\n */\n\nimport * as React from 'react';\nimport noop from 'lodash/noop';\nimport classNames from 'classnames';\nimport { FormattedMessage, injectIntl } from 'react-intl';\nimport type { InjectIntlProvidedProps } from 'react-intl';\nimport Avatar from '../Avatar';\nimport CommentFormControls from './CommentFormControls';\nimport DraftJSMentionSelector, {\n createMentionSelectorState,\n getFormattedCommentText,\n} from '../../../../components/form-elements/draft-js-mention-selector';\nimport Form from '../../../../components/form-elements/form/Form';\nimport Media from '../../../../components/media';\nimport messages from './messages';\nimport type { GetAvatarUrlCallback } from '../../../common/flowTypes';\nimport type { SelectorItems, User } from '../../../../common/types/core';\n\nimport './CommentForm.scss';\n\ntype Props = {\n className: string,\n contactsLoaded?: boolean,\n createComment?: Function,\n entityId?: string,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n isDisabled?: boolean,\n isEditing?: boolean,\n isOpen: boolean,\n mentionSelectorContacts?: SelectorItems<>,\n onCancel: Function,\n onFocus?: Function,\n onSubmit?: Function,\n placeholder?: string,\n showTip?: boolean,\n tagged_message?: string,\n updateComment?: Function,\n user: User,\n} & InjectIntlProvidedProps;\n\ntype State = {\n commentEditorState: any,\n};\n\nclass CommentForm extends React.Component<Props, State> {\n static defaultProps = {\n isOpen: false,\n };\n\n state = {\n commentEditorState: createMentionSelectorState(this.props.tagged_message),\n };\n\n componentDidUpdate({ isOpen: prevIsOpen }: Props): void {\n const { isOpen } = this.props;\n\n if (isOpen !== prevIsOpen && !isOpen) {\n this.setState({\n commentEditorState: createMentionSelectorState(),\n });\n }\n }\n\n onFormValidSubmitHandler = (): void => {\n const { createComment = noop, updateComment = noop, onSubmit, entityId } = this.props;\n\n const { text, hasMention } = this.getFormattedCommentText();\n\n if (!text) {\n return;\n }\n\n if (entityId) {\n updateComment({ id: entityId, text, hasMention });\n } else {\n createComment({ text, hasMention });\n }\n\n if (onSubmit) {\n onSubmit();\n }\n\n this.setState({\n commentEditorState: createMentionSelectorState(),\n });\n };\n\n onMentionSelectorChangeHandler = (nextEditorState: any): void =>\n this.setState({ commentEditorState: nextEditorState });\n\n /**\n * Formats the comment editor's text such that it will be accepted by the server.\n *\n * @returns {Object}\n */\n getFormattedCommentText = (): { hasMention: boolean, text: string } => {\n const { commentEditorState } = this.state;\n\n return getFormattedCommentText(commentEditorState);\n };\n\n render(): React.Node {\n const {\n className,\n getMentionWithQuery,\n intl: { formatMessage },\n isDisabled,\n isOpen,\n mentionSelectorContacts = [],\n contactsLoaded,\n onCancel,\n onFocus,\n user,\n isEditing,\n tagged_message,\n getAvatarUrl,\n showTip = true,\n placeholder = formatMessage(messages.commentWrite),\n } = this.props;\n const { commentEditorState } = this.state;\n const inputContainerClassNames = classNames('bcs-CommentForm', className, {\n 'bcs-is-open': isOpen,\n });\n\n return (\n <Media className={inputContainerClassNames}>\n {!isEditing && (\n <Media.Figure className=\"bcs-CommentForm-avatar\">\n <Avatar getAvatarUrl={getAvatarUrl} user={user} />\n </Media.Figure>\n )}\n\n <Media.Body className=\"bcs-CommentForm-body\" data-testid=\"bcs-CommentForm-body\">\n <Form onValidSubmit={this.onFormValidSubmitHandler}>\n <DraftJSMentionSelector\n className=\"bcs-CommentForm-input\"\n contacts={isOpen ? mentionSelectorContacts : []}\n contactsLoaded={contactsLoaded}\n editorState={commentEditorState}\n hideLabel\n isDisabled={isDisabled}\n isRequired={isOpen}\n name=\"commentText\"\n label={formatMessage(messages.commentLabel)}\n description={formatMessage(messages.atMentionTipDescription)}\n onChange={this.onMentionSelectorChangeHandler}\n onFocus={onFocus}\n onMention={getMentionWithQuery}\n placeholder={tagged_message ? undefined : placeholder}\n validateOnBlur={false}\n />\n {showTip && (\n <div className=\"bcs-CommentForm-tip\">\n <FormattedMessage {...messages.atMentionTip} />\n </div>\n )}\n\n {isOpen && <CommentFormControls onCancel={onCancel} />}\n </Form>\n </Media.Body>\n </Media>\n );\n }\n}\n\n// For testing only\nexport { CommentForm as CommentFormUnwrapped };\nexport default injectIntl(CommentForm);\n"],"file":"CommentForm.js"}
1
+ {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/comment-form/CommentForm.js"],"names":["React","noop","classNames","FormattedMessage","injectIntl","Avatar","CommentFormControls","DraftJSMentionSelector","createMentionSelectorState","getFormattedCommentText","Form","Media","messages","CommentForm","commentEditorState","props","tagged_message","createComment","updateComment","onSubmit","entityId","text","hasMention","id","setState","nextEditorState","state","prevIsOpen","isOpen","className","getMentionWithQuery","formatMessage","intl","isDisabled","mentionSelectorContacts","contactsLoaded","onCancel","onFocus","user","isEditing","getAvatarUrl","showTip","placeholder","commentWrite","inputContainerClassNames","onFormValidSubmitHandler","commentLabel","atMentionTipDescription","onMentionSelectorChangeHandler","undefined","atMentionTip","Component","CommentFormUnwrapped"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Component for Approval comment form\n */\n\nimport * as React from 'react';\nimport noop from 'lodash/noop';\nimport classNames from 'classnames';\nimport { FormattedMessage, injectIntl } from 'react-intl';\nimport type { InjectIntlProvidedProps } from 'react-intl';\nimport Avatar from '../Avatar';\nimport CommentFormControls from './CommentFormControls';\nimport DraftJSMentionSelector, {\n createMentionSelectorState,\n getFormattedCommentText,\n} from '../../../../components/form-elements/draft-js-mention-selector';\nimport Form from '../../../../components/form-elements/form/Form';\nimport Media from '../../../../components/media';\nimport messages from './messages';\nimport type { GetAvatarUrlCallback } from '../../../common/flowTypes';\nimport type { SelectorItems, User } from '../../../../common/types/core';\n\nimport './CommentForm.scss';\n\ntype Props = {\n className: string,\n contactsLoaded?: boolean,\n createComment?: Function,\n entityId?: string,\n getAvatarUrl?: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n isDisabled?: boolean,\n isEditing?: boolean,\n isOpen: boolean,\n mentionSelectorContacts?: SelectorItems<>,\n onCancel: Function,\n onFocus?: Function,\n onSubmit?: Function,\n placeholder?: string,\n showTip?: boolean,\n tagged_message?: string,\n updateComment?: Function,\n user?: User,\n} & InjectIntlProvidedProps;\n\ntype State = {\n commentEditorState: any,\n};\n\nclass CommentForm extends React.Component<Props, State> {\n static defaultProps = {\n isOpen: false,\n };\n\n state = {\n commentEditorState: createMentionSelectorState(this.props.tagged_message),\n };\n\n componentDidUpdate({ isOpen: prevIsOpen }: Props): void {\n const { isOpen } = this.props;\n\n if (isOpen !== prevIsOpen && !isOpen) {\n this.setState({\n commentEditorState: createMentionSelectorState(),\n });\n }\n }\n\n onFormValidSubmitHandler = (): void => {\n const { createComment = noop, updateComment = noop, onSubmit, entityId } = this.props;\n\n const { text, hasMention } = this.getFormattedCommentText();\n\n if (!text) {\n return;\n }\n\n if (entityId) {\n updateComment({ id: entityId, text, hasMention });\n } else {\n createComment({ text, hasMention });\n }\n\n if (onSubmit) {\n onSubmit();\n }\n\n this.setState({\n commentEditorState: createMentionSelectorState(),\n });\n };\n\n onMentionSelectorChangeHandler = (nextEditorState: any): void =>\n this.setState({ commentEditorState: nextEditorState });\n\n /**\n * Formats the comment editor's text such that it will be accepted by the server.\n *\n * @returns {Object}\n */\n getFormattedCommentText = (): { hasMention: boolean, text: string } => {\n const { commentEditorState } = this.state;\n\n return getFormattedCommentText(commentEditorState);\n };\n\n render(): React.Node {\n const {\n className,\n getMentionWithQuery,\n intl: { formatMessage },\n isDisabled,\n isOpen,\n mentionSelectorContacts = [],\n contactsLoaded,\n onCancel,\n onFocus,\n user,\n isEditing,\n tagged_message,\n getAvatarUrl,\n showTip = true,\n placeholder = formatMessage(messages.commentWrite),\n } = this.props;\n const { commentEditorState } = this.state;\n const inputContainerClassNames = classNames('bcs-CommentForm', className, {\n 'bcs-is-open': isOpen,\n });\n\n return (\n <Media className={inputContainerClassNames}>\n {!isEditing && !!user && (\n <Media.Figure className=\"bcs-CommentForm-avatar\">\n <Avatar getAvatarUrl={getAvatarUrl} user={user} />\n </Media.Figure>\n )}\n\n <Media.Body className=\"bcs-CommentForm-body\" data-testid=\"bcs-CommentForm-body\">\n <Form onValidSubmit={this.onFormValidSubmitHandler}>\n <DraftJSMentionSelector\n className=\"bcs-CommentForm-input\"\n contacts={isOpen ? mentionSelectorContacts : []}\n contactsLoaded={contactsLoaded}\n editorState={commentEditorState}\n hideLabel\n isDisabled={isDisabled}\n isRequired={isOpen}\n name=\"commentText\"\n label={formatMessage(messages.commentLabel)}\n description={formatMessage(messages.atMentionTipDescription)}\n onChange={this.onMentionSelectorChangeHandler}\n onFocus={onFocus}\n onMention={getMentionWithQuery}\n placeholder={tagged_message ? undefined : placeholder}\n validateOnBlur={false}\n />\n {showTip && (\n <div className=\"bcs-CommentForm-tip\">\n <FormattedMessage {...messages.atMentionTip} />\n </div>\n )}\n\n {isOpen && <CommentFormControls onCancel={onCancel} />}\n </Form>\n </Media.Body>\n </Media>\n );\n }\n}\n\n// For testing only\nexport { CommentForm as CommentFormUnwrapped };\nexport default injectIntl(CommentForm);\n"],"file":"CommentForm.js"}
@@ -37,7 +37,7 @@
37
37
 
38
38
  .bcs-CommentForm-tip {
39
39
  margin-top: 10px;
40
- color: $bdl-gray-62;
40
+ color: $bdl-gray-65;
41
41
  }
42
42
 
43
43
  .bcs-CommentFormControls {
@@ -14,7 +14,7 @@
14
14
  }
15
15
 
16
16
  .bcs-ActivityMessage-edited {
17
- color: $bdl-gray-62;
17
+ color: $bdl-gray-65;
18
18
  }
19
19
 
20
20
  .bcs-ActivityMessage-mention {
@@ -18,7 +18,7 @@ var messages = defineMessages({
18
18
  },
19
19
  activityMessageEdited: {
20
20
  "id": "be.contentSidebar.activityFeed.common.editedMessage",
21
- "defaultMessage": " (edited)"
21
+ "defaultMessage": "\\ (edited)"
22
22
  }
23
23
  });
24
24
  export default messages;
@@ -24,8 +24,8 @@ const messages = defineMessages({
24
24
  },
25
25
  activityMessageEdited: {
26
26
  id: 'be.contentSidebar.activityFeed.common.editedMessage',
27
- defaultMessage: ' (edited)',
28
- description: 'Label indicating that message was edited, should be lowercase',
27
+ defaultMessage: '\\ (edited)',
28
+ description: 'Label indicating that message was edited, should be lowercase, should have escaped leading space',
29
29
  },
30
30
  });
31
31
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/elements/content-sidebar/activity-feed/common/activity-message/messages.js"],"names":["defineMessages","messages","activityMessageShowOriginal","activityMessageTranslate","activityMessageSeeMore","activityMessageSeeLess","activityMessageEdited"],"mappings":"AACA,SAASA,cAAT,QAA+B,YAA/B;AAEA,IAAMC,QAAQ,GAAGD,cAAc,CAAC;AAC5BE,EAAAA,2BAA2B;AAAA;AAAA;AAAA,GADC;AAM5BC,EAAAA,wBAAwB;AAAA;AAAA;AAAA,GANI;AAW5BC,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GAXM;AAgB5BC,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GAhBM;AAqB5BC,EAAAA,qBAAqB;AAAA;AAAA;AAAA;AArBO,CAAD,CAA/B;AA4BA,eAAeL,QAAf","sourcesContent":["// @flow\nimport { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n activityMessageShowOriginal: {\n id: 'be.contentSidebar.activityFeed.commmon.showOriginalMessage',\n defaultMessage: 'Show Original',\n description: 'Show original button for showing original comment',\n },\n activityMessageTranslate: {\n id: 'be.contentSidebar.activityFeed.common.translateMessage',\n defaultMessage: 'Translate',\n description: 'Translate button for translating comment',\n },\n activityMessageSeeMore: {\n id: 'be.contentSidebar.activityFeed.common.seeMoreMessage',\n defaultMessage: 'See more',\n description: 'See more button for showing whole long message',\n },\n activityMessageSeeLess: {\n id: 'be.contentSidebar.activityFeed.common.seeLessMessage',\n defaultMessage: 'See less',\n description: 'See less button for hiding part of long message',\n },\n activityMessageEdited: {\n id: 'be.contentSidebar.activityFeed.common.editedMessage',\n defaultMessage: ' (edited)',\n description: 'Label indicating that message was edited, should be lowercase',\n },\n});\n\nexport default messages;\n"],"file":"messages.js"}
1
+ {"version":3,"sources":["../../../../../../src/elements/content-sidebar/activity-feed/common/activity-message/messages.js"],"names":["defineMessages","messages","activityMessageShowOriginal","activityMessageTranslate","activityMessageSeeMore","activityMessageSeeLess","activityMessageEdited"],"mappings":"AACA,SAASA,cAAT,QAA+B,YAA/B;AAEA,IAAMC,QAAQ,GAAGD,cAAc,CAAC;AAC5BE,EAAAA,2BAA2B;AAAA;AAAA;AAAA,GADC;AAM5BC,EAAAA,wBAAwB;AAAA;AAAA;AAAA,GANI;AAW5BC,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GAXM;AAgB5BC,EAAAA,sBAAsB;AAAA;AAAA;AAAA,GAhBM;AAqB5BC,EAAAA,qBAAqB;AAAA;AAAA;AAAA;AArBO,CAAD,CAA/B;AA4BA,eAAeL,QAAf","sourcesContent":["// @flow\nimport { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n activityMessageShowOriginal: {\n id: 'be.contentSidebar.activityFeed.commmon.showOriginalMessage',\n defaultMessage: 'Show Original',\n description: 'Show original button for showing original comment',\n },\n activityMessageTranslate: {\n id: 'be.contentSidebar.activityFeed.common.translateMessage',\n defaultMessage: 'Translate',\n description: 'Translate button for translating comment',\n },\n activityMessageSeeMore: {\n id: 'be.contentSidebar.activityFeed.common.seeMoreMessage',\n defaultMessage: 'See more',\n description: 'See more button for showing whole long message',\n },\n activityMessageSeeLess: {\n id: 'be.contentSidebar.activityFeed.common.seeLessMessage',\n defaultMessage: 'See less',\n description: 'See less button for hiding part of long message',\n },\n activityMessageEdited: {\n id: 'be.contentSidebar.activityFeed.common.editedMessage',\n defaultMessage: '\\\\ (edited)',\n description: 'Label indicating that message was edited, should be lowercase, should have escaped leading space',\n },\n});\n\nexport default messages;\n"],"file":"messages.js"}
@@ -1,6 +1,6 @@
1
1
  @import '../../../../../styles/variables';
2
2
 
3
3
  .bcs-ActivityStatus {
4
- margin-top: 5 * $bdl-grid-unit;
4
+ margin-top: 4 * $bdl-grid-unit;
5
5
  margin-bottom: 3 * $bdl-grid-unit;
6
6
  }
@@ -501,6 +501,7 @@ function (_React$Component) {
501
501
  }), React.createElement(DatePicker, {
502
502
  className: "bcs-task-add-due-date-input",
503
503
  error: this.getErrorByFieldname('taskDueDate'),
504
+ errorTooltipPosition: "bottom-right",
504
505
  inputProps: (_ref5 = {}, _defineProperty(_ref5, INTERACTION_TARGET, ACTIVITY_TARGETS.TASK_DATE_PICKER), _defineProperty(_ref5, 'data-testid', 'task-form-date-input'), _ref5),
505
506
  isAccessible: true,
506
507
  isDisabled: isForbiddenErrorOnEdit,
@@ -456,6 +456,7 @@ class TaskForm extends React.Component<Props, State> {
456
456
  <DatePicker
457
457
  className="bcs-task-add-due-date-input"
458
458
  error={this.getErrorByFieldname('taskDueDate')}
459
+ errorTooltipPosition="bottom-right"
459
460
  inputProps={{
460
461
  [INTERACTION_TARGET]: ACTIVITY_TARGETS.TASK_DATE_PICKER,
461
462
  'data-testid': 'task-form-date-input',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/task-form/TaskForm.js"],"names":["React","noop","getProp","isEmpty","classNames","FormattedMessage","injectIntl","commonMessages","messages","commentFormMessages","Form","ModalActions","ContactDatalistItem","TextArea","DatePicker","Checkbox","PillSelectorDropdown","Button","FeatureFlag","PrimaryButton","TASK_COMPLETION_RULE_ANY","TASK_COMPLETION_RULE_ALL","TASK_EDIT_MODE_CREATE","TASK_EDIT_MODE_EDIT","ACTIVITY_TARGETS","INTERACTION_TARGET","TaskError","convertAssigneesToSelectorItems","approvers","map","target","newSelectorItem","id","name","item","value","text","TaskForm","getInitialFormState","only","invalidSubmitValidityState","setState","state","intl","props","message","approverTextInput","assigneeFieldMissingError","code","formatMessage","requiredFieldError","assigneeFieldInvalidError","invalidUserError","messageFieldError","taskDueDateError","invalidDateError","formValidityState","taskAssignees","length","taskName","taskDueDate","isValid","Object","values","every","val","fieldName","validateForm","undefined","onSubmitSuccess","clearForm","isLoading","e","onSubmitError","taskType","editMode","dueDate","addedAssignees","getAddedAssignees","removedAssignees","getRemovedAssignees","filter","assignee","type","getTime","currentApprovers","approverIds","approver","currentApprover","indexOf","currentApproverIds","createTask","editTask","completionRule","dueDateString","toISOString","completion_rule","description","due_at","handleSubmitSuccess","handleSubmitError","date","dateValue","Date","setHours","event","checked","getApproverWithQuery","pills","concat","pill","role","status","permissions","can_delete","can_update","option","index","splice","persist","currentTarget","onCancel","approverSelectorContacts","className","error","isDisabled","inputContainerClassNames","isCreateEditMode","selectedApprovers","approverOptions","find","pillSelectorOverlayClasses","scrollable","submitButtonMessage","tasksAddTaskFormSubmitLabel","tasksEditTaskFormSubmitLabel","shouldShowCompletionRule","isCompletionRuleCheckboxDisabled","isCompletionRuleCheckboxChecked","isForbiddenErrorOnEdit","handleInvalidSubmit","handleValidSubmit","getErrorByFieldname","tasksAddTaskFormSelectAssigneesLabel","handleApproverSelectorInput","handleApproverSelectorRemove","handleApproverSelectorSelect","approvalAddAssignee","taskCreateGroupLabel","email","taskAnyCheckboxLabel","taskAnyInfoGroupTooltip","handleCompletionRuleChange","taskAnyInfoTooltip","tasksAddTaskFormMessageLabel","handleChangeMessage","commentWrite","TASK_DATE_PICKER","tasksAddTaskFormDueDateLabel","handleDueDateChange","approvalSelectDate","APPROVAL_FORM_CANCEL","handleCancelClick","addResinInfo","tasksAddTaskFormCancelLabel","APPROVAL_FORM_POST","Component","TaskFormUnwrapped"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Component for Approval comment form\n */\n\nimport * as React from 'react';\nimport noop from 'lodash/noop';\nimport getProp from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport classNames from 'classnames';\nimport { FormattedMessage, injectIntl } from 'react-intl';\nimport type { InjectIntlProvidedProps } from 'react-intl';\nimport commonMessages from '../../../../common/messages';\nimport messages from './messages';\nimport commentFormMessages from '../comment-form/messages';\nimport Form from '../../../../components/form-elements/form/Form';\nimport ModalActions from '../../../../components/modal/ModalActions';\nimport ContactDatalistItem from '../../../../components/contact-datalist-item/ContactDatalistItem';\nimport TextArea from '../../../../components/text-area';\nimport DatePicker from '../../../../components/date-picker/DatePicker';\nimport Checkbox from '../../../../components/checkbox';\nimport PillSelectorDropdown from '../../../../components/pill-selector-dropdown/PillSelectorDropdown';\nimport Button from '../../../../components/button/Button';\nimport { FeatureFlag } from '../../../common/feature-checking';\nimport PrimaryButton from '../../../../components/primary-button/PrimaryButton';\nimport {\n TASK_COMPLETION_RULE_ANY,\n TASK_COMPLETION_RULE_ALL,\n TASK_EDIT_MODE_CREATE,\n TASK_EDIT_MODE_EDIT,\n} from '../../../../constants';\nimport { ACTIVITY_TARGETS, INTERACTION_TARGET } from '../../../common/interactionTargets';\nimport type {\n TaskCompletionRule,\n TaskCollabAssignee,\n TaskType,\n TaskEditMode,\n TaskUpdatePayload,\n} from '../../../../common/types/tasks';\nimport TaskError from './TaskError';\nimport type { GetAvatarUrlCallback } from '../../../common/flowTypes';\nimport type { ElementsXhrError } from '../../../../common/types/api';\nimport type { SelectorItems, SelectorItem, UserMini, GroupMini } from '../../../../common/types/core';\n\nimport './TaskForm.scss';\n\ntype TaskFormProps = {|\n error?: { status: number }, // TODO: update to ElementsXhrError once API supports it\n isDisabled?: boolean,\n onCancel: () => any,\n onSubmitError: (e: ElementsXhrError) => any,\n onSubmitSuccess: () => any,\n taskType: TaskType,\n|};\n\ntype TaskFormFieldProps = {|\n approvers: Array<TaskCollabAssignee>,\n completionRule: TaskCompletionRule,\n dueDate?: ?string,\n id: string,\n message: string,\n|};\n\ntype TaskFormConsumerProps = {|\n ...TaskFormFieldProps,\n approverSelectorContacts: SelectorItems<UserMini | GroupMini>,\n className?: string,\n createTask: (\n text: string,\n approvers: SelectorItems<>,\n taskType: TaskType,\n dueDate: ?string,\n completionRule: TaskCompletionRule,\n onSuccess: ?Function,\n onError: ?Function,\n ) => any,\n editMode?: TaskEditMode,\n editTask?: (task: TaskUpdatePayload, onSuccess: ?Function, onError: ?Function) => any,\n getApproverWithQuery?: Function,\n getAvatarUrl: GetAvatarUrlCallback,\n|};\n\ntype Props = TaskFormProps & TaskFormConsumerProps & InjectIntlProvidedProps;\n\ntype TaskFormFieldName = 'taskName' | 'taskAssignees' | 'taskDueDate';\n\ntype TaskFormInvalidSubmitState = { [key: TaskFormFieldName]: ?{ validityState: ?{ patternMismatch: boolean } } };\n\ntype State = {|\n approverTextInput: string, // partial text input value for approver field before autocomplete/select\n approvers: Array<TaskCollabAssignee>,\n completionRule: TaskCompletionRule,\n dueDate?: ?Date,\n formValidityState: { [key: TaskFormFieldName]: ?{ code: string, message: string } },\n id: string,\n isLoading: boolean,\n isValid: ?boolean,\n message: string,\n|};\n\nfunction convertAssigneesToSelectorItems(approvers: Array<TaskCollabAssignee>): SelectorItems<> {\n return approvers.map(({ target }) => {\n const newSelectorItem: SelectorItem<UserMini | GroupMini> = {\n id: target.id,\n name: target.name,\n item: target,\n value: target.id,\n text: target.name, // for PillSelectorDropdown SelectorOptions type\n };\n\n return newSelectorItem;\n });\n}\n\nclass TaskForm extends React.Component<Props, State> {\n static defaultProps = {\n approvers: [],\n approverSelectorContacts: [],\n editMode: TASK_EDIT_MODE_CREATE,\n id: '',\n message: '',\n };\n\n state = this.getInitialFormState();\n\n getInitialFormState() {\n const { dueDate, id, message, approvers, completionRule } = this.props;\n return {\n id,\n completionRule: completionRule || TASK_COMPLETION_RULE_ALL,\n approvers,\n approverTextInput: '',\n dueDate: dueDate ? new Date(dueDate) : null,\n formValidityState: {},\n message,\n isLoading: false,\n isValid: null,\n };\n }\n\n validateForm = (only?: TaskFormFieldName, invalidSubmitValidityState?: ?TaskFormInvalidSubmitState) => {\n this.setState(state => {\n const { intl } = this.props;\n const { approvers, message, approverTextInput } = state;\n const assigneeFieldMissingError = {\n code: 'required',\n message: intl.formatMessage(commonMessages.requiredFieldError),\n };\n const assigneeFieldInvalidError = {\n code: 'invalid',\n message: intl.formatMessage(commonMessages.invalidUserError),\n };\n const messageFieldError = {\n code: 'required',\n message: intl.formatMessage(commonMessages.requiredFieldError),\n };\n const taskDueDateError = {\n code: 'invalid',\n message: intl.formatMessage(commonMessages.invalidDateError),\n };\n const formValidityState = {\n taskAssignees:\n (approverTextInput.length ? assigneeFieldInvalidError : null) ||\n (approvers.length ? null : assigneeFieldMissingError),\n taskName: message ? null : messageFieldError,\n taskDueDate: getProp(invalidSubmitValidityState, 'taskDueDate.validityState.patternMismatch')\n ? taskDueDateError\n : null,\n };\n const isValid = Object.values(formValidityState).every(val => val == null);\n return {\n isValid,\n formValidityState: only\n ? { ...state.formValidityState, [only]: formValidityState[only] }\n : formValidityState,\n };\n });\n };\n\n getErrorByFieldname = (fieldName: TaskFormFieldName) => {\n const { formValidityState } = this.state;\n return formValidityState[fieldName] ? formValidityState[fieldName].message : null;\n };\n\n clearForm = () => this.setState(this.getInitialFormState());\n\n handleInvalidSubmit = (invalidSubmitValidityState?: ?TaskFormInvalidSubmitState) => {\n if (!isEmpty(invalidSubmitValidityState)) {\n this.validateForm(undefined, invalidSubmitValidityState);\n } else {\n this.validateForm();\n }\n };\n\n handleSubmitSuccess = () => {\n const { onSubmitSuccess } = this.props;\n if (onSubmitSuccess) {\n onSubmitSuccess();\n }\n\n this.clearForm();\n this.setState({ isLoading: false });\n };\n\n handleSubmitError = (e: ElementsXhrError) => {\n const { onSubmitError } = this.props;\n onSubmitError(e);\n this.setState({ isLoading: false });\n };\n\n addResinInfo = (): Object => {\n const { id, taskType, editMode } = this.props;\n const { dueDate } = this.state;\n const addedAssignees = this.getAddedAssignees();\n const removedAssignees = this.getRemovedAssignees();\n\n return {\n 'data-resin-taskid': id,\n 'data-resin-tasktype': taskType,\n 'data-resin-isediting': editMode === TASK_EDIT_MODE_EDIT,\n 'data-resin-numassigneesadded': addedAssignees.filter(assignee => assignee.target.type === 'user').length,\n 'data-resin-numgroupssadded': addedAssignees.filter(assignee => assignee.target.type === 'group').length,\n 'data-resin-numassigneesremoved': removedAssignees.length,\n 'data-resin-assigneesadded': addedAssignees.map(assignee => assignee.target.id),\n 'data-resin-assigneesremoved': removedAssignees.map(assignee => assignee.target.id),\n 'data-resin-duedate': dueDate && dueDate.getTime(),\n };\n };\n\n getAddedAssignees = (): Array<TaskCollabAssignee> => {\n // Added assignees are the ones in state that weren't in the prop\n const { approvers } = this.props;\n const { approvers: currentApprovers } = this.state;\n const approverIds = approvers.map(approver => approver.id);\n return currentApprovers.filter(currentApprover => approverIds.indexOf(currentApprover.id) === -1);\n };\n\n getRemovedAssignees = (): Array<TaskCollabAssignee> => {\n // Assignees to remove are the ones in the prop that cannot be found in state\n const { approvers } = this.props;\n const { approvers: currentApprovers } = this.state;\n const currentApproverIds = currentApprovers.map(currentApprover => currentApprover.id);\n return approvers.filter(approver => currentApproverIds.indexOf(approver.id) === -1);\n };\n\n handleValidSubmit = (): void => {\n const { id, createTask, editTask, editMode, taskType } = this.props;\n const { message, approvers: currentApprovers, dueDate, completionRule, isValid } = this.state;\n const dueDateString = dueDate && dueDate.toISOString();\n\n if (!isValid) return;\n\n this.setState({ isLoading: true });\n\n if (editMode === TASK_EDIT_MODE_EDIT && editTask) {\n editTask(\n {\n id,\n completion_rule: completionRule,\n description: message,\n due_at: dueDateString,\n addedAssignees: convertAssigneesToSelectorItems(this.getAddedAssignees()),\n removedAssignees: this.getRemovedAssignees(),\n },\n this.handleSubmitSuccess,\n this.handleSubmitError,\n );\n } else {\n createTask(\n message,\n convertAssigneesToSelectorItems(currentApprovers),\n taskType,\n dueDateString,\n completionRule,\n this.handleSubmitSuccess,\n this.handleSubmitError,\n );\n }\n };\n\n handleDueDateChange = (date: ?string): void => {\n let dateValue = null;\n if (date) {\n dateValue = new Date(date);\n // The date given to us is midnight of the date selected.\n // Modify date to be the end of day (minus 1 millisecond) for the given due date\n dateValue.setHours(23, 59, 59, 999);\n }\n this.setState({ dueDate: dateValue });\n this.validateForm('taskDueDate');\n };\n\n handleCompletionRuleChange = (event: SyntheticInputEvent<HTMLInputElement>) => {\n this.setState({ completionRule: event.target.checked ? TASK_COMPLETION_RULE_ANY : TASK_COMPLETION_RULE_ALL });\n };\n\n handleApproverSelectorInput = (value: any): void => {\n const { getApproverWithQuery = noop } = this.props;\n this.setState({ approverTextInput: value });\n getApproverWithQuery(value);\n };\n\n handleApproverSelectorSelect = (pills: Array<any>): void => {\n this.setState({\n approvers: this.state.approvers.concat(\n pills.map(pill => {\n return {\n id: '',\n target: pill.item,\n role: 'ASSIGNEE',\n type: 'task_collaborator',\n status: 'NOT_STARTED',\n permissions: { can_delete: false, can_update: false },\n };\n }),\n ),\n approverTextInput: '',\n });\n\n this.validateForm('taskAssignees');\n };\n\n handleApproverSelectorRemove = (option: any, index: number): void => {\n const approvers = [...this.state.approvers];\n approvers.splice(index, 1);\n this.setState({ approvers });\n this.validateForm('taskAssignees');\n };\n\n handleChangeMessage = (e: SyntheticInputEvent<HTMLTextAreaElement>) => {\n e.persist();\n this.setState({ message: e.currentTarget.value });\n this.validateForm('taskName');\n };\n\n handleCancelClick = () => {\n this.props.onCancel();\n };\n\n render() {\n const { approverSelectorContacts, className, error, isDisabled, intl, editMode, taskType } = this.props;\n const { dueDate, approvers, message, formValidityState, isLoading, completionRule } = this.state;\n const inputContainerClassNames = classNames('bcs-task-input-container', 'bcs-task-input-is-open', className);\n const isCreateEditMode = editMode === TASK_EDIT_MODE_CREATE;\n const selectedApprovers = convertAssigneesToSelectorItems(approvers);\n\n // filter out selected approvers\n // map to datalist item format\n const approverOptions = approverSelectorContacts.filter(\n ({ id }) => !selectedApprovers.find(({ value }) => value === id),\n );\n\n const pillSelectorOverlayClasses = classNames({\n scrollable: approverOptions.length > 4,\n });\n\n const submitButtonMessage = isCreateEditMode\n ? messages.tasksAddTaskFormSubmitLabel\n : messages.tasksEditTaskFormSubmitLabel;\n const shouldShowCompletionRule = approvers.length > 0;\n\n // Enable checkbox when there is a group or multiple users being assigned\n // TODO: consider setting contants for assignee types to src/constants.js\n // - move from src/features/collaborator-avatars/constants.js\n const isCompletionRuleCheckboxDisabled =\n approvers.filter(approver => approver.target.type === 'group').length <= 0 &&\n approvers.filter(approver => approver.target.type === 'user').length <= 1;\n\n const isCompletionRuleCheckboxChecked = completionRule === TASK_COMPLETION_RULE_ANY;\n const isForbiddenErrorOnEdit = isLoading || (getProp(error, 'status') === 403 && !isCreateEditMode);\n\n return (\n <div className={inputContainerClassNames} data-resin-component=\"taskform\">\n <div className=\"bcs-task-input-form-container\">\n <TaskError editMode={editMode} error={error} taskType={taskType} />\n <Form\n formValidityState={formValidityState}\n onInvalidSubmit={this.handleInvalidSubmit}\n onValidSubmit={this.handleValidSubmit}\n >\n <PillSelectorDropdown\n className={pillSelectorOverlayClasses}\n error={this.getErrorByFieldname('taskAssignees')}\n disabled={isForbiddenErrorOnEdit}\n inputProps={{ 'data-testid': 'task-form-assignee-input' }}\n isRequired\n label={<FormattedMessage {...messages.tasksAddTaskFormSelectAssigneesLabel} />}\n name=\"taskAssignees\"\n onBlur={() => this.validateForm('taskAssignees')}\n onInput={this.handleApproverSelectorInput}\n onRemove={this.handleApproverSelectorRemove}\n onSelect={this.handleApproverSelectorSelect}\n placeholder={intl.formatMessage(commentFormMessages.approvalAddAssignee)}\n selectedOptions={selectedApprovers}\n selectorOptions={approverOptions}\n shouldSetActiveItemOnOpen\n shouldClearUnmatchedInput\n validateForError={() => this.validateForm('taskAssignees')}\n >\n {approverOptions.map(({ id, name, item = {} }) => (\n <ContactDatalistItem\n key={id}\n data-testid=\"task-assignee-option\"\n name={name}\n subtitle={\n item.type === 'group' ? (\n <FormattedMessage {...messages.taskCreateGroupLabel} />\n ) : (\n item.email\n )\n }\n />\n ))}\n </PillSelectorDropdown>\n\n {shouldShowCompletionRule && (\n <>\n <FeatureFlag feature=\"activityFeed.tasks.assignToGroup\">\n <Checkbox\n data-testid=\"task-form-completion-rule-checkbox-group\"\n isChecked={isCompletionRuleCheckboxChecked}\n isDisabled={isCompletionRuleCheckboxDisabled || isForbiddenErrorOnEdit}\n label={<FormattedMessage {...messages.taskAnyCheckboxLabel} />}\n tooltip={intl.formatMessage(messages.taskAnyInfoGroupTooltip)}\n name=\"completionRule\"\n onChange={this.handleCompletionRuleChange}\n />\n </FeatureFlag>\n <FeatureFlag not feature=\"activityFeed.tasks.assignToGroup\">\n <Checkbox\n data-testid=\"task-form-completion-rule-checkbox\"\n isChecked={isCompletionRuleCheckboxChecked}\n isDisabled={isCompletionRuleCheckboxDisabled || isForbiddenErrorOnEdit}\n label={<FormattedMessage {...messages.taskAnyCheckboxLabel} />}\n tooltip={intl.formatMessage(messages.taskAnyInfoTooltip)}\n name=\"completionRule\"\n onChange={this.handleCompletionRuleChange}\n />\n </FeatureFlag>\n </>\n )}\n\n <TextArea\n className=\"bcs-task-name-input\"\n data-testid=\"task-form-name-input\"\n disabled={isDisabled || isForbiddenErrorOnEdit}\n error={this.getErrorByFieldname('taskName')}\n isRequired\n label={<FormattedMessage {...messages.tasksAddTaskFormMessageLabel} />}\n name=\"taskName\"\n onBlur={() => this.validateForm('taskName')}\n onChange={this.handleChangeMessage}\n placeholder={intl.formatMessage(commentFormMessages.commentWrite)}\n value={message}\n />\n <DatePicker\n className=\"bcs-task-add-due-date-input\"\n error={this.getErrorByFieldname('taskDueDate')}\n inputProps={{\n [INTERACTION_TARGET]: ACTIVITY_TARGETS.TASK_DATE_PICKER,\n 'data-testid': 'task-form-date-input',\n }}\n isAccessible\n isDisabled={isForbiddenErrorOnEdit}\n isKeyboardInputAllowed\n isRequired={false}\n label={<FormattedMessage {...messages.tasksAddTaskFormDueDateLabel} />}\n minDate={new Date()}\n name=\"taskDueDate\"\n onChange={this.handleDueDateChange}\n placeholder={intl.formatMessage(commentFormMessages.approvalSelectDate)}\n value={dueDate || undefined}\n />\n <ModalActions>\n <Button\n className=\"bcs-task-input-cancel-btn\"\n data-resin-target={ACTIVITY_TARGETS.APPROVAL_FORM_CANCEL}\n data-testid=\"task-form-cancel-button\"\n onClick={this.handleCancelClick}\n isDisabled={isLoading}\n type=\"button\"\n {...this.addResinInfo()}\n >\n <FormattedMessage {...messages.tasksAddTaskFormCancelLabel} />\n </Button>\n <PrimaryButton\n className=\"bcs-task-input-submit-btn\"\n data-resin-target={ACTIVITY_TARGETS.APPROVAL_FORM_POST}\n data-testid=\"task-form-submit-button\"\n isDisabled={isForbiddenErrorOnEdit}\n isLoading={isLoading}\n {...this.addResinInfo()}\n >\n <FormattedMessage {...submitButtonMessage} />\n </PrimaryButton>\n </ModalActions>\n </Form>\n </div>\n </div>\n );\n }\n}\n\n// For testing only\nexport { TaskForm as TaskFormUnwrapped };\nexport type { TaskFormConsumerProps as TaskFormProps };\n\nexport default injectIntl(TaskForm);\n"],"file":"TaskForm.js"}
1
+ {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/task-form/TaskForm.js"],"names":["React","noop","getProp","isEmpty","classNames","FormattedMessage","injectIntl","commonMessages","messages","commentFormMessages","Form","ModalActions","ContactDatalistItem","TextArea","DatePicker","Checkbox","PillSelectorDropdown","Button","FeatureFlag","PrimaryButton","TASK_COMPLETION_RULE_ANY","TASK_COMPLETION_RULE_ALL","TASK_EDIT_MODE_CREATE","TASK_EDIT_MODE_EDIT","ACTIVITY_TARGETS","INTERACTION_TARGET","TaskError","convertAssigneesToSelectorItems","approvers","map","target","newSelectorItem","id","name","item","value","text","TaskForm","getInitialFormState","only","invalidSubmitValidityState","setState","state","intl","props","message","approverTextInput","assigneeFieldMissingError","code","formatMessage","requiredFieldError","assigneeFieldInvalidError","invalidUserError","messageFieldError","taskDueDateError","invalidDateError","formValidityState","taskAssignees","length","taskName","taskDueDate","isValid","Object","values","every","val","fieldName","validateForm","undefined","onSubmitSuccess","clearForm","isLoading","e","onSubmitError","taskType","editMode","dueDate","addedAssignees","getAddedAssignees","removedAssignees","getRemovedAssignees","filter","assignee","type","getTime","currentApprovers","approverIds","approver","currentApprover","indexOf","currentApproverIds","createTask","editTask","completionRule","dueDateString","toISOString","completion_rule","description","due_at","handleSubmitSuccess","handleSubmitError","date","dateValue","Date","setHours","event","checked","getApproverWithQuery","pills","concat","pill","role","status","permissions","can_delete","can_update","option","index","splice","persist","currentTarget","onCancel","approverSelectorContacts","className","error","isDisabled","inputContainerClassNames","isCreateEditMode","selectedApprovers","approverOptions","find","pillSelectorOverlayClasses","scrollable","submitButtonMessage","tasksAddTaskFormSubmitLabel","tasksEditTaskFormSubmitLabel","shouldShowCompletionRule","isCompletionRuleCheckboxDisabled","isCompletionRuleCheckboxChecked","isForbiddenErrorOnEdit","handleInvalidSubmit","handleValidSubmit","getErrorByFieldname","tasksAddTaskFormSelectAssigneesLabel","handleApproverSelectorInput","handleApproverSelectorRemove","handleApproverSelectorSelect","approvalAddAssignee","taskCreateGroupLabel","email","taskAnyCheckboxLabel","taskAnyInfoGroupTooltip","handleCompletionRuleChange","taskAnyInfoTooltip","tasksAddTaskFormMessageLabel","handleChangeMessage","commentWrite","TASK_DATE_PICKER","tasksAddTaskFormDueDateLabel","handleDueDateChange","approvalSelectDate","APPROVAL_FORM_CANCEL","handleCancelClick","addResinInfo","tasksAddTaskFormCancelLabel","APPROVAL_FORM_POST","Component","TaskFormUnwrapped"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Component for Approval comment form\n */\n\nimport * as React from 'react';\nimport noop from 'lodash/noop';\nimport getProp from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport classNames from 'classnames';\nimport { FormattedMessage, injectIntl } from 'react-intl';\nimport type { InjectIntlProvidedProps } from 'react-intl';\nimport commonMessages from '../../../../common/messages';\nimport messages from './messages';\nimport commentFormMessages from '../comment-form/messages';\nimport Form from '../../../../components/form-elements/form/Form';\nimport ModalActions from '../../../../components/modal/ModalActions';\nimport ContactDatalistItem from '../../../../components/contact-datalist-item/ContactDatalistItem';\nimport TextArea from '../../../../components/text-area';\nimport DatePicker from '../../../../components/date-picker/DatePicker';\nimport Checkbox from '../../../../components/checkbox';\nimport PillSelectorDropdown from '../../../../components/pill-selector-dropdown/PillSelectorDropdown';\nimport Button from '../../../../components/button/Button';\nimport { FeatureFlag } from '../../../common/feature-checking';\nimport PrimaryButton from '../../../../components/primary-button/PrimaryButton';\nimport {\n TASK_COMPLETION_RULE_ANY,\n TASK_COMPLETION_RULE_ALL,\n TASK_EDIT_MODE_CREATE,\n TASK_EDIT_MODE_EDIT,\n} from '../../../../constants';\nimport { ACTIVITY_TARGETS, INTERACTION_TARGET } from '../../../common/interactionTargets';\nimport type {\n TaskCompletionRule,\n TaskCollabAssignee,\n TaskType,\n TaskEditMode,\n TaskUpdatePayload,\n} from '../../../../common/types/tasks';\nimport TaskError from './TaskError';\nimport type { GetAvatarUrlCallback } from '../../../common/flowTypes';\nimport type { ElementsXhrError } from '../../../../common/types/api';\nimport type { SelectorItems, SelectorItem, UserMini, GroupMini } from '../../../../common/types/core';\n\nimport './TaskForm.scss';\n\ntype TaskFormProps = {|\n error?: { status: number }, // TODO: update to ElementsXhrError once API supports it\n isDisabled?: boolean,\n onCancel: () => any,\n onSubmitError: (e: ElementsXhrError) => any,\n onSubmitSuccess: () => any,\n taskType: TaskType,\n|};\n\ntype TaskFormFieldProps = {|\n approvers: Array<TaskCollabAssignee>,\n completionRule: TaskCompletionRule,\n dueDate?: ?string,\n id: string,\n message: string,\n|};\n\ntype TaskFormConsumerProps = {|\n ...TaskFormFieldProps,\n approverSelectorContacts: SelectorItems<UserMini | GroupMini>,\n className?: string,\n createTask: (\n text: string,\n approvers: SelectorItems<>,\n taskType: TaskType,\n dueDate: ?string,\n completionRule: TaskCompletionRule,\n onSuccess: ?Function,\n onError: ?Function,\n ) => any,\n editMode?: TaskEditMode,\n editTask?: (task: TaskUpdatePayload, onSuccess: ?Function, onError: ?Function) => any,\n getApproverWithQuery?: Function,\n getAvatarUrl: GetAvatarUrlCallback,\n|};\n\ntype Props = TaskFormProps & TaskFormConsumerProps & InjectIntlProvidedProps;\n\ntype TaskFormFieldName = 'taskName' | 'taskAssignees' | 'taskDueDate';\n\ntype TaskFormInvalidSubmitState = { [key: TaskFormFieldName]: ?{ validityState: ?{ patternMismatch: boolean } } };\n\ntype State = {|\n approverTextInput: string, // partial text input value for approver field before autocomplete/select\n approvers: Array<TaskCollabAssignee>,\n completionRule: TaskCompletionRule,\n dueDate?: ?Date,\n formValidityState: { [key: TaskFormFieldName]: ?{ code: string, message: string } },\n id: string,\n isLoading: boolean,\n isValid: ?boolean,\n message: string,\n|};\n\nfunction convertAssigneesToSelectorItems(approvers: Array<TaskCollabAssignee>): SelectorItems<> {\n return approvers.map(({ target }) => {\n const newSelectorItem: SelectorItem<UserMini | GroupMini> = {\n id: target.id,\n name: target.name,\n item: target,\n value: target.id,\n text: target.name, // for PillSelectorDropdown SelectorOptions type\n };\n\n return newSelectorItem;\n });\n}\n\nclass TaskForm extends React.Component<Props, State> {\n static defaultProps = {\n approvers: [],\n approverSelectorContacts: [],\n editMode: TASK_EDIT_MODE_CREATE,\n id: '',\n message: '',\n };\n\n state = this.getInitialFormState();\n\n getInitialFormState() {\n const { dueDate, id, message, approvers, completionRule } = this.props;\n return {\n id,\n completionRule: completionRule || TASK_COMPLETION_RULE_ALL,\n approvers,\n approverTextInput: '',\n dueDate: dueDate ? new Date(dueDate) : null,\n formValidityState: {},\n message,\n isLoading: false,\n isValid: null,\n };\n }\n\n validateForm = (only?: TaskFormFieldName, invalidSubmitValidityState?: ?TaskFormInvalidSubmitState) => {\n this.setState(state => {\n const { intl } = this.props;\n const { approvers, message, approverTextInput } = state;\n const assigneeFieldMissingError = {\n code: 'required',\n message: intl.formatMessage(commonMessages.requiredFieldError),\n };\n const assigneeFieldInvalidError = {\n code: 'invalid',\n message: intl.formatMessage(commonMessages.invalidUserError),\n };\n const messageFieldError = {\n code: 'required',\n message: intl.formatMessage(commonMessages.requiredFieldError),\n };\n const taskDueDateError = {\n code: 'invalid',\n message: intl.formatMessage(commonMessages.invalidDateError),\n };\n const formValidityState = {\n taskAssignees:\n (approverTextInput.length ? assigneeFieldInvalidError : null) ||\n (approvers.length ? null : assigneeFieldMissingError),\n taskName: message ? null : messageFieldError,\n taskDueDate: getProp(invalidSubmitValidityState, 'taskDueDate.validityState.patternMismatch')\n ? taskDueDateError\n : null,\n };\n const isValid = Object.values(formValidityState).every(val => val == null);\n return {\n isValid,\n formValidityState: only\n ? { ...state.formValidityState, [only]: formValidityState[only] }\n : formValidityState,\n };\n });\n };\n\n getErrorByFieldname = (fieldName: TaskFormFieldName) => {\n const { formValidityState } = this.state;\n return formValidityState[fieldName] ? formValidityState[fieldName].message : null;\n };\n\n clearForm = () => this.setState(this.getInitialFormState());\n\n handleInvalidSubmit = (invalidSubmitValidityState?: ?TaskFormInvalidSubmitState) => {\n if (!isEmpty(invalidSubmitValidityState)) {\n this.validateForm(undefined, invalidSubmitValidityState);\n } else {\n this.validateForm();\n }\n };\n\n handleSubmitSuccess = () => {\n const { onSubmitSuccess } = this.props;\n if (onSubmitSuccess) {\n onSubmitSuccess();\n }\n\n this.clearForm();\n this.setState({ isLoading: false });\n };\n\n handleSubmitError = (e: ElementsXhrError) => {\n const { onSubmitError } = this.props;\n onSubmitError(e);\n this.setState({ isLoading: false });\n };\n\n addResinInfo = (): Object => {\n const { id, taskType, editMode } = this.props;\n const { dueDate } = this.state;\n const addedAssignees = this.getAddedAssignees();\n const removedAssignees = this.getRemovedAssignees();\n\n return {\n 'data-resin-taskid': id,\n 'data-resin-tasktype': taskType,\n 'data-resin-isediting': editMode === TASK_EDIT_MODE_EDIT,\n 'data-resin-numassigneesadded': addedAssignees.filter(assignee => assignee.target.type === 'user').length,\n 'data-resin-numgroupssadded': addedAssignees.filter(assignee => assignee.target.type === 'group').length,\n 'data-resin-numassigneesremoved': removedAssignees.length,\n 'data-resin-assigneesadded': addedAssignees.map(assignee => assignee.target.id),\n 'data-resin-assigneesremoved': removedAssignees.map(assignee => assignee.target.id),\n 'data-resin-duedate': dueDate && dueDate.getTime(),\n };\n };\n\n getAddedAssignees = (): Array<TaskCollabAssignee> => {\n // Added assignees are the ones in state that weren't in the prop\n const { approvers } = this.props;\n const { approvers: currentApprovers } = this.state;\n const approverIds = approvers.map(approver => approver.id);\n return currentApprovers.filter(currentApprover => approverIds.indexOf(currentApprover.id) === -1);\n };\n\n getRemovedAssignees = (): Array<TaskCollabAssignee> => {\n // Assignees to remove are the ones in the prop that cannot be found in state\n const { approvers } = this.props;\n const { approvers: currentApprovers } = this.state;\n const currentApproverIds = currentApprovers.map(currentApprover => currentApprover.id);\n return approvers.filter(approver => currentApproverIds.indexOf(approver.id) === -1);\n };\n\n handleValidSubmit = (): void => {\n const { id, createTask, editTask, editMode, taskType } = this.props;\n const { message, approvers: currentApprovers, dueDate, completionRule, isValid } = this.state;\n const dueDateString = dueDate && dueDate.toISOString();\n\n if (!isValid) return;\n\n this.setState({ isLoading: true });\n\n if (editMode === TASK_EDIT_MODE_EDIT && editTask) {\n editTask(\n {\n id,\n completion_rule: completionRule,\n description: message,\n due_at: dueDateString,\n addedAssignees: convertAssigneesToSelectorItems(this.getAddedAssignees()),\n removedAssignees: this.getRemovedAssignees(),\n },\n this.handleSubmitSuccess,\n this.handleSubmitError,\n );\n } else {\n createTask(\n message,\n convertAssigneesToSelectorItems(currentApprovers),\n taskType,\n dueDateString,\n completionRule,\n this.handleSubmitSuccess,\n this.handleSubmitError,\n );\n }\n };\n\n handleDueDateChange = (date: ?string): void => {\n let dateValue = null;\n if (date) {\n dateValue = new Date(date);\n // The date given to us is midnight of the date selected.\n // Modify date to be the end of day (minus 1 millisecond) for the given due date\n dateValue.setHours(23, 59, 59, 999);\n }\n this.setState({ dueDate: dateValue });\n this.validateForm('taskDueDate');\n };\n\n handleCompletionRuleChange = (event: SyntheticInputEvent<HTMLInputElement>) => {\n this.setState({ completionRule: event.target.checked ? TASK_COMPLETION_RULE_ANY : TASK_COMPLETION_RULE_ALL });\n };\n\n handleApproverSelectorInput = (value: any): void => {\n const { getApproverWithQuery = noop } = this.props;\n this.setState({ approverTextInput: value });\n getApproverWithQuery(value);\n };\n\n handleApproverSelectorSelect = (pills: Array<any>): void => {\n this.setState({\n approvers: this.state.approvers.concat(\n pills.map(pill => {\n return {\n id: '',\n target: pill.item,\n role: 'ASSIGNEE',\n type: 'task_collaborator',\n status: 'NOT_STARTED',\n permissions: { can_delete: false, can_update: false },\n };\n }),\n ),\n approverTextInput: '',\n });\n\n this.validateForm('taskAssignees');\n };\n\n handleApproverSelectorRemove = (option: any, index: number): void => {\n const approvers = [...this.state.approvers];\n approvers.splice(index, 1);\n this.setState({ approvers });\n this.validateForm('taskAssignees');\n };\n\n handleChangeMessage = (e: SyntheticInputEvent<HTMLTextAreaElement>) => {\n e.persist();\n this.setState({ message: e.currentTarget.value });\n this.validateForm('taskName');\n };\n\n handleCancelClick = () => {\n this.props.onCancel();\n };\n\n render() {\n const { approverSelectorContacts, className, error, isDisabled, intl, editMode, taskType } = this.props;\n const { dueDate, approvers, message, formValidityState, isLoading, completionRule } = this.state;\n const inputContainerClassNames = classNames('bcs-task-input-container', 'bcs-task-input-is-open', className);\n const isCreateEditMode = editMode === TASK_EDIT_MODE_CREATE;\n const selectedApprovers = convertAssigneesToSelectorItems(approvers);\n\n // filter out selected approvers\n // map to datalist item format\n const approverOptions = approverSelectorContacts.filter(\n ({ id }) => !selectedApprovers.find(({ value }) => value === id),\n );\n\n const pillSelectorOverlayClasses = classNames({\n scrollable: approverOptions.length > 4,\n });\n\n const submitButtonMessage = isCreateEditMode\n ? messages.tasksAddTaskFormSubmitLabel\n : messages.tasksEditTaskFormSubmitLabel;\n const shouldShowCompletionRule = approvers.length > 0;\n\n // Enable checkbox when there is a group or multiple users being assigned\n // TODO: consider setting contants for assignee types to src/constants.js\n // - move from src/features/collaborator-avatars/constants.js\n const isCompletionRuleCheckboxDisabled =\n approvers.filter(approver => approver.target.type === 'group').length <= 0 &&\n approvers.filter(approver => approver.target.type === 'user').length <= 1;\n\n const isCompletionRuleCheckboxChecked = completionRule === TASK_COMPLETION_RULE_ANY;\n const isForbiddenErrorOnEdit = isLoading || (getProp(error, 'status') === 403 && !isCreateEditMode);\n\n return (\n <div className={inputContainerClassNames} data-resin-component=\"taskform\">\n <div className=\"bcs-task-input-form-container\">\n <TaskError editMode={editMode} error={error} taskType={taskType} />\n <Form\n formValidityState={formValidityState}\n onInvalidSubmit={this.handleInvalidSubmit}\n onValidSubmit={this.handleValidSubmit}\n >\n <PillSelectorDropdown\n className={pillSelectorOverlayClasses}\n error={this.getErrorByFieldname('taskAssignees')}\n disabled={isForbiddenErrorOnEdit}\n inputProps={{ 'data-testid': 'task-form-assignee-input' }}\n isRequired\n label={<FormattedMessage {...messages.tasksAddTaskFormSelectAssigneesLabel} />}\n name=\"taskAssignees\"\n onBlur={() => this.validateForm('taskAssignees')}\n onInput={this.handleApproverSelectorInput}\n onRemove={this.handleApproverSelectorRemove}\n onSelect={this.handleApproverSelectorSelect}\n placeholder={intl.formatMessage(commentFormMessages.approvalAddAssignee)}\n selectedOptions={selectedApprovers}\n selectorOptions={approverOptions}\n shouldSetActiveItemOnOpen\n shouldClearUnmatchedInput\n validateForError={() => this.validateForm('taskAssignees')}\n >\n {approverOptions.map(({ id, name, item = {} }) => (\n <ContactDatalistItem\n key={id}\n data-testid=\"task-assignee-option\"\n name={name}\n subtitle={\n item.type === 'group' ? (\n <FormattedMessage {...messages.taskCreateGroupLabel} />\n ) : (\n item.email\n )\n }\n />\n ))}\n </PillSelectorDropdown>\n\n {shouldShowCompletionRule && (\n <>\n <FeatureFlag feature=\"activityFeed.tasks.assignToGroup\">\n <Checkbox\n data-testid=\"task-form-completion-rule-checkbox-group\"\n isChecked={isCompletionRuleCheckboxChecked}\n isDisabled={isCompletionRuleCheckboxDisabled || isForbiddenErrorOnEdit}\n label={<FormattedMessage {...messages.taskAnyCheckboxLabel} />}\n tooltip={intl.formatMessage(messages.taskAnyInfoGroupTooltip)}\n name=\"completionRule\"\n onChange={this.handleCompletionRuleChange}\n />\n </FeatureFlag>\n <FeatureFlag not feature=\"activityFeed.tasks.assignToGroup\">\n <Checkbox\n data-testid=\"task-form-completion-rule-checkbox\"\n isChecked={isCompletionRuleCheckboxChecked}\n isDisabled={isCompletionRuleCheckboxDisabled || isForbiddenErrorOnEdit}\n label={<FormattedMessage {...messages.taskAnyCheckboxLabel} />}\n tooltip={intl.formatMessage(messages.taskAnyInfoTooltip)}\n name=\"completionRule\"\n onChange={this.handleCompletionRuleChange}\n />\n </FeatureFlag>\n </>\n )}\n\n <TextArea\n className=\"bcs-task-name-input\"\n data-testid=\"task-form-name-input\"\n disabled={isDisabled || isForbiddenErrorOnEdit}\n error={this.getErrorByFieldname('taskName')}\n isRequired\n label={<FormattedMessage {...messages.tasksAddTaskFormMessageLabel} />}\n name=\"taskName\"\n onBlur={() => this.validateForm('taskName')}\n onChange={this.handleChangeMessage}\n placeholder={intl.formatMessage(commentFormMessages.commentWrite)}\n value={message}\n />\n <DatePicker\n className=\"bcs-task-add-due-date-input\"\n error={this.getErrorByFieldname('taskDueDate')}\n errorTooltipPosition=\"bottom-right\"\n inputProps={{\n [INTERACTION_TARGET]: ACTIVITY_TARGETS.TASK_DATE_PICKER,\n 'data-testid': 'task-form-date-input',\n }}\n isAccessible\n isDisabled={isForbiddenErrorOnEdit}\n isKeyboardInputAllowed\n isRequired={false}\n label={<FormattedMessage {...messages.tasksAddTaskFormDueDateLabel} />}\n minDate={new Date()}\n name=\"taskDueDate\"\n onChange={this.handleDueDateChange}\n placeholder={intl.formatMessage(commentFormMessages.approvalSelectDate)}\n value={dueDate || undefined}\n />\n <ModalActions>\n <Button\n className=\"bcs-task-input-cancel-btn\"\n data-resin-target={ACTIVITY_TARGETS.APPROVAL_FORM_CANCEL}\n data-testid=\"task-form-cancel-button\"\n onClick={this.handleCancelClick}\n isDisabled={isLoading}\n type=\"button\"\n {...this.addResinInfo()}\n >\n <FormattedMessage {...messages.tasksAddTaskFormCancelLabel} />\n </Button>\n <PrimaryButton\n className=\"bcs-task-input-submit-btn\"\n data-resin-target={ACTIVITY_TARGETS.APPROVAL_FORM_POST}\n data-testid=\"task-form-submit-button\"\n isDisabled={isForbiddenErrorOnEdit}\n isLoading={isLoading}\n {...this.addResinInfo()}\n >\n <FormattedMessage {...submitButtonMessage} />\n </PrimaryButton>\n </ModalActions>\n </Form>\n </div>\n </div>\n );\n }\n}\n\n// For testing only\nexport { TaskForm as TaskFormUnwrapped };\nexport type { TaskFormConsumerProps as TaskFormProps };\n\nexport default injectIntl(TaskForm);\n"],"file":"TaskForm.js"}
@@ -12,5 +12,5 @@
12
12
  }
13
13
 
14
14
  .bcs-AssigneeDetails-status {
15
- color: $bdl-gray-62;
15
+ color: $bdl-gray-65;
16
16
  }
@@ -44,15 +44,14 @@ var AvatarGroupAvatar = React.memo(function (_ref2) {
44
44
  className: classNames('bcs-AvatarGroupAvatar', className),
45
45
  "data-testid": "avatar-group-avatar-container"
46
46
  }, rest), React.createElement(Avatar, {
47
+ badgeIcon: React.createElement(StatusIcon, {
48
+ className: "".concat(camelCase(status)),
49
+ status: status,
50
+ title: React.createElement(FormattedMessage, messages.taskAssignmentCompleted)
51
+ }),
47
52
  className: "bcs-AvatarGroupAvatar-avatar",
48
- user: user,
49
- getAvatarUrl: getAvatarUrl
50
- }), React.createElement(StatusIcon, {
51
- status: status,
52
- className: "bcs-AvatarGroupAvatar-statusIcon ".concat(camelCase(status)),
53
- height: 12,
54
- width: 12,
55
- title: React.createElement(FormattedMessage, messages.taskAssignmentCompleted)
53
+ getAvatarUrl: getAvatarUrl,
54
+ user: user
56
55
  }));
57
56
  });
58
57
  export default AvatarGroupAvatar;
@@ -40,13 +40,17 @@ const AvatarGroupAvatar = React.memo<Props>(({ user, status, getAvatarUrl, class
40
40
  data-testid="avatar-group-avatar-container"
41
41
  {...rest}
42
42
  >
43
- <Avatar className="bcs-AvatarGroupAvatar-avatar" user={user} getAvatarUrl={getAvatarUrl} />
44
- <StatusIcon
45
- status={status}
46
- className={`bcs-AvatarGroupAvatar-statusIcon ${camelCase(status)}`}
47
- height={12}
48
- width={12}
49
- title={<FormattedMessage {...messages.taskAssignmentCompleted} />}
43
+ <Avatar
44
+ badgeIcon={
45
+ <StatusIcon
46
+ className={`${camelCase(status)}`}
47
+ status={status}
48
+ title={<FormattedMessage {...messages.taskAssignmentCompleted} />}
49
+ />
50
+ }
51
+ className="bcs-AvatarGroupAvatar-avatar"
52
+ getAvatarUrl={getAvatarUrl}
53
+ user={user}
50
54
  />
51
55
  </div>
52
56
  ));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js"],"names":["React","FormattedMessage","classNames","camelCase","IconComplete","IconReject","Avatar","TASK_NEW_APPROVED","TASK_NEW_REJECTED","TASK_NEW_COMPLETED","TASK_NEW_NOT_STARTED","messages","StatusIcon","status","rest","AvatarGroupAvatar","memo","user","getAvatarUrl","className","taskAssignmentCompleted"],"mappings":";;;;;;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,gBAAT,QAAiC,YAAjC;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,SAAP,MAAsB,kBAAtB;AACA,OAAOC,YAAP,MAAyB,wCAAzB;AACA,OAAOC,UAAP,MAAuB,wCAAvB;AACA,OAAOC,MAAP,MAAmB,WAAnB;AACA,SAASC,iBAAT,EAA4BC,iBAA5B,EAA+CC,kBAA/C,EAAmEC,oBAAnE,QAA+F,uBAA/F;AACA,OAAOC,QAAP,MAAqB,YAArB;AAKA,OAAO,0BAAP;;AASA,IAAMC,UAAU,GAAG,SAAbA,UAAa,OAAuD;AAAA,MAApDC,MAAoD,QAApDA,MAAoD;AAAA,MAAzCC,IAAyC;;AACtE,UAAQD,MAAR;AACI,SAAKN,iBAAL;AACA,SAAKE,kBAAL;AACI,aAAO,oBAAC,YAAD,EAAkBK,IAAlB,CAAP;;AACJ,SAAKN,iBAAL;AACI,aAAO,oBAAC,UAAD,EAAgBM,IAAhB,CAAP;;AACJ,SAAKJ,oBAAL;AACA;AACI,aAAO,IAAP;AARR;AAUH,CAXD;;AAaA,IAAMK,iBAAiB,GAAGf,KAAK,CAACgB,IAAN,CAAkB;AAAA,MAAGC,IAAH,SAAGA,IAAH;AAAA,MAASJ,MAAT,SAASA,MAAT;AAAA,MAAiBK,YAAjB,SAAiBA,YAAjB;AAAA,MAA+BC,SAA/B,SAA+BA,SAA/B;AAAA,MAA6CL,IAA7C;;AAAA,SACxC;AACI,IAAA,SAAS,EAAEZ,UAAU,CAAC,uBAAD,EAA0BiB,SAA1B,CADzB;AAEI,mBAAY;AAFhB,KAGQL,IAHR,GAKI,oBAAC,MAAD;AAAQ,IAAA,SAAS,EAAC,8BAAlB;AAAiD,IAAA,IAAI,EAAEG,IAAvD;AAA6D,IAAA,YAAY,EAAEC;AAA3E,IALJ,EAMI,oBAAC,UAAD;AACI,IAAA,MAAM,EAAEL,MADZ;AAEI,IAAA,SAAS,6CAAsCV,SAAS,CAACU,MAAD,CAA/C,CAFb;AAGI,IAAA,MAAM,EAAE,EAHZ;AAII,IAAA,KAAK,EAAE,EAJX;AAKI,IAAA,KAAK,EAAE,oBAAC,gBAAD,EAAsBF,QAAQ,CAACS,uBAA/B;AALX,IANJ,CADwC;AAAA,CAAlB,CAA1B;AAiBA,eAAeL,iBAAf","sourcesContent":["// @flow\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport camelCase from 'lodash/camelCase';\nimport IconComplete from '../../../../icons/general/IconVerified';\nimport IconReject from '../../../../icons/general/IconRejected';\nimport Avatar from '../Avatar';\nimport { TASK_NEW_APPROVED, TASK_NEW_REJECTED, TASK_NEW_COMPLETED, TASK_NEW_NOT_STARTED } from '../../../../constants';\nimport messages from './messages';\nimport type { TaskCollabStatus } from '../../../../common/types/tasks';\nimport type { UserMini } from '../../../../common/types/core';\nimport type { GetAvatarUrlCallback } from '../../../common/flowTypes';\n\nimport './AvatarGroupAvatar.scss';\n\ntype Props = {\n className?: string,\n getAvatarUrl?: GetAvatarUrlCallback,\n status: TaskCollabStatus,\n user: UserMini,\n};\n\nconst StatusIcon = ({ status, ...rest }: { status: TaskCollabStatus }) => {\n switch (status) {\n case TASK_NEW_APPROVED:\n case TASK_NEW_COMPLETED:\n return <IconComplete {...rest} />;\n case TASK_NEW_REJECTED:\n return <IconReject {...rest} />;\n case TASK_NEW_NOT_STARTED:\n default:\n return null;\n }\n};\n\nconst AvatarGroupAvatar = React.memo<Props>(({ user, status, getAvatarUrl, className, ...rest }: Props) => (\n <div\n className={classNames('bcs-AvatarGroupAvatar', className)}\n data-testid=\"avatar-group-avatar-container\"\n {...rest}\n >\n <Avatar className=\"bcs-AvatarGroupAvatar-avatar\" user={user} getAvatarUrl={getAvatarUrl} />\n <StatusIcon\n status={status}\n className={`bcs-AvatarGroupAvatar-statusIcon ${camelCase(status)}`}\n height={12}\n width={12}\n title={<FormattedMessage {...messages.taskAssignmentCompleted} />}\n />\n </div>\n));\n\nexport default AvatarGroupAvatar;\n"],"file":"AvatarGroupAvatar.js"}
1
+ {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js"],"names":["React","FormattedMessage","classNames","camelCase","IconComplete","IconReject","Avatar","TASK_NEW_APPROVED","TASK_NEW_REJECTED","TASK_NEW_COMPLETED","TASK_NEW_NOT_STARTED","messages","StatusIcon","status","rest","AvatarGroupAvatar","memo","user","getAvatarUrl","className","taskAssignmentCompleted"],"mappings":";;;;;;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,gBAAT,QAAiC,YAAjC;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,SAAP,MAAsB,kBAAtB;AACA,OAAOC,YAAP,MAAyB,wCAAzB;AACA,OAAOC,UAAP,MAAuB,wCAAvB;AACA,OAAOC,MAAP,MAAmB,WAAnB;AACA,SAASC,iBAAT,EAA4BC,iBAA5B,EAA+CC,kBAA/C,EAAmEC,oBAAnE,QAA+F,uBAA/F;AACA,OAAOC,QAAP,MAAqB,YAArB;AAKA,OAAO,0BAAP;;AASA,IAAMC,UAAU,GAAG,SAAbA,UAAa,OAAuD;AAAA,MAApDC,MAAoD,QAApDA,MAAoD;AAAA,MAAzCC,IAAyC;;AACtE,UAAQD,MAAR;AACI,SAAKN,iBAAL;AACA,SAAKE,kBAAL;AACI,aAAO,oBAAC,YAAD,EAAkBK,IAAlB,CAAP;;AACJ,SAAKN,iBAAL;AACI,aAAO,oBAAC,UAAD,EAAgBM,IAAhB,CAAP;;AACJ,SAAKJ,oBAAL;AACA;AACI,aAAO,IAAP;AARR;AAUH,CAXD;;AAaA,IAAMK,iBAAiB,GAAGf,KAAK,CAACgB,IAAN,CAAkB;AAAA,MAAGC,IAAH,SAAGA,IAAH;AAAA,MAASJ,MAAT,SAASA,MAAT;AAAA,MAAiBK,YAAjB,SAAiBA,YAAjB;AAAA,MAA+BC,SAA/B,SAA+BA,SAA/B;AAAA,MAA6CL,IAA7C;;AAAA,SACxC;AACI,IAAA,SAAS,EAAEZ,UAAU,CAAC,uBAAD,EAA0BiB,SAA1B,CADzB;AAEI,mBAAY;AAFhB,KAGQL,IAHR,GAKI,oBAAC,MAAD;AACI,IAAA,SAAS,EACL,oBAAC,UAAD;AACI,MAAA,SAAS,YAAKX,SAAS,CAACU,MAAD,CAAd,CADb;AAEI,MAAA,MAAM,EAAEA,MAFZ;AAGI,MAAA,KAAK,EAAE,oBAAC,gBAAD,EAAsBF,QAAQ,CAACS,uBAA/B;AAHX,MAFR;AAQI,IAAA,SAAS,EAAC,8BARd;AASI,IAAA,YAAY,EAAEF,YATlB;AAUI,IAAA,IAAI,EAAED;AAVV,IALJ,CADwC;AAAA,CAAlB,CAA1B;AAqBA,eAAeF,iBAAf","sourcesContent":["// @flow\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport camelCase from 'lodash/camelCase';\nimport IconComplete from '../../../../icons/general/IconVerified';\nimport IconReject from '../../../../icons/general/IconRejected';\nimport Avatar from '../Avatar';\nimport { TASK_NEW_APPROVED, TASK_NEW_REJECTED, TASK_NEW_COMPLETED, TASK_NEW_NOT_STARTED } from '../../../../constants';\nimport messages from './messages';\nimport type { TaskCollabStatus } from '../../../../common/types/tasks';\nimport type { UserMini } from '../../../../common/types/core';\nimport type { GetAvatarUrlCallback } from '../../../common/flowTypes';\n\nimport './AvatarGroupAvatar.scss';\n\ntype Props = {\n className?: string,\n getAvatarUrl?: GetAvatarUrlCallback,\n status: TaskCollabStatus,\n user: UserMini,\n};\n\nconst StatusIcon = ({ status, ...rest }: { status: TaskCollabStatus }) => {\n switch (status) {\n case TASK_NEW_APPROVED:\n case TASK_NEW_COMPLETED:\n return <IconComplete {...rest} />;\n case TASK_NEW_REJECTED:\n return <IconReject {...rest} />;\n case TASK_NEW_NOT_STARTED:\n default:\n return null;\n }\n};\n\nconst AvatarGroupAvatar = React.memo<Props>(({ user, status, getAvatarUrl, className, ...rest }: Props) => (\n <div\n className={classNames('bcs-AvatarGroupAvatar', className)}\n data-testid=\"avatar-group-avatar-container\"\n {...rest}\n >\n <Avatar\n badgeIcon={\n <StatusIcon\n className={`${camelCase(status)}`}\n status={status}\n title={<FormattedMessage {...messages.taskAssignmentCompleted} />}\n />\n }\n className=\"bcs-AvatarGroupAvatar-avatar\"\n getAvatarUrl={getAvatarUrl}\n user={user}\n />\n </div>\n));\n\nexport default AvatarGroupAvatar;\n"],"file":"AvatarGroupAvatar.js"}
@@ -1,5 +1,5 @@
1
1
  @import '../../../common/variables';
2
- @import './mixins';
2
+ @import '../../mixins';
3
3
 
4
4
  $bcs-AvatarGroupAvatar-avatar-size: 32px;
5
5
 
@@ -16,7 +16,3 @@ $bcs-AvatarGroupAvatar-avatar-size: 32px;
16
16
  width: 100%;
17
17
  height: 100%;
18
18
  }
19
-
20
- .bcs-AvatarGroupAvatar-statusIcon {
21
- @include avatar-badge-icon;
22
- }