box-ui-elements 15.0.0-beta.7 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +3 -1
- package/dist/explorer.css +1 -1
- package/dist/explorer.js +58 -26
- package/dist/openwith.css +1 -1
- package/dist/openwith.js +10 -17
- package/dist/picker.css +1 -1
- package/dist/picker.js +12 -19
- package/dist/preview.css +1 -1
- package/dist/preview.js +56 -24
- package/dist/sharing.css +1 -1
- package/dist/sharing.js +54 -22
- package/dist/sidebar.css +1 -1
- package/dist/sidebar.js +56 -24
- package/dist/uploader.css +1 -1
- package/dist/uploader.js +12 -19
- package/es/api/uploads/UploadsReachability.js.flow +2 -2
- package/es/api/uploads/UploadsReachability.js.map +1 -1
- package/es/common/messages.js +4 -0
- package/es/common/messages.js.flow +5 -0
- package/es/common/messages.js.map +1 -1
- package/es/common/types/core.js.flow +2 -0
- package/es/common/types/core.js.map +1 -1
- package/es/components/avatar/UnknownUserAvatar.js +6 -9
- package/es/components/avatar/UnknownUserAvatar.js.map +1 -1
- package/es/components/close-button/CloseButton.js +24 -0
- package/es/components/close-button/CloseButton.js.flow +26 -0
- package/es/components/close-button/CloseButton.js.map +1 -0
- package/es/components/close-button/CloseButton.scss +10 -0
- package/es/components/close-button/CloseButton.stories.js +14 -0
- package/es/components/close-button/CloseButton.stories.js.map +1 -0
- package/es/components/close-button/index.js +2 -0
- package/es/components/close-button/index.js.flow +2 -0
- package/es/components/close-button/index.js.map +1 -0
- package/es/components/date-picker/AccessiblePikaday.js +113 -0
- package/es/components/date-picker/AccessiblePikaday.js.map +1 -0
- package/es/components/date-picker/DatePicker.js +426 -106
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePicker.scss +32 -22
- package/es/components/date-picker/DatePicker.stories.js +10 -0
- package/es/components/date-picker/DatePicker.stories.js.map +1 -1
- package/es/components/date-picker/_pikaday.scss +8 -2
- package/es/components/flyout/Flyout.js +13 -3
- package/es/components/flyout/Flyout.js.flow +14 -3
- package/es/components/flyout/Flyout.js.map +1 -1
- package/es/components/flyout/Flyout.scss +40 -0
- package/es/components/flyout/FlyoutContext.js +6 -0
- package/es/components/flyout/FlyoutContext.js.flow +9 -0
- package/es/components/flyout/FlyoutContext.js.map +1 -0
- package/es/components/flyout/OverlayHeader.js +33 -0
- package/es/components/flyout/OverlayHeader.js.map +1 -0
- package/es/components/flyout/OverlayHeader.scss +9 -0
- package/es/components/flyout/_variables.scss +1 -0
- package/es/components/flyout/index.js +2 -0
- package/es/components/flyout/index.js.flow +2 -0
- package/es/components/flyout/index.js.map +1 -1
- package/es/components/image-tooltip/ImageTooltip.js +1 -2
- package/es/components/image-tooltip/ImageTooltip.js.map +1 -1
- package/es/components/media-query/constants.js +26 -0
- package/es/components/media-query/constants.js.flow +32 -0
- package/es/components/media-query/constants.js.map +1 -0
- package/es/components/media-query/index.js +3 -0
- package/es/components/media-query/index.js.flow +4 -0
- package/es/components/media-query/index.js.map +1 -0
- package/es/components/media-query/stories/MediaQuery.stories.js +37 -0
- package/es/components/media-query/stories/MediaQuery.stories.js.flow +80 -0
- package/es/components/media-query/stories/MediaQuery.stories.js.map +1 -0
- package/es/components/media-query/types.js +2 -0
- package/es/components/media-query/types.js.flow +29 -0
- package/es/components/media-query/types.js.map +1 -0
- package/es/components/media-query/useMediaQuery.js +91 -0
- package/es/components/media-query/useMediaQuery.js.flow +97 -0
- package/es/components/media-query/useMediaQuery.js.map +1 -0
- package/es/components/media-query/withMediaQuery.js +21 -0
- package/es/components/media-query/withMediaQuery.js.flow +23 -0
- package/es/components/media-query/withMediaQuery.js.map +1 -0
- package/es/components/modal/Modal.scss +27 -0
- package/es/components/preview/previewIcons.js +4 -0
- package/es/components/preview/previewIcons.js.map +1 -1
- package/es/components/search-form/SearchForm.scss +0 -5
- package/es/components/selector-dropdown/SelectorDropdown.js +5 -3
- package/es/components/selector-dropdown/SelectorDropdown.js.flow +3 -3
- package/es/components/selector-dropdown/SelectorDropdown.js.map +1 -1
- package/es/components/tab-view/Tabs.scss +0 -4
- package/es/components/tooltip/Tooltip.js +21 -4
- package/es/components/tooltip/Tooltip.js.map +1 -1
- package/es/constants.js +1 -0
- package/es/constants.js.flow +1 -0
- package/es/constants.js.map +1 -1
- package/es/elements/content-open-with/IconFileMap.js +0 -2
- package/es/elements/content-open-with/IconFileMap.js.flow +0 -2
- package/es/elements/content-open-with/IconFileMap.js.map +1 -1
- package/es/elements/content-sidebar/Sidebar.js +2 -1
- package/es/elements/content-sidebar/Sidebar.js.flow +1 -1
- package/es/elements/content-sidebar/Sidebar.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.scss +3 -3
- package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js +14 -4
- package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js.flow +18 -5
- package/es/elements/content-sidebar/activity-feed/task-form/TaskForm.js.map +1 -1
- package/es/elements/content-sidebar/versions/StaticVersionSidebar.js +78 -0
- package/es/elements/content-sidebar/versions/StaticVersionSidebar.js.flow +97 -0
- package/es/elements/content-sidebar/versions/StaticVersionSidebar.js.map +1 -0
- package/es/elements/content-sidebar/versions/StaticVersionsSidebar.scss +67 -0
- package/es/elements/content-sidebar/versions/VersionsSidebar.js +12 -4
- package/es/elements/content-sidebar/versions/VersionsSidebar.js.flow +16 -3
- package/es/elements/content-sidebar/versions/VersionsSidebar.js.map +1 -1
- package/es/elements/content-sidebar/versions/VersionsSidebar.scss +5 -0
- package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js +42 -10
- package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js.flow +42 -7
- package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js.map +1 -1
- package/es/elements/content-sidebar/versions/flowTypes.js.flow +1 -0
- package/es/elements/content-sidebar/versions/messages.js +20 -0
- package/es/elements/content-sidebar/versions/messages.js.flow +28 -0
- package/es/elements/content-sidebar/versions/messages.js.map +1 -1
- package/es/features/classification/constants.js +2 -1
- package/es/features/classification/constants.js.flow +2 -0
- package/es/features/classification/constants.js.map +1 -1
- package/es/features/classification/flowTypes.js +1 -0
- package/es/features/classification/flowTypes.js.flow +7 -1
- package/es/features/classification/flowTypes.js.map +1 -1
- package/es/features/classification/security-controls/SecurityControls.js +3 -4
- package/es/features/classification/security-controls/SecurityControls.js.flow +3 -4
- package/es/features/classification/security-controls/SecurityControls.js.map +1 -1
- package/es/features/classification/security-controls/SecurityControlsItem.js +1 -1
- package/es/features/classification/security-controls/SecurityControlsItem.js.flow +20 -17
- package/es/features/classification/security-controls/SecurityControlsItem.js.map +1 -1
- package/es/features/classification/security-controls/SecurityControlsItem.scss +4 -0
- package/es/features/classification/security-controls/SecurityControlsModal.js +2 -2
- package/es/features/classification/security-controls/SecurityControlsModal.js.flow +2 -2
- package/es/features/classification/security-controls/SecurityControlsModal.js.map +1 -1
- package/es/features/classification/security-controls/messages.js +4 -0
- package/es/features/classification/security-controls/messages.js.flow +5 -0
- package/es/features/classification/security-controls/messages.js.map +1 -1
- package/es/features/classification/security-controls/utils.js +56 -35
- package/es/features/classification/security-controls/utils.js.flow +51 -27
- package/es/features/classification/security-controls/utils.js.map +1 -1
- package/es/features/collapsible-sidebar/CollapsibleSidebar.js +9 -3
- package/es/features/collapsible-sidebar/CollapsibleSidebar.js.flow +13 -5
- package/es/features/collapsible-sidebar/CollapsibleSidebar.js.map +1 -1
- package/es/features/collapsible-sidebar/CollapsibleSidebar.scss +35 -3
- package/es/features/content-explorer/content-explorer/ContentExplorer.scss +1 -1
- package/es/features/content-explorer/item-list/ItemList.js +1 -0
- package/es/features/content-explorer/item-list/ItemList.js.flow +1 -0
- package/es/features/content-explorer/item-list/ItemList.js.map +1 -1
- package/es/features/content-explorer/item-list/ItemListName.js +13 -2
- package/es/features/content-explorer/item-list/ItemListName.js.flow +3 -2
- package/es/features/content-explorer/item-list/ItemListName.js.map +1 -1
- package/es/features/header-flyout/HeaderFlyout.js +8 -10
- package/es/features/header-flyout/HeaderFlyout.js.flow +4 -8
- package/es/features/header-flyout/HeaderFlyout.js.map +1 -1
- package/es/features/header-flyout/styles/HeaderFlyout.scss +54 -15
- package/es/features/header-flyout/styles/_variables.scss +4 -0
- package/es/features/message-center/components/message-center-modal/MessageCenterModal.js +1 -0
- package/es/features/message-center/components/message-center-modal/MessageCenterModal.js.flow +1 -0
- package/es/features/message-center/components/message-center-modal/MessageCenterModal.js.map +1 -1
- package/es/features/presence/PresenceCollaborator.js +90 -0
- package/es/features/presence/PresenceCollaborator.js.flow +81 -0
- package/es/features/presence/PresenceCollaborator.js.map +1 -0
- package/es/features/presence/PresenceCollaborator.scss +28 -0
- package/es/features/presence/PresenceCollaboratorsList.js +9 -57
- package/es/features/presence/PresenceCollaboratorsList.js.flow +7 -58
- package/es/features/presence/PresenceCollaboratorsList.js.map +1 -1
- package/es/features/presence/PresenceCollaboratorsList.scss +8 -35
- package/es/features/quick-search/QuickSearch.js +4 -2
- package/es/features/quick-search/QuickSearch.js.flow +13 -1
- package/es/features/quick-search/QuickSearch.js.map +1 -1
- package/es/features/unified-share-modal/SharedLinkSection.js +9 -20
- package/es/features/unified-share-modal/SharedLinkSection.js.flow +6 -27
- package/es/features/unified-share-modal/SharedLinkSection.js.map +1 -1
- package/es/features/unified-share-modal/UnifiedShareForm.js +95 -53
- package/es/features/unified-share-modal/UnifiedShareForm.js.flow +70 -14
- package/es/features/unified-share-modal/UnifiedShareForm.js.map +1 -1
- package/es/features/unified-share-modal/UnifiedShareModal.scss +3 -0
- package/es/features/unified-share-modal/flowTypes.js.flow +6 -0
- package/es/features/unified-share-modal/flowTypes.js.map +1 -1
- package/es/features/unified-share-modal/messages.js +8 -0
- package/es/features/unified-share-modal/messages.js.flow +10 -0
- package/es/features/unified-share-modal/messages.js.map +1 -1
- package/es/features/unified-share-modal/utils/mergeContacts.js +13 -10
- package/es/features/unified-share-modal/utils/mergeContacts.js.flow +4 -2
- package/es/features/unified-share-modal/utils/mergeContacts.js.map +1 -1
- package/es/icon/content/FileXbd32.js +39 -0
- package/es/icon/content/FileXbd32.js.flow +38 -0
- package/es/icon/content/FileXbd32.js.map +1 -0
- package/es/icon/content/FileXbd32.stories.js +13 -0
- package/es/icon/content/FileXbd32.stories.js.map +1 -0
- package/es/icon/content/FileXdw32.js +39 -0
- package/es/icon/content/FileXdw32.js.flow +38 -0
- package/es/icon/content/FileXdw32.js.map +1 -0
- package/es/icon/content/FileXdw32.stories.js +13 -0
- package/es/icon/content/FileXdw32.stories.js.map +1 -0
- package/es/icon/content/RetentionPolicyModifiable32.js +36 -0
- package/es/icon/content/RetentionPolicyModifiable32.js.flow +31 -0
- package/es/icon/content/RetentionPolicyModifiable32.js.map +1 -0
- package/es/icon/content/RetentionPolicyModifiable32.stories.js +13 -0
- package/es/icon/content/RetentionPolicyModifiable32.stories.js.map +1 -0
- package/es/icon/content/RetentionPolicyNonModifiable32.js +36 -0
- package/es/icon/content/RetentionPolicyNonModifiable32.js.flow +31 -0
- package/es/icon/content/RetentionPolicyNonModifiable32.js.map +1 -0
- package/es/icon/content/RetentionPolicyNonModifiable32.stories.js +13 -0
- package/es/icon/content/RetentionPolicyNonModifiable32.stories.js.map +1 -0
- package/es/icons/avatars/UnknownUserAvatar.js +10 -34
- package/es/icons/avatars/UnknownUserAvatar.js.map +1 -1
- package/es/icons/file-icon/FileIcon.js +8 -2
- package/es/icons/file-icon/FileIcon.js.flow +2 -2
- package/es/icons/file-icon/FileIcon.js.map +1 -1
- package/es/icons/general/IconSearch.js +1 -1
- package/es/icons/general/IconSearch.js.flow +1 -1
- package/es/icons/general/IconSearch.js.map +1 -1
- package/es/icons/general/IconSearchJuicy.js +30 -0
- package/es/icons/general/IconSearchJuicy.js.flow +26 -0
- package/es/icons/general/IconSearchJuicy.js.map +1 -0
- package/es/icons/google-docs/IconGoogle.js +89 -0
- package/es/icons/google-docs/IconGoogle.js.flow +57 -0
- package/es/icons/google-docs/IconGoogle.js.map +1 -0
- package/es/icons/item-icon/ItemIcon.js +4 -0
- package/es/icons/item-icon/ItemIcon.js.map +1 -1
- package/es/icons/microsoft-office/IconOffice.js +80 -0
- package/es/icons/microsoft-office/IconOffice.js.flow +45 -0
- package/es/icons/microsoft-office/IconOffice.js.map +1 -0
- package/es/illustration/EmailVerification140.js +111 -0
- package/es/illustration/EmailVerification140.js.flow +102 -0
- package/es/illustration/EmailVerification140.js.map +1 -0
- package/es/illustration/EmailVerification140.stories.js +13 -0
- package/es/illustration/EmailVerification140.stories.js.map +1 -0
- package/es/src/components/close-button/CloseButton.d.ts +9 -0
- package/es/src/components/close-button/CloseButton.stories.d.ts +9 -0
- package/es/src/components/close-button/__tests__/CloseButton.stories.test.d.ts +0 -0
- package/es/src/components/close-button/__tests__/CloseButton.test.d.ts +1 -0
- package/es/src/components/close-button/index.d.ts +1 -0
- package/es/src/components/date-picker/AccessiblePikaday.d.ts +16 -0
- package/es/src/components/date-picker/DatePicker.d.ts +33 -6
- package/es/src/components/date-picker/DatePicker.stories.d.ts +2 -1
- package/es/src/components/flyout/OverlayHeader.d.ts +10 -0
- package/es/src/components/tooltip/Tooltip.d.ts +4 -3
- package/es/src/icon/content/FileXbd32.d.ts +13 -0
- package/es/src/icon/content/FileXbd32.stories.d.ts +9 -0
- package/es/src/icon/content/FileXdw32.d.ts +13 -0
- package/es/src/icon/content/FileXdw32.stories.d.ts +9 -0
- package/es/src/icon/content/RetentionPolicyModifiable32.d.ts +13 -0
- package/es/src/icon/content/RetentionPolicyModifiable32.stories.d.ts +9 -0
- package/es/src/icon/content/RetentionPolicyNonModifiable32.d.ts +13 -0
- package/es/src/icon/content/RetentionPolicyNonModifiable32.stories.d.ts +9 -0
- package/es/src/icons/avatars/UnknownUserAvatar.d.ts +0 -1
- package/es/src/icons/general/IconSearchJuicy.d.ts +3 -0
- package/es/src/icons/general/__tests__/IconSearchJuicy.test.d.ts +1 -0
- package/es/src/icons/google-docs/IconGoogle.d.ts +12 -0
- package/es/src/icons/google-docs/__tests__/IconGoogle.test.d.ts +1 -0
- package/es/src/icons/item-icon/ItemIcon.d.ts +2 -0
- package/es/src/icons/microsoft-office/IconOffice.d.ts +12 -0
- package/es/src/icons/microsoft-office/__tests__/IconOffice.test.d.ts +1 -0
- package/es/src/illustration/EmailVerification140.d.ts +13 -0
- package/es/src/illustration/EmailVerification140.stories.d.ts +9 -0
- package/es/src/styles/variables.d.ts +9 -0
- package/es/styles/_variables.scss +1 -0
- package/es/styles/common/_forms.scss +6 -0
- package/es/styles/constants/_layout.scss +3 -0
- package/es/styles/constants/_media-queries.scss +15 -0
- package/es/styles/variables.js +18 -0
- package/es/styles/variables.js.flow +10 -1
- package/es/styles/variables.js.map +1 -1
- package/es/utils/Browser.js +12 -0
- package/es/utils/Browser.js.flow +10 -0
- package/es/utils/Browser.js.map +1 -1
- package/es/utils/validators.js +26 -4
- package/es/utils/validators.js.flow +25 -3
- package/es/utils/validators.js.map +1 -1
- package/i18n/bn-IN.js +12 -0
- package/i18n/bn-IN.properties +24 -0
- package/i18n/da-DK.js +12 -0
- package/i18n/da-DK.properties +24 -0
- package/i18n/de-DE.js +12 -0
- package/i18n/de-DE.properties +24 -0
- package/i18n/en-AU.js +12 -0
- package/i18n/en-AU.properties +24 -0
- package/i18n/en-CA.js +12 -0
- package/i18n/en-CA.properties +24 -0
- package/i18n/en-GB.js +12 -0
- package/i18n/en-GB.properties +24 -0
- package/i18n/en-US.js +12 -0
- package/i18n/en-US.properties +24 -0
- package/i18n/en-x-pseudo.js +12 -0
- package/i18n/es-419.js +12 -0
- package/i18n/es-419.properties +24 -0
- package/i18n/es-ES.js +12 -0
- package/i18n/es-ES.properties +24 -0
- package/i18n/fi-FI.js +12 -0
- package/i18n/fi-FI.properties +24 -0
- package/i18n/fr-CA.js +12 -0
- package/i18n/fr-CA.properties +24 -0
- package/i18n/fr-FR.js +12 -0
- package/i18n/fr-FR.properties +24 -0
- package/i18n/hi-IN.js +12 -0
- package/i18n/hi-IN.properties +24 -0
- package/i18n/it-IT.js +12 -0
- package/i18n/it-IT.properties +24 -0
- package/i18n/ja-JP.js +25 -13
- package/i18n/ja-JP.properties +37 -13
- package/i18n/ko-KR.js +12 -0
- package/i18n/ko-KR.properties +24 -0
- package/i18n/nb-NO.js +12 -0
- package/i18n/nb-NO.properties +24 -0
- package/i18n/nl-NL.js +12 -0
- package/i18n/nl-NL.properties +24 -0
- package/i18n/pl-PL.js +12 -0
- package/i18n/pl-PL.properties +24 -0
- package/i18n/pt-BR.js +12 -0
- package/i18n/pt-BR.properties +24 -0
- package/i18n/ru-RU.js +12 -0
- package/i18n/ru-RU.properties +24 -0
- package/i18n/sv-SE.js +12 -0
- package/i18n/sv-SE.properties +24 -0
- package/i18n/tr-TR.js +12 -0
- package/i18n/tr-TR.properties +24 -0
- package/i18n/zh-CN.js +12 -0
- package/i18n/zh-CN.properties +24 -0
- package/i18n/zh-TW.js +12 -0
- package/i18n/zh-TW.properties +24 -0
- package/package.json +8 -5
- package/src/__mocks__/pikaday.js +1 -0
- package/src/api/__tests__/MockOpenWithData.json +2 -25
- package/src/api/uploads/UploadsReachability.js +2 -2
- package/src/common/messages.js +5 -0
- package/src/common/types/core.js +2 -0
- package/src/components/avatar/UnknownUserAvatar.tsx +5 -4
- package/src/components/close-button/CloseButton.js.flow +26 -0
- package/src/components/close-button/CloseButton.scss +10 -0
- package/src/components/close-button/CloseButton.stories.md +1 -0
- package/src/components/close-button/CloseButton.stories.tsx +14 -0
- package/src/components/close-button/CloseButton.tsx +30 -0
- package/src/components/close-button/__tests__/CloseButton.stories.test.tsx +6 -0
- package/src/components/close-button/__tests__/CloseButton.test.tsx +40 -0
- package/src/components/close-button/__tests__/__image_snapshots__/close-button-stories-test-tsx-components-close-button-close-button-looks-visually-correct-when-using-story-components-buttons-closebutton-regular-1-snap.png +0 -0
- package/src/components/close-button/index.js.flow +2 -0
- package/src/components/close-button/index.ts +1 -0
- package/src/components/date-picker/AccessiblePikaday.ts +79 -0
- package/src/components/date-picker/DatePicker.scss +32 -22
- package/src/components/date-picker/DatePicker.stories.tsx +6 -0
- package/src/components/date-picker/DatePicker.tsx +350 -64
- package/src/components/date-picker/__tests__/DatePicker.test.tsx +44 -2
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-allows-editing-in-story-components-datepicker-manually-editable-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-allows-keyboard-selection-in-components-datepicker-always-visible-with-custom-input-field-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-closes-calendar-and-clears-date-for-components-datepicker-basic-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-always-visible-with-custom-input-field-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-basic-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-custom-error-tooltip-position-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-disabled-with-error-message-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-manually-editable-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-with-description-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-with-limited-date-range-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-looks-visually-correct-when-using-story-components-datepicker-with-range-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-reflects-changes-in-components-datepicker-always-visible-with-custom-input-field-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-shows-calendar-and-date-for-components-datepicker-basic-1-snap.png +0 -0
- package/src/components/date-picker/__tests__/__image_snapshots__/date-picker-stories-test-tsx-components-date-picker-date-picker-shows-limited-range-in-components-datepicker-with-limited-date-range-1-snap.png +0 -0
- package/src/components/date-picker/_pikaday.scss +8 -2
- package/src/components/flyout/Flyout.js +14 -3
- package/src/components/flyout/Flyout.scss +40 -0
- package/src/components/flyout/FlyoutContext.js +9 -0
- package/src/components/flyout/OverlayHeader.scss +9 -0
- package/src/components/flyout/OverlayHeader.tsx +38 -0
- package/src/components/flyout/__tests__/Flyout.test.js +15 -0
- package/src/components/flyout/__tests__/OverlayHeader.test.js +56 -0
- package/src/components/flyout/_variables.scss +1 -0
- package/src/components/flyout/index.js +2 -0
- package/src/components/image-tooltip/ImageTooltip.tsx +1 -2
- package/src/components/media-query/__tests__/useMediaQuery.test.js +48 -0
- package/src/components/media-query/__tests__/withMediaQuery.test.js +29 -0
- package/src/components/media-query/constants.js +32 -0
- package/src/components/media-query/index.js +4 -0
- package/src/components/media-query/stories/MediaQuery.stories.js +80 -0
- package/src/components/media-query/stories/MediaQuery.stories.md +29 -0
- package/src/components/media-query/types.js +29 -0
- package/src/components/media-query/useMediaQuery.js +97 -0
- package/src/components/media-query/withMediaQuery.js +23 -0
- package/src/components/modal/Modal.scss +27 -0
- package/src/components/modal/__tests__/Modal.stories.test.js +10 -0
- package/src/components/modal/__tests__/__image_snapshots__/modal-stories-test-js-components-modal-modal-looks-visually-correct-for-small-screens-when-button-is-clicked-in-story-components-modal-basic-1-snap.png +0 -0
- package/src/components/modal/__tests__/__image_snapshots__/modal-stories-test-js-components-modal-modal-looks-visually-correct-for-small-screens-when-button-is-clicked-in-story-components-modal-with-custom-backdrop-click-handler-1-snap.png +0 -0
- package/src/components/preview/previewIcons.ts +4 -0
- package/src/components/search-form/SearchForm.scss +0 -5
- package/src/components/selector-dropdown/SelectorDropdown.js +3 -3
- package/src/components/selector-dropdown/__tests__/SelectorDropdown.test.js +5 -1
- package/src/components/sidebar-toggle-button/__tests__/__snapshots__/SidebarToggleButton.test.js.snap +0 -8
- package/src/components/tab-view/Tabs.scss +0 -4
- package/src/components/tooltip/Tooltip.tsx +20 -5
- package/src/components/tooltip/__tests__/Tooltip.test.tsx +17 -4
- package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +0 -2
- package/src/constants.js +1 -0
- package/src/elements/content-open-with/IconFileMap.js +0 -2
- package/src/elements/content-open-with/__tests__/ContentOpenWith.test.js +13 -13
- package/src/elements/content-open-with/__tests__/OpenWithButton.test.js +1 -1
- package/src/elements/content-open-with/__tests__/OpenWithDropdownMenu.test.js +1 -5
- package/src/elements/content-open-with/__tests__/OpenWithDropdownMenuItem.test.js +2 -2
- package/src/elements/content-open-with/__tests__/__snapshots__/ContentOpenWith.test.js.snap +5 -5
- package/src/elements/content-open-with/__tests__/__snapshots__/OpenWithButton.test.js.snap +1 -1
- package/src/elements/content-open-with/__tests__/__snapshots__/OpenWithDropdownMenu.test.js.snap +1 -11
- package/src/elements/content-open-with/__tests__/__snapshots__/OpenWithDropdownMenuItem.test.js.snap +4 -3
- package/src/elements/content-sidebar/Sidebar.js +1 -1
- package/src/elements/content-sidebar/__tests__/AddTaskButton.test.js +15 -0
- package/src/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.scss +3 -3
- package/src/elements/content-sidebar/activity-feed/task-form/TaskForm.js +18 -5
- package/src/elements/content-sidebar/versions/StaticVersionSidebar.js +97 -0
- package/src/elements/content-sidebar/versions/StaticVersionsSidebar.scss +67 -0
- package/src/elements/content-sidebar/versions/VersionsSidebar.js +16 -3
- package/src/elements/content-sidebar/versions/VersionsSidebar.scss +5 -0
- package/src/elements/content-sidebar/versions/VersionsSidebarContainer.js +42 -7
- package/src/elements/content-sidebar/versions/__tests__/VersionsSidebar.test.js +18 -1
- package/src/elements/content-sidebar/versions/__tests__/VersionsSidebarContainer.test.js +51 -2
- package/src/elements/content-sidebar/versions/__tests__/__snapshots__/VersionsSidebarContainer.test.js.snap +75 -0
- package/src/elements/content-sidebar/versions/flowTypes.js +1 -0
- package/src/elements/content-sidebar/versions/messages.js +28 -0
- package/src/features/classification/constants.js +2 -0
- package/src/features/classification/flowTypes.js +7 -1
- package/src/features/classification/security-controls/SecurityControls.js +3 -4
- package/src/features/classification/security-controls/SecurityControlsItem.js +20 -17
- package/src/features/classification/security-controls/SecurityControlsItem.scss +4 -0
- package/src/features/classification/security-controls/SecurityControlsModal.js +2 -2
- package/src/features/classification/security-controls/__tests__/SecurityControlsItem.test.js +10 -0
- package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControls.test.js.snap +6 -6
- package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControlsItem.test.js.snap +35 -0
- package/src/features/classification/security-controls/__tests__/__snapshots__/SecurityControlsModal.test.js.snap +2 -2
- package/src/features/classification/security-controls/__tests__/__snapshots__/utils.test.js.snap +20 -0
- package/src/features/classification/security-controls/__tests__/utils.test.js +38 -18
- package/src/features/classification/security-controls/messages.js +5 -0
- package/src/features/classification/security-controls/utils.js +51 -27
- package/src/features/collapsible-sidebar/CollapsibleSidebar.js +13 -5
- package/src/features/collapsible-sidebar/CollapsibleSidebar.scss +35 -3
- package/src/features/collapsible-sidebar/__tests__/CollapsibleSidebar.test.js +35 -0
- package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebar.test.js.snap +1 -0
- package/src/features/content-explorer/content-explorer/ContentExplorer.scss +1 -1
- package/src/features/content-explorer/item-list/ItemList.js +1 -0
- package/src/features/content-explorer/item-list/ItemListName.js +3 -2
- package/src/features/content-explorer/item-list/__tests__/ItemListName.test.js +16 -2
- package/src/features/header-flyout/HeaderFlyout.js +4 -8
- package/src/features/header-flyout/__tests__/__snapshots__/HeaderFlyout.test.js.snap +14 -11
- package/src/features/header-flyout/styles/HeaderFlyout.scss +54 -15
- package/src/features/header-flyout/styles/_variables.scss +4 -0
- package/src/features/message-center/components/message-center-modal/MessageCenterModal.js +1 -0
- package/src/features/metadata-instance-editor/__tests__/__snapshots__/TemplateDropdown.test.js.snap +7 -0
- package/src/features/pagination/__tests__/__snapshots__/MarkerBasedPagination.test.js.snap +0 -8
- package/src/features/pagination/__tests__/__snapshots__/OffsetBasedPagination.test.js.snap +0 -16
- package/src/features/presence/PresenceCollaborator.js +81 -0
- package/src/features/presence/PresenceCollaborator.scss +28 -0
- package/src/features/presence/PresenceCollaboratorsList.js +7 -58
- package/src/features/presence/PresenceCollaboratorsList.scss +8 -35
- package/src/features/presence/__tests__/PresenceCollaborator.test.js +36 -0
- package/src/features/presence/__tests__/PresenceCollaboratorsList.test.js +13 -57
- package/src/features/presence/__tests__/__snapshots__/Presence.test.js.snap +5 -0
- package/src/features/presence/__tests__/__snapshots__/PresenceLink.test.js.snap +3 -0
- package/src/features/query-bar/__tests__/__snapshots__/ColumnButton.test.js.snap +3 -0
- package/src/features/quick-search/QuickSearch.js +13 -1
- package/src/features/quick-search/__tests__/QuickSearch.test.js +17 -0
- package/src/features/unified-share-modal/SharedLinkSection.js +6 -27
- package/src/features/unified-share-modal/UnifiedShareForm.js +70 -14
- package/src/features/unified-share-modal/UnifiedShareModal.scss +3 -0
- package/src/features/unified-share-modal/__tests__/EmailForm.test.js +9 -0
- package/src/features/unified-share-modal/__tests__/SharedLinkSection.test.js +14 -4
- package/src/features/unified-share-modal/__tests__/UnifiedShareForm.test.js +53 -4
- package/src/features/unified-share-modal/__tests__/__snapshots__/SharedLinkSection.test.js.snap +9 -0
- package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareForm.test.js.snap +0 -159
- package/src/features/unified-share-modal/flowTypes.js +6 -0
- package/src/features/unified-share-modal/messages.js +10 -0
- package/src/features/unified-share-modal/utils/__tests__/mergeContacts.test.js +23 -0
- package/src/features/unified-share-modal/utils/mergeContacts.js +4 -2
- package/src/icon/content/FileXbd32.js.flow +38 -0
- package/src/icon/content/FileXbd32.stories.tsx +13 -0
- package/src/icon/content/FileXbd32.tsx +37 -0
- package/src/icon/content/FileXdw32.js.flow +38 -0
- package/src/icon/content/FileXdw32.stories.tsx +13 -0
- package/src/icon/content/FileXdw32.tsx +37 -0
- package/src/icon/content/RetentionPolicyModifiable32.js.flow +31 -0
- package/src/icon/content/RetentionPolicyModifiable32.stories.tsx +14 -0
- package/src/icon/content/RetentionPolicyModifiable32.tsx +29 -0
- package/src/icon/content/RetentionPolicyNonModifiable32.js.flow +31 -0
- package/src/icon/content/RetentionPolicyNonModifiable32.stories.tsx +14 -0
- package/src/icon/content/RetentionPolicyNonModifiable32.tsx +29 -0
- package/src/icons/adobe-sign/README.md +1 -1
- package/src/icons/avatars/UnknownUserAvatar.tsx +7 -15
- package/src/icons/file-icon/FileIcon.js.flow +2 -2
- package/src/icons/file-icon/FileIcon.tsx +8 -2
- package/src/icons/file-icon/__tests__/FileIcon.test.tsx +28 -69
- package/src/icons/file-icon/__tests__/__snapshots__/FileIcon.test.tsx.snap +48 -34
- package/src/icons/general/IconSearch.js.flow +1 -1
- package/src/icons/general/IconSearch.tsx +1 -1
- package/src/icons/general/IconSearchJuicy.js.flow +26 -0
- package/src/icons/general/IconSearchJuicy.tsx +25 -0
- package/src/icons/general/README.md +5 -0
- package/src/icons/general/__tests__/IconSearchJuicy.test.tsx +38 -0
- package/src/icons/google-docs/IconGoogle.js.flow +57 -0
- package/src/icons/google-docs/IconGoogle.tsx +50 -0
- package/src/icons/google-docs/__tests__/IconGoogle.test.tsx +44 -0
- package/src/icons/item-icon/ItemIcon.tsx +4 -0
- package/src/icons/item-icon/__tests__/ItemIcon.test.tsx +47 -115
- package/src/icons/item-icon/__tests__/__snapshots__/ItemIcon.test.tsx.snap +229 -229
- package/src/icons/microsoft-office/IconOffice.js.flow +45 -0
- package/src/icons/microsoft-office/IconOffice.tsx +38 -0
- package/src/icons/microsoft-office/__tests__/IconOffice.test.tsx +44 -0
- package/src/illustration/EmailVerification140.js.flow +102 -0
- package/src/illustration/EmailVerification140.stories.tsx +13 -0
- package/src/illustration/EmailVerification140.tsx +100 -0
- package/src/styles/_variables.scss +1 -0
- package/src/styles/common/_forms.scss +6 -0
- package/src/styles/constants/_layout.scss +3 -0
- package/src/styles/constants/_media-queries.scss +15 -0
- package/src/styles/variables.js +10 -1
- package/src/styles/variables.json +10 -1
- package/src/styles/variables.ts +9 -0
- package/src/utils/Browser.js +10 -0
- package/src/utils/validators.js +25 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/features/unified-share-modal/SharedLinkSection.js"],"names":["React","FormattedMessage","PlainButton","Button","GuideTooltip","TextInputWithCopyButton","Toggle","Tooltip","convertToMs","IconMail","IconClock","IconGlobe","bdlWatermelonRed","isBoxNote","Browser","convertToBoxItem","SharedLinkAccessMenu","SharedLinkPermissionMenu","messages","ANYONE_IN_COMPANY","ANYONE_WITH_LINK","CAN_EDIT","CAN_VIEW_DOWNLOAD","CAN_VIEW_ONLY","PEOPLE_IN_ITEM","SharedLinkSection","props","isSharedLinkEnabled","canAddLink","canRemoveLink","isAllowEditSharedLinkForFileEnabled","sharedLink","canChangeAccessLevel","isEditSettingAvailable","isDownloadSettingAvailable","permissionLevel","allowedPermissionLevels","filter","level","state","isAutoCreatingSharedLink","isCopySuccessful","isSharedLinkEditTooltipShown","isPermissionElevatedToEdit","autoCreateSharedLink","addSharedLink","submitting","url","isNewSharedLink","setState","prevProps","sharedLinkEditTooltipTargetingApi","triggerCopyOnLoad","onCopyError","onCopySuccess","onCopyInit","toggleRef","focus","accessLevel","canWriteToClipboard","navigator","clipboard","writeText","then","catch","getAllowedPermissionLevels","includes","canShow","onShow","autofocusSharedLink","changeSharedLinkAccessLevel","changeSharedLinkPermissionLevel","config","item","itemType","intl","onDismissTooltip","onEmailSharedLinkClick","sharedLinkEditTagTargetingApi","trackingProps","tooltips","accessLevelsDisabledReason","allowedAccessLevels","enterpriseName","isEditAllowed","copyButtonProps","onChangeSharedLinkAccessLevel","onChangeSharedLinkPermissionLevel","onSharedLinkAccessMenuOpen","onSharedLinkCopy","sendSharedLinkButtonProps","sharedLinkAccessMenuButtonProps","sharedLinkPermissionsMenuButtonProps","shouldTriggerCopyOnLoad","hideEmailButton","showEmailSharedLinkForm","isEditableBoxNote","formatMessage","sharedLinkURLLabel","sendSharedLink","ftuxEditPermissionTooltipTitle","ftuxEditPermissionTooltipBody","onClose","sharedLinkPermissionsEditTooltip","sharedLinkPermissionsEdit","sharedLinkEditablePubliclyAvailable","sharedLinkPubliclyAvailable","sharedLinkElevatedEditableCompanyAvailable","onSettingsClick","showSharedLinkSettingsCallout","sharedLinkSettingsButtonProps","sharedLinkSettingsCalloutText","settingsButtonLabel","sharedLinkSettings","onToggleSharedLink","expirationTimestamp","canAddSharedLink","grantedPermissions","itemShare","canRemoveSharedLink","isToggleEnabled","linkText","linkShareOn","sharedLinkExpirationTooltip","expiration","linkShareOff","toggleComponent","ref","sharedLinkToggleTooltip","sharedLinkDisabledTooltipCopy","tooltipDisabledMessage","removeLinkTooltip","disabledCreateLinkTooltip","sharedLinkSectionLabel","renderToggle","renderSharedLinkSettingsLink","renderSharedLink","Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,gBAAT,QAAiC,YAAjC;AAEA,OAAOC,WAAP,MAAwB,+BAAxB;AACA,OAAOC,MAAP,MAAmB,yBAAnB;AACA,OAAOC,YAAP,MAAyB,gCAAzB;AACA,OAAOC,uBAAP,MAAoC,8CAApC;AACA,OAAOC,MAAP,MAAmB,gCAAnB;AACA,OAAOC,OAAP,MAAoB,0BAApB;AACA,SAASC,WAAT,QAA4B,sBAA5B;AACA,OAAOC,QAAP,MAAqB,8BAArB;AACA,OAAOC,SAAP,MAAsB,+BAAtB;AACA,OAAOC,SAAP,MAAsB,+BAAtB;AACA,SAASC,gBAAT,QAAiC,wBAAjC;AAGA,SAASC,SAAT,QAA0B,kBAA1B;AACA,OAAOC,OAAP,MAAoB,qBAApB;AAEA,OAAOC,gBAAP,MAA6B,cAA7B;AACA,OAAOC,oBAAP,MAAiC,wBAAjC;AACA,OAAOC,wBAAP,MAAqC,4BAArC;AACA,OAAOC,QAAP,MAAqB,YAArB;AAUA,SACIC,iBADJ,EAEIC,gBAFJ,EAGIC,QAHJ,EAIIC,iBAJJ,EAKIC,aALJ,EAMIC,cANJ,QAOO,aAPP;;IA8CMC,iB;;;;;AAQF,6BAAYC,KAAZ,EAA0B;AAAA;;AAAA;;AACtB,2FAAMA,KAAN;;AADsB,uEA2HP,UAACC,mBAAD,EAA+BC,UAA/B,EAAuD;AACtE,aAAO,CAACD,mBAAD,IAAwBC,UAA/B;AACH,KA7HyB;;AAAA,0EA+HJ,UAACD,mBAAD,EAA+BE,aAA/B,EAA0D;AAC5E,aAAOF,mBAAmB,IAAIE,aAA9B;AACH,KAjIyB;;AAAA,iFAmIG,YAAkC;AAAA,wBACC,MAAKH,KADN;AAAA,UACnDI,mCADmD,eACnDA,mCADmD;AAAA,UACdC,UADc,eACdA,UADc;AAAA,UAIvDC,oBAJuD,GAQvDD,UARuD,CAIvDC,oBAJuD;AAAA,UAKvDC,sBALuD,GAQvDF,UARuD,CAKvDE,sBALuD;AAAA,UAMvDC,0BANuD,GAQvDH,UARuD,CAMvDG,0BANuD;AAAA,UAOvDC,eAPuD,GAQvDJ,UARuD,CAOvDI,eAPuD;AAU3D,UAAIC,uBAAuB,GAAG,CAACf,QAAD,EAAWC,iBAAX,EAA8BC,aAA9B,CAA9B;;AAEA,UAAI,CAACS,oBAAL,EAA2B;AACvB;AACAI,QAAAA,uBAAuB,GAAGA,uBAAuB,CAACC,MAAxB,CAA+B,UAAAC,KAAK;AAAA,iBAAIA,KAAK,KAAKH,eAAd;AAAA,SAApC,CAA1B;AACH,OAf0D,CAiB3D;;;AACA,UAAI,CAACD,0BAAL,EAAiC;AAC7BE,QAAAA,uBAAuB,GAAGA,uBAAuB,CAACC,MAAxB,CAA+B,UAAAC,KAAK;AAAA,iBAAIA,KAAK,KAAKhB,iBAAd;AAAA,SAApC,CAA1B;AACH,OApB0D,CAsB3D;;;AACA,UAAI,CAACW,sBAAD,IAA2B,CAACH,mCAAhC,EAAqE;AACjEM,QAAAA,uBAAuB,GAAGA,uBAAuB,CAACC,MAAxB,CAA+B,UAAAC,KAAK;AAAA,iBAAIA,KAAK,KAAKjB,QAAd;AAAA,SAApC,CAA1B;AACH;;AAED,aAAOe,uBAAP;AACH,KA/JyB;;AAGtB,UAAKG,KAAL,GAAa;AACTC,MAAAA,wBAAwB,EAAE,KADjB;AAETC,MAAAA,gBAAgB,EAAE,IAFT;AAGTC,MAAAA,4BAA4B,EAAE,KAHrB;AAITC,MAAAA,0BAA0B,EAAE;AAJnB,KAAb;AAHsB;AASzB;;;;wCAEmB;AAAA,yBACwD,KAAKjB,KAD7D;AAAA,UACRK,UADQ,gBACRA,UADQ;AAAA,UACIa,oBADJ,gBACIA,oBADJ;AAAA,UAC0BC,aAD1B,gBAC0BA,aAD1B;AAAA,UACyCC,UADzC,gBACyCA,UADzC;;AAGhB,UACIF,oBAAoB,IACpB,CAAC,KAAKL,KAAL,CAAWC,wBADZ,IAEAT,UAFA,IAGA,CAACA,UAAU,CAACgB,GAHZ,IAIA,CAACD,UAJD,IAKA,CAACf,UAAU,CAACiB,eANhB,EAOE;AACE,aAAKC,QAAL,CAAc;AAAET,UAAAA,wBAAwB,EAAE;AAA5B,SAAd;AACAK,QAAAA,aAAa;AAChB;AACJ,K,CAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;uCACmBK,S,EAAkB;AAAA;;AAAA,yBAW7B,KAAKxB,KAXwB;AAAA,UAE7BK,UAF6B,gBAE7BA,UAF6B;AAAA,UAG7Ba,oBAH6B,gBAG7BA,oBAH6B;AAAA,UAI7BC,aAJ6B,gBAI7BA,aAJ6B;AAAA,UAK7BM,iCAL6B,gBAK7BA,iCAL6B;AAAA,UAM7BL,UAN6B,gBAM7BA,UAN6B;AAAA,UAO7BM,iBAP6B,gBAO7BA,iBAP6B;AAAA,+CAQ7BC,WAR6B;AAAA,UAQ7BA,WAR6B,sCAQf,YAAM,CAAE,CARO;AAAA,+CAS7BC,aAT6B;AAAA,UAS7BA,aAT6B,sCASb,YAAM,CAAE,CATK;AAAA,+CAU7BC,UAV6B;AAAA,UAU7BA,UAV6B,sCAUhB,YAAM,CAAE,CAVQ;AAAA,wBAkB7B,KAAKhB,KAlBwB;AAAA,UAc7BC,wBAd6B,eAc7BA,wBAd6B;AAAA,UAe7BC,gBAf6B,eAe7BA,gBAf6B;AAAA,UAgB7BC,4BAhB6B,eAgB7BA,4BAhB6B;AAAA,UAiB7BC,0BAjB6B,eAiB7BA,0BAjB6B;;AAoBjC,UACIC,oBAAoB,IACpB,CAACJ,wBADD,IAEA,CAACT,UAAU,CAACgB,GAFZ,IAGA,CAACD,UAHD,IAIA,CAACf,UAAU,CAACiB,eALhB,EAME;AACE,aAAKC,QAAL,CAAc;AAAET,UAAAA,wBAAwB,EAAE;AAA5B,SAAd;AACAK,QAAAA,aAAa;AAChB;;AAED,UAAI,CAACK,SAAS,CAACnB,UAAV,CAAqBgB,GAAtB,IAA6BhB,UAAU,CAACgB,GAA5C,EAAiD;AAC7C,aAAKE,QAAL,CAAc;AAAET,UAAAA,wBAAwB,EAAE;AAA5B,SAAd;;AACA,YAAI,KAAKgB,SAAT,EAAoB;AAChB,eAAKA,SAAL,CAAeC,KAAf;AACH;AACJ;;AAED,UACIP,SAAS,CAACnB,UAAV,CAAqBI,eAArB,KAAyC,EAAzC,IACAe,SAAS,CAACnB,UAAV,CAAqBI,eAArB,KAAyCd,QADzC,IAEAU,UAAU,CAACI,eAAX,KAA+Bd,QAHnC,EAIE;AACE,aAAK4B,QAAL,CAAc;AAAEN,UAAAA,0BAA0B,EAAE;AAA9B,SAAd;AACH;;AAED,UACIA,0BAA0B,KACzBZ,UAAU,CAACI,eAAX,KAA+Bd,QAA/B,IAA2CU,UAAU,CAAC2B,WAAX,KAA2BvC,iBAD7C,CAD9B,EAGE;AACE,aAAK8B,QAAL,CAAc;AAAEN,UAAAA,0BAA0B,EAAE;AAA9B,SAAd;AACH;;AAED,UACI7B,OAAO,CAAC6C,mBAAR,MACAP,iBADA,IAEA,CAACZ,wBAFD,IAGAT,UAAU,CAACgB,GAHX,IAIAN,gBAAgB,KAAK,IALzB,EAME;AACEc,QAAAA,UAAU;AACVK,QAAAA,SAAS,CAACC,SAAV,CACKC,SADL,CACe/B,UAAU,CAACgB,GAD1B,EAEKgB,IAFL,CAEU,YAAM;AACR,UAAA,MAAI,CAACd,QAAL,CAAc;AAAER,YAAAA,gBAAgB,EAAE;AAApB,WAAd;;AACAa,UAAAA,aAAa;AAChB,SALL,EAMKU,KANL,CAMW,YAAM;AACT,UAAA,MAAI,CAACf,QAAL,CAAc;AAAER,YAAAA,gBAAgB,EAAE;AAApB,WAAd;;AACAY,UAAAA,WAAW;AACd,SATL;AAUH,OAvEgC,CAyEjC;;;AACA,UAAMjB,uBAAuB,GAAG,KAAK6B,0BAAL,EAAhC;;AAEA,UACI7B,uBAAuB,CAAC8B,QAAxB,CAAiC7C,QAAjC,KACA8B,iCADA,IAEAA,iCAAiC,CAACgB,OAFlC,IAGA,CAACzB,4BAJL,EAKE;AAAA,YACU0B,MADV,GACqBjB,iCADrB,CACUiB,MADV;AAEEA,QAAAA,MAAM;AACN,aAAKnB,QAAL,CAAc;AAAEP,UAAAA,4BAA4B,EAAE;AAAhC,SAAd;AACH;AACJ;;;uCAwCkB;AAAA,yBAkBX,KAAKhB,KAlBM;AAAA,UAEX2C,mBAFW,gBAEXA,mBAFW;AAAA,UAGXC,2BAHW,gBAGXA,2BAHW;AAAA,UAIXC,+BAJW,gBAIXA,+BAJW;AAAA,UAKXC,MALW,gBAKXA,MALW;AAAA,UAMXC,IANW,gBAMXA,IANW;AAAA,UAOXC,QAPW,gBAOXA,QAPW;AAAA,UAQXC,IARW,gBAQXA,IARW;AAAA,UASXC,iBATW,gBASXA,gBATW;AAAA,UAUXC,sBAVW,gBAUXA,sBAVW;AAAA,UAWX9C,UAXW,gBAWXA,UAXW;AAAA,UAYX+C,6BAZW,gBAYXA,6BAZW;AAAA,UAaX3B,iCAbW,gBAaXA,iCAbW;AAAA,UAcXL,UAdW,gBAcXA,UAdW;AAAA,UAeXiC,aAfW,gBAeXA,aAfW;AAAA,UAgBX3B,iBAhBW,gBAgBXA,iBAhBW;AAAA,UAiBX4B,QAjBW,gBAiBXA,QAjBW;AAAA,yBAoBwE,KAAKzC,KApB7E;AAAA,UAoBPE,gBApBO,gBAoBPA,gBApBO;AAAA,UAoBWE,0BApBX,gBAoBWA,0BApBX;AAAA,UAoBuCD,4BApBvC,gBAoBuCA,4BApBvC;AAAA,UAuBXgB,WAvBW,GA+BX3B,UA/BW,CAuBX2B,WAvBW;AAAA,UAwBXuB,0BAxBW,GA+BXlD,UA/BW,CAwBXkD,0BAxBW;AAAA,UAyBXC,mBAzBW,GA+BXnD,UA/BW,CAyBXmD,mBAzBW;AAAA,UA0BXlD,oBA1BW,GA+BXD,UA/BW,CA0BXC,oBA1BW;AAAA,UA2BXmD,cA3BW,GA+BXpD,UA/BW,CA2BXoD,cA3BW;AAAA,UA4BXC,aA5BW,GA+BXrD,UA/BW,CA4BXqD,aA5BW;AAAA,UA6BXjD,eA7BW,GA+BXJ,UA/BW,CA6BXI,eA7BW;AAAA,UA8BXY,GA9BW,GA+BXhB,UA/BW,CA8BXgB,GA9BW;AAAA,UAkCXsC,eAlCW,GA0CXN,aA1CW,CAkCXM,eAlCW;AAAA,UAmCXC,6BAnCW,GA0CXP,aA1CW,CAmCXO,6BAnCW;AAAA,UAoCXC,iCApCW,GA0CXR,aA1CW,CAoCXQ,iCApCW;AAAA,UAqCXC,0BArCW,GA0CXT,aA1CW,CAqCXS,0BArCW;AAAA,UAsCXC,gBAtCW,GA0CXV,aA1CW,CAsCXU,gBAtCW;AAAA,UAuCXC,yBAvCW,GA0CXX,aA1CW,CAuCXW,yBAvCW;AAAA,UAwCXC,+BAxCW,GA0CXZ,aA1CW,CAwCXY,+BAxCW;AAAA,UAyCXC,oCAzCW,GA0CXb,aA1CW,CAyCXa,oCAzCW;AA4Cf,UAAMC,uBAAuB,GAAG,CAAC,CAACzC,iBAAF,IAAuB,CAAC,CAACX,gBAAzD;AAEA;;;;;AAIA,UAAMqD,eAAe,GAAGtB,MAAM,IAAIA,MAAM,CAACuB,uBAAP,KAAmC,KAArE;AAEA,UAAMC,iBAAiB,GAAGnF,SAAS,CAACE,gBAAgB,CAAC0D,IAAD,CAAjB,CAAT,IAAqCW,aAA/D;AACA,UAAMhD,uBAAuB,GAAG,KAAK6B,0BAAL,EAAhC;AAEA,aACI,0CACI;AAAK,QAAA,SAAS,EAAC;AAAf,SACI,oBAAC,OAAD;AACI,QAAA,SAAS,EAAC,kBADd;AAEI,QAAA,OAAO,EAAE,CAAC,CAACe,QAAQ,CAAC,yBAAD,CAFvB;AAGI,QAAA,SAAS,EAAE;AAAA,iBAAMJ,iBAAgB,CAAC,yBAAD,CAAtB;AAAA,SAHf;AAII,QAAA,QAAQ,EAAC,cAJb;AAKI,QAAA,eAAe,MALnB;AAMI,QAAA,IAAI,EAAEI,QAAQ,CAAC,yBAAD,CANlB;AAOI,QAAA,KAAK,EAAC;AAPV,SASI,oBAAC,uBAAD;AACI,sBAAYL,IAAI,CAACsB,aAAL,CAAmB/E,QAAQ,CAACgF,kBAA5B,CADhB;AAEI,QAAA,SAAS,EAAE7B,mBAFf;AAGI,QAAA,WAAW,EAAEgB,eAHjB;AAII,QAAA,SAAS,EAAC,6BAJd;AAKI,QAAA,QAAQ,EAAEvC,UALd;AAMI,QAAA,KAAK,EAAC,EANV;AAOI,QAAA,aAAa,EAAE2C,gBAPnB;AAQI,QAAA,iBAAiB,EAAEI,uBARvB;AASI,QAAA,IAAI,EAAC,KATT;AAUI,QAAA,KAAK,EAAE9C;AAVX,QATJ,CADJ,EAuBK,CAAC+C,eAAD,IACG,oBAAC,OAAD;AAAS,QAAA,QAAQ,EAAC,UAAlB;AAA6B,QAAA,IAAI,EAAE,oBAAC,gBAAD,EAAsB5E,QAAQ,CAACiF,cAA/B;AAAnC,SACI,oBAAC,MAAD;AACI,sBAAYxB,IAAI,CAACsB,aAAL,CAAmB/E,QAAQ,CAACiF,cAA5B,CADhB;AAEI,QAAA,SAAS,EAAC,uBAFd;AAGI,QAAA,UAAU,EAAErD,UAHhB;AAII,QAAA,OAAO,EAAE+B,sBAJb;AAKI,QAAA,IAAI,EAAC;AALT,SAMQa,yBANR,GAQI,oBAAC,QAAD,OARJ,CADJ,CAxBR,CADJ,EAwCI;AAAK,QAAA,SAAS,EAAC;AAAf,SACI,oBAAC,oBAAD;AACI,QAAA,WAAW,EAAEhC,WADjB;AAEI,QAAA,0BAA0B,EAAEuB,0BAFhC;AAGI,QAAA,mBAAmB,EAAEC,mBAHzB;AAII,QAAA,iBAAiB,EAAEZ,2BAJvB;AAKI,QAAA,cAAc,EAAEa,cALpB;AAMI,QAAA,QAAQ,EAAET,QANd;AAOI,QAAA,gBAAgB,EAAE;AAAA,iBAAME,iBAAgB,CAAC,yBAAD,CAAtB;AAAA,SAPtB;AAQI,QAAA,cAAc,EAAEI,QAAQ,CAAC,yBAAD,CAAR,IAAuC,IAR3D;AASI,QAAA,UAAU,EAAElC,UAThB;AAUI,QAAA,aAAa,EAAE;AACXwC,UAAAA,6BAA6B,EAA7BA,6BADW;AAEXE,UAAAA,0BAA0B,EAA1BA,0BAFW;AAGXG,UAAAA,+BAA+B,EAA/BA;AAHW;AAVnB,QADJ,EAiBK,CAACK,iBAAD,IAAsBtC,WAAW,KAAKlC,cAAtC,IACG,oBAAC,YAAD;AACI,QAAA,OAAO,EACHY,uBAAuB,CAAC8B,QAAxB,CAAiC7C,QAAjC,MAA8C8B,iCAA9C,aAA8CA,iCAA9C,uBAA8CA,iCAAiC,CAAEgB,OAAjF,CAFR;AAII,QAAA,KAAK,EAAEQ,IAAI,CAACsB,aAAL,CAAmB/E,QAAQ,CAACkF,8BAA5B,CAJX;AAKI,QAAA,IAAI,EAAEzB,IAAI,CAACsB,aAAL,CAAmB/E,QAAQ,CAACmF,6BAA5B,CALV;AAMI,QAAA,SAAS,EAAE,qBAAM;AACb,cAAIlD,iCAAJ,EAAuC;AAAA,gBAC3BmD,OAD2B,GACfnD,iCADe,CAC3BmD,OAD2B;AAEnCA,YAAAA,OAAO;AACV;AACJ,SAXL;AAYI,QAAA,QAAQ,EAAC;AAZb,SAcI,oBAAC,wBAAD;AACI,QAAA,uBAAuB,EAAElE,uBAD7B;AAEI,QAAA,wBAAwB,EAAEJ,oBAF9B;AAGI,QAAA,qBAAqB,EAAEuC,+BAH3B;AAII,QAAA,4BAA4B,EAAE7B,4BAJlC;AAKI,QAAA,eAAe,EAAEP,eALrB;AAMI,QAAA,6BAA6B,EAAE2C,6BANnC;AAOI,QAAA,iCAAiC,EAAE3B,iCAPvC;AAQI,QAAA,UAAU,EAAEL,UARhB;AASI,QAAA,aAAa,EAAE;AACXyC,UAAAA,iCAAiC,EAAjCA,iCADW;AAEXK,UAAAA,oCAAoC,EAApCA;AAFW;AATnB,QAdJ,CAlBR,EAgDKI,iBAAiB,IACd,oBAAC,OAAD;AAAS,QAAA,IAAI,EAAE,oBAAC,gBAAD,EAAsB9E,QAAQ,CAACqF,gCAA/B;AAAf,SACI,oBAAC,WAAD;AAAa,QAAA,UAAU,MAAvB;AAAwB,QAAA,SAAS,EAAC;AAAlC,SACI,oBAAC,gBAAD,EAAsBrF,QAAQ,CAACsF,yBAA/B,CADJ,CADJ,CAjDR,CAxCJ,EAgGK9C,WAAW,KAAKtC,gBAAhB,IACG;AAAK,QAAA,SAAS,EAAC;AAAf,SACI;AAAM,QAAA,SAAS,EAAC;AAAhB,SACI,oBAAC,SAAD;AAAW,QAAA,MAAM,EAAE,EAAnB;AAAuB,QAAA,KAAK,EAAE;AAA9B,QADJ,CADJ,EAIKe,eAAe,KAAKd,QAApB,GACG,oBAAC,gBAAD;AACI,uBAAY;AADhB,SAEQH,QAAQ,CAACuF,mCAFjB,EADH,GAMG,oBAAC,gBAAD;AACI,uBAAY;AADhB,SAEQvF,QAAQ,CAACwF,2BAFjB,EAVR,CAjGR,EAkHKhD,WAAW,KAAKvC,iBAAhB,IAAqCwB,0BAArC,IACG;AAAK,QAAA,SAAS,EAAC;AAAf,SACI;AAAM,QAAA,SAAS,EAAC;AAAhB,SACI,oBAAC,SAAD;AAAW,QAAA,MAAM,EAAE,EAAnB;AAAuB,QAAA,KAAK,EAAE;AAA9B,QADJ,CADJ,EAII,oBAAC,gBAAD;AACI,uBAAY;AADhB,SAEQzB,QAAQ,CAACyF,0CAFjB,EAJJ,CAnHR,CADJ;AAgIH;;;mDAE8B;AAAA,yBAQvB,KAAKjF,KARkB;AAAA,UAEvBiD,IAFuB,gBAEvBA,IAFuB;AAAA,UAGvBC,gBAHuB,gBAGvBA,gBAHuB;AAAA,UAIvBgC,eAJuB,gBAIvBA,eAJuB;AAAA,UAKvBC,6BALuB,gBAKvBA,6BALuB;AAAA,UAMvB9B,aANuB,gBAMvBA,aANuB;AAAA,UAOvBC,QAPuB,gBAOvBA,QAPuB;AAAA,UASnB8B,6BATmB,GASe/B,aATf,CASnB+B,6BATmB;AAW3B,aACI;AAAK,QAAA,SAAS,EAAC;AAAf,SACI,oBAAC,OAAD;AACI,QAAA,SAAS,EAAC,kBADd;AAEI,QAAA,OAAO,EAAE,CAAC,CAAC9B,QAAQ,CAAC,sBAAD,CAAV,IAAsC6B,6BAFnD;AAGI,QAAA,SAAS,EAAE;AAAA,iBAAMjC,gBAAgB,CAAC,sBAAD,CAAtB;AAAA,SAHf;AAII,QAAA,QAAQ,EAAC,cAJb;AAKI,QAAA,eAAe,MALnB;AAMI,QAAA,IAAI,EACAI,QAAQ,CAAC,sBAAD,CAAR,IACI,oBAAC,gBAAD,EAAsB9D,QAAQ,CAAC6F,6BAA/B,CARZ;AAWI,QAAA,KAAK,EAAC;AAXV,SAaI,oBAAC,WAAD,eACQD,6BADR;AAEI,sBAAYnC,IAAI,CAACsB,aAAL,CAAmB/E,QAAQ,CAAC8F,mBAA5B,CAFhB;AAGI,QAAA,SAAS,EAAC,0BAHd;AAII,QAAA,OAAO,EAAEJ,eAJb;AAKI,QAAA,IAAI,EAAC;AALT,UAOI,oBAAC,gBAAD,EAAsB1F,QAAQ,CAAC+F,kBAA/B,CAPJ,CAbJ,CADJ,CADJ;AA2BH;;;mCAEc;AAAA;;AAAA,yBAC8E,KAAKvF,KADnF;AAAA,UACH+C,IADG,gBACHA,IADG;AAAA,UACGG,gBADH,gBACGA,gBADH;AAAA,UACqBsC,kBADrB,gBACqBA,kBADrB;AAAA,UACyCnF,UADzC,gBACyCA,UADzC;AAAA,UACqDe,UADrD,gBACqDA,UADrD;AAAA,UACiEkC,QADjE,gBACiEA,QADjE;AAAA,UAEHhD,oBAFG,GAEgDD,UAFhD,CAEHC,oBAFG;AAAA,UAEmBmF,mBAFnB,GAEgDpF,UAFhD,CAEmBoF,mBAFnB;AAAA,UAEwCpE,GAFxC,GAEgDhB,UAFhD,CAEwCgB,GAFxC;AAGX,UAAMpB,mBAAmB,GAAG,CAAC,CAACoB,GAA9B;AACA,UAAMqE,gBAAgB,GAAG,KAAKA,gBAAL,CAAsBzF,mBAAtB,EAA2C8C,IAAI,CAAC4C,kBAAL,CAAwBC,SAAnE,CAAzB;AACA,UAAMC,mBAAmB,GAAG,KAAKA,mBAAL,CAAyB5F,mBAAzB,EAA8CK,oBAA9C,CAA5B;AACA,UAAMwF,eAAe,GAAG,CAACJ,gBAAgB,IAAIG,mBAArB,KAA6C,CAACzE,UAAtE;AAEA,UAAI2E,QAAJ;;AAEA,UAAI9F,mBAAJ,EAAyB;AACrB8F,QAAAA,QAAQ,GAAG,oBAAC,gBAAD,EAAsBvG,QAAQ,CAACwG,WAA/B,CAAX;;AACA,YAAIP,mBAAmB,IAAIA,mBAAmB,KAAK,CAAnD,EAAsD;AAClDM,UAAAA,QAAQ,GACJ,kCACI,oBAAC,gBAAD,EAAsBvG,QAAQ,CAACwG,WAA/B,CADJ,EAEI,oBAAC,OAAD;AACI,YAAA,QAAQ,EAAC,YADb;AAEI,YAAA,IAAI,EACA,oBAAC,gBAAD,eACQxG,QAAQ,CAACyG,2BADjB;AAEI,cAAA,MAAM,EAAE;AACJC,gBAAAA,UAAU,EAAEpH,WAAW,CAAC2G,mBAAD;AADnB;AAFZ;AAHR,aAWI;AAAM,YAAA,SAAS,EAAC;AAAhB,aACI,oBAAC,SAAD;AAAW,YAAA,KAAK,EAAEvG;AAAlB,YADJ,CAXJ,CAFJ,CADJ;AAoBH;AACJ,OAxBD,MAwBO;AACH6G,QAAAA,QAAQ,GAAG,oBAAC,gBAAD,EAAsBvG,QAAQ,CAAC2G,YAA/B,CAAX;AACH;;AAED,UAAMC,eAAe,GACjB;AAAK,QAAA,SAAS,EAAC;AAAf,SACI,oBAAC,MAAD;AACI,QAAA,UAAU,EAAE,CAACN,eADjB;AAEI,QAAA,IAAI,EAAE7F,mBAFV;AAGI,QAAA,KAAK,EAAE8F,QAHX;AAII,QAAA,IAAI,EAAC,QAJT;AAKI,QAAA,QAAQ,EAAEP,kBALd;AAMI,QAAA,GAAG,EAAE,aAAAa,IAAG,EAAI;AACR,UAAA,MAAI,CAACvE,SAAL,GAAiBuE,IAAjB;AACH;AARL,QADJ,CADJ;;AAeA,UAAI,CAACjF,UAAL,EAAiB;AACb,YAAIsE,gBAAJ,EAAsB;AAClB,cAAMY,uBAAuB,GAAGhD,QAAQ,CAAC,oBAAD,CAAxC;;AACA,cAAIgD,uBAAJ,EAA6B;AACzB,mBACI,oBAAC,OAAD;AACI,cAAA,SAAS,EAAC,kBADd;AAEI,cAAA,OAAO,MAFX;AAGI,cAAA,SAAS,EAAE;AAAA,uBAAMpD,gBAAgB,CAAC,oBAAD,CAAtB;AAAA,eAHf;AAII,cAAA,QAAQ,EAAC,aAJb;AAKI,cAAA,eAAe,MALnB;AAMI,cAAA,IAAI,EAAEoD,uBANV;AAOI,cAAA,KAAK,EAAC;AAPV,eASKF,eATL,CADJ;AAaH;;AACD,iBACI,oBAAC,OAAD;AACI,YAAA,QAAQ,EAAC,WADb;AAEI,YAAA,IAAI,EAAE,oBAAC,gBAAD,EAAsB5G,QAAQ,CAAC+G,6BAA/B;AAFV,aAIKH,eAJL,CADJ;AAQH;;AAED,YAAI,CAACN,eAAL,EAAsB;AAClB,cAAMU,sBAAsB,GAAGvG,mBAAmB,GAC5CT,QAAQ,CAACiH,iBADmC,GAE5CjH,QAAQ,CAACkH,yBAFf;AAIA,iBACI,oBAAC,OAAD;AACI,YAAA,SAAS,EAAC,8BADd;AAEI,YAAA,QAAQ,EAAC,WAFb;AAGI,YAAA,IAAI,EAAE,oBAAC,gBAAD,EAAsBF,sBAAtB;AAHV,aAKKJ,eALL,CADJ;AASH;AACJ;;AAED,aAAOA,eAAP;AACH;;;6BAEQ;AAAA,yBACmC,KAAKpG,KADxC;AAAA,UACGK,UADH,gBACGA,UADH;AAAA,UACe6E,eADf,gBACeA,eADf;AAEL,UAAMjF,mBAAmB,GAAG,CAAC,CAACI,UAAU,CAACgB,GAAzC;AAEA,aACI;AAAK,QAAA,SAAS,EAAC;AAAf,SACI;AAAI,QAAA,SAAS,EAAC;AAAd,QADJ,EAGI,mCACI;AAAM,QAAA,SAAS,EAAC;AAAhB,SACI,oBAAC,gBAAD,EAAsB7B,QAAQ,CAACmH,sBAA/B,CADJ,CADJ,CAHJ,EAQI;AAAK,QAAA,SAAS,EAAC;AAAf,SACK,KAAKC,YAAL,EADL,EAEK3G,mBAAmB,IAAIiF,eAAvB,IAA0C,KAAK2B,4BAAL,EAF/C,CARJ,EAYK5G,mBAAmB,IAAI,KAAK6G,gBAAL,EAZ5B,CADJ;AAgBH;;;;EAngB2BxI,KAAK,CAACyI,S;;gBAAhChH,iB,kBACoB;AAClBsD,EAAAA,aAAa,EAAE,EADG;AAElBnC,EAAAA,oBAAoB,EAAE;AAFJ,C;;AAqgB1B,eAAenB,iBAAf","sourcesContent":["// @flow\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport PlainButton from '../../components/plain-button';\nimport Button from '../../components/button';\nimport GuideTooltip from '../../components/guide-tooltip';\nimport TextInputWithCopyButton from '../../components/text-input-with-copy-button';\nimport Toggle from '../../components/toggle/Toggle';\nimport Tooltip from '../../components/tooltip';\nimport { convertToMs } from '../../utils/datetime';\nimport IconMail from '../../icons/general/IconMail';\nimport IconClock from '../../icons/general/IconClock';\nimport IconGlobe from '../../icons/general/IconGlobe';\nimport { bdlWatermelonRed } from '../../styles/variables';\nimport type { ItemType } from '../../common/types/core';\nimport type { TargetingApi } from '../targeting/types';\nimport { isBoxNote } from '../../utils/file';\nimport Browser from '../../utils/Browser';\n\nimport convertToBoxItem from './utils/item';\nimport SharedLinkAccessMenu from './SharedLinkAccessMenu';\nimport SharedLinkPermissionMenu from './SharedLinkPermissionMenu';\nimport messages from './messages';\nimport type {\n accessLevelType,\n item as itemtype,\n permissionLevelType,\n sharedLinkType,\n sharedLinkTrackingType,\n tooltipComponentIdentifierType,\n USMConfig,\n} from './flowTypes';\nimport {\n ANYONE_IN_COMPANY,\n ANYONE_WITH_LINK,\n CAN_EDIT,\n CAN_VIEW_DOWNLOAD,\n CAN_VIEW_ONLY,\n PEOPLE_IN_ITEM,\n} from './constants';\n\ntype Props = {\n addSharedLink: () => void,\n autoCreateSharedLink?: boolean,\n autofocusSharedLink?: boolean,\n changeSharedLinkAccessLevel: (newAccessLevel: accessLevelType) => Promise<{ accessLevel: accessLevelType }>,\n changeSharedLinkPermissionLevel: (\n newPermissionLevel: permissionLevelType,\n ) => Promise<{ permissionLevel: permissionLevelType }>,\n config?: USMConfig,\n intl: any,\n isAllowEditSharedLinkForFileEnabled: boolean,\n item: itemtype,\n itemType: ItemType,\n onCopyError?: () => void,\n onCopyInit?: () => void,\n onCopySuccess?: () => void,\n onDismissTooltip: (componentIdentifier: tooltipComponentIdentifierType) => void,\n onEmailSharedLinkClick: Function,\n onSettingsClick?: Function,\n onToggleSharedLink: Function,\n sharedLink: sharedLinkType,\n sharedLinkEditTagTargetingApi?: TargetingApi,\n sharedLinkEditTooltipTargetingApi?: TargetingApi,\n showSharedLinkSettingsCallout: boolean,\n submitting: boolean,\n tooltips: { [componentIdentifier: tooltipComponentIdentifierType]: React.Node },\n trackingProps: sharedLinkTrackingType,\n triggerCopyOnLoad?: boolean,\n};\n\ntype State = {\n isAutoCreatingSharedLink: boolean,\n isCopySuccessful: ?boolean,\n isPermissionElevatedToEdit: boolean,\n isSharedLinkEditTooltipShown: boolean,\n};\n\nclass SharedLinkSection extends React.Component<Props, State> {\n static defaultProps = {\n trackingProps: {},\n autoCreateSharedLink: false,\n };\n\n toggleRef: HTMLInputElement | null;\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n isAutoCreatingSharedLink: false,\n isCopySuccessful: null,\n isSharedLinkEditTooltipShown: false,\n isPermissionElevatedToEdit: false,\n };\n }\n\n componentDidMount() {\n const { sharedLink, autoCreateSharedLink, addSharedLink, submitting } = this.props;\n\n if (\n autoCreateSharedLink &&\n !this.state.isAutoCreatingSharedLink &&\n sharedLink &&\n !sharedLink.url &&\n !submitting &&\n !sharedLink.isNewSharedLink\n ) {\n this.setState({ isAutoCreatingSharedLink: true });\n addSharedLink();\n }\n }\n\n // We handle didUpdate but not didMount because\n // the component initially renders with empty data\n // in order to start showing UI components.\n // When getInitialData completes in the parent we\n // rerender with correct sharedLink data and can\n // check whether to auto create a new one.\n // Note: we are assuming the 2nd render is safe\n // to start doing this check.\n componentDidUpdate(prevProps: Props) {\n const {\n sharedLink,\n autoCreateSharedLink,\n addSharedLink,\n sharedLinkEditTooltipTargetingApi,\n submitting,\n triggerCopyOnLoad,\n onCopyError = () => {},\n onCopySuccess = () => {},\n onCopyInit = () => {},\n } = this.props;\n\n const {\n isAutoCreatingSharedLink,\n isCopySuccessful,\n isSharedLinkEditTooltipShown,\n isPermissionElevatedToEdit,\n } = this.state;\n\n if (\n autoCreateSharedLink &&\n !isAutoCreatingSharedLink &&\n !sharedLink.url &&\n !submitting &&\n !sharedLink.isNewSharedLink\n ) {\n this.setState({ isAutoCreatingSharedLink: true });\n addSharedLink();\n }\n\n if (!prevProps.sharedLink.url && sharedLink.url) {\n this.setState({ isAutoCreatingSharedLink: false });\n if (this.toggleRef) {\n this.toggleRef.focus();\n }\n }\n\n if (\n prevProps.sharedLink.permissionLevel !== '' &&\n prevProps.sharedLink.permissionLevel !== CAN_EDIT &&\n sharedLink.permissionLevel === CAN_EDIT\n ) {\n this.setState({ isPermissionElevatedToEdit: true });\n }\n\n if (\n isPermissionElevatedToEdit &&\n (sharedLink.permissionLevel !== CAN_EDIT || sharedLink.accessLevel !== ANYONE_IN_COMPANY)\n ) {\n this.setState({ isPermissionElevatedToEdit: false });\n }\n\n if (\n Browser.canWriteToClipboard() &&\n triggerCopyOnLoad &&\n !isAutoCreatingSharedLink &&\n sharedLink.url &&\n isCopySuccessful === null\n ) {\n onCopyInit();\n navigator.clipboard\n .writeText(sharedLink.url)\n .then(() => {\n this.setState({ isCopySuccessful: true });\n onCopySuccess();\n })\n .catch(() => {\n this.setState({ isCopySuccessful: false });\n onCopyError();\n });\n }\n\n // if ESL ftux tooltip is showing on initial mount, we call onShow\n const allowedPermissionLevels = this.getAllowedPermissionLevels();\n\n if (\n allowedPermissionLevels.includes(CAN_EDIT) &&\n sharedLinkEditTooltipTargetingApi &&\n sharedLinkEditTooltipTargetingApi.canShow &&\n !isSharedLinkEditTooltipShown\n ) {\n const { onShow } = sharedLinkEditTooltipTargetingApi;\n onShow();\n this.setState({ isSharedLinkEditTooltipShown: true });\n }\n }\n\n canAddSharedLink = (isSharedLinkEnabled: boolean, canAddLink: boolean) => {\n return !isSharedLinkEnabled && canAddLink;\n };\n\n canRemoveSharedLink = (isSharedLinkEnabled: boolean, canRemoveLink: boolean) => {\n return isSharedLinkEnabled && canRemoveLink;\n };\n\n getAllowedPermissionLevels = (): Array<permissionLevelType> => {\n const { isAllowEditSharedLinkForFileEnabled, sharedLink } = this.props;\n\n const {\n canChangeAccessLevel,\n isEditSettingAvailable,\n isDownloadSettingAvailable,\n permissionLevel,\n } = sharedLink;\n\n let allowedPermissionLevels = [CAN_EDIT, CAN_VIEW_DOWNLOAD, CAN_VIEW_ONLY];\n\n if (!canChangeAccessLevel) {\n // remove all but current level\n allowedPermissionLevels = allowedPermissionLevels.filter(level => level === permissionLevel);\n }\n\n // if we cannot set the download value, we remove this option from the dropdown\n if (!isDownloadSettingAvailable) {\n allowedPermissionLevels = allowedPermissionLevels.filter(level => level !== CAN_VIEW_DOWNLOAD);\n }\n\n // if the user cannot edit, we remove this option from the dropdown\n if (!isEditSettingAvailable || !isAllowEditSharedLinkForFileEnabled) {\n allowedPermissionLevels = allowedPermissionLevels.filter(level => level !== CAN_EDIT);\n }\n\n return allowedPermissionLevels;\n };\n\n renderSharedLink() {\n const {\n autofocusSharedLink,\n changeSharedLinkAccessLevel,\n changeSharedLinkPermissionLevel,\n config,\n item,\n itemType,\n intl,\n onDismissTooltip,\n onEmailSharedLinkClick,\n sharedLink,\n sharedLinkEditTagTargetingApi,\n sharedLinkEditTooltipTargetingApi,\n submitting,\n trackingProps,\n triggerCopyOnLoad,\n tooltips,\n } = this.props;\n\n const { isCopySuccessful, isPermissionElevatedToEdit, isSharedLinkEditTooltipShown } = this.state;\n\n const {\n accessLevel,\n accessLevelsDisabledReason,\n allowedAccessLevels,\n canChangeAccessLevel,\n enterpriseName,\n isEditAllowed,\n permissionLevel,\n url,\n } = sharedLink;\n\n const {\n copyButtonProps,\n onChangeSharedLinkAccessLevel,\n onChangeSharedLinkPermissionLevel,\n onSharedLinkAccessMenuOpen,\n onSharedLinkCopy,\n sendSharedLinkButtonProps,\n sharedLinkAccessMenuButtonProps,\n sharedLinkPermissionsMenuButtonProps,\n } = trackingProps;\n\n const shouldTriggerCopyOnLoad = !!triggerCopyOnLoad && !!isCopySuccessful;\n\n /**\n * The email button should be rendered by default.\n * Only hide the button if there is a config prop that declares showEmailSharedLinkForm to be false.\n */\n const hideEmailButton = config && config.showEmailSharedLinkForm === false;\n\n const isEditableBoxNote = isBoxNote(convertToBoxItem(item)) && isEditAllowed;\n const allowedPermissionLevels = this.getAllowedPermissionLevels();\n\n return (\n <>\n <div className=\"shared-link-field-row\">\n <Tooltip\n className=\"usm-ftux-tooltip\"\n isShown={!!tooltips['shared-link-copy-button']}\n onDismiss={() => onDismissTooltip('shared-link-copy-button')}\n position=\"middle-right\"\n showCloseButton\n text={tooltips['shared-link-copy-button']}\n theme=\"callout\"\n >\n <TextInputWithCopyButton\n aria-label={intl.formatMessage(messages.sharedLinkURLLabel)}\n autofocus={autofocusSharedLink}\n buttonProps={copyButtonProps}\n className=\"shared-link-field-container\"\n disabled={submitting}\n label=\"\"\n onCopySuccess={onSharedLinkCopy}\n triggerCopyOnLoad={shouldTriggerCopyOnLoad}\n type=\"url\"\n value={url}\n />\n </Tooltip>\n {!hideEmailButton && (\n <Tooltip position=\"top-left\" text={<FormattedMessage {...messages.sendSharedLink} />}>\n <Button\n aria-label={intl.formatMessage(messages.sendSharedLink)}\n className=\"email-shared-link-btn\"\n isDisabled={submitting}\n onClick={onEmailSharedLinkClick}\n type=\"button\"\n {...sendSharedLinkButtonProps}\n >\n <IconMail />\n </Button>\n </Tooltip>\n )}\n </div>\n\n <div className=\"shared-link-access-row\">\n <SharedLinkAccessMenu\n accessLevel={accessLevel}\n accessLevelsDisabledReason={accessLevelsDisabledReason}\n allowedAccessLevels={allowedAccessLevels}\n changeAccessLevel={changeSharedLinkAccessLevel}\n enterpriseName={enterpriseName}\n itemType={itemType}\n onDismissTooltip={() => onDismissTooltip('shared-link-access-menu')}\n tooltipContent={tooltips['shared-link-access-menu'] || null}\n submitting={submitting}\n trackingProps={{\n onChangeSharedLinkAccessLevel,\n onSharedLinkAccessMenuOpen,\n sharedLinkAccessMenuButtonProps,\n }}\n />\n {!isEditableBoxNote && accessLevel !== PEOPLE_IN_ITEM && (\n <GuideTooltip\n isShown={\n allowedPermissionLevels.includes(CAN_EDIT) && sharedLinkEditTooltipTargetingApi?.canShow\n }\n title={intl.formatMessage(messages.ftuxEditPermissionTooltipTitle)}\n body={intl.formatMessage(messages.ftuxEditPermissionTooltipBody)}\n onDismiss={() => {\n if (sharedLinkEditTooltipTargetingApi) {\n const { onClose } = sharedLinkEditTooltipTargetingApi;\n onClose();\n }\n }}\n position=\"bottom-center\"\n >\n <SharedLinkPermissionMenu\n allowedPermissionLevels={allowedPermissionLevels}\n canChangePermissionLevel={canChangeAccessLevel}\n changePermissionLevel={changeSharedLinkPermissionLevel}\n isSharedLinkEditTooltipShown={isSharedLinkEditTooltipShown}\n permissionLevel={permissionLevel}\n sharedLinkEditTagTargetingApi={sharedLinkEditTagTargetingApi}\n sharedLinkEditTooltipTargetingApi={sharedLinkEditTooltipTargetingApi}\n submitting={submitting}\n trackingProps={{\n onChangeSharedLinkPermissionLevel,\n sharedLinkPermissionsMenuButtonProps,\n }}\n />\n </GuideTooltip>\n )}\n {isEditableBoxNote && (\n <Tooltip text={<FormattedMessage {...messages.sharedLinkPermissionsEditTooltip} />}>\n <PlainButton isDisabled className=\"can-edit-btn\">\n <FormattedMessage {...messages.sharedLinkPermissionsEdit} />\n </PlainButton>\n </Tooltip>\n )}\n </div>\n {accessLevel === ANYONE_WITH_LINK && (\n <div className=\"security-indicator-note\">\n <span className=\"security-indicator-icon-globe\">\n <IconGlobe height={12} width={12} />\n </span>\n {permissionLevel === CAN_EDIT ? (\n <FormattedMessage\n data-testid=\"shared-link-editable-publicly-available-message\"\n {...messages.sharedLinkEditablePubliclyAvailable}\n />\n ) : (\n <FormattedMessage\n data-testid=\"shared-link-publicly-available-message\"\n {...messages.sharedLinkPubliclyAvailable}\n />\n )}\n </div>\n )}\n {accessLevel === ANYONE_IN_COMPANY && isPermissionElevatedToEdit && (\n <div className=\"security-indicator-note\">\n <span className=\"security-indicator-icon-globe\">\n <IconGlobe height={12} width={12} />\n </span>\n <FormattedMessage\n data-testid=\"shared-link-elevated-editable-company-available-message\"\n {...messages.sharedLinkElevatedEditableCompanyAvailable}\n />\n </div>\n )}\n </>\n );\n }\n\n renderSharedLinkSettingsLink() {\n const {\n intl,\n onDismissTooltip,\n onSettingsClick,\n showSharedLinkSettingsCallout,\n trackingProps,\n tooltips,\n } = this.props;\n const { sharedLinkSettingsButtonProps } = trackingProps;\n\n return (\n <div className=\"shared-link-settings-btn-container\">\n <Tooltip\n className=\"usm-ftux-tooltip\"\n isShown={!!tooltips['shared-link-settings'] || showSharedLinkSettingsCallout}\n onDismiss={() => onDismissTooltip('shared-link-settings')}\n position=\"middle-right\"\n showCloseButton\n text={\n tooltips['shared-link-settings'] || (\n <FormattedMessage {...messages.sharedLinkSettingsCalloutText} />\n )\n }\n theme=\"callout\"\n >\n <PlainButton\n {...sharedLinkSettingsButtonProps}\n aria-label={intl.formatMessage(messages.settingsButtonLabel)}\n className=\"shared-link-settings-btn\"\n onClick={onSettingsClick}\n type=\"button\"\n >\n <FormattedMessage {...messages.sharedLinkSettings} />\n </PlainButton>\n </Tooltip>\n </div>\n );\n }\n\n renderToggle() {\n const { item, onDismissTooltip, onToggleSharedLink, sharedLink, submitting, tooltips } = this.props;\n const { canChangeAccessLevel, expirationTimestamp, url } = sharedLink;\n const isSharedLinkEnabled = !!url;\n const canAddSharedLink = this.canAddSharedLink(isSharedLinkEnabled, item.grantedPermissions.itemShare);\n const canRemoveSharedLink = this.canRemoveSharedLink(isSharedLinkEnabled, canChangeAccessLevel);\n const isToggleEnabled = (canAddSharedLink || canRemoveSharedLink) && !submitting;\n\n let linkText;\n\n if (isSharedLinkEnabled) {\n linkText = <FormattedMessage {...messages.linkShareOn} />;\n if (expirationTimestamp && expirationTimestamp !== 0) {\n linkText = (\n <span>\n <FormattedMessage {...messages.linkShareOn} />\n <Tooltip\n position=\"top-center\"\n text={\n <FormattedMessage\n {...messages.sharedLinkExpirationTooltip}\n values={{\n expiration: convertToMs(expirationTimestamp),\n }}\n />\n }\n >\n <span className=\"shared-link-expiration-badge\">\n <IconClock color={bdlWatermelonRed} />\n </span>\n </Tooltip>\n </span>\n );\n }\n } else {\n linkText = <FormattedMessage {...messages.linkShareOff} />;\n }\n\n const toggleComponent = (\n <div className=\"share-toggle-container\">\n <Toggle\n isDisabled={!isToggleEnabled}\n isOn={isSharedLinkEnabled}\n label={linkText}\n name=\"toggle\"\n onChange={onToggleSharedLink}\n ref={ref => {\n this.toggleRef = ref;\n }}\n />\n </div>\n );\n\n if (!submitting) {\n if (canAddSharedLink) {\n const sharedLinkToggleTooltip = tooltips['shared-link-toggle'];\n if (sharedLinkToggleTooltip) {\n return (\n <Tooltip\n className=\"usm-ftux-tooltip\"\n isShown\n onDismiss={() => onDismissTooltip('shared-link-toggle')}\n position=\"middle-left\"\n showCloseButton\n text={sharedLinkToggleTooltip}\n theme=\"callout\"\n >\n {toggleComponent}\n </Tooltip>\n );\n }\n return (\n <Tooltip\n position=\"top-right\"\n text={<FormattedMessage {...messages.sharedLinkDisabledTooltipCopy} />}\n >\n {toggleComponent}\n </Tooltip>\n );\n }\n\n if (!isToggleEnabled) {\n const tooltipDisabledMessage = isSharedLinkEnabled\n ? messages.removeLinkTooltip\n : messages.disabledCreateLinkTooltip;\n\n return (\n <Tooltip\n className=\"usm-disabled-message-tooltip\"\n position=\"top-right\"\n text={<FormattedMessage {...tooltipDisabledMessage} />}\n >\n {toggleComponent}\n </Tooltip>\n );\n }\n }\n\n return toggleComponent;\n }\n\n render() {\n const { sharedLink, onSettingsClick } = this.props;\n const isSharedLinkEnabled = !!sharedLink.url;\n\n return (\n <div className=\"be\">\n <hr className=\"bdl-SharedLinkSection-separator\" />\n {/* eslint-disable-next-line jsx-a11y/label-has-for */}\n <label>\n <span className=\"label bdl-Label\">\n <FormattedMessage {...messages.sharedLinkSectionLabel} />\n </span>\n </label>\n <div className=\"shared-link-toggle-row\">\n {this.renderToggle()}\n {isSharedLinkEnabled && onSettingsClick && this.renderSharedLinkSettingsLink()}\n </div>\n {isSharedLinkEnabled && this.renderSharedLink()}\n </div>\n );\n }\n}\n\nexport default SharedLinkSection;\n"],"file":"SharedLinkSection.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/features/unified-share-modal/SharedLinkSection.js"],"names":["React","noop","FormattedMessage","PlainButton","Button","GuideTooltip","TextInputWithCopyButton","Toggle","Tooltip","convertToMs","IconMail","IconClock","IconGlobe","bdlWatermelonRed","isBoxNote","Browser","convertToBoxItem","SharedLinkAccessMenu","SharedLinkPermissionMenu","messages","ANYONE_IN_COMPANY","ANYONE_WITH_LINK","CAN_EDIT","CAN_VIEW_DOWNLOAD","CAN_VIEW_ONLY","PEOPLE_IN_ITEM","SharedLinkSection","props","isSharedLinkEnabled","canAddLink","canRemoveLink","isAllowEditSharedLinkForFileEnabled","sharedLink","canChangeAccessLevel","isEditSettingAvailable","isDownloadSettingAvailable","permissionLevel","allowedPermissionLevels","filter","level","state","isAutoCreatingSharedLink","isCopySuccessful","isSharedLinkEditTooltipShown","autoCreateSharedLink","addSharedLink","submitting","url","isNewSharedLink","setState","prevProps","sharedLinkEditTooltipTargetingApi","triggerCopyOnLoad","onCopyError","onCopySuccess","onCopyInit","toggleRef","focus","canWriteToClipboard","navigator","clipboard","writeText","then","catch","getAllowedPermissionLevels","includes","canShow","onShow","autofocusSharedLink","changeSharedLinkAccessLevel","changeSharedLinkPermissionLevel","config","item","itemType","intl","onDismissTooltip","onEmailSharedLinkClick","sharedLinkEditTagTargetingApi","trackingProps","tooltips","accessLevel","accessLevelsDisabledReason","allowedAccessLevels","enterpriseName","isEditAllowed","copyButtonProps","onChangeSharedLinkAccessLevel","onChangeSharedLinkPermissionLevel","onSharedLinkAccessMenuOpen","onSharedLinkCopy","sendSharedLinkButtonProps","sharedLinkAccessMenuButtonProps","sharedLinkPermissionsMenuButtonProps","shouldTriggerCopyOnLoad","hideEmailButton","showEmailSharedLinkForm","isEditableBoxNote","formatMessage","sharedLinkURLLabel","sendSharedLink","ftuxEditPermissionTooltipTitle","ftuxEditPermissionTooltipBody","onClose","sharedLinkPermissionsEditTooltip","sharedLinkPermissionsEdit","sharedLinkEditablePubliclyAvailable","sharedLinkPubliclyAvailable","sharedLinkElevatedEditableCompanyAvailable","onSettingsClick","showSharedLinkSettingsCallout","sharedLinkSettingsButtonProps","sharedLinkSettingsCalloutText","settingsButtonLabel","sharedLinkSettings","onToggleSharedLink","expirationTimestamp","canAddSharedLink","grantedPermissions","itemShare","canRemoveSharedLink","isToggleEnabled","linkText","linkShareOn","sharedLinkExpirationTooltip","expiration","linkShareOff","toggleComponent","ref","sharedLinkToggleTooltip","sharedLinkDisabledTooltipCopy","tooltipDisabledMessage","removeLinkTooltip","disabledCreateLinkTooltip","sharedLinkSectionLabel","renderToggle","renderSharedLinkSettingsLink","renderSharedLink","Component"],"mappings":"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","sourcesContent":["// @flow\n\nimport * as React from 'react';\nimport noop from 'lodash/noop';\nimport { FormattedMessage } from 'react-intl';\n\nimport PlainButton from '../../components/plain-button';\nimport Button from '../../components/button';\nimport GuideTooltip from '../../components/guide-tooltip';\nimport TextInputWithCopyButton from '../../components/text-input-with-copy-button';\nimport Toggle from '../../components/toggle/Toggle';\nimport Tooltip from '../../components/tooltip';\nimport { convertToMs } from '../../utils/datetime';\nimport IconMail from '../../icons/general/IconMail';\nimport IconClock from '../../icons/general/IconClock';\nimport IconGlobe from '../../icons/general/IconGlobe';\nimport { bdlWatermelonRed } from '../../styles/variables';\nimport type { ItemType } from '../../common/types/core';\nimport type { TargetingApi } from '../targeting/types';\nimport { isBoxNote } from '../../utils/file';\nimport Browser from '../../utils/Browser';\n\nimport convertToBoxItem from './utils/item';\nimport SharedLinkAccessMenu from './SharedLinkAccessMenu';\nimport SharedLinkPermissionMenu from './SharedLinkPermissionMenu';\nimport messages from './messages';\nimport type {\n accessLevelType,\n item as itemtype,\n permissionLevelType,\n sharedLinkType,\n sharedLinkTrackingType,\n tooltipComponentIdentifierType,\n USMConfig,\n} from './flowTypes';\nimport {\n ANYONE_IN_COMPANY,\n ANYONE_WITH_LINK,\n CAN_EDIT,\n CAN_VIEW_DOWNLOAD,\n CAN_VIEW_ONLY,\n PEOPLE_IN_ITEM,\n} from './constants';\n\ntype Props = {\n addSharedLink: () => void,\n autoCreateSharedLink?: boolean,\n autofocusSharedLink?: boolean,\n changeSharedLinkAccessLevel: (newAccessLevel: accessLevelType) => Promise<{ accessLevel: accessLevelType }>,\n changeSharedLinkPermissionLevel: (\n newPermissionLevel: permissionLevelType,\n ) => Promise<{ permissionLevel: permissionLevelType }>,\n config?: USMConfig,\n intl: any,\n isAllowEditSharedLinkForFileEnabled: boolean,\n item: itemtype,\n itemType: ItemType,\n onCopyError?: () => void,\n onCopyInit?: () => void,\n onCopySuccess?: () => void,\n onDismissTooltip: (componentIdentifier: tooltipComponentIdentifierType) => void,\n onEmailSharedLinkClick: Function,\n onSettingsClick?: Function,\n onToggleSharedLink: Function,\n sharedLink: sharedLinkType,\n sharedLinkEditTagTargetingApi?: TargetingApi,\n sharedLinkEditTooltipTargetingApi?: TargetingApi,\n showSharedLinkSettingsCallout: boolean,\n submitting: boolean,\n tooltips: { [componentIdentifier: tooltipComponentIdentifierType]: React.Node },\n trackingProps: sharedLinkTrackingType,\n triggerCopyOnLoad?: boolean,\n};\n\ntype State = {\n isAutoCreatingSharedLink: boolean,\n isCopySuccessful: ?boolean,\n isSharedLinkEditTooltipShown: boolean,\n};\n\nclass SharedLinkSection extends React.Component<Props, State> {\n static defaultProps = {\n trackingProps: {},\n autoCreateSharedLink: false,\n };\n\n toggleRef: HTMLInputElement | null;\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n isAutoCreatingSharedLink: false,\n isCopySuccessful: null,\n isSharedLinkEditTooltipShown: false,\n };\n }\n\n componentDidMount() {\n const { sharedLink, autoCreateSharedLink, addSharedLink, submitting } = this.props;\n\n if (\n autoCreateSharedLink &&\n !this.state.isAutoCreatingSharedLink &&\n sharedLink &&\n !sharedLink.url &&\n !submitting &&\n !sharedLink.isNewSharedLink\n ) {\n this.setState({ isAutoCreatingSharedLink: true });\n addSharedLink();\n }\n }\n\n // We handle didUpdate but not didMount because\n // the component initially renders with empty data\n // in order to start showing UI components.\n // When getInitialData completes in the parent we\n // rerender with correct sharedLink data and can\n // check whether to auto create a new one.\n // Note: we are assuming the 2nd render is safe\n // to start doing this check.\n componentDidUpdate(prevProps: Props) {\n const {\n sharedLink,\n autoCreateSharedLink,\n addSharedLink,\n sharedLinkEditTooltipTargetingApi,\n submitting,\n triggerCopyOnLoad,\n onCopyError = () => {},\n onCopySuccess = () => {},\n onCopyInit = () => {},\n } = this.props;\n\n const { isAutoCreatingSharedLink, isCopySuccessful, isSharedLinkEditTooltipShown } = this.state;\n\n if (\n autoCreateSharedLink &&\n !isAutoCreatingSharedLink &&\n !sharedLink.url &&\n !submitting &&\n !sharedLink.isNewSharedLink\n ) {\n this.setState({ isAutoCreatingSharedLink: true });\n addSharedLink();\n }\n\n if (!prevProps.sharedLink.url && sharedLink.url) {\n this.setState({ isAutoCreatingSharedLink: false });\n if (this.toggleRef) {\n this.toggleRef.focus();\n }\n }\n\n if (\n Browser.canWriteToClipboard() &&\n triggerCopyOnLoad &&\n !isAutoCreatingSharedLink &&\n sharedLink.url &&\n isCopySuccessful === null\n ) {\n onCopyInit();\n navigator.clipboard\n .writeText(sharedLink.url)\n .then(() => {\n this.setState({ isCopySuccessful: true });\n onCopySuccess();\n })\n .catch(() => {\n this.setState({ isCopySuccessful: false });\n onCopyError();\n });\n }\n\n // if ESL ftux tooltip is showing on initial mount, we call onShow\n const allowedPermissionLevels = this.getAllowedPermissionLevels();\n\n if (\n allowedPermissionLevels.includes(CAN_EDIT) &&\n sharedLinkEditTooltipTargetingApi &&\n sharedLinkEditTooltipTargetingApi.canShow &&\n !isSharedLinkEditTooltipShown\n ) {\n const { onShow } = sharedLinkEditTooltipTargetingApi;\n onShow();\n this.setState({ isSharedLinkEditTooltipShown: true });\n }\n }\n\n canAddSharedLink = (isSharedLinkEnabled: boolean, canAddLink: boolean) => {\n return !isSharedLinkEnabled && canAddLink;\n };\n\n canRemoveSharedLink = (isSharedLinkEnabled: boolean, canRemoveLink: boolean) => {\n return isSharedLinkEnabled && canRemoveLink;\n };\n\n getAllowedPermissionLevels = (): Array<permissionLevelType> => {\n const { isAllowEditSharedLinkForFileEnabled, sharedLink } = this.props;\n\n const {\n canChangeAccessLevel,\n isEditSettingAvailable,\n isDownloadSettingAvailable,\n permissionLevel,\n } = sharedLink;\n\n let allowedPermissionLevels = [CAN_EDIT, CAN_VIEW_DOWNLOAD, CAN_VIEW_ONLY];\n\n if (!canChangeAccessLevel) {\n // remove all but current level\n allowedPermissionLevels = allowedPermissionLevels.filter(level => level === permissionLevel);\n }\n\n // if we cannot set the download value, we remove this option from the dropdown\n if (!isDownloadSettingAvailable) {\n allowedPermissionLevels = allowedPermissionLevels.filter(level => level !== CAN_VIEW_DOWNLOAD);\n }\n\n // if the user cannot edit, we remove this option from the dropdown\n if (!isEditSettingAvailable || !isAllowEditSharedLinkForFileEnabled) {\n allowedPermissionLevels = allowedPermissionLevels.filter(level => level !== CAN_EDIT);\n }\n\n return allowedPermissionLevels;\n };\n\n renderSharedLink() {\n const {\n autofocusSharedLink,\n changeSharedLinkAccessLevel,\n changeSharedLinkPermissionLevel,\n config,\n item,\n itemType,\n intl,\n onDismissTooltip,\n onEmailSharedLinkClick,\n sharedLink,\n sharedLinkEditTagTargetingApi,\n sharedLinkEditTooltipTargetingApi,\n submitting,\n trackingProps,\n triggerCopyOnLoad,\n tooltips,\n } = this.props;\n\n const { isCopySuccessful, isSharedLinkEditTooltipShown } = this.state;\n\n const {\n accessLevel,\n accessLevelsDisabledReason,\n allowedAccessLevels,\n canChangeAccessLevel,\n enterpriseName,\n isEditAllowed,\n permissionLevel,\n url,\n } = sharedLink;\n\n const {\n copyButtonProps,\n onChangeSharedLinkAccessLevel,\n onChangeSharedLinkPermissionLevel,\n onSharedLinkAccessMenuOpen,\n onSharedLinkCopy = noop,\n sendSharedLinkButtonProps,\n sharedLinkAccessMenuButtonProps,\n sharedLinkPermissionsMenuButtonProps,\n } = trackingProps;\n\n const shouldTriggerCopyOnLoad = !!triggerCopyOnLoad && !!isCopySuccessful;\n\n /**\n * The email button should be rendered by default.\n * Only hide the button if there is a config prop that declares showEmailSharedLinkForm to be false.\n */\n const hideEmailButton = config && config.showEmailSharedLinkForm === false;\n\n const isEditableBoxNote = isBoxNote(convertToBoxItem(item)) && isEditAllowed;\n const allowedPermissionLevels = this.getAllowedPermissionLevels();\n\n return (\n <>\n <div className=\"shared-link-field-row\">\n <Tooltip\n className=\"usm-ftux-tooltip\"\n isShown={!!tooltips['shared-link-copy-button']}\n onDismiss={() => onDismissTooltip('shared-link-copy-button')}\n position=\"middle-right\"\n showCloseButton\n text={tooltips['shared-link-copy-button']}\n theme=\"callout\"\n >\n <TextInputWithCopyButton\n aria-label={intl.formatMessage(messages.sharedLinkURLLabel)}\n autofocus={autofocusSharedLink}\n buttonProps={copyButtonProps}\n className=\"shared-link-field-container\"\n disabled={submitting}\n label=\"\"\n onCopySuccess={() => onSharedLinkCopy(permissionLevel)}\n triggerCopyOnLoad={shouldTriggerCopyOnLoad}\n type=\"url\"\n value={url}\n />\n </Tooltip>\n {!hideEmailButton && (\n <Tooltip position=\"top-left\" text={<FormattedMessage {...messages.sendSharedLink} />}>\n <Button\n aria-label={intl.formatMessage(messages.sendSharedLink)}\n className=\"email-shared-link-btn\"\n isDisabled={submitting}\n onClick={onEmailSharedLinkClick}\n type=\"button\"\n {...sendSharedLinkButtonProps}\n >\n <IconMail />\n </Button>\n </Tooltip>\n )}\n </div>\n\n <div className=\"shared-link-access-row\">\n <SharedLinkAccessMenu\n accessLevel={accessLevel}\n accessLevelsDisabledReason={accessLevelsDisabledReason}\n allowedAccessLevels={allowedAccessLevels}\n changeAccessLevel={changeSharedLinkAccessLevel}\n enterpriseName={enterpriseName}\n itemType={itemType}\n onDismissTooltip={() => onDismissTooltip('shared-link-access-menu')}\n tooltipContent={tooltips['shared-link-access-menu'] || null}\n submitting={submitting}\n trackingProps={{\n onChangeSharedLinkAccessLevel,\n onSharedLinkAccessMenuOpen,\n sharedLinkAccessMenuButtonProps,\n }}\n />\n {!isEditableBoxNote && accessLevel !== PEOPLE_IN_ITEM && (\n <GuideTooltip\n isShown={\n allowedPermissionLevels.includes(CAN_EDIT) && sharedLinkEditTooltipTargetingApi?.canShow\n }\n title={intl.formatMessage(messages.ftuxEditPermissionTooltipTitle)}\n body={intl.formatMessage(messages.ftuxEditPermissionTooltipBody)}\n onDismiss={() => {\n if (sharedLinkEditTooltipTargetingApi) {\n const { onClose } = sharedLinkEditTooltipTargetingApi;\n onClose();\n }\n }}\n position=\"bottom-center\"\n >\n <SharedLinkPermissionMenu\n allowedPermissionLevels={allowedPermissionLevels}\n canChangePermissionLevel={canChangeAccessLevel}\n changePermissionLevel={changeSharedLinkPermissionLevel}\n isSharedLinkEditTooltipShown={isSharedLinkEditTooltipShown}\n permissionLevel={permissionLevel}\n sharedLinkEditTagTargetingApi={sharedLinkEditTagTargetingApi}\n sharedLinkEditTooltipTargetingApi={sharedLinkEditTooltipTargetingApi}\n submitting={submitting}\n trackingProps={{\n onChangeSharedLinkPermissionLevel,\n sharedLinkPermissionsMenuButtonProps,\n }}\n />\n </GuideTooltip>\n )}\n {isEditableBoxNote && (\n <Tooltip text={<FormattedMessage {...messages.sharedLinkPermissionsEditTooltip} />}>\n <PlainButton isDisabled className=\"can-edit-btn\">\n <FormattedMessage {...messages.sharedLinkPermissionsEdit} />\n </PlainButton>\n </Tooltip>\n )}\n </div>\n {accessLevel === ANYONE_WITH_LINK && (\n <div className=\"security-indicator-note\">\n <span className=\"security-indicator-icon-globe\">\n <IconGlobe height={12} width={12} />\n </span>\n {permissionLevel === CAN_EDIT ? (\n <FormattedMessage\n data-testid=\"shared-link-editable-publicly-available-message\"\n {...messages.sharedLinkEditablePubliclyAvailable}\n />\n ) : (\n <FormattedMessage\n data-testid=\"shared-link-publicly-available-message\"\n {...messages.sharedLinkPubliclyAvailable}\n />\n )}\n </div>\n )}\n {accessLevel === ANYONE_IN_COMPANY && permissionLevel === CAN_EDIT && (\n <div className=\"security-indicator-note\">\n <span className=\"security-indicator-icon-globe\">\n <IconGlobe height={12} width={12} />\n </span>\n <FormattedMessage\n data-testid=\"shared-link-elevated-editable-company-available-message\"\n {...messages.sharedLinkElevatedEditableCompanyAvailable}\n />\n </div>\n )}\n </>\n );\n }\n\n renderSharedLinkSettingsLink() {\n const {\n intl,\n onDismissTooltip,\n onSettingsClick,\n showSharedLinkSettingsCallout,\n trackingProps,\n tooltips,\n } = this.props;\n const { sharedLinkSettingsButtonProps } = trackingProps;\n\n return (\n <div className=\"shared-link-settings-btn-container\">\n <Tooltip\n className=\"usm-ftux-tooltip\"\n isShown={!!tooltips['shared-link-settings'] || showSharedLinkSettingsCallout}\n onDismiss={() => onDismissTooltip('shared-link-settings')}\n position=\"middle-right\"\n showCloseButton\n text={\n tooltips['shared-link-settings'] || (\n <FormattedMessage {...messages.sharedLinkSettingsCalloutText} />\n )\n }\n theme=\"callout\"\n >\n <PlainButton\n {...sharedLinkSettingsButtonProps}\n aria-label={intl.formatMessage(messages.settingsButtonLabel)}\n className=\"shared-link-settings-btn\"\n onClick={onSettingsClick}\n type=\"button\"\n >\n <FormattedMessage {...messages.sharedLinkSettings} />\n </PlainButton>\n </Tooltip>\n </div>\n );\n }\n\n renderToggle() {\n const { item, onDismissTooltip, onToggleSharedLink, sharedLink, submitting, tooltips } = this.props;\n const { canChangeAccessLevel, expirationTimestamp, url } = sharedLink;\n const isSharedLinkEnabled = !!url;\n const canAddSharedLink = this.canAddSharedLink(isSharedLinkEnabled, item.grantedPermissions.itemShare);\n const canRemoveSharedLink = this.canRemoveSharedLink(isSharedLinkEnabled, canChangeAccessLevel);\n const isToggleEnabled = (canAddSharedLink || canRemoveSharedLink) && !submitting;\n\n let linkText;\n\n if (isSharedLinkEnabled) {\n linkText = <FormattedMessage {...messages.linkShareOn} />;\n if (expirationTimestamp && expirationTimestamp !== 0) {\n linkText = (\n <span>\n <FormattedMessage {...messages.linkShareOn} />\n <Tooltip\n position=\"top-center\"\n text={\n <FormattedMessage\n {...messages.sharedLinkExpirationTooltip}\n values={{\n expiration: convertToMs(expirationTimestamp),\n }}\n />\n }\n >\n <span className=\"shared-link-expiration-badge\">\n <IconClock color={bdlWatermelonRed} />\n </span>\n </Tooltip>\n </span>\n );\n }\n } else {\n linkText = <FormattedMessage {...messages.linkShareOff} />;\n }\n\n const toggleComponent = (\n <div className=\"share-toggle-container\">\n <Toggle\n isDisabled={!isToggleEnabled}\n isOn={isSharedLinkEnabled}\n label={linkText}\n name=\"toggle\"\n onChange={onToggleSharedLink}\n ref={ref => {\n this.toggleRef = ref;\n }}\n />\n </div>\n );\n\n if (!submitting) {\n if (canAddSharedLink) {\n const sharedLinkToggleTooltip = tooltips['shared-link-toggle'];\n if (sharedLinkToggleTooltip) {\n return (\n <Tooltip\n className=\"usm-ftux-tooltip\"\n isShown\n onDismiss={() => onDismissTooltip('shared-link-toggle')}\n position=\"middle-left\"\n showCloseButton\n text={sharedLinkToggleTooltip}\n theme=\"callout\"\n >\n {toggleComponent}\n </Tooltip>\n );\n }\n return (\n <Tooltip\n position=\"top-right\"\n text={<FormattedMessage {...messages.sharedLinkDisabledTooltipCopy} />}\n >\n {toggleComponent}\n </Tooltip>\n );\n }\n\n if (!isToggleEnabled) {\n const tooltipDisabledMessage = isSharedLinkEnabled\n ? messages.removeLinkTooltip\n : messages.disabledCreateLinkTooltip;\n\n return (\n <Tooltip\n className=\"usm-disabled-message-tooltip\"\n position=\"top-right\"\n text={<FormattedMessage {...tooltipDisabledMessage} />}\n >\n {toggleComponent}\n </Tooltip>\n );\n }\n }\n\n return toggleComponent;\n }\n\n render() {\n const { sharedLink, onSettingsClick } = this.props;\n const isSharedLinkEnabled = !!sharedLink.url;\n\n return (\n <div className=\"be\">\n <hr className=\"bdl-SharedLinkSection-separator\" />\n {/* eslint-disable-next-line jsx-a11y/label-has-for */}\n <label>\n <span className=\"label bdl-Label\">\n <FormattedMessage {...messages.sharedLinkSectionLabel} />\n </span>\n </label>\n <div className=\"shared-link-toggle-row\">\n {this.renderToggle()}\n {isSharedLinkEnabled && onSettingsClick && this.renderSharedLinkSettingsLink()}\n </div>\n {isSharedLinkEnabled && this.renderSharedLink()}\n </div>\n );\n }\n}\n\nexport default SharedLinkSection;\n"],"file":"SharedLinkSection.js"}
|
|
@@ -28,10 +28,13 @@ import * as React from 'react';
|
|
|
28
28
|
import isEmpty from 'lodash/isEmpty';
|
|
29
29
|
import isEqual from 'lodash/isEqual';
|
|
30
30
|
import { FormattedMessage, injectIntl } from 'react-intl';
|
|
31
|
+
import FormattedCompMessage from '../../components/i18n/FormattedCompMessage';
|
|
31
32
|
import LoadingIndicatorWrapper from '../../components/loading-indicator/LoadingIndicatorWrapper';
|
|
32
33
|
import { Link } from '../../components/link';
|
|
33
34
|
import Button from '../../components/button';
|
|
34
35
|
import { UpgradeBadge } from '../../components/badge';
|
|
36
|
+
import InlineNotice from '../../components/inline-notice';
|
|
37
|
+
import PlainButton from '../../components/plain-button';
|
|
35
38
|
import { ITEM_TYPE_WEBLINK } from '../../common/constants';
|
|
36
39
|
import Tooltip from '../../components/tooltip';
|
|
37
40
|
import { CollaboratorAvatars, CollaboratorList } from '../collaborator-avatars';
|
|
@@ -201,8 +204,10 @@ function (_React$Component) {
|
|
|
201
204
|
_defineProperty(_assertThisInitialized(_this), "handleSendSharedLink", function (data) {
|
|
202
205
|
var _this$props4 = _this.props,
|
|
203
206
|
sendSharedLink = _this$props4.sendSharedLink,
|
|
207
|
+
sharedLink = _this$props4.sharedLink,
|
|
204
208
|
trackingProps = _this$props4.trackingProps;
|
|
205
209
|
var sharedLinkEmailTracking = trackingProps.sharedLinkEmailTracking;
|
|
210
|
+
var permissionLevel = sharedLink.permissionLevel;
|
|
206
211
|
var onSendClick = sharedLinkEmailTracking.onSendClick;
|
|
207
212
|
var emails = data.emails,
|
|
208
213
|
groupIDs = data.groupIDs;
|
|
@@ -210,7 +215,8 @@ function (_React$Component) {
|
|
|
210
215
|
if (onSendClick) {
|
|
211
216
|
var params = _objectSpread({}, data, {
|
|
212
217
|
numsOfRecipients: emails.length,
|
|
213
|
-
numOfRecipientGroups: groupIDs.length
|
|
218
|
+
numOfRecipientGroups: groupIDs.length,
|
|
219
|
+
permissionLevel: permissionLevel
|
|
214
220
|
});
|
|
215
221
|
|
|
216
222
|
onSendClick(params);
|
|
@@ -450,6 +456,8 @@ function (_React$Component) {
|
|
|
450
456
|
showEnterEmailsCallout = _this$props8$showEnte === void 0 ? false : _this$props8$showEnte,
|
|
451
457
|
_this$props8$showCall = _this$props8.showCalloutForUser,
|
|
452
458
|
showCalloutForUser = _this$props8$showCall === void 0 ? false : _this$props8$showCall,
|
|
459
|
+
_this$props8$showUpgr = _this$props8.showUpgradeInlineNotice,
|
|
460
|
+
showUpgradeInlineNotice = _this$props8$showUpgr === void 0 ? false : _this$props8$showUpgr,
|
|
453
461
|
showUpgradeOptions = _this$props8.showUpgradeOptions,
|
|
454
462
|
submitting = _this$props8.submitting,
|
|
455
463
|
suggestedCollaborators = _this$props8.suggestedCollaborators,
|
|
@@ -524,7 +532,7 @@ function (_React$Component) {
|
|
|
524
532
|
selectedContacts: this.state.inviteCollabsContacts,
|
|
525
533
|
suggestedCollaborators: suggestedCollaborators,
|
|
526
534
|
updateSelectedContacts: this.updateInviteCollabsContacts
|
|
527
|
-
}, inviteCollabsEmailTracking), this.renderInviteePermissionsDropdown(),
|
|
535
|
+
}, inviteCollabsEmailTracking), this.renderInviteePermissionsDropdown(), showUpgradeOptions && !showUpgradeInlineNotice && this.renderUpgradeLinkDescription()))));
|
|
528
536
|
}
|
|
529
537
|
}, {
|
|
530
538
|
key: "renderCollaboratorAvatars",
|
|
@@ -555,37 +563,68 @@ function (_React$Component) {
|
|
|
555
563
|
|
|
556
564
|
return avatarsContent;
|
|
557
565
|
}
|
|
566
|
+
}, {
|
|
567
|
+
key: "renderCollaboratorMessage",
|
|
568
|
+
value: function renderCollaboratorMessage(resinTarget) {
|
|
569
|
+
var _this$props$openUpgra = this.props.openUpgradePlanModal,
|
|
570
|
+
openUpgradePlanModal = _this$props$openUpgra === void 0 ? function () {} : _this$props$openUpgra;
|
|
571
|
+
return React.createElement(React.Fragment, null, React.createElement(FormattedCompMessage, {
|
|
572
|
+
id: "boxui.unifiedShare.upgradeCollaboratorAccessDescription",
|
|
573
|
+
description: "Description for cta to upgrade to get collaborator access controls"
|
|
574
|
+
}, "Set the level of", ' ', React.createElement(Link, {
|
|
575
|
+
className: "upgrade-link",
|
|
576
|
+
href: "https://support.box.com/hc/en-us/articles/360044196413-Understanding-Collaborator-Permission-Levels",
|
|
577
|
+
target: "_blank"
|
|
578
|
+
}, "collaborator access"), ' ', "and increase security through one of our paid plans.", ' '), React.createElement(PlainButton, {
|
|
579
|
+
className: "upgrade-link",
|
|
580
|
+
"data-resin-target": resinTarget,
|
|
581
|
+
onClick: openUpgradePlanModal,
|
|
582
|
+
type: "button"
|
|
583
|
+
}, React.createElement(FormattedMessage, messages.upgradeLink)));
|
|
584
|
+
}
|
|
558
585
|
}, {
|
|
559
586
|
key: "renderUpgradeLinkDescription",
|
|
560
587
|
value: function renderUpgradeLinkDescription() {
|
|
561
|
-
var _this$
|
|
562
|
-
|
|
588
|
+
var _this$props10 = this.props,
|
|
589
|
+
_this$props10$openUpg = _this$props10.openUpgradePlanModal,
|
|
590
|
+
openUpgradePlanModal = _this$props10$openUpg === void 0 ? function () {} : _this$props10$openUpg,
|
|
591
|
+
_this$props10$showNew = _this$props10.showNewUpgradeText,
|
|
592
|
+
showNewUpgradeText = _this$props10$showNew === void 0 ? false : _this$props10$showNew,
|
|
593
|
+
_this$props10$trackin = _this$props10.trackingProps,
|
|
594
|
+
trackingProps = _this$props10$trackin === void 0 ? {} : _this$props10$trackin;
|
|
563
595
|
var _trackingProps$invite = trackingProps.inviteCollabsEmailTracking,
|
|
564
596
|
inviteCollabsEmailTracking = _trackingProps$invite === void 0 ? {} : _trackingProps$invite;
|
|
565
597
|
var _inviteCollabsEmailTr = inviteCollabsEmailTracking.upgradeLinkProps,
|
|
566
598
|
upgradeLinkProps = _inviteCollabsEmailTr === void 0 ? {} : _inviteCollabsEmailTr;
|
|
567
599
|
return React.createElement("div", {
|
|
568
600
|
className: "upgrade-description"
|
|
569
|
-
}, React.createElement(UpgradeBadge, {
|
|
570
|
-
type: "warning"
|
|
571
|
-
}), React.createElement(FormattedMessage, _extends({
|
|
601
|
+
}, React.createElement(UpgradeBadge, null), showNewUpgradeText ? this.renderCollaboratorMessage('external_collab_newcopy_upgrade_cta') : React.createElement(FormattedMessage, _extends({
|
|
572
602
|
values: {
|
|
573
|
-
upgradeGetMoreAccessControlsLink: React.createElement(
|
|
603
|
+
upgradeGetMoreAccessControlsLink: React.createElement(PlainButton, _extends({
|
|
574
604
|
className: "upgrade-link",
|
|
575
|
-
|
|
605
|
+
onClick: openUpgradePlanModal,
|
|
606
|
+
type: "button"
|
|
576
607
|
}, upgradeLinkProps), React.createElement(FormattedMessage, messages.upgradeGetMoreAccessControlsLink))
|
|
577
608
|
}
|
|
578
609
|
}, messages.upgradeGetMoreAccessControlsDescription)));
|
|
579
610
|
}
|
|
611
|
+
}, {
|
|
612
|
+
key: "renderUpgradeInlineNotice",
|
|
613
|
+
value: function renderUpgradeInlineNotice() {
|
|
614
|
+
return React.createElement(InlineNotice, {
|
|
615
|
+
title: React.createElement(FormattedMessage, messages.upgradeInlineNoticeTitle),
|
|
616
|
+
type: "info"
|
|
617
|
+
}, this.renderCollaboratorMessage('external_collab_top_message_upgrade_cta'));
|
|
618
|
+
}
|
|
580
619
|
}, {
|
|
581
620
|
key: "renderInviteePermissionsDropdown",
|
|
582
621
|
value: function renderInviteePermissionsDropdown() {
|
|
583
|
-
var _this$
|
|
584
|
-
inviteePermissions = _this$
|
|
585
|
-
item = _this$
|
|
586
|
-
submitting = _this$
|
|
587
|
-
canInvite = _this$
|
|
588
|
-
trackingProps = _this$
|
|
622
|
+
var _this$props11 = this.props,
|
|
623
|
+
inviteePermissions = _this$props11.inviteePermissions,
|
|
624
|
+
item = _this$props11.item,
|
|
625
|
+
submitting = _this$props11.submitting,
|
|
626
|
+
canInvite = _this$props11.canInvite,
|
|
627
|
+
trackingProps = _this$props11.trackingProps;
|
|
589
628
|
var type = item.type;
|
|
590
629
|
var inviteCollabTracking = trackingProps.inviteCollabTracking;
|
|
591
630
|
return inviteePermissions && React.createElement(InviteePermissionsMenu, {
|
|
@@ -600,10 +639,10 @@ function (_React$Component) {
|
|
|
600
639
|
}, {
|
|
601
640
|
key: "renderCollaboratorList",
|
|
602
641
|
value: function renderCollaboratorList() {
|
|
603
|
-
var _this$
|
|
604
|
-
item = _this$
|
|
605
|
-
collaboratorsList = _this$
|
|
606
|
-
trackingProps = _this$
|
|
642
|
+
var _this$props12 = this.props,
|
|
643
|
+
item = _this$props12.item,
|
|
644
|
+
collaboratorsList = _this$props12.collaboratorsList,
|
|
645
|
+
trackingProps = _this$props12.trackingProps;
|
|
607
646
|
var name = item.name,
|
|
608
647
|
type = item.type;
|
|
609
648
|
var collaboratorListTracking = trackingProps.collaboratorListTracking;
|
|
@@ -627,39 +666,42 @@ function (_React$Component) {
|
|
|
627
666
|
key: "render",
|
|
628
667
|
value: function render() {
|
|
629
668
|
// Shared link section props
|
|
630
|
-
var _this$
|
|
631
|
-
allShareRestrictionWarning = _this$
|
|
632
|
-
changeSharedLinkAccessLevel = _this$
|
|
633
|
-
createSharedLinkOnLoad = _this$
|
|
634
|
-
changeSharedLinkPermissionLevel = _this$
|
|
635
|
-
config = _this$
|
|
636
|
-
displayInModal = _this$
|
|
637
|
-
focusSharedLinkOnLoad = _this$
|
|
638
|
-
getSharedLinkContacts = _this$
|
|
639
|
-
getContactAvatarUrl = _this$
|
|
640
|
-
intl = _this$
|
|
641
|
-
isAllowEditSharedLinkForFileEnabled = _this$
|
|
642
|
-
isFetching = _this$
|
|
643
|
-
item = _this$
|
|
644
|
-
onAddLink = _this$
|
|
645
|
-
onCopyError = _this$
|
|
646
|
-
onCopyInit = _this$
|
|
647
|
-
onCopySuccess = _this$
|
|
648
|
-
_this$
|
|
649
|
-
onDismissTooltip = _this$
|
|
650
|
-
onSettingsClick = _this$
|
|
651
|
-
sendSharedLinkError = _this$
|
|
652
|
-
sharedLink = _this$
|
|
653
|
-
sharedLinkEditTagTargetingApi = _this$
|
|
654
|
-
sharedLinkEditTooltipTargetingApi = _this$
|
|
655
|
-
_this$
|
|
656
|
-
showEnterEmailsCallout = _this$
|
|
657
|
-
_this$
|
|
658
|
-
showSharedLinkSettingsCallout = _this$
|
|
659
|
-
|
|
660
|
-
_this$
|
|
661
|
-
|
|
662
|
-
|
|
669
|
+
var _this$props13 = this.props,
|
|
670
|
+
allShareRestrictionWarning = _this$props13.allShareRestrictionWarning,
|
|
671
|
+
changeSharedLinkAccessLevel = _this$props13.changeSharedLinkAccessLevel,
|
|
672
|
+
createSharedLinkOnLoad = _this$props13.createSharedLinkOnLoad,
|
|
673
|
+
changeSharedLinkPermissionLevel = _this$props13.changeSharedLinkPermissionLevel,
|
|
674
|
+
config = _this$props13.config,
|
|
675
|
+
displayInModal = _this$props13.displayInModal,
|
|
676
|
+
focusSharedLinkOnLoad = _this$props13.focusSharedLinkOnLoad,
|
|
677
|
+
getSharedLinkContacts = _this$props13.getSharedLinkContacts,
|
|
678
|
+
getContactAvatarUrl = _this$props13.getContactAvatarUrl,
|
|
679
|
+
intl = _this$props13.intl,
|
|
680
|
+
isAllowEditSharedLinkForFileEnabled = _this$props13.isAllowEditSharedLinkForFileEnabled,
|
|
681
|
+
isFetching = _this$props13.isFetching,
|
|
682
|
+
item = _this$props13.item,
|
|
683
|
+
onAddLink = _this$props13.onAddLink,
|
|
684
|
+
onCopyError = _this$props13.onCopyError,
|
|
685
|
+
onCopyInit = _this$props13.onCopyInit,
|
|
686
|
+
onCopySuccess = _this$props13.onCopySuccess,
|
|
687
|
+
_this$props13$onDismi = _this$props13.onDismissTooltip,
|
|
688
|
+
onDismissTooltip = _this$props13$onDismi === void 0 ? function () {} : _this$props13$onDismi,
|
|
689
|
+
onSettingsClick = _this$props13.onSettingsClick,
|
|
690
|
+
sendSharedLinkError = _this$props13.sendSharedLinkError,
|
|
691
|
+
sharedLink = _this$props13.sharedLink,
|
|
692
|
+
sharedLinkEditTagTargetingApi = _this$props13.sharedLinkEditTagTargetingApi,
|
|
693
|
+
sharedLinkEditTooltipTargetingApi = _this$props13.sharedLinkEditTooltipTargetingApi,
|
|
694
|
+
_this$props13$showEnt = _this$props13.showEnterEmailsCallout,
|
|
695
|
+
showEnterEmailsCallout = _this$props13$showEnt === void 0 ? false : _this$props13$showEnt,
|
|
696
|
+
_this$props13$showSha = _this$props13.showSharedLinkSettingsCallout,
|
|
697
|
+
showSharedLinkSettingsCallout = _this$props13$showSha === void 0 ? false : _this$props13$showSha,
|
|
698
|
+
_this$props13$showUpg = _this$props13.showUpgradeInlineNotice,
|
|
699
|
+
showUpgradeInlineNotice = _this$props13$showUpg === void 0 ? false : _this$props13$showUpg,
|
|
700
|
+
showUpgradeOptions = _this$props13.showUpgradeOptions,
|
|
701
|
+
submitting = _this$props13.submitting,
|
|
702
|
+
_this$props13$tooltip = _this$props13.tooltips,
|
|
703
|
+
tooltips = _this$props13$tooltip === void 0 ? {} : _this$props13$tooltip,
|
|
704
|
+
trackingProps = _this$props13.trackingProps;
|
|
663
705
|
var sharedLinkTracking = trackingProps.sharedLinkTracking,
|
|
664
706
|
sharedLinkEmailTracking = trackingProps.sharedLinkEmailTracking;
|
|
665
707
|
var _this$state4 = this.state,
|
|
@@ -673,7 +715,7 @@ function (_React$Component) {
|
|
|
673
715
|
}, React.createElement(LoadingIndicatorWrapper, {
|
|
674
716
|
isLoading: isFetching,
|
|
675
717
|
hideContent: true
|
|
676
|
-
}, showShareRestrictionWarning && allShareRestrictionWarning, !isEmailLinkSectionExpanded && !showCollaboratorList && this.renderInviteSection(), !isEmailLinkSectionExpanded && !isInviteSectionExpanded && !showCollaboratorList && React.createElement(SharedLinkSection, {
|
|
718
|
+
}, showShareRestrictionWarning && allShareRestrictionWarning, showUpgradeOptions && showUpgradeInlineNotice && this.renderUpgradeInlineNotice(), !isEmailLinkSectionExpanded && !showCollaboratorList && this.renderInviteSection(), !isEmailLinkSectionExpanded && !isInviteSectionExpanded && !showCollaboratorList && React.createElement(SharedLinkSection, {
|
|
677
719
|
addSharedLink: onAddLink,
|
|
678
720
|
autofocusSharedLink: this.shouldAutoFocusSharedLink(),
|
|
679
721
|
autoCreateSharedLink: createSharedLinkOnLoad,
|
|
@@ -5,10 +5,13 @@ import isEmpty from 'lodash/isEmpty';
|
|
|
5
5
|
import isEqual from 'lodash/isEqual';
|
|
6
6
|
import { FormattedMessage, injectIntl } from 'react-intl';
|
|
7
7
|
|
|
8
|
+
import FormattedCompMessage from '../../components/i18n/FormattedCompMessage';
|
|
8
9
|
import LoadingIndicatorWrapper from '../../components/loading-indicator/LoadingIndicatorWrapper';
|
|
9
10
|
import { Link } from '../../components/link';
|
|
10
11
|
import Button from '../../components/button';
|
|
11
12
|
import { UpgradeBadge } from '../../components/badge';
|
|
13
|
+
import InlineNotice from '../../components/inline-notice';
|
|
14
|
+
import PlainButton from '../../components/plain-button';
|
|
12
15
|
import { ITEM_TYPE_WEBLINK } from '../../common/constants';
|
|
13
16
|
import Tooltip from '../../components/tooltip';
|
|
14
17
|
import { CollaboratorAvatars, CollaboratorList } from '../collaborator-avatars';
|
|
@@ -220,8 +223,9 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
220
223
|
};
|
|
221
224
|
|
|
222
225
|
handleSendSharedLink = (data: Object) => {
|
|
223
|
-
const { sendSharedLink, trackingProps } = this.props;
|
|
226
|
+
const { sendSharedLink, sharedLink, trackingProps } = this.props;
|
|
224
227
|
const { sharedLinkEmailTracking } = trackingProps;
|
|
228
|
+
const { permissionLevel } = sharedLink;
|
|
225
229
|
const { onSendClick } = sharedLinkEmailTracking;
|
|
226
230
|
|
|
227
231
|
const { emails, groupIDs } = data;
|
|
@@ -231,6 +235,7 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
231
235
|
...data,
|
|
232
236
|
numsOfRecipients: emails.length,
|
|
233
237
|
numOfRecipientGroups: groupIDs.length,
|
|
238
|
+
permissionLevel,
|
|
234
239
|
};
|
|
235
240
|
onSendClick(params);
|
|
236
241
|
}
|
|
@@ -420,6 +425,7 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
420
425
|
shouldRenderFTUXTooltip,
|
|
421
426
|
showEnterEmailsCallout = false,
|
|
422
427
|
showCalloutForUser = false,
|
|
428
|
+
showUpgradeInlineNotice = false,
|
|
423
429
|
showUpgradeOptions,
|
|
424
430
|
submitting,
|
|
425
431
|
suggestedCollaborators,
|
|
@@ -507,7 +513,7 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
507
513
|
{...inviteCollabsEmailTracking}
|
|
508
514
|
>
|
|
509
515
|
{this.renderInviteePermissionsDropdown()}
|
|
510
|
-
{
|
|
516
|
+
{showUpgradeOptions && !showUpgradeInlineNotice && this.renderUpgradeLinkDescription()}
|
|
511
517
|
</EmailForm>
|
|
512
518
|
</div>
|
|
513
519
|
</Tooltip>
|
|
@@ -538,28 +544,75 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
538
544
|
return avatarsContent;
|
|
539
545
|
}
|
|
540
546
|
|
|
547
|
+
renderCollaboratorMessage(resinTarget: string) {
|
|
548
|
+
const { openUpgradePlanModal = () => {} } = this.props;
|
|
549
|
+
return (
|
|
550
|
+
<>
|
|
551
|
+
<FormattedCompMessage
|
|
552
|
+
id="boxui.unifiedShare.upgradeCollaboratorAccessDescription"
|
|
553
|
+
description="Description for cta to upgrade to get collaborator access controls"
|
|
554
|
+
>
|
|
555
|
+
Set the level of{' '}
|
|
556
|
+
<Link
|
|
557
|
+
className="upgrade-link"
|
|
558
|
+
href="https://support.box.com/hc/en-us/articles/360044196413-Understanding-Collaborator-Permission-Levels"
|
|
559
|
+
target="_blank"
|
|
560
|
+
>
|
|
561
|
+
collaborator access
|
|
562
|
+
</Link>{' '}
|
|
563
|
+
and increase security through one of our paid plans.{' '}
|
|
564
|
+
</FormattedCompMessage>
|
|
565
|
+
<PlainButton
|
|
566
|
+
className="upgrade-link"
|
|
567
|
+
data-resin-target={resinTarget}
|
|
568
|
+
onClick={openUpgradePlanModal}
|
|
569
|
+
type="button"
|
|
570
|
+
>
|
|
571
|
+
<FormattedMessage {...messages.upgradeLink} />
|
|
572
|
+
</PlainButton>
|
|
573
|
+
</>
|
|
574
|
+
);
|
|
575
|
+
}
|
|
576
|
+
|
|
541
577
|
renderUpgradeLinkDescription() {
|
|
542
|
-
const { trackingProps = {} } = this.props;
|
|
578
|
+
const { openUpgradePlanModal = () => {}, showNewUpgradeText = false, trackingProps = {} } = this.props;
|
|
543
579
|
const { inviteCollabsEmailTracking = {} } = trackingProps;
|
|
544
580
|
const { upgradeLinkProps = {} } = inviteCollabsEmailTracking;
|
|
545
581
|
|
|
546
582
|
return (
|
|
547
583
|
<div className="upgrade-description">
|
|
548
|
-
<UpgradeBadge
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
584
|
+
<UpgradeBadge />
|
|
585
|
+
{showNewUpgradeText ? (
|
|
586
|
+
this.renderCollaboratorMessage('external_collab_newcopy_upgrade_cta')
|
|
587
|
+
) : (
|
|
588
|
+
<FormattedMessage
|
|
589
|
+
values={{
|
|
590
|
+
upgradeGetMoreAccessControlsLink: (
|
|
591
|
+
<PlainButton
|
|
592
|
+
className="upgrade-link"
|
|
593
|
+
onClick={openUpgradePlanModal}
|
|
594
|
+
type="button"
|
|
595
|
+
{...upgradeLinkProps}
|
|
596
|
+
>
|
|
597
|
+
<FormattedMessage {...messages.upgradeGetMoreAccessControlsLink} />
|
|
598
|
+
</PlainButton>
|
|
599
|
+
),
|
|
600
|
+
}}
|
|
601
|
+
{...messages.upgradeGetMoreAccessControlsDescription}
|
|
602
|
+
/>
|
|
603
|
+
)}
|
|
559
604
|
</div>
|
|
560
605
|
);
|
|
561
606
|
}
|
|
562
607
|
|
|
608
|
+
renderUpgradeInlineNotice() {
|
|
609
|
+
return (
|
|
610
|
+
<InlineNotice title={<FormattedMessage {...messages.upgradeInlineNoticeTitle} />} type="info">
|
|
611
|
+
{this.renderCollaboratorMessage('external_collab_top_message_upgrade_cta')}
|
|
612
|
+
</InlineNotice>
|
|
613
|
+
);
|
|
614
|
+
}
|
|
615
|
+
|
|
563
616
|
renderInviteePermissionsDropdown() {
|
|
564
617
|
const { inviteePermissions, item, submitting, canInvite, trackingProps } = this.props;
|
|
565
618
|
const { type } = item;
|
|
@@ -631,6 +684,8 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
631
684
|
sharedLinkEditTooltipTargetingApi,
|
|
632
685
|
showEnterEmailsCallout = false,
|
|
633
686
|
showSharedLinkSettingsCallout = false,
|
|
687
|
+
showUpgradeInlineNotice = false,
|
|
688
|
+
showUpgradeOptions,
|
|
634
689
|
submitting,
|
|
635
690
|
tooltips = {},
|
|
636
691
|
trackingProps,
|
|
@@ -649,6 +704,7 @@ class UnifiedShareForm extends React.Component<USFProps, State> {
|
|
|
649
704
|
<div className={displayInModal ? '' : 'be bdl-UnifiedShareForm'}>
|
|
650
705
|
<LoadingIndicatorWrapper isLoading={isFetching} hideContent>
|
|
651
706
|
{showShareRestrictionWarning && allShareRestrictionWarning}
|
|
707
|
+
{showUpgradeOptions && showUpgradeInlineNotice && this.renderUpgradeInlineNotice()}
|
|
652
708
|
|
|
653
709
|
{!isEmailLinkSectionExpanded && !showCollaboratorList && this.renderInviteSection()}
|
|
654
710
|
|