box-ui-elements 16.0.0-beta.9 → 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 +84 -8
- package/es/api/Annotations.js.flow +60 -6
- 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 -71
- 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 -12
- 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/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/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 +60 -6
- 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 +77 -3
- package/src/api/__tests__/Feed.test.js +698 -85
- 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 -12
- 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/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
|
@@ -21,6 +21,7 @@ import IconGlobe from '../../icons/general/IconGlobe';
|
|
|
21
21
|
import ContactRestrictionNotice from './ContactRestrictionNotice';
|
|
22
22
|
import ContactsField from './ContactsField';
|
|
23
23
|
import hasRestrictedContacts from './utils/hasRestrictedContacts';
|
|
24
|
+
import isRestrictedContact from './utils/isRestrictedContact';
|
|
24
25
|
import messages from './messages';
|
|
25
26
|
import type { CollabRestrictionType, SuggestedCollabLookup, contactType as Contact, USMConfig } from './flowTypes';
|
|
26
27
|
import type { SelectOptionProp } from '../../components/select-field/props';
|
|
@@ -57,6 +58,7 @@ type Props = {
|
|
|
57
58
|
openInviteCollaboratorsSection?: Function,
|
|
58
59
|
recommendedSharingTooltipCalloutName?: ?string,
|
|
59
60
|
restrictedEmails: Array<string>,
|
|
61
|
+
restrictedGroups: Array<number>,
|
|
60
62
|
selectedContacts: Array<Contact>,
|
|
61
63
|
sendButtonProps?: Object,
|
|
62
64
|
showEnterEmailsCallout: boolean,
|
|
@@ -79,6 +81,7 @@ class EmailForm extends React.Component<Props, State> {
|
|
|
79
81
|
isRestrictionJustificationEnabled: false,
|
|
80
82
|
justificationReasons: [],
|
|
81
83
|
restrictedEmails: [],
|
|
84
|
+
restrictedGroups: [],
|
|
82
85
|
};
|
|
83
86
|
|
|
84
87
|
constructor(props: Props) {
|
|
@@ -152,8 +155,8 @@ class EmailForm extends React.Component<Props, State> {
|
|
|
152
155
|
handleRemoveRestrictedContacts = () => {
|
|
153
156
|
const { onContactRemove, selectedContacts, updateSelectedContacts } = this.props;
|
|
154
157
|
|
|
155
|
-
const [removedContacts, remainingContacts] = partition(selectedContacts, (
|
|
156
|
-
this.
|
|
158
|
+
const [removedContacts, remainingContacts] = partition(selectedContacts, (contact: Contact) =>
|
|
159
|
+
this.isRestrictedContact(contact),
|
|
157
160
|
);
|
|
158
161
|
|
|
159
162
|
updateSelectedContacts(remainingContacts);
|
|
@@ -186,9 +189,15 @@ class EmailForm extends React.Component<Props, State> {
|
|
|
186
189
|
validateContactsRestrictions = () => {
|
|
187
190
|
let contactsRestrictionError = '';
|
|
188
191
|
const { selectedJustificationReason } = this.state;
|
|
189
|
-
const {
|
|
192
|
+
const {
|
|
193
|
+
intl,
|
|
194
|
+
isRestrictionJustificationEnabled,
|
|
195
|
+
selectedContacts,
|
|
196
|
+
restrictedEmails,
|
|
197
|
+
restrictedGroups,
|
|
198
|
+
} = this.props;
|
|
190
199
|
|
|
191
|
-
const hasRestrictedCollabs = hasRestrictedContacts(selectedContacts, restrictedEmails);
|
|
200
|
+
const hasRestrictedCollabs = hasRestrictedContacts(selectedContacts, restrictedEmails, restrictedGroups);
|
|
192
201
|
const isMissingRequiredJustification = isRestrictionJustificationEnabled && !selectedJustificationReason;
|
|
193
202
|
|
|
194
203
|
if (isMissingRequiredJustification) {
|
|
@@ -263,13 +272,20 @@ class EmailForm extends React.Component<Props, State> {
|
|
|
263
272
|
|
|
264
273
|
const emails = [];
|
|
265
274
|
const groupIDs = [];
|
|
275
|
+
const restrictedGroups = [];
|
|
266
276
|
const restrictedEmails = [];
|
|
267
277
|
|
|
268
|
-
selectedContacts.forEach(
|
|
278
|
+
selectedContacts.forEach(contact => {
|
|
279
|
+
const { id, type, value } = contact;
|
|
280
|
+
|
|
269
281
|
if (type === 'group') {
|
|
270
282
|
groupIDs.push(value);
|
|
283
|
+
|
|
284
|
+
if (this.isRestrictedContact(contact)) {
|
|
285
|
+
restrictedGroups.push(id);
|
|
286
|
+
}
|
|
271
287
|
} else {
|
|
272
|
-
if (this.
|
|
288
|
+
if (this.isRestrictedContact(contact)) {
|
|
273
289
|
restrictedEmails.push(value);
|
|
274
290
|
}
|
|
275
291
|
emails.push(value);
|
|
@@ -282,6 +298,7 @@ class EmailForm extends React.Component<Props, State> {
|
|
|
282
298
|
justificationReason: selectedJustificationReason,
|
|
283
299
|
message,
|
|
284
300
|
restrictedEmails,
|
|
301
|
+
restrictedGroups,
|
|
285
302
|
}).catch(error => {
|
|
286
303
|
// Remove sent emails from selected pills
|
|
287
304
|
const invitedEmails = error.invitedEmails || [];
|
|
@@ -319,7 +336,7 @@ class EmailForm extends React.Component<Props, State> {
|
|
|
319
336
|
// Invalid emails are filtered out by ContactsField when parsing
|
|
320
337
|
// new pills, so parsed pills can currently only be invalid
|
|
321
338
|
// when user is restricted by a security policy
|
|
322
|
-
isValid = !this.
|
|
339
|
+
isValid = !this.isRestrictedContact(contactPill) || hasRequiredJustification;
|
|
323
340
|
}
|
|
324
341
|
return isValid;
|
|
325
342
|
};
|
|
@@ -328,17 +345,16 @@ class EmailForm extends React.Component<Props, State> {
|
|
|
328
345
|
const { selectedJustificationReason } = this.state;
|
|
329
346
|
const { isRestrictionJustificationEnabled } = this.props;
|
|
330
347
|
|
|
331
|
-
const pillId = String(contactPill.value);
|
|
332
348
|
const hasRequiredJustification = !!selectedJustificationReason && isRestrictionJustificationEnabled;
|
|
333
|
-
const isWaivedPill = this.
|
|
349
|
+
const isWaivedPill = this.isRestrictedContact(contactPill) && hasRequiredJustification;
|
|
334
350
|
|
|
335
351
|
return isWaivedPill ? 'is-waived' : '';
|
|
336
352
|
};
|
|
337
353
|
|
|
338
|
-
|
|
339
|
-
const { restrictedEmails } = this.props;
|
|
354
|
+
isRestrictedContact = (contact: Contact | SelectOptionProp) => {
|
|
355
|
+
const { restrictedEmails, restrictedGroups } = this.props;
|
|
340
356
|
|
|
341
|
-
return restrictedEmails
|
|
357
|
+
return isRestrictedContact(contact, restrictedEmails, restrictedGroups);
|
|
342
358
|
};
|
|
343
359
|
|
|
344
360
|
render() {
|
|
@@ -366,6 +382,7 @@ class EmailForm extends React.Component<Props, State> {
|
|
|
366
382
|
onPillCreate,
|
|
367
383
|
recommendedSharingTooltipCalloutName,
|
|
368
384
|
restrictedEmails,
|
|
385
|
+
restrictedGroups,
|
|
369
386
|
selectedContacts,
|
|
370
387
|
sendButtonProps,
|
|
371
388
|
showEnterEmailsCallout,
|
|
@@ -436,7 +453,7 @@ class EmailForm extends React.Component<Props, State> {
|
|
|
436
453
|
|
|
437
454
|
const hideMessageSection = config && config.showInviteCollaboratorMessageSection === false;
|
|
438
455
|
const shouldRenderContactRestrictionNotice =
|
|
439
|
-
isExpanded && hasRestrictedContacts(selectedContacts, restrictedEmails);
|
|
456
|
+
isExpanded && hasRestrictedContacts(selectedContacts, restrictedEmails, restrictedGroups);
|
|
440
457
|
|
|
441
458
|
return (
|
|
442
459
|
<form
|
|
@@ -457,6 +474,7 @@ class EmailForm extends React.Component<Props, State> {
|
|
|
457
474
|
justificationReasons={justificationReasons}
|
|
458
475
|
onRemoveRestrictedContacts={this.handleRemoveRestrictedContacts}
|
|
459
476
|
restrictedEmails={restrictedEmails}
|
|
477
|
+
restrictedGroups={restrictedGroups}
|
|
460
478
|
selectedContacts={selectedContacts}
|
|
461
479
|
selectedJustificationReason={selectedJustificationReason}
|
|
462
480
|
onSelectJustificationReason={this.handleSelectJustificationReason}
|
|
@@ -57,6 +57,7 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
57
57
|
createSharedLinkOnLoad: false,
|
|
58
58
|
focusSharedLinkOnLoad: false,
|
|
59
59
|
restrictedCollabEmails: [],
|
|
60
|
+
retrictedGroups: [],
|
|
60
61
|
trackingProps: {
|
|
61
62
|
collaboratorListTracking: {},
|
|
62
63
|
inviteCollabsEmailTracking: {},
|
|
@@ -85,13 +86,15 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
componentDidUpdate(prevProps: USFProps) {
|
|
88
|
-
const { isCollabRestrictionJustificationAllowed, item, restrictedCollabEmails } = this.props;
|
|
89
|
+
const { isCollabRestrictionJustificationAllowed, item, restrictedCollabEmails, restrictedGroups } = this.props;
|
|
89
90
|
const {
|
|
91
|
+
restrictedGroups: prevRestrictedGroups,
|
|
90
92
|
restrictedCollabEmails: prevRestrictedCollabEmails,
|
|
91
93
|
isCollabRestrictionJustificationAllowed: prevIsCollabRestrictionJustificationAllowed,
|
|
92
94
|
} = prevProps;
|
|
93
95
|
|
|
94
96
|
const didCollabRestrictionsChange =
|
|
97
|
+
!isEqual(restrictedGroups, prevRestrictedGroups) ||
|
|
95
98
|
!isEqual(restrictedCollabEmails, prevRestrictedCollabEmails) ||
|
|
96
99
|
isCollabRestrictionJustificationAllowed !== prevIsCollabRestrictionJustificationAllowed;
|
|
97
100
|
|
|
@@ -127,9 +130,13 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
127
130
|
|
|
128
131
|
shouldRequireCollabJustification = () => {
|
|
129
132
|
const { inviteCollabsContacts } = this.state;
|
|
130
|
-
const { isCollabRestrictionJustificationAllowed, restrictedCollabEmails } = this.props;
|
|
133
|
+
const { isCollabRestrictionJustificationAllowed, restrictedCollabEmails, restrictedGroups } = this.props;
|
|
131
134
|
|
|
132
|
-
const hasRestrictedCollabs = hasRestrictedContacts(
|
|
135
|
+
const hasRestrictedCollabs = hasRestrictedContacts(
|
|
136
|
+
inviteCollabsContacts,
|
|
137
|
+
restrictedCollabEmails,
|
|
138
|
+
restrictedGroups,
|
|
139
|
+
);
|
|
133
140
|
return hasRestrictedCollabs && isCollabRestrictionJustificationAllowed;
|
|
134
141
|
};
|
|
135
142
|
|
|
@@ -185,7 +192,7 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
185
192
|
const { classificationLabelId, inviteePermissionLevel } = this.state;
|
|
186
193
|
const defaultPermissionLevel = getDefaultPermissionLevel(inviteePermissions);
|
|
187
194
|
const selectedPermissionLevel = inviteePermissionLevel || defaultPermissionLevel;
|
|
188
|
-
const { emails, groupIDs, justificationReason, message, restrictedEmails } = data;
|
|
195
|
+
const { emails, groupIDs, justificationReason, message, restrictedEmails, restrictedGroups } = data;
|
|
189
196
|
|
|
190
197
|
let params = {
|
|
191
198
|
emails: emails.join(','),
|
|
@@ -197,7 +204,7 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
197
204
|
};
|
|
198
205
|
|
|
199
206
|
const hasJustificationReason = !!justificationReason;
|
|
200
|
-
const hasRestrictedInvitees = !isEmpty(restrictedEmails);
|
|
207
|
+
const hasRestrictedInvitees = !isEmpty(restrictedEmails) || !isEmpty(restrictedGroups);
|
|
201
208
|
const shouldSubmitJustificationReason =
|
|
202
209
|
hasJustificationReason && hasRestrictedInvitees && isCollabRestrictionJustificationAllowed;
|
|
203
210
|
|
|
@@ -348,10 +355,18 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
348
355
|
currentInviteCollabsContacts: Array<Contact>,
|
|
349
356
|
newInviteCollabsContacts: Array<Contact>,
|
|
350
357
|
) => {
|
|
351
|
-
const { restrictedCollabEmails } = this.props;
|
|
358
|
+
const { restrictedCollabEmails, restrictedGroups } = this.props;
|
|
352
359
|
|
|
353
|
-
const hasRestrictedCollabs = hasRestrictedContacts(
|
|
354
|
-
|
|
360
|
+
const hasRestrictedCollabs = hasRestrictedContacts(
|
|
361
|
+
currentInviteCollabsContacts,
|
|
362
|
+
restrictedCollabEmails,
|
|
363
|
+
restrictedGroups,
|
|
364
|
+
);
|
|
365
|
+
const hasRestrictedCollabsAfterUpdate = hasRestrictedContacts(
|
|
366
|
+
newInviteCollabsContacts,
|
|
367
|
+
restrictedCollabEmails,
|
|
368
|
+
restrictedGroups,
|
|
369
|
+
);
|
|
355
370
|
|
|
356
371
|
return hasRestrictedCollabs && !hasRestrictedCollabsAfterUpdate;
|
|
357
372
|
};
|
|
@@ -413,6 +428,7 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
413
428
|
item,
|
|
414
429
|
recommendedSharingTooltipCalloutName = null,
|
|
415
430
|
restrictedCollabEmails,
|
|
431
|
+
restrictedGroups,
|
|
416
432
|
sendInvitesError,
|
|
417
433
|
shouldRenderFTUXTooltip,
|
|
418
434
|
showEnterEmailsCallout = false,
|
|
@@ -498,6 +514,7 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
498
514
|
openInviteCollaboratorsSection={this.openInviteCollaboratorsSection}
|
|
499
515
|
recommendedSharingTooltipCalloutName={recommendedSharingTooltipCalloutName}
|
|
500
516
|
restrictedEmails={restrictedCollabEmails}
|
|
517
|
+
restrictedGroups={restrictedGroups}
|
|
501
518
|
showEnterEmailsCallout={showEnterEmailsCallout}
|
|
502
519
|
submitting={submitting}
|
|
503
520
|
selectedContacts={this.state.inviteCollabsContacts}
|
|
@@ -30,6 +30,7 @@ class UnifiedShareModal extends React.Component<USMProps, State> {
|
|
|
30
30
|
createSharedLinkOnLoad: false,
|
|
31
31
|
focusSharedLinkOnLoad: false,
|
|
32
32
|
restrictedCollabEmails: [],
|
|
33
|
+
restrictedGroups: [],
|
|
33
34
|
trackingProps: {
|
|
34
35
|
inviteCollabsEmailTracking: {},
|
|
35
36
|
sharedLinkEmailTracking: {},
|
|
@@ -12,6 +12,7 @@ describe('features/unified-share-modal/ContactRestrictionNotice', () => {
|
|
|
12
12
|
let wrapper;
|
|
13
13
|
let selectedContacts;
|
|
14
14
|
let restrictedEmails;
|
|
15
|
+
let restrictedGroups;
|
|
15
16
|
|
|
16
17
|
const getWrapper = (props = {}) => {
|
|
17
18
|
return shallow(
|
|
@@ -25,6 +26,7 @@ describe('features/unified-share-modal/ContactRestrictionNotice', () => {
|
|
|
25
26
|
onRemoveRestrictedContacts={jest.fn()}
|
|
26
27
|
onSelectJustificationReason={jest.fn()}
|
|
27
28
|
restrictedEmails={restrictedEmails}
|
|
29
|
+
restrictedGroups={restrictedGroups}
|
|
28
30
|
selectedContacts={selectedContacts}
|
|
29
31
|
selectedJustificationReason={null}
|
|
30
32
|
{...props}
|
|
@@ -36,27 +38,38 @@ describe('features/unified-share-modal/ContactRestrictionNotice', () => {
|
|
|
36
38
|
selectedContacts = [
|
|
37
39
|
{
|
|
38
40
|
email: 'x@example.com',
|
|
39
|
-
id:
|
|
41
|
+
id: 12345,
|
|
40
42
|
text: 'X User',
|
|
41
|
-
type: '
|
|
43
|
+
type: 'user',
|
|
42
44
|
value: 'x@example.com',
|
|
43
45
|
},
|
|
44
46
|
{
|
|
45
47
|
email: 'y@example.com',
|
|
46
|
-
id:
|
|
48
|
+
id: 23456,
|
|
47
49
|
text: 'Y User',
|
|
48
50
|
type: 'user',
|
|
49
51
|
value: 'y@example.com',
|
|
50
52
|
},
|
|
51
53
|
{
|
|
52
54
|
email: 'z@example.com',
|
|
53
|
-
id:
|
|
55
|
+
id: 34567,
|
|
54
56
|
text: 'Z User',
|
|
55
57
|
type: 'user',
|
|
56
58
|
value: 'z@example.com',
|
|
57
59
|
},
|
|
60
|
+
{
|
|
61
|
+
id: 45678,
|
|
62
|
+
text: 'Test Group 1',
|
|
63
|
+
type: 'group',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: 56789,
|
|
67
|
+
text: 'Test Group 2',
|
|
68
|
+
type: 'group',
|
|
69
|
+
},
|
|
58
70
|
];
|
|
59
71
|
restrictedEmails = ['x@example.com', 'y@example.com'];
|
|
72
|
+
restrictedGroups = [45678, 56789];
|
|
60
73
|
|
|
61
74
|
wrapper = getWrapper();
|
|
62
75
|
});
|
|
@@ -69,7 +82,7 @@ describe('features/unified-share-modal/ContactRestrictionNotice', () => {
|
|
|
69
82
|
});
|
|
70
83
|
|
|
71
84
|
test('should render nothing when there are no restricted contacts', () => {
|
|
72
|
-
wrapper.setProps({ restrictedEmails: [], selectedContacts });
|
|
85
|
+
wrapper.setProps({ restrictedEmails: [], restrictedGroups: [], selectedContacts });
|
|
73
86
|
expect(wrapper.isEmptyRender()).toBe(true);
|
|
74
87
|
|
|
75
88
|
wrapper.setProps({ restrictedEmails, selectedContacts: [] });
|
|
@@ -94,7 +107,12 @@ describe('features/unified-share-modal/ContactRestrictionNotice', () => {
|
|
|
94
107
|
removeButtonMessageId,
|
|
95
108
|
}) => {
|
|
96
109
|
restrictedEmails = restrictedEmails.slice(0, restrictedContactCount);
|
|
97
|
-
wrapper.setProps({
|
|
110
|
+
wrapper.setProps({
|
|
111
|
+
collabRestrictionType,
|
|
112
|
+
isRestrictionJustificationEnabled,
|
|
113
|
+
restrictedEmails,
|
|
114
|
+
restrictedGroups: [],
|
|
115
|
+
});
|
|
98
116
|
|
|
99
117
|
const restrictionNoticeMessage = wrapper.find(`FormattedMessage[id="${restrictionNoticeMessageId}"]`);
|
|
100
118
|
const removeButtonMessage = wrapper.find(`FormattedMessage[id="${removeButtonMessageId}"]`);
|
|
@@ -103,6 +121,7 @@ describe('features/unified-share-modal/ContactRestrictionNotice', () => {
|
|
|
103
121
|
expect(restrictionNoticeMessage.props().values).toEqual({
|
|
104
122
|
count: restrictedEmails.length,
|
|
105
123
|
email: selectedContacts[0].value,
|
|
124
|
+
groupName: undefined,
|
|
106
125
|
});
|
|
107
126
|
expect(removeButtonMessage).toHaveLength(1);
|
|
108
127
|
expect(removeButtonMessage.props().values).toEqual({
|
|
@@ -111,6 +130,36 @@ describe('features/unified-share-modal/ContactRestrictionNotice', () => {
|
|
|
111
130
|
},
|
|
112
131
|
);
|
|
113
132
|
|
|
133
|
+
test.each`
|
|
134
|
+
restrictedGroupCount | restrictionNoticeMessageId | removeButtonMessageId
|
|
135
|
+
${1} | ${messages.contactRestrictionNoticeInformationBarrierSingularGroup.id} | ${messages.contactRestrictionRemoveButtonLabel.id}
|
|
136
|
+
${2} | ${messages.contactRestrictionNoticeInformationBarrier.id} | ${messages.contactRestrictionRemoveButtonLabel.id}
|
|
137
|
+
`(
|
|
138
|
+
'should select appropriate messages when restricted group count is $restrictedGroupCount',
|
|
139
|
+
({ restrictedGroupCount, restrictionNoticeMessageId, removeButtonMessageId }) => {
|
|
140
|
+
restrictedGroups = restrictedGroups.slice(0, restrictedGroupCount);
|
|
141
|
+
wrapper.setProps({
|
|
142
|
+
collabRestrictionType: COLLAB_RESTRICTION_TYPE_INFORMATION_BARRIER,
|
|
143
|
+
restrictedEmails: [],
|
|
144
|
+
restrictedGroups,
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
const restrictionNoticeMessage = wrapper.find(`FormattedMessage[id="${restrictionNoticeMessageId}"]`);
|
|
148
|
+
const removeButtonMessage = wrapper.find(`FormattedMessage[id="${removeButtonMessageId}"]`);
|
|
149
|
+
|
|
150
|
+
expect(restrictionNoticeMessage).toHaveLength(1);
|
|
151
|
+
expect(restrictionNoticeMessage.props().values).toEqual({
|
|
152
|
+
count: restrictedGroups.length,
|
|
153
|
+
email: undefined,
|
|
154
|
+
groupName: selectedContacts[3].text,
|
|
155
|
+
});
|
|
156
|
+
expect(removeButtonMessage).toHaveLength(1);
|
|
157
|
+
expect(removeButtonMessage.props().values).toEqual({
|
|
158
|
+
count: restrictedGroups.length,
|
|
159
|
+
});
|
|
160
|
+
},
|
|
161
|
+
);
|
|
162
|
+
|
|
114
163
|
test('should display error tooltip when error is provided', () => {
|
|
115
164
|
const error = 'error';
|
|
116
165
|
|
|
@@ -9,25 +9,30 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
9
9
|
const expectedContacts = [
|
|
10
10
|
{
|
|
11
11
|
email: 'x@example.com',
|
|
12
|
-
id:
|
|
12
|
+
id: 12345,
|
|
13
13
|
text: 'X User',
|
|
14
|
-
type: '
|
|
14
|
+
type: 'user',
|
|
15
15
|
value: 'x@example.com',
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
email: 'y@example.com',
|
|
19
|
-
id:
|
|
19
|
+
id: 23456,
|
|
20
20
|
text: 'Y User',
|
|
21
21
|
type: 'user',
|
|
22
22
|
value: 'y@example.com',
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
email: 'z@example.com',
|
|
26
|
-
id:
|
|
26
|
+
id: 34567,
|
|
27
27
|
text: 'Z User',
|
|
28
28
|
type: 'user',
|
|
29
29
|
value: 'z@example.com',
|
|
30
30
|
},
|
|
31
|
+
{
|
|
32
|
+
id: 45678,
|
|
33
|
+
text: 'Test Group',
|
|
34
|
+
type: 'group',
|
|
35
|
+
},
|
|
31
36
|
];
|
|
32
37
|
const expectedJustificationReason = { displayText: 'Reason', value: '123' };
|
|
33
38
|
|
|
@@ -43,6 +48,7 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
43
48
|
onRequestClose={jest.fn()}
|
|
44
49
|
onSubmit={jest.fn()}
|
|
45
50
|
openInviteSection={jest.fn()}
|
|
51
|
+
restrictedGroups={[]}
|
|
46
52
|
selectedContacts={[]}
|
|
47
53
|
showEnterEmailsCallout
|
|
48
54
|
inlineNotice={{}}
|
|
@@ -135,7 +141,31 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
135
141
|
expect(onContactRemove).toHaveBeenCalledWith(expectedContacts[0]);
|
|
136
142
|
expect(onContactRemove).toHaveBeenCalledWith(expectedContacts[2]);
|
|
137
143
|
expect(updateSelectedContacts).toHaveBeenCalledTimes(1);
|
|
138
|
-
expect(updateSelectedContacts).toHaveBeenCalledWith([expectedContacts[1]]);
|
|
144
|
+
expect(updateSelectedContacts).toHaveBeenCalledWith([expectedContacts[1], expectedContacts[3]]);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
test('should remove all contacts with matches in restrictedEmails or restrictedGroups', () => {
|
|
148
|
+
const onContactRemove = jest.fn();
|
|
149
|
+
const updateSelectedContacts = jest.fn();
|
|
150
|
+
const restrictedGroups = [expectedContacts[3].id, '1111'];
|
|
151
|
+
const restrictedEmails = [expectedContacts[0].value, 'not_included_in_contacts@example.com'];
|
|
152
|
+
|
|
153
|
+
const wrapper = getWrapper({
|
|
154
|
+
onContactRemove,
|
|
155
|
+
restrictedEmails,
|
|
156
|
+
restrictedGroups,
|
|
157
|
+
selectedContacts: expectedContacts,
|
|
158
|
+
updateSelectedContacts,
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
wrapper.instance().handleRemoveRestrictedContacts();
|
|
162
|
+
|
|
163
|
+
// The two restricted emails that match values in expectedContacts
|
|
164
|
+
expect(onContactRemove).toHaveBeenCalledTimes(2);
|
|
165
|
+
expect(onContactRemove).toHaveBeenCalledWith(expectedContacts[0]);
|
|
166
|
+
expect(onContactRemove).toHaveBeenCalledWith(expectedContacts[3]);
|
|
167
|
+
expect(updateSelectedContacts).toHaveBeenCalledTimes(1);
|
|
168
|
+
expect(updateSelectedContacts).toHaveBeenCalledWith([expectedContacts[1], expectedContacts[2]]);
|
|
139
169
|
});
|
|
140
170
|
|
|
141
171
|
test('should reset contact limit error when contact removal results in a contact count within the limit', () => {
|
|
@@ -257,11 +287,12 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
257
287
|
test('should call sendInvites prop with the correct params', () => {
|
|
258
288
|
const message = 'test message';
|
|
259
289
|
const expectedParam = {
|
|
260
|
-
emails: ['y@example.com'],
|
|
261
|
-
groupIDs: [
|
|
290
|
+
emails: ['x@example.com', 'y@example.com'],
|
|
291
|
+
groupIDs: [],
|
|
262
292
|
justificationReason: null,
|
|
263
293
|
message,
|
|
264
294
|
restrictedEmails: [],
|
|
295
|
+
restrictedGroups: [],
|
|
265
296
|
};
|
|
266
297
|
const onSubmit = jest.fn().mockReturnValue(Promise.resolve());
|
|
267
298
|
const wrapper = getWrapper({
|
|
@@ -290,6 +321,7 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
290
321
|
expectedContacts[2].value,
|
|
291
322
|
'not_included_in_contacts@example.com',
|
|
292
323
|
],
|
|
324
|
+
restrictedGroups: [expectedContacts[3].id],
|
|
293
325
|
selectedContacts: expectedContacts,
|
|
294
326
|
isRestrictionJustificationEnabled: true,
|
|
295
327
|
});
|
|
@@ -302,24 +334,28 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
302
334
|
expect.objectContaining({
|
|
303
335
|
justificationReason: expectedJustificationReason,
|
|
304
336
|
restrictedEmails: [expectedContacts[1].value, expectedContacts[2].value],
|
|
337
|
+
restrictedGroups: [expectedContacts[3].id],
|
|
305
338
|
}),
|
|
306
339
|
);
|
|
307
340
|
});
|
|
308
341
|
|
|
309
342
|
test.each`
|
|
310
|
-
isRestrictionJustificationEnabled | expectedErrorId | conditionDescription
|
|
311
|
-
${true} | ${'boxui.unifiedShare.justificationRequiredError'} | ${'justification is allowed but not selected'}
|
|
312
|
-
${false} | ${'boxui.unifiedShare.restrictedContactsError'} | ${'justification is not allowed'}
|
|
343
|
+
isRestrictionJustificationEnabled | restrictedEmails | restrictedGroups | expectedErrorId | conditionDescription
|
|
344
|
+
${true} | ${[expectedContacts[1].value]} | ${[]} | ${'boxui.unifiedShare.justificationRequiredError'} | ${'there are restricted emails and justification is allowed but not selected'}
|
|
345
|
+
${false} | ${[expectedContacts[1].value]} | ${[]} | ${'boxui.unifiedShare.restrictedContactsError'} | ${'there are restricted emails and justification is not allowed'}
|
|
346
|
+
${false} | ${[]} | ${[expectedContacts[3].id]} | ${'boxui.unifiedShare.restrictedContactsError'} | ${'there are restricted groups and justification is not allowed'}
|
|
347
|
+
${false} | ${[expectedContacts[1].value]} | ${[expectedContacts[3].id]} | ${'boxui.unifiedShare.restrictedContactsError'} | ${'there are restricted emails and groups and justification is not allowed'}
|
|
313
348
|
`(
|
|
314
|
-
'should trigger an error and abort submit action when
|
|
315
|
-
({ isRestrictionJustificationEnabled, expectedErrorId }) => {
|
|
349
|
+
'should trigger an error and abort submit action when $conditionDescription',
|
|
350
|
+
({ isRestrictionJustificationEnabled, expectedErrorId, restrictedEmails, restrictedGroups }) => {
|
|
316
351
|
const message = 'test message';
|
|
317
352
|
const event = { preventDefault: jest.fn() };
|
|
318
353
|
const onSubmit = jest.fn();
|
|
319
354
|
|
|
320
355
|
const wrapper = getWrapper({
|
|
321
356
|
onSubmit,
|
|
322
|
-
restrictedEmails
|
|
357
|
+
restrictedEmails,
|
|
358
|
+
restrictedGroups,
|
|
323
359
|
selectedContacts: expectedContacts,
|
|
324
360
|
isRestrictionJustificationEnabled,
|
|
325
361
|
});
|
|
@@ -335,11 +371,12 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
335
371
|
test('should handle errors from onSubmit prop', () => {
|
|
336
372
|
const message = 'test message';
|
|
337
373
|
const expectedParam = {
|
|
338
|
-
emails: [],
|
|
339
|
-
groupIDs: [
|
|
374
|
+
emails: ['x@example.com'],
|
|
375
|
+
groupIDs: [],
|
|
340
376
|
justificationReason: null,
|
|
341
377
|
message,
|
|
342
378
|
restrictedEmails: [],
|
|
379
|
+
restrictedGroups: [],
|
|
343
380
|
};
|
|
344
381
|
const onSubmit = jest.fn().mockReturnValue(
|
|
345
382
|
// eslint-disable-next-line prefer-promise-reject-errors
|
|
@@ -427,18 +464,26 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
427
464
|
|
|
428
465
|
describe('validateContactsRestrictions()', () => {
|
|
429
466
|
test.each`
|
|
430
|
-
isRestrictionJustificationEnabled | restrictedEmails | selectedJustificationReason | expectedError
|
|
431
|
-
${false} | ${[]} | ${null} | ${''}
|
|
432
|
-
${false} | ${[]} | ${expectedJustificationReason} | ${''}
|
|
433
|
-
${true} | ${[expectedContacts[0].value]} | ${null} | ${'boxui.unifiedShare.justificationRequiredError'}
|
|
434
|
-
${true} | ${[expectedContacts[0].value]} | ${expectedJustificationReason} | ${''}
|
|
435
|
-
${false} | ${[]} | ${null} | ${''}
|
|
436
|
-
${false} | ${[expectedContacts[0].value]} | ${null} | ${'boxui.unifiedShare.restrictedContactsError'}
|
|
467
|
+
isRestrictionJustificationEnabled | restrictedEmails | restrictedGroups | selectedJustificationReason | expectedError
|
|
468
|
+
${false} | ${[]} | ${[]} | ${null} | ${''}
|
|
469
|
+
${false} | ${[]} | ${[]} | ${expectedJustificationReason} | ${''}
|
|
470
|
+
${true} | ${[expectedContacts[0].value]} | ${[]} | ${null} | ${'boxui.unifiedShare.justificationRequiredError'}
|
|
471
|
+
${true} | ${[expectedContacts[0].value]} | ${[]} | ${expectedJustificationReason} | ${''}
|
|
472
|
+
${false} | ${[]} | ${[]} | ${null} | ${''}
|
|
473
|
+
${false} | ${[expectedContacts[0].value]} | ${[]} | ${null} | ${'boxui.unifiedShare.restrictedContactsError'}
|
|
474
|
+
${false} | ${[]} | ${[expectedContacts[3].id]} | ${null} | ${'boxui.unifiedShare.restrictedContactsError'}
|
|
437
475
|
`(
|
|
438
|
-
'should return "$expectedError" when isRestrictionJustificationEnabled is $isRestrictionJustificationEnabled, restrictedEmails is $restrictedEmails and selectedJustificationReason is $selectedJustificationReason',
|
|
439
|
-
({
|
|
476
|
+
'should return "$expectedError" when isRestrictionJustificationEnabled is $isRestrictionJustificationEnabled, restrictedEmails is $restrictedEmails, restrictedGroups is $restrictedGroups and selectedJustificationReason is $selectedJustificationReason',
|
|
477
|
+
({
|
|
478
|
+
isRestrictionJustificationEnabled,
|
|
479
|
+
restrictedEmails,
|
|
480
|
+
restrictedGroups,
|
|
481
|
+
selectedJustificationReason,
|
|
482
|
+
expectedError,
|
|
483
|
+
}) => {
|
|
440
484
|
const wrapper = getWrapper({
|
|
441
485
|
restrictedEmails,
|
|
486
|
+
restrictedGroups,
|
|
442
487
|
selectedContacts: expectedContacts,
|
|
443
488
|
isRestrictionJustificationEnabled,
|
|
444
489
|
});
|
|
@@ -516,6 +561,28 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
516
561
|
expect(isValidContactPill).toBe(expectedIsValid);
|
|
517
562
|
},
|
|
518
563
|
);
|
|
564
|
+
|
|
565
|
+
test.each`
|
|
566
|
+
isRestrictionJustificationEnabled | selectedJustificationReason | restrictedGroups | expectedIsValid
|
|
567
|
+
${false} | ${null} | ${[]} | ${true}
|
|
568
|
+
${false} | ${expectedJustificationReason} | ${[expectedContacts[3].id]} | ${false}
|
|
569
|
+
${false} | ${null} | ${[expectedContacts[3].id]} | ${false}
|
|
570
|
+
${true} | ${null} | ${[expectedContacts[3].id]} | ${false}
|
|
571
|
+
${true} | ${null} | ${[]} | ${true}
|
|
572
|
+
${true} | ${expectedJustificationReason} | ${[expectedContacts[3].id]} | ${true}
|
|
573
|
+
`(
|
|
574
|
+
'should have isValidContactPill return $expectedIsValid when isRestrictionJustificationEnabled = $isRestrictionJustificationEnabled, selectedJustificationReason = $selectedJustificationReason and restrictedGroups = $restrictedGroups',
|
|
575
|
+
({ isRestrictionJustificationEnabled, selectedJustificationReason, restrictedGroups, expectedIsValid }) => {
|
|
576
|
+
const wrapper = getWrapper();
|
|
577
|
+
const contact = expectedContacts[3];
|
|
578
|
+
|
|
579
|
+
wrapper.instance().handleSelectJustificationReason(selectedJustificationReason);
|
|
580
|
+
wrapper.setProps({ restrictedGroups, isRestrictionJustificationEnabled });
|
|
581
|
+
|
|
582
|
+
const isValidContactPill = wrapper.instance().isValidContactPill(contact);
|
|
583
|
+
expect(isValidContactPill).toBe(expectedIsValid);
|
|
584
|
+
},
|
|
585
|
+
);
|
|
519
586
|
});
|
|
520
587
|
|
|
521
588
|
describe('getContactPillClassName()', () => {
|
|
@@ -545,6 +612,33 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
545
612
|
expect(contactPillClassName).toBe(expectedClassName);
|
|
546
613
|
},
|
|
547
614
|
);
|
|
615
|
+
|
|
616
|
+
test.each`
|
|
617
|
+
isRestrictionJustificationEnabled | selectedJustificationReason | restrictedGroups | expectedClassName
|
|
618
|
+
${false} | ${null} | ${[]} | ${''}
|
|
619
|
+
${false} | ${expectedJustificationReason} | ${[expectedContacts[3].id]} | ${''}
|
|
620
|
+
${false} | ${null} | ${[expectedContacts[3].id]} | ${''}
|
|
621
|
+
${true} | ${null} | ${[expectedContacts[3].id]} | ${''}
|
|
622
|
+
${true} | ${null} | ${[]} | ${''}
|
|
623
|
+
${true} | ${expectedJustificationReason} | ${[expectedContacts[3].id]} | ${'is-waived'}
|
|
624
|
+
`(
|
|
625
|
+
'should return "$expectedClassName" when isRestrictionJustificationEnabled = $isRestrictionJustificationEnabled, selectedJustificationReason = $selectedJustificationReason and restrictedGroups = $restrictedGroups',
|
|
626
|
+
({
|
|
627
|
+
isRestrictionJustificationEnabled,
|
|
628
|
+
selectedJustificationReason,
|
|
629
|
+
restrictedGroups,
|
|
630
|
+
expectedClassName,
|
|
631
|
+
}) => {
|
|
632
|
+
const wrapper = getWrapper();
|
|
633
|
+
const contact = expectedContacts[3];
|
|
634
|
+
|
|
635
|
+
wrapper.instance().handleSelectJustificationReason(selectedJustificationReason);
|
|
636
|
+
wrapper.setProps({ restrictedGroups, isRestrictionJustificationEnabled });
|
|
637
|
+
|
|
638
|
+
const contactPillClassName = wrapper.instance().getContactPillClassName(contact);
|
|
639
|
+
expect(contactPillClassName).toBe(expectedClassName);
|
|
640
|
+
},
|
|
641
|
+
);
|
|
548
642
|
});
|
|
549
643
|
|
|
550
644
|
describe('componentDidUpdate()', () => {
|
|
@@ -718,6 +812,19 @@ describe('features/unified-share-modal/EmailForm', () => {
|
|
|
718
812
|
);
|
|
719
813
|
});
|
|
720
814
|
|
|
815
|
+
test('should render ContactRestrictionNotice when isExpanded is true and restrictedGroups has matching values in selectedContacts', () => {
|
|
816
|
+
const restrictedGroups = [expectedContacts[3].id];
|
|
817
|
+
const selectedContacts = expectedContacts;
|
|
818
|
+
|
|
819
|
+
const wrapper = getWrapper({
|
|
820
|
+
isExpanded: true,
|
|
821
|
+
restrictedGroups,
|
|
822
|
+
selectedContacts,
|
|
823
|
+
});
|
|
824
|
+
|
|
825
|
+
expect(wrapper.find('ContactRestrictionNotice')).toHaveLength(1);
|
|
826
|
+
});
|
|
827
|
+
|
|
721
828
|
test.each`
|
|
722
829
|
showInviteCollaboratorMessageSection | description
|
|
723
830
|
${true} | ${'show the message section when showInviteCollaboratorMessageSection is true'}
|