box-ui-elements 16.0.0-beta.8 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/explorer.css +1 -1
- package/dist/explorer.js +19 -58
- 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 -56
- package/dist/sharing.css +1 -1
- package/dist/sharing.js +34 -34
- package/dist/sidebar.css +1 -1
- package/dist/sidebar.js +17 -56
- package/dist/uploader.css +1 -1
- package/dist/uploader.js +12 -12
- package/es/api/APIFactory.js +27 -0
- package/es/api/APIFactory.js.flow +26 -0
- package/es/api/APIFactory.js.map +1 -1
- package/es/api/Annotations.js +180 -27
- package/es/api/Annotations.js.flow +150 -14
- package/es/api/Annotations.js.map +1 -1
- package/es/api/Comments.js +2 -2
- package/es/api/Comments.js.flow +5 -4
- package/es/api/Comments.js.map +1 -1
- package/es/api/Feed.js +578 -69
- package/es/api/Feed.js.flow +677 -17
- package/es/api/Feed.js.map +1 -1
- package/es/api/FileCollaborators.js +29 -0
- package/es/api/FileCollaborators.js.flow +30 -0
- package/es/api/FileCollaborators.js.map +1 -1
- package/es/api/ThreadedComments.js +64 -27
- package/es/api/ThreadedComments.js.flow +54 -29
- package/es/api/ThreadedComments.js.map +1 -1
- package/es/api/fixtures.js +381 -0
- package/es/api/fixtures.js.flow +401 -0
- package/es/api/fixtures.js.map +1 -0
- package/es/api/messages.js +4 -0
- package/es/api/messages.js.flow +5 -0
- package/es/api/messages.js.map +1 -1
- package/es/api/utils.js +33 -0
- package/es/api/utils.js.flow +30 -0
- package/es/api/utils.js.map +1 -0
- package/es/common/types/annotations.js.flow +18 -10
- package/es/common/types/feed.js +1 -1
- package/es/common/types/feed.js.flow +40 -4
- package/es/common/types/feed.js.map +1 -1
- package/es/components/accessible-svg/AccessibleSVG.stories.js +20 -0
- package/es/components/accessible-svg/AccessibleSVG.stories.js.map +1 -0
- package/es/components/badge/Badge.stories.js +1 -13
- package/es/components/badge/Badge.stories.js.map +1 -1
- package/es/components/badge/BetaBadge.stories.js +10 -0
- package/es/components/badge/BetaBadge.stories.js.map +1 -0
- package/es/components/badge/TrialBadge.stories.js +10 -0
- package/es/components/badge/TrialBadge.stories.js.map +1 -0
- package/es/components/badge/UpgradeBadge.stories.js +10 -0
- package/es/components/badge/UpgradeBadge.stories.js.map +1 -0
- package/es/components/breadcrumb/Breadcrumb.js +48 -35
- package/es/components/breadcrumb/Breadcrumb.js.flow +68 -42
- package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/es/components/breadcrumb/EllipsisCrumb.js +5 -3
- package/es/components/breadcrumb/EllipsisCrumb.js.flow +10 -6
- package/es/components/breadcrumb/EllipsisCrumb.js.map +1 -1
- package/es/components/count-badge/CountBadge.stories.js +1 -1
- package/es/components/count-badge/CountBadge.stories.js.map +1 -1
- package/es/components/draggable-list/DraggableList.stories.js +119 -5
- package/es/components/draggable-list/DraggableList.stories.js.map +1 -1
- package/es/components/dropdown-menu/DropdownMenu.js +9 -0
- package/es/components/dropdown-menu/DropdownMenu.js.flow +11 -0
- package/es/components/dropdown-menu/DropdownMenu.js.map +1 -1
- package/es/components/dropdown-menu/DropdownMenu.scss +3 -3
- package/es/components/infinite-scroll/InfiniteScroll.js +4 -2
- package/es/components/infinite-scroll/InfiniteScroll.js.map +1 -1
- package/es/components/modal/Modal.scss +5 -1
- package/es/components/search-form/SearchForm.js +1 -1
- package/es/components/search-form/SearchForm.js.flow +1 -1
- package/es/components/search-form/SearchForm.js.map +1 -1
- package/es/components/table/makeSelectable.js +304 -97
- package/es/components/table/makeSelectable.js.flow +299 -98
- package/es/components/table/makeSelectable.js.map +1 -1
- package/es/components/tooltip/Tooltip.js +3 -2
- package/es/components/tooltip/Tooltip.js.map +1 -1
- package/es/constants.js +11 -0
- package/es/constants.js.flow +11 -0
- package/es/constants.js.map +1 -1
- package/es/elements/common/annotator-context/index.js +1 -0
- package/es/elements/common/annotator-context/index.js.flow +4 -0
- package/es/elements/common/annotator-context/index.js.map +1 -1
- package/es/elements/common/annotator-context/types.js +12 -0
- package/es/elements/common/annotator-context/types.js.flow +77 -35
- package/es/elements/common/annotator-context/types.js.map +1 -1
- package/es/elements/common/annotator-context/useAnnotatorEvents.js +205 -0
- package/es/elements/common/annotator-context/useAnnotatorEvents.js.flow +52 -0
- package/es/elements/common/annotator-context/useAnnotatorEvents.js.map +1 -0
- package/es/elements/common/annotator-context/withAnnotations.js +224 -5
- package/es/elements/common/annotator-context/withAnnotations.js.flow +73 -36
- package/es/elements/common/annotator-context/withAnnotations.js.map +1 -1
- package/es/elements/common/annotator-context/withAnnotatorContext.js +12 -4
- package/es/elements/common/annotator-context/withAnnotatorContext.js.flow +29 -9
- package/es/elements/common/annotator-context/withAnnotatorContext.js.map +1 -1
- package/es/elements/common/current-user/index.js +3 -0
- package/es/elements/common/current-user/index.js.flow +8 -0
- package/es/elements/common/current-user/index.js.map +1 -0
- package/es/elements/common/current-user/withCurrentUser.js +139 -0
- package/es/elements/common/current-user/withCurrentUser.js.flow +40 -0
- package/es/elements/common/current-user/withCurrentUser.js.map +1 -0
- package/es/elements/common/flowTypes.js.flow +22 -4
- package/es/elements/common/flowTypes.js.map +1 -1
- package/es/elements/common/interactionTargets.js +2 -0
- package/es/elements/common/interactionTargets.js.flow +2 -0
- package/es/elements/common/interactionTargets.js.map +1 -1
- package/es/elements/common/logger/Logger.js +1 -1
- package/es/elements/common/logger/Logger.js.flow +1 -1
- package/es/elements/common/logger/Logger.js.map +1 -1
- package/es/elements/common/messages.js +4 -0
- package/es/elements/common/messages.js.flow +5 -0
- package/es/elements/common/messages.js.map +1 -1
- package/es/elements/content-explorer/DeleteConfirmationDialog.js +2 -1
- package/es/elements/content-explorer/DeleteConfirmationDialog.js.flow +3 -1
- package/es/elements/content-explorer/DeleteConfirmationDialog.js.map +1 -1
- package/es/elements/content-explorer/DeleteConfirmationDialog.scss +5 -0
- package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +58 -0
- package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.flow +60 -0
- package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.map +1 -0
- package/es/elements/content-sidebar/ActivitySidebar.js +323 -197
- package/es/elements/content-sidebar/ActivitySidebar.js.flow +381 -154
- package/es/elements/content-sidebar/ActivitySidebar.js.map +1 -1
- package/es/elements/content-sidebar/ActivitySidebarFilter.js +52 -0
- package/es/elements/content-sidebar/ActivitySidebarFilter.js.flow +59 -0
- package/es/elements/content-sidebar/ActivitySidebarFilter.js.map +1 -0
- package/es/elements/content-sidebar/ActivitySidebarFilter.scss +4 -0
- package/es/elements/content-sidebar/DetailsSidebar.js +50 -25
- package/es/elements/content-sidebar/DetailsSidebar.js.flow +32 -4
- package/es/elements/content-sidebar/DetailsSidebar.js.map +1 -1
- package/es/elements/content-sidebar/Sidebar.js +4 -1
- package/es/elements/content-sidebar/Sidebar.js.flow +6 -1
- package/es/elements/content-sidebar/Sidebar.js.map +1 -1
- package/es/elements/content-sidebar/SidebarContentInsights.js +45 -0
- package/es/elements/content-sidebar/SidebarContentInsights.js.map +1 -0
- package/es/elements/content-sidebar/SidebarContentInsights.scss +6 -0
- package/es/elements/content-sidebar/SidebarPanels.js +2 -0
- package/es/elements/content-sidebar/SidebarPanels.js.flow +4 -0
- package/es/elements/content-sidebar/SidebarPanels.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +91 -10
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.flow +122 -24
- 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 +27 -15
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.flow +59 -18
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +101 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.flow +126 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +69 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.flow +85 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +62 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.flow +59 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +22 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js +2 -2
- package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js.flow +2 -2
- package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/fixtures.js +55 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/fixtures.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js +16 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.flow +20 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +121 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.flow +117 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +7 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +75 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.flow +105 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +5 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +77 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.flow +86 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.scss +3 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js +11 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.flow +26 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js +2 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js.flow +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js +17 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js.flow +21 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +180 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.flow +203 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +124 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.flow +121 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +19 -5
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.flow +24 -4
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +25 -4
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.flow +36 -2
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotations/messages.js +8 -0
- package/es/elements/content-sidebar/activity-feed/annotations/messages.js.flow +10 -0
- package/es/elements/content-sidebar/activity-feed/annotations/messages.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/comment/Comment.js +61 -28
- package/es/elements/content-sidebar/activity-feed/comment/Comment.js.flow +54 -10
- package/es/elements/content-sidebar/activity-feed/comment/Comment.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/comment/messages.js +8 -0
- package/es/elements/content-sidebar/activity-feed/comment/messages.js.flow +10 -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 +4 -2
- package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.flow +3 -1
- package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js +16 -5
- package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js.flow +34 -4
- package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +40 -3
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js +49 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js.flow +42 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js +21 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js.flow +24 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js +12 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.flow +15 -0
- 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.js +24 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js.flow +30 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +6 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js +2 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js.flow +2 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js +9 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js.flow +13 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-timestamp/ActivityTimestamp.scss +1 -1
- package/es/elements/content-sidebar/fixtures.js +181 -0
- package/es/elements/content-sidebar/fixtures.js.flow +185 -0
- package/es/elements/content-sidebar/fixtures.js.map +1 -0
- package/es/elements/content-sidebar/flowTypes.js.flow +9 -25
- package/es/elements/content-sidebar/messages.js +8 -0
- package/es/elements/content-sidebar/messages.js.flow +10 -0
- package/es/elements/content-sidebar/messages.js.map +1 -1
- package/es/elements/content-sidebar/withErrorHandling.js.flow +1 -1
- package/es/elements/content-sidebar/withErrorHandling.js.map +1 -1
- package/es/elements/content-sidebar/withSidebarAnnotations.js +215 -30
- package/es/elements/content-sidebar/withSidebarAnnotations.js.flow +162 -11
- package/es/elements/content-sidebar/withSidebarAnnotations.js.map +1 -1
- package/es/elements/content-uploader/OverallUploadsProgressBar.js +10 -8
- package/es/elements/content-uploader/OverallUploadsProgressBar.js.flow +11 -12
- package/es/elements/content-uploader/OverallUploadsProgressBar.js.map +1 -1
- package/es/features/classification/Classification.scss +1 -1
- package/es/features/classification/security-controls/SecurityControlsItem.scss +1 -0
- package/es/features/classification/security-controls/messages.js +8 -0
- package/es/features/classification/security-controls/messages.js.flow +10 -0
- package/es/features/classification/security-controls/messages.js.map +1 -1
- package/es/features/classification/security-controls/utils.js +4 -7
- package/es/features/classification/security-controls/utils.js.flow +8 -12
- package/es/features/classification/security-controls/utils.js.map +1 -1
- package/es/features/content-explorer/content-explorer/ContentExplorer.js +6 -1
- package/es/features/content-explorer/content-explorer/ContentExplorer.js.flow +4 -0
- package/es/features/content-explorer/content-explorer/ContentExplorer.js.map +1 -1
- package/es/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
- package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +15 -9
- package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js.flow +14 -11
- package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js.map +1 -1
- package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +4 -1
- package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.flow +4 -1
- package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.map +1 -1
- package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +6 -3
- package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.flow +5 -1
- package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.map +1 -1
- package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +6 -1
- package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.flow +5 -1
- package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.map +1 -1
- package/es/features/content-explorer/prop-types.js +7 -1
- package/es/features/content-explorer/prop-types.js.flow +8 -0
- package/es/features/content-explorer/prop-types.js.map +1 -1
- package/es/features/content-insights/CompactCount.js +24 -0
- package/es/features/content-insights/CompactCount.js.map +1 -0
- package/es/features/content-insights/ContentAnalyticsErrorState.js +35 -0
- package/es/features/content-insights/ContentAnalyticsErrorState.js.map +1 -0
- package/es/features/content-insights/ContentAnalyticsErrorState.scss +17 -0
- package/es/features/content-insights/ContentInsightsSummary.js +42 -0
- package/es/features/content-insights/ContentInsightsSummary.js.map +1 -0
- package/es/features/content-insights/ContentInsightsSummary.scss +12 -0
- package/es/features/content-insights/ContentInsightsSummaryGhostState.js +19 -0
- package/es/features/content-insights/ContentInsightsSummaryGhostState.js.map +1 -0
- package/es/features/content-insights/ContentInsightsSummaryGhostState.scss +9 -0
- package/es/features/content-insights/GraphCardGhostState.js +25 -0
- package/es/features/content-insights/GraphCardGhostState.js.map +1 -0
- package/es/features/content-insights/GraphCardGhostState.scss +18 -0
- package/es/features/content-insights/GraphCardPreviewsSummary.js +30 -0
- package/es/features/content-insights/GraphCardPreviewsSummary.js.map +1 -0
- package/es/features/content-insights/GraphCardPreviewsSummary.scss +10 -0
- package/es/features/content-insights/GraphGhostState.js +21 -0
- package/es/features/content-insights/GraphGhostState.js.map +1 -0
- package/es/features/content-insights/GraphGhostState.scss +11 -0
- package/es/features/content-insights/HeaderWithCount.js +23 -0
- package/es/features/content-insights/HeaderWithCount.js.map +1 -0
- package/es/features/content-insights/HeaderWithCount.scss +10 -0
- package/es/features/content-insights/MetricSummary.js +85 -0
- package/es/features/content-insights/MetricSummary.js.map +1 -0
- package/es/features/content-insights/MetricSummary.scss +14 -0
- package/es/features/content-insights/OpenContentInsightsButton.js +16 -0
- package/es/features/content-insights/OpenContentInsightsButton.js.map +1 -0
- package/es/features/content-insights/TrendPill.js +61 -0
- package/es/features/content-insights/TrendPill.js.map +1 -0
- package/es/features/content-insights/TrendPill.scss +33 -0
- package/es/features/content-insights/_mixins.scss +7 -0
- package/es/features/content-insights/_variables.scss +4 -0
- package/es/features/content-insights/charts/bar/Bar.js +57 -0
- package/es/features/content-insights/charts/bar/Bar.js.map +1 -0
- package/es/features/content-insights/charts/bar/Bar.scss +27 -0
- package/es/features/content-insights/charts/bar/BarChart.js +70 -0
- package/es/features/content-insights/charts/bar/BarChart.js.map +1 -0
- package/es/features/content-insights/charts/bar/BarChart.scss +56 -0
- package/es/features/content-insights/charts/types.js +2 -0
- package/es/{common/types/threadedComments.js.map → features/content-insights/charts/types.js.map} +1 -1
- package/es/features/content-insights/constants.js +54 -0
- package/es/features/content-insights/constants.js.map +1 -0
- package/es/features/content-insights/messages.js +69 -0
- package/es/features/content-insights/messages.js.map +1 -0
- package/es/features/content-insights/numberUtils.js +10 -0
- package/es/features/content-insights/numberUtils.js.map +1 -0
- package/es/features/content-insights/types.js +2 -0
- package/es/features/content-insights/types.js.map +1 -0
- package/es/features/item-details/ItemProperties.scss +1 -1
- package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js +5 -3
- package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.flow +4 -2
- package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.map +1 -1
- package/es/features/unified-share-modal/ContactRestrictionNotice.js +34 -8
- package/es/features/unified-share-modal/ContactRestrictionNotice.js.flow +36 -6
- package/es/features/unified-share-modal/ContactRestrictionNotice.js.map +1 -1
- package/es/features/unified-share-modal/EmailForm.js +59 -47
- package/es/features/unified-share-modal/EmailForm.js.flow +31 -13
- package/es/features/unified-share-modal/EmailForm.js.map +1 -1
- package/es/features/unified-share-modal/UnifiedShareForm.js +112 -103
- package/es/features/unified-share-modal/UnifiedShareForm.js.flow +25 -8
- package/es/features/unified-share-modal/UnifiedShareForm.js.map +1 -1
- package/es/features/unified-share-modal/UnifiedShareModal.js +1 -0
- package/es/features/unified-share-modal/UnifiedShareModal.js.flow +1 -0
- package/es/features/unified-share-modal/UnifiedShareModal.js.map +1 -1
- package/es/features/unified-share-modal/flowTypes.js.flow +4 -2
- package/es/features/unified-share-modal/flowTypes.js.map +1 -1
- package/es/features/unified-share-modal/messages.js +12 -8
- package/es/features/unified-share-modal/messages.js.flow +14 -8
- package/es/features/unified-share-modal/messages.js.map +1 -1
- package/es/features/unified-share-modal/utils/hasRestrictedContacts.js +9 -4
- package/es/features/unified-share-modal/utils/hasRestrictedContacts.js.flow +10 -3
- package/es/features/unified-share-modal/utils/hasRestrictedContacts.js.map +1 -1
- package/es/features/unified-share-modal/utils/isRestrictedContact.js +15 -0
- package/es/features/unified-share-modal/utils/isRestrictedContact.js.flow +21 -0
- package/es/features/unified-share-modal/utils/isRestrictedContact.js.map +1 -0
- package/es/icon/fill/Alert16.js +3 -2
- package/es/icon/fill/Alert16.js.flow +3 -2
- package/es/icon/fill/Alert16.js.map +1 -1
- package/es/icon/fill/AlertBadge16.js +31 -0
- package/es/icon/fill/AlertBadge16.js.flow +29 -0
- package/es/icon/fill/AlertBadge16.js.map +1 -0
- package/es/icon/fill/AlertBadge16.stories.js +13 -0
- package/es/icon/fill/AlertBadge16.stories.js.map +1 -0
- package/es/icon/fill/Info16.js +2 -2
- package/es/icon/fill/Info16.js.flow +1 -1
- package/es/icon/fill/Info16.js.map +1 -1
- package/es/icon/fill/InfoBadge16.js +30 -0
- package/es/icon/fill/InfoBadge16.js.flow +28 -0
- package/es/icon/fill/InfoBadge16.js.map +1 -0
- package/es/icon/fill/InfoBadge16.stories.js +13 -0
- package/es/icon/fill/InfoBadge16.stories.js.map +1 -0
- package/es/icon/fill/UserSettings16.js +38 -0
- package/es/icon/fill/UserSettings16.js.flow +38 -0
- package/es/icon/fill/UserSettings16.js.map +1 -0
- package/es/icon/fill/UserSettings16.stories.js +13 -0
- package/es/icon/fill/UserSettings16.stories.js.map +1 -0
- package/es/icon/line/AlertBubble16.js +31 -0
- package/es/icon/line/AlertBubble16.js.flow +29 -0
- package/es/icon/line/AlertBubble16.js.map +1 -0
- package/es/icon/line/AlertBubble16.stories.js +13 -0
- package/es/icon/line/AlertBubble16.stories.js.map +1 -0
- package/es/icon/line/AvatarXBadge16.js +45 -0
- package/es/icon/line/AvatarXBadge16.js.flow +39 -0
- package/es/icon/line/AvatarXBadge16.js.map +1 -0
- package/es/icon/line/AvatarXBadge16.stories.js +13 -0
- package/es/icon/line/AvatarXBadge16.stories.js.map +1 -0
- package/es/icon/line/CoEdit16.js +32 -0
- package/es/icon/line/CoEdit16.js.flow +30 -0
- package/es/icon/line/CoEdit16.js.map +1 -0
- package/es/icon/line/CoEdit16.stories.js +13 -0
- package/es/icon/line/CoEdit16.stories.js.map +1 -0
- package/es/icon/line/Collaborations16.js +32 -0
- package/es/icon/line/Collaborations16.js.flow +30 -0
- package/es/icon/line/Collaborations16.js.map +1 -0
- package/es/icon/line/Collaborations16.stories.js +13 -0
- package/es/icon/line/Collaborations16.stories.js.map +1 -0
- package/es/icon/line/CommentBubble16.js +35 -0
- package/es/icon/line/CommentBubble16.js.flow +34 -0
- package/es/icon/line/CommentBubble16.js.map +1 -0
- package/es/icon/line/CommentBubble16.stories.js +13 -0
- package/es/icon/line/CommentBubble16.stories.js.map +1 -0
- package/es/src/components/accessible-svg/AccessibleSVG.stories.d.ts +7 -0
- package/es/src/components/badge/Badge.stories.d.ts +0 -3
- package/es/src/components/badge/BetaBadge.stories.d.ts +6 -0
- package/es/src/components/badge/TrialBadge.stories.d.ts +6 -0
- package/es/src/components/badge/UpgradeBadge.stories.d.ts +6 -0
- package/es/src/components/draggable-list/DraggableList.stories.d.ts +3 -3
- package/es/src/components/infinite-scroll/InfiniteScroll.d.ts +1 -1
- package/es/src/components/tooltip/Tooltip.d.ts +2 -0
- package/es/src/elements/common/annotator-context/__tests__/useAnnotatorEvents.test.d.ts +1 -0
- package/es/src/elements/common/annotator-context/index.d.ts +1 -0
- package/es/src/elements/common/annotator-context/types.d.ts +28 -6
- package/es/src/elements/common/annotator-context/useAnnotatorEvents.d.ts +52 -0
- package/es/src/elements/common/annotator-context/withAnnotations.d.ts +11 -2
- package/es/src/elements/common/annotator-context/withAnnotatorContext.d.ts +6 -2
- package/es/src/elements/common/current-user/__tests__/withCurrentUser.test.d.ts +1 -0
- package/es/src/elements/common/current-user/index.d.ts +2 -0
- package/es/src/elements/common/current-user/withCurrentUser.d.ts +20 -0
- package/es/src/elements/content-sidebar/SidebarContentInsights.d.ts +15 -0
- package/es/src/elements/content-sidebar/__tests__/SidebarContentInsights.test.d.ts +1 -0
- package/es/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.d.ts +55 -0
- package/es/src/features/content-insights/CompactCount.d.ts +15 -0
- package/es/src/features/content-insights/ContentAnalyticsErrorState.d.ts +7 -0
- package/es/src/features/content-insights/ContentInsightsSummary.d.ts +12 -0
- package/es/src/features/content-insights/ContentInsightsSummaryGhostState.d.ts +3 -0
- package/es/src/features/content-insights/GraphCardGhostState.d.ts +3 -0
- package/es/src/features/content-insights/GraphCardPreviewsSummary.d.ts +16 -0
- package/es/src/features/content-insights/GraphGhostState.d.ts +3 -0
- package/es/src/features/content-insights/HeaderWithCount.d.ts +7 -0
- package/es/src/features/content-insights/MetricSummary.d.ts +18 -0
- package/es/src/features/content-insights/OpenContentInsightsButton.d.ts +5 -0
- package/es/src/features/content-insights/TrendPill.d.ts +15 -0
- package/es/src/features/content-insights/__tests__/CompactCount.test.d.ts +1 -0
- package/es/src/features/content-insights/__tests__/ContentAnalyticsErrorState.test.d.ts +1 -0
- package/es/src/features/content-insights/__tests__/ContentInsightsSummary.test.d.ts +1 -0
- package/es/src/features/content-insights/__tests__/GraphCardPreviewsSummary.test.d.ts +1 -0
- package/es/src/features/content-insights/__tests__/HeaderWithCount.test.d.ts +1 -0
- package/es/src/features/content-insights/__tests__/MetricSummary.test.d.ts +1 -0
- package/es/src/features/content-insights/charts/bar/Bar.d.ts +11 -0
- package/es/src/features/content-insights/charts/bar/BarChart.d.ts +19 -0
- package/es/src/features/content-insights/charts/bar/__tests__/Bar.test.d.ts +1 -0
- package/es/src/features/content-insights/charts/bar/__tests__/BarChart.test.d.ts +1 -0
- package/es/src/features/content-insights/charts/types.d.ts +2 -0
- package/es/src/features/content-insights/constants.d.ts +27 -0
- package/es/src/features/content-insights/messages.d.ts +83 -0
- package/es/src/features/content-insights/numberUtils.d.ts +3 -0
- package/es/src/features/content-insights/types.d.ts +24 -0
- package/es/src/icon/fill/AlertBadge16.d.ts +13 -0
- package/es/src/icon/fill/AlertBadge16.stories.d.ts +9 -0
- package/es/src/icon/fill/InfoBadge16.d.ts +13 -0
- package/es/src/icon/fill/InfoBadge16.stories.d.ts +9 -0
- package/es/src/icon/fill/UserSettings16.d.ts +13 -0
- package/es/src/icon/fill/UserSettings16.stories.d.ts +9 -0
- package/es/src/icon/line/AlertBubble16.d.ts +13 -0
- package/es/src/icon/line/AlertBubble16.stories.d.ts +9 -0
- package/es/src/icon/line/AvatarXBadge16.d.ts +13 -0
- package/es/src/icon/line/AvatarXBadge16.stories.d.ts +9 -0
- package/es/src/icon/line/CoEdit16.d.ts +13 -0
- package/es/src/icon/line/CoEdit16.stories.d.ts +9 -0
- package/es/src/icon/line/Collaborations16.d.ts +13 -0
- package/es/src/icon/line/Collaborations16.stories.d.ts +9 -0
- package/es/src/icon/line/CommentBubble16.d.ts +13 -0
- package/es/src/icon/line/CommentBubble16.stories.d.ts +9 -0
- package/es/src/styles/variables.d.ts +3 -1
- package/es/styles/constants/_layout.scss +1 -1
- package/es/styles/constants/_media-queries.scss +2 -0
- package/es/styles/variables.js +6 -2
- package/es/styles/variables.js.flow +4 -2
- package/es/styles/variables.js.map +1 -1
- package/es/utils/error.js +5 -1
- package/es/utils/error.js.flow +5 -1
- package/es/utils/error.js.map +1 -1
- package/es/utils/fields.js +8 -3
- package/es/utils/fields.js.flow +21 -3
- package/es/utils/fields.js.map +1 -1
- package/es/utils/sorter.js.flow +2 -2
- package/es/utils/sorter.js.map +1 -1
- package/i18n/bn-IN.js +45 -7
- package/i18n/bn-IN.properties +83 -7
- package/i18n/da-DK.js +45 -7
- package/i18n/da-DK.properties +83 -7
- package/i18n/de-DE.js +45 -7
- package/i18n/de-DE.properties +83 -7
- package/i18n/en-AU.js +45 -7
- package/i18n/en-AU.properties +83 -7
- package/i18n/en-CA.js +45 -7
- package/i18n/en-CA.properties +83 -7
- package/i18n/en-GB.js +45 -7
- package/i18n/en-GB.properties +83 -7
- package/i18n/en-US.js +45 -7
- package/i18n/en-US.properties +83 -7
- package/i18n/en-x-pseudo.js +891 -854
- package/i18n/en-x-pseudo.properties +941 -843
- package/i18n/es-419.js +45 -7
- package/i18n/es-419.properties +83 -7
- package/i18n/es-ES.js +45 -7
- package/i18n/es-ES.properties +83 -7
- package/i18n/fi-FI.js +45 -7
- package/i18n/fi-FI.properties +83 -7
- package/i18n/fr-CA.js +45 -7
- package/i18n/fr-CA.properties +83 -7
- package/i18n/fr-FR.js +45 -7
- package/i18n/fr-FR.properties +83 -7
- package/i18n/hi-IN.js +45 -7
- package/i18n/hi-IN.properties +83 -7
- package/i18n/it-IT.js +45 -7
- package/i18n/it-IT.properties +83 -7
- package/i18n/ja-JP.js +47 -9
- package/i18n/ja-JP.properties +85 -9
- package/i18n/ko-KR.js +45 -7
- package/i18n/ko-KR.properties +83 -7
- package/i18n/nb-NO.js +45 -7
- package/i18n/nb-NO.properties +83 -7
- package/i18n/nl-NL.js +45 -7
- package/i18n/nl-NL.properties +83 -7
- package/i18n/pl-PL.js +45 -7
- package/i18n/pl-PL.properties +83 -7
- package/i18n/pt-BR.js +45 -7
- package/i18n/pt-BR.properties +83 -7
- package/i18n/ru-RU.js +45 -7
- package/i18n/ru-RU.properties +83 -7
- package/i18n/sv-SE.js +45 -7
- package/i18n/sv-SE.properties +83 -7
- package/i18n/tr-TR.js +45 -7
- package/i18n/tr-TR.properties +83 -7
- package/i18n/zh-CN.js +45 -7
- package/i18n/zh-CN.properties +83 -7
- package/i18n/zh-TW.js +45 -7
- package/i18n/zh-TW.properties +83 -7
- package/package.json +7 -8
- package/src/__mocks__/react-intl.js +4 -0
- package/src/api/APIFactory.js +26 -0
- package/src/api/Annotations.js +150 -14
- package/src/api/Comments.js +5 -4
- package/src/api/Feed.js +677 -17
- package/src/api/FileCollaborators.js +30 -0
- package/src/api/ThreadedComments.js +54 -29
- package/src/api/__tests__/Annotations.test.js +217 -11
- package/src/api/__tests__/Feed.test.js +699 -86
- package/src/api/__tests__/FileCollaborators.test.js +41 -0
- package/src/api/__tests__/ThreadedComments.test.js +47 -10
- package/src/api/__tests__/utils.test.js +11 -0
- package/src/api/fixtures.js +401 -0
- package/src/api/messages.js +5 -0
- package/src/api/utils.js +30 -0
- package/src/common/types/annotations.js +18 -10
- package/src/common/types/feed.js +40 -4
- package/src/components/accessible-svg/AccessibleSVG.stories.tsx +18 -0
- package/src/components/badge/Badge.stories.md +1 -7
- package/src/components/badge/Badge.stories.tsx +1 -10
- package/src/components/badge/BetaBadge.stories.tsx +9 -0
- package/src/components/badge/TrialBadge.stories.tsx +9 -0
- package/src/components/badge/UpgradeBadge.stories.tsx +9 -0
- package/src/components/breadcrumb/Breadcrumb.js +68 -42
- package/src/components/breadcrumb/EllipsisCrumb.js +10 -6
- package/src/components/count-badge/CountBadge.stories.tsx +1 -1
- package/src/components/draggable-list/DraggableList.stories.tsx +72 -5
- package/src/components/dropdown-menu/DropdownMenu.js +11 -0
- package/src/components/dropdown-menu/DropdownMenu.scss +3 -3
- package/src/components/dropdown-menu/__tests__/DropdownMenu.test.js +38 -0
- package/src/components/grid-view/__tests__/__snapshots__/GridViewSlider.test.js.snap +1 -0
- package/src/components/infinite-scroll/InfiniteScroll.md +1 -1
- package/src/components/infinite-scroll/InfiniteScroll.tsx +5 -2
- package/src/components/infinite-scroll/__tests__/InfiniteScroll.test.tsx +115 -127
- package/src/components/modal/Modal.scss +5 -1
- package/src/components/search-form/SearchForm.js +1 -1
- package/src/components/search-form/__tests__/SearchForm.test.js +25 -6
- package/src/components/sidebar-toggle-button/__tests__/__snapshots__/SidebarToggleButton.test.js.snap +4 -0
- package/src/components/table/__tests__/makeSelectable.test.js +654 -144
- package/src/components/table/makeSelectable.js +299 -98
- package/src/components/time/__tests__/ReadableTime.test.js +0 -1
- package/src/components/tooltip/Tooltip.tsx +5 -2
- package/src/components/tooltip/__tests__/Tooltip.test.tsx +10 -0
- package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +1 -1
- package/src/constants.js +11 -0
- package/src/elements/common/annotator-context/__tests__/useAnnotatorEvents.test.tsx +509 -0
- package/src/elements/common/annotator-context/__tests__/withAnnotations.test.tsx +275 -12
- package/src/elements/common/annotator-context/__tests__/withAnnotatorContext.test.tsx +18 -6
- package/src/elements/common/annotator-context/index.js.flow +4 -0
- package/src/elements/common/annotator-context/index.ts +1 -0
- package/src/elements/common/annotator-context/types.js.flow +77 -35
- package/src/elements/common/annotator-context/types.ts +28 -6
- package/src/elements/common/annotator-context/useAnnotatorEvents.js.flow +52 -0
- package/src/elements/common/annotator-context/useAnnotatorEvents.ts +190 -0
- package/src/elements/common/annotator-context/withAnnotations.js.flow +73 -36
- package/src/elements/common/annotator-context/withAnnotations.tsx +170 -7
- package/src/elements/common/annotator-context/withAnnotatorContext.js.flow +29 -9
- package/src/elements/common/annotator-context/withAnnotatorContext.tsx +28 -5
- package/src/elements/common/current-user/__tests__/withCurrentUser.test.tsx +108 -0
- package/src/elements/common/current-user/index.js.flow +8 -0
- package/src/elements/common/current-user/index.ts +2 -0
- package/src/elements/common/current-user/withCurrentUser.js.flow +40 -0
- package/src/elements/common/current-user/withCurrentUser.tsx +139 -0
- package/src/elements/common/flowTypes.js +22 -4
- package/src/elements/common/interactionTargets.js +2 -0
- package/src/elements/common/logger/Logger.js +1 -1
- package/src/elements/common/messages.js +5 -0
- package/src/elements/content-explorer/DeleteConfirmationDialog.js +3 -1
- package/src/elements/content-explorer/DeleteConfirmationDialog.scss +5 -0
- package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +60 -0
- package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.md +1 -0
- package/src/elements/content-sidebar/ActivitySidebar.js +381 -154
- package/src/elements/content-sidebar/ActivitySidebarFilter.js +59 -0
- package/src/elements/content-sidebar/ActivitySidebarFilter.scss +4 -0
- package/src/elements/content-sidebar/DetailsSidebar.js +32 -4
- package/src/elements/content-sidebar/Sidebar.js +6 -1
- package/src/elements/content-sidebar/SidebarContentInsights.scss +6 -0
- package/src/elements/content-sidebar/SidebarContentInsights.tsx +57 -0
- package/src/elements/content-sidebar/SidebarPanels.js +4 -0
- package/src/elements/content-sidebar/__tests__/ActivitySidebar.test.js +533 -243
- package/src/elements/content-sidebar/__tests__/ActivitySidebarFilter.test.js +54 -0
- package/src/elements/content-sidebar/__tests__/DetailsSidebar.test.js +45 -0
- package/src/elements/content-sidebar/__tests__/Sidebar.test.js +1 -1
- package/src/elements/content-sidebar/__tests__/SidebarContentInsights.test.tsx +56 -0
- package/src/elements/content-sidebar/__tests__/SidebarPanels.test.js +4 -3
- package/src/elements/content-sidebar/__tests__/__snapshots__/ActivitySidebar.test.js.snap +29 -15
- package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarFileProperties.test.js.snap +1 -0
- package/src/elements/content-sidebar/__tests__/withSidebarAnnotations.test.js +325 -32
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +122 -24
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +59 -18
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +126 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +85 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +59 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +22 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActiveState.test.js +19 -5
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityFeed.test.js +22 -16
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThread.test.js +80 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadReplies.test.js +24 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadRepliesForm.test.js +47 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActiveState.test.js.snap +74 -43
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/activityFeedUtils.test.js +8 -8
- package/src/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js +2 -2
- package/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.ts +56 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/messages.js +20 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +117 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +7 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +105 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +5 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +86 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.scss +3 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThread.test.js +28 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadContent.test.js +89 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadCreate.test.js +103 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useAnnotationAPI.test.js +202 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useRepliesAPI.test.js +99 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/errors.js +26 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/index.js +1 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/messages.js +21 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +203 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +121 -0
- package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +24 -4
- package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +36 -2
- package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivity.test.js +14 -10
- package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivityMenu.test.js +35 -1
- package/src/elements/content-sidebar/activity-feed/annotations/messages.js +10 -0
- package/src/elements/content-sidebar/activity-feed/comment/Comment.js +54 -10
- package/src/elements/content-sidebar/activity-feed/comment/__tests__/Comment.test.js +152 -7
- package/src/elements/content-sidebar/activity-feed/comment/__tests__/__snapshots__/Comment.test.js.snap +12 -7
- package/src/elements/content-sidebar/activity-feed/comment/messages.js +10 -0
- package/src/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +3 -1
- package/src/elements/content-sidebar/activity-feed/comment-form/__tests__/CommentForm.test.js +11 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js +34 -4
- package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +40 -3
- package/src/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js +42 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js +24 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-message/__tests__/ActivityMessage.test.js +48 -1
- package/src/elements/content-sidebar/activity-feed/common/activity-message/messages.js +15 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js +30 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +6 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-status/__tests__/ActivityStatus.test.js +19 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-status/index.js +2 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-status/messages.js +13 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-timestamp/ActivityTimestamp.scss +1 -1
- package/src/elements/content-sidebar/activity-feed/task-new/__tests__/Task.test.js +4 -3
- package/src/elements/content-sidebar/activity-feed/task-new/__tests__/__snapshots__/Task.test.js.snap +1 -2
- package/src/elements/content-sidebar/fixtures.js +185 -0
- package/src/elements/content-sidebar/flowTypes.js +9 -25
- package/src/elements/content-sidebar/messages.js +10 -0
- package/src/elements/content-sidebar/withErrorHandling.js +1 -1
- package/src/elements/content-sidebar/withSidebarAnnotations.js +162 -11
- package/src/elements/content-uploader/OverallUploadsProgressBar.js +11 -12
- package/src/features/classification/Classification.scss +1 -1
- package/src/features/classification/security-controls/SecurityControlsItem.scss +1 -0
- package/src/features/classification/security-controls/__tests__/__snapshots__/utils.test.js.snap +18 -16
- package/src/features/classification/security-controls/__tests__/utils.test.js +13 -5
- package/src/features/classification/security-controls/messages.js +10 -0
- package/src/features/classification/security-controls/utils.js +8 -12
- package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebarLogo.test.js.snap +2 -0
- package/src/features/content-explorer/content-explorer/ContentExplorer.js +4 -0
- package/src/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
- package/src/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +14 -11
- package/src/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +4 -1
- package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerBreadcrumbs.test.js +2 -2
- package/src/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +5 -1
- package/src/features/content-explorer/content-explorer-modal/__tests__/__snapshots__/ContentExplorerModal.test.js.snap +1 -0
- package/src/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +5 -1
- package/src/features/content-explorer/prop-types.js +8 -0
- package/src/features/content-insights/CompactCount.tsx +23 -0
- package/src/features/content-insights/ContentAnalyticsErrorState.scss +17 -0
- package/src/features/content-insights/ContentAnalyticsErrorState.tsx +44 -0
- package/src/features/content-insights/ContentInsightsSummary.scss +12 -0
- package/src/features/content-insights/ContentInsightsSummary.tsx +45 -0
- package/src/features/content-insights/ContentInsightsSummaryGhostState.scss +9 -0
- package/src/features/content-insights/ContentInsightsSummaryGhostState.tsx +18 -0
- package/src/features/content-insights/GraphCardGhostState.scss +18 -0
- package/src/features/content-insights/GraphCardGhostState.tsx +18 -0
- package/src/features/content-insights/GraphCardPreviewsSummary.scss +10 -0
- package/src/features/content-insights/GraphCardPreviewsSummary.tsx +40 -0
- package/src/features/content-insights/GraphGhostState.scss +11 -0
- package/src/features/content-insights/GraphGhostState.tsx +17 -0
- package/src/features/content-insights/HeaderWithCount.scss +10 -0
- package/src/features/content-insights/HeaderWithCount.tsx +24 -0
- package/src/features/content-insights/MetricSummary.scss +14 -0
- package/src/features/content-insights/MetricSummary.tsx +65 -0
- package/src/features/content-insights/OpenContentInsightsButton.tsx +20 -0
- package/src/features/content-insights/TrendPill.scss +33 -0
- package/src/features/content-insights/TrendPill.tsx +70 -0
- package/src/features/content-insights/__tests__/CompactCount.test.tsx +57 -0
- package/src/features/content-insights/__tests__/ContentAnalyticsErrorState.test.tsx +33 -0
- package/src/features/content-insights/__tests__/ContentInsightsSummary.test.tsx +81 -0
- package/src/features/content-insights/__tests__/GraphCardPreviewsSummary.test.tsx +35 -0
- package/src/features/content-insights/__tests__/HeaderWithCount.test.tsx +26 -0
- package/src/features/content-insights/__tests__/MetricSummary.test.tsx +88 -0
- package/src/features/content-insights/_mixins.scss +7 -0
- package/src/features/content-insights/_variables.scss +4 -0
- package/src/features/content-insights/charts/bar/Bar.scss +27 -0
- package/src/features/content-insights/charts/bar/Bar.tsx +48 -0
- package/src/features/content-insights/charts/bar/BarChart.scss +56 -0
- package/src/features/content-insights/charts/bar/BarChart.tsx +78 -0
- package/src/features/content-insights/charts/bar/__tests__/Bar.test.tsx +74 -0
- package/src/features/content-insights/charts/bar/__tests__/BarChart.test.tsx +110 -0
- package/src/features/content-insights/charts/types.ts +3 -0
- package/src/features/content-insights/constants.ts +60 -0
- package/src/features/content-insights/messages.ts +90 -0
- package/src/features/content-insights/numberUtils.ts +9 -0
- package/src/features/content-insights/types.ts +33 -0
- package/src/features/item-details/ItemProperties.scss +1 -1
- package/src/features/shared-link-settings-modal/SharedLinkSettingsModal.js +4 -2
- package/src/features/shared-link-settings-modal/__tests__/SharedLinkSettingsModal.test.js +22 -3
- package/src/features/shared-link-settings-modal/__tests__/__snapshots__/SharedLinkSettingsModal.test.js.snap +2 -1
- package/src/features/unified-share-modal/ContactRestrictionNotice.js +36 -6
- package/src/features/unified-share-modal/EmailForm.js +31 -13
- package/src/features/unified-share-modal/UnifiedShareForm.js +25 -8
- package/src/features/unified-share-modal/UnifiedShareModal.js +1 -0
- package/src/features/unified-share-modal/__tests__/ContactRestrictionNotice.test.js +55 -6
- package/src/features/unified-share-modal/__tests__/EmailForm.test.js +131 -24
- package/src/features/unified-share-modal/__tests__/UnifiedShareForm.test.js +89 -35
- package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareForm.test.js.snap +16 -0
- package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareModal.test.js.snap +17 -0
- package/src/features/unified-share-modal/flowTypes.js +4 -2
- package/src/features/unified-share-modal/messages.js +14 -8
- package/src/features/unified-share-modal/utils/__tests__/hasRestrictedContacts.test.js +24 -10
- package/src/features/unified-share-modal/utils/__tests__/isRestrictedContact.test.js +33 -0
- package/src/features/unified-share-modal/utils/hasRestrictedContacts.js +10 -3
- package/src/features/unified-share-modal/utils/isRestrictedContact.js +21 -0
- package/src/features/virtualized-table/__tests__/__snapshots__/VirtualizedTable.test.js.snap +1 -0
- package/src/icon/fill/Alert16.js.flow +3 -2
- package/src/icon/fill/Alert16.tsx +3 -2
- package/src/icon/fill/AlertBadge16.js.flow +29 -0
- package/src/icon/fill/AlertBadge16.stories.tsx +13 -0
- package/src/icon/fill/AlertBadge16.tsx +27 -0
- package/src/icon/fill/Info16.js.flow +1 -1
- package/src/icon/fill/Info16.tsx +1 -1
- package/src/icon/fill/InfoBadge16.js.flow +28 -0
- package/src/icon/fill/InfoBadge16.stories.tsx +13 -0
- package/src/icon/fill/InfoBadge16.tsx +26 -0
- package/src/icon/fill/UserSettings16.js.flow +38 -0
- package/src/icon/fill/UserSettings16.stories.tsx +13 -0
- package/src/icon/fill/UserSettings16.tsx +36 -0
- package/src/icon/line/AlertBubble16.js.flow +29 -0
- package/src/icon/line/AlertBubble16.stories.tsx +13 -0
- package/src/icon/line/AlertBubble16.tsx +27 -0
- package/src/icon/line/AvatarXBadge16.js.flow +39 -0
- package/src/icon/line/AvatarXBadge16.stories.tsx +13 -0
- package/src/icon/line/AvatarXBadge16.tsx +37 -0
- package/src/icon/line/CoEdit16.js.flow +30 -0
- package/src/icon/line/CoEdit16.stories.tsx +13 -0
- package/src/icon/line/CoEdit16.tsx +28 -0
- package/src/icon/line/Collaborations16.js.flow +30 -0
- package/src/icon/line/Collaborations16.stories.tsx +13 -0
- package/src/icon/line/Collaborations16.tsx +28 -0
- package/src/icon/line/CommentBubble16.js.flow +34 -0
- package/src/icon/line/CommentBubble16.stories.tsx +13 -0
- package/src/icon/line/CommentBubble16.tsx +32 -0
- package/src/styles/constants/_layout.scss +1 -1
- package/src/styles/constants/_media-queries.scss +2 -0
- package/src/styles/variables.js +4 -2
- package/src/styles/variables.json +4 -2
- package/src/styles/variables.ts +3 -1
- package/src/utils/__tests__/fields.test.js +23 -4
- package/src/utils/__tests__/sorter.test.js +3 -3
- package/src/utils/error.js +5 -1
- package/src/utils/fields.js +21 -3
- package/src/utils/sorter.js +2 -2
- package/es/common/types/threadedComments.js +0 -2
- package/es/common/types/threadedComments.js.flow +0 -9
- package/src/common/types/threadedComments.js +0 -9
|
@@ -17,10 +17,18 @@ import messages from './messages';
|
|
|
17
17
|
import { collapseFeedState, ItemTypes } from './activityFeedUtils';
|
|
18
18
|
import { PERMISSION_CAN_CREATE_ANNOTATIONS } from '../../../../constants';
|
|
19
19
|
import { scrollIntoView } from '../../../../utils/dom';
|
|
20
|
-
import type {
|
|
20
|
+
import type {
|
|
21
|
+
Annotation,
|
|
22
|
+
AnnotationPermission,
|
|
23
|
+
BoxCommentPermission,
|
|
24
|
+
CommentFeedItemType,
|
|
25
|
+
FocusableFeedItemType,
|
|
26
|
+
FeedItems,
|
|
27
|
+
FeedItemStatus,
|
|
28
|
+
} from '../../../../common/types/feed';
|
|
21
29
|
import type { SelectorItems, User, GroupMini, BoxItem } from '../../../../common/types/core';
|
|
22
|
-
import type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
|
|
23
|
-
import type { Translations
|
|
30
|
+
import type { Errors, GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
|
|
31
|
+
import type { Translations } from '../../flowTypes';
|
|
24
32
|
import './ActivityFeed.scss';
|
|
25
33
|
|
|
26
34
|
type Props = {
|
|
@@ -36,15 +44,36 @@ type Props = {
|
|
|
36
44
|
getAvatarUrl: GetAvatarUrlCallback,
|
|
37
45
|
getMentionWithQuery?: Function,
|
|
38
46
|
getUserProfileUrl?: GetProfileUrlCallback,
|
|
47
|
+
hasReplies?: boolean,
|
|
39
48
|
isDisabled?: boolean,
|
|
40
49
|
mentionSelectorContacts?: SelectorItems<User>,
|
|
41
50
|
onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,
|
|
42
51
|
onAnnotationEdit?: (id: string, text: string, permissions: AnnotationPermission) => void,
|
|
43
52
|
onAnnotationSelect?: (annotation: Annotation) => void,
|
|
53
|
+
onAnnotationStatusChange?: (id: string, status: FeedItemStatus, permissions: AnnotationPermission) => void,
|
|
44
54
|
onAppActivityDelete?: Function,
|
|
45
55
|
onCommentCreate?: Function,
|
|
46
56
|
onCommentDelete?: Function,
|
|
47
|
-
onCommentUpdate?:
|
|
57
|
+
onCommentUpdate?: (
|
|
58
|
+
id: string,
|
|
59
|
+
text?: string,
|
|
60
|
+
status?: FeedItemStatus,
|
|
61
|
+
hasMention: boolean,
|
|
62
|
+
permissions: BoxCommentPermission,
|
|
63
|
+
onSuccess: ?Function,
|
|
64
|
+
onError: ?Function,
|
|
65
|
+
) => void,
|
|
66
|
+
onReplyCreate?: (parentId: string, parentType: CommentFeedItemType, text: string) => void,
|
|
67
|
+
onReplyDelete?: ({ id: string, parentId: string, permissions: BoxCommentPermission }) => void,
|
|
68
|
+
onReplyUpdate?: (
|
|
69
|
+
id: string,
|
|
70
|
+
parentId: string,
|
|
71
|
+
text: string,
|
|
72
|
+
permissions: BoxCommentPermission,
|
|
73
|
+
onSuccess: ?Function,
|
|
74
|
+
onError: ?Function,
|
|
75
|
+
) => void,
|
|
76
|
+
onShowReplies?: (id: string, type: CommentFeedItemType) => void,
|
|
48
77
|
onTaskAssignmentUpdate?: Function,
|
|
49
78
|
onTaskCreate?: Function,
|
|
50
79
|
onTaskDelete?: Function,
|
|
@@ -206,16 +235,22 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
206
235
|
getAvatarUrl,
|
|
207
236
|
getMentionWithQuery,
|
|
208
237
|
getUserProfileUrl,
|
|
238
|
+
hasReplies,
|
|
209
239
|
isDisabled,
|
|
210
240
|
mentionSelectorContacts,
|
|
211
241
|
contactsLoaded,
|
|
212
242
|
onAnnotationDelete,
|
|
213
243
|
onAnnotationEdit,
|
|
214
244
|
onAnnotationSelect,
|
|
245
|
+
onAnnotationStatusChange,
|
|
215
246
|
onAppActivityDelete,
|
|
216
247
|
onCommentCreate,
|
|
217
248
|
onCommentDelete,
|
|
218
249
|
onCommentUpdate,
|
|
250
|
+
onReplyCreate,
|
|
251
|
+
onReplyDelete,
|
|
252
|
+
onReplyUpdate,
|
|
253
|
+
onShowReplies,
|
|
219
254
|
onTaskAssignmentUpdate,
|
|
220
255
|
onTaskDelete,
|
|
221
256
|
onTaskModalClose,
|
|
@@ -273,32 +308,38 @@ class ActivityFeed extends React.Component<Props, State> {
|
|
|
273
308
|
{!isEmpty && !isLoading && (
|
|
274
309
|
<ActiveState
|
|
275
310
|
{...activityFeedError}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
311
|
+
activeFeedEntryId={activeFeedEntryId}
|
|
312
|
+
activeFeedEntryType={activeFeedEntryType}
|
|
313
|
+
activeFeedItemRef={this.activeFeedItemRef}
|
|
314
|
+
approverSelectorContacts={approverSelectorContacts}
|
|
279
315
|
currentFileVersionId={currentFileVersionId}
|
|
280
|
-
|
|
316
|
+
currentUser={currentUser}
|
|
317
|
+
getApproverWithQuery={getApproverWithQuery}
|
|
318
|
+
getAvatarUrl={getAvatarUrl}
|
|
319
|
+
getMentionWithQuery={getMentionWithQuery}
|
|
320
|
+
getUserProfileUrl={getUserProfileUrl}
|
|
321
|
+
hasReplies={hasReplies}
|
|
322
|
+
isDisabled={isDisabled}
|
|
323
|
+
items={collapseFeedState(feedItems)}
|
|
324
|
+
mentionSelectorContacts={mentionSelectorContacts}
|
|
281
325
|
onAnnotationDelete={onAnnotationDelete}
|
|
282
326
|
onAnnotationEdit={onAnnotationEdit}
|
|
283
327
|
onAnnotationSelect={onAnnotationSelect}
|
|
328
|
+
onAnnotationStatusChange={onAnnotationStatusChange}
|
|
284
329
|
onAppActivityDelete={onAppActivityDelete}
|
|
285
330
|
onCommentDelete={hasCommentPermission ? onCommentDelete : noop}
|
|
286
331
|
onCommentEdit={hasCommentPermission ? onCommentUpdate : noop}
|
|
332
|
+
onReplyCreate={hasCommentPermission ? onReplyCreate : noop}
|
|
333
|
+
onReplyDelete={hasCommentPermission ? onReplyDelete : noop}
|
|
334
|
+
onReplyUpdate={hasCommentPermission ? onReplyUpdate : noop}
|
|
335
|
+
onShowReplies={onShowReplies}
|
|
336
|
+
onTaskAssignmentUpdate={onTaskAssignmentUpdate}
|
|
287
337
|
onTaskDelete={onTaskDelete}
|
|
288
338
|
onTaskEdit={onTaskUpdate}
|
|
289
|
-
onTaskView={onTaskView}
|
|
290
339
|
onTaskModalClose={onTaskModalClose}
|
|
340
|
+
onTaskView={onTaskView}
|
|
291
341
|
onVersionInfo={onVersionHistoryClick ? this.openVersionHistoryPopup : null}
|
|
292
342
|
translations={translations}
|
|
293
|
-
getAvatarUrl={getAvatarUrl}
|
|
294
|
-
getUserProfileUrl={getUserProfileUrl}
|
|
295
|
-
mentionSelectorContacts={mentionSelectorContacts}
|
|
296
|
-
getMentionWithQuery={getMentionWithQuery}
|
|
297
|
-
approverSelectorContacts={approverSelectorContacts}
|
|
298
|
-
getApproverWithQuery={getApproverWithQuery}
|
|
299
|
-
activeFeedEntryId={activeFeedEntryId}
|
|
300
|
-
activeFeedEntryType={activeFeedEntryType}
|
|
301
|
-
activeFeedItemRef={this.activeFeedItemRef}
|
|
302
343
|
/>
|
|
303
344
|
)}
|
|
304
345
|
{isInlineFeedItemErrorVisible && inlineFeedItemErrorMessage && (
|
|
@@ -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","isDisabled","mentionSelectorContacts","contactsLoaded","onAnnotationDelete","onAnnotationEdit","onAnnotationSelect","onAppActivityDelete","onCommentDelete","onCommentUpdate","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 { Annotation, AnnotationPermission, FocusableFeedItemType, FeedItems } from '../../../../common/types/feed';\nimport type { SelectorItems, User, GroupMini, BoxItem } from '../../../../common/types/core';\nimport type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations, Errors } 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 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 onAppActivityDelete?: Function,\n onCommentCreate?: Function,\n onCommentDelete?: Function,\n onCommentUpdate?: Function,\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 isDisabled,\n mentionSelectorContacts,\n contactsLoaded,\n onAnnotationDelete,\n onAnnotationEdit,\n onAnnotationSelect,\n onAppActivityDelete,\n onCommentCreate,\n onCommentDelete,\n onCommentUpdate,\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 items={collapseFeedState(feedItems)}\n isDisabled={isDisabled}\n currentUser={currentUser}\n currentFileVersionId={currentFileVersionId}\n onTaskAssignmentUpdate={onTaskAssignmentUpdate}\n onAnnotationDelete={onAnnotationDelete}\n onAnnotationEdit={onAnnotationEdit}\n onAnnotationSelect={onAnnotationSelect}\n onAppActivityDelete={onAppActivityDelete}\n onCommentDelete={hasCommentPermission ? onCommentDelete : noop}\n onCommentEdit={hasCommentPermission ? onCommentUpdate : noop}\n onTaskDelete={onTaskDelete}\n onTaskEdit={onTaskUpdate}\n onTaskView={onTaskView}\n onTaskModalClose={onTaskModalClose}\n onVersionInfo={onVersionHistoryClick ? this.openVersionHistoryPopup : null}\n translations={translations}\n getAvatarUrl={getAvatarUrl}\n getUserProfileUrl={getUserProfileUrl}\n mentionSelectorContacts={mentionSelectorContacts}\n getMentionWithQuery={getMentionWithQuery}\n approverSelectorContacts={approverSelectorContacts}\n getApproverWithQuery={getApproverWithQuery}\n activeFeedEntryId={activeFeedEntryId}\n activeFeedEntryType={activeFeedEntryType}\n activeFeedItemRef={this.activeFeedItemRef}\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","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","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 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 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 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 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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
|
|
3
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
|
4
|
+
|
|
5
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
|
6
|
+
|
|
7
|
+
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
8
|
+
|
|
9
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
10
|
+
|
|
11
|
+
import * as React from 'react';
|
|
12
|
+
import { FormattedMessage } from 'react-intl';
|
|
13
|
+
import noop from 'lodash/noop';
|
|
14
|
+
import LoadingIndicator from '../../../../components/loading-indicator';
|
|
15
|
+
import PlainButton from '../../../../components/plain-button';
|
|
16
|
+
import ActivityThreadReplies from './ActivityThreadReplies';
|
|
17
|
+
import ActivityThreadReplyForm from './ActivityThreadReplyForm';
|
|
18
|
+
import messages from './messages';
|
|
19
|
+
import './ActivityThread.scss';
|
|
20
|
+
|
|
21
|
+
var ActivityThread = function ActivityThread(_ref) {
|
|
22
|
+
var children = _ref.children,
|
|
23
|
+
currentUser = _ref.currentUser,
|
|
24
|
+
getAvatarUrl = _ref.getAvatarUrl,
|
|
25
|
+
getMentionWithQuery = _ref.getMentionWithQuery,
|
|
26
|
+
getUserProfileUrl = _ref.getUserProfileUrl,
|
|
27
|
+
hasReplies = _ref.hasReplies,
|
|
28
|
+
_ref$isAlwaysExpanded = _ref.isAlwaysExpanded,
|
|
29
|
+
isAlwaysExpanded = _ref$isAlwaysExpanded === void 0 ? false : _ref$isAlwaysExpanded,
|
|
30
|
+
isRepliesLoading = _ref.isRepliesLoading,
|
|
31
|
+
mentionSelectorContacts = _ref.mentionSelectorContacts,
|
|
32
|
+
onReplyCreate = _ref.onReplyCreate,
|
|
33
|
+
_ref$onReplyDelete = _ref.onReplyDelete,
|
|
34
|
+
onReplyDelete = _ref$onReplyDelete === void 0 ? noop : _ref$onReplyDelete,
|
|
35
|
+
_ref$onReplyEdit = _ref.onReplyEdit,
|
|
36
|
+
onReplyEdit = _ref$onReplyEdit === void 0 ? noop : _ref$onReplyEdit,
|
|
37
|
+
_ref$onShowReplies = _ref.onShowReplies,
|
|
38
|
+
onShowReplies = _ref$onShowReplies === void 0 ? noop : _ref$onShowReplies,
|
|
39
|
+
_ref$replies = _ref.replies,
|
|
40
|
+
replies = _ref$replies === void 0 ? [] : _ref$replies,
|
|
41
|
+
_ref$repliesTotalCoun = _ref.repliesTotalCount,
|
|
42
|
+
repliesTotalCount = _ref$repliesTotalCoun === void 0 ? 0 : _ref$repliesTotalCoun,
|
|
43
|
+
translations = _ref.translations;
|
|
44
|
+
|
|
45
|
+
var _React$useState = React.useState(isAlwaysExpanded),
|
|
46
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
47
|
+
isExpanded = _React$useState2[0],
|
|
48
|
+
setIsExpanded = _React$useState2[1];
|
|
49
|
+
|
|
50
|
+
var toggleButtonLabel = isExpanded ? messages.hideReplies : messages.showReplies;
|
|
51
|
+
var repliesToLoadCount = Math.max(repliesTotalCount - 1, 0);
|
|
52
|
+
|
|
53
|
+
var toggleReplies = function toggleReplies() {
|
|
54
|
+
if (!isExpanded) {
|
|
55
|
+
onShowReplies();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
setIsExpanded(function (previousState) {
|
|
59
|
+
return !previousState;
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
if (!hasReplies) {
|
|
64
|
+
return children;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return React.createElement("div", {
|
|
68
|
+
className: "bcs-ActivityThread",
|
|
69
|
+
"data-testid": "activity-thread"
|
|
70
|
+
}, children, isRepliesLoading && React.createElement("div", {
|
|
71
|
+
className: "bcs-ActivityThread-loading",
|
|
72
|
+
"data-testid": "activity-thread-loading"
|
|
73
|
+
}, React.createElement(LoadingIndicator, null)), !isAlwaysExpanded && !isRepliesLoading && repliesTotalCount > 1 && React.createElement(PlainButton, {
|
|
74
|
+
className: "bcs-ActivityThread-toggle",
|
|
75
|
+
onClick: toggleReplies,
|
|
76
|
+
type: "button",
|
|
77
|
+
"data-testid": "activity-thread-button"
|
|
78
|
+
}, React.createElement(FormattedMessage, _extends({
|
|
79
|
+
values: {
|
|
80
|
+
repliesToLoadCount: repliesToLoadCount
|
|
81
|
+
}
|
|
82
|
+
}, toggleButtonLabel))), !isRepliesLoading && repliesTotalCount > 0 && replies.length > 0 && React.createElement(ActivityThreadReplies, {
|
|
83
|
+
currentUser: currentUser,
|
|
84
|
+
getAvatarUrl: getAvatarUrl,
|
|
85
|
+
getMentionWithQuery: getMentionWithQuery,
|
|
86
|
+
getUserProfileUrl: getUserProfileUrl,
|
|
87
|
+
isExpanded: isExpanded,
|
|
88
|
+
mentionSelectorContacts: mentionSelectorContacts,
|
|
89
|
+
onDelete: onReplyDelete,
|
|
90
|
+
onEdit: onReplyEdit,
|
|
91
|
+
replies: replies,
|
|
92
|
+
translations: translations
|
|
93
|
+
}), onReplyCreate ? React.createElement(ActivityThreadReplyForm, {
|
|
94
|
+
getMentionWithQuery: getMentionWithQuery,
|
|
95
|
+
mentionSelectorContacts: mentionSelectorContacts,
|
|
96
|
+
onReplyCreate: onReplyCreate
|
|
97
|
+
}) : null);
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export default ActivityThread;
|
|
101
|
+
//# sourceMappingURL=ActivityThread.js.map
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { FormattedMessage } from 'react-intl';
|
|
4
|
+
import noop from 'lodash/noop';
|
|
5
|
+
|
|
6
|
+
import LoadingIndicator from '../../../../components/loading-indicator';
|
|
7
|
+
import PlainButton from '../../../../components/plain-button';
|
|
8
|
+
import ActivityThreadReplies from './ActivityThreadReplies';
|
|
9
|
+
import ActivityThreadReplyForm from './ActivityThreadReplyForm';
|
|
10
|
+
|
|
11
|
+
import type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
|
|
12
|
+
import type { Translations } from '../../flowTypes';
|
|
13
|
+
import type { SelectorItems, User } from '../../../../common/types/core';
|
|
14
|
+
import type { BoxCommentPermission, Comment as CommentType, FeedItemStatus } from '../../../../common/types/feed';
|
|
15
|
+
|
|
16
|
+
import messages from './messages';
|
|
17
|
+
|
|
18
|
+
import './ActivityThread.scss';
|
|
19
|
+
|
|
20
|
+
type Props = {
|
|
21
|
+
children: React.Node,
|
|
22
|
+
currentUser?: User,
|
|
23
|
+
getAvatarUrl: GetAvatarUrlCallback,
|
|
24
|
+
getMentionWithQuery?: Function,
|
|
25
|
+
getUserProfileUrl?: GetProfileUrlCallback,
|
|
26
|
+
hasReplies: boolean,
|
|
27
|
+
isAlwaysExpanded?: boolean,
|
|
28
|
+
isRepliesLoading?: boolean,
|
|
29
|
+
mentionSelectorContacts?: SelectorItems<>,
|
|
30
|
+
onReplyCreate?: (text: string) => void,
|
|
31
|
+
onReplyDelete?: ({ id: string, permissions: BoxCommentPermission }) => void,
|
|
32
|
+
onReplyEdit?: (
|
|
33
|
+
id: string,
|
|
34
|
+
text: string,
|
|
35
|
+
status?: FeedItemStatus,
|
|
36
|
+
hasMention?: boolean,
|
|
37
|
+
permissions: BoxCommentPermission,
|
|
38
|
+
onSuccess: ?Function,
|
|
39
|
+
onError: ?Function,
|
|
40
|
+
) => void,
|
|
41
|
+
onShowReplies?: () => void,
|
|
42
|
+
replies?: Array<CommentType>,
|
|
43
|
+
repliesTotalCount?: number,
|
|
44
|
+
translations?: Translations,
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const ActivityThread = ({
|
|
48
|
+
children,
|
|
49
|
+
currentUser,
|
|
50
|
+
getAvatarUrl,
|
|
51
|
+
getMentionWithQuery,
|
|
52
|
+
getUserProfileUrl,
|
|
53
|
+
hasReplies,
|
|
54
|
+
isAlwaysExpanded = false,
|
|
55
|
+
isRepliesLoading,
|
|
56
|
+
mentionSelectorContacts,
|
|
57
|
+
onReplyCreate,
|
|
58
|
+
onReplyDelete = noop,
|
|
59
|
+
onReplyEdit = noop,
|
|
60
|
+
onShowReplies = noop,
|
|
61
|
+
replies = [],
|
|
62
|
+
repliesTotalCount = 0,
|
|
63
|
+
translations,
|
|
64
|
+
}: Props) => {
|
|
65
|
+
const [isExpanded, setIsExpanded] = React.useState(isAlwaysExpanded);
|
|
66
|
+
|
|
67
|
+
const toggleButtonLabel = isExpanded ? messages.hideReplies : messages.showReplies;
|
|
68
|
+
const repliesToLoadCount = Math.max(repliesTotalCount - 1, 0);
|
|
69
|
+
|
|
70
|
+
const toggleReplies = () => {
|
|
71
|
+
if (!isExpanded) {
|
|
72
|
+
onShowReplies();
|
|
73
|
+
}
|
|
74
|
+
setIsExpanded(previousState => !previousState);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
if (!hasReplies) {
|
|
78
|
+
return children;
|
|
79
|
+
}
|
|
80
|
+
return (
|
|
81
|
+
<div className="bcs-ActivityThread" data-testid="activity-thread">
|
|
82
|
+
{children}
|
|
83
|
+
|
|
84
|
+
{isRepliesLoading && (
|
|
85
|
+
<div className="bcs-ActivityThread-loading" data-testid="activity-thread-loading">
|
|
86
|
+
<LoadingIndicator />
|
|
87
|
+
</div>
|
|
88
|
+
)}
|
|
89
|
+
{!isAlwaysExpanded && !isRepliesLoading && repliesTotalCount > 1 && (
|
|
90
|
+
<PlainButton
|
|
91
|
+
className="bcs-ActivityThread-toggle"
|
|
92
|
+
onClick={toggleReplies}
|
|
93
|
+
type="button"
|
|
94
|
+
data-testid="activity-thread-button"
|
|
95
|
+
>
|
|
96
|
+
<FormattedMessage values={{ repliesToLoadCount }} {...toggleButtonLabel} />
|
|
97
|
+
</PlainButton>
|
|
98
|
+
)}
|
|
99
|
+
|
|
100
|
+
{!isRepliesLoading && repliesTotalCount > 0 && replies.length > 0 && (
|
|
101
|
+
<ActivityThreadReplies
|
|
102
|
+
currentUser={currentUser}
|
|
103
|
+
getAvatarUrl={getAvatarUrl}
|
|
104
|
+
getMentionWithQuery={getMentionWithQuery}
|
|
105
|
+
getUserProfileUrl={getUserProfileUrl}
|
|
106
|
+
isExpanded={isExpanded}
|
|
107
|
+
mentionSelectorContacts={mentionSelectorContacts}
|
|
108
|
+
onDelete={onReplyDelete}
|
|
109
|
+
onEdit={onReplyEdit}
|
|
110
|
+
replies={replies}
|
|
111
|
+
translations={translations}
|
|
112
|
+
/>
|
|
113
|
+
)}
|
|
114
|
+
|
|
115
|
+
{onReplyCreate ? (
|
|
116
|
+
<ActivityThreadReplyForm
|
|
117
|
+
getMentionWithQuery={getMentionWithQuery}
|
|
118
|
+
mentionSelectorContacts={mentionSelectorContacts}
|
|
119
|
+
onReplyCreate={onReplyCreate}
|
|
120
|
+
/>
|
|
121
|
+
) : null}
|
|
122
|
+
</div>
|
|
123
|
+
);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export default ActivityThread;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js"],"names":["React","FormattedMessage","noop","LoadingIndicator","PlainButton","ActivityThreadReplies","ActivityThreadReplyForm","messages","ActivityThread","children","currentUser","getAvatarUrl","getMentionWithQuery","getUserProfileUrl","hasReplies","isAlwaysExpanded","isRepliesLoading","mentionSelectorContacts","onReplyCreate","onReplyDelete","onReplyEdit","onShowReplies","replies","repliesTotalCount","translations","useState","isExpanded","setIsExpanded","toggleButtonLabel","hideReplies","showReplies","repliesToLoadCount","Math","max","toggleReplies","previousState","length"],"mappings":"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","sourcesContent":["// @flow\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport noop from 'lodash/noop';\n\nimport LoadingIndicator from '../../../../components/loading-indicator';\nimport PlainButton from '../../../../components/plain-button';\nimport ActivityThreadReplies from './ActivityThreadReplies';\nimport ActivityThreadReplyForm from './ActivityThreadReplyForm';\n\nimport type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations } from '../../flowTypes';\nimport type { SelectorItems, User } from '../../../../common/types/core';\nimport type { BoxCommentPermission, Comment as CommentType, FeedItemStatus } from '../../../../common/types/feed';\n\nimport messages from './messages';\n\nimport './ActivityThread.scss';\n\ntype Props = {\n children: React.Node,\n currentUser?: User,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n getUserProfileUrl?: GetProfileUrlCallback,\n hasReplies: boolean,\n isAlwaysExpanded?: boolean,\n isRepliesLoading?: boolean,\n mentionSelectorContacts?: SelectorItems<>,\n onReplyCreate?: (text: string) => void,\n onReplyDelete?: ({ id: string, permissions: BoxCommentPermission }) => void,\n onReplyEdit?: (\n id: string,\n text: string,\n status?: FeedItemStatus,\n hasMention?: boolean,\n permissions: BoxCommentPermission,\n onSuccess: ?Function,\n onError: ?Function,\n ) => void,\n onShowReplies?: () => void,\n replies?: Array<CommentType>,\n repliesTotalCount?: number,\n translations?: Translations,\n};\n\nconst ActivityThread = ({\n children,\n currentUser,\n getAvatarUrl,\n getMentionWithQuery,\n getUserProfileUrl,\n hasReplies,\n isAlwaysExpanded = false,\n isRepliesLoading,\n mentionSelectorContacts,\n onReplyCreate,\n onReplyDelete = noop,\n onReplyEdit = noop,\n onShowReplies = noop,\n replies = [],\n repliesTotalCount = 0,\n translations,\n}: Props) => {\n const [isExpanded, setIsExpanded] = React.useState(isAlwaysExpanded);\n\n const toggleButtonLabel = isExpanded ? messages.hideReplies : messages.showReplies;\n const repliesToLoadCount = Math.max(repliesTotalCount - 1, 0);\n\n const toggleReplies = () => {\n if (!isExpanded) {\n onShowReplies();\n }\n setIsExpanded(previousState => !previousState);\n };\n\n if (!hasReplies) {\n return children;\n }\n return (\n <div className=\"bcs-ActivityThread\" data-testid=\"activity-thread\">\n {children}\n\n {isRepliesLoading && (\n <div className=\"bcs-ActivityThread-loading\" data-testid=\"activity-thread-loading\">\n <LoadingIndicator />\n </div>\n )}\n {!isAlwaysExpanded && !isRepliesLoading && repliesTotalCount > 1 && (\n <PlainButton\n className=\"bcs-ActivityThread-toggle\"\n onClick={toggleReplies}\n type=\"button\"\n data-testid=\"activity-thread-button\"\n >\n <FormattedMessage values={{ repliesToLoadCount }} {...toggleButtonLabel} />\n </PlainButton>\n )}\n\n {!isRepliesLoading && repliesTotalCount > 0 && replies.length > 0 && (\n <ActivityThreadReplies\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n isExpanded={isExpanded}\n mentionSelectorContacts={mentionSelectorContacts}\n onDelete={onReplyDelete}\n onEdit={onReplyEdit}\n replies={replies}\n translations={translations}\n />\n )}\n\n {onReplyCreate ? (\n <ActivityThreadReplyForm\n getMentionWithQuery={getMentionWithQuery}\n mentionSelectorContacts={mentionSelectorContacts}\n onReplyCreate={onReplyCreate}\n />\n ) : null}\n </div>\n );\n};\n\nexport default ActivityThread;\n"],"file":"ActivityThread.js"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@import '../../../common/variables';
|
|
2
|
+
|
|
3
|
+
.bcs-ActivityThread-toggle {
|
|
4
|
+
margin-left: $sidebarActivityFeedSpacingHorizontal;
|
|
5
|
+
color: $bdl-box-blue;
|
|
6
|
+
font-weight: bold;
|
|
7
|
+
|
|
8
|
+
&:hover,
|
|
9
|
+
&:active {
|
|
10
|
+
margin-left: $sidebarActivityFeedSpacingHorizontal;
|
|
11
|
+
font-weight: bold;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.bcs-ActivityThread-loading {
|
|
16
|
+
padding-bottom: $bdl-grid-unit * 5;
|
|
17
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import Comment from '../comment';
|
|
5
|
+
import './ActivityThreadReplies.scss';
|
|
6
|
+
|
|
7
|
+
var ActivityThreadReplies = function ActivityThreadReplies(_ref) {
|
|
8
|
+
var currentUser = _ref.currentUser,
|
|
9
|
+
getAvatarUrl = _ref.getAvatarUrl,
|
|
10
|
+
getMentionWithQuery = _ref.getMentionWithQuery,
|
|
11
|
+
getUserProfileUrl = _ref.getUserProfileUrl,
|
|
12
|
+
isExpanded = _ref.isExpanded,
|
|
13
|
+
mentionSelectorContacts = _ref.mentionSelectorContacts,
|
|
14
|
+
onDelete = _ref.onDelete,
|
|
15
|
+
onEdit = _ref.onEdit,
|
|
16
|
+
replies = _ref.replies,
|
|
17
|
+
translations = _ref.translations;
|
|
18
|
+
var lastReply = replies[replies.length - 1];
|
|
19
|
+
|
|
20
|
+
var getReplyPermissions = function getReplyPermissions(reply) {
|
|
21
|
+
var _reply$permissions = reply.permissions;
|
|
22
|
+
_reply$permissions = _reply$permissions === void 0 ? {} : _reply$permissions;
|
|
23
|
+
var _reply$permissions$ca = _reply$permissions.can_delete,
|
|
24
|
+
can_delete = _reply$permissions$ca === void 0 ? false : _reply$permissions$ca,
|
|
25
|
+
_reply$permissions$ca2 = _reply$permissions.can_edit,
|
|
26
|
+
can_edit = _reply$permissions$ca2 === void 0 ? false : _reply$permissions$ca2,
|
|
27
|
+
_reply$permissions$ca3 = _reply$permissions.can_resolve,
|
|
28
|
+
can_resolve = _reply$permissions$ca3 === void 0 ? false : _reply$permissions$ca3;
|
|
29
|
+
return {
|
|
30
|
+
can_delete: can_delete,
|
|
31
|
+
can_edit: can_edit,
|
|
32
|
+
can_resolve: can_resolve
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
return React.createElement("div", {
|
|
37
|
+
className: "bcs-ActivityThreadReplies",
|
|
38
|
+
"data-testid": "activity-thread-replies"
|
|
39
|
+
}, !isExpanded ? React.createElement(Comment, _extends({
|
|
40
|
+
key: lastReply.type + lastReply.id
|
|
41
|
+
}, lastReply, {
|
|
42
|
+
currentUser: currentUser,
|
|
43
|
+
getAvatarUrl: getAvatarUrl,
|
|
44
|
+
getMentionWithQuery: getMentionWithQuery,
|
|
45
|
+
getUserProfileUrl: getUserProfileUrl,
|
|
46
|
+
mentionSelectorContacts: mentionSelectorContacts,
|
|
47
|
+
onDelete: onDelete,
|
|
48
|
+
onEdit: onEdit,
|
|
49
|
+
permissions: getReplyPermissions(lastReply),
|
|
50
|
+
translations: translations
|
|
51
|
+
})) : replies.map(function (reply) {
|
|
52
|
+
return React.createElement(Comment, _extends({
|
|
53
|
+
key: reply.type + reply.id
|
|
54
|
+
}, reply, {
|
|
55
|
+
currentUser: currentUser,
|
|
56
|
+
getAvatarUrl: getAvatarUrl,
|
|
57
|
+
getMentionWithQuery: getMentionWithQuery,
|
|
58
|
+
getUserProfileUrl: getUserProfileUrl,
|
|
59
|
+
mentionSelectorContacts: mentionSelectorContacts,
|
|
60
|
+
onDelete: onDelete,
|
|
61
|
+
onEdit: onEdit,
|
|
62
|
+
permissions: getReplyPermissions(reply),
|
|
63
|
+
translations: translations
|
|
64
|
+
}));
|
|
65
|
+
}));
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export default ActivityThreadReplies;
|
|
69
|
+
//# sourceMappingURL=ActivityThreadReplies.js.map
|