@ntbjs/react-components 2.0.0-rc.29 → 2.0.0-rc.30
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/build/{_rollupPluginBabelHelpers-c245b26a.js → _virtual/_rollupPluginBabelHelpers.js} +2 -1
- package/build/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/build/{Alert-e6847a22.js → data/Alert/Alert.js} +5 -55
- package/build/data/Alert/Alert.js.map +1 -0
- package/build/data/Alert/Alert.styled.js +56 -0
- package/build/data/Alert/Alert.styled.js.map +1 -0
- package/build/data/Alert/index.js +2 -6
- package/build/data/Alert/index.js.map +1 -0
- package/build/data/Badge/Badge.js +87 -0
- package/build/data/Badge/Badge.js.map +1 -0
- package/build/{Badge-d93586a9.js → data/Badge/Badge.styled.js} +4 -85
- package/build/data/Badge/Badge.styled.js.map +1 -0
- package/build/data/Badge/index.js +2 -5
- package/build/data/Badge/index.js.map +1 -0
- package/build/data/Popover/Popover.js +93 -0
- package/build/data/Popover/Popover.js.map +1 -0
- package/build/{Popover-20050b91.js → data/Popover/Popover.styled.js} +6 -92
- package/build/data/Popover/Popover.styled.js.map +1 -0
- package/build/data/Popover/index.js +2 -10
- package/build/data/Popover/index.js.map +1 -0
- package/build/{Tab-04d435c3.js → data/Tab/Tab.js} +5 -12
- package/build/data/Tab/Tab.js.map +1 -0
- package/build/data/Tab/Tab.styled.js +13 -0
- package/build/data/Tab/Tab.styled.js.map +1 -0
- package/build/data/Tab/index.js +2 -5
- package/build/data/Tab/index.js.map +1 -0
- package/build/{Tabs-74d1ea8a.js → data/Tabs/Tabs.js} +6 -74
- package/build/data/Tabs/Tabs.js.map +1 -0
- package/build/data/Tabs/Tabs.styled.js +74 -0
- package/build/data/Tabs/Tabs.styled.js.map +1 -0
- package/build/data/Tabs/index.js +2 -7
- package/build/data/Tabs/index.js.map +1 -0
- package/build/{Tooltip-c1d1199e.js → data/Tooltip/Tooltip.js} +5 -26
- package/build/data/Tooltip/Tooltip.js.map +1 -0
- package/build/data/Tooltip/Tooltip.styled.js +28 -0
- package/build/data/Tooltip/Tooltip.styled.js.map +1 -0
- package/build/data/Tooltip/index.js +2 -7
- package/build/data/Tooltip/index.js.map +1 -0
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.js +36 -0
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.js.map +1 -0
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.styled.js +53 -0
- package/build/data/VerificationStatusIcon/VerificationStatusIcon.styled.js.map +1 -0
- package/build/data/index.js +8 -16
- package/build/data/index.js.map +1 -0
- package/build/hooks/useEventListner.js +21 -0
- package/build/hooks/useEventListner.js.map +1 -0
- package/build/hooks/useIsomorphicLayoutEffect.js +6 -0
- package/build/hooks/useIsomorphicLayoutEffect.js.map +1 -0
- package/build/hooks/useOnClickOutside.js +14 -0
- package/build/hooks/useOnClickOutside.js.map +1 -0
- package/build/icons/arrow-back.svg.js +16 -0
- package/build/icons/arrow-back.svg.js.map +1 -0
- package/build/{arrow-forward-ad12c5f3.js → icons/arrow-forward.svg.js} +2 -1
- package/build/icons/arrow-forward.svg.js.map +1 -0
- package/build/icons/check-rectangle-filled.svg.js +16 -0
- package/build/icons/check-rectangle-filled.svg.js.map +1 -0
- package/build/{close-a5d37608.js → icons/close.svg.js} +2 -1
- package/build/icons/close.svg.js.map +1 -0
- package/build/{edit-note-283a0e15.js → icons/edit-note.svg.js} +2 -1
- package/build/icons/edit-note.svg.js.map +1 -0
- package/build/{expand-more-c5523c46.js → icons/expand-more.svg.js} +2 -1
- package/build/icons/expand-more.svg.js.map +1 -0
- package/build/icons/headset.svg.js +16 -0
- package/build/icons/headset.svg.js.map +1 -0
- package/build/icons/layers.svg.js +16 -0
- package/build/icons/layers.svg.js.map +1 -0
- package/build/icons/link.svg.js +16 -0
- package/build/icons/link.svg.js.map +1 -0
- package/build/icons/play.svg.js +16 -0
- package/build/icons/play.svg.js.map +1 -0
- package/build/icons/search.svg.js +16 -0
- package/build/icons/search.svg.js.map +1 -0
- package/build/icons/star-filled.svg.js +16 -0
- package/build/icons/star-filled.svg.js.map +1 -0
- package/build/icons/star.svg.js +16 -0
- package/build/icons/star.svg.js.map +1 -0
- package/build/icons/triangle-right.svg.js +16 -0
- package/build/icons/triangle-right.svg.js.map +1 -0
- package/build/icons/verification.svg.js +16 -0
- package/build/icons/verification.svg.js.map +1 -0
- package/build/{warning-circle-24f3efcd.js → icons/warning-circle.svg.js} +2 -1
- package/build/icons/warning-circle.svg.js.map +1 -0
- package/build/index.js +5 -0
- package/build/index.js.map +1 -0
- package/build/inputs/ActionButton/ActionButton.js +36 -0
- package/build/inputs/ActionButton/ActionButton.js.map +1 -0
- package/build/{ActionButton-4db754c3.js → inputs/ActionButton/ActionButton.styled.js} +4 -34
- package/build/inputs/ActionButton/ActionButton.styled.js.map +1 -0
- package/build/inputs/ActionButton/index.js +2 -6
- package/build/inputs/ActionButton/index.js.map +1 -0
- package/build/inputs/Button/Button.js +188 -0
- package/build/inputs/Button/Button.js.map +1 -0
- package/build/{Button-73eb8516.js → inputs/Button/Button.styled.js} +4 -186
- package/build/inputs/Button/Button.styled.js.map +1 -0
- package/build/inputs/Button/index.js +2 -13
- package/build/inputs/Button/index.js.map +1 -0
- package/build/inputs/Checkbox/Checkbox.js +97 -0
- package/build/inputs/Checkbox/Checkbox.js.map +1 -0
- package/build/inputs/Checkbox/Checkbox.styled.js +122 -0
- package/build/inputs/Checkbox/Checkbox.styled.js.map +1 -0
- package/build/inputs/Checkbox/index.js +2 -6
- package/build/inputs/Checkbox/index.js.map +1 -0
- package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.js +267 -0
- package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.js.map +1 -0
- package/build/{CompactAutocompleteSelect-52c49513.js → inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.styled.js} +6 -267
- package/build/inputs/CompactAutocompleteSelect/CompactAutocompleteSelect.styled.js.map +1 -0
- package/build/inputs/CompactAutocompleteSelect/index.js +2 -23
- package/build/inputs/CompactAutocompleteSelect/index.js.map +1 -0
- package/build/inputs/CompactStarRating/CompactStarRating.js +177 -0
- package/build/inputs/CompactStarRating/CompactStarRating.js.map +1 -0
- package/build/inputs/CompactStarRating/CompactStarRating.styled.js +217 -0
- package/build/inputs/CompactStarRating/CompactStarRating.styled.js.map +1 -0
- package/build/inputs/CompactStarRating/index.js +2 -17
- package/build/inputs/CompactStarRating/index.js.map +1 -0
- package/build/inputs/CompactTextInput/CompactTextInput.js +184 -0
- package/build/inputs/CompactTextInput/CompactTextInput.js.map +1 -0
- package/build/{CompactTextInput-42ca5d42.js → inputs/CompactTextInput/CompactTextInput.styled.js} +4 -194
- package/build/inputs/CompactTextInput/CompactTextInput.styled.js.map +1 -0
- package/build/inputs/CompactTextInput/index.js +2 -19
- package/build/inputs/CompactTextInput/index.js.map +1 -0
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.js +207 -0
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.js.map +1 -0
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.js +66 -0
- package/build/inputs/MultiLevelCheckbox/MultiLevelCheckbox.styled.js.map +1 -0
- package/build/inputs/MultiLevelCheckbox/index.js +3 -0
- package/build/inputs/MultiLevelCheckbox/index.js.map +1 -0
- package/build/inputs/MultiLevelCheckbox/types.js +27 -0
- package/build/inputs/MultiLevelCheckbox/types.js.map +1 -0
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.js +184 -26
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.js.map +1 -0
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.styled.js +93 -0
- package/build/inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.styled.js.map +1 -0
- package/build/inputs/MultiLevelCheckboxSelect/index.js +2 -0
- package/build/inputs/MultiLevelCheckboxSelect/index.js.map +1 -0
- package/build/{MultiSelect-9f497e62.js → inputs/MultiSelect/MultiSelect.js} +6 -223
- package/build/inputs/MultiSelect/MultiSelect.js.map +1 -0
- package/build/inputs/MultiSelect/MultiSelect.styled.js +224 -0
- package/build/inputs/MultiSelect/MultiSelect.styled.js.map +1 -0
- package/build/inputs/MultiSelect/index.js +2 -10
- package/build/inputs/MultiSelect/index.js.map +1 -0
- package/build/inputs/Radio/Radio.js +60 -0
- package/build/inputs/Radio/Radio.js.map +1 -0
- package/build/{Radio-73ca3ae2.js → inputs/Radio/Radio.styled.js} +4 -58
- package/build/inputs/Radio/Radio.styled.js.map +1 -0
- package/build/inputs/Radio/index.js +2 -7
- package/build/inputs/Radio/index.js.map +1 -0
- package/build/inputs/Switch/Switch.js +64 -0
- package/build/inputs/Switch/Switch.js.map +1 -0
- package/build/{Switch-ecf3122b.js → inputs/Switch/Switch.styled.js} +4 -62
- package/build/inputs/Switch/Switch.styled.js.map +1 -0
- package/build/inputs/Switch/index.js +2 -6
- package/build/inputs/Switch/index.js.map +1 -0
- package/build/inputs/TextArea/TextArea.js +178 -0
- package/build/inputs/TextArea/TextArea.js.map +1 -0
- package/build/{TextArea-1e5b9201.js → inputs/TextArea/TextArea.styled.js} +3 -175
- package/build/inputs/TextArea/TextArea.styled.js.map +1 -0
- package/build/inputs/TextArea/index.js +2 -20
- package/build/inputs/TextArea/index.js.map +1 -0
- package/build/inputs/TextInput/TextInput.js +139 -0
- package/build/inputs/TextInput/TextInput.js.map +1 -0
- package/build/{TextInput-fab35842.js → inputs/TextInput/TextInput.styled.js} +4 -137
- package/build/inputs/TextInput/TextInput.styled.js.map +1 -0
- package/build/inputs/TextInput/index.js +2 -9
- package/build/inputs/TextInput/index.js.map +1 -0
- package/build/inputs/index.js +15 -40
- package/build/inputs/index.js.map +1 -0
- package/build/{InputGroup-1294d190.js → layout/InputGroup/InputGroup.js} +5 -8
- package/build/layout/InputGroup/InputGroup.js.map +1 -0
- package/build/layout/InputGroup/InputGroup.styled.js +9 -0
- package/build/layout/InputGroup/InputGroup.styled.js.map +1 -0
- package/build/layout/SectionSeparator/SectionSeparator.js +23 -0
- package/build/layout/SectionSeparator/SectionSeparator.js.map +1 -0
- package/build/layout/SectionSeparator/SectionSeparator.styled.js +14 -0
- package/build/layout/SectionSeparator/SectionSeparator.styled.js.map +1 -0
- package/build/layout/SectionSeparator/index.js +2 -5
- package/build/layout/SectionSeparator/index.js.map +1 -0
- package/build/layout/index.js +3 -6
- package/build/layout/index.js.map +1 -0
- package/build/ssr/index.js +1 -0
- package/build/ssr/index.js.map +1 -0
- package/build/styles/utils/colors.scss.js +4 -0
- package/build/styles/utils/colors.scss.js.map +1 -0
- package/build/utils/dateTime.js +17 -0
- package/build/utils/dateTime.js.map +1 -0
- package/build/utils/defaultTheme.js +44 -0
- package/build/utils/defaultTheme.js.map +1 -0
- package/build/{AssetAction-98d76ce0.js → widgets/AssetAction/AssetAction.js} +6 -40
- package/build/widgets/AssetAction/AssetAction.js.map +1 -0
- package/build/widgets/AssetAction/AssetAction.styled.js +41 -0
- package/build/widgets/AssetAction/AssetAction.styled.js.map +1 -0
- package/build/widgets/AssetAction/index.js +2 -7
- package/build/widgets/AssetAction/index.js.map +1 -0
- package/build/{AssetActionsBase-9e4c0735.js → widgets/AssetActionsBase/AssetActionsBase.js} +6 -15
- package/build/widgets/AssetActionsBase/AssetActionsBase.js.map +1 -0
- package/build/widgets/AssetActionsBase/AssetActionsBase.styled.js +15 -0
- package/build/widgets/AssetActionsBase/AssetActionsBase.styled.js.map +1 -0
- package/build/widgets/AssetActionsBase/index.js +2 -8
- package/build/widgets/AssetActionsBase/index.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGallery.js +99 -0
- package/build/widgets/AssetGallery/AssetGallery.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js +385 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.styled.js +30 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.styled.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js +401 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js +329 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js +409 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map +1 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js +280 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js.map +1 -0
- package/build/widgets/AssetGallery/asset.propType.js +54 -0
- package/build/widgets/AssetGallery/asset.propType.js.map +1 -0
- package/build/widgets/AssetGallery/index.js +2 -48
- package/build/widgets/AssetGallery/index.js.map +1 -0
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.js +44 -0
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.js.map +1 -0
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.styled.js +77 -0
- package/build/widgets/AssetPreview/AssetPreviewTopBar/AssetPreviewTopBar.styled.js.map +1 -0
- package/build/widgets/AssetPreview/AssetPreviewTopBar/index.js +2 -6
- package/build/widgets/AssetPreview/AssetPreviewTopBar/index.js.map +1 -0
- package/build/{ContextMenu-0f7134e4.js → widgets/ContextMenu/ContextMenu.js} +5 -9
- package/build/widgets/ContextMenu/ContextMenu.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenu.styled.js +10 -0
- package/build/widgets/ContextMenu/ContextMenu.styled.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.js +44 -0
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.styled.js +77 -0
- package/build/widgets/ContextMenu/ContextMenuItem/ContextMenuItem.styled.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItem/index.js +2 -5
- package/build/widgets/ContextMenu/ContextMenuItem/index.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.js +22 -0
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.styled.js +21 -0
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/ContextMenuItemsGroup.styled.js.map +1 -0
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/index.js +2 -37
- package/build/widgets/ContextMenu/ContextMenuItemsGroup/index.js.map +1 -0
- package/build/widgets/ContextMenu/index.js +2 -5
- package/build/widgets/ContextMenu/index.js.map +1 -0
- package/build/widgets/InfoCard/InfoCard.js +40 -0
- package/build/widgets/InfoCard/InfoCard.js.map +1 -0
- package/build/{InfoCard-c98b6f5a.js → widgets/InfoCard/InfoCard.styled.js} +5 -38
- package/build/widgets/InfoCard/InfoCard.styled.js.map +1 -0
- package/build/widgets/InfoCard/index.js +2 -6
- package/build/widgets/InfoCard/index.js.map +1 -0
- package/build/{Instructions-bfd28cea.js → widgets/Instructions/Instructions.js} +8 -34
- package/build/widgets/Instructions/Instructions.js.map +1 -0
- package/build/widgets/Instructions/Instructions.styled.js +32 -0
- package/build/widgets/Instructions/Instructions.styled.js.map +1 -0
- package/build/widgets/Instructions/index.js +2 -28
- package/build/widgets/Instructions/index.js.map +1 -0
- package/build/widgets/ProgressBar/ProgressBar.js +72 -0
- package/build/widgets/ProgressBar/ProgressBar.js.map +1 -0
- package/build/{ProgressBar-bc4a4a7e.js → widgets/ProgressBar/ProgressBar.styled.js} +5 -70
- package/build/widgets/ProgressBar/ProgressBar.styled.js.map +1 -0
- package/build/widgets/ProgressBar/index.js +2 -6
- package/build/widgets/ProgressBar/index.js.map +1 -0
- package/build/widgets/SummaryCard/SummaryCard.js +92 -0
- package/build/widgets/SummaryCard/SummaryCard.js.map +1 -0
- package/build/widgets/SummaryCard/SummaryCard.styled.js +137 -0
- package/build/widgets/SummaryCard/SummaryCard.styled.js.map +1 -0
- package/build/widgets/SummaryCard/index.js +2 -19
- package/build/widgets/SummaryCard/index.js.map +1 -0
- package/build/widgets/index.js +12 -53
- package/build/widgets/index.js.map +1 -0
- package/package.json +5 -2
- package/build/AssetGallery-63f721ec.js +0 -1981
- package/build/AssetPreviewTopBar-acd6353d.js +0 -127
- package/build/Checkbox-4a5fd716.js +0 -213
- package/build/CompactStarRating-9af2f427.js +0 -411
- package/build/ContextMenuItem-ea411141.js +0 -127
- package/build/MultiLevelCheckboxSelect-d8044c88.js +0 -604
- package/build/SectionSeparator-f47760a2.js +0 -31
- package/build/SummaryCard-24040650.js +0 -223
- package/build/VerificationStatusIcon-49cb1c1b.js +0 -95
- package/build/defaultTheme-1bcc2541.js +0 -1178
- package/build/layout/InputGroup/index.js +0 -5
- package/build/shift-away-subtle-0dd94a03.js +0 -7
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
import { extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { get, isFunction, mapKeys, omit } from 'lodash';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import React__default, { useRef, useState, useEffect, useCallback, useMemo } from 'react';
|
|
5
|
+
import { trackWindowScroll, LazyLoadComponent, LazyLoadImage } from 'react-lazy-load-image-component';
|
|
6
|
+
import 'react-lazy-load-image-component/src/effects/opacity.css';
|
|
7
|
+
import { ReactComponent as SvgCheckRectangleFilled } from '../../../../icons/check-rectangle-filled.svg.js';
|
|
8
|
+
import { ReactComponent as SvgHeadset } from '../../../../icons/headset.svg.js';
|
|
9
|
+
import { ReactComponent as SvgLayers } from '../../../../icons/layers.svg.js';
|
|
10
|
+
import { ReactComponent as SvgPlay } from '../../../../icons/play.svg.js';
|
|
11
|
+
import { ReactComponent as SvgWarningCircle } from '../../../../icons/warning-circle.svg.js';
|
|
12
|
+
import { convertMsToHMS } from '../../../../utils/dateTime.js';
|
|
13
|
+
import '../../../../data/Alert/Alert.js';
|
|
14
|
+
import Badge from '../../../../data/Badge/Badge.js';
|
|
15
|
+
import '../../../../data/Popover/Popover.js';
|
|
16
|
+
import '../../../../data/Tab/Tab.js';
|
|
17
|
+
import '../../../../data/Tabs/Tabs.js';
|
|
18
|
+
import '../../../../data/Tooltip/Tooltip.js';
|
|
19
|
+
import '../../../../data/VerificationStatusIcon/VerificationStatusIcon.js';
|
|
20
|
+
import SummaryCard from '../../../SummaryCard/SummaryCard.js';
|
|
21
|
+
import { assetShapeWithLayout } from '../../asset.propType.js';
|
|
22
|
+
import { AssetGalleryWrapper, AssetGalleryCompactCard as AssetGalleryCompactCard$2, Reference, Overlay, OverlayBackdrop, OverlayInfoTopActions, OverlayInfo, OverlayInfoTop, OverlayInfoTopLeft, OverlayInfoTopWarning, OverlayInfoBottom, OverlayInfoBottomSelectButton, OverlayInfoBottomMediaIcon, OverlayCompleted, OverlayHasError, OverlaySelected, StyledFloatingArrow, ConsumerDefinedOverlay, Figure, FigureOverlayBackdrop } from './AssetGalleryCompactCard.styled.js';
|
|
23
|
+
import { useFloating, autoUpdate, offset, flip, shift, arrow, useTransitionStyles, useHover, useDismiss, useInteractions, useMergeRefs } from '@floating-ui/react';
|
|
24
|
+
import AssetActionsBase from '../../../AssetActionsBase/AssetActionsBase.js';
|
|
25
|
+
|
|
26
|
+
const ComputedRootComponent = ({
|
|
27
|
+
component,
|
|
28
|
+
asset,
|
|
29
|
+
...props
|
|
30
|
+
}) => {
|
|
31
|
+
const newProps = mapKeys(omit(props, ['theme', 'extendedSelectMode']), (_, key) => key === 'innerRef' ? 'ref' : key);
|
|
32
|
+
if (component) {
|
|
33
|
+
if (!isFunction(component)) throw Error('Expected a function in component-prop');
|
|
34
|
+
if (React__default.isValidElement(component(asset, newProps.children))) {
|
|
35
|
+
return React__default.cloneElement(component(asset, newProps.children), omit(newProps, ['children']));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return React__default.createElement(AssetGalleryCompactCard$2, _extends({
|
|
39
|
+
ref: newProps.ref
|
|
40
|
+
}, newProps));
|
|
41
|
+
};
|
|
42
|
+
const AssetGalleryCompactCard = props => {
|
|
43
|
+
const {
|
|
44
|
+
asset,
|
|
45
|
+
activeSummaryCard,
|
|
46
|
+
displayIcon,
|
|
47
|
+
selectable,
|
|
48
|
+
hasHeightAndWidth,
|
|
49
|
+
selected,
|
|
50
|
+
customSelectedBorder,
|
|
51
|
+
extendedSelectMode,
|
|
52
|
+
onAssetSelected,
|
|
53
|
+
onAssetUnselected,
|
|
54
|
+
softSelected,
|
|
55
|
+
component,
|
|
56
|
+
scrollPosition,
|
|
57
|
+
collapseExtraInfo
|
|
58
|
+
} = props;
|
|
59
|
+
const ARROW_WIDTH = 30;
|
|
60
|
+
const ARROW_HEIGHT = 15;
|
|
61
|
+
const GAP = 8;
|
|
62
|
+
const arrowRef = useRef(null);
|
|
63
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
64
|
+
const [placement] = useState('bottom');
|
|
65
|
+
const [isOverlayHovered, setIsOverlayHovered] = useState(false);
|
|
66
|
+
const [openedSubActions, updateOpenedSubActions] = useState([]);
|
|
67
|
+
const {
|
|
68
|
+
refs,
|
|
69
|
+
floatingStyles,
|
|
70
|
+
context
|
|
71
|
+
} = useFloating({
|
|
72
|
+
placement,
|
|
73
|
+
open: isOpen,
|
|
74
|
+
onOpenChange: setIsOpen,
|
|
75
|
+
whileElementsMounted: autoUpdate,
|
|
76
|
+
middleware: [offset(ARROW_HEIGHT + GAP), flip({
|
|
77
|
+
padding: 5
|
|
78
|
+
}), shift({
|
|
79
|
+
padding: 5
|
|
80
|
+
}), arrow({
|
|
81
|
+
element: arrowRef
|
|
82
|
+
})]
|
|
83
|
+
});
|
|
84
|
+
const {
|
|
85
|
+
isMounted,
|
|
86
|
+
styles
|
|
87
|
+
} = useTransitionStyles(context, {
|
|
88
|
+
initial: {
|
|
89
|
+
transform: 'translateY(-8px)',
|
|
90
|
+
opacity: 0
|
|
91
|
+
},
|
|
92
|
+
duration: {
|
|
93
|
+
open: 200,
|
|
94
|
+
close: 100
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
const hover = useHover(context, {
|
|
98
|
+
restMs: 100
|
|
99
|
+
});
|
|
100
|
+
const dismiss = useDismiss(context, {
|
|
101
|
+
referencePress: true,
|
|
102
|
+
ancestorScroll: true,
|
|
103
|
+
windowScroll: true,
|
|
104
|
+
windowBlur: true
|
|
105
|
+
});
|
|
106
|
+
const {
|
|
107
|
+
getReferenceProps,
|
|
108
|
+
getFloatingProps
|
|
109
|
+
} = useInteractions([dismiss, hover]);
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
const newOpenedSubActions = (asset?.actions ?? []).map(() => false);
|
|
112
|
+
updateOpenedSubActions(newOpenedSubActions);
|
|
113
|
+
}, [asset]);
|
|
114
|
+
useEffect(() => {
|
|
115
|
+
if (!isOverlayHovered && openedSubActions?.length) {
|
|
116
|
+
updateOpenedSubActions(openedSubActions.map(() => false));
|
|
117
|
+
}
|
|
118
|
+
}, [isOverlayHovered]);
|
|
119
|
+
const mouseHasEnteredOverlay = useCallback(() => {
|
|
120
|
+
setIsOverlayHovered(true);
|
|
121
|
+
}, []);
|
|
122
|
+
const mouseHasLeftOverlay = useCallback(() => {
|
|
123
|
+
setIsOverlayHovered(false);
|
|
124
|
+
}, []);
|
|
125
|
+
const isAnySubActionsOpened = useMemo(() => {
|
|
126
|
+
return openedSubActions.some(isOpened => isOpened);
|
|
127
|
+
}, [openedSubActions]);
|
|
128
|
+
function onClick(event) {
|
|
129
|
+
if (extendedSelectMode) {
|
|
130
|
+
return onSelectClick(event);
|
|
131
|
+
}
|
|
132
|
+
if (isFunction(asset.onClick)) {
|
|
133
|
+
asset.onClick(event, asset);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function onSelectClick(event) {
|
|
137
|
+
event.preventDefault();
|
|
138
|
+
event.stopPropagation();
|
|
139
|
+
if (selected) {
|
|
140
|
+
return onAssetUnselected(asset.key);
|
|
141
|
+
}
|
|
142
|
+
if (selectable) {
|
|
143
|
+
return onAssetSelected(asset.key);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function onContextMenu(event) {
|
|
147
|
+
event.preventDefault();
|
|
148
|
+
asset.onContextMenu(event);
|
|
149
|
+
}
|
|
150
|
+
useEffect(() => {
|
|
151
|
+
if (isFunction(asset.onContextMenu)) {
|
|
152
|
+
if (cardRef.current) {
|
|
153
|
+
cardRef.current.addEventListener('contextmenu', onContextMenu);
|
|
154
|
+
}
|
|
155
|
+
return () => {
|
|
156
|
+
if (cardRef.current) {
|
|
157
|
+
cardRef.current.removeEventListener('contextmenu', onContextMenu);
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}, []);
|
|
162
|
+
function onDragstart(event) {
|
|
163
|
+
asset.onDragstart(event);
|
|
164
|
+
}
|
|
165
|
+
useEffect(() => {
|
|
166
|
+
if (isFunction(asset.onDragstart)) {
|
|
167
|
+
if (dragRef.current) {
|
|
168
|
+
dragRef.current.addEventListener('dragstart', onDragstart);
|
|
169
|
+
}
|
|
170
|
+
return () => {
|
|
171
|
+
if (dragRef.current) {
|
|
172
|
+
dragRef.current.removeEventListener('dragstart', onDragstart);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
}, []);
|
|
177
|
+
const videoPlayerRef = useRef();
|
|
178
|
+
const cardRef = useRef();
|
|
179
|
+
const dragRef = useRef(null);
|
|
180
|
+
const overlayCompactRef = useMergeRefs([cardRef, refs.setReference]);
|
|
181
|
+
function onMouseEnter(event) {
|
|
182
|
+
if (videoPlayerRef.current) {
|
|
183
|
+
const playPromise = videoPlayerRef.current.play();
|
|
184
|
+
if (playPromise !== undefined) {
|
|
185
|
+
playPromise.then(() => {}).catch(() => {});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (isFunction(asset.onMouseEnter)) {
|
|
189
|
+
asset.onMouseEnter(event, asset);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
function onMouseLeave() {
|
|
193
|
+
if (videoPlayerRef.current) {
|
|
194
|
+
videoPlayerRef.current.pause();
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
const renderPreview = asset => {
|
|
198
|
+
let previewContent = null;
|
|
199
|
+
if (asset?.fileType?.toLowerCase() === 'video') {
|
|
200
|
+
previewContent = React__default.createElement(LazyLoadComponent, {
|
|
201
|
+
scrollPosition: scrollPosition
|
|
202
|
+
}, React__default.createElement("video", {
|
|
203
|
+
ref: videoPlayerRef,
|
|
204
|
+
loop: true,
|
|
205
|
+
muted: true
|
|
206
|
+
}, React__default.createElement("source", {
|
|
207
|
+
src: asset.previewUrl,
|
|
208
|
+
type: "video/mp4"
|
|
209
|
+
})));
|
|
210
|
+
} else if (asset?.fileType?.toLowerCase() === 'audio') {
|
|
211
|
+
previewContent = React__default.createElement(LazyLoadComponent, {
|
|
212
|
+
scrollPosition: scrollPosition
|
|
213
|
+
}, React__default.createElement("div", {
|
|
214
|
+
className: "audio"
|
|
215
|
+
}, React__default.createElement(SvgHeadset, null)));
|
|
216
|
+
} else {
|
|
217
|
+
previewContent = React__default.createElement(LazyLoadImage, {
|
|
218
|
+
alt: asset?.title,
|
|
219
|
+
src: asset?.previewUrl,
|
|
220
|
+
height: "100%",
|
|
221
|
+
width: "100%",
|
|
222
|
+
delayMethod: "debounce",
|
|
223
|
+
delayTime: 0,
|
|
224
|
+
threshold: 1500,
|
|
225
|
+
scrollPosition: scrollPosition
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
return React__default.createElement(Figure, {
|
|
229
|
+
hasHeightAndWidth: hasHeightAndWidth
|
|
230
|
+
}, previewContent, React__default.createElement(FigureOverlayBackdrop, {
|
|
231
|
+
selected: selected
|
|
232
|
+
}));
|
|
233
|
+
};
|
|
234
|
+
useEffect(() => {
|
|
235
|
+
if (softSelected) {
|
|
236
|
+
cardRef.current.scrollIntoView({
|
|
237
|
+
behavior: 'smooth',
|
|
238
|
+
block: 'nearest'
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
}, [softSelected]);
|
|
242
|
+
const renderVersionsBadge = useCallback(() => {
|
|
243
|
+
if (!asset?.versions) return null;
|
|
244
|
+
return React__default.createElement(Badge, {
|
|
245
|
+
badgeIcon: React__default.createElement(SvgLayers, null),
|
|
246
|
+
badgeContent: asset.versions,
|
|
247
|
+
backgroundColors: ['black', 'black'],
|
|
248
|
+
colors: ['#f7f8f9', '#f7f8f9'],
|
|
249
|
+
fontSize: 12,
|
|
250
|
+
fontWeight: 500,
|
|
251
|
+
lineHeight: 16,
|
|
252
|
+
verticalPadding: 4,
|
|
253
|
+
horizontalPadding: 8
|
|
254
|
+
});
|
|
255
|
+
}, [asset]);
|
|
256
|
+
const renderVerificationBadge = useCallback(() => {
|
|
257
|
+
if (!asset?.verifications) return null;
|
|
258
|
+
return asset?.verifications;
|
|
259
|
+
}, [asset]);
|
|
260
|
+
const renderdynamicBadge = useCallback(() => {
|
|
261
|
+
if (asset?.verifications) return renderVerificationBadge();
|
|
262
|
+
if (asset?.versions) return renderVersionsBadge();
|
|
263
|
+
return null;
|
|
264
|
+
});
|
|
265
|
+
const renderBadge = () => {
|
|
266
|
+
switch (displayIcon) {
|
|
267
|
+
case 'versions':
|
|
268
|
+
return renderVersionsBadge();
|
|
269
|
+
case 'verifications':
|
|
270
|
+
return renderVerificationBadge();
|
|
271
|
+
case 'dynamic':
|
|
272
|
+
return renderdynamicBadge();
|
|
273
|
+
default:
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
const renderMediaBadge = useCallback(() => {
|
|
278
|
+
let badgeIcon = null;
|
|
279
|
+
let badgeContent = null;
|
|
280
|
+
if (asset?.fileType === 'video') {
|
|
281
|
+
badgeIcon = React__default.createElement(SvgPlay, null);
|
|
282
|
+
}
|
|
283
|
+
if (asset?.duration) {
|
|
284
|
+
badgeContent = convertMsToHMS(asset.duration);
|
|
285
|
+
}
|
|
286
|
+
if (!badgeIcon && !badgeContent) return null;
|
|
287
|
+
return React__default.createElement(Badge, {
|
|
288
|
+
badgeIcon: badgeIcon,
|
|
289
|
+
badgeContent: badgeContent,
|
|
290
|
+
backgroundColors: ['black', 'black'],
|
|
291
|
+
colors: ['#f7f8f9', '#f7f8f9'],
|
|
292
|
+
fontSize: 12,
|
|
293
|
+
fontWeight: 500,
|
|
294
|
+
lineHeight: 16,
|
|
295
|
+
verticalPadding: 4,
|
|
296
|
+
horizontalPadding: 8,
|
|
297
|
+
minWidth: 32,
|
|
298
|
+
height: 24
|
|
299
|
+
});
|
|
300
|
+
}, [asset]);
|
|
301
|
+
const renderSummaryCardHeaderLeft = useCallback(() => {
|
|
302
|
+
return React__default.createElement(React__default.Fragment, null, renderVersionsBadge(), renderMediaBadge());
|
|
303
|
+
}, [asset]);
|
|
304
|
+
const renderPopoverContent = useCallback(() => {
|
|
305
|
+
return React__default.createElement(SummaryCard, {
|
|
306
|
+
activeSummaryCard: activeSummaryCard,
|
|
307
|
+
title: asset?.title || '',
|
|
308
|
+
description: asset?.description || '',
|
|
309
|
+
instructions: asset?.imageRights || '',
|
|
310
|
+
instructionsType: 'warning',
|
|
311
|
+
headerRight: asset?.summary?.headerRight || '',
|
|
312
|
+
headerLeft: React__default.createElement(React__default.Fragment, null, renderSummaryCardHeaderLeft(), asset?.summary?.headerLeft || ''),
|
|
313
|
+
footerLeft: asset?.summary?.footerLeft || '',
|
|
314
|
+
footerRight: asset?.summary?.footerRight || '',
|
|
315
|
+
width: 375,
|
|
316
|
+
view: 'compact'
|
|
317
|
+
});
|
|
318
|
+
}, [asset]);
|
|
319
|
+
return React__default.createElement(AssetGalleryWrapper, {
|
|
320
|
+
disabled: asset.disabled
|
|
321
|
+
}, React__default.createElement(AssetGalleryCompactCard$2, _extends({
|
|
322
|
+
as: ComputedRootComponent,
|
|
323
|
+
component: component,
|
|
324
|
+
disabled: asset.disabled,
|
|
325
|
+
asset: asset,
|
|
326
|
+
onClick: onClick,
|
|
327
|
+
extendedSelectMode: extendedSelectMode,
|
|
328
|
+
onMouseEnter: onMouseEnter,
|
|
329
|
+
onMouseLeave: onMouseLeave,
|
|
330
|
+
draggable: asset.draggable,
|
|
331
|
+
innerRef: dragRef,
|
|
332
|
+
selected: selected
|
|
333
|
+
}, getReferenceProps()), React__default.createElement(Reference, {
|
|
334
|
+
ref: refs.setReference
|
|
335
|
+
}, asset.previewUrl && renderPreview(asset)), React__default.createElement(Overlay, _extends({
|
|
336
|
+
ref: overlayCompactRef,
|
|
337
|
+
onMouseEnter: mouseHasEnteredOverlay,
|
|
338
|
+
onMouseLeave: mouseHasLeftOverlay,
|
|
339
|
+
style: {
|
|
340
|
+
height: '100%'
|
|
341
|
+
}
|
|
342
|
+
}, getReferenceProps()), React__default.createElement(OverlayBackdrop, {
|
|
343
|
+
softSelected: softSelected,
|
|
344
|
+
selected: selected
|
|
345
|
+
}), asset?.actions && React__default.createElement(OverlayInfoTopActions, {
|
|
346
|
+
$isOverlayHovered: isOverlayHovered
|
|
347
|
+
}, React__default.createElement(AssetActionsBase, {
|
|
348
|
+
actions: asset.actions,
|
|
349
|
+
asset: asset
|
|
350
|
+
})), React__default.createElement(OverlayInfo, null, isOverlayHovered && React__default.createElement("span", null, asset.title), React__default.createElement(OverlayInfoTop, null, React__default.createElement(OverlayInfoTopLeft, {
|
|
351
|
+
collapseExtraInfo: collapseExtraInfo
|
|
352
|
+
}, renderBadge()), asset?.note?.title && React__default.createElement(OverlayInfoTopWarning, {
|
|
353
|
+
type: asset?.note?.type
|
|
354
|
+
}, React__default.createElement(SvgWarningCircle, null))), React__default.createElement(OverlayInfoBottom, null, selectable && React__default.createElement(OverlayInfoBottomSelectButton, {
|
|
355
|
+
selected: selected
|
|
356
|
+
}, React__default.createElement(SvgCheckRectangleFilled, {
|
|
357
|
+
onClick: onSelectClick
|
|
358
|
+
})), React__default.createElement(OverlayInfoBottomMediaIcon, null, renderMediaBadge()))), asset.completed && React__default.createElement(OverlayCompleted, {
|
|
359
|
+
softSelected: softSelected
|
|
360
|
+
}), asset.hasError && React__default.createElement(OverlayHasError, {
|
|
361
|
+
softSelected: softSelected
|
|
362
|
+
}), selectable && React__default.createElement(OverlaySelected, {
|
|
363
|
+
selected: selected,
|
|
364
|
+
softSelected: softSelected,
|
|
365
|
+
customSelectedBorder: customSelectedBorder
|
|
366
|
+
}), isOpen && isOverlayHovered && isMounted && activeSummaryCard && !isAnySubActionsOpened && React__default.createElement("div", _extends({
|
|
367
|
+
ref: refs.setFloating,
|
|
368
|
+
style: floatingStyles
|
|
369
|
+
}, getFloatingProps()), React__default.createElement("div", {
|
|
370
|
+
style: styles,
|
|
371
|
+
className: "floating"
|
|
372
|
+
}, renderPopoverContent(), React__default.createElement(StyledFloatingArrow, {
|
|
373
|
+
ref: arrowRef,
|
|
374
|
+
context: context,
|
|
375
|
+
width: ARROW_WIDTH,
|
|
376
|
+
height: ARROW_HEIGHT
|
|
377
|
+
})))), asset.overlay && React__default.createElement(ConsumerDefinedOverlay, null, asset.overlay)));
|
|
378
|
+
};
|
|
379
|
+
AssetGalleryCompactCard.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
380
|
+
asset: PropTypes.shape(assetShapeWithLayout).isRequired,
|
|
381
|
+
hasHeightAndWidth: PropTypes.bool,
|
|
382
|
+
selectable: PropTypes.bool,
|
|
383
|
+
selected: PropTypes.bool,
|
|
384
|
+
customSelectedBorder: PropTypes.arrayOf(PropTypes.string),
|
|
385
|
+
extendedSelectMode: PropTypes.bool,
|
|
386
|
+
onAssetSelected: PropTypes.func.isRequired,
|
|
387
|
+
onAssetUnselected: PropTypes.func.isRequired,
|
|
388
|
+
softSelected: PropTypes.bool.isRequired,
|
|
389
|
+
component: PropTypes.func,
|
|
390
|
+
scrollPosition: PropTypes.number,
|
|
391
|
+
collapseExtraInfo: PropTypes.bool,
|
|
392
|
+
activeSummaryCard: PropTypes.bool,
|
|
393
|
+
displayIcon: PropTypes.oneOf(['dynamic', 'versions', 'verifications', ''])
|
|
394
|
+
} : {};
|
|
395
|
+
var AssetGalleryCompactCard$1 = trackWindowScroll(React__default.memo(AssetGalleryCompactCard, (prevProps, nextProps) => {
|
|
396
|
+
const reactiveProps = ['selectable', 'selected', 'extendedSelectMode', 'softSelected', 'asset.previewUrl', 'asset.overlay', 'hasHeightAndWidth', 'collapseExtraInfo'];
|
|
397
|
+
return reactiveProps.every(propKey => get(prevProps, propKey) === get(nextProps, propKey));
|
|
398
|
+
}));
|
|
399
|
+
|
|
400
|
+
export { AssetGalleryCompactCard$1 as default };
|
|
401
|
+
//# sourceMappingURL=AssetGalleryCompactCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetGalleryCompactCard.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js"],"sourcesContent":["import { get, isFunction, mapKeys, omit } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n LazyLoadComponent,\n LazyLoadImage,\n trackWindowScroll\n} from 'react-lazy-load-image-component';\nimport 'react-lazy-load-image-component/src/effects/opacity.css';\nimport {\n CheckRectangleIcon,\n HeadsetIcon,\n LayersIcon,\n PlayIcon,\n WarningCircleIcon\n} from '../../../../../icons';\nimport { convertMsToHMS } from '../../../../../utils/dateTime';\nimport { Badge } from '../../../../data';\n\nimport SummaryCard from '../../../SummaryCard/SummaryCard';\nimport { assetShapeWithLayout } from '../../asset.propType';\nimport * as S from './AssetGalleryCompactCard.styled';\n\nimport {\n useFloating,\n useHover,\n useInteractions,\n useTransitionStyles,\n flip,\n shift,\n arrow,\n autoUpdate,\n offset,\n useDismiss,\n useMergeRefs\n} from '@floating-ui/react';\nimport AssetActionsBase from '../../../AssetActionsBase/AssetActionsBase';\n\n// eslint-disable-next-line react/prop-types\nconst ComputedRootComponent = ({ component, asset, ...props }) => {\n // Omit props we don't need\n const newProps = mapKeys(omit(props, ['theme', 'extendedSelectMode']), (_, key) =>\n key === 'innerRef' ? 'ref' : key\n );\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component(asset, newProps.children))) {\n return React.cloneElement(component(asset, newProps.children), omit(newProps, ['children']));\n }\n }\n\n return <S.AssetGalleryCompactCard ref={newProps.ref} {...newProps} />;\n};\n\nconst AssetGalleryCompactCard = props => {\n const {\n asset,\n activeSummaryCard,\n displayIcon,\n selectable,\n hasHeightAndWidth,\n selected,\n customSelectedBorder,\n extendedSelectMode,\n onAssetSelected,\n onAssetUnselected,\n softSelected,\n component,\n scrollPosition,\n collapseExtraInfo\n } = props;\n\n const ARROW_WIDTH = 30;\n const ARROW_HEIGHT = 15;\n const GAP = 8;\n\n const arrowRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const [placement] = useState('bottom');\n\n const [isOverlayHovered, setIsOverlayHovered] = useState(false);\n const [openedSubActions, updateOpenedSubActions] = useState([]);\n\n const { refs, floatingStyles, context } = useFloating({\n placement,\n open: isOpen,\n onOpenChange: setIsOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({\n element: arrowRef\n })\n ]\n });\n\n const { isMounted, styles } = useTransitionStyles(context, {\n initial: {\n transform: 'translateY(-8px)',\n opacity: 0\n },\n duration: {\n open: 200,\n close: 100\n }\n });\n\n const hover = useHover(context, {\n restMs: 100\n });\n const dismiss = useDismiss(context, {\n referencePress: true,\n ancestorScroll: true,\n windowScroll: true,\n windowBlur: true\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss, hover]);\n\n useEffect(() => {\n const newOpenedSubActions = (asset?.actions ?? []).map(() => false);\n updateOpenedSubActions(newOpenedSubActions);\n }, [asset]);\n\n useEffect(() => {\n if (!isOverlayHovered && openedSubActions?.length) {\n updateOpenedSubActions(openedSubActions.map(() => false));\n }\n }, [isOverlayHovered]);\n\n const mouseHasEnteredOverlay = useCallback(() => {\n setIsOverlayHovered(true);\n }, []);\n\n const mouseHasLeftOverlay = useCallback(() => {\n setIsOverlayHovered(false);\n }, []);\n\n const isAnySubActionsOpened = useMemo(() => {\n return openedSubActions.some(isOpened => isOpened);\n }, [openedSubActions]);\n\n function onClick(event) {\n if (extendedSelectMode) {\n return onSelectClick(event);\n }\n\n if (isFunction(asset.onClick)) {\n asset.onClick(event, asset);\n }\n }\n\n function onSelectClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (selected) {\n return onAssetUnselected(asset.key);\n }\n\n if (selectable) {\n return onAssetSelected(asset.key);\n }\n }\n\n function onContextMenu(event) {\n event.preventDefault();\n asset.onContextMenu(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onContextMenu)) {\n if (cardRef.current) {\n cardRef.current.addEventListener('contextmenu', onContextMenu);\n }\n return () => {\n if (cardRef.current) {\n cardRef.current.removeEventListener('contextmenu', onContextMenu);\n }\n };\n }\n }, []);\n\n function onDragstart(event) {\n asset.onDragstart(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onDragstart)) {\n if (dragRef.current) {\n dragRef.current.addEventListener('dragstart', onDragstart);\n }\n return () => {\n if (dragRef.current) {\n dragRef.current.removeEventListener('dragstart', onDragstart);\n }\n };\n }\n }, []);\n\n const videoPlayerRef = useRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\n\n const overlayCompactRef = useMergeRefs([cardRef, refs.setReference]);\n\n function onMouseEnter(event) {\n if (videoPlayerRef.current) {\n const playPromise = videoPlayerRef.current.play();\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n // Playback started!\n })\n .catch(() => {\n // Play was prevented - silently swallow play errors\n });\n }\n }\n\n if (isFunction(asset.onMouseEnter)) {\n asset.onMouseEnter(event, asset);\n }\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n }\n\n const renderPreview = asset => {\n let previewContent = null;\n if (asset?.fileType?.toLowerCase() === 'video') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <video\n ref={videoPlayerRef}\n loop\n muted\n // style={{ maxHeight: maxHeight }}\n >\n <source src={asset.previewUrl} type=\"video/mp4\" />\n </video>\n </LazyLoadComponent>\n );\n } else if (asset?.fileType?.toLowerCase() === 'audio') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <div className=\"audio\">\n <HeadsetIcon />\n </div>\n </LazyLoadComponent>\n );\n } else {\n previewContent = (\n <LazyLoadImage\n alt={asset?.title}\n src={asset?.previewUrl}\n height=\"100%\"\n width=\"100%\"\n delayMethod=\"debounce\"\n delayTime={0}\n threshold={1500}\n scrollPosition={scrollPosition}\n />\n );\n }\n\n return (\n <S.Figure hasHeightAndWidth={hasHeightAndWidth}>\n {previewContent}\n <S.FigureOverlayBackdrop selected={selected} />\n </S.Figure>\n );\n };\n\n // If this asset is soft selected we will scroll it into the viewport if it's outside\n useEffect(() => {\n if (softSelected) {\n cardRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }, [softSelected]);\n\n const renderVersionsBadge = useCallback(() => {\n if (!asset?.versions) return null;\n\n return (\n <Badge\n badgeIcon={<LayersIcon />}\n badgeContent={asset.versions}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n />\n );\n }, [asset]);\n\n const renderVerificationBadge = useCallback(() => {\n if (!asset?.verifications) return null;\n return asset?.verifications;\n }, [asset]);\n\n const renderdynamicBadge = useCallback(() => {\n if (asset?.verifications) return renderVerificationBadge();\n if (asset?.versions) return renderVersionsBadge();\n return null;\n });\n\n const renderBadge = () => {\n switch (displayIcon) {\n case 'versions':\n return renderVersionsBadge();\n case 'verifications':\n return renderVerificationBadge();\n case 'dynamic':\n return renderdynamicBadge();\n default:\n return null;\n }\n };\n\n const renderMediaBadge = useCallback(() => {\n let badgeIcon = null;\n let badgeContent = null;\n\n if (asset?.fileType === 'video') {\n badgeIcon = <PlayIcon />;\n }\n\n if (asset?.duration) {\n badgeContent = convertMsToHMS(asset.duration);\n }\n\n if (!badgeIcon && !badgeContent) return null;\n return (\n <Badge\n badgeIcon={badgeIcon}\n badgeContent={badgeContent}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n minWidth={32}\n height={24}\n />\n );\n }, [asset]);\n\n const renderSummaryCardHeaderLeft = useCallback(() => {\n return (\n <>\n {renderVersionsBadge()}\n {renderMediaBadge()}\n </>\n );\n }, [asset]);\n\n const renderPopoverContent = useCallback(() => {\n return (\n <SummaryCard\n activeSummaryCard={activeSummaryCard}\n title={asset?.title || ''}\n description={asset?.description || ''}\n instructions={asset?.imageRights || ''}\n instructionsType={'warning'}\n headerRight={asset?.summary?.headerRight || ''}\n headerLeft={\n <>\n {renderSummaryCardHeaderLeft()}\n {asset?.summary?.headerLeft || ''}\n </>\n }\n footerLeft={asset?.summary?.footerLeft || ''}\n footerRight={asset?.summary?.footerRight || ''}\n width={375}\n view={'compact'}\n />\n );\n }, [asset]);\n\n return (\n <S.AssetGalleryWrapper disabled={asset.disabled}>\n <S.AssetGalleryCompactCard\n as={ComputedRootComponent}\n component={component}\n disabled={asset.disabled}\n asset={asset}\n onClick={onClick}\n extendedSelectMode={extendedSelectMode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n draggable={asset.draggable}\n innerRef={dragRef}\n selected={selected}\n // ref={refs.setReference}\n {...getReferenceProps()}\n >\n <S.Reference ref={refs.setReference}>\n {asset.previewUrl && renderPreview(asset)}\n </S.Reference>\n\n <S.Overlay\n ref={overlayCompactRef}\n onMouseEnter={mouseHasEnteredOverlay}\n onMouseLeave={mouseHasLeftOverlay}\n style={{ height: '100%' }}\n {...getReferenceProps()}\n >\n <S.OverlayBackdrop softSelected={softSelected} selected={selected} />\n {asset?.actions && (\n <S.OverlayInfoTopActions $isOverlayHovered={isOverlayHovered}>\n <AssetActionsBase actions={asset.actions} asset={asset} />\n </S.OverlayInfoTopActions>\n )}\n <S.OverlayInfo>\n {isOverlayHovered && <span>{asset.title}</span>}\n <S.OverlayInfoTop>\n <S.OverlayInfoTopLeft collapseExtraInfo={collapseExtraInfo}>\n {renderBadge()}\n </S.OverlayInfoTopLeft>\n {asset?.note?.title && (\n <S.OverlayInfoTopWarning type={asset?.note?.type}>\n <WarningCircleIcon />\n </S.OverlayInfoTopWarning>\n )}\n </S.OverlayInfoTop>\n <S.OverlayInfoBottom>\n {selectable && (\n <S.OverlayInfoBottomSelectButton selected={selected}>\n <CheckRectangleIcon onClick={onSelectClick} />\n </S.OverlayInfoBottomSelectButton>\n )}\n <S.OverlayInfoBottomMediaIcon>{renderMediaBadge()}</S.OverlayInfoBottomMediaIcon>\n </S.OverlayInfoBottom>\n </S.OverlayInfo>\n {asset.completed && <S.OverlayCompleted softSelected={softSelected} />}\n {asset.hasError && <S.OverlayHasError softSelected={softSelected} />}\n {selectable && (\n <S.OverlaySelected\n selected={selected}\n softSelected={softSelected}\n customSelectedBorder={customSelectedBorder}\n />\n )}\n {isOpen && isOverlayHovered && isMounted && activeSummaryCard && !isAnySubActionsOpened && (\n <div ref={refs.setFloating} style={floatingStyles} {...getFloatingProps()}>\n <div style={styles} className=\"floating\">\n {renderPopoverContent()}\n <S.StyledFloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n />\n </div>\n </div>\n )}\n </S.Overlay>\n\n {asset.overlay && <S.ConsumerDefinedOverlay>{asset.overlay}</S.ConsumerDefinedOverlay>}\n </S.AssetGalleryCompactCard>\n </S.AssetGalleryWrapper>\n );\n};\n\nAssetGalleryCompactCard.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n asset: PropTypes.shape(assetShapeWithLayout).isRequired,\n\n /**\n * Tells the asset card that the asset height and width was known\n */\n hasHeightAndWidth: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: PropTypes.bool,\n\n /**\n * Is the asset selected\n */\n selected: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have custom borders on selected asset\n */\n customSelectedBorder: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * Makes the whole asset card into a selectable area\n */\n extendedSelectMode: PropTypes.bool,\n\n /**\n * The callback function when an asset is selected - returns the selected asset key\n */\n onAssetSelected: PropTypes.func.isRequired,\n\n /**\n * The callback function when an asset is unselected - returns the unselected asset key\n */\n onAssetUnselected: PropTypes.func.isRequired,\n\n /**\n * Is the asset soft selected\n */\n softSelected: PropTypes.bool.isRequired,\n\n /**\n * A function that returns a custom component to use for the card in the gallery - The function provides\n * `asset` as its first argument\n */\n component: PropTypes.func,\n\n /**\n * Internal prop used by the gallery to determine if the card is in the viewport - This prop is\n * not intended to be used by consumers\n */\n scrollPosition: PropTypes.number,\n\n /**\n * If the width of the card is too small to render all the badges\n */\n collapseExtraInfo: PropTypes.bool,\n\n /**\n * Display a tooltip on hover with a summary of info about the asset\n */\n activeSummaryCard: PropTypes.bool,\n /**\n * * Display an icon on the card\n */\n displayIcon: PropTypes.oneOf(['dynamic', 'versions', 'verifications', ''])\n};\n\nexport default trackWindowScroll(\n React.memo(AssetGalleryCompactCard, (prevProps, nextProps) => {\n // The asset card will only re-render if any of the following props change.\n const reactiveProps = [\n 'selectable',\n 'selected',\n 'extendedSelectMode',\n 'softSelected',\n 'asset.previewUrl',\n 'asset.overlay',\n 'hasHeightAndWidth',\n 'collapseExtraInfo'\n ];\n\n return reactiveProps.every(propKey => get(prevProps, propKey) === get(nextProps, propKey));\n })\n);\n"],"names":["ComputedRootComponent","component","asset","props","newProps","mapKeys","omit","_","key","isFunction","Error","React","isValidElement","children","cloneElement","createElement","S","_extends","ref","AssetGalleryCompactCard","activeSummaryCard","displayIcon","selectable","hasHeightAndWidth","selected","customSelectedBorder","extendedSelectMode","onAssetSelected","onAssetUnselected","softSelected","scrollPosition","collapseExtraInfo","ARROW_WIDTH","ARROW_HEIGHT","GAP","arrowRef","useRef","isOpen","setIsOpen","useState","placement","isOverlayHovered","setIsOverlayHovered","openedSubActions","updateOpenedSubActions","refs","floatingStyles","context","useFloating","open","onOpenChange","whileElementsMounted","autoUpdate","middleware","offset","flip","padding","shift","arrow","element","isMounted","styles","useTransitionStyles","initial","transform","opacity","duration","close","hover","useHover","restMs","dismiss","useDismiss","referencePress","ancestorScroll","windowScroll","windowBlur","getReferenceProps","getFloatingProps","useInteractions","useEffect","newOpenedSubActions","actions","map","length","mouseHasEnteredOverlay","useCallback","mouseHasLeftOverlay","isAnySubActionsOpened","useMemo","some","isOpened","onClick","event","onSelectClick","preventDefault","stopPropagation","onContextMenu","cardRef","current","addEventListener","removeEventListener","onDragstart","dragRef","videoPlayerRef","overlayCompactRef","useMergeRefs","setReference","onMouseEnter","playPromise","play","undefined","then","catch","onMouseLeave","pause","renderPreview","previewContent","fileType","toLowerCase","LazyLoadComponent","loop","muted","src","previewUrl","type","className","HeadsetIcon","LazyLoadImage","alt","title","height","width","delayMethod","delayTime","threshold","scrollIntoView","behavior","block","renderVersionsBadge","versions","Badge","badgeIcon","LayersIcon","badgeContent","backgroundColors","colors","fontSize","fontWeight","lineHeight","verticalPadding","horizontalPadding","renderVerificationBadge","verifications","renderdynamicBadge","renderBadge","renderMediaBadge","PlayIcon","convertMsToHMS","minWidth","renderSummaryCardHeaderLeft","Fragment","renderPopoverContent","SummaryCard","description","instructions","imageRights","instructionsType","headerRight","summary","headerLeft","footerLeft","footerRight","view","disabled","as","draggable","innerRef","style","$isOverlayHovered","AssetActionsBase","note","WarningCircleIcon","CheckRectangleIcon","completed","hasError","setFloating","overlay","propTypes","process","env","NODE_ENV","PropTypes","shape","assetShapeWithLayout","isRequired","bool","arrayOf","string","func","number","oneOf","trackWindowScroll","memo","prevProps","nextProps","reactiveProps","every","propKey","get"],"mappings":"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"}
|