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.
- package/CONTRIBUTING.md +4 -0
- package/README.md +7 -1
- package/dist/explorer.css +1 -1
- package/dist/explorer.js +19 -19
- package/dist/openwith.css +1 -1
- package/dist/openwith.js +10 -10
- package/dist/picker.css +1 -1
- package/dist/picker.js +12 -12
- package/dist/preview.css +1 -1
- package/dist/preview.js +17 -17
- package/dist/sharing.css +1 -1
- package/dist/sharing.js +16 -55
- package/dist/sidebar.css +1 -1
- package/dist/sidebar.js +17 -17
- package/dist/uploader.css +1 -1
- package/dist/uploader.js +12 -12
- package/es/api/Feed.js +85 -38
- package/es/api/Feed.js.flow +46 -1
- package/es/api/Feed.js.map +1 -1
- package/es/api/Item.js +16 -10
- package/es/api/Item.js.flow +7 -4
- package/es/api/Item.js.map +1 -1
- package/es/api/ThreadedComments.js +58 -23
- package/es/api/ThreadedComments.js.flow +40 -0
- package/es/api/ThreadedComments.js.map +1 -1
- package/es/common/types/feed.js +1 -1
- package/es/common/types/feed.js.flow +34 -0
- package/es/common/types/feed.js.map +1 -1
- package/es/components/avatar/Avatar.js +22 -5
- package/es/components/avatar/Avatar.js.flow +24 -7
- package/es/components/avatar/Avatar.js.map +1 -1
- package/es/components/avatar/Avatar.scss +42 -0
- package/es/components/avatar/Avatar.stories.js +58 -0
- package/es/components/avatar/Avatar.stories.js.map +1 -1
- package/es/components/avatar/messages.js +9 -0
- package/es/components/avatar/messages.js.map +1 -0
- package/es/components/badgeable/Badgeable.scss +1 -1
- package/es/components/breadcrumb/Breadcrumb.js +1 -1
- package/es/components/breadcrumb/Breadcrumb.js.flow +1 -1
- package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/es/components/button-group/ButtonGroup.scss +2 -2
- package/es/components/checkbox/Checkbox.js +5 -1
- package/es/components/checkbox/Checkbox.js.flow +7 -0
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/checkbox/Checkbox.scss +2 -2
- package/es/components/close-button/CloseButton.js +2 -2
- package/es/components/close-button/CloseButton.js.flow +2 -2
- package/es/components/close-button/CloseButton.js.map +1 -1
- package/es/components/contact-datalist-item/ContactDatalistItem.scss +1 -1
- package/es/components/date-picker/DatePicker.js +2 -2
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePicker.scss +1 -1
- package/es/components/draft-js-editor/DraftJSEditor.scss +1 -1
- package/es/components/dropdown-menu/DropdownMenu.js +5 -3
- package/es/components/dropdown-menu/DropdownMenu.js.flow +8 -2
- package/es/components/dropdown-menu/DropdownMenu.js.map +1 -1
- package/es/components/dropdown-menu/DropdownMenu.scss +6 -4
- package/es/components/error-mask/ErrorMask.scss +1 -1
- package/es/components/flyout/Flyout.js +9 -0
- package/es/components/flyout/Flyout.js.flow +13 -0
- package/es/components/flyout/Flyout.js.map +1 -1
- package/es/components/flyout/Flyout.scss +1 -1
- package/es/components/flyout/Overlay.js +2 -1
- package/es/components/flyout/Overlay.js.flow +2 -1
- package/es/components/flyout/Overlay.js.map +1 -1
- package/es/components/grid-view/GridView.js +3 -1
- package/es/components/grid-view/GridView.js.flow +3 -2
- package/es/components/grid-view/GridView.js.map +1 -1
- package/es/components/grid-view/GridViewSlider.js +5 -2
- package/es/components/grid-view/GridViewSlider.js.flow +5 -2
- package/es/components/grid-view/GridViewSlider.js.map +1 -1
- package/es/components/grid-view/GridViewSlider.scss +0 -10
- package/es/components/inline-error/InlineError.stories.js +12 -0
- package/es/components/inline-error/InlineError.stories.js.flow +9 -0
- package/es/components/inline-error/InlineError.stories.js.map +1 -0
- package/es/components/inline-notice/InlineNotice.stories.js +42 -0
- package/es/components/inline-notice/InlineNotice.stories.js.flow +59 -0
- package/es/components/inline-notice/InlineNotice.stories.js.map +1 -0
- package/es/components/label/InfoIconWithTooltip.js +2 -2
- package/es/components/label/InfoIconWithTooltip.js.map +1 -1
- package/es/components/label/Label.scss +1 -1
- package/es/components/media-query/stories/MediaQuery.stories.js +4 -2
- package/es/components/media-query/stories/MediaQuery.stories.js.flow +11 -2
- package/es/components/media-query/stories/MediaQuery.stories.js.map +1 -1
- package/es/components/media-query/types.js.flow +1 -0
- package/es/components/media-query/types.js.map +1 -1
- package/es/components/media-query/useMediaQuery.js +3 -1
- package/es/components/media-query/useMediaQuery.js.flow +3 -0
- package/es/components/media-query/useMediaQuery.js.map +1 -1
- package/es/components/menu/MenuHeader.scss +1 -1
- package/es/components/menu/SubmenuItem.js +3 -1
- package/es/components/menu/SubmenuItem.js.map +1 -1
- package/es/components/modal/Modal.scss +15 -0
- package/es/components/modal/ModalDialog.js +40 -10
- package/es/components/modal/ModalDialog.js.flow +44 -5
- package/es/components/modal/ModalDialog.js.map +1 -1
- package/es/components/nav-sidebar/NavSidebar.scss +1 -1
- package/es/components/nav-sidebar/NavSidebar.stories.js +37 -0
- package/es/components/nav-sidebar/NavSidebar.stories.js.flow +54 -0
- package/es/components/nav-sidebar/NavSidebar.stories.js.map +1 -0
- package/es/components/pill-cloud/PillCloud.stories.js +88 -0
- package/es/components/pill-cloud/PillCloud.stories.js.flow +48 -0
- package/es/components/pill-cloud/PillCloud.stories.js.map +1 -0
- package/es/components/pill-selector-dropdown/PillSelector.js +20 -11
- package/es/components/pill-selector-dropdown/PillSelector.js.flow +26 -4
- package/es/components/pill-selector-dropdown/PillSelector.js.map +1 -1
- package/es/components/pill-selector-dropdown/PillSelector.scss +4 -0
- package/es/components/pill-selector-dropdown/PillSelectorDropdown.js +1 -0
- package/es/components/pill-selector-dropdown/PillSelectorDropdown.js.flow +1 -0
- package/es/components/pill-selector-dropdown/PillSelectorDropdown.js.map +1 -1
- package/es/components/pill-selector-dropdown/_mixins.scss +1 -1
- package/es/components/popper/PopperComponent.js +3 -1
- package/es/components/popper/PopperComponent.js.flow +3 -2
- package/es/components/popper/PopperComponent.js.map +1 -1
- package/es/components/radio/RadioButton.scss +1 -1
- package/es/components/search-form/SearchForm.js +21 -11
- package/es/components/search-form/SearchForm.js.flow +30 -6
- package/es/components/search-form/SearchForm.js.map +1 -1
- package/es/components/select-button/SelectButton.js +6 -2
- package/es/components/select-button/SelectButton.js.flow +23 -2
- package/es/components/select-button/SelectButton.js.map +1 -1
- package/es/components/select-field/BaseSelectField.js +6 -2
- package/es/components/select-field/BaseSelectField.js.flow +19 -2
- package/es/components/select-field/BaseSelectField.js.map +1 -1
- package/es/components/select-field/SelectField.scss +8 -1
- package/es/components/selector-dropdown/SelectorDropdown.js +11 -3
- package/es/components/selector-dropdown/SelectorDropdown.js.flow +22 -5
- package/es/components/selector-dropdown/SelectorDropdown.js.map +1 -1
- package/es/components/selector-dropdown/SelectorDropdown.scss +2 -2
- package/es/components/table/makeSelectable.js +38 -7
- package/es/components/table/makeSelectable.js.flow +33 -6
- package/es/components/table/makeSelectable.js.map +1 -1
- package/es/components/text-area/TextArea.scss +1 -1
- package/es/components/text-input/TextInput.scss +1 -1
- package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js +3 -2
- package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js.flow +4 -1
- package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js.map +1 -1
- package/es/components/text-input-with-copy-button/TextInputWithCopyButton.scss +11 -7
- package/es/components/thumbnail-card/ThumbnailCard.scss +1 -1
- package/es/components/time/ReadableTime.stories.js +46 -0
- package/es/components/time/ReadableTime.stories.js.flow +56 -0
- package/es/components/time/ReadableTime.stories.js.map +1 -0
- package/es/components/toggle/Toggle.js +11 -4
- package/es/components/toggle/Toggle.js.flow +16 -5
- package/es/components/toggle/Toggle.js.map +1 -1
- package/es/components/toggle/Toggle.scss +3 -3
- package/es/components/tooltip/CloseButton.js +24 -0
- package/es/components/tooltip/CloseButton.js.map +1 -0
- package/es/components/tooltip/Tooltip.js +4 -10
- package/es/components/tooltip/Tooltip.js.map +1 -1
- package/es/constants.js +7 -0
- package/es/constants.js.flow +7 -0
- package/es/constants.js.map +1 -1
- package/es/elements/common/_variables.scss +7 -2
- package/es/elements/common/base.scss +14 -0
- package/es/elements/common/breadcrumbs/Breadcrumb.scss +1 -1
- package/es/elements/common/breadcrumbs/BreadcrumbDropdown.scss +1 -1
- package/es/elements/common/breadcrumbs/InlineBreadcrumbs.scss +2 -2
- package/es/elements/common/header/Header.js +6 -2
- package/es/elements/common/header/Header.js.flow +7 -2
- package/es/elements/common/header/Header.js.map +1 -1
- package/es/elements/common/header/Logo.js +2 -1
- package/es/elements/common/header/Logo.js.flow +5 -1
- package/es/elements/common/header/Logo.js.map +1 -1
- package/es/elements/common/item/IconCell.js +68 -0
- package/es/elements/common/item/IconCell.js.flow +55 -0
- package/es/elements/common/item/IconCell.js.map +1 -0
- package/es/elements/common/item/ItemDetails.scss +1 -1
- package/es/elements/common/item/iconCellRenderer.js +5 -36
- package/es/elements/common/item/iconCellRenderer.js.flow +6 -22
- package/es/elements/common/item/iconCellRenderer.js.map +1 -1
- package/es/elements/common/messages.js +28 -0
- package/es/elements/common/messages.js.flow +35 -0
- package/es/elements/common/messages.js.map +1 -1
- package/es/elements/common/modal.scss +0 -2
- package/es/elements/common/share-access-select/ShareAccessSelect.scss +1 -1
- package/es/elements/common/sub-header/AddButton.js +4 -1
- package/es/elements/common/sub-header/AddButton.js.flow +2 -1
- package/es/elements/common/sub-header/AddButton.js.map +1 -1
- package/es/elements/common/sub-header/Sort.js +4 -10
- package/es/elements/common/sub-header/Sort.js.flow +7 -6
- package/es/elements/common/sub-header/Sort.js.map +1 -1
- package/es/elements/common/sub-header/SortButton.js +19 -6
- package/es/elements/common/sub-header/SortButton.js.flow +23 -10
- package/es/elements/common/sub-header/SortButton.js.map +1 -1
- package/es/elements/common/sub-header/ViewModeChangeButton.js +3 -3
- package/es/elements/common/sub-header/ViewModeChangeButton.js.flow +3 -3
- package/es/elements/common/sub-header/ViewModeChangeButton.js.map +1 -1
- package/es/elements/content-explorer/Content.js.flow +2 -1
- package/es/elements/content-explorer/Content.js.map +1 -1
- package/es/elements/content-explorer/ContentExplorer.js +63 -20
- package/es/elements/content-explorer/ContentExplorer.js.flow +50 -13
- package/es/elements/content-explorer/ContentExplorer.js.map +1 -1
- package/es/elements/content-explorer/ItemGrid.js +55 -7
- package/es/elements/content-explorer/ItemGrid.js.flow +60 -9
- package/es/elements/content-explorer/ItemGrid.js.map +1 -1
- package/es/elements/content-explorer/ItemGridThumbnail.js +5 -2
- package/es/elements/content-explorer/ItemGridThumbnail.js.flow +5 -2
- package/es/elements/content-explorer/ItemGridThumbnail.js.map +1 -1
- package/es/elements/content-explorer/ItemList.js +4 -2
- package/es/elements/content-explorer/ItemList.js.flow +4 -2
- package/es/elements/content-explorer/ItemList.js.map +1 -1
- package/es/elements/content-explorer/ItemList.scss +16 -8
- package/es/elements/content-explorer/MoreOptions.js +6 -4
- package/es/elements/content-explorer/MoreOptions.js.flow +11 -4
- package/es/elements/content-explorer/MoreOptions.js.map +1 -1
- package/es/elements/content-open-with/ContentOpenWith.scss +1 -1
- package/es/elements/content-picker/Footer.js +15 -6
- package/es/elements/content-picker/Footer.js.flow +62 -51
- package/es/elements/content-picker/Footer.js.map +1 -1
- package/es/elements/content-picker/ItemList.scss +1 -1
- package/es/elements/content-preview/ContentPreview.js +44 -12
- package/es/elements/content-preview/ContentPreview.js.flow +43 -6
- package/es/elements/content-preview/ContentPreview.js.map +1 -1
- package/es/elements/content-preview/preview-header/PreviewHeader.scss +1 -1
- package/es/elements/content-sharing/ContentSharing.js +2 -2
- package/es/elements/content-sharing/ContentSharing.js.flow +2 -2
- package/es/elements/content-sharing/ContentSharing.js.map +1 -1
- package/es/elements/content-sidebar/ActivitySidebar.js +291 -62
- package/es/elements/content-sidebar/ActivitySidebar.js.flow +262 -17
- package/es/elements/content-sidebar/ActivitySidebar.js.map +1 -1
- package/es/elements/content-sidebar/ActivitySidebar.scss +7 -0
- package/es/elements/content-sidebar/ActivitySidebarFilter.js +36 -18
- package/es/elements/content-sidebar/ActivitySidebarFilter.js.flow +64 -23
- package/es/elements/content-sidebar/ActivitySidebarFilter.js.map +1 -1
- package/es/elements/content-sidebar/AddTaskMenu.scss +1 -1
- package/es/elements/content-sidebar/SidebarContent.js +2 -2
- package/es/elements/content-sidebar/SidebarContent.js.flow +1 -1
- package/es/elements/content-sidebar/SidebarContent.js.map +1 -1
- package/es/elements/content-sidebar/SidebarContent.scss +3 -3
- package/es/elements/content-sidebar/SidebarNav.js +3 -17
- package/es/elements/content-sidebar/SidebarNav.js.flow +3 -15
- package/es/elements/content-sidebar/SidebarNav.js.map +1 -1
- package/es/elements/content-sidebar/SidebarNavSign.js +48 -69
- package/es/elements/content-sidebar/SidebarNavSign.js.map +1 -1
- package/es/elements/content-sidebar/SidebarNavSign.scss +3 -25
- package/es/elements/content-sidebar/SidebarNavSignButton.js +79 -0
- package/es/elements/content-sidebar/SidebarNavSignButton.js.map +1 -0
- package/es/elements/content-sidebar/SidebarNavSignButton.scss +27 -0
- package/es/elements/content-sidebar/activity-feed/Avatar.js +4 -2
- package/es/elements/content-sidebar/activity-feed/Avatar.js.flow +5 -2
- package/es/elements/content-sidebar/activity-feed/Avatar.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +61 -15
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.flow +73 -28
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +122 -53
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.flow +80 -13
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.scss +11 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.js +9 -2
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.scss +28 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +27 -7
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.flow +48 -29
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +69 -6
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +35 -4
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.flow +42 -5
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +15 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +21 -8
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.flow +30 -5
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +4 -7
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +45 -15
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.flow +43 -13
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +26 -3
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +29 -48
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.flow +67 -56
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +1 -1
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +14 -53
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.flow +16 -51
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js +3 -2
- package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.flow +5 -4
- package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotation-thread/types.js +2 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/types.js.flow +7 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/types.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +29 -17
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.flow +32 -10
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js +317 -63
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js.flow +249 -55
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +27 -93
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.flow +42 -83
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +15 -6
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.flow +27 -12
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.scss +11 -8
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityLink.scss +1 -1
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +3 -1
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.flow +3 -1
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.scss +5 -0
- package/es/elements/content-sidebar/activity-feed/comment/BaseComment.js +385 -0
- package/es/elements/content-sidebar/activity-feed/comment/BaseComment.js.flow +456 -0
- package/es/elements/content-sidebar/activity-feed/comment/BaseComment.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/comment/BaseComment.scss +30 -0
- package/es/elements/content-sidebar/activity-feed/comment/Comment.js +53 -9
- package/es/elements/content-sidebar/activity-feed/comment/Comment.js.flow +42 -5
- package/es/elements/content-sidebar/activity-feed/comment/Comment.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/comment/Comment.scss +10 -0
- package/es/elements/content-sidebar/activity-feed/comment/CreateReply.js +54 -0
- package/es/elements/content-sidebar/activity-feed/comment/CreateReply.js.flow +72 -0
- package/es/elements/content-sidebar/activity-feed/comment/CreateReply.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/comment/CreateReply.scss +21 -0
- package/es/elements/content-sidebar/activity-feed/comment/Replies.scss +41 -0
- package/es/elements/content-sidebar/activity-feed/comment/RepliesToggle.js +44 -0
- package/es/elements/content-sidebar/activity-feed/comment/RepliesToggle.js.flow +41 -0
- package/es/elements/content-sidebar/activity-feed/comment/RepliesToggle.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/comment/RepliesToggle.scss +6 -0
- package/es/elements/content-sidebar/activity-feed/comment/messages.js +16 -0
- package/es/elements/content-sidebar/activity-feed/comment/messages.js.flow +20 -0
- package/es/elements/content-sidebar/activity-feed/comment/messages.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +1 -1
- package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.flow +3 -3
- package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.scss +1 -1
- package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +1 -1
- package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js +1 -1
- package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.flow +2 -2
- package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +1 -1
- package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js +1 -0
- package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js.flow +1 -0
- package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/task-new/AssigneeDetails.scss +1 -1
- package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js +7 -8
- package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js.flow +11 -7
- package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.scss +1 -5
- package/es/elements/content-sidebar/activity-feed/task-new/Task.js +2 -5
- package/es/elements/content-sidebar/activity-feed/task-new/Task.js.flow +1 -2
- package/es/elements/content-sidebar/activity-feed/task-new/Task.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/task-new/Task.scss +1 -8
- package/es/elements/content-sidebar/messages.js +22 -2
- package/es/elements/content-sidebar/messages.js.flow +29 -4
- package/es/elements/content-sidebar/messages.js.map +1 -1
- package/es/elements/content-sidebar/skills/timeline/Timeline.scss +1 -1
- package/es/elements/content-sidebar/skills/transcript/Transcript.scss +1 -1
- package/es/elements/content-sidebar/versions/VersionsGroup.scss +1 -1
- package/es/elements/content-sidebar/versions/VersionsItem.scss +3 -3
- package/es/elements/content-uploader/Footer.js +9 -3
- package/es/elements/content-uploader/Footer.js.flow +23 -3
- package/es/elements/content-uploader/Footer.js.map +1 -1
- package/es/elements/content-uploader/Footer.scss +0 -1
- package/es/elements/content-uploader/ItemAction.js +8 -4
- package/es/elements/content-uploader/ItemAction.js.flow +6 -3
- package/es/elements/content-uploader/ItemAction.js.map +1 -1
- package/es/elements/content-uploader/ItemRemove.js +11 -6
- package/es/elements/content-uploader/ItemRemove.js.flow +18 -6
- package/es/elements/content-uploader/ItemRemove.js.map +1 -1
- package/es/elements/content-uploader/UploadInput.js +21 -9
- package/es/elements/content-uploader/UploadInput.js.flow +19 -9
- package/es/elements/content-uploader/UploadInput.js.map +1 -1
- package/es/features/advanced-content-insights/AdvancedContentInsightsToggle.js +44 -0
- package/es/features/advanced-content-insights/AdvancedContentInsightsToggle.js.map +1 -0
- package/es/features/advanced-content-insights/AdvancedContentInsightsToggle.scss +19 -0
- package/es/features/advanced-content-insights/messages.js +17 -0
- package/es/features/advanced-content-insights/messages.js.map +1 -0
- package/es/features/classification/classificationColorsMap.js +1 -1
- package/es/features/classification/classificationColorsMap.js.flow +1 -1
- package/es/features/classification/classificationColorsMap.js.map +1 -1
- package/es/features/collaborator-avatars/CollaboratorAvatarItem.js +13 -9
- package/es/features/collaborator-avatars/CollaboratorAvatarItem.js.flow +11 -8
- package/es/features/collaborator-avatars/CollaboratorAvatarItem.js.map +1 -1
- package/es/features/collaborator-avatars/CollaboratorAvatars.scss +1 -1
- package/es/features/collaborator-avatars/CollaboratorList.js +4 -5
- package/es/features/collaborator-avatars/CollaboratorList.js.flow +3 -4
- package/es/features/collaborator-avatars/CollaboratorList.js.map +1 -1
- package/es/features/collaborator-avatars/CollaboratorListItem.js +7 -9
- package/es/features/collaborator-avatars/CollaboratorListItem.js.flow +7 -13
- package/es/features/collaborator-avatars/CollaboratorListItem.js.map +1 -1
- package/es/features/collaborator-avatars/CollaboratorListItem.scss +7 -3
- package/es/features/collapsible-sidebar/CollapsibleSidebar.js +3 -2
- package/es/features/collapsible-sidebar/CollapsibleSidebar.js.flow +5 -2
- package/es/features/collapsible-sidebar/CollapsibleSidebar.js.map +1 -1
- package/es/features/collapsible-sidebar/CollapsibleSidebar.scss +4 -7
- package/es/features/collapsible-sidebar/CollapsibleSidebarLogo.js +3 -1
- package/es/features/collapsible-sidebar/CollapsibleSidebarLogo.js.flow +15 -11
- package/es/features/collapsible-sidebar/CollapsibleSidebarLogo.js.map +1 -1
- package/es/features/content-explorer/content-explorer/ContentExplorer.js +146 -58
- package/es/features/content-explorer/content-explorer/ContentExplorer.js.flow +97 -20
- package/es/features/content-explorer/content-explorer/ContentExplorer.js.map +1 -1
- package/es/features/content-explorer/content-explorer/ContentExplorer.scss +67 -8
- package/es/features/content-explorer/content-explorer/ContentExplorerActionButtons.js +58 -11
- package/es/features/content-explorer/content-explorer/ContentExplorerActionButtons.js.flow +53 -13
- package/es/features/content-explorer/content-explorer/ContentExplorerActionButtons.js.map +1 -1
- package/es/features/content-explorer/content-explorer/ContentExplorerFolderTreeBreadcrumbs.js +68 -0
- package/es/features/content-explorer/content-explorer/ContentExplorerFolderTreeBreadcrumbs.js.flow +82 -0
- package/es/features/content-explorer/content-explorer/ContentExplorerFolderTreeBreadcrumbs.js.map +1 -0
- package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +13 -2
- package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.flow +22 -7
- package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.map +1 -1
- package/es/features/content-explorer/content-explorer/ContentExplorerIncludeSubfolders.js +33 -0
- package/es/features/content-explorer/content-explorer/ContentExplorerIncludeSubfolders.js.flow +30 -0
- package/es/features/content-explorer/content-explorer/ContentExplorerIncludeSubfolders.js.map +1 -0
- package/es/features/content-explorer/content-explorer/ContentExplorerSelectAll.js +16 -10
- package/es/features/content-explorer/content-explorer/ContentExplorerSelectAll.js.flow +34 -20
- package/es/features/content-explorer/content-explorer/ContentExplorerSelectAll.js.map +1 -1
- package/es/features/content-explorer/content-explorer/constants.js +7 -0
- package/es/features/content-explorer/content-explorer/constants.js.flow +6 -0
- package/es/features/content-explorer/content-explorer/constants.js.map +1 -0
- package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +1 -0
- package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.flow +13 -0
- package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.map +1 -1
- package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +42 -0
- package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.flow +31 -0
- package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.map +1 -1
- package/es/features/content-explorer/item-list/ItemList.js +20 -5
- package/es/features/content-explorer/item-list/ItemList.js.flow +17 -1
- package/es/features/content-explorer/item-list/ItemList.js.map +1 -1
- package/es/features/content-explorer/item-list/ItemList.scss +1 -1
- package/es/features/content-explorer/item-list/ItemListButton.js +4 -1
- package/es/features/content-explorer/item-list/ItemListButton.js.flow +10 -2
- package/es/features/content-explorer/item-list/ItemListButton.js.map +1 -1
- package/es/features/content-explorer/item-list/ItemListIcon.js +12 -45
- package/es/features/content-explorer/item-list/ItemListIcon.js.flow +5 -33
- package/es/features/content-explorer/item-list/ItemListIcon.js.map +1 -1
- package/es/features/content-explorer/item-list/ItemListName.js +2 -2
- package/es/features/content-explorer/item-list/ItemListName.js.flow +3 -2
- package/es/features/content-explorer/item-list/ItemListName.js.map +1 -1
- package/es/features/content-explorer/messages.js +23 -19
- package/es/features/content-explorer/messages.js.flow +41 -24
- package/es/features/content-explorer/messages.js.map +1 -1
- package/es/features/content-explorer/prop-types.js +2 -2
- package/es/features/content-explorer/prop-types.js.flow +2 -2
- package/es/features/content-explorer/prop-types.js.map +1 -1
- package/es/features/content-insights/_mixins.scss +1 -1
- package/es/features/content-insights/charts/bar/Bar.js +21 -2
- package/es/features/content-insights/charts/bar/Bar.js.map +1 -1
- package/es/features/content-insights/charts/bar/BarChart.js +6 -3
- package/es/features/content-insights/charts/bar/BarChart.js.map +1 -1
- package/es/features/invite-collaborators-modal/InviteCollaboratorsModal.scss +1 -1
- package/es/features/message-center/components/templates/common/styles/MessageFooter.scss +1 -1
- package/es/features/metadata-based-view/IconWithTooltip.js +4 -4
- package/es/features/metadata-based-view/IconWithTooltip.js.flow +4 -4
- package/es/features/metadata-based-view/IconWithTooltip.js.map +1 -1
- package/es/features/metadata-based-view/MetadataBasedItemList.scss +1 -1
- package/es/features/metadata-instance-editor/CascadePolicy.scss +1 -1
- package/es/features/metadata-instance-editor/TemplateDropdown.js +9 -21
- package/es/features/metadata-instance-editor/TemplateDropdown.js.flow +4 -10
- package/es/features/metadata-instance-editor/TemplateDropdown.js.map +1 -1
- package/es/features/metadata-instance-editor/TemplateDropdown.scss +2 -2
- package/es/features/metadata-instance-fields/EnumMetadataField.scss +2 -2
- package/es/features/metadata-instance-fields/MultiSelectMetadataField.scss +1 -1
- package/es/features/metadata-instance-fields/ReadOnlyMetadataField.scss +2 -2
- package/es/features/presence/PresenceAvatarList.scss +1 -1
- package/es/features/presence/PresenceCollaborator.scss +1 -1
- package/es/features/query-bar/styles/Condition.scss +2 -2
- package/es/features/quick-search/QuickSearchItem.js +4 -3
- package/es/features/quick-search/QuickSearchItem.js.flow +4 -3
- package/es/features/quick-search/QuickSearchItem.js.map +1 -1
- package/es/features/shared-link-settings-modal/ExpirationSection.js +5 -0
- package/es/features/shared-link-settings-modal/ExpirationSection.js.flow +4 -0
- package/es/features/shared-link-settings-modal/ExpirationSection.js.map +1 -1
- package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js +9 -3
- package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.flow +9 -5
- package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.map +1 -1
- package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.scss +3 -3
- package/es/features/shared-link-settings-modal/VanityNameSection.js +2 -2
- package/es/features/shared-link-settings-modal/VanityNameSection.js.flow +2 -2
- package/es/features/shared-link-settings-modal/VanityNameSection.js.map +1 -1
- package/es/features/unified-share-modal/InviteePermissionsMenu.js +2 -1
- package/es/features/unified-share-modal/InviteePermissionsMenu.js.flow +1 -0
- package/es/features/unified-share-modal/InviteePermissionsMenu.js.map +1 -1
- package/es/features/unified-share-modal/SharedLinkAccessMenu.js +2 -1
- package/es/features/unified-share-modal/SharedLinkAccessMenu.js.flow +1 -0
- package/es/features/unified-share-modal/SharedLinkAccessMenu.js.map +1 -1
- package/es/features/unified-share-modal/SharedLinkPermissionMenu.js +2 -1
- package/es/features/unified-share-modal/SharedLinkPermissionMenu.js.flow +1 -0
- package/es/features/unified-share-modal/SharedLinkPermissionMenu.js.map +1 -1
- package/es/features/unified-share-modal/SharedLinkSection.js +18 -18
- package/es/features/unified-share-modal/SharedLinkSection.js.flow +30 -38
- package/es/features/unified-share-modal/SharedLinkSection.js.map +1 -1
- package/es/features/unified-share-modal/UnifiedShareForm.js +27 -16
- package/es/features/unified-share-modal/UnifiedShareForm.js.flow +38 -25
- package/es/features/unified-share-modal/UnifiedShareForm.js.map +1 -1
- package/es/features/unified-share-modal/UnifiedShareModal.js +10 -1
- package/es/features/unified-share-modal/UnifiedShareModal.js.flow +9 -1
- package/es/features/unified-share-modal/UnifiedShareModal.js.map +1 -1
- package/es/features/unified-share-modal/UnifiedShareModal.scss +24 -13
- package/es/features/unified-share-modal/flowTypes.js.flow +10 -2
- package/es/features/unified-share-modal/flowTypes.js.map +1 -1
- package/es/features/unified-share-modal/messages.js +12 -4
- package/es/features/unified-share-modal/messages.js.flow +17 -5
- package/es/features/unified-share-modal/messages.js.map +1 -1
- package/es/features/virtualized-table/VirtualizedTable.scss +1 -1
- package/es/features/virtualized-table-renderers/_mixins.scss +1 -1
- package/es/icons/badges/MetadataDefaultBadge.js +3 -3
- package/es/icons/badges/MetadataDefaultBadge.js.flow +3 -3
- package/es/icons/badges/MetadataDefaultBadge.js.map +1 -1
- package/es/icons/general/IconAnyTask.js +2 -2
- package/es/icons/general/IconAnyTask.js.flow +2 -2
- package/es/icons/general/IconAnyTask.js.map +1 -1
- package/es/icons/general/IconEdit.js +2 -1
- package/es/icons/general/IconEdit.js.flow +2 -1
- package/es/icons/general/IconEdit.js.map +1 -1
- package/es/icons/metadata-view/IconMetadataView.js +2 -1
- package/es/icons/metadata-view/IconMetadataView.js.flow +2 -1
- package/es/icons/metadata-view/IconMetadataView.js.map +1 -1
- package/es/icons/two-toned/IconAnnotation.js +36 -0
- package/es/icons/two-toned/IconAnnotation.js.flow +27 -0
- package/es/icons/two-toned/IconAnnotation.js.map +1 -0
- package/es/icons/two-toned/_IconAnnotation.mixins.scss +9 -0
- package/es/src/components/avatar/Avatar.d.ts +18 -2
- package/es/src/components/avatar/Avatar.stories.d.ts +7 -2
- package/es/src/components/avatar/messages.d.ts +8 -0
- package/es/src/components/checkbox/Checkbox.d.ts +4 -1
- package/es/src/components/checkbox/Checkbox.stories.d.ts +1 -1
- package/es/src/components/tooltip/CloseButton.d.ts +14 -0
- package/es/src/components/tooltip/__tests__/CloseButton.test.d.ts +1 -0
- package/es/src/elements/content-sidebar/SidebarNavSign.d.ts +2 -24
- package/es/src/elements/content-sidebar/SidebarNavSignButton.d.ts +25 -0
- package/es/src/elements/content-sidebar/__tests__/SidebarNavSignButton.test.d.ts +1 -0
- package/es/src/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.d.ts +3 -0
- package/es/src/features/advanced-content-insights/AdvancedContentInsightsToggle.d.ts +10 -0
- package/es/src/features/advanced-content-insights/__tests__/AdvancedContentInsightsToggle.test.d.ts +1 -0
- package/es/src/features/advanced-content-insights/messages.d.ts +18 -0
- package/es/src/features/content-insights/charts/bar/Bar.d.ts +6 -2
- package/es/src/features/content-insights/charts/bar/BarChart.d.ts +7 -2
- package/es/src/icons/two-toned/IconAnnotation.d.ts +3 -0
- package/es/src/icons/two-toned/__tests__/IconAnnotation.test.d.ts +1 -0
- package/es/src/styles/typography.stories.d.ts +8 -0
- package/es/src/styles/variables.d.ts +1 -1
- package/es/styles/_deprecated.scss +1 -0
- package/es/styles/_inputs.scss +2 -3
- package/es/styles/common/_buttons.scss +2 -2
- package/es/styles/common/_forms.scss +2 -0
- package/es/styles/common/_links.scss +1 -1
- package/es/styles/constants/_colors.scss +1 -1
- package/es/styles/constants/_themes.scss +1 -1
- package/es/styles/typography.stories.js +55 -0
- package/es/styles/typography.stories.js.map +1 -0
- package/es/styles/typography.stories.scss +60 -0
- package/es/styles/variables.js +2 -2
- package/es/styles/variables.js.flow +2 -2
- package/es/styles/variables.js.map +1 -1
- package/es/utils/createTheme.js +2 -2
- package/es/utils/createTheme.js.flow +2 -2
- package/es/utils/createTheme.js.map +1 -1
- package/i18n/bn-IN.js +46 -22
- package/i18n/bn-IN.properties +79 -31
- package/i18n/da-DK.js +46 -22
- package/i18n/da-DK.properties +79 -31
- package/i18n/de-DE.js +45 -21
- package/i18n/de-DE.properties +78 -30
- package/i18n/en-AU.js +33 -9
- package/i18n/en-AU.properties +66 -18
- package/i18n/en-CA.js +32 -8
- package/i18n/en-CA.properties +65 -17
- package/i18n/en-GB.js +33 -9
- package/i18n/en-GB.properties +66 -18
- package/i18n/en-US.js +32 -8
- package/i18n/en-US.properties +65 -17
- package/i18n/en-x-pseudo.js +39 -8
- package/i18n/es-419.js +46 -22
- package/i18n/es-419.properties +79 -31
- package/i18n/es-ES.js +46 -22
- package/i18n/es-ES.properties +79 -31
- package/i18n/fi-FI.js +45 -21
- package/i18n/fi-FI.properties +78 -30
- package/i18n/fr-CA.js +44 -20
- package/i18n/fr-CA.properties +78 -30
- package/i18n/fr-FR.js +44 -20
- package/i18n/fr-FR.properties +78 -30
- package/i18n/hi-IN.js +46 -22
- package/i18n/hi-IN.properties +79 -31
- package/i18n/it-IT.js +45 -21
- package/i18n/it-IT.properties +78 -30
- package/i18n/ja-JP.js +55 -31
- package/i18n/ja-JP.properties +88 -40
- package/i18n/ko-KR.js +44 -20
- package/i18n/ko-KR.properties +78 -30
- package/i18n/nb-NO.js +45 -21
- package/i18n/nb-NO.properties +78 -30
- package/i18n/nl-NL.js +46 -22
- package/i18n/nl-NL.properties +79 -31
- package/i18n/pl-PL.js +45 -21
- package/i18n/pl-PL.properties +78 -30
- package/i18n/pt-BR.js +45 -21
- package/i18n/pt-BR.properties +78 -30
- package/i18n/ru-RU.js +45 -21
- package/i18n/ru-RU.properties +78 -30
- package/i18n/sv-SE.js +46 -22
- package/i18n/sv-SE.properties +79 -31
- package/i18n/tr-TR.js +45 -21
- package/i18n/tr-TR.properties +78 -30
- package/i18n/zh-CN.js +45 -21
- package/i18n/zh-CN.properties +78 -30
- package/i18n/zh-TW.js +45 -21
- package/i18n/zh-TW.properties +78 -30
- package/package.json +3 -3
- package/src/api/Feed.js +46 -1
- package/src/api/Item.js +7 -4
- package/src/api/ThreadedComments.js +40 -0
- package/src/api/__tests__/Feed.test.js +48 -0
- package/src/api/__tests__/Item.test.js +14 -0
- package/src/api/__tests__/ThreadedComments.test.js +46 -0
- package/src/common/types/feed.js +34 -0
- package/src/components/avatar/Avatar.js.flow +24 -7
- package/src/components/avatar/Avatar.scss +42 -0
- package/src/components/avatar/Avatar.stories.tsx +45 -0
- package/src/components/avatar/Avatar.tsx +39 -9
- package/src/components/avatar/__tests__/Avatar.test.tsx +39 -29
- package/src/components/avatar/messages.ts +11 -0
- package/src/components/badgeable/Badgeable.scss +1 -1
- package/src/components/breadcrumb/Breadcrumb.js +1 -1
- package/src/components/breadcrumb/__tests__/Breadcrumb.test.js +1 -1
- package/src/components/button-group/ButtonGroup.scss +2 -2
- package/src/components/checkbox/Checkbox.js.flow +7 -0
- package/src/components/checkbox/Checkbox.scss +2 -2
- package/src/components/checkbox/Checkbox.tsx +7 -0
- package/src/components/checkbox/__tests__/Checkbox.test.tsx +19 -2
- package/src/components/close-button/CloseButton.js.flow +2 -2
- package/src/components/close-button/CloseButton.tsx +2 -2
- package/src/components/contact-datalist-item/ContactDatalistItem.scss +1 -1
- package/src/components/date-picker/DatePicker.scss +1 -1
- package/src/components/date-picker/DatePicker.tsx +2 -2
- package/src/components/date-picker/__tests__/DatePicker.test.tsx +4 -4
- package/src/components/draft-js-editor/DraftJSEditor.scss +1 -1
- package/src/components/dropdown-menu/DropdownMenu.js +8 -2
- package/src/components/dropdown-menu/DropdownMenu.scss +6 -4
- package/src/components/dropdown-menu/__tests__/DropdownMenu.test.js +18 -0
- package/src/components/error-mask/ErrorMask.scss +1 -1
- package/src/components/flyout/Flyout.js +13 -0
- package/src/components/flyout/Flyout.scss +1 -1
- package/src/components/flyout/Overlay.js +2 -1
- package/src/components/flyout/__tests__/Flyout.test.js +22 -1
- package/src/components/flyout/__tests__/Overlay.test.js +1 -1
- package/src/components/grid-view/GridView.js +3 -2
- package/src/components/grid-view/GridViewSlider.js +5 -2
- package/src/components/grid-view/GridViewSlider.scss +0 -10
- package/src/components/grid-view/__tests__/GridViewSlider.test.js +35 -2
- package/src/components/grid-view/__tests__/__snapshots__/GridView.test.js.snap +2 -0
- package/src/components/grid-view/__tests__/__snapshots__/GridViewSlider.test.js.snap +38 -13
- package/src/components/inline-error/InlineError.stories.js +9 -0
- package/src/components/inline-error/InlineError.stories.md +3 -0
- package/src/components/inline-notice/InlineNotice.stories.js +59 -0
- package/src/components/inline-notice/InlineNotice.stories.md +1 -0
- package/src/components/label/InfoIconWithTooltip.tsx +2 -2
- package/src/components/label/Label.scss +1 -1
- package/src/components/label/__tests__/__snapshots__/InfoIconWithTooltip.test.tsx.snap +1 -1
- package/src/components/media-query/__tests__/withMediaQuery.test.js +1 -0
- package/src/components/media-query/stories/MediaQuery.stories.js +11 -2
- package/src/components/media-query/stories/MediaQuery.stories.md +10 -9
- package/src/components/media-query/types.js +1 -0
- package/src/components/media-query/useMediaQuery.js +3 -0
- package/src/components/menu/MenuHeader.scss +1 -1
- package/src/components/menu/SubmenuItem.tsx +4 -1
- package/src/components/modal/Modal.scss +15 -0
- package/src/components/modal/ModalDialog.js +44 -5
- package/src/components/modal/__tests__/ModalDialog.test.js +22 -1
- package/src/components/nav-sidebar/NavSidebar.scss +1 -1
- package/src/components/nav-sidebar/NavSidebar.stories.js +54 -0
- package/src/components/nav-sidebar/NavSidebar.stories.md +1 -0
- package/src/components/pill-cloud/PillCloud.stories.js +48 -0
- package/src/components/pill-cloud/PillCloud.stories.md +1 -0
- package/src/components/pill-selector-dropdown/PillSelector.js +26 -4
- package/src/components/pill-selector-dropdown/PillSelector.scss +4 -0
- package/src/components/pill-selector-dropdown/PillSelectorDropdown.js +1 -0
- package/src/components/pill-selector-dropdown/__tests__/PillSelector.test.js +1 -1
- package/src/components/pill-selector-dropdown/__tests__/PillSelectorDropdown.test.js +4 -4
- package/src/components/pill-selector-dropdown/__tests__/__snapshots__/PillSelector.test.js.snap +1 -1
- package/src/components/pill-selector-dropdown/__tests__/__snapshots__/PillSelectorDropdown.test.js.snap +1 -1
- package/src/components/pill-selector-dropdown/_mixins.scss +1 -1
- package/src/components/popper/PopperComponent.js +3 -2
- package/src/components/radio/RadioButton.scss +1 -1
- package/src/components/search-form/SearchForm.js +30 -6
- package/src/components/search-form/__tests__/SearchForm.test.js +1 -1
- package/src/components/select-button/SelectButton.js +23 -2
- package/src/components/select-button/__tests__/SelectButton.test.js +8 -0
- package/src/components/select-field/BaseSelectField.js +19 -2
- package/src/components/select-field/SelectField.scss +8 -1
- package/src/components/select-field/__tests__/BaseSelectField.test.js +9 -0
- package/src/components/selector-dropdown/SelectorDropdown.js +22 -5
- package/src/components/selector-dropdown/SelectorDropdown.scss +2 -2
- package/src/components/selector-dropdown/__tests__/SelectorDropdown.test.js +2 -1
- package/src/components/table/__tests__/makeSelectable.test.js +65 -3
- package/src/components/table/makeSelectable.js +33 -6
- package/src/components/text-area/TextArea.scss +1 -1
- package/src/components/text-input/TextInput.scss +1 -1
- package/src/components/text-input-with-copy-button/TextInputWithCopyButton.js +4 -1
- package/src/components/text-input-with-copy-button/TextInputWithCopyButton.scss +11 -7
- package/src/components/thumbnail-card/ThumbnailCard.scss +1 -1
- package/src/components/time/ReadableTime.stories.js +56 -0
- package/src/components/time/ReadableTime.stories.md +1 -0
- package/src/components/toggle/Toggle.js +16 -5
- package/src/components/toggle/Toggle.scss +3 -3
- package/src/components/toggle/__tests__/__snapshots__/Toggle.test.js.snap +2 -0
- package/src/components/tooltip/CloseButton.tsx +22 -0
- package/src/components/tooltip/Tooltip.tsx +3 -8
- package/src/components/tooltip/__tests__/CloseButton.test.tsx +32 -0
- package/src/components/tooltip/__tests__/Tooltip.test.tsx +21 -0
- package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +3 -10
- package/src/constants.js +7 -0
- package/src/elements/common/_variables.scss +7 -2
- package/src/elements/common/base.scss +14 -0
- package/src/elements/common/breadcrumbs/Breadcrumb.scss +1 -1
- package/src/elements/common/breadcrumbs/BreadcrumbDropdown.scss +1 -1
- package/src/elements/common/breadcrumbs/InlineBreadcrumbs.scss +2 -2
- package/src/elements/common/header/Header.js +7 -2
- package/src/elements/common/header/Logo.js +5 -1
- package/src/elements/common/header/__tests__/Header.test.js +40 -0
- package/src/elements/common/item/IconCell.js +55 -0
- package/src/elements/common/item/ItemDetails.scss +1 -1
- package/src/elements/common/item/__tests__/IconCell.test.js +88 -0
- package/src/elements/common/item/iconCellRenderer.js +6 -22
- package/src/elements/common/messages.js +35 -0
- package/src/elements/common/modal.scss +0 -2
- package/src/elements/common/share-access-select/ShareAccessSelect.scss +1 -1
- package/src/elements/common/sub-header/AddButton.js +2 -1
- package/src/elements/common/sub-header/Sort.js +7 -6
- package/src/elements/common/sub-header/SortButton.js +23 -10
- package/src/elements/common/sub-header/ViewModeChangeButton.js +3 -3
- package/src/elements/common/sub-header/__tests__/Sort.test.js +12 -62
- package/src/elements/common/sub-header/__tests__/SortButton.test.js +24 -0
- package/src/elements/common/sub-header/__tests__/SubHeaderRight.test.js +1 -1
- package/src/elements/content-explorer/Content.js +2 -1
- package/src/elements/content-explorer/ContentExplorer.js +50 -13
- package/src/elements/content-explorer/ItemGrid.js +60 -9
- package/src/elements/content-explorer/ItemGridThumbnail.js +5 -2
- package/src/elements/content-explorer/ItemList.js +4 -2
- package/src/elements/content-explorer/ItemList.scss +16 -8
- package/src/elements/content-explorer/MoreOptions.js +11 -4
- package/src/elements/content-explorer/__tests__/ContentExplorer.test.js +44 -0
- package/src/elements/content-explorer/__tests__/MoreOptions.test.js +30 -0
- package/src/elements/content-open-with/ContentOpenWith.scss +1 -1
- package/src/elements/content-picker/Footer.js +62 -51
- package/src/elements/content-picker/ItemList.scss +1 -1
- package/src/elements/content-picker/__tests__/Footer.test.js +17 -0
- package/src/elements/content-preview/ContentPreview.js +43 -6
- package/src/elements/content-preview/__tests__/ContentPreview.test.js +96 -0
- package/src/elements/content-preview/preview-header/PreviewHeader.scss +1 -1
- package/src/elements/content-sharing/ContentSharing.js +2 -2
- package/src/elements/content-sidebar/ActivitySidebar.js +262 -17
- package/src/elements/content-sidebar/ActivitySidebar.scss +7 -0
- package/src/elements/content-sidebar/ActivitySidebarFilter.js +64 -23
- package/src/elements/content-sidebar/AddTaskMenu.scss +1 -1
- package/src/elements/content-sidebar/SidebarContent.js +1 -1
- package/src/elements/content-sidebar/SidebarContent.scss +3 -3
- package/src/elements/content-sidebar/SidebarNav.js +3 -15
- package/src/elements/content-sidebar/SidebarNavSign.scss +3 -25
- package/src/elements/content-sidebar/SidebarNavSign.tsx +53 -55
- package/src/elements/content-sidebar/SidebarNavSignButton.scss +27 -0
- package/src/elements/content-sidebar/SidebarNavSignButton.tsx +73 -0
- package/src/elements/content-sidebar/__tests__/ActivitySidebar.test.js +545 -16
- package/src/elements/content-sidebar/__tests__/ActivitySidebarFilter.test.js +47 -18
- package/src/elements/content-sidebar/__tests__/SidebarNav.test.js +3 -3
- package/src/elements/content-sidebar/__tests__/SidebarNavSign.test.tsx +72 -52
- package/src/elements/content-sidebar/__tests__/SidebarNavSignButton.test.tsx +60 -0
- package/src/elements/content-sidebar/__tests__/__snapshots__/ActivitySidebar.test.js.snap +2 -0
- package/src/elements/content-sidebar/activity-feed/Avatar.js +5 -2
- package/src/elements/content-sidebar/activity-feed/__tests__/Avatar.test.js +0 -10
- package/src/elements/content-sidebar/activity-feed/__tests__/__snapshots__/Avatar.test.js.snap +13 -10
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +73 -28
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +80 -13
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.scss +11 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.scss +28 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.tsx +16 -2
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +48 -29
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +69 -6
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +42 -5
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +15 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +30 -5
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +4 -7
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActiveState.test.js +11 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityFeed.test.js +74 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityItem.test.tsx +20 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThread.test.js +8 -3
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadReplies.test.js +12 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadRepliesForm.test.js +20 -5
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActiveState.test.js.snap +7 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActivityFeed.test.js.snap +3 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +43 -13
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +26 -3
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +67 -56
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +1 -1
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +16 -51
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__mocks__/useAnnotationThread.js +19 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThread.test.js +12 -1
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadContent.test.js +18 -52
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadCreate.test.js +23 -54
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useAnnotationAPI.test.js +40 -3
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useAnnotationThread.test.js +429 -25
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useRepliesAPI.test.js +15 -13
- package/src/elements/content-sidebar/activity-feed/annotation-thread/errors.js +5 -4
- package/src/elements/content-sidebar/activity-feed/annotation-thread/types.js +7 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +32 -10
- package/src/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js +249 -55
- package/src/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +42 -83
- package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +27 -12
- package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.scss +11 -8
- package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityLink.scss +1 -1
- package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +3 -1
- package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.scss +5 -0
- package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivity.test.js +26 -0
- package/src/elements/content-sidebar/activity-feed/comment/BaseComment.js +456 -0
- package/src/elements/content-sidebar/activity-feed/comment/BaseComment.scss +30 -0
- package/src/elements/content-sidebar/activity-feed/comment/Comment.js +42 -5
- package/src/elements/content-sidebar/activity-feed/comment/Comment.scss +10 -0
- package/src/elements/content-sidebar/activity-feed/comment/CreateReply.js +72 -0
- package/src/elements/content-sidebar/activity-feed/comment/CreateReply.scss +21 -0
- package/src/elements/content-sidebar/activity-feed/comment/Replies.scss +41 -0
- package/src/elements/content-sidebar/activity-feed/comment/RepliesToggle.js +41 -0
- package/src/elements/content-sidebar/activity-feed/comment/RepliesToggle.scss +6 -0
- package/src/elements/content-sidebar/activity-feed/comment/__tests__/BaseComment.test.js +373 -0
- package/src/elements/content-sidebar/activity-feed/comment/__tests__/Comment.test.js +14 -6
- package/src/elements/content-sidebar/activity-feed/comment/__tests__/CreateReply.test.js +127 -0
- package/src/elements/content-sidebar/activity-feed/comment/__tests__/Replies.test.js +219 -0
- package/src/elements/content-sidebar/activity-feed/comment/__tests__/RepliesToggle.test.js +82 -0
- package/src/elements/content-sidebar/activity-feed/comment/__tests__/__snapshots__/Comment.test.js.snap +18 -4
- package/src/elements/content-sidebar/activity-feed/comment/messages.js +20 -0
- package/src/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +3 -3
- package/src/elements/content-sidebar/activity-feed/comment-form/CommentForm.scss +1 -1
- package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +1 -1
- package/src/elements/content-sidebar/activity-feed/common/activity-message/messages.js +2 -2
- package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +1 -1
- package/src/elements/content-sidebar/activity-feed/task-form/TaskForm.js +1 -0
- package/src/elements/content-sidebar/activity-feed/task-new/AssigneeDetails.scss +1 -1
- package/src/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js +11 -7
- package/src/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.scss +1 -5
- package/src/elements/content-sidebar/activity-feed/task-new/Task.js +1 -2
- package/src/elements/content-sidebar/activity-feed/task-new/Task.scss +1 -8
- package/src/elements/content-sidebar/activity-feed/task-new/__tests__/__snapshots__/Task.test.js.snap +1 -5
- package/src/elements/content-sidebar/messages.js +29 -4
- package/src/elements/content-sidebar/skills/keywords/__tests__/__snapshots__/EditableKeywords.test.js.snap +0 -6
- package/src/elements/content-sidebar/skills/timeline/Timeline.scss +1 -1
- package/src/elements/content-sidebar/skills/transcript/Transcript.scss +1 -1
- package/src/elements/content-sidebar/versions/VersionsGroup.scss +1 -1
- package/src/elements/content-sidebar/versions/VersionsItem.scss +3 -3
- package/src/elements/content-uploader/Footer.js +23 -3
- package/src/elements/content-uploader/Footer.scss +0 -1
- package/src/elements/content-uploader/ItemAction.js +6 -3
- package/src/elements/content-uploader/ItemRemove.js +18 -6
- package/src/elements/content-uploader/UploadInput.js +19 -9
- package/src/elements/content-uploader/__tests__/Footer.test.js +59 -0
- package/src/elements/content-uploader/__tests__/ItemAction.test.js +11 -1
- package/src/elements/content-uploader/__tests__/ItemRemove.test.js +22 -0
- package/src/elements/content-uploader/__tests__/__snapshots__/ItemAction.test.js.snap +36 -0
- package/src/elements/content-uploader/__tests__/__snapshots__/UploadInput.test.js.snap +4 -0
- package/src/features/advanced-content-insights/AdvancedContentInsightsToggle.scss +19 -0
- package/src/features/advanced-content-insights/AdvancedContentInsightsToggle.tsx +59 -0
- package/src/features/advanced-content-insights/__tests__/AdvancedContentInsightsToggle.test.tsx +33 -0
- package/src/features/advanced-content-insights/__tests__/__snapshots__/AdvancedContentInsightsToggle.test.tsx.snap +42 -0
- package/src/features/advanced-content-insights/messages.ts +22 -0
- package/src/features/classification/classificationColorsMap.js +1 -1
- package/src/features/collaborator-avatars/CollaboratorAvatarItem.js +11 -8
- package/src/features/collaborator-avatars/CollaboratorAvatars.scss +1 -1
- package/src/features/collaborator-avatars/CollaboratorList.js +3 -4
- package/src/features/collaborator-avatars/CollaboratorListItem.js +7 -13
- package/src/features/collaborator-avatars/CollaboratorListItem.scss +7 -3
- package/src/features/collaborator-avatars/__tests__/CollaboratorAvatarItem.test.js +6 -2
- package/src/features/collaborator-avatars/__tests__/__snapshots__/CollaboratorAvatarItem.test.js.snap +5 -12
- package/src/features/collaborator-avatars/__tests__/__snapshots__/CollaboratorList.test.js.snap +6 -8
- package/src/features/collaborator-avatars/__tests__/__snapshots__/CollaboratorListItem.test.js.snap +36 -40
- package/src/features/collapsible-sidebar/CollapsibleSidebar.js +5 -2
- package/src/features/collapsible-sidebar/CollapsibleSidebar.scss +4 -7
- package/src/features/collapsible-sidebar/CollapsibleSidebarLogo.js +15 -11
- package/src/features/collapsible-sidebar/__tests__/CollapsibleSidebar.test.js +1 -0
- package/src/features/collapsible-sidebar/__tests__/CollapsibleSidebarLogo.test.js +14 -0
- package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebar.test.js.snap +1 -1
- package/src/features/content-explorer/content-explorer/ContentExplorer.js +97 -20
- package/src/features/content-explorer/content-explorer/ContentExplorer.scss +67 -8
- package/src/features/content-explorer/content-explorer/ContentExplorerActionButtons.js +53 -13
- package/src/features/content-explorer/content-explorer/ContentExplorerFolderTreeBreadcrumbs.js +82 -0
- package/src/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +22 -7
- package/src/features/content-explorer/content-explorer/ContentExplorerIncludeSubfolders.js +30 -0
- package/src/features/content-explorer/content-explorer/ContentExplorerSelectAll.js +34 -20
- package/src/features/content-explorer/content-explorer/__tests__/ContentExplorer.test.js +28 -0
- package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerActionButtons.test.js +96 -8
- package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerFolderTreeBreadcrumbs.test.js +91 -0
- package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerHeaderActions.test.js +8 -0
- package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerIncludeSubfolders.test.js +50 -0
- package/src/features/content-explorer/content-explorer/__tests__/__snapshots__/ContentExplorer.test.js.snap +4 -0
- package/src/features/content-explorer/content-explorer/constants.js +6 -0
- package/src/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +13 -0
- package/src/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +31 -0
- package/src/features/content-explorer/item-list/ItemList.js +17 -1
- package/src/features/content-explorer/item-list/ItemList.scss +1 -1
- package/src/features/content-explorer/item-list/ItemListButton.js +10 -2
- package/src/features/content-explorer/item-list/ItemListIcon.js +5 -33
- package/src/features/content-explorer/item-list/ItemListName.js +3 -2
- package/src/features/content-explorer/item-list/__tests__/ItemList.test.js +72 -0
- package/src/features/content-explorer/item-list/__tests__/ItemListButton.test.js +8 -0
- package/src/features/content-explorer/item-list/__tests__/ItemListIcon.test.js +24 -18
- package/src/features/content-explorer/item-list/__tests__/__snapshots__/ItemListIcon.test.js.snap +37 -24
- package/src/features/content-explorer/messages.js +41 -24
- package/src/features/content-explorer/prop-types.js +2 -2
- package/src/features/content-insights/_mixins.scss +1 -1
- package/src/features/content-insights/charts/bar/Bar.tsx +24 -3
- package/src/features/content-insights/charts/bar/BarChart.tsx +10 -3
- package/src/features/content-insights/charts/bar/__tests__/Bar.test.tsx +51 -0
- package/src/features/content-insights/charts/bar/__tests__/BarChart.test.tsx +7 -1
- package/src/features/invite-collaborators-modal/InviteCollaboratorsModal.scss +1 -1
- package/src/features/message-center/components/templates/common/styles/MessageFooter.scss +1 -1
- package/src/features/metadata-based-view/IconWithTooltip.js +4 -4
- package/src/features/metadata-based-view/MetadataBasedItemList.scss +1 -1
- package/src/features/metadata-based-view/__tests__/__snapshots__/IconWithTooltip.test.js.snap +3 -3
- package/src/features/metadata-instance-editor/CascadePolicy.scss +1 -1
- package/src/features/metadata-instance-editor/TemplateDropdown.js +4 -10
- package/src/features/metadata-instance-editor/TemplateDropdown.scss +2 -2
- package/src/features/metadata-instance-editor/__tests__/__snapshots__/TemplateDropdown.test.js.snap +28 -7
- package/src/features/metadata-instance-fields/EnumMetadataField.scss +2 -2
- package/src/features/metadata-instance-fields/MultiSelectMetadataField.scss +1 -1
- package/src/features/metadata-instance-fields/ReadOnlyMetadataField.scss +2 -2
- package/src/features/presence/PresenceAvatarList.scss +1 -1
- package/src/features/presence/PresenceCollaborator.scss +1 -1
- package/src/features/query-bar/styles/Condition.scss +2 -2
- package/src/features/quick-search/QuickSearchItem.js +4 -3
- package/src/features/shared-link-settings-modal/ExpirationSection.js +4 -0
- package/src/features/shared-link-settings-modal/SharedLinkSettingsModal.js +9 -5
- package/src/features/shared-link-settings-modal/SharedLinkSettingsModal.scss +3 -3
- package/src/features/shared-link-settings-modal/VanityNameSection.js +2 -2
- package/src/features/shared-link-settings-modal/__tests__/ExpirationSection.test.js +9 -0
- package/src/features/shared-link-settings-modal/__tests__/SharedLinkSettingsModal.test.js +9 -4
- package/src/features/unified-share-modal/InviteePermissionsMenu.js +1 -0
- package/src/features/unified-share-modal/SharedLinkAccessMenu.js +1 -0
- package/src/features/unified-share-modal/SharedLinkPermissionMenu.js +1 -0
- package/src/features/unified-share-modal/SharedLinkSection.js +30 -38
- package/src/features/unified-share-modal/UnifiedShareForm.js +38 -25
- package/src/features/unified-share-modal/UnifiedShareModal.js +9 -1
- package/src/features/unified-share-modal/UnifiedShareModal.scss +24 -13
- package/src/features/unified-share-modal/__tests__/SharedLinkSection.test.js +19 -3
- package/src/features/unified-share-modal/__tests__/UnifiedShareForm.test.js +10 -0
- package/src/features/unified-share-modal/__tests__/UnifiedShareModal.test.js +9 -0
- package/src/features/unified-share-modal/__tests__/__snapshots__/InviteePermissionsMenu.test.js.snap +16 -0
- package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkAccessMenu.test.js.snap +6 -0
- package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkPermissionMenu.test.js.snap +6 -0
- package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkSection.test.js.snap +211 -313
- package/src/features/unified-share-modal/flowTypes.js +10 -2
- package/src/features/unified-share-modal/messages.js +17 -5
- package/src/features/virtualized-table/VirtualizedTable.scss +1 -1
- package/src/features/virtualized-table/__tests__/__snapshots__/BaseVirtualizedTable.test.js.snap +3 -0
- package/src/features/virtualized-table/__tests__/__snapshots__/DraggableVirtualizedTable.test.js.snap +3 -0
- package/src/features/virtualized-table/__tests__/__snapshots__/VirtualizedTable.test.js.snap +8 -0
- package/src/features/virtualized-table-renderers/_mixins.scss +1 -1
- package/src/icons/badges/MetadataDefaultBadge.js.flow +3 -3
- package/src/icons/badges/MetadataDefaultBadge.tsx +3 -3
- package/src/icons/badges/__tests__/__snapshots__/MetadataDefaultBadge.test.tsx.snap +2 -2
- package/src/icons/general/IconAnyTask.js.flow +2 -2
- package/src/icons/general/IconAnyTask.tsx +2 -2
- package/src/icons/general/IconEdit.js.flow +2 -1
- package/src/icons/general/IconEdit.tsx +2 -1
- package/src/icons/general/__tests__/__snapshots__/IconAnyTask.test.tsx.snap +1 -1
- package/src/icons/general/__tests__/__snapshots__/IconEdit.test.tsx.snap +2 -2
- package/src/icons/metadata-view/IconMetadataView.js.flow +2 -1
- package/src/icons/metadata-view/IconMetadataView.tsx +3 -1
- package/src/icons/metadata-view/__tests__/__snapshots__/IconMetadataView.test.tsx.snap +1 -1
- package/src/icons/two-toned/IconAnnotation.js.flow +27 -0
- package/src/icons/two-toned/IconAnnotation.tsx +26 -0
- package/src/icons/two-toned/_IconAnnotation.mixins.scss +9 -0
- package/src/icons/two-toned/__tests__/IconAnnotation.test.tsx +28 -0
- package/src/icons/two-toned/__tests__/__snapshots__/IconAnnotation.test.tsx.snap +28 -0
- package/src/styles/_deprecated.scss +1 -0
- package/src/styles/_inputs.scss +2 -3
- package/src/styles/colors.md +1 -1
- package/src/styles/common/_buttons.scss +2 -2
- package/src/styles/common/_forms.scss +2 -0
- package/src/styles/common/_links.scss +1 -1
- package/src/styles/constants/_colors.scss +1 -1
- package/src/styles/constants/_themes.scss +1 -1
- package/src/styles/typography.stories.scss +60 -0
- package/src/styles/typography.stories.tsx +70 -0
- package/src/styles/variables.js +2 -2
- package/src/styles/variables.json +2 -2
- package/src/styles/variables.ts +2 -2
- package/src/utils/__tests__/__snapshots__/createTheme.test.js.snap +4 -4
- package/src/utils/createTheme.js +2 -2
- package/es/elements/common/sub-header/Sort.scss +0 -8
- package/es/elements/content-sidebar/activity-feed/task-new/_mixins.scss +0 -10
- package/es/features/content-explorer/item-types.js +0 -6
- package/es/features/content-explorer/item-types.js.flow +0 -5
- package/es/features/content-explorer/item-types.js.map +0 -1
- package/src/components/inline-error/README.md +0 -10
- package/src/components/inline-notice/README.md +0 -57
- package/src/components/nav-sidebar/README.md +0 -57
- package/src/components/pill-cloud/README.md +0 -39
- package/src/components/time/README.md +0 -58
- package/src/elements/common/sub-header/Sort.scss +0 -8
- package/src/elements/content-sidebar/activity-feed/task-new/_mixins.scss +0 -10
- package/src/features/content-explorer/item-types.js +0 -5
|
@@ -27,6 +27,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
27
27
|
import * as React from 'react';
|
|
28
28
|
import getProp from 'lodash/get';
|
|
29
29
|
import noop from 'lodash/noop';
|
|
30
|
+
import throttle from 'lodash/throttle';
|
|
30
31
|
import { FormattedMessage } from 'react-intl';
|
|
31
32
|
import classNames from 'classnames';
|
|
32
33
|
import ActiveState from './ActiveState';
|
|
@@ -36,7 +37,7 @@ import InlineError from '../../../../components/inline-error/InlineError';
|
|
|
36
37
|
import LoadingIndicator from '../../../../components/loading-indicator/LoadingIndicator';
|
|
37
38
|
import messages from './messages';
|
|
38
39
|
import { collapseFeedState, ItemTypes } from './activityFeedUtils';
|
|
39
|
-
import { PERMISSION_CAN_CREATE_ANNOTATIONS } from '../../../../constants';
|
|
40
|
+
import { FEED_ITEM_TYPE_ANNOTATION, FEED_ITEM_TYPE_COMMENT, FEED_ITEM_TYPE_TASK, PERMISSION_CAN_CREATE_ANNOTATIONS } from '../../../../constants';
|
|
40
41
|
import { scrollIntoView } from '../../../../utils/dom';
|
|
41
42
|
import './ActivityFeed.scss';
|
|
42
43
|
|
|
@@ -59,7 +60,9 @@ function (_React$Component) {
|
|
|
59
60
|
_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ActivityFeed)).call.apply(_getPrototypeOf2, [this].concat(args)));
|
|
60
61
|
|
|
61
62
|
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
62
|
-
|
|
63
|
+
isScrolled: false,
|
|
64
|
+
isInputOpen: false,
|
|
65
|
+
selectedItemId: null
|
|
63
66
|
});
|
|
64
67
|
|
|
65
68
|
_defineProperty(_assertThisInitialized(_this), "activeFeedItemRef", React.createRef());
|
|
@@ -88,6 +91,20 @@ function (_React$Component) {
|
|
|
88
91
|
}
|
|
89
92
|
});
|
|
90
93
|
|
|
94
|
+
_defineProperty(_assertThisInitialized(_this), "handleFeedScroll", function (event) {
|
|
95
|
+
var target = event.target;
|
|
96
|
+
|
|
97
|
+
if (target instanceof Element) {
|
|
98
|
+
var scrollTop = target.scrollTop;
|
|
99
|
+
|
|
100
|
+
_this.setState({
|
|
101
|
+
isScrolled: scrollTop > 0
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
_defineProperty(_assertThisInitialized(_this), "throttledFeedScroll", throttle(_this.handleFeedScroll, 100));
|
|
107
|
+
|
|
91
108
|
_defineProperty(_assertThisInitialized(_this), "onKeyDown", function (event) {
|
|
92
109
|
var nativeEvent = event.nativeEvent;
|
|
93
110
|
nativeEvent.stopImmediatePropagation();
|
|
@@ -139,6 +156,40 @@ function (_React$Component) {
|
|
|
139
156
|
versionInfoHandler(data);
|
|
140
157
|
});
|
|
141
158
|
|
|
159
|
+
_defineProperty(_assertThisInitialized(_this), "setSelectedItem", function (itemId) {
|
|
160
|
+
var hasReplies = _this.props.hasReplies;
|
|
161
|
+
|
|
162
|
+
if (!hasReplies) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
_this.setState({
|
|
167
|
+
selectedItemId: itemId
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
_defineProperty(_assertThisInitialized(_this), "isFeedItemActive", function (_ref4) {
|
|
172
|
+
var id = _ref4.id,
|
|
173
|
+
type = _ref4.type;
|
|
174
|
+
var _this$props2 = _this.props,
|
|
175
|
+
activeFeedEntryId = _this$props2.activeFeedEntryId,
|
|
176
|
+
activeFeedEntryType = _this$props2.activeFeedEntryType;
|
|
177
|
+
var selectedItemId = _this.state.selectedItemId;
|
|
178
|
+
var isSelected = selectedItemId === id;
|
|
179
|
+
return selectedItemId ? isSelected : id === activeFeedEntryId && type === activeFeedEntryType;
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
_defineProperty(_assertThisInitialized(_this), "isCommentFeedItemActive", function (item) {
|
|
183
|
+
var activeFeedEntryId = _this.props.activeFeedEntryId;
|
|
184
|
+
var replies = item.replies;
|
|
185
|
+
|
|
186
|
+
var isActive = _this.isFeedItemActive(item);
|
|
187
|
+
|
|
188
|
+
return isActive || !!replies && replies.some(function (reply) {
|
|
189
|
+
return reply.id === activeFeedEntryId;
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
|
|
142
193
|
return _this;
|
|
143
194
|
}
|
|
144
195
|
|
|
@@ -153,9 +204,9 @@ function (_React$Component) {
|
|
|
153
204
|
var prevActiveFeedEntryId = prevProps.activeFeedEntryId,
|
|
154
205
|
prevCurrentUser = prevProps.currentUser,
|
|
155
206
|
prevFeedItems = prevProps.feedItems;
|
|
156
|
-
var _this$
|
|
157
|
-
currFeedItems = _this$
|
|
158
|
-
activeFeedEntryId = _this$
|
|
207
|
+
var _this$props3 = this.props,
|
|
208
|
+
currFeedItems = _this$props3.feedItems,
|
|
209
|
+
activeFeedEntryId = _this$props3.activeFeedEntryId;
|
|
159
210
|
var prevIsInputOpen = prevState.isInputOpen;
|
|
160
211
|
var currIsInputOpen = this.state.isInputOpen;
|
|
161
212
|
var hasLoaded = this.hasLoaded(prevCurrentUser, prevFeedItems);
|
|
@@ -202,52 +253,66 @@ function (_React$Component) {
|
|
|
202
253
|
value: function render() {
|
|
203
254
|
var _this2 = this;
|
|
204
255
|
|
|
205
|
-
var _this$
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
hasReplies = _this$
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
256
|
+
var _this$props4 = this.props,
|
|
257
|
+
activeFeedEntryType = _this$props4.activeFeedEntryType,
|
|
258
|
+
activityFeedError = _this$props4.activityFeedError,
|
|
259
|
+
approverSelectorContacts = _this$props4.approverSelectorContacts,
|
|
260
|
+
currentUser = _this$props4.currentUser,
|
|
261
|
+
feedItems = _this$props4.feedItems,
|
|
262
|
+
file = _this$props4.file,
|
|
263
|
+
getApproverWithQuery = _this$props4.getApproverWithQuery,
|
|
264
|
+
getAvatarUrl = _this$props4.getAvatarUrl,
|
|
265
|
+
getMentionWithQuery = _this$props4.getMentionWithQuery,
|
|
266
|
+
getUserProfileUrl = _this$props4.getUserProfileUrl,
|
|
267
|
+
hasNewThreadedReplies = _this$props4.hasNewThreadedReplies,
|
|
268
|
+
hasReplies = _this$props4.hasReplies,
|
|
269
|
+
hasVersions = _this$props4.hasVersions,
|
|
270
|
+
isDisabled = _this$props4.isDisabled,
|
|
271
|
+
mentionSelectorContacts = _this$props4.mentionSelectorContacts,
|
|
272
|
+
contactsLoaded = _this$props4.contactsLoaded,
|
|
273
|
+
onAnnotationDelete = _this$props4.onAnnotationDelete,
|
|
274
|
+
onAnnotationEdit = _this$props4.onAnnotationEdit,
|
|
275
|
+
onAnnotationSelect = _this$props4.onAnnotationSelect,
|
|
276
|
+
onAnnotationStatusChange = _this$props4.onAnnotationStatusChange,
|
|
277
|
+
onAppActivityDelete = _this$props4.onAppActivityDelete,
|
|
278
|
+
onCommentCreate = _this$props4.onCommentCreate,
|
|
279
|
+
onCommentDelete = _this$props4.onCommentDelete,
|
|
280
|
+
onCommentUpdate = _this$props4.onCommentUpdate,
|
|
281
|
+
onHideReplies = _this$props4.onHideReplies,
|
|
282
|
+
onReplyCreate = _this$props4.onReplyCreate,
|
|
283
|
+
onReplyDelete = _this$props4.onReplyDelete,
|
|
284
|
+
onReplyUpdate = _this$props4.onReplyUpdate,
|
|
285
|
+
onShowReplies = _this$props4.onShowReplies,
|
|
286
|
+
onTaskAssignmentUpdate = _this$props4.onTaskAssignmentUpdate,
|
|
287
|
+
onTaskDelete = _this$props4.onTaskDelete,
|
|
288
|
+
onTaskModalClose = _this$props4.onTaskModalClose,
|
|
289
|
+
onTaskUpdate = _this$props4.onTaskUpdate,
|
|
290
|
+
onTaskView = _this$props4.onTaskView,
|
|
291
|
+
onVersionHistoryClick = _this$props4.onVersionHistoryClick,
|
|
292
|
+
translations = _this$props4.translations;
|
|
293
|
+
var _this$state = this.state,
|
|
294
|
+
isInputOpen = _this$state.isInputOpen,
|
|
295
|
+
isScrolled = _this$state.isScrolled;
|
|
296
|
+
var currentFileVersionId = getProp(file, 'file_version.id');
|
|
242
297
|
var hasAnnotationCreatePermission = getProp(file, ['permissions', PERMISSION_CAN_CREATE_ANNOTATIONS], false);
|
|
243
298
|
var hasCommentPermission = getProp(file, 'permissions.can_comment', false);
|
|
244
299
|
var showCommentForm = !!(currentUser && hasCommentPermission && onCommentCreate && feedItems);
|
|
245
300
|
var isEmpty = this.isEmpty(this.props);
|
|
246
301
|
var isLoading = !this.hasLoaded();
|
|
247
|
-
var
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
302
|
+
var activeFeedItem = Array.isArray(feedItems) && feedItems.find(function (item) {
|
|
303
|
+
switch (item.type) {
|
|
304
|
+
case FEED_ITEM_TYPE_ANNOTATION:
|
|
305
|
+
return _this2.isCommentFeedItemActive(item);
|
|
306
|
+
|
|
307
|
+
case FEED_ITEM_TYPE_COMMENT:
|
|
308
|
+
return _this2.isCommentFeedItemActive(item);
|
|
309
|
+
|
|
310
|
+
case FEED_ITEM_TYPE_TASK:
|
|
311
|
+
return _this2.isFeedItemActive(item);
|
|
312
|
+
|
|
313
|
+
default:
|
|
314
|
+
return false;
|
|
315
|
+
}
|
|
251
316
|
});
|
|
252
317
|
var errorMessageByEntryType = {
|
|
253
318
|
annotation: messages.annotationMissingError,
|
|
@@ -255,26 +320,27 @@ function (_React$Component) {
|
|
|
255
320
|
task: messages.taskMissingError
|
|
256
321
|
};
|
|
257
322
|
var inlineFeedItemErrorMessage = activeFeedEntryType ? errorMessageByEntryType[activeFeedEntryType] : undefined;
|
|
258
|
-
var isInlineFeedItemErrorVisible = !isLoading && activeFeedEntryType && !
|
|
259
|
-
|
|
260
|
-
return (// eslint-disable-next-line
|
|
323
|
+
var isInlineFeedItemErrorVisible = !isLoading && activeFeedEntryType && !activeFeedItem;
|
|
324
|
+
return (// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
261
325
|
React.createElement("div", {
|
|
262
|
-
className:
|
|
326
|
+
className: classNames('bcs-activity-feed', {
|
|
327
|
+
'bcs-is-scrolled': isScrolled
|
|
328
|
+
}),
|
|
263
329
|
"data-testid": "activityfeed",
|
|
264
330
|
onKeyDown: this.onKeyDown
|
|
265
331
|
}, React.createElement("div", {
|
|
266
332
|
ref: function ref(_ref5) {
|
|
267
333
|
_this2.feedContainer = _ref5;
|
|
268
334
|
},
|
|
269
|
-
className: "bcs-activity-feed-items-container"
|
|
335
|
+
className: "bcs-activity-feed-items-container",
|
|
336
|
+
onScroll: this.throttledFeedScroll
|
|
270
337
|
}, isLoading && React.createElement("div", {
|
|
271
338
|
className: "bcs-activity-feed-loading-state"
|
|
272
339
|
}, React.createElement(LoadingIndicator, null)), isEmpty && !isLoading && React.createElement(EmptyState, {
|
|
273
340
|
showAnnotationMessage: hasAnnotationCreatePermission,
|
|
274
341
|
showCommentMessage: showCommentForm
|
|
275
342
|
}), !isEmpty && !isLoading && React.createElement(ActiveState, _extends({}, activityFeedError, {
|
|
276
|
-
|
|
277
|
-
activeFeedEntryType: activeFeedEntryType,
|
|
343
|
+
activeFeedItem: activeFeedItem,
|
|
278
344
|
activeFeedItemRef: this.activeFeedItemRef,
|
|
279
345
|
approverSelectorContacts: approverSelectorContacts,
|
|
280
346
|
currentFileVersionId: currentFileVersionId,
|
|
@@ -283,7 +349,9 @@ function (_React$Component) {
|
|
|
283
349
|
getAvatarUrl: getAvatarUrl,
|
|
284
350
|
getMentionWithQuery: getMentionWithQuery,
|
|
285
351
|
getUserProfileUrl: getUserProfileUrl,
|
|
352
|
+
hasNewThreadedReplies: hasNewThreadedReplies,
|
|
286
353
|
hasReplies: hasReplies,
|
|
354
|
+
hasVersions: hasVersions,
|
|
287
355
|
isDisabled: isDisabled,
|
|
288
356
|
items: collapseFeedState(feedItems),
|
|
289
357
|
mentionSelectorContacts: mentionSelectorContacts,
|
|
@@ -294,6 +362,7 @@ function (_React$Component) {
|
|
|
294
362
|
onAppActivityDelete: onAppActivityDelete,
|
|
295
363
|
onCommentDelete: hasCommentPermission ? onCommentDelete : noop,
|
|
296
364
|
onCommentEdit: hasCommentPermission ? onCommentUpdate : noop,
|
|
365
|
+
onCommentSelect: this.setSelectedItem,
|
|
297
366
|
onHideReplies: onHideReplies,
|
|
298
367
|
onReplyCreate: hasCommentPermission ? onReplyCreate : noop,
|
|
299
368
|
onReplyDelete: hasCommentPermission ? onReplyDelete : noop,
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import getProp from 'lodash/get';
|
|
8
8
|
import noop from 'lodash/noop';
|
|
9
|
+
import throttle from 'lodash/throttle';
|
|
9
10
|
import { FormattedMessage } from 'react-intl';
|
|
10
11
|
import classNames from 'classnames';
|
|
11
12
|
import ActiveState from './ActiveState';
|
|
@@ -15,7 +16,12 @@ import InlineError from '../../../../components/inline-error/InlineError';
|
|
|
15
16
|
import LoadingIndicator from '../../../../components/loading-indicator/LoadingIndicator';
|
|
16
17
|
import messages from './messages';
|
|
17
18
|
import { collapseFeedState, ItemTypes } from './activityFeedUtils';
|
|
18
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
FEED_ITEM_TYPE_ANNOTATION,
|
|
21
|
+
FEED_ITEM_TYPE_COMMENT,
|
|
22
|
+
FEED_ITEM_TYPE_TASK,
|
|
23
|
+
PERMISSION_CAN_CREATE_ANNOTATIONS,
|
|
24
|
+
} from '../../../../constants';
|
|
19
25
|
import { scrollIntoView } from '../../../../utils/dom';
|
|
20
26
|
import type {
|
|
21
27
|
Annotation,
|
|
@@ -23,9 +29,10 @@ import type {
|
|
|
23
29
|
BoxCommentPermission,
|
|
24
30
|
Comment,
|
|
25
31
|
CommentFeedItemType,
|
|
26
|
-
FocusableFeedItemType,
|
|
27
|
-
FeedItems,
|
|
28
32
|
FeedItemStatus,
|
|
33
|
+
FeedItems,
|
|
34
|
+
FocusableFeedItemType,
|
|
35
|
+
Task,
|
|
29
36
|
} from '../../../../common/types/feed';
|
|
30
37
|
import type { SelectorItems, User, GroupMini, BoxItem } from '../../../../common/types/core';
|
|
31
38
|
import type { Errors, GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
|
|
@@ -45,7 +52,9 @@ type Props = {
|
|
|
45
52
|
getAvatarUrl: GetAvatarUrlCallback,
|
|
46
53
|
getMentionWithQuery?: Function,
|
|
47
54
|
getUserProfileUrl?: GetProfileUrlCallback,
|
|
55
|
+
hasNewThreadedReplies?: boolean,
|
|
48
56
|
hasReplies?: boolean,
|
|
57
|
+
hasVersions?: boolean,
|
|
49
58
|
isDisabled?: boolean,
|
|
50
59
|
mentionSelectorContacts?: SelectorItems<User>,
|
|
51
60
|
onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,
|
|
@@ -88,11 +97,15 @@ type Props = {
|
|
|
88
97
|
|
|
89
98
|
type State = {
|
|
90
99
|
isInputOpen: boolean,
|
|
100
|
+
isScrolled: boolean,
|
|
101
|
+
selectedItemId: string | null,
|
|
91
102
|
};
|
|
92
103
|
|
|
93
104
|
class ActivityFeed extends React.Component<Props, State> {
|
|
94
105
|
state = {
|
|
106
|
+
isScrolled: false,
|
|
95
107
|
isInputOpen: false,
|
|
108
|
+
selectedItemId: null,
|
|
96
109
|
};
|
|
97
110
|
|
|
98
111
|
activeFeedItemRef = React.createRef<null | HTMLElement>();
|
|
@@ -179,6 +192,16 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
179
192
|
}
|
|
180
193
|
};
|
|
181
194
|
|
|
195
|
+
handleFeedScroll = (event: UIEvent): void => {
|
|
196
|
+
const { target } = event;
|
|
197
|
+
if (target instanceof Element) {
|
|
198
|
+
const { scrollTop } = target;
|
|
199
|
+
this.setState({ isScrolled: scrollTop > 0 });
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
throttledFeedScroll = throttle(this.handleFeedScroll, 100);
|
|
204
|
+
|
|
182
205
|
onKeyDown = (event: SyntheticKeyboardEvent<>): void => {
|
|
183
206
|
const { nativeEvent } = event;
|
|
184
207
|
nativeEvent.stopImmediatePropagation();
|
|
@@ -224,9 +247,33 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
224
247
|
versionInfoHandler(data);
|
|
225
248
|
};
|
|
226
249
|
|
|
250
|
+
setSelectedItem = (itemId: string | null) => {
|
|
251
|
+
const { hasReplies } = this.props;
|
|
252
|
+
if (!hasReplies) {
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
this.setState({ selectedItemId: itemId });
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
isFeedItemActive = <T, U: { id: string, type: T }>({ id, type }: U): boolean => {
|
|
259
|
+
const { activeFeedEntryId, activeFeedEntryType } = this.props;
|
|
260
|
+
const { selectedItemId } = this.state;
|
|
261
|
+
|
|
262
|
+
const isSelected = selectedItemId === id;
|
|
263
|
+
|
|
264
|
+
return selectedItemId ? isSelected : id === activeFeedEntryId && type === activeFeedEntryType;
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
isCommentFeedItemActive = <T, U: { id: string, replies?: Array<Comment>, type: T }>(item: U): boolean => {
|
|
268
|
+
const { activeFeedEntryId } = this.props;
|
|
269
|
+
const { replies } = item;
|
|
270
|
+
|
|
271
|
+
const isActive = this.isFeedItemActive<T, U>(item);
|
|
272
|
+
return isActive || (!!replies && replies.some(reply => reply.id === activeFeedEntryId));
|
|
273
|
+
};
|
|
274
|
+
|
|
227
275
|
render(): React.Node {
|
|
228
276
|
const {
|
|
229
|
-
activeFeedEntryId,
|
|
230
277
|
activeFeedEntryType,
|
|
231
278
|
activityFeedError,
|
|
232
279
|
approverSelectorContacts,
|
|
@@ -237,7 +284,9 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
237
284
|
getAvatarUrl,
|
|
238
285
|
getMentionWithQuery,
|
|
239
286
|
getUserProfileUrl,
|
|
287
|
+
hasNewThreadedReplies,
|
|
240
288
|
hasReplies,
|
|
289
|
+
hasVersions,
|
|
241
290
|
isDisabled,
|
|
242
291
|
mentionSelectorContacts,
|
|
243
292
|
contactsLoaded,
|
|
@@ -262,7 +311,8 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
262
311
|
onVersionHistoryClick,
|
|
263
312
|
translations,
|
|
264
313
|
} = this.props;
|
|
265
|
-
const { isInputOpen } = this.state;
|
|
314
|
+
const { isInputOpen, isScrolled } = this.state;
|
|
315
|
+
const currentFileVersionId = getProp(file, 'file_version.id');
|
|
266
316
|
const hasAnnotationCreatePermission = getProp(file, ['permissions', PERMISSION_CAN_CREATE_ANNOTATIONS], false);
|
|
267
317
|
const hasCommentPermission = getProp(file, 'permissions.can_comment', false);
|
|
268
318
|
const showCommentForm = !!(currentUser && hasCommentPermission && onCommentCreate && feedItems);
|
|
@@ -270,9 +320,20 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
270
320
|
const isEmpty = this.isEmpty(this.props);
|
|
271
321
|
const isLoading = !this.hasLoaded();
|
|
272
322
|
|
|
273
|
-
const
|
|
323
|
+
const activeFeedItem =
|
|
274
324
|
Array.isArray(feedItems) &&
|
|
275
|
-
feedItems.find(
|
|
325
|
+
feedItems.find(item => {
|
|
326
|
+
switch (item.type) {
|
|
327
|
+
case FEED_ITEM_TYPE_ANNOTATION:
|
|
328
|
+
return this.isCommentFeedItemActive<typeof FEED_ITEM_TYPE_ANNOTATION, Annotation>(item);
|
|
329
|
+
case FEED_ITEM_TYPE_COMMENT:
|
|
330
|
+
return this.isCommentFeedItemActive<typeof FEED_ITEM_TYPE_COMMENT, Comment>(item);
|
|
331
|
+
case FEED_ITEM_TYPE_TASK:
|
|
332
|
+
return this.isFeedItemActive<typeof FEED_ITEM_TYPE_TASK, Task>(item);
|
|
333
|
+
default:
|
|
334
|
+
return false;
|
|
335
|
+
}
|
|
336
|
+
});
|
|
276
337
|
|
|
277
338
|
const errorMessageByEntryType = {
|
|
278
339
|
annotation: messages.annotationMissingError,
|
|
@@ -284,17 +345,21 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
284
345
|
? errorMessageByEntryType[activeFeedEntryType]
|
|
285
346
|
: undefined;
|
|
286
347
|
|
|
287
|
-
const isInlineFeedItemErrorVisible = !isLoading && activeFeedEntryType && !
|
|
288
|
-
const currentFileVersionId = getProp(file, 'file_version.id');
|
|
348
|
+
const isInlineFeedItemErrorVisible = !isLoading && activeFeedEntryType && !activeFeedItem;
|
|
289
349
|
|
|
290
350
|
return (
|
|
291
|
-
// eslint-disable-next-line
|
|
292
|
-
<div
|
|
351
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
352
|
+
<div
|
|
353
|
+
className={classNames('bcs-activity-feed', { 'bcs-is-scrolled': isScrolled })}
|
|
354
|
+
data-testid="activityfeed"
|
|
355
|
+
onKeyDown={this.onKeyDown}
|
|
356
|
+
>
|
|
293
357
|
<div
|
|
294
358
|
ref={ref => {
|
|
295
359
|
this.feedContainer = ref;
|
|
296
360
|
}}
|
|
297
361
|
className="bcs-activity-feed-items-container"
|
|
362
|
+
onScroll={this.throttledFeedScroll}
|
|
298
363
|
>
|
|
299
364
|
{isLoading && (
|
|
300
365
|
<div className="bcs-activity-feed-loading-state">
|
|
@@ -311,8 +376,7 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
311
376
|
{!isEmpty && !isLoading && (
|
|
312
377
|
<ActiveState
|
|
313
378
|
{...activityFeedError}
|
|
314
|
-
|
|
315
|
-
activeFeedEntryType={activeFeedEntryType}
|
|
379
|
+
activeFeedItem={activeFeedItem}
|
|
316
380
|
activeFeedItemRef={this.activeFeedItemRef}
|
|
317
381
|
approverSelectorContacts={approverSelectorContacts}
|
|
318
382
|
currentFileVersionId={currentFileVersionId}
|
|
@@ -321,7 +385,9 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
321
385
|
getAvatarUrl={getAvatarUrl}
|
|
322
386
|
getMentionWithQuery={getMentionWithQuery}
|
|
323
387
|
getUserProfileUrl={getUserProfileUrl}
|
|
388
|
+
hasNewThreadedReplies={hasNewThreadedReplies}
|
|
324
389
|
hasReplies={hasReplies}
|
|
390
|
+
hasVersions={hasVersions}
|
|
325
391
|
isDisabled={isDisabled}
|
|
326
392
|
items={collapseFeedState(feedItems)}
|
|
327
393
|
mentionSelectorContacts={mentionSelectorContacts}
|
|
@@ -332,6 +398,7 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
332
398
|
onAppActivityDelete={onAppActivityDelete}
|
|
333
399
|
onCommentDelete={hasCommentPermission ? onCommentDelete : noop}
|
|
334
400
|
onCommentEdit={hasCommentPermission ? onCommentUpdate : noop}
|
|
401
|
+
onCommentSelect={this.setSelectedItem}
|
|
335
402
|
onHideReplies={onHideReplies}
|
|
336
403
|
onReplyCreate={hasCommentPermission ? onReplyCreate : noop}
|
|
337
404
|
onReplyDelete={hasCommentPermission ? onReplyDelete : noop}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js"],"names":["React","getProp","noop","FormattedMessage","classNames","ActiveState","CommentForm","EmptyState","InlineError","LoadingIndicator","messages","collapseFeedState","ItemTypes","PERMISSION_CAN_CREATE_ANNOTATIONS","scrollIntoView","ActivityFeed","isInputOpen","createRef","props","feedItems","undefined","length","type","fileVersion","prevCurrentUser","prevFeedItems","currentUser","feedContainer","scrollTop","scrollHeight","event","nativeEvent","stopImmediatePropagation","resetFeedScroll","setState","text","hasMention","onCommentCreate","commentFormSubmitHandler","assignees","dueAt","onTaskCreate","data","versionInfoHandler","onVersionHistoryClick","prevProps","prevState","prevActiveFeedEntryId","activeFeedEntryId","currFeedItems","prevIsInputOpen","currIsInputOpen","state","hasLoaded","hasMoreItems","didLoadFeedItems","hasInputOpened","hasActiveFeedEntryIdChanged","scrollToActiveFeedItemOrErrorMessage","activeFeedItemRef","current","activeFeedEntryType","activityFeedError","approverSelectorContacts","file","getApproverWithQuery","getAvatarUrl","getMentionWithQuery","getUserProfileUrl","hasReplies","isDisabled","mentionSelectorContacts","contactsLoaded","onAnnotationDelete","onAnnotationEdit","onAnnotationSelect","onAnnotationStatusChange","onAppActivityDelete","onCommentDelete","onCommentUpdate","onHideReplies","onReplyCreate","onReplyDelete","onReplyUpdate","onShowReplies","onTaskAssignmentUpdate","onTaskDelete","onTaskModalClose","onTaskUpdate","onTaskView","translations","hasAnnotationCreatePermission","hasCommentPermission","showCommentForm","isEmpty","isLoading","activeEntry","Array","isArray","find","id","errorMessageByEntryType","annotation","annotationMissingError","comment","commentMissingError","task","taskMissingError","inlineFeedItemErrorMessage","isInlineFeedItemErrorVisible","currentFileVersionId","onKeyDown","ref","openVersionHistoryPopup","feedInlineErrorTitle","commentFormCancelHandler","commentFormFocusHandler","Component"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Component for Activity feed\n */\n\nimport * as React from 'react';\nimport getProp from 'lodash/get';\nimport noop from 'lodash/noop';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport ActiveState from './ActiveState';\nimport CommentForm from '../comment-form';\nimport EmptyState from './EmptyState';\nimport InlineError from '../../../../components/inline-error/InlineError';\nimport LoadingIndicator from '../../../../components/loading-indicator/LoadingIndicator';\nimport messages from './messages';\nimport { collapseFeedState, ItemTypes } from './activityFeedUtils';\nimport { PERMISSION_CAN_CREATE_ANNOTATIONS } from '../../../../constants';\nimport { scrollIntoView } from '../../../../utils/dom';\nimport type {\n Annotation,\n AnnotationPermission,\n BoxCommentPermission,\n Comment,\n CommentFeedItemType,\n FocusableFeedItemType,\n FeedItems,\n FeedItemStatus,\n} from '../../../../common/types/feed';\nimport type { SelectorItems, User, GroupMini, BoxItem } from '../../../../common/types/core';\nimport type { Errors, GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations } from '../../flowTypes';\nimport './ActivityFeed.scss';\n\ntype Props = {\n activeFeedEntryId?: string,\n activeFeedEntryType?: FocusableFeedItemType,\n activityFeedError: ?Errors,\n approverSelectorContacts?: SelectorItems<User | GroupMini>,\n contactsLoaded?: boolean,\n currentUser?: User,\n feedItems?: FeedItems,\n file: BoxItem,\n getApproverWithQuery?: Function,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n getUserProfileUrl?: GetProfileUrlCallback,\n hasReplies?: boolean,\n isDisabled?: boolean,\n mentionSelectorContacts?: SelectorItems<User>,\n onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,\n onAnnotationEdit?: (id: string, text: string, permissions: AnnotationPermission) => void,\n onAnnotationSelect?: (annotation: Annotation) => void,\n onAnnotationStatusChange?: (id: string, status: FeedItemStatus, permissions: AnnotationPermission) => void,\n onAppActivityDelete?: Function,\n onCommentCreate?: Function,\n onCommentDelete?: Function,\n onCommentUpdate?: (\n id: string,\n text?: string,\n status?: FeedItemStatus,\n hasMention: boolean,\n permissions: BoxCommentPermission,\n onSuccess: ?Function,\n onError: ?Function,\n ) => void,\n onHideReplies?: (id: string, replies: Array<Comment>) => void,\n onReplyCreate?: (parentId: string, parentType: CommentFeedItemType, text: string) => void,\n onReplyDelete?: ({ id: string, parentId: string, permissions: BoxCommentPermission }) => void,\n onReplyUpdate?: (\n id: string,\n parentId: string,\n text: string,\n permissions: BoxCommentPermission,\n onSuccess: ?Function,\n onError: ?Function,\n ) => void,\n onShowReplies?: (id: string, type: CommentFeedItemType) => void,\n onTaskAssignmentUpdate?: Function,\n onTaskCreate?: Function,\n onTaskDelete?: Function,\n onTaskModalClose?: Function,\n onTaskUpdate?: Function,\n onTaskView?: Function,\n onVersionHistoryClick?: Function,\n translations?: Translations,\n};\n\ntype State = {\n isInputOpen: boolean,\n};\n\nclass ActivityFeed extends React.Component<Props, State> {\n state = {\n isInputOpen: false,\n };\n\n activeFeedItemRef = React.createRef<null | HTMLElement>();\n\n feedContainer: null | HTMLElement;\n\n componentDidMount() {\n this.resetFeedScroll();\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n const {\n activeFeedEntryId: prevActiveFeedEntryId,\n currentUser: prevCurrentUser,\n feedItems: prevFeedItems,\n } = prevProps;\n const { feedItems: currFeedItems, activeFeedEntryId } = this.props;\n const { isInputOpen: prevIsInputOpen } = prevState;\n const { isInputOpen: currIsInputOpen } = this.state;\n\n const hasLoaded = this.hasLoaded(prevCurrentUser, prevFeedItems);\n const hasMoreItems = prevFeedItems && currFeedItems && prevFeedItems.length < currFeedItems.length;\n const didLoadFeedItems = prevFeedItems === undefined && currFeedItems !== undefined;\n const hasInputOpened = currIsInputOpen !== prevIsInputOpen;\n const hasActiveFeedEntryIdChanged = activeFeedEntryId !== prevActiveFeedEntryId;\n\n if ((hasLoaded || hasMoreItems || didLoadFeedItems || hasInputOpened) && activeFeedEntryId === undefined) {\n this.resetFeedScroll();\n }\n\n if (didLoadFeedItems || hasActiveFeedEntryIdChanged) {\n this.scrollToActiveFeedItemOrErrorMessage();\n }\n }\n\n scrollToActiveFeedItemOrErrorMessage() {\n const { current: activeFeedItemRef } = this.activeFeedItemRef;\n const { activeFeedEntryId } = this.props;\n\n // if there is no active item, do not scroll\n if (!activeFeedEntryId) {\n return;\n }\n\n // if there was supposed to be an active feed item but the feed item does not exist\n // scroll to the bottom to show the inline error message\n if (activeFeedItemRef === null) {\n this.resetFeedScroll();\n return;\n }\n\n scrollIntoView(activeFeedItemRef);\n }\n\n /**\n * Detects whether or not the empty state should be shown.\n * @param {object} currentUser - The user that is logged into the account\n * @param {object} feedItems - Items in the activity feed\n */\n isEmpty = ({ feedItems }: Props = this.props): boolean => {\n if (feedItems === undefined) {\n return false;\n }\n return feedItems.length === 0 || (feedItems.length === 1 && feedItems[0].type === ItemTypes.fileVersion);\n };\n\n /**\n * Determines whether currentUser and feedItems have loaded.\n * @param prevCurrentUser - The previous value of the currentUser prop\n * @param prevFeedItems - The previous value of the feedItems prop\n * @returns {boolean}\n */\n hasLoaded = (prevCurrentUser?: User, prevFeedItems?: FeedItems): boolean => {\n const { currentUser, feedItems } = this.props;\n return currentUser !== undefined && feedItems !== undefined && (!prevCurrentUser || !prevFeedItems);\n };\n\n /**\n * Scrolls the container to the bottom\n */\n resetFeedScroll = () => {\n if (this.feedContainer) {\n this.feedContainer.scrollTop = this.feedContainer.scrollHeight;\n }\n };\n\n onKeyDown = (event: SyntheticKeyboardEvent<>): void => {\n const { nativeEvent } = event;\n nativeEvent.stopImmediatePropagation();\n };\n\n commentFormFocusHandler = (): void => {\n this.resetFeedScroll();\n this.setState({ isInputOpen: true });\n };\n\n commentFormCancelHandler = (): void => this.setState({ isInputOpen: false });\n\n commentFormSubmitHandler = (): void => this.setState({ isInputOpen: false });\n\n onCommentCreate = ({ text, hasMention }: { hasMention: boolean, text: string }) => {\n const { onCommentCreate = noop } = this.props;\n onCommentCreate(text, hasMention);\n this.commentFormSubmitHandler();\n };\n\n /**\n * Creates a task.\n *\n * @param {string} text - Task text\n * @param {Array} assignees - List of assignees\n * @param {number} dueAt - Task's due date\n * @return {void}\n */\n onTaskCreate = ({ text, assignees, dueAt }: { assignees: SelectorItems<>, dueAt: string, text: string }): void => {\n const { onTaskCreate = noop } = this.props;\n onTaskCreate(text, assignees, dueAt);\n this.commentFormSubmitHandler();\n };\n\n /**\n * Invokes version history popup handler.\n *\n * @param {Object} data - Version history data\n * @return {void}\n */\n openVersionHistoryPopup = (data: any): void => {\n const versionInfoHandler = this.props.onVersionHistoryClick || noop;\n versionInfoHandler(data);\n };\n\n render(): React.Node {\n const {\n activeFeedEntryId,\n activeFeedEntryType,\n activityFeedError,\n approverSelectorContacts,\n currentUser,\n feedItems,\n file,\n getApproverWithQuery,\n getAvatarUrl,\n getMentionWithQuery,\n getUserProfileUrl,\n hasReplies,\n isDisabled,\n mentionSelectorContacts,\n contactsLoaded,\n onAnnotationDelete,\n onAnnotationEdit,\n onAnnotationSelect,\n onAnnotationStatusChange,\n onAppActivityDelete,\n onCommentCreate,\n onCommentDelete,\n onCommentUpdate,\n onHideReplies,\n onReplyCreate,\n onReplyDelete,\n onReplyUpdate,\n onShowReplies,\n onTaskAssignmentUpdate,\n onTaskDelete,\n onTaskModalClose,\n onTaskUpdate,\n onTaskView,\n onVersionHistoryClick,\n translations,\n } = this.props;\n const { isInputOpen } = this.state;\n const hasAnnotationCreatePermission = getProp(file, ['permissions', PERMISSION_CAN_CREATE_ANNOTATIONS], false);\n const hasCommentPermission = getProp(file, 'permissions.can_comment', false);\n const showCommentForm = !!(currentUser && hasCommentPermission && onCommentCreate && feedItems);\n\n const isEmpty = this.isEmpty(this.props);\n const isLoading = !this.hasLoaded();\n\n const activeEntry =\n Array.isArray(feedItems) &&\n feedItems.find(({ id, type }) => id === activeFeedEntryId && type === activeFeedEntryType);\n\n const errorMessageByEntryType = {\n annotation: messages.annotationMissingError,\n comment: messages.commentMissingError,\n task: messages.taskMissingError,\n };\n\n const inlineFeedItemErrorMessage = activeFeedEntryType\n ? errorMessageByEntryType[activeFeedEntryType]\n : undefined;\n\n const isInlineFeedItemErrorVisible = !isLoading && activeFeedEntryType && !activeEntry;\n const currentFileVersionId = getProp(file, 'file_version.id');\n\n return (\n // eslint-disable-next-line\n <div className=\"bcs-activity-feed\" data-testid=\"activityfeed\" onKeyDown={this.onKeyDown}>\n <div\n ref={ref => {\n this.feedContainer = ref;\n }}\n className=\"bcs-activity-feed-items-container\"\n >\n {isLoading && (\n <div className=\"bcs-activity-feed-loading-state\">\n <LoadingIndicator />\n </div>\n )}\n\n {isEmpty && !isLoading && (\n <EmptyState\n showAnnotationMessage={hasAnnotationCreatePermission}\n showCommentMessage={showCommentForm}\n />\n )}\n {!isEmpty && !isLoading && (\n <ActiveState\n {...activityFeedError}\n activeFeedEntryId={activeFeedEntryId}\n activeFeedEntryType={activeFeedEntryType}\n activeFeedItemRef={this.activeFeedItemRef}\n approverSelectorContacts={approverSelectorContacts}\n currentFileVersionId={currentFileVersionId}\n currentUser={currentUser}\n getApproverWithQuery={getApproverWithQuery}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n hasReplies={hasReplies}\n isDisabled={isDisabled}\n items={collapseFeedState(feedItems)}\n mentionSelectorContacts={mentionSelectorContacts}\n onAnnotationDelete={onAnnotationDelete}\n onAnnotationEdit={onAnnotationEdit}\n onAnnotationSelect={onAnnotationSelect}\n onAnnotationStatusChange={onAnnotationStatusChange}\n onAppActivityDelete={onAppActivityDelete}\n onCommentDelete={hasCommentPermission ? onCommentDelete : noop}\n onCommentEdit={hasCommentPermission ? onCommentUpdate : noop}\n onHideReplies={onHideReplies}\n onReplyCreate={hasCommentPermission ? onReplyCreate : noop}\n onReplyDelete={hasCommentPermission ? onReplyDelete : noop}\n onReplyUpdate={hasCommentPermission ? onReplyUpdate : noop}\n onShowReplies={onShowReplies}\n onTaskAssignmentUpdate={onTaskAssignmentUpdate}\n onTaskDelete={onTaskDelete}\n onTaskEdit={onTaskUpdate}\n onTaskModalClose={onTaskModalClose}\n onTaskView={onTaskView}\n onVersionInfo={onVersionHistoryClick ? this.openVersionHistoryPopup : null}\n translations={translations}\n />\n )}\n {isInlineFeedItemErrorVisible && inlineFeedItemErrorMessage && (\n <InlineError\n title={<FormattedMessage {...messages.feedInlineErrorTitle} />}\n className=\"bcs-feedItemInlineError\"\n >\n <FormattedMessage {...inlineFeedItemErrorMessage} />\n </InlineError>\n )}\n </div>\n\n {showCommentForm ? (\n <CommentForm\n onSubmit={this.resetFeedScroll}\n isDisabled={isDisabled}\n mentionSelectorContacts={mentionSelectorContacts}\n contactsLoaded={contactsLoaded}\n className={classNames('bcs-activity-feed-comment-input', {\n 'bcs-is-disabled': isDisabled,\n })}\n createComment={hasCommentPermission ? this.onCommentCreate : noop}\n getMentionWithQuery={getMentionWithQuery}\n isOpen={isInputOpen}\n // $FlowFixMe\n user={currentUser}\n onCancel={this.commentFormCancelHandler}\n onFocus={this.commentFormFocusHandler}\n getAvatarUrl={getAvatarUrl}\n />\n ) : null}\n </div>\n );\n }\n}\n\nexport default ActivityFeed;\n"],"file":"ActivityFeed.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js"],"names":["React","getProp","noop","throttle","FormattedMessage","classNames","ActiveState","CommentForm","EmptyState","InlineError","LoadingIndicator","messages","collapseFeedState","ItemTypes","FEED_ITEM_TYPE_ANNOTATION","FEED_ITEM_TYPE_COMMENT","FEED_ITEM_TYPE_TASK","PERMISSION_CAN_CREATE_ANNOTATIONS","scrollIntoView","ActivityFeed","isScrolled","isInputOpen","selectedItemId","createRef","props","feedItems","undefined","length","type","fileVersion","prevCurrentUser","prevFeedItems","currentUser","feedContainer","scrollTop","scrollHeight","event","target","Element","setState","handleFeedScroll","nativeEvent","stopImmediatePropagation","resetFeedScroll","text","hasMention","onCommentCreate","commentFormSubmitHandler","assignees","dueAt","onTaskCreate","data","versionInfoHandler","onVersionHistoryClick","itemId","hasReplies","id","activeFeedEntryId","activeFeedEntryType","state","isSelected","item","replies","isActive","isFeedItemActive","some","reply","prevProps","prevState","prevActiveFeedEntryId","currFeedItems","prevIsInputOpen","currIsInputOpen","hasLoaded","hasMoreItems","didLoadFeedItems","hasInputOpened","hasActiveFeedEntryIdChanged","scrollToActiveFeedItemOrErrorMessage","activeFeedItemRef","current","activityFeedError","approverSelectorContacts","file","getApproverWithQuery","getAvatarUrl","getMentionWithQuery","getUserProfileUrl","hasNewThreadedReplies","hasVersions","isDisabled","mentionSelectorContacts","contactsLoaded","onAnnotationDelete","onAnnotationEdit","onAnnotationSelect","onAnnotationStatusChange","onAppActivityDelete","onCommentDelete","onCommentUpdate","onHideReplies","onReplyCreate","onReplyDelete","onReplyUpdate","onShowReplies","onTaskAssignmentUpdate","onTaskDelete","onTaskModalClose","onTaskUpdate","onTaskView","translations","currentFileVersionId","hasAnnotationCreatePermission","hasCommentPermission","showCommentForm","isEmpty","isLoading","activeFeedItem","Array","isArray","find","isCommentFeedItemActive","errorMessageByEntryType","annotation","annotationMissingError","comment","commentMissingError","task","taskMissingError","inlineFeedItemErrorMessage","isInlineFeedItemErrorVisible","onKeyDown","ref","throttledFeedScroll","setSelectedItem","openVersionHistoryPopup","feedInlineErrorTitle","commentFormCancelHandler","commentFormFocusHandler","Component"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Component for Activity feed\n */\n\nimport * as React from 'react';\nimport getProp from 'lodash/get';\nimport noop from 'lodash/noop';\nimport throttle from 'lodash/throttle';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport ActiveState from './ActiveState';\nimport CommentForm from '../comment-form';\nimport EmptyState from './EmptyState';\nimport InlineError from '../../../../components/inline-error/InlineError';\nimport LoadingIndicator from '../../../../components/loading-indicator/LoadingIndicator';\nimport messages from './messages';\nimport { collapseFeedState, ItemTypes } from './activityFeedUtils';\nimport {\n FEED_ITEM_TYPE_ANNOTATION,\n FEED_ITEM_TYPE_COMMENT,\n FEED_ITEM_TYPE_TASK,\n PERMISSION_CAN_CREATE_ANNOTATIONS,\n} from '../../../../constants';\nimport { scrollIntoView } from '../../../../utils/dom';\nimport type {\n Annotation,\n AnnotationPermission,\n BoxCommentPermission,\n Comment,\n CommentFeedItemType,\n FeedItemStatus,\n FeedItems,\n FocusableFeedItemType,\n Task,\n} from '../../../../common/types/feed';\nimport type { SelectorItems, User, GroupMini, BoxItem } from '../../../../common/types/core';\nimport type { Errors, GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations } from '../../flowTypes';\nimport './ActivityFeed.scss';\n\ntype Props = {\n activeFeedEntryId?: string,\n activeFeedEntryType?: FocusableFeedItemType,\n activityFeedError: ?Errors,\n approverSelectorContacts?: SelectorItems<User | GroupMini>,\n contactsLoaded?: boolean,\n currentUser?: User,\n feedItems?: FeedItems,\n file: BoxItem,\n getApproverWithQuery?: Function,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n getUserProfileUrl?: GetProfileUrlCallback,\n hasNewThreadedReplies?: boolean,\n hasReplies?: boolean,\n hasVersions?: boolean,\n isDisabled?: boolean,\n mentionSelectorContacts?: SelectorItems<User>,\n onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,\n onAnnotationEdit?: (id: string, text: string, permissions: AnnotationPermission) => void,\n onAnnotationSelect?: (annotation: Annotation) => void,\n onAnnotationStatusChange?: (id: string, status: FeedItemStatus, permissions: AnnotationPermission) => void,\n onAppActivityDelete?: Function,\n onCommentCreate?: Function,\n onCommentDelete?: Function,\n onCommentUpdate?: (\n id: string,\n text?: string,\n status?: FeedItemStatus,\n hasMention: boolean,\n permissions: BoxCommentPermission,\n onSuccess: ?Function,\n onError: ?Function,\n ) => void,\n onHideReplies?: (id: string, replies: Array<Comment>) => void,\n onReplyCreate?: (parentId: string, parentType: CommentFeedItemType, text: string) => void,\n onReplyDelete?: ({ id: string, parentId: string, permissions: BoxCommentPermission }) => void,\n onReplyUpdate?: (\n id: string,\n parentId: string,\n text: string,\n permissions: BoxCommentPermission,\n onSuccess: ?Function,\n onError: ?Function,\n ) => void,\n onShowReplies?: (id: string, type: CommentFeedItemType) => void,\n onTaskAssignmentUpdate?: Function,\n onTaskCreate?: Function,\n onTaskDelete?: Function,\n onTaskModalClose?: Function,\n onTaskUpdate?: Function,\n onTaskView?: Function,\n onVersionHistoryClick?: Function,\n translations?: Translations,\n};\n\ntype State = {\n isInputOpen: boolean,\n isScrolled: boolean,\n selectedItemId: string | null,\n};\n\nclass ActivityFeed extends React.Component<Props, State> {\n state = {\n isScrolled: false,\n isInputOpen: false,\n selectedItemId: null,\n };\n\n activeFeedItemRef = React.createRef<null | HTMLElement>();\n\n feedContainer: null | HTMLElement;\n\n componentDidMount() {\n this.resetFeedScroll();\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n const {\n activeFeedEntryId: prevActiveFeedEntryId,\n currentUser: prevCurrentUser,\n feedItems: prevFeedItems,\n } = prevProps;\n const { feedItems: currFeedItems, activeFeedEntryId } = this.props;\n const { isInputOpen: prevIsInputOpen } = prevState;\n const { isInputOpen: currIsInputOpen } = this.state;\n\n const hasLoaded = this.hasLoaded(prevCurrentUser, prevFeedItems);\n const hasMoreItems = prevFeedItems && currFeedItems && prevFeedItems.length < currFeedItems.length;\n const didLoadFeedItems = prevFeedItems === undefined && currFeedItems !== undefined;\n const hasInputOpened = currIsInputOpen !== prevIsInputOpen;\n const hasActiveFeedEntryIdChanged = activeFeedEntryId !== prevActiveFeedEntryId;\n\n if ((hasLoaded || hasMoreItems || didLoadFeedItems || hasInputOpened) && activeFeedEntryId === undefined) {\n this.resetFeedScroll();\n }\n\n if (didLoadFeedItems || hasActiveFeedEntryIdChanged) {\n this.scrollToActiveFeedItemOrErrorMessage();\n }\n }\n\n scrollToActiveFeedItemOrErrorMessage() {\n const { current: activeFeedItemRef } = this.activeFeedItemRef;\n const { activeFeedEntryId } = this.props;\n\n // if there is no active item, do not scroll\n if (!activeFeedEntryId) {\n return;\n }\n\n // if there was supposed to be an active feed item but the feed item does not exist\n // scroll to the bottom to show the inline error message\n if (activeFeedItemRef === null) {\n this.resetFeedScroll();\n return;\n }\n\n scrollIntoView(activeFeedItemRef);\n }\n\n /**\n * Detects whether or not the empty state should be shown.\n * @param {object} currentUser - The user that is logged into the account\n * @param {object} feedItems - Items in the activity feed\n */\n isEmpty = ({ feedItems }: Props = this.props): boolean => {\n if (feedItems === undefined) {\n return false;\n }\n return feedItems.length === 0 || (feedItems.length === 1 && feedItems[0].type === ItemTypes.fileVersion);\n };\n\n /**\n * Determines whether currentUser and feedItems have loaded.\n * @param prevCurrentUser - The previous value of the currentUser prop\n * @param prevFeedItems - The previous value of the feedItems prop\n * @returns {boolean}\n */\n hasLoaded = (prevCurrentUser?: User, prevFeedItems?: FeedItems): boolean => {\n const { currentUser, feedItems } = this.props;\n return currentUser !== undefined && feedItems !== undefined && (!prevCurrentUser || !prevFeedItems);\n };\n\n /**\n * Scrolls the container to the bottom\n */\n resetFeedScroll = () => {\n if (this.feedContainer) {\n this.feedContainer.scrollTop = this.feedContainer.scrollHeight;\n }\n };\n\n handleFeedScroll = (event: UIEvent): void => {\n const { target } = event;\n if (target instanceof Element) {\n const { scrollTop } = target;\n this.setState({ isScrolled: scrollTop > 0 });\n }\n };\n\n throttledFeedScroll = throttle(this.handleFeedScroll, 100);\n\n onKeyDown = (event: SyntheticKeyboardEvent<>): void => {\n const { nativeEvent } = event;\n nativeEvent.stopImmediatePropagation();\n };\n\n commentFormFocusHandler = (): void => {\n this.resetFeedScroll();\n this.setState({ isInputOpen: true });\n };\n\n commentFormCancelHandler = (): void => this.setState({ isInputOpen: false });\n\n commentFormSubmitHandler = (): void => this.setState({ isInputOpen: false });\n\n onCommentCreate = ({ text, hasMention }: { hasMention: boolean, text: string }) => {\n const { onCommentCreate = noop } = this.props;\n onCommentCreate(text, hasMention);\n this.commentFormSubmitHandler();\n };\n\n /**\n * Creates a task.\n *\n * @param {string} text - Task text\n * @param {Array} assignees - List of assignees\n * @param {number} dueAt - Task's due date\n * @return {void}\n */\n onTaskCreate = ({ text, assignees, dueAt }: { assignees: SelectorItems<>, dueAt: string, text: string }): void => {\n const { onTaskCreate = noop } = this.props;\n onTaskCreate(text, assignees, dueAt);\n this.commentFormSubmitHandler();\n };\n\n /**\n * Invokes version history popup handler.\n *\n * @param {Object} data - Version history data\n * @return {void}\n */\n openVersionHistoryPopup = (data: any): void => {\n const versionInfoHandler = this.props.onVersionHistoryClick || noop;\n versionInfoHandler(data);\n };\n\n setSelectedItem = (itemId: string | null) => {\n const { hasReplies } = this.props;\n if (!hasReplies) {\n return;\n }\n this.setState({ selectedItemId: itemId });\n };\n\n isFeedItemActive = <T, U: { id: string, type: T }>({ id, type }: U): boolean => {\n const { activeFeedEntryId, activeFeedEntryType } = this.props;\n const { selectedItemId } = this.state;\n\n const isSelected = selectedItemId === id;\n\n return selectedItemId ? isSelected : id === activeFeedEntryId && type === activeFeedEntryType;\n };\n\n isCommentFeedItemActive = <T, U: { id: string, replies?: Array<Comment>, type: T }>(item: U): boolean => {\n const { activeFeedEntryId } = this.props;\n const { replies } = item;\n\n const isActive = this.isFeedItemActive<T, U>(item);\n return isActive || (!!replies && replies.some(reply => reply.id === activeFeedEntryId));\n };\n\n render(): React.Node {\n const {\n activeFeedEntryType,\n activityFeedError,\n approverSelectorContacts,\n currentUser,\n feedItems,\n file,\n getApproverWithQuery,\n getAvatarUrl,\n getMentionWithQuery,\n getUserProfileUrl,\n hasNewThreadedReplies,\n hasReplies,\n hasVersions,\n isDisabled,\n mentionSelectorContacts,\n contactsLoaded,\n onAnnotationDelete,\n onAnnotationEdit,\n onAnnotationSelect,\n onAnnotationStatusChange,\n onAppActivityDelete,\n onCommentCreate,\n onCommentDelete,\n onCommentUpdate,\n onHideReplies,\n onReplyCreate,\n onReplyDelete,\n onReplyUpdate,\n onShowReplies,\n onTaskAssignmentUpdate,\n onTaskDelete,\n onTaskModalClose,\n onTaskUpdate,\n onTaskView,\n onVersionHistoryClick,\n translations,\n } = this.props;\n const { isInputOpen, isScrolled } = this.state;\n const currentFileVersionId = getProp(file, 'file_version.id');\n const hasAnnotationCreatePermission = getProp(file, ['permissions', PERMISSION_CAN_CREATE_ANNOTATIONS], false);\n const hasCommentPermission = getProp(file, 'permissions.can_comment', false);\n const showCommentForm = !!(currentUser && hasCommentPermission && onCommentCreate && feedItems);\n\n const isEmpty = this.isEmpty(this.props);\n const isLoading = !this.hasLoaded();\n\n const activeFeedItem =\n Array.isArray(feedItems) &&\n feedItems.find(item => {\n switch (item.type) {\n case FEED_ITEM_TYPE_ANNOTATION:\n return this.isCommentFeedItemActive<typeof FEED_ITEM_TYPE_ANNOTATION, Annotation>(item);\n case FEED_ITEM_TYPE_COMMENT:\n return this.isCommentFeedItemActive<typeof FEED_ITEM_TYPE_COMMENT, Comment>(item);\n case FEED_ITEM_TYPE_TASK:\n return this.isFeedItemActive<typeof FEED_ITEM_TYPE_TASK, Task>(item);\n default:\n return false;\n }\n });\n\n const errorMessageByEntryType = {\n annotation: messages.annotationMissingError,\n comment: messages.commentMissingError,\n task: messages.taskMissingError,\n };\n\n const inlineFeedItemErrorMessage = activeFeedEntryType\n ? errorMessageByEntryType[activeFeedEntryType]\n : undefined;\n\n const isInlineFeedItemErrorVisible = !isLoading && activeFeedEntryType && !activeFeedItem;\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n className={classNames('bcs-activity-feed', { 'bcs-is-scrolled': isScrolled })}\n data-testid=\"activityfeed\"\n onKeyDown={this.onKeyDown}\n >\n <div\n ref={ref => {\n this.feedContainer = ref;\n }}\n className=\"bcs-activity-feed-items-container\"\n onScroll={this.throttledFeedScroll}\n >\n {isLoading && (\n <div className=\"bcs-activity-feed-loading-state\">\n <LoadingIndicator />\n </div>\n )}\n\n {isEmpty && !isLoading && (\n <EmptyState\n showAnnotationMessage={hasAnnotationCreatePermission}\n showCommentMessage={showCommentForm}\n />\n )}\n {!isEmpty && !isLoading && (\n <ActiveState\n {...activityFeedError}\n activeFeedItem={activeFeedItem}\n activeFeedItemRef={this.activeFeedItemRef}\n approverSelectorContacts={approverSelectorContacts}\n currentFileVersionId={currentFileVersionId}\n currentUser={currentUser}\n getApproverWithQuery={getApproverWithQuery}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n hasNewThreadedReplies={hasNewThreadedReplies}\n hasReplies={hasReplies}\n hasVersions={hasVersions}\n isDisabled={isDisabled}\n items={collapseFeedState(feedItems)}\n mentionSelectorContacts={mentionSelectorContacts}\n onAnnotationDelete={onAnnotationDelete}\n onAnnotationEdit={onAnnotationEdit}\n onAnnotationSelect={onAnnotationSelect}\n onAnnotationStatusChange={onAnnotationStatusChange}\n onAppActivityDelete={onAppActivityDelete}\n onCommentDelete={hasCommentPermission ? onCommentDelete : noop}\n onCommentEdit={hasCommentPermission ? onCommentUpdate : noop}\n onCommentSelect={this.setSelectedItem}\n onHideReplies={onHideReplies}\n onReplyCreate={hasCommentPermission ? onReplyCreate : noop}\n onReplyDelete={hasCommentPermission ? onReplyDelete : noop}\n onReplyUpdate={hasCommentPermission ? onReplyUpdate : noop}\n onShowReplies={onShowReplies}\n onTaskAssignmentUpdate={onTaskAssignmentUpdate}\n onTaskDelete={onTaskDelete}\n onTaskEdit={onTaskUpdate}\n onTaskModalClose={onTaskModalClose}\n onTaskView={onTaskView}\n onVersionInfo={onVersionHistoryClick ? this.openVersionHistoryPopup : null}\n translations={translations}\n />\n )}\n {isInlineFeedItemErrorVisible && inlineFeedItemErrorMessage && (\n <InlineError\n title={<FormattedMessage {...messages.feedInlineErrorTitle} />}\n className=\"bcs-feedItemInlineError\"\n >\n <FormattedMessage {...inlineFeedItemErrorMessage} />\n </InlineError>\n )}\n </div>\n\n {showCommentForm ? (\n <CommentForm\n onSubmit={this.resetFeedScroll}\n isDisabled={isDisabled}\n mentionSelectorContacts={mentionSelectorContacts}\n contactsLoaded={contactsLoaded}\n className={classNames('bcs-activity-feed-comment-input', {\n 'bcs-is-disabled': isDisabled,\n })}\n createComment={hasCommentPermission ? this.onCommentCreate : noop}\n getMentionWithQuery={getMentionWithQuery}\n isOpen={isInputOpen}\n // $FlowFixMe\n user={currentUser}\n onCancel={this.commentFormCancelHandler}\n onFocus={this.commentFormFocusHandler}\n getAvatarUrl={getAvatarUrl}\n />\n ) : null}\n </div>\n );\n }\n}\n\nexport default ActivityFeed;\n"],"file":"ActivityFeed.js"}
|
|
@@ -28,6 +28,17 @@
|
|
|
28
28
|
line-height: 20px;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
&.bcs-is-scrolled::before {
|
|
32
|
+
position: absolute;
|
|
33
|
+
// position it behind bcs-content-header
|
|
34
|
+
top: -$sidebarHeaderHeight;
|
|
35
|
+
right: $sidebarActivityFeedSpacingHorizontal;
|
|
36
|
+
left: $sidebarActivityFeedSpacingHorizontal;
|
|
37
|
+
height: $sidebarHeaderHeight;
|
|
38
|
+
box-shadow: 0 $bdl-grid-unit $bdl-grid-unit * 3 $bdl-gray-10;
|
|
39
|
+
content: ' ';
|
|
40
|
+
}
|
|
41
|
+
|
|
31
42
|
.bcs-activity-feed-items-container {
|
|
32
43
|
$container-padding: 25px;
|
|
33
44
|
$container-transition-delay: 25ms;
|