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,9 +1,12 @@
|
|
|
1
1
|
// @flow
|
|
2
|
+
import * as React from 'react';
|
|
2
3
|
import getProp from 'lodash/get';
|
|
3
4
|
import isNil from 'lodash/isNil';
|
|
4
5
|
|
|
5
6
|
import type { Controls, MessageItem } from '../flowTypes';
|
|
6
7
|
|
|
8
|
+
import FormattedCompMessage from '../../../components/i18n/FormattedCompMessage';
|
|
9
|
+
import Link from '../../../components/link/Link';
|
|
7
10
|
import appRestrictionsMessageMap from './appRestrictionsMessageMap';
|
|
8
11
|
import downloadRestrictionsMessageMap from './downloadRestrictionsMessageMap';
|
|
9
12
|
import messages from './messages';
|
|
@@ -15,47 +18,41 @@ import {
|
|
|
15
18
|
SHARED_LINK_ACCESS_LEVEL,
|
|
16
19
|
} from '../constants';
|
|
17
20
|
|
|
18
|
-
const { SHARED_LINK, DOWNLOAD, EXTERNAL_COLLAB, APP } = ACCESS_POLICY_RESTRICTION;
|
|
21
|
+
const { SHARED_LINK, DOWNLOAD, EXTERNAL_COLLAB, APP, WATERMARK } = ACCESS_POLICY_RESTRICTION;
|
|
19
22
|
const { DEFAULT, WITH_APP_LIST, WITH_OVERFLOWN_APP_LIST } = APP_RESTRICTION_MESSAGE_TYPE;
|
|
20
23
|
const { DESKTOP, MOBILE, WEB } = DOWNLOAD_CONTROL;
|
|
21
24
|
const { BLOCK, WHITELIST, BLACKLIST } = LIST_ACCESS_LEVEL;
|
|
22
25
|
const { COLLAB_ONLY, COLLAB_AND_COMPANY_ONLY, PUBLIC } = SHARED_LINK_ACCESS_LEVEL;
|
|
23
26
|
|
|
24
|
-
const getShortSecurityControlsMessage = (controls: Controls):
|
|
25
|
-
const
|
|
27
|
+
const getShortSecurityControlsMessage = (controls: Controls): Array<MessageItem> => {
|
|
28
|
+
const items = [];
|
|
29
|
+
const { sharedLink, download, externalCollab, app, watermark } = controls;
|
|
30
|
+
|
|
26
31
|
// Shared link and external collab restrictions are grouped
|
|
27
32
|
// together as generic "sharing" restrictions
|
|
28
33
|
const sharing = (sharedLink && sharedLink.accessLevel !== PUBLIC) || externalCollab;
|
|
29
34
|
|
|
30
35
|
if (sharing && download && app) {
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (sharing &&
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (sharing
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (sharing) {
|
|
47
|
-
return { message: messages.shortSharing };
|
|
36
|
+
items.push({ message: messages.shortAllRestrictions });
|
|
37
|
+
} else if (sharing && download) {
|
|
38
|
+
items.push({ message: messages.shortSharingDownload });
|
|
39
|
+
} else if (sharing && app) {
|
|
40
|
+
items.push({ message: messages.shortSharingApp });
|
|
41
|
+
} else if (download && app) {
|
|
42
|
+
items.push({ message: messages.shortDownloadApp });
|
|
43
|
+
} else if (sharing) {
|
|
44
|
+
items.push({ message: messages.shortSharing });
|
|
45
|
+
} else if (download) {
|
|
46
|
+
items.push({ message: messages.shortDownload });
|
|
47
|
+
} else if (app) {
|
|
48
|
+
items.push({ message: messages.shortApp });
|
|
48
49
|
}
|
|
49
50
|
|
|
50
|
-
if (
|
|
51
|
-
|
|
51
|
+
if (watermark) {
|
|
52
|
+
items.push({ message: messages.shortWatermarking });
|
|
52
53
|
}
|
|
53
54
|
|
|
54
|
-
|
|
55
|
-
return { message: messages.shortApp };
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return null;
|
|
55
|
+
return items;
|
|
59
56
|
};
|
|
60
57
|
|
|
61
58
|
const getSharedLinkMessages = (controls: Controls): Array<MessageItem> => {
|
|
@@ -76,6 +73,32 @@ const getSharedLinkMessages = (controls: Controls): Array<MessageItem> => {
|
|
|
76
73
|
return items;
|
|
77
74
|
};
|
|
78
75
|
|
|
76
|
+
const getWatermarkingMessages = (controls: Controls): Array<MessageItem> => {
|
|
77
|
+
const items = [];
|
|
78
|
+
const isWatermarkEnabled = getProp(controls, `${WATERMARK}.enabled`, false);
|
|
79
|
+
if (isWatermarkEnabled) {
|
|
80
|
+
const formattedCompMessage = (
|
|
81
|
+
<FormattedCompMessage
|
|
82
|
+
id="boxui.securityControls.watermarkingAppliedWithLink"
|
|
83
|
+
description="Bullet point that summarizes watermarking applied to classification"
|
|
84
|
+
>
|
|
85
|
+
Watermarking will be applied, click{' '}
|
|
86
|
+
<Link
|
|
87
|
+
className="support-link"
|
|
88
|
+
href="https://support.box.com/hc/en-us/articles/360044195253"
|
|
89
|
+
target="_blank"
|
|
90
|
+
>
|
|
91
|
+
here
|
|
92
|
+
</Link>{' '}
|
|
93
|
+
more details on Watermarking
|
|
94
|
+
</FormattedCompMessage>
|
|
95
|
+
);
|
|
96
|
+
items.push({ message: formattedCompMessage });
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return items;
|
|
100
|
+
};
|
|
101
|
+
|
|
79
102
|
const getExternalCollabMessages = (controls: Controls): Array<MessageItem> => {
|
|
80
103
|
const items = [];
|
|
81
104
|
const accessLevel = getProp(controls, `${EXTERNAL_COLLAB}.accessLevel`);
|
|
@@ -191,6 +214,7 @@ const getFullSecurityControlsMessages = (controls: Controls, maxAppCount?: numbe
|
|
|
191
214
|
...getExternalCollabMessages(controls),
|
|
192
215
|
...getDownloadMessages(controls),
|
|
193
216
|
...getAppDownloadMessages(controls, maxAppCount),
|
|
217
|
+
...getWatermarkingMessages(controls),
|
|
194
218
|
];
|
|
195
219
|
return items;
|
|
196
220
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/classification/security-controls/utils.js"],"names":["getProp","isNil","appRestrictionsMessageMap","downloadRestrictionsMessageMap","messages","ACCESS_POLICY_RESTRICTION","APP_RESTRICTION_MESSAGE_TYPE","DOWNLOAD_CONTROL","LIST_ACCESS_LEVEL","SHARED_LINK_ACCESS_LEVEL","SHARED_LINK","DOWNLOAD","EXTERNAL_COLLAB","APP","DEFAULT","WITH_APP_LIST","WITH_OVERFLOWN_APP_LIST","DESKTOP","MOBILE","WEB","BLOCK","WHITELIST","BLACKLIST","COLLAB_ONLY","COLLAB_AND_COMPANY_ONLY","PUBLIC","getShortSecurityControlsMessage","controls","sharedLink","download","externalCollab","app","sharing","accessLevel","message","shortAllRestrictions","shortSharingDownload","shortSharingApp","shortDownloadApp","shortSharing","shortDownload","shortApp","getSharedLinkMessages","items","push","sharingCollabOnly","sharingCollabAndCompanyOnly","getExternalCollabMessages","externalCollabBlock","externalCollabDomainList","getAppDownloadMessages","maxAppCount","appDownloadRestricted","apps","length","appsToDisplay","slice","remainingAppCount","appNames","map","displayText","join","appsList","values","tooltipMessage","allAppNames","messageType","getDownloadMessages","web","mobile","desktop","downloadRestrictions","platform","restrictions","Object","keys","forEach","platformKey","restrictExternalUsers","restrictManagedUsers","externalRestricted","externalAllowed","default","getFullSecurityControlsMessages"],"mappings":"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","sourcesContent":["// @flow\nimport getProp from 'lodash/get';\nimport isNil from 'lodash/isNil';\n\nimport type { Controls, MessageItem } from '../flowTypes';\n\nimport appRestrictionsMessageMap from './appRestrictionsMessageMap';\nimport downloadRestrictionsMessageMap from './downloadRestrictionsMessageMap';\nimport messages from './messages';\nimport {\n ACCESS_POLICY_RESTRICTION,\n APP_RESTRICTION_MESSAGE_TYPE,\n DOWNLOAD_CONTROL,\n LIST_ACCESS_LEVEL,\n SHARED_LINK_ACCESS_LEVEL,\n} from '../constants';\n\nconst { SHARED_LINK, DOWNLOAD, EXTERNAL_COLLAB, APP } = ACCESS_POLICY_RESTRICTION;\nconst { DEFAULT, WITH_APP_LIST, WITH_OVERFLOWN_APP_LIST } = APP_RESTRICTION_MESSAGE_TYPE;\nconst { DESKTOP, MOBILE, WEB } = DOWNLOAD_CONTROL;\nconst { BLOCK, WHITELIST, BLACKLIST } = LIST_ACCESS_LEVEL;\nconst { COLLAB_ONLY, COLLAB_AND_COMPANY_ONLY, PUBLIC } = SHARED_LINK_ACCESS_LEVEL;\n\nconst getShortSecurityControlsMessage = (controls: Controls): ?MessageItem => {\n const { sharedLink, download, externalCollab, app } = controls;\n // Shared link and external collab restrictions are grouped\n // together as generic \"sharing\" restrictions\n const sharing = (sharedLink && sharedLink.accessLevel !== PUBLIC) || externalCollab;\n\n if (sharing && download && app) {\n return { message: messages.shortAllRestrictions };\n }\n\n if (sharing && download) {\n return { message: messages.shortSharingDownload };\n }\n\n if (sharing && app) {\n return { message: messages.shortSharingApp };\n }\n\n if (download && app) {\n return { message: messages.shortDownloadApp };\n }\n\n if (sharing) {\n return { message: messages.shortSharing };\n }\n\n if (download) {\n return { message: messages.shortDownload };\n }\n\n if (app) {\n return { message: messages.shortApp };\n }\n\n return null;\n};\n\nconst getSharedLinkMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${SHARED_LINK}.accessLevel`);\n\n switch (accessLevel) {\n case COLLAB_ONLY:\n items.push({ message: messages.sharingCollabOnly });\n break;\n case COLLAB_AND_COMPANY_ONLY:\n items.push({ message: messages.sharingCollabAndCompanyOnly });\n break;\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getExternalCollabMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${EXTERNAL_COLLAB}.accessLevel`);\n\n switch (accessLevel) {\n case BLOCK:\n items.push({ message: messages.externalCollabBlock });\n break;\n case WHITELIST:\n case BLACKLIST:\n items.push({ message: messages.externalCollabDomainList });\n break;\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getAppDownloadMessages = (controls: Controls, maxAppCount?: number): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${APP}.accessLevel`);\n\n switch (accessLevel) {\n case BLOCK:\n items.push({ message: messages.appDownloadRestricted });\n break;\n case WHITELIST:\n case BLACKLIST: {\n const apps = getProp(controls, `${APP}.apps`, []);\n\n maxAppCount = isNil(maxAppCount) ? apps.length : maxAppCount;\n const appsToDisplay = apps.slice(0, maxAppCount);\n const remainingAppCount = apps.slice(maxAppCount).length;\n const appNames = appsToDisplay.map(({ displayText }) => displayText).join(', ');\n\n if (remainingAppCount) {\n const appsList = apps.map(({ displayText }) => displayText).join(', ');\n\n items.push({\n message: {\n ...appRestrictionsMessageMap[accessLevel][WITH_OVERFLOWN_APP_LIST],\n values: { appNames, remainingAppCount },\n },\n tooltipMessage: {\n ...messages.allAppNames,\n values: { appsList },\n },\n });\n } else {\n // Display list of apps if available, otherwise use generic\n // app restriction copy\n const messageType = apps.length ? WITH_APP_LIST : DEFAULT;\n\n items.push({\n message: {\n ...appRestrictionsMessageMap[accessLevel][messageType],\n values: { appNames },\n },\n });\n }\n break;\n }\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getDownloadMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const { web, mobile, desktop } = getProp(controls, DOWNLOAD, {});\n\n const downloadRestrictions = {\n [WEB]: {\n platform: WEB,\n restrictions: web,\n },\n [MOBILE]: {\n platform: MOBILE,\n restrictions: mobile,\n },\n [DESKTOP]: {\n platform: DESKTOP,\n restrictions: desktop,\n },\n };\n\n Object.keys(downloadRestrictions).forEach(platformKey => {\n const { platform, restrictions } = downloadRestrictions[platformKey];\n\n if (!restrictions) {\n return;\n }\n const { restrictExternalUsers, restrictManagedUsers } = restrictions;\n\n if (restrictManagedUsers && restrictExternalUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalRestricted[restrictManagedUsers] });\n } else if (restrictManagedUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalAllowed[restrictManagedUsers] });\n } else if (restrictExternalUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalRestricted.default });\n }\n });\n\n return items;\n};\n\nconst getFullSecurityControlsMessages = (controls: Controls, maxAppCount?: number): Array<MessageItem> => {\n const items = [\n ...getSharedLinkMessages(controls),\n ...getExternalCollabMessages(controls),\n ...getDownloadMessages(controls),\n ...getAppDownloadMessages(controls, maxAppCount),\n ];\n return items;\n};\n\nexport { getShortSecurityControlsMessage, getFullSecurityControlsMessages };\n"],"file":"utils.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/classification/security-controls/utils.js"],"names":["React","getProp","isNil","FormattedCompMessage","Link","appRestrictionsMessageMap","downloadRestrictionsMessageMap","messages","ACCESS_POLICY_RESTRICTION","APP_RESTRICTION_MESSAGE_TYPE","DOWNLOAD_CONTROL","LIST_ACCESS_LEVEL","SHARED_LINK_ACCESS_LEVEL","SHARED_LINK","DOWNLOAD","EXTERNAL_COLLAB","APP","WATERMARK","DEFAULT","WITH_APP_LIST","WITH_OVERFLOWN_APP_LIST","DESKTOP","MOBILE","WEB","BLOCK","WHITELIST","BLACKLIST","COLLAB_ONLY","COLLAB_AND_COMPANY_ONLY","PUBLIC","getShortSecurityControlsMessage","controls","items","sharedLink","download","externalCollab","app","watermark","sharing","accessLevel","push","message","shortAllRestrictions","shortSharingDownload","shortSharingApp","shortDownloadApp","shortSharing","shortDownload","shortApp","shortWatermarking","getSharedLinkMessages","sharingCollabOnly","sharingCollabAndCompanyOnly","getWatermarkingMessages","isWatermarkEnabled","formattedCompMessage","getExternalCollabMessages","externalCollabBlock","externalCollabDomainList","getAppDownloadMessages","maxAppCount","appDownloadRestricted","apps","length","appsToDisplay","slice","remainingAppCount","appNames","map","displayText","join","appsList","values","tooltipMessage","allAppNames","messageType","getDownloadMessages","web","mobile","desktop","downloadRestrictions","platform","restrictions","Object","keys","forEach","platformKey","restrictExternalUsers","restrictManagedUsers","externalRestricted","externalAllowed","default","getFullSecurityControlsMessages"],"mappings":";;;;;;;;;;;;;;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,OAAOC,KAAP,MAAkB,cAAlB;AAIA,OAAOC,oBAAP,MAAiC,+CAAjC;AACA,OAAOC,IAAP,MAAiB,+BAAjB;AACA,OAAOC,yBAAP,MAAsC,6BAAtC;AACA,OAAOC,8BAAP,MAA2C,kCAA3C;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,SACIC,yBADJ,EAEIC,4BAFJ,EAGIC,gBAHJ,EAIIC,iBAJJ,EAKIC,wBALJ,QAMO,cANP;IAQQC,W,GAA2DL,yB,CAA3DK,W;IAAaC,Q,GAA8CN,yB,CAA9CM,Q;IAAUC,e,GAAoCP,yB,CAApCO,e;IAAiBC,G,GAAmBR,yB,CAAnBQ,G;IAAKC,S,GAAcT,yB,CAAdS,S;IAC7CC,O,GAAoDT,4B,CAApDS,O;IAASC,a,GAA2CV,4B,CAA3CU,a;IAAeC,uB,GAA4BX,4B,CAA5BW,uB;IACxBC,O,GAAyBX,gB,CAAzBW,O;IAASC,M,GAAgBZ,gB,CAAhBY,M;IAAQC,G,GAAQb,gB,CAARa,G;IACjBC,K,GAAgCb,iB,CAAhCa,K;IAAOC,S,GAAyBd,iB,CAAzBc,S;IAAWC,S,GAAcf,iB,CAAde,S;IAClBC,W,GAAiDf,wB,CAAjDe,W;IAAaC,uB,GAAoChB,wB,CAApCgB,uB;IAAyBC,M,GAAWjB,wB,CAAXiB,M;;AAE9C,IAAMC,+BAA+B,GAAG,SAAlCA,+BAAkC,CAACC,QAAD,EAA4C;AAChF,MAAMC,KAAK,GAAG,EAAd;AADgF,MAExEC,UAFwE,GAEfF,QAFe,CAExEE,UAFwE;AAAA,MAE5DC,QAF4D,GAEfH,QAFe,CAE5DG,QAF4D;AAAA,MAElDC,cAFkD,GAEfJ,QAFe,CAElDI,cAFkD;AAAA,MAElCC,GAFkC,GAEfL,QAFe,CAElCK,GAFkC;AAAA,MAE7BC,SAF6B,GAEfN,QAFe,CAE7BM,SAF6B,EAIhF;AACA;;AACA,MAAMC,OAAO,GAAIL,UAAU,IAAIA,UAAU,CAACM,WAAX,KAA2BV,MAA1C,IAAqDM,cAArE;;AAEA,MAAIG,OAAO,IAAIJ,QAAX,IAAuBE,GAA3B,EAAgC;AAC5BJ,IAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,MAAAA,OAAO,EAAElC,QAAQ,CAACmC;AAApB,KAAX;AACH,GAFD,MAEO,IAAIJ,OAAO,IAAIJ,QAAf,EAAyB;AAC5BF,IAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,MAAAA,OAAO,EAAElC,QAAQ,CAACoC;AAApB,KAAX;AACH,GAFM,MAEA,IAAIL,OAAO,IAAIF,GAAf,EAAoB;AACvBJ,IAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,MAAAA,OAAO,EAAElC,QAAQ,CAACqC;AAApB,KAAX;AACH,GAFM,MAEA,IAAIV,QAAQ,IAAIE,GAAhB,EAAqB;AACxBJ,IAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,MAAAA,OAAO,EAAElC,QAAQ,CAACsC;AAApB,KAAX;AACH,GAFM,MAEA,IAAIP,OAAJ,EAAa;AAChBN,IAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,MAAAA,OAAO,EAAElC,QAAQ,CAACuC;AAApB,KAAX;AACH,GAFM,MAEA,IAAIZ,QAAJ,EAAc;AACjBF,IAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,MAAAA,OAAO,EAAElC,QAAQ,CAACwC;AAApB,KAAX;AACH,GAFM,MAEA,IAAIX,GAAJ,EAAS;AACZJ,IAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,MAAAA,OAAO,EAAElC,QAAQ,CAACyC;AAApB,KAAX;AACH;;AAED,MAAIX,SAAJ,EAAe;AACXL,IAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,MAAAA,OAAO,EAAElC,QAAQ,CAAC0C;AAApB,KAAX;AACH;;AAED,SAAOjB,KAAP;AACH,CA7BD;;AA+BA,IAAMkB,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACnB,QAAD,EAA4C;AACtE,MAAMC,KAAK,GAAG,EAAd;AACA,MAAMO,WAAW,GAAGtC,OAAO,CAAC8B,QAAD,YAAclB,WAAd,kBAA3B;;AAEA,UAAQ0B,WAAR;AACI,SAAKZ,WAAL;AACIK,MAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,QAAAA,OAAO,EAAElC,QAAQ,CAAC4C;AAApB,OAAX;AACA;;AACJ,SAAKvB,uBAAL;AACII,MAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,QAAAA,OAAO,EAAElC,QAAQ,CAAC6C;AAApB,OAAX;AACA;;AACJ;AACI;AACA;AATR;;AAWA,SAAOpB,KAAP;AACH,CAhBD;;AAkBA,IAAMqB,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACtB,QAAD,EAA4C;AACxE,MAAMC,KAAK,GAAG,EAAd;AACA,MAAMsB,kBAAkB,GAAGrD,OAAO,CAAC8B,QAAD,YAAcd,SAAd,eAAmC,KAAnC,CAAlC;;AACA,MAAIqC,kBAAJ,EAAwB;AACpB,QAAMC,oBAAoB,GACtB,oBAAC,oBAAD;AACI,MAAA,EAAE,EAAC,oDADP;AAEI,MAAA,WAAW,EAAC;AAFhB,8CAIwC,GAJxC,EAKI,oBAAC,IAAD;AACI,MAAA,SAAS,EAAC,cADd;AAEI,MAAA,IAAI,EAAC,wDAFT;AAGI,MAAA,MAAM,EAAC;AAHX,cALJ,EAWY,GAXZ,iCADJ;AAgBAvB,IAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,MAAAA,OAAO,EAAEc;AAAX,KAAX;AACH;;AAED,SAAOvB,KAAP;AACH,CAxBD;;AA0BA,IAAMwB,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACzB,QAAD,EAA4C;AAC1E,MAAMC,KAAK,GAAG,EAAd;AACA,MAAMO,WAAW,GAAGtC,OAAO,CAAC8B,QAAD,YAAchB,eAAd,kBAA3B;;AAEA,UAAQwB,WAAR;AACI,SAAKf,KAAL;AACIQ,MAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,QAAAA,OAAO,EAAElC,QAAQ,CAACkD;AAApB,OAAX;AACA;;AACJ,SAAKhC,SAAL;AACA,SAAKC,SAAL;AACIM,MAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,QAAAA,OAAO,EAAElC,QAAQ,CAACmD;AAApB,OAAX;AACA;;AACJ;AACI;AACA;AAVR;;AAYA,SAAO1B,KAAP;AACH,CAjBD;;AAmBA,IAAM2B,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAC5B,QAAD,EAAqB6B,WAArB,EAAkE;AAC7F,MAAM5B,KAAK,GAAG,EAAd;AACA,MAAMO,WAAW,GAAGtC,OAAO,CAAC8B,QAAD,YAAcf,GAAd,kBAA3B;;AAEA,UAAQuB,WAAR;AACI,SAAKf,KAAL;AACIQ,MAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,QAAAA,OAAO,EAAElC,QAAQ,CAACsD;AAApB,OAAX;AACA;;AACJ,SAAKpC,SAAL;AACA,SAAKC,SAAL;AAAgB;AACZ,YAAMoC,IAAI,GAAG7D,OAAO,CAAC8B,QAAD,YAAcf,GAAd,YAA0B,EAA1B,CAApB;AAEA4C,QAAAA,WAAW,GAAG1D,KAAK,CAAC0D,WAAD,CAAL,GAAqBE,IAAI,CAACC,MAA1B,GAAmCH,WAAjD;AACA,YAAMI,aAAa,GAAGF,IAAI,CAACG,KAAL,CAAW,CAAX,EAAcL,WAAd,CAAtB;AACA,YAAMM,iBAAiB,GAAGJ,IAAI,CAACG,KAAL,CAAWL,WAAX,EAAwBG,MAAlD;AACA,YAAMI,QAAQ,GAAGH,aAAa,CAACI,GAAd,CAAkB;AAAA,cAAGC,WAAH,QAAGA,WAAH;AAAA,iBAAqBA,WAArB;AAAA,SAAlB,EAAoDC,IAApD,CAAyD,IAAzD,CAAjB;;AAEA,YAAIJ,iBAAJ,EAAuB;AACnB,cAAMK,QAAQ,GAAGT,IAAI,CAACM,GAAL,CAAS;AAAA,gBAAGC,WAAH,SAAGA,WAAH;AAAA,mBAAqBA,WAArB;AAAA,WAAT,EAA2CC,IAA3C,CAAgD,IAAhD,CAAjB;AAEAtC,UAAAA,KAAK,CAACQ,IAAN,CAAW;AACPC,YAAAA,OAAO,oBACApC,yBAAyB,CAACkC,WAAD,CAAzB,CAAuCnB,uBAAvC,CADA;AAEHoD,cAAAA,MAAM,EAAE;AAAEL,gBAAAA,QAAQ,EAARA,QAAF;AAAYD,gBAAAA,iBAAiB,EAAjBA;AAAZ;AAFL,cADA;AAKPO,YAAAA,cAAc,oBACPlE,QAAQ,CAACmE,WADF;AAEVF,cAAAA,MAAM,EAAE;AAAED,gBAAAA,QAAQ,EAARA;AAAF;AAFE;AALP,WAAX;AAUH,SAbD,MAaO;AACH;AACA;AACA,cAAMI,WAAW,GAAGb,IAAI,CAACC,MAAL,GAAc5C,aAAd,GAA8BD,OAAlD;AAEAc,UAAAA,KAAK,CAACQ,IAAN,CAAW;AACPC,YAAAA,OAAO,oBACApC,yBAAyB,CAACkC,WAAD,CAAzB,CAAuCoC,WAAvC,CADA;AAEHH,cAAAA,MAAM,EAAE;AAAEL,gBAAAA,QAAQ,EAARA;AAAF;AAFL;AADA,WAAX;AAMH;;AACD;AACH;;AACD;AACI;AACA;AA1CR;;AA4CA,SAAOnC,KAAP;AACH,CAjDD;;AAmDA,IAAM4C,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAC7C,QAAD,EAA4C;AAAA;;AACpE,MAAMC,KAAK,GAAG,EAAd;;AADoE,iBAEnC/B,OAAO,CAAC8B,QAAD,EAAWjB,QAAX,EAAqB,EAArB,CAF4B;AAAA,MAE5D+D,GAF4D,YAE5DA,GAF4D;AAAA,MAEvDC,MAFuD,YAEvDA,MAFuD;AAAA,MAE/CC,OAF+C,YAE/CA,OAF+C;;AAIpE,MAAMC,oBAAoB,uEACrBzD,GADqB,EACf;AACH0D,IAAAA,QAAQ,EAAE1D,GADP;AAEH2D,IAAAA,YAAY,EAAEL;AAFX,GADe,0CAKrBvD,MALqB,EAKZ;AACN2D,IAAAA,QAAQ,EAAE3D,MADJ;AAEN4D,IAAAA,YAAY,EAAEJ;AAFR,GALY,0CASrBzD,OATqB,EASX;AACP4D,IAAAA,QAAQ,EAAE5D,OADH;AAEP6D,IAAAA,YAAY,EAAEH;AAFP,GATW,yBAA1B;AAeAI,EAAAA,MAAM,CAACC,IAAP,CAAYJ,oBAAZ,EAAkCK,OAAlC,CAA0C,UAAAC,WAAW,EAAI;AAAA,iCAClBN,oBAAoB,CAACM,WAAD,CADF;AAAA,QAC7CL,QAD6C,0BAC7CA,QAD6C;AAAA,QACnCC,YADmC,0BACnCA,YADmC;;AAGrD,QAAI,CAACA,YAAL,EAAmB;AACf;AACH;;AALoD,QAM7CK,qBAN6C,GAMGL,YANH,CAM7CK,qBAN6C;AAAA,QAMtBC,oBANsB,GAMGN,YANH,CAMtBM,oBANsB;;AAQrD,QAAIA,oBAAoB,IAAID,qBAA5B,EAAmD;AAC/CvD,MAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,QAAAA,OAAO,EAAEnC,8BAA8B,CAAC2E,QAAD,CAA9B,CAAyCQ,kBAAzC,CAA4DD,oBAA5D;AAAX,OAAX;AACH,KAFD,MAEO,IAAIA,oBAAJ,EAA0B;AAC7BxD,MAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,QAAAA,OAAO,EAAEnC,8BAA8B,CAAC2E,QAAD,CAA9B,CAAyCS,eAAzC,CAAyDF,oBAAzD;AAAX,OAAX;AACH,KAFM,MAEA,IAAID,qBAAJ,EAA2B;AAC9BvD,MAAAA,KAAK,CAACQ,IAAN,CAAW;AAAEC,QAAAA,OAAO,EAAEnC,8BAA8B,CAAC2E,QAAD,CAA9B,CAAyCQ,kBAAzC,CAA4DE;AAAvE,OAAX;AACH;AACJ,GAfD;AAiBA,SAAO3D,KAAP;AACH,CArCD;;AAuCA,IAAM4D,+BAA+B,GAAG,SAAlCA,+BAAkC,CAAC7D,QAAD,EAAqB6B,WAArB,EAAkE;AACtG,MAAM5B,KAAK,gCACJkB,qBAAqB,CAACnB,QAAD,CADjB,sBAEJyB,yBAAyB,CAACzB,QAAD,CAFrB,sBAGJ6C,mBAAmB,CAAC7C,QAAD,CAHf,sBAIJ4B,sBAAsB,CAAC5B,QAAD,EAAW6B,WAAX,CAJlB,sBAKJP,uBAAuB,CAACtB,QAAD,CALnB,EAAX;AAOA,SAAOC,KAAP;AACH,CATD;;AAWA,SAASF,+BAAT,EAA0C8D,+BAA1C","sourcesContent":["// @flow\nimport * as React from 'react';\nimport getProp from 'lodash/get';\nimport isNil from 'lodash/isNil';\n\nimport type { Controls, MessageItem } from '../flowTypes';\n\nimport FormattedCompMessage from '../../../components/i18n/FormattedCompMessage';\nimport Link from '../../../components/link/Link';\nimport appRestrictionsMessageMap from './appRestrictionsMessageMap';\nimport downloadRestrictionsMessageMap from './downloadRestrictionsMessageMap';\nimport messages from './messages';\nimport {\n ACCESS_POLICY_RESTRICTION,\n APP_RESTRICTION_MESSAGE_TYPE,\n DOWNLOAD_CONTROL,\n LIST_ACCESS_LEVEL,\n SHARED_LINK_ACCESS_LEVEL,\n} from '../constants';\n\nconst { SHARED_LINK, DOWNLOAD, EXTERNAL_COLLAB, APP, WATERMARK } = ACCESS_POLICY_RESTRICTION;\nconst { DEFAULT, WITH_APP_LIST, WITH_OVERFLOWN_APP_LIST } = APP_RESTRICTION_MESSAGE_TYPE;\nconst { DESKTOP, MOBILE, WEB } = DOWNLOAD_CONTROL;\nconst { BLOCK, WHITELIST, BLACKLIST } = LIST_ACCESS_LEVEL;\nconst { COLLAB_ONLY, COLLAB_AND_COMPANY_ONLY, PUBLIC } = SHARED_LINK_ACCESS_LEVEL;\n\nconst getShortSecurityControlsMessage = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const { sharedLink, download, externalCollab, app, watermark } = controls;\n\n // Shared link and external collab restrictions are grouped\n // together as generic \"sharing\" restrictions\n const sharing = (sharedLink && sharedLink.accessLevel !== PUBLIC) || externalCollab;\n\n if (sharing && download && app) {\n items.push({ message: messages.shortAllRestrictions });\n } else if (sharing && download) {\n items.push({ message: messages.shortSharingDownload });\n } else if (sharing && app) {\n items.push({ message: messages.shortSharingApp });\n } else if (download && app) {\n items.push({ message: messages.shortDownloadApp });\n } else if (sharing) {\n items.push({ message: messages.shortSharing });\n } else if (download) {\n items.push({ message: messages.shortDownload });\n } else if (app) {\n items.push({ message: messages.shortApp });\n }\n\n if (watermark) {\n items.push({ message: messages.shortWatermarking });\n }\n\n return items;\n};\n\nconst getSharedLinkMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${SHARED_LINK}.accessLevel`);\n\n switch (accessLevel) {\n case COLLAB_ONLY:\n items.push({ message: messages.sharingCollabOnly });\n break;\n case COLLAB_AND_COMPANY_ONLY:\n items.push({ message: messages.sharingCollabAndCompanyOnly });\n break;\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getWatermarkingMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const isWatermarkEnabled = getProp(controls, `${WATERMARK}.enabled`, false);\n if (isWatermarkEnabled) {\n const formattedCompMessage = (\n <FormattedCompMessage\n id=\"boxui.securityControls.watermarkingAppliedWithLink\"\n description=\"Bullet point that summarizes watermarking applied to classification\"\n >\n Watermarking will be applied, click{' '}\n <Link\n className=\"support-link\"\n href=\"https://support.box.com/hc/en-us/articles/360044195253\"\n target=\"_blank\"\n >\n here\n </Link>{' '}\n more details on Watermarking\n </FormattedCompMessage>\n );\n items.push({ message: formattedCompMessage });\n }\n\n return items;\n};\n\nconst getExternalCollabMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${EXTERNAL_COLLAB}.accessLevel`);\n\n switch (accessLevel) {\n case BLOCK:\n items.push({ message: messages.externalCollabBlock });\n break;\n case WHITELIST:\n case BLACKLIST:\n items.push({ message: messages.externalCollabDomainList });\n break;\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getAppDownloadMessages = (controls: Controls, maxAppCount?: number): Array<MessageItem> => {\n const items = [];\n const accessLevel = getProp(controls, `${APP}.accessLevel`);\n\n switch (accessLevel) {\n case BLOCK:\n items.push({ message: messages.appDownloadRestricted });\n break;\n case WHITELIST:\n case BLACKLIST: {\n const apps = getProp(controls, `${APP}.apps`, []);\n\n maxAppCount = isNil(maxAppCount) ? apps.length : maxAppCount;\n const appsToDisplay = apps.slice(0, maxAppCount);\n const remainingAppCount = apps.slice(maxAppCount).length;\n const appNames = appsToDisplay.map(({ displayText }) => displayText).join(', ');\n\n if (remainingAppCount) {\n const appsList = apps.map(({ displayText }) => displayText).join(', ');\n\n items.push({\n message: {\n ...appRestrictionsMessageMap[accessLevel][WITH_OVERFLOWN_APP_LIST],\n values: { appNames, remainingAppCount },\n },\n tooltipMessage: {\n ...messages.allAppNames,\n values: { appsList },\n },\n });\n } else {\n // Display list of apps if available, otherwise use generic\n // app restriction copy\n const messageType = apps.length ? WITH_APP_LIST : DEFAULT;\n\n items.push({\n message: {\n ...appRestrictionsMessageMap[accessLevel][messageType],\n values: { appNames },\n },\n });\n }\n break;\n }\n default:\n // no-op\n break;\n }\n return items;\n};\n\nconst getDownloadMessages = (controls: Controls): Array<MessageItem> => {\n const items = [];\n const { web, mobile, desktop } = getProp(controls, DOWNLOAD, {});\n\n const downloadRestrictions = {\n [WEB]: {\n platform: WEB,\n restrictions: web,\n },\n [MOBILE]: {\n platform: MOBILE,\n restrictions: mobile,\n },\n [DESKTOP]: {\n platform: DESKTOP,\n restrictions: desktop,\n },\n };\n\n Object.keys(downloadRestrictions).forEach(platformKey => {\n const { platform, restrictions } = downloadRestrictions[platformKey];\n\n if (!restrictions) {\n return;\n }\n const { restrictExternalUsers, restrictManagedUsers } = restrictions;\n\n if (restrictManagedUsers && restrictExternalUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalRestricted[restrictManagedUsers] });\n } else if (restrictManagedUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalAllowed[restrictManagedUsers] });\n } else if (restrictExternalUsers) {\n items.push({ message: downloadRestrictionsMessageMap[platform].externalRestricted.default });\n }\n });\n\n return items;\n};\n\nconst getFullSecurityControlsMessages = (controls: Controls, maxAppCount?: number): Array<MessageItem> => {\n const items = [\n ...getSharedLinkMessages(controls),\n ...getExternalCollabMessages(controls),\n ...getDownloadMessages(controls),\n ...getAppDownloadMessages(controls, maxAppCount),\n ...getWatermarkingMessages(controls),\n ];\n return items;\n};\n\nexport { getShortSecurityControlsMessage, getFullSecurityControlsMessages };\n"],"file":"utils.js"}
|
|
@@ -119,15 +119,21 @@ function (_React$Component) {
|
|
|
119
119
|
children = _this$props.children,
|
|
120
120
|
className = _this$props.className,
|
|
121
121
|
expanded = _this$props.expanded,
|
|
122
|
+
isHidden = _this$props.isHidden,
|
|
122
123
|
htmlAttributes = _this$props.htmlAttributes;
|
|
123
|
-
var
|
|
124
|
+
var navClasses = classNames({
|
|
124
125
|
'is-expanded': expanded
|
|
125
126
|
}, 'bdl-CollapsibleSidebar', className);
|
|
127
|
+
var ariaAttributes = {
|
|
128
|
+
'aria-hidden': isHidden ? 'true' : undefined
|
|
129
|
+
};
|
|
126
130
|
return React.createElement("div", _extends({
|
|
127
131
|
className: "bdl-CollapsibleSidebar-wrapper"
|
|
128
|
-
}, htmlAttributes
|
|
132
|
+
}, htmlAttributes, ariaAttributes, {
|
|
133
|
+
"data-testid": "CollapsibleSidebar-wrapper"
|
|
134
|
+
}), React.createElement(StyledNav, {
|
|
129
135
|
ref: this.navRef,
|
|
130
|
-
className:
|
|
136
|
+
className: navClasses,
|
|
131
137
|
onKeyDown: this.handleKeyDown
|
|
132
138
|
}, children));
|
|
133
139
|
}
|
|
@@ -36,6 +36,9 @@ type Props = {
|
|
|
36
36
|
|
|
37
37
|
/** Optional HTML attributes to append to menu item */
|
|
38
38
|
htmlAttributes?: Object,
|
|
39
|
+
|
|
40
|
+
/** Optionally apply "aria-hidden": "true" to CollapsibleSidebar wrapper */
|
|
41
|
+
isHidden?: boolean,
|
|
39
42
|
};
|
|
40
43
|
|
|
41
44
|
class CollapsibleSidebar extends React.Component<Props> {
|
|
@@ -81,18 +84,23 @@ class CollapsibleSidebar extends React.Component<Props> {
|
|
|
81
84
|
};
|
|
82
85
|
|
|
83
86
|
render() {
|
|
84
|
-
const { children, className, expanded, htmlAttributes } = this.props;
|
|
85
|
-
const
|
|
87
|
+
const { children, className, expanded, isHidden, htmlAttributes } = this.props;
|
|
88
|
+
const navClasses = classNames(
|
|
86
89
|
{
|
|
87
90
|
'is-expanded': expanded,
|
|
88
91
|
},
|
|
89
92
|
'bdl-CollapsibleSidebar',
|
|
90
93
|
className,
|
|
91
94
|
);
|
|
92
|
-
|
|
95
|
+
const ariaAttributes = { 'aria-hidden': isHidden ? 'true' : undefined };
|
|
93
96
|
return (
|
|
94
|
-
<div
|
|
95
|
-
|
|
97
|
+
<div
|
|
98
|
+
className="bdl-CollapsibleSidebar-wrapper"
|
|
99
|
+
{...htmlAttributes}
|
|
100
|
+
{...ariaAttributes}
|
|
101
|
+
data-testid="CollapsibleSidebar-wrapper"
|
|
102
|
+
>
|
|
103
|
+
<StyledNav ref={this.navRef} className={navClasses} onKeyDown={this.handleKeyDown}>
|
|
96
104
|
{children}
|
|
97
105
|
</StyledNav>
|
|
98
106
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/features/collapsible-sidebar/CollapsibleSidebar.js"],"names":["React","classNames","styled","tabbable","KEYS","StyledNav","nav","props","theme","primary","background","border","foreground","CollapsibleSidebar","createRef","direction","navRef","current","tabbableEls","currentElIndex","findIndex","el","document","activeElement","index","length","focus","event","contains","key","arrowDown","stopPropagation","preventDefault","focusEl","arrowUp","children","className","expanded","htmlAttributes","
|
|
1
|
+
{"version":3,"sources":["../../../src/features/collapsible-sidebar/CollapsibleSidebar.js"],"names":["React","classNames","styled","tabbable","KEYS","StyledNav","nav","props","theme","primary","background","border","foreground","CollapsibleSidebar","createRef","direction","navRef","current","tabbableEls","currentElIndex","findIndex","el","document","activeElement","index","length","focus","event","contains","key","arrowDown","stopPropagation","preventDefault","focusEl","arrowUp","children","className","expanded","isHidden","htmlAttributes","navClasses","ariaAttributes","undefined","handleKeyDown","Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;AAQA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,QAAP,MAAqB,UAArB;AACA,SAASC,IAAT,QAAqB,iBAArB;AAEA,OAAO,2BAAP;AAEA,IAAMC,SAAS,GAAGH,MAAM,CAACI,GAAV;AAAA;AAAA;AAAA,4GACS,UAAAC,KAAK;AAAA,SAAIA,KAAK,CAACC,KAAN,CAAYC,OAAZ,CAAoBC,UAAxB;AAAA,CADd,EAEe,UAAAH,KAAK;AAAA,SAAIA,KAAK,CAACC,KAAN,CAAYC,OAAZ,CAAoBE,MAAxB;AAAA,CAFpB,EAGF,UAAAJ,KAAK;AAAA,SAAIA,KAAK,CAACC,KAAN,CAAYC,OAAZ,CAAoBG,UAAxB;AAAA,CAHH,EAMa,UAAAL,KAAK;AAAA,SAAIA,KAAK,CAACC,KAAN,CAAYC,OAAZ,CAAoBG,UAAxB;AAAA,CANlB,CAAf;;IA2BMC,kB;;;;;;;;;;;;;;;;;;6DACwCb,KAAK,CAACc,SAAN,E;;8DAMhC,UAACC,SAAD,EAA8B;AACpC,UAAI,MAAKC,MAAL,CAAYC,OAAhB,EAAyB;AACrB,YAAMC,WAAW,GAAGf,QAAQ,CAAC,MAAKa,MAAL,CAAYC,OAAb,CAA5B;AACA,YAAME,cAAc,GAAGD,WAAW,CAACE,SAAZ,CAAsB,UAAAC,EAAE;AAAA,iBAAIA,EAAE,KAAKC,QAAQ,CAACC,aAApB;AAAA,SAAxB,CAAvB;AACA,YAAIC,KAAJ;;AACA,YAAIT,SAAS,KAAK,MAAlB,EAA0B;AACtBS,UAAAA,KAAK,GAAGL,cAAc,KAAKD,WAAW,CAACO,MAAZ,GAAqB,CAAxC,GAA4C,CAA5C,GAAgDN,cAAc,GAAG,CAAzE;AACH,SAFD,MAEO;AACHK,UAAAA,KAAK,GAAGL,cAAc,KAAK,CAAnB,GAAuBD,WAAW,CAACO,MAAZ,GAAqB,CAA5C,GAAgDN,cAAc,GAAG,CAAzE;AACH;;AACDD,QAAAA,WAAW,CAACM,KAAD,CAAX,CAAmBE,KAAnB;AACH;AACJ,K;;oEAEe,UAACC,KAAD,EAAqC;AACjD,UAAI,MAAKX,MAAL,CAAYC,OAAZ,IAAuB,MAAKD,MAAL,CAAYC,OAAZ,CAAoBW,QAApB,CAA6BN,QAAQ,CAACC,aAAtC,CAA3B,EAAiF;AAC7E,gBAAQI,KAAK,CAACE,GAAd;AACI,eAAKzB,IAAI,CAAC0B,SAAV;AACIH,YAAAA,KAAK,CAACI,eAAN;AACAJ,YAAAA,KAAK,CAACK,cAAN;;AACA,kBAAKC,OAAL,CAAa,MAAb;;AACA;;AAEJ,eAAK7B,IAAI,CAAC8B,OAAV;AACIP,YAAAA,KAAK,CAACI,eAAN;AACAJ,YAAAA,KAAK,CAACK,cAAN;;AACA,kBAAKC,OAAL,CAAa,IAAb;;AACA;;AAEJ;AACI;AAdR;AAgBH;AACJ,K;;;;;;;6BAEQ;AAAA,wBAC+D,KAAK1B,KADpE;AAAA,UACG4B,QADH,eACGA,QADH;AAAA,UACaC,SADb,eACaA,SADb;AAAA,UACwBC,QADxB,eACwBA,QADxB;AAAA,UACkCC,QADlC,eACkCA,QADlC;AAAA,UAC4CC,cAD5C,eAC4CA,cAD5C;AAEL,UAAMC,UAAU,GAAGvC,UAAU,CACzB;AACI,uBAAeoC;AADnB,OADyB,EAIzB,wBAJyB,EAKzBD,SALyB,CAA7B;AAOA,UAAMK,cAAc,GAAG;AAAE,uBAAeH,QAAQ,GAAG,MAAH,GAAYI;AAArC,OAAvB;AACA,aACI;AACI,QAAA,SAAS,EAAC;AADd,SAEQH,cAFR,EAGQE,cAHR;AAII,uBAAY;AAJhB,UAMI,oBAAC,SAAD;AAAW,QAAA,GAAG,EAAE,KAAKzB,MAArB;AAA6B,QAAA,SAAS,EAAEwB,UAAxC;AAAoD,QAAA,SAAS,EAAE,KAAKG;AAApE,SACKR,QADL,CANJ,CADJ;AAYH;;;;EAhE4BnC,KAAK,CAAC4C,S;;gBAAjC/B,kB,kBAGoB;AAClBwB,EAAAA,QAAQ,EAAE;AADQ,C;;AAgE1B,eAAexB,kBAAf","sourcesContent":["/**\n * @flow\n * @file Sidebar component that supports rendering different elements based on expand/collapse state\n * @author Box\n *\n * A sidebar component that supports collapsed/expanded state and responsive sizing.\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport styled from 'styled-components';\nimport tabbable from 'tabbable';\nimport { KEYS } from '../../constants';\n\nimport './CollapsibleSidebar.scss';\n\nconst StyledNav = styled.nav`\n background-color: ${props => props.theme.primary.background};\n border-right: 1px solid ${props => props.theme.primary.border};\n color: ${props => props.theme.primary.foreground};\n\n .crawler > div {\n background-color: ${props => props.theme.primary.foreground};\n }\n`;\n\ntype Props = {\n /** Primary content */\n children?: React.Node,\n\n /** Additional classes */\n className?: string,\n\n /** Controls whether or not the sidebar is expanded on the page */\n expanded?: boolean,\n\n /** Optional HTML attributes to append to menu item */\n htmlAttributes?: Object,\n\n /** Optionally apply \"aria-hidden\": \"true\" to CollapsibleSidebar wrapper */\n isHidden?: boolean,\n};\n\nclass CollapsibleSidebar extends React.Component<Props> {\n navRef: { current: null | HTMLElement } = React.createRef();\n\n static defaultProps = {\n expanded: false,\n };\n\n focusEl = (direction: 'down' | 'up') => {\n if (this.navRef.current) {\n const tabbableEls = tabbable(this.navRef.current);\n const currentElIndex = tabbableEls.findIndex(el => el === document.activeElement);\n let index;\n if (direction === 'down') {\n index = currentElIndex === tabbableEls.length - 1 ? 0 : currentElIndex + 1;\n } else {\n index = currentElIndex === 0 ? tabbableEls.length - 1 : currentElIndex - 1;\n }\n tabbableEls[index].focus();\n }\n };\n\n handleKeyDown = (event: SyntheticKeyboardEvent<>) => {\n if (this.navRef.current && this.navRef.current.contains(document.activeElement)) {\n switch (event.key) {\n case KEYS.arrowDown:\n event.stopPropagation();\n event.preventDefault();\n this.focusEl('down');\n break;\n\n case KEYS.arrowUp:\n event.stopPropagation();\n event.preventDefault();\n this.focusEl('up');\n break;\n\n default:\n break;\n }\n }\n };\n\n render() {\n const { children, className, expanded, isHidden, htmlAttributes } = this.props;\n const navClasses = classNames(\n {\n 'is-expanded': expanded,\n },\n 'bdl-CollapsibleSidebar',\n className,\n );\n const ariaAttributes = { 'aria-hidden': isHidden ? 'true' : undefined };\n return (\n <div\n className=\"bdl-CollapsibleSidebar-wrapper\"\n {...htmlAttributes}\n {...ariaAttributes}\n data-testid=\"CollapsibleSidebar-wrapper\"\n >\n <StyledNav ref={this.navRef} className={navClasses} onKeyDown={this.handleKeyDown}>\n {children}\n </StyledNav>\n </div>\n );\n }\n}\n\nexport default CollapsibleSidebar;\n"],"file":"CollapsibleSidebar.js"}
|
|
@@ -111,6 +111,12 @@ $left-sidebar-z-index: 40 !default;
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
+
@include large-size {
|
|
115
|
+
.bdl-CollapsibleSidebar-logo {
|
|
116
|
+
margin-left: $collapsible-side-bar-h-padding + $bdl-grid-unit * 2 - 1px /* border */;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
114
120
|
@include medium-minus-size {
|
|
115
121
|
.bdl-CollapsibleSidebar-logo {
|
|
116
122
|
.bdl-CollapsibleSidebar-toggleButton {
|
|
@@ -133,8 +139,34 @@ $left-sidebar-z-index: 40 !default;
|
|
|
133
139
|
}
|
|
134
140
|
}
|
|
135
141
|
|
|
136
|
-
@include
|
|
137
|
-
.
|
|
138
|
-
|
|
142
|
+
@include breakpoint($medium-screen) {
|
|
143
|
+
.Body.is-responsive-web {
|
|
144
|
+
.bdl-CollapsibleSidebar-wrapper {
|
|
145
|
+
width: 0;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.bdl-CollapsibleSidebar-footer {
|
|
149
|
+
display: none;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.bdl-CollapsibleSidebar-nav ul {
|
|
153
|
+
display: none;
|
|
154
|
+
// using fixed width due to performance issues during expand transition
|
|
155
|
+
width: calc(100vw - (#{$collapsible-side-bar-h-padding} * 2));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.bdl-CollapsibleSidebar {
|
|
159
|
+
width: 0;
|
|
160
|
+
border: none;
|
|
161
|
+
|
|
162
|
+
&.is-expanded {
|
|
163
|
+
width: 100vw;
|
|
164
|
+
|
|
165
|
+
.bdl-CollapsibleSidebar-nav ul,
|
|
166
|
+
.bdl-CollapsibleSidebar-footer {
|
|
167
|
+
display: block;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
139
171
|
}
|
|
140
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemList.js"],"names":["PropTypes","React","classNames","getProp","Column","Table","defaultTableRowRenderer","withInfiniteLoader","ContentExplorerModePropType","ItemsPropType","ItemsMapPropType","ItemListIcon","ItemListLoadingPlaceholder","ItemListName","ItemListButton","TABLE_CELL_CLASS","InfiniteLoaderTable","itemIconCellRenderer","rendererParams","rowData","type","extension","hasCollaborations","isExternallyOwned","itemIconRenderer","columnData","isItemSelected","itemId","selectedItems","undefined","itemNameCellRenderer","rowIndex","id","name","label","onItemNameClick","itemNameLinkRenderer","event","renderItemListButton","contentExplorerMode","isActionDisabled","isDisabled","itemButtonCellRenderer","itemButtonRenderer","itemLoadingPlaceholderRenderer","loadingPlaceholderColumnWidths","columnIndex","ItemList","className","items","numItemsPerPage","numTotalItems","onItemClick","onItemDoubleClick","onLoadMoreItems","noItemsRenderer","width","height","getRow","index","getRowClassNames","item","result","isLoading","renderRow","key","style","rowClassName","columns","itemRowClassname","testId","map","column","props","defaultRow","cloneElement","TableComponent","tableProps","infiniteLoaderProps","isRowLoaded","loadMoreRows","minimumBatchSize","rowCount","threshold","length","displayName","propTypes","string","isRequired","number","func","ItemListBase"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport getProp from 'lodash/get';\n\nimport Column from '@box/react-virtualized/dist/commonjs/Table/Column';\nimport Table from '@box/react-virtualized/dist/commonjs/Table';\nimport defaultTableRowRenderer from '@box/react-virtualized/dist/commonjs/Table/defaultRowRenderer';\nimport '@box/react-virtualized/styles.css';\n\nimport { withInfiniteLoader } from '../../../components/react-virtualized-helpers';\n\nimport { ContentExplorerModePropType, ItemsPropType, ItemsMapPropType } from '../prop-types';\n\nimport ItemListIcon from './ItemListIcon';\nimport ItemListLoadingPlaceholder from './ItemListLoadingPlaceholder';\nimport ItemListName from './ItemListName';\nimport ItemListButton from './ItemListButton';\n\nimport './ItemList.scss';\n\nconst TABLE_CELL_CLASS = 'table-cell';\n\nconst InfiniteLoaderTable = withInfiniteLoader(Table);\n\nconst itemIconCellRenderer = rendererParams => {\n const {\n rowData: { type, extension, hasCollaborations, isExternallyOwned },\n columnData: { itemIconRenderer },\n } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n {itemIconRenderer ? (\n itemIconRenderer(rendererParams)\n ) : (\n <ItemListIcon\n type={type}\n extension={extension}\n hasCollaborations={hasCollaborations}\n isExternallyOwned={isExternallyOwned}\n />\n )}\n </div>\n );\n};\n\nconst isItemSelected = (itemId, selectedItems) => selectedItems[itemId] !== undefined;\n\nconst itemNameCellRenderer = rendererParams => {\n const {\n rowIndex,\n rowData: { id, type, name, label },\n columnData: { selectedItems, onItemNameClick, itemNameLinkRenderer },\n } = rendererParams;\n // loading placeholder may not have name and ItemListName requires name\n return (\n name && (\n <div className={TABLE_CELL_CLASS}>\n <ItemListName\n type={type}\n name={name}\n label={label}\n isSelected={isItemSelected(id, selectedItems)}\n onClick={event => onItemNameClick(event, rowIndex)}\n linkRenderer={itemNameLinkRenderer}\n />\n </div>\n )\n );\n};\n\nconst renderItemListButton = (contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems) =>\n name && (\n <ItemListButton\n contentExplorerMode={contentExplorerMode}\n id={id}\n isDisabled={isActionDisabled}\n isSelected={isItemSelected(id, selectedItems)}\n name={name}\n />\n );\n\nconst itemButtonCellRenderer = rendererParams => {\n const {\n columnData: { contentExplorerMode, itemButtonRenderer, selectedItems },\n rowData: { id, isActionDisabled, isDisabled, name },\n } = rendererParams;\n return (\n !isDisabled && (\n <div className={TABLE_CELL_CLASS}>\n {itemButtonRenderer\n ? itemButtonRenderer(rendererParams)\n : renderItemListButton(contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems)}\n </div>\n )\n );\n};\n\nconst itemLoadingPlaceholderRenderer = rendererParams => {\n const { loadingPlaceholderColumnWidths, columnIndex } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n <ItemListLoadingPlaceholder\n width={loadingPlaceholderColumnWidths && loadingPlaceholderColumnWidths[columnIndex]}\n />\n </div>\n );\n};\n\nconst ItemList = ({\n contentExplorerMode,\n className = '',\n items,\n numItemsPerPage,\n numTotalItems,\n selectedItems = {},\n onItemClick,\n onItemDoubleClick,\n onItemNameClick,\n onLoadMoreItems,\n itemIconRenderer,\n itemNameLinkRenderer,\n itemButtonRenderer,\n noItemsRenderer,\n width,\n height,\n}) => {\n const getRow = ({ index }) => items[index];\n\n const getRowClassNames = (index, item) => {\n let result = index === -1 ? 'table-header' : 'table-row';\n\n if (isItemSelected(item.id, selectedItems)) {\n result = classNames('is-selected', result);\n }\n if (item && (item.isDisabled || item.isLoading)) {\n result = classNames('disabled', result);\n }\n\n return result;\n };\n\n const renderRow = rendererParams => {\n const { index, key, style, className: rowClassName, columns } = rendererParams;\n const item = items[index];\n const itemRowClassname = classNames(rowClassName, getRowClassNames(index, item));\n const testId = getProp(rendererParams, 'rowData.id', '');\n\n if (item.isLoading) {\n return (\n <div key={key} style={style} className={itemRowClassname} role=\"row\">\n {columns.map((column, columnIndex) => (\n <div\n key={columnIndex}\n className={column.props.className}\n style={column.props.style}\n role=\"gridcell\"\n >\n {itemLoadingPlaceholderRenderer({\n item,\n columnIndex,\n })}\n </div>\n ))}\n </div>\n );\n }\n\n const defaultRow = defaultTableRowRenderer({\n ...rendererParams,\n className: itemRowClassname,\n });\n return React.cloneElement(defaultRow, { 'data-testid': `item-row-${testId}` });\n };\n\n let TableComponent = Table;\n const tableProps = {};\n\n if (onLoadMoreItems) {\n TableComponent = InfiniteLoaderTable;\n tableProps.infiniteLoaderProps = {\n isRowLoaded: getRow,\n loadMoreRows: onLoadMoreItems,\n minimumBatchSize: numItemsPerPage,\n rowCount: numTotalItems,\n threshold: numItemsPerPage,\n };\n }\n\n return (\n <div className={classNames('content-explorer-item-list table', className)}>\n <TableComponent\n gridClassName=\"table-body\"\n headerClassName=\"table-header-item\"\n width={width}\n height={height}\n rowHeight={40}\n rowCount={items.length}\n onRowClick={onItemClick}\n onRowDoubleClick={onItemDoubleClick}\n rowGetter={getRow}\n rowRenderer={renderRow}\n noRowsRenderer={noItemsRenderer}\n {...tableProps}\n >\n <Column\n className=\"item-list-icon-col\"\n cellRenderer={itemIconCellRenderer}\n columnData={{\n itemIconRenderer,\n }}\n dataKey=\"icon\"\n width={32}\n />\n <Column\n className=\"item-list-name-col\"\n cellRenderer={itemNameCellRenderer}\n columnData={{\n selectedItems,\n onItemNameClick,\n itemNameLinkRenderer,\n }}\n dataKey=\"name\"\n width={0}\n flexGrow={1}\n flexShrink={0}\n />\n <Column\n className=\"item-list-button-col\"\n cellRenderer={itemButtonCellRenderer}\n columnData={{\n contentExplorerMode,\n itemButtonRenderer,\n selectedItems,\n }}\n dataKey=\"button\"\n width={30}\n />\n </TableComponent>\n </div>\n );\n};\n\nItemList.displayName = 'ItemList';\n\nItemList.propTypes = {\n className: PropTypes.string,\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n items: ItemsPropType.isRequired,\n numItemsPerPage: PropTypes.number,\n numTotalItems: PropTypes.number,\n selectedItems: ItemsMapPropType.isRequired,\n onItemClick: PropTypes.func,\n onItemDoubleClick: PropTypes.func,\n onItemNameClick: PropTypes.func,\n onLoadMoreItems: PropTypes.func,\n itemIconRenderer: PropTypes.func,\n itemNameLinkRenderer: PropTypes.func,\n itemButtonRenderer: PropTypes.func,\n noItemsRenderer: PropTypes.func,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n};\n\nexport { ItemList as ItemListBase };\nexport default ItemList;\n"],"file":"ItemList.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemList.js"],"names":["PropTypes","React","classNames","getProp","Column","Table","defaultTableRowRenderer","withInfiniteLoader","ContentExplorerModePropType","ItemsPropType","ItemsMapPropType","ItemListIcon","ItemListLoadingPlaceholder","ItemListName","ItemListButton","TABLE_CELL_CLASS","InfiniteLoaderTable","itemIconCellRenderer","rendererParams","rowData","type","extension","hasCollaborations","isExternallyOwned","itemIconRenderer","columnData","isItemSelected","itemId","selectedItems","undefined","itemNameCellRenderer","rowIndex","id","name","label","onItemNameClick","itemNameLinkRenderer","event","renderItemListButton","contentExplorerMode","isActionDisabled","isDisabled","itemButtonCellRenderer","itemButtonRenderer","itemLoadingPlaceholderRenderer","loadingPlaceholderColumnWidths","columnIndex","ItemList","className","items","numItemsPerPage","numTotalItems","onItemClick","onItemDoubleClick","onLoadMoreItems","noItemsRenderer","width","height","getRow","index","getRowClassNames","item","result","isLoading","renderRow","key","style","rowClassName","columns","itemRowClassname","testId","map","column","props","defaultRow","cloneElement","TableComponent","tableProps","infiniteLoaderProps","isRowLoaded","loadMoreRows","minimumBatchSize","rowCount","threshold","length","displayName","propTypes","string","isRequired","number","func","ItemListBase"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport getProp from 'lodash/get';\n\nimport Column from '@box/react-virtualized/dist/commonjs/Table/Column';\nimport Table from '@box/react-virtualized/dist/commonjs/Table';\nimport defaultTableRowRenderer from '@box/react-virtualized/dist/commonjs/Table/defaultRowRenderer';\nimport '@box/react-virtualized/styles.css';\n\nimport { withInfiniteLoader } from '../../../components/react-virtualized-helpers';\n\nimport { ContentExplorerModePropType, ItemsPropType, ItemsMapPropType } from '../prop-types';\n\nimport ItemListIcon from './ItemListIcon';\nimport ItemListLoadingPlaceholder from './ItemListLoadingPlaceholder';\nimport ItemListName from './ItemListName';\nimport ItemListButton from './ItemListButton';\n\nimport './ItemList.scss';\n\nconst TABLE_CELL_CLASS = 'table-cell';\n\nconst InfiniteLoaderTable = withInfiniteLoader(Table);\n\nconst itemIconCellRenderer = rendererParams => {\n const {\n rowData: { type, extension, hasCollaborations, isExternallyOwned },\n columnData: { itemIconRenderer },\n } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n {itemIconRenderer ? (\n itemIconRenderer(rendererParams)\n ) : (\n <ItemListIcon\n type={type}\n extension={extension}\n hasCollaborations={hasCollaborations}\n isExternallyOwned={isExternallyOwned}\n />\n )}\n </div>\n );\n};\n\nconst isItemSelected = (itemId, selectedItems) => selectedItems[itemId] !== undefined;\n\nconst itemNameCellRenderer = rendererParams => {\n const {\n rowIndex,\n rowData: { id, type, name, label },\n columnData: { selectedItems, onItemNameClick, itemNameLinkRenderer },\n } = rendererParams;\n // loading placeholder may not have name and ItemListName requires name\n return (\n name && (\n <div className={TABLE_CELL_CLASS}>\n <ItemListName\n itemId={id}\n type={type}\n name={name}\n label={label}\n isSelected={isItemSelected(id, selectedItems)}\n onClick={event => onItemNameClick(event, rowIndex)}\n linkRenderer={itemNameLinkRenderer}\n />\n </div>\n )\n );\n};\n\nconst renderItemListButton = (contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems) =>\n name && (\n <ItemListButton\n contentExplorerMode={contentExplorerMode}\n id={id}\n isDisabled={isActionDisabled}\n isSelected={isItemSelected(id, selectedItems)}\n name={name}\n />\n );\n\nconst itemButtonCellRenderer = rendererParams => {\n const {\n columnData: { contentExplorerMode, itemButtonRenderer, selectedItems },\n rowData: { id, isActionDisabled, isDisabled, name },\n } = rendererParams;\n return (\n !isDisabled && (\n <div className={TABLE_CELL_CLASS}>\n {itemButtonRenderer\n ? itemButtonRenderer(rendererParams)\n : renderItemListButton(contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems)}\n </div>\n )\n );\n};\n\nconst itemLoadingPlaceholderRenderer = rendererParams => {\n const { loadingPlaceholderColumnWidths, columnIndex } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n <ItemListLoadingPlaceholder\n width={loadingPlaceholderColumnWidths && loadingPlaceholderColumnWidths[columnIndex]}\n />\n </div>\n );\n};\n\nconst ItemList = ({\n contentExplorerMode,\n className = '',\n items,\n numItemsPerPage,\n numTotalItems,\n selectedItems = {},\n onItemClick,\n onItemDoubleClick,\n onItemNameClick,\n onLoadMoreItems,\n itemIconRenderer,\n itemNameLinkRenderer,\n itemButtonRenderer,\n noItemsRenderer,\n width,\n height,\n}) => {\n const getRow = ({ index }) => items[index];\n\n const getRowClassNames = (index, item) => {\n let result = index === -1 ? 'table-header' : 'table-row';\n\n if (isItemSelected(item.id, selectedItems)) {\n result = classNames('is-selected', result);\n }\n if (item && (item.isDisabled || item.isLoading)) {\n result = classNames('disabled', result);\n }\n\n return result;\n };\n\n const renderRow = rendererParams => {\n const { index, key, style, className: rowClassName, columns } = rendererParams;\n const item = items[index];\n const itemRowClassname = classNames(rowClassName, getRowClassNames(index, item));\n const testId = getProp(rendererParams, 'rowData.id', '');\n\n if (item.isLoading) {\n return (\n <div key={key} style={style} className={itemRowClassname} role=\"row\">\n {columns.map((column, columnIndex) => (\n <div\n key={columnIndex}\n className={column.props.className}\n style={column.props.style}\n role=\"gridcell\"\n >\n {itemLoadingPlaceholderRenderer({\n item,\n columnIndex,\n })}\n </div>\n ))}\n </div>\n );\n }\n\n const defaultRow = defaultTableRowRenderer({\n ...rendererParams,\n className: itemRowClassname,\n });\n return React.cloneElement(defaultRow, { 'data-testid': `item-row-${testId}` });\n };\n\n let TableComponent = Table;\n const tableProps = {};\n\n if (onLoadMoreItems) {\n TableComponent = InfiniteLoaderTable;\n tableProps.infiniteLoaderProps = {\n isRowLoaded: getRow,\n loadMoreRows: onLoadMoreItems,\n minimumBatchSize: numItemsPerPage,\n rowCount: numTotalItems,\n threshold: numItemsPerPage,\n };\n }\n\n return (\n <div className={classNames('content-explorer-item-list table', className)}>\n <TableComponent\n gridClassName=\"table-body\"\n headerClassName=\"table-header-item\"\n width={width}\n height={height}\n rowHeight={40}\n rowCount={items.length}\n onRowClick={onItemClick}\n onRowDoubleClick={onItemDoubleClick}\n rowGetter={getRow}\n rowRenderer={renderRow}\n noRowsRenderer={noItemsRenderer}\n {...tableProps}\n >\n <Column\n className=\"item-list-icon-col\"\n cellRenderer={itemIconCellRenderer}\n columnData={{\n itemIconRenderer,\n }}\n dataKey=\"icon\"\n width={32}\n />\n <Column\n className=\"item-list-name-col\"\n cellRenderer={itemNameCellRenderer}\n columnData={{\n selectedItems,\n onItemNameClick,\n itemNameLinkRenderer,\n }}\n dataKey=\"name\"\n width={0}\n flexGrow={1}\n flexShrink={0}\n />\n <Column\n className=\"item-list-button-col\"\n cellRenderer={itemButtonCellRenderer}\n columnData={{\n contentExplorerMode,\n itemButtonRenderer,\n selectedItems,\n }}\n dataKey=\"button\"\n width={30}\n />\n </TableComponent>\n </div>\n );\n};\n\nItemList.displayName = 'ItemList';\n\nItemList.propTypes = {\n className: PropTypes.string,\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n items: ItemsPropType.isRequired,\n numItemsPerPage: PropTypes.number,\n numTotalItems: PropTypes.number,\n selectedItems: ItemsMapPropType.isRequired,\n onItemClick: PropTypes.func,\n onItemDoubleClick: PropTypes.func,\n onItemNameClick: PropTypes.func,\n onLoadMoreItems: PropTypes.func,\n itemIconRenderer: PropTypes.func,\n itemNameLinkRenderer: PropTypes.func,\n itemButtonRenderer: PropTypes.func,\n noItemsRenderer: PropTypes.func,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n};\n\nexport { ItemList as ItemListBase };\nexport default ItemList;\n"],"file":"ItemList.js"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
|
|
1
7
|
import PropTypes from 'prop-types';
|
|
2
8
|
import React from 'react';
|
|
3
9
|
import PlainButton from '../../../components/plain-button';
|
|
@@ -7,7 +13,9 @@ import { ItemTypePropType } from '../prop-types';
|
|
|
7
13
|
var ITEM_LIST_NAME_CLASS = 'item-list-name';
|
|
8
14
|
|
|
9
15
|
var ItemListName = function ItemListName(_ref) {
|
|
10
|
-
var
|
|
16
|
+
var _ref$itemId = _ref.itemId,
|
|
17
|
+
itemId = _ref$itemId === void 0 ? '' : _ref$itemId,
|
|
18
|
+
type = _ref.type,
|
|
11
19
|
name = _ref.name,
|
|
12
20
|
_ref$label = _ref.label,
|
|
13
21
|
label = _ref$label === void 0 ? '' : _ref$label,
|
|
@@ -31,7 +39,9 @@ var ItemListName = function ItemListName(_ref) {
|
|
|
31
39
|
};
|
|
32
40
|
|
|
33
41
|
var renderLink = function renderLink() {
|
|
34
|
-
return linkRenderer ? linkRenderer(
|
|
42
|
+
return linkRenderer ? linkRenderer(_objectSpread({}, linkProps, {
|
|
43
|
+
itemId: itemId
|
|
44
|
+
})) : React.createElement(PlainButton, linkProps);
|
|
35
45
|
};
|
|
36
46
|
|
|
37
47
|
return React.createElement("div", {
|
|
@@ -44,6 +54,7 @@ var ItemListName = function ItemListName(_ref) {
|
|
|
44
54
|
};
|
|
45
55
|
|
|
46
56
|
ItemListName.propTypes = {
|
|
57
|
+
itemId: PropTypes.string,
|
|
47
58
|
type: ItemTypePropType,
|
|
48
59
|
name: PropTypes.string.isRequired,
|
|
49
60
|
label: PropTypes.string,
|
|
@@ -9,7 +9,7 @@ import { ItemTypePropType } from '../prop-types';
|
|
|
9
9
|
|
|
10
10
|
const ITEM_LIST_NAME_CLASS = 'item-list-name';
|
|
11
11
|
|
|
12
|
-
const ItemListName = ({ type, name, label = '', isSelected = false, onClick, linkRenderer }) => {
|
|
12
|
+
const ItemListName = ({ itemId = '', type, name, label = '', isSelected = false, onClick, linkRenderer }) => {
|
|
13
13
|
const isFolder = type === ItemTypes.FOLDER;
|
|
14
14
|
|
|
15
15
|
const linkProps = {
|
|
@@ -26,7 +26,7 @@ const ItemListName = ({ type, name, label = '', isSelected = false, onClick, lin
|
|
|
26
26
|
/>,
|
|
27
27
|
],
|
|
28
28
|
};
|
|
29
|
-
const renderLink = () => (linkRenderer ? linkRenderer(linkProps) : <PlainButton {...linkProps} />);
|
|
29
|
+
const renderLink = () => (linkRenderer ? linkRenderer({ ...linkProps, itemId }) : <PlainButton {...linkProps} />);
|
|
30
30
|
|
|
31
31
|
return (
|
|
32
32
|
<div className="item-list-name-container">
|
|
@@ -37,6 +37,7 @@ const ItemListName = ({ type, name, label = '', isSelected = false, onClick, lin
|
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
ItemListName.propTypes = {
|
|
40
|
+
itemId: PropTypes.string,
|
|
40
41
|
type: ItemTypePropType,
|
|
41
42
|
name: PropTypes.string.isRequired,
|
|
42
43
|
label: PropTypes.string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemListName.js"],"names":["PropTypes","React","PlainButton","IconChevron","ItemTypes","ItemTypePropType","ITEM_LIST_NAME_CLASS","ItemListName","type","name","label","isSelected","onClick","linkRenderer","isFolder","FOLDER","linkProps","className","children","renderLink","propTypes","string","isRequired","bool","func"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AAEA,OAAOC,WAAP,MAAwB,kCAAxB;AACA,OAAOC,WAAP,MAAwB,oCAAxB;AAEA,OAAOC,SAAP,MAAsB,eAAtB;AACA,SAASC,gBAAT,QAAiC,eAAjC;AAEA,IAAMC,oBAAoB,GAAG,gBAA7B;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemListName.js"],"names":["PropTypes","React","PlainButton","IconChevron","ItemTypes","ItemTypePropType","ITEM_LIST_NAME_CLASS","ItemListName","itemId","type","name","label","isSelected","onClick","linkRenderer","isFolder","FOLDER","linkProps","className","children","renderLink","propTypes","string","isRequired","bool","func"],"mappings":";;;;;;AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AAEA,OAAOC,WAAP,MAAwB,kCAAxB;AACA,OAAOC,WAAP,MAAwB,oCAAxB;AAEA,OAAOC,SAAP,MAAsB,eAAtB;AACA,SAASC,gBAAT,QAAiC,eAAjC;AAEA,IAAMC,oBAAoB,GAAG,gBAA7B;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAAwF;AAAA,yBAArFC,MAAqF;AAAA,MAArFA,MAAqF,4BAA5E,EAA4E;AAAA,MAAxEC,IAAwE,QAAxEA,IAAwE;AAAA,MAAlEC,IAAkE,QAAlEA,IAAkE;AAAA,wBAA5DC,KAA4D;AAAA,MAA5DA,KAA4D,2BAApD,EAAoD;AAAA,6BAAhDC,UAAgD;AAAA,MAAhDA,UAAgD,gCAAnC,KAAmC;AAAA,MAA5BC,OAA4B,QAA5BA,OAA4B;AAAA,MAAnBC,YAAmB,QAAnBA,YAAmB;AACzG,MAAMC,QAAQ,GAAGN,IAAI,KAAKL,SAAS,CAACY,MAApC;AAEA,MAAMC,SAAS,GAAG;AACdC,IAAAA,SAAS,gBAASZ,oBAAT,CADK;AAEdO,IAAAA,OAAO,EAAPA,OAFc;AAGdM,IAAAA,QAAQ,EAAE,CACN;AAAM,MAAA,GAAG,EAAC;AAAV,OAAkBT,IAAlB,CADM,EAEN,oBAAC,WAAD;AACI,MAAA,GAAG,EAAC,MADR;AAEI,MAAA,KAAK,EAAEE,UAAU,GAAG,SAAH,GAAe,MAFpC;AAGI,MAAA,SAAS,EAAC,OAHd;AAII,MAAA,IAAI,EAAC,KAJT;AAKI,MAAA,SAAS,EAAC;AALd,MAFM;AAHI,GAAlB;;AAcA,MAAMQ,UAAU,GAAG,SAAbA,UAAa;AAAA,WAAON,YAAY,GAAGA,YAAY,mBAAMG,SAAN;AAAiBT,MAAAA,MAAM,EAANA;AAAjB,OAAf,GAA4C,oBAAC,WAAD,EAAiBS,SAAjB,CAA/D;AAAA,GAAnB;;AAEA,SACI;AAAK,IAAA,SAAS,EAAC;AAAf,KACKF,QAAQ,GAAGK,UAAU,EAAb,GAAkB;AAAM,IAAA,SAAS,EAAEd;AAAjB,KAAwCI,IAAxC,CAD/B,EAEK,CAAC,CAACC,KAAF,IAAW;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAwCA,KAAxC,CAFhB,CADJ;AAMH,CAzBD;;AA2BAJ,YAAY,CAACc,SAAb,GAAyB;AACrBb,EAAAA,MAAM,EAAER,SAAS,CAACsB,MADG;AAErBb,EAAAA,IAAI,EAAEJ,gBAFe;AAGrBK,EAAAA,IAAI,EAAEV,SAAS,CAACsB,MAAV,CAAiBC,UAHF;AAIrBZ,EAAAA,KAAK,EAAEX,SAAS,CAACsB,MAJI;AAKrBV,EAAAA,UAAU,EAAEZ,SAAS,CAACwB,IALD;AAMrBX,EAAAA,OAAO,EAAEb,SAAS,CAACyB,IANE;AAOrBX,EAAAA,YAAY,EAAEd,SAAS,CAACyB;AAPH,CAAzB;AAUA,eAAelB,YAAf","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport PlainButton from '../../../components/plain-button';\nimport IconChevron from '../../../icons/general/IconChevron';\n\nimport ItemTypes from '../item-types';\nimport { ItemTypePropType } from '../prop-types';\n\nconst ITEM_LIST_NAME_CLASS = 'item-list-name';\n\nconst ItemListName = ({ itemId = '', type, name, label = '', isSelected = false, onClick, linkRenderer }) => {\n const isFolder = type === ItemTypes.FOLDER;\n\n const linkProps = {\n className: `lnk ${ITEM_LIST_NAME_CLASS}`,\n onClick,\n children: [\n <span key=\"name\">{name}</span>,\n <IconChevron\n key=\"icon\"\n color={isSelected ? '#447991' : '#333'}\n direction=\"right\"\n size=\"4px\"\n thickness=\"1px\"\n />,\n ],\n };\n const renderLink = () => (linkRenderer ? linkRenderer({ ...linkProps, itemId }) : <PlainButton {...linkProps} />);\n\n return (\n <div className=\"item-list-name-container\">\n {isFolder ? renderLink() : <span className={ITEM_LIST_NAME_CLASS}>{name}</span>}\n {!!label && <span className=\"item-list-name-label\">{label}</span>}\n </div>\n );\n};\n\nItemListName.propTypes = {\n itemId: PropTypes.string,\n type: ItemTypePropType,\n name: PropTypes.string.isRequired,\n label: PropTypes.string,\n isSelected: PropTypes.bool,\n onClick: PropTypes.func,\n linkRenderer: PropTypes.func,\n};\n\nexport default ItemListName;\n"],"file":"ItemListName.js"}
|
|
@@ -26,7 +26,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
26
26
|
|
|
27
27
|
import * as React from 'react';
|
|
28
28
|
import classNames from 'classnames';
|
|
29
|
-
import { Flyout, Overlay } from '../../components/flyout';
|
|
29
|
+
import { Flyout, Overlay, OverlayHeader } from '../../components/flyout';
|
|
30
30
|
import ScrollWrapper from '../../components/scroll-wrapper';
|
|
31
31
|
import './styles/HeaderFlyout.scss';
|
|
32
32
|
|
|
@@ -54,19 +54,17 @@ function (_React$Component) {
|
|
|
54
54
|
rest = _objectWithoutProperties(_this$props, ["header", "footer", "flyoutButton", "children", "scrollRefFn", "className"]);
|
|
55
55
|
|
|
56
56
|
return React.createElement(Flyout, _extends({
|
|
57
|
-
closeOnClick: false,
|
|
58
|
-
offset: HeaderFlyout.panelOffset,
|
|
59
57
|
className: classNames('header-flyout', className),
|
|
60
|
-
|
|
58
|
+
closeOnClick: false,
|
|
59
|
+
constrainToWindow: true,
|
|
60
|
+
offset: HeaderFlyout.panelOffset
|
|
61
61
|
}, rest), flyoutButton, React.createElement(Overlay, {
|
|
62
62
|
className: "header-flyout-overlay"
|
|
63
|
-
}, React.createElement("
|
|
64
|
-
className: "header-flyout-
|
|
65
|
-
}, header && React.createElement("div", {
|
|
66
|
-
className: "flyout-list-container-title"
|
|
67
|
-
}, React.createElement("h4", {
|
|
68
|
-
className: "flyout-list-title"
|
|
63
|
+
}, React.createElement(OverlayHeader, null, header && React.createElement("h4", {
|
|
64
|
+
className: "header-flyout-title"
|
|
69
65
|
}, header)), React.createElement("div", {
|
|
66
|
+
className: "header-flyout-list-container"
|
|
67
|
+
}, React.createElement("div", {
|
|
70
68
|
className: classNames('flyout-list-container-body', {
|
|
71
69
|
'with-header': !!header,
|
|
72
70
|
'with-footer': !!footer
|