@ntbjs/react-components 2.0.10 → 2.0.11-rc.2
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/icons/check-rectangle-outline.svg +3 -0
- package/build/icons/check-rectangle-outline.svg.js +23 -0
- package/build/icons/check-rectangle-outline.svg.js.map +1 -0
- package/build/icons/index.js +2 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js +2 -4
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js +53 -64
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js +193 -212
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js.map +1 -1
- package/icons/check-rectangle-outline.svg +3 -0
- package/icons/index.js +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
var _rect;
|
|
4
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
5
|
+
function SvgCheckRectangleOutline(props) {
|
|
6
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
7
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
8
|
+
viewBox: "0 0 24 24"
|
|
9
|
+
}, props), _rect || (_rect = /*#__PURE__*/React.createElement("rect", {
|
|
10
|
+
x: 1,
|
|
11
|
+
y: 1,
|
|
12
|
+
width: 22,
|
|
13
|
+
height: 22,
|
|
14
|
+
rx: 2.67,
|
|
15
|
+
ry: 2.67,
|
|
16
|
+
fill: "none",
|
|
17
|
+
stroke: "currentColor",
|
|
18
|
+
strokeWidth: 2
|
|
19
|
+
})));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { SvgCheckRectangleOutline as ReactComponent };
|
|
23
|
+
//# sourceMappingURL=check-rectangle-outline.svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-rectangle-outline.svg.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/icons/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { ReactComponent as AudioIcon } from './audio.svg';
|
|
|
8
8
|
import { ReactComponent as BellIcon } from './bell.svg';
|
|
9
9
|
import { ReactComponent as CheckCircleIcon } from './check-circle-filled.svg';
|
|
10
10
|
import { ReactComponent as CheckRectangleIcon } from './check-rectangle-filled.svg';
|
|
11
|
+
import { ReactComponent as CheckRectangleOutlineIcon } from './check-rectangle-outline.svg';
|
|
11
12
|
import { ReactComponent as CloseIcon } from './close.svg';
|
|
12
13
|
import { ReactComponent as CorporateIcon } from './corporate.svg';
|
|
13
14
|
import { ReactComponent as DeleteContextMenuIcon } from './delete-context-menu.svg';
|
|
@@ -49,6 +50,7 @@ export {
|
|
|
49
50
|
BellIcon,
|
|
50
51
|
CheckCircleIcon,
|
|
51
52
|
CheckRectangleIcon,
|
|
53
|
+
CheckRectangleOutlineIcon,
|
|
52
54
|
CloseIcon,
|
|
53
55
|
CorporateIcon,
|
|
54
56
|
DeleteContextMenuIcon,
|
|
@@ -40,8 +40,7 @@ const AssetGalleryBase = React__default.forwardRef(function AssetGalleryBase({
|
|
|
40
40
|
const PRIMARY_SCROLL_BUFFER_HEIGHT = 1500;
|
|
41
41
|
const SECONDARY_SCROLL_BUFFER_HEIGHT = 500;
|
|
42
42
|
const GRID_VIEW_MODE_ASSET_MIN_WIDTH = 300;
|
|
43
|
-
const GRID_VIEW_MODE_ASSET_HEIGHT =
|
|
44
|
-
const GRID_VIEW_MODE_INSTRUCTION_EXTRA_HEIGHT = 40;
|
|
43
|
+
const GRID_VIEW_MODE_ASSET_HEIGHT = 526;
|
|
45
44
|
const MISSING_WIDTH_PLACEHOLDER = 1920;
|
|
46
45
|
const MISSING_HEIGHT_PLACEHOLDER = 1080;
|
|
47
46
|
const isBrowser = typeof window !== 'undefined';
|
|
@@ -111,8 +110,7 @@ const AssetGalleryBase = React__default.forwardRef(function AssetGalleryBase({
|
|
|
111
110
|
}
|
|
112
111
|
row.push(asset);
|
|
113
112
|
if (row.length === desiredAssetCountInRow || index + 1 === assetsProp.length || assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group) {
|
|
114
|
-
const
|
|
115
|
-
const rowHeight = rowHasInstructions ? GRID_VIEW_MODE_ASSET_HEIGHT + GRID_VIEW_MODE_INSTRUCTION_EXTRA_HEIGHT : GRID_VIEW_MODE_ASSET_HEIGHT;
|
|
113
|
+
const rowHeight = GRID_VIEW_MODE_ASSET_HEIGHT;
|
|
116
114
|
row.forEach(rowAsset => {
|
|
117
115
|
computedAssets.push({
|
|
118
116
|
...rowAsset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetGalleryBase.js","sources":["../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { throttle } from 'lodash';\nimport PropTypes from 'prop-types';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { assetShape } from '../asset.propType';\nimport useIsomorphicLayoutEffect from './../../../../hooks/useIsomorphicLayoutEffect';\nimport * as S from './AssetGalleryBase.styled';\nimport AssetGalleryCompactCard from './AssetGalleryCompactCard/AssetGalleryCompactCard';\nimport AssetGalleryGridCard from './AssetGalleryGridCard/AssetGalleryGridCard';\n\nconst AssetGalleryBase = React.forwardRef(function AssetGalleryBase(\n {\n assets: assetsProp,\n activeSummaryCard,\n displayIcon,\n viewMode,\n thumbnailMaxHeight,\n selectable,\n customSelectedBorder,\n selectedAssetKeys,\n onAssetSelected,\n onAssetUnselected,\n softSelectable,\n softSelectedAssetKey,\n scrollElement: scrollElementProp,\n onAssetSoftSelectedChanged,\n component,\n ...props\n },\n forwardedRef\n) {\n // Combine forwarded ref and the local ref\n const assetGalleryDOMNode = useRef();\n const assetGalleryCompactRef = useMergedRefs(forwardedRef, assetGalleryDOMNode);\n\n const assetGalleryWidth = useRef(0);\n const minimumRowAspectRatio = useRef(0);\n\n // Calculated assets\n const calculatedAssets = useRef([]);\n const [assets, setAssets] = useState([]);\n\n // Constants\n const MAXIMUM_ROW_HEIGHT = useMemo(\n () => (viewMode === 'grid' ? 450 : thumbnailMaxHeight),\n [viewMode, thumbnailMaxHeight]\n );\n const SPACE_BETWEEN_ASSETS = 8;\n const SPACE_UNDER_ASSETS = 8;\n const PRIMARY_SCROLL_BUFFER_HEIGHT = 1500;\n const SECONDARY_SCROLL_BUFFER_HEIGHT = 500;\n const GRID_VIEW_MODE_ASSET_MIN_WIDTH = 300;\n const GRID_VIEW_MODE_ASSET_HEIGHT = 474;\n const GRID_VIEW_MODE_INSTRUCTION_EXTRA_HEIGHT = 40;\n const MISSING_WIDTH_PLACEHOLDER = 1920;\n const MISSING_HEIGHT_PLACEHOLDER = 1080;\n\n const isBrowser = typeof window !== 'undefined';\n\n const scrollElement = scrollElementProp || window;\n\n // Scroll position and direction\n const previousYOffset = useRef(isBrowser ? scrollElement.pageYOffset : 0);\n const latestYOffset = useRef(isBrowser ? scrollElement.pageYOffset : 0);\n const scrollDirection = useRef('down');\n\n // Track resize changes and set the current Asset Gallery width\n useIsomorphicLayoutEffect(() => {\n if (!assetGalleryDOMNode.current) return;\n\n const throttledOnResize = throttle(onResize, 1);\n\n const resizeObserver = new ResizeObserver(throttledOnResize);\n\n resizeObserver.observe(assetGalleryDOMNode.current);\n\n function onResize(entries) {\n entries.forEach(entry => {\n // setAssetGalleryWidth(entry.contentRect.width);\n if (assetGalleryWidth.current === entry.contentRect.width) return;\n window.requestAnimationFrame(() => {\n assetGalleryWidth.current = entry.contentRect.width;\n main();\n });\n });\n }\n\n return () => {\n resizeObserver.unobserve(assetGalleryDOMNode.current);\n };\n }, [assetsProp, assetGalleryDOMNode, MAXIMUM_ROW_HEIGHT]);\n\n //Re calculate Asset Gallery when something changes `MAXIMUM_ROW_HEIGHT` or `assetsProp` changes\n useEffect(() => {\n main();\n }, [MAXIMUM_ROW_HEIGHT, assetsProp]);\n\n const main = () => {\n calculateAssetGalleryAspectRatio();\n calculateLayout();\n calculateVisibility();\n };\n\n const calculateAssetGalleryAspectRatio = () => {\n // We don't care to compute the aspect ratio if the width of the gallery is 0\n if (assetGalleryWidth.current > 0) {\n minimumRowAspectRatio.current = calculateAspectRatio(\n assetGalleryWidth.current,\n MAXIMUM_ROW_HEIGHT\n );\n }\n };\n\n // Calculate asset gallery layout\n const calculateLayout = () => {\n // Check for required attributes and omit assets that are missing the attribute\n const assetsWithoutAKey = assetsProp.filter(a => !a.key);\n if (assetsWithoutAKey.length > 0) {\n assetsProp = assetsProp.filter(a => a.key);\n assetsWithoutAKey.forEach(a =>\n console.warn(\n 'Omitted asset from the gallery because it was missing the unique `key` property.',\n a\n )\n );\n }\n\n if (viewMode === 'grid' && assetGalleryWidth.current > 0) {\n // State\n let row = []; // The list of images in the current row.\n let translateX = 0; // The current translateX value that we are at\n let translateY = 0; // The current translateY value that we are at\n const computedAssets = [];\n let lastGroup = null; // The last group that was created\n\n // Calculate how many assets we can put in a row before violating `ASSET_MIN_WIDTH`\n // but we always want minimum of 1 asset in a row\n const desiredAssetCountInRow =\n Math.floor(assetGalleryWidth.current / GRID_VIEW_MODE_ASSET_MIN_WIDTH) || 1;\n\n // Calculate the width of each asset in a row\n const desiredAssetWidth =\n assetGalleryWidth.current / desiredAssetCountInRow -\n SPACE_BETWEEN_ASSETS +\n SPACE_BETWEEN_ASSETS / desiredAssetCountInRow;\n\n assetsProp.forEach((asset, index) => {\n // Create a group label\n if (asset.group && asset.group !== lastGroup) {\n computedAssets.push({\n title: asset.group,\n key: asset.key,\n layout: {\n type: 'groupLabel',\n height: 50,\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n lastGroup = asset.group;\n translateY += 50 + SPACE_UNDER_ASSETS;\n }\n\n row.push(asset);\n\n if (\n row.length === desiredAssetCountInRow ||\n index + 1 === assetsProp.length ||\n (assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group)\n ) {\n const rowHasInstructions = row.some(a => a.imageRights);\n const rowHeight = rowHasInstructions\n ? GRID_VIEW_MODE_ASSET_HEIGHT + GRID_VIEW_MODE_INSTRUCTION_EXTRA_HEIGHT\n : GRID_VIEW_MODE_ASSET_HEIGHT;\n\n row.forEach(rowAsset => {\n computedAssets.push({\n ...rowAsset,\n layout: {\n type: 'asset', // Indicates that this is an asset and not a group label\n width: Math.round(desiredAssetWidth),\n height: Math.round(rowHeight),\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n\n translateX += desiredAssetWidth + SPACE_BETWEEN_ASSETS;\n });\n\n row = [];\n translateX = 0;\n translateY += rowHeight + SPACE_UNDER_ASSETS;\n }\n });\n\n calculatedAssets.current = computedAssets;\n } else {\n if (minimumRowAspectRatio.current > 0) {\n // State\n let row = []; // The list of images in the current row.\n let translateX = 0; // The current translateX value that we are at\n let translateY = 0; // The current translateY value that we are at\n let rowAspectRatio = 0; // The aspect ratio of the row we are building\n let lastGroup = null; // The last group that was created\n\n const computedAssets = [];\n\n // Loop through all our images, building them up into rows and computing\n // the working rowAspectRatio.\n assetsProp.forEach((asset, index) => {\n // Create a group label\n if (asset.group && asset.group !== lastGroup) {\n computedAssets.push({\n title: asset.group,\n key: asset.key,\n layout: {\n type: 'groupLabel',\n height: 50,\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n lastGroup = asset.group;\n translateY += 50 + SPACE_UNDER_ASSETS;\n }\n\n rowAspectRatio += calculateAspectRatio(\n asset.width || MISSING_WIDTH_PLACEHOLDER,\n asset.height || MISSING_HEIGHT_PLACEHOLDER\n );\n\n row.push(asset);\n\n // End the row if any of the conditions match\n if (\n rowAspectRatio >= minimumRowAspectRatio.current ||\n index + 1 === assetsProp.length ||\n (assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group)\n ) {\n // Make sure that the last row also has a reasonable height\n rowAspectRatio = Math.max(rowAspectRatio, minimumRowAspectRatio.current);\n\n // Compute this row's height.\n const totalDesiredWidthOfImages =\n assetGalleryWidth.current - SPACE_BETWEEN_ASSETS * (row.length - 1);\n const rowHeight = totalDesiredWidthOfImages / rowAspectRatio;\n\n row.forEach(rowAsset => {\n const assetWidth =\n rowHeight *\n calculateAspectRatio(\n rowAsset.width || MISSING_WIDTH_PLACEHOLDER,\n rowAsset.height || MISSING_HEIGHT_PLACEHOLDER\n );\n\n computedAssets.push({\n ...rowAsset,\n layout: {\n type: 'asset', // Indicates that this is an asset an not a group label\n width: Math.round(assetWidth),\n height: Math.round(rowHeight),\n translateX: Math.round(translateX),\n translateY: Math.round(translateY),\n hasHeightAndWidth: Boolean(rowAsset.width && rowAsset.height)\n }\n });\n\n // The next image is `SPACE_BETWEEN_ASSETS` pixels to the right of this image.\n translateX += assetWidth + SPACE_BETWEEN_ASSETS;\n });\n\n // Reset our state variables for next row.\n row = [];\n rowAspectRatio = 0;\n translateY += rowHeight + SPACE_UNDER_ASSETS;\n translateX = 0;\n }\n });\n\n calculatedAssets.current = computedAssets;\n }\n }\n };\n\n // Utility function to calculate the aspect ratio of a width and height\n function calculateAspectRatio(width, height) {\n return width / height;\n }\n\n // Calculate the total height of the gallery\n const totalGalleryHeight = useMemo(() => {\n if (assets.length === 0) {\n return 0;\n }\n\n const lastAsset = assets[assets.length - 1];\n\n if (assets.length < 8) {\n return (lastAsset.layout.translateY + lastAsset.layout.height) * 2;\n }\n\n return lastAsset.layout.translateY + lastAsset.layout.height;\n }, [assets]);\n\n useEffect(() => {\n const throttledOnScroll = throttle(onScroll, 200);\n\n scrollElement.addEventListener('scroll', throttledOnScroll, false);\n return () => scrollElement.removeEventListener('scroll', throttledOnScroll, false);\n }, [assetGalleryDOMNode, calculatedAssets]);\n\n function onScroll() {\n setScrollPositionAndDirection();\n calculateVisibility();\n }\n\n function setScrollPositionAndDirection() {\n const newYOffset = scrollElement.pageYOffset;\n previousYOffset.current = latestYOffset.current;\n latestYOffset.current = newYOffset;\n scrollDirection.current = latestYOffset.current > previousYOffset.current ? 'down' : 'up';\n }\n\n /**\n * +---------------------------+\n * | |\n * | |\n * | |\n * | |\n * + - - - - - - - - - - - - - + -------\n * | | A\n * | Secondary Buffer | SECONDARY_SCROLL_BUFFER_HEIGHT\n * | | V\n * +---------------------------+ -------\n * | | A\n * | | |\n * | | |\n * | Viewport | window.innerHeight\n * | | |\n * | | |\n * | | V\n * +---------------------------+ -------\n * | | A\n * | | |\n * | | |\n * | | |\n * | Primary Buffer | PRIMARY_SCROLL_BUFFER_HEIGHT\n * | | |\n * | | |\n * | | |\n * | | V\n * + - - - - - - - - - - - - - + -------\n * | |\n * | (Scroll direction) |\n * | | |\n * | | |\n * | V |\n * | |\n *\n */\n\n const calculateVisibility = () => {\n if (!assetGalleryDOMNode.current) return;\n\n // Get the top and bottom buffers heights.\n const bufferTop =\n scrollDirection.current === 'up'\n ? PRIMARY_SCROLL_BUFFER_HEIGHT\n : SECONDARY_SCROLL_BUFFER_HEIGHT;\n\n const bufferBottom =\n scrollDirection.current === 'up'\n ? SECONDARY_SCROLL_BUFFER_HEIGHT\n : PRIMARY_SCROLL_BUFFER_HEIGHT;\n\n const containerOffset = getOffsetTop(assetGalleryDOMNode.current);\n const scrollerHeight = scrollElement.innerHeight;\n\n const yOffset = latestYOffset.current;\n\n // This is the top of the top buffer. If the bottom of an image is above\n // this line, it will be removed.\n const minTranslateYPlusHeight = yOffset - containerOffset - bufferTop;\n\n // This is the bottom of the bottom buffer. If the top of an image is\n // below this line, it will be removed.\n const maxTranslateY = yOffset - containerOffset + scrollerHeight + bufferBottom;\n\n const finalizedAssets = calculatedAssets.current.map(asset => {\n if (\n scrollElement.self == window &&\n (asset.layout.translateY + asset.layout.height < minTranslateYPlusHeight ||\n asset.layout.translateY > maxTranslateY)\n ) {\n // Hide Image\n asset.layout.show = false;\n } else {\n // Show Image\n asset.layout.show = true;\n }\n\n return asset;\n });\n\n setAssets(finalizedAssets);\n };\n\n // Utility function that returns the distance from `elem` to the top of the page.\n // This is done by walking up the node tree, getting the offsetTop of each\n // parent node, until the top of the page.\n function getOffsetTop(elem) {\n let offsetTop = 0;\n do {\n if (!isNaN(elem.offsetTop)) {\n offsetTop += elem.offsetTop;\n }\n elem = elem.offsetParent;\n } while (elem);\n return offsetTop;\n }\n\n const handleKeyPress = useCallback(\n e => {\n function isElementVisible(el) {\n const rect = el.getBoundingClientRect(),\n vWidth = scrollElement.innerWidth || document.documentElement.clientWidth,\n vHeight = scrollElement.innerHeight || document.documentElement.clientHeight,\n efp = function (x, y) {\n return document.elementFromPoint(x, y);\n };\n\n // Return false if it's not in the viewport\n if (rect.right < 0 || rect.bottom < 0 || rect.left > vWidth || rect.top > vHeight)\n return false;\n\n // Return true if any of its four corners are visible\n return (\n el.contains(efp(rect.left, rect.top)) ||\n el.contains(efp(rect.right, rect.top)) ||\n el.contains(efp(rect.right, rect.bottom)) ||\n el.contains(efp(rect.left, rect.bottom))\n );\n }\n\n function softSelectFirstVisibleAsset() {\n const visibleAssets = assets.filter(asset => asset.layout.show);\n\n for (let i = 0; i < assetGalleryDOMNode.current.children.length; i++) {\n if (isElementVisible(assetGalleryDOMNode.current.children[i])) {\n onAssetSoftSelectedChanged(visibleAssets[i].key);\n break;\n }\n }\n }\n\n if (assets.length === 0) return;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n if (softSelectedAssetKey === null) {\n softSelectFirstVisibleAsset();\n\n return;\n }\n }\n\n if (e.key === 'ArrowLeft') {\n const previousAssetIndex =\n assets.findIndex(asset => asset.key === softSelectedAssetKey) - 1;\n\n const previousAsset = assets[previousAssetIndex];\n\n if (previousAsset) {\n if (previousAsset.layout.show) {\n onAssetSoftSelectedChanged(previousAsset.key);\n } else {\n softSelectFirstVisibleAsset();\n }\n }\n\n return;\n }\n\n if (e.key === 'ArrowRight') {\n const nextAssetIndex = assets.findIndex(asset => asset.key === softSelectedAssetKey) + 1;\n\n const nextAsset = assets[nextAssetIndex];\n\n if (nextAsset) {\n if (nextAsset.layout.show) {\n onAssetSoftSelectedChanged(nextAsset.key);\n } else {\n softSelectFirstVisibleAsset();\n }\n }\n\n return;\n }\n\n if (e.key === 'Enter') {\n if (softSelectedAssetKey === null) return;\n\n if (selectedAssetKeys.includes(softSelectedAssetKey)) {\n onAssetUnselected(softSelectedAssetKey);\n } else {\n onAssetSelected(softSelectedAssetKey);\n }\n }\n },\n [\n assets,\n softSelectedAssetKey,\n onAssetSoftSelectedChanged,\n selectedAssetKeys,\n assetGalleryCompactRef\n ]\n );\n\n const handleClick = useCallback(() => {\n onAssetSoftSelectedChanged(null);\n }, []);\n\n // Add event listeners for keyboard navigation (soft select)\n useEffect(() => {\n if (softSelectable) {\n document.addEventListener('keydown', handleKeyPress);\n }\n\n return () => document.removeEventListener('keydown', handleKeyPress);\n }, [softSelectable, handleKeyPress]);\n\n useEffect(() => {\n if (softSelectable && softSelectedAssetKey !== null) {\n document.addEventListener('click', handleClick, true);\n }\n\n return () => document.removeEventListener('click', handleClick, true);\n }, [softSelectable, softSelectedAssetKey, handleClick]);\n\n return (\n <>\n <S.AssetGalleryBase\n ref={assetGalleryCompactRef}\n style={{ height: `${totalGalleryHeight}px` }}\n className={props.className}\n {...props}\n >\n {assets.map(\n asset =>\n asset.layout.show && (\n <React.Fragment key={`asset-gallery-${asset.layout.type}-${asset.key}`}>\n {asset.layout.type === 'groupLabel' && (\n <S.GroupLabel\n style={{\n transform: `translate3d(${asset.layout.translateX}px,${asset.layout.translateY}px, 0)`,\n height: `${asset.layout.height}px`\n }}\n >\n {asset.title}\n </S.GroupLabel>\n )}\n\n {asset.layout.type === 'asset' && (\n <S.AssetGalleryCardBase\n style={{\n transform: `translate3d(${asset.layout.translateX}px, ${asset.layout.translateY}px, 0)`,\n width: `${asset.layout.width}px`,\n height: `${asset.layout.height}px`,\n display: 'flex',\n justifyContent: 'center'\n }}\n >\n {viewMode === 'grid' ? (\n <AssetGalleryGridCard\n asset={asset}\n selectable={'selectable' in asset ? asset.selectable : selectable}\n selected={selectedAssetKeys.includes(asset.key)}\n customSelectedBorder={customSelectedBorder}\n extendedSelectMode={Boolean(selectedAssetKeys.length)}\n onAssetSelected={onAssetSelected}\n onAssetUnselected={onAssetUnselected}\n softSelected={softSelectedAssetKey === asset.key}\n component={component}\n />\n ) : (\n <AssetGalleryCompactCard\n asset={asset}\n activeSummaryCard={activeSummaryCard}\n displayIcon={displayIcon}\n hasHeightAndWidth={asset.layout.hasHeightAndWidth}\n collapseExtraInfo={asset.layout.width < 90}\n selectable={'selectable' in asset ? asset.selectable : selectable}\n selected={selectedAssetKeys.includes(asset.key)}\n customSelectedBorder={customSelectedBorder}\n extendedSelectMode={Boolean(selectedAssetKeys.length)}\n onAssetSelected={onAssetSelected}\n onAssetUnselected={onAssetUnselected}\n softSelected={softSelectedAssetKey === asset.key}\n component={component}\n />\n )}\n </S.AssetGalleryCardBase>\n )}\n </React.Fragment>\n )\n )}\n </S.AssetGalleryBase>\n </>\n );\n});\n\nAssetGalleryBase.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n assets: PropTypes.arrayOf(PropTypes.shape(assetShape)),\n\n /**\n * Whether the asset gallery should render the Asset Summary Card on hover.\n */\n activeSummaryCard: PropTypes.bool,\n\n /**\n * Whether the asset gallery should display the Version Count or Verifications on default.\n */\n displayIcon: PropTypes.string,\n\n /**\n * The view mode of the gallery.\n */\n viewMode: PropTypes.oneOf(['compact', 'grid']),\n\n /**\n * The maximum height of thumbnails in the gallery. When the grid is computed the gallery will try\n * to have each row of the gallery as close to the max height as possible.\n */\n thumbnailMaxHeight: PropTypes.number,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: 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 * An array containing the key of all selected assets\n */\n selectedAssetKeys: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.number)\n ]).isRequired,\n\n /**\n * Scrollable element to attach event listeners to. Defaults to window.\n */\n scrollElement: PropTypes.instanceOf(Element),\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 * Whether or not the asset gallery should have soft selectable asset cards\n */\n softSelectable: PropTypes.bool,\n\n /**\n * A value containing the key of the soft selected asset or null\n */\n softSelectedAssetKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * The callback function when soft selected asset changes - returns the selected asset key or null\n */\n onAssetSoftSelectedChanged: PropTypes.func.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 * Optional className\n */\n className: PropTypes.string\n};\n\nexport default AssetGalleryBase;\n"],"names":["AssetGalleryBase","React","forwardRef","assets","assetsProp","activeSummaryCard","displayIcon","viewMode","thumbnailMaxHeight","selectable","customSelectedBorder","selectedAssetKeys","onAssetSelected","onAssetUnselected","softSelectable","softSelectedAssetKey","scrollElement","scrollElementProp","onAssetSoftSelectedChanged","component","props","forwardedRef","assetGalleryDOMNode","useRef","assetGalleryCompactRef","useMergedRefs","assetGalleryWidth","minimumRowAspectRatio","calculatedAssets","setAssets","useState","MAXIMUM_ROW_HEIGHT","useMemo","SPACE_BETWEEN_ASSETS","SPACE_UNDER_ASSETS","PRIMARY_SCROLL_BUFFER_HEIGHT","SECONDARY_SCROLL_BUFFER_HEIGHT","GRID_VIEW_MODE_ASSET_MIN_WIDTH","GRID_VIEW_MODE_ASSET_HEIGHT","GRID_VIEW_MODE_INSTRUCTION_EXTRA_HEIGHT","MISSING_WIDTH_PLACEHOLDER","MISSING_HEIGHT_PLACEHOLDER","isBrowser","window","previousYOffset","pageYOffset","latestYOffset","scrollDirection","useIsomorphicLayoutEffect","current","throttledOnResize","throttle","onResize","resizeObserver","ResizeObserver","observe","entries","forEach","entry","contentRect","width","requestAnimationFrame","main","unobserve","useEffect","calculateAssetGalleryAspectRatio","calculateLayout","calculateVisibility","calculateAspectRatio","assetsWithoutAKey","filter","a","key","length","console","warn","row","translateX","translateY","computedAssets","lastGroup","desiredAssetCountInRow","Math","floor","desiredAssetWidth","asset","index","group","push","title","layout","type","height","round","rowHasInstructions","some","imageRights","rowHeight","rowAsset","rowAspectRatio","max","totalDesiredWidthOfImages","assetWidth","hasHeightAndWidth","Boolean","totalGalleryHeight","lastAsset","throttledOnScroll","onScroll","addEventListener","removeEventListener","setScrollPositionAndDirection","newYOffset","bufferTop","bufferBottom","containerOffset","getOffsetTop","scrollerHeight","innerHeight","yOffset","minTranslateYPlusHeight","maxTranslateY","finalizedAssets","map","self","show","elem","offsetTop","isNaN","offsetParent","handleKeyPress","useCallback","e","isElementVisible","el","rect","getBoundingClientRect","vWidth","innerWidth","document","documentElement","clientWidth","vHeight","clientHeight","efp","x","y","elementFromPoint","right","bottom","left","top","contains","softSelectFirstVisibleAsset","visibleAssets","i","children","previousAssetIndex","findIndex","previousAsset","nextAssetIndex","nextAsset","includes","handleClick","createElement","Fragment","S","_extends","ref","style","className","transform","display","justifyContent","AssetGalleryGridCard","selected","extendedSelectMode","softSelected","AssetGalleryCompactCard","collapseExtraInfo","propTypes","process","env","NODE_ENV","PropTypes","arrayOf","shape","assetShape","bool","string","oneOf","number","oneOfType","isRequired","instanceOf","Element","func"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetGalleryBase.js","sources":["../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { throttle } from 'lodash';\nimport PropTypes from 'prop-types';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { assetShape } from '../asset.propType';\nimport useIsomorphicLayoutEffect from './../../../../hooks/useIsomorphicLayoutEffect';\nimport * as S from './AssetGalleryBase.styled';\nimport AssetGalleryCompactCard from './AssetGalleryCompactCard/AssetGalleryCompactCard';\nimport AssetGalleryGridCard from './AssetGalleryGridCard/AssetGalleryGridCard';\nconst AssetGalleryBase = React.forwardRef(function AssetGalleryBase(\n {\n assets: assetsProp,\n activeSummaryCard,\n displayIcon,\n viewMode,\n thumbnailMaxHeight,\n selectable,\n customSelectedBorder,\n selectedAssetKeys,\n onAssetSelected,\n onAssetUnselected,\n softSelectable,\n softSelectedAssetKey,\n scrollElement: scrollElementProp,\n onAssetSoftSelectedChanged,\n component,\n ...props\n },\n forwardedRef\n) {\n // Combine forwarded ref and the local ref\n const assetGalleryDOMNode = useRef();\n const assetGalleryCompactRef = useMergedRefs(forwardedRef, assetGalleryDOMNode);\n\n const assetGalleryWidth = useRef(0);\n const minimumRowAspectRatio = useRef(0);\n\n // Calculated assets\n const calculatedAssets = useRef([]);\n const [assets, setAssets] = useState([]);\n\n // Constants\n const MAXIMUM_ROW_HEIGHT = useMemo(\n () => (viewMode === 'grid' ? 450 : thumbnailMaxHeight),\n [viewMode, thumbnailMaxHeight]\n );\n const SPACE_BETWEEN_ASSETS = 8;\n const SPACE_UNDER_ASSETS = 8;\n const PRIMARY_SCROLL_BUFFER_HEIGHT = 1500;\n const SECONDARY_SCROLL_BUFFER_HEIGHT = 500;\n const GRID_VIEW_MODE_ASSET_MIN_WIDTH = 300;\n const GRID_VIEW_MODE_ASSET_HEIGHT = 526;\n const MISSING_WIDTH_PLACEHOLDER = 1920;\n const MISSING_HEIGHT_PLACEHOLDER = 1080;\n\n const isBrowser = typeof window !== 'undefined';\n\n const scrollElement = scrollElementProp || window;\n\n // Scroll position and direction\n const previousYOffset = useRef(isBrowser ? scrollElement.pageYOffset : 0);\n const latestYOffset = useRef(isBrowser ? scrollElement.pageYOffset : 0);\n const scrollDirection = useRef('down');\n\n // Track resize changes and set the current Asset Gallery width\n useIsomorphicLayoutEffect(() => {\n if (!assetGalleryDOMNode.current) return;\n\n const throttledOnResize = throttle(onResize, 1);\n\n const resizeObserver = new ResizeObserver(throttledOnResize);\n\n resizeObserver.observe(assetGalleryDOMNode.current);\n\n function onResize(entries) {\n entries.forEach(entry => {\n // setAssetGalleryWidth(entry.contentRect.width);\n if (assetGalleryWidth.current === entry.contentRect.width) return;\n window.requestAnimationFrame(() => {\n assetGalleryWidth.current = entry.contentRect.width;\n main();\n });\n });\n }\n\n return () => {\n resizeObserver.unobserve(assetGalleryDOMNode.current);\n };\n }, [assetsProp, assetGalleryDOMNode, MAXIMUM_ROW_HEIGHT]);\n\n //Re calculate Asset Gallery when something changes `MAXIMUM_ROW_HEIGHT` or `assetsProp` changes\n useEffect(() => {\n main();\n }, [MAXIMUM_ROW_HEIGHT, assetsProp]);\n\n const main = () => {\n calculateAssetGalleryAspectRatio();\n calculateLayout();\n calculateVisibility();\n };\n\n const calculateAssetGalleryAspectRatio = () => {\n // We don't care to compute the aspect ratio if the width of the gallery is 0\n if (assetGalleryWidth.current > 0) {\n minimumRowAspectRatio.current = calculateAspectRatio(\n assetGalleryWidth.current,\n MAXIMUM_ROW_HEIGHT\n );\n }\n };\n\n // Calculate asset gallery layout\n const calculateLayout = () => {\n // Check for required attributes and omit assets that are missing the attribute\n const assetsWithoutAKey = assetsProp.filter(a => !a.key);\n if (assetsWithoutAKey.length > 0) {\n assetsProp = assetsProp.filter(a => a.key);\n assetsWithoutAKey.forEach(a =>\n console.warn(\n 'Omitted asset from the gallery because it was missing the unique `key` property.',\n a\n )\n );\n }\n\n if (viewMode === 'grid' && assetGalleryWidth.current > 0) {\n // State\n let row = []; // The list of images in the current row.\n let translateX = 0; // The current translateX value that we are at\n let translateY = 0; // The current translateY value that we are at\n const computedAssets = [];\n let lastGroup = null; // The last group that was created\n\n // Calculate how many assets we can put in a row before violating `ASSET_MIN_WIDTH`\n // but we always want minimum of 1 asset in a row\n const desiredAssetCountInRow =\n Math.floor(assetGalleryWidth.current / GRID_VIEW_MODE_ASSET_MIN_WIDTH) || 1;\n\n // Calculate the width of each asset in a row\n const desiredAssetWidth =\n assetGalleryWidth.current / desiredAssetCountInRow -\n SPACE_BETWEEN_ASSETS +\n SPACE_BETWEEN_ASSETS / desiredAssetCountInRow;\n\n assetsProp.forEach((asset, index) => {\n // Create a group label\n if (asset.group && asset.group !== lastGroup) {\n computedAssets.push({\n title: asset.group,\n key: asset.key,\n layout: {\n type: 'groupLabel',\n height: 50,\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n lastGroup = asset.group;\n translateY += 50 + SPACE_UNDER_ASSETS;\n }\n\n row.push(asset);\n\n if (\n row.length === desiredAssetCountInRow ||\n index + 1 === assetsProp.length ||\n (assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group)\n ) {\n const rowHeight = GRID_VIEW_MODE_ASSET_HEIGHT;\n\n row.forEach(rowAsset => {\n computedAssets.push({\n ...rowAsset,\n layout: {\n type: 'asset', // Indicates that this is an asset and not a group label\n width: Math.round(desiredAssetWidth),\n height: Math.round(rowHeight),\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n\n translateX += desiredAssetWidth + SPACE_BETWEEN_ASSETS;\n });\n\n row = [];\n translateX = 0;\n translateY += rowHeight + SPACE_UNDER_ASSETS;\n }\n });\n\n calculatedAssets.current = computedAssets;\n } else {\n if (minimumRowAspectRatio.current > 0) {\n // State\n let row = []; // The list of images in the current row.\n let translateX = 0; // The current translateX value that we are at\n let translateY = 0; // The current translateY value that we are at\n let rowAspectRatio = 0; // The aspect ratio of the row we are building\n let lastGroup = null; // The last group that was created\n\n const computedAssets = [];\n\n // Loop through all our images, building them up into rows and computing\n // the working rowAspectRatio.\n assetsProp.forEach((asset, index) => {\n // Create a group label\n if (asset.group && asset.group !== lastGroup) {\n computedAssets.push({\n title: asset.group,\n key: asset.key,\n layout: {\n type: 'groupLabel',\n height: 50,\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n lastGroup = asset.group;\n translateY += 50 + SPACE_UNDER_ASSETS;\n }\n\n rowAspectRatio += calculateAspectRatio(\n asset.width || MISSING_WIDTH_PLACEHOLDER,\n asset.height || MISSING_HEIGHT_PLACEHOLDER\n );\n\n row.push(asset);\n\n // End the row if any of the conditions match\n if (\n rowAspectRatio >= minimumRowAspectRatio.current ||\n index + 1 === assetsProp.length ||\n (assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group)\n ) {\n // Make sure that the last row also has a reasonable height\n rowAspectRatio = Math.max(rowAspectRatio, minimumRowAspectRatio.current);\n\n // Compute this row's height.\n const totalDesiredWidthOfImages =\n assetGalleryWidth.current - SPACE_BETWEEN_ASSETS * (row.length - 1);\n const rowHeight = totalDesiredWidthOfImages / rowAspectRatio;\n\n row.forEach(rowAsset => {\n const assetWidth =\n rowHeight *\n calculateAspectRatio(\n rowAsset.width || MISSING_WIDTH_PLACEHOLDER,\n rowAsset.height || MISSING_HEIGHT_PLACEHOLDER\n );\n\n computedAssets.push({\n ...rowAsset,\n layout: {\n type: 'asset', // Indicates that this is an asset an not a group label\n width: Math.round(assetWidth),\n height: Math.round(rowHeight),\n translateX: Math.round(translateX),\n translateY: Math.round(translateY),\n hasHeightAndWidth: Boolean(rowAsset.width && rowAsset.height)\n }\n });\n\n // The next image is `SPACE_BETWEEN_ASSETS` pixels to the right of this image.\n translateX += assetWidth + SPACE_BETWEEN_ASSETS;\n });\n\n // Reset our state variables for next row.\n row = [];\n rowAspectRatio = 0;\n translateY += rowHeight + SPACE_UNDER_ASSETS;\n translateX = 0;\n }\n });\n\n calculatedAssets.current = computedAssets;\n }\n }\n };\n\n // Utility function to calculate the aspect ratio of a width and height\n function calculateAspectRatio(width, height) {\n return width / height;\n }\n\n // Calculate the total height of the gallery\n const totalGalleryHeight = useMemo(() => {\n if (assets.length === 0) {\n return 0;\n }\n\n const lastAsset = assets[assets.length - 1];\n\n if (assets.length < 8) {\n return (lastAsset.layout.translateY + lastAsset.layout.height) * 2;\n }\n\n return lastAsset.layout.translateY + lastAsset.layout.height;\n }, [assets]);\n\n useEffect(() => {\n const throttledOnScroll = throttle(onScroll, 200);\n\n scrollElement.addEventListener('scroll', throttledOnScroll, false);\n return () => scrollElement.removeEventListener('scroll', throttledOnScroll, false);\n }, [assetGalleryDOMNode, calculatedAssets]);\n\n function onScroll() {\n setScrollPositionAndDirection();\n calculateVisibility();\n }\n\n function setScrollPositionAndDirection() {\n const newYOffset = scrollElement.pageYOffset;\n previousYOffset.current = latestYOffset.current;\n latestYOffset.current = newYOffset;\n scrollDirection.current = latestYOffset.current > previousYOffset.current ? 'down' : 'up';\n }\n\n /**\n * +---------------------------+\n * | |\n * | |\n * | |\n * | |\n * + - - - - - - - - - - - - - + -------\n * | | A\n * | Secondary Buffer | SECONDARY_SCROLL_BUFFER_HEIGHT\n * | | V\n * +---------------------------+ -------\n * | | A\n * | | |\n * | | |\n * | Viewport | window.innerHeight\n * | | |\n * | | |\n * | | V\n * +---------------------------+ -------\n * | | A\n * | | |\n * | | |\n * | | |\n * | Primary Buffer | PRIMARY_SCROLL_BUFFER_HEIGHT\n * | | |\n * | | |\n * | | |\n * | | V\n * + - - - - - - - - - - - - - + -------\n * | |\n * | (Scroll direction) |\n * | | |\n * | | |\n * | V |\n * | |\n *\n */\n\n const calculateVisibility = () => {\n if (!assetGalleryDOMNode.current) return;\n\n // Get the top and bottom buffers heights.\n const bufferTop =\n scrollDirection.current === 'up'\n ? PRIMARY_SCROLL_BUFFER_HEIGHT\n : SECONDARY_SCROLL_BUFFER_HEIGHT;\n\n const bufferBottom =\n scrollDirection.current === 'up'\n ? SECONDARY_SCROLL_BUFFER_HEIGHT\n : PRIMARY_SCROLL_BUFFER_HEIGHT;\n\n const containerOffset = getOffsetTop(assetGalleryDOMNode.current);\n const scrollerHeight = scrollElement.innerHeight;\n\n const yOffset = latestYOffset.current;\n\n // This is the top of the top buffer. If the bottom of an image is above\n // this line, it will be removed.\n const minTranslateYPlusHeight = yOffset - containerOffset - bufferTop;\n\n // This is the bottom of the bottom buffer. If the top of an image is\n // below this line, it will be removed.\n const maxTranslateY = yOffset - containerOffset + scrollerHeight + bufferBottom;\n\n const finalizedAssets = calculatedAssets.current.map(asset => {\n if (\n scrollElement.self == window &&\n (asset.layout.translateY + asset.layout.height < minTranslateYPlusHeight ||\n asset.layout.translateY > maxTranslateY)\n ) {\n // Hide Image\n asset.layout.show = false;\n } else {\n // Show Image\n asset.layout.show = true;\n }\n\n return asset;\n });\n\n setAssets(finalizedAssets);\n };\n\n // Utility function that returns the distance from `elem` to the top of the page.\n // This is done by walking up the node tree, getting the offsetTop of each\n // parent node, until the top of the page.\n function getOffsetTop(elem) {\n let offsetTop = 0;\n do {\n if (!isNaN(elem.offsetTop)) {\n offsetTop += elem.offsetTop;\n }\n elem = elem.offsetParent;\n } while (elem);\n return offsetTop;\n }\n\n const handleKeyPress = useCallback(\n e => {\n function isElementVisible(el) {\n const rect = el.getBoundingClientRect(),\n vWidth = scrollElement.innerWidth || document.documentElement.clientWidth,\n vHeight = scrollElement.innerHeight || document.documentElement.clientHeight,\n efp = function (x, y) {\n return document.elementFromPoint(x, y);\n };\n\n // Return false if it's not in the viewport\n if (rect.right < 0 || rect.bottom < 0 || rect.left > vWidth || rect.top > vHeight)\n return false;\n\n // Return true if any of its four corners are visible\n return (\n el.contains(efp(rect.left, rect.top)) ||\n el.contains(efp(rect.right, rect.top)) ||\n el.contains(efp(rect.right, rect.bottom)) ||\n el.contains(efp(rect.left, rect.bottom))\n );\n }\n\n function softSelectFirstVisibleAsset() {\n const visibleAssets = assets.filter(asset => asset.layout.show);\n\n for (let i = 0; i < assetGalleryDOMNode.current.children.length; i++) {\n if (isElementVisible(assetGalleryDOMNode.current.children[i])) {\n onAssetSoftSelectedChanged(visibleAssets[i].key);\n break;\n }\n }\n }\n\n if (assets.length === 0) return;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n if (softSelectedAssetKey === null) {\n softSelectFirstVisibleAsset();\n\n return;\n }\n }\n\n if (e.key === 'ArrowLeft') {\n const previousAssetIndex =\n assets.findIndex(asset => asset.key === softSelectedAssetKey) - 1;\n\n const previousAsset = assets[previousAssetIndex];\n\n if (previousAsset) {\n if (previousAsset.layout.show) {\n onAssetSoftSelectedChanged(previousAsset.key);\n } else {\n softSelectFirstVisibleAsset();\n }\n }\n\n return;\n }\n\n if (e.key === 'ArrowRight') {\n const nextAssetIndex = assets.findIndex(asset => asset.key === softSelectedAssetKey) + 1;\n\n const nextAsset = assets[nextAssetIndex];\n\n if (nextAsset) {\n if (nextAsset.layout.show) {\n onAssetSoftSelectedChanged(nextAsset.key);\n } else {\n softSelectFirstVisibleAsset();\n }\n }\n\n return;\n }\n\n if (e.key === 'Enter') {\n if (softSelectedAssetKey === null) return;\n\n if (selectedAssetKeys.includes(softSelectedAssetKey)) {\n onAssetUnselected(softSelectedAssetKey);\n } else {\n onAssetSelected(softSelectedAssetKey);\n }\n }\n },\n [\n assets,\n softSelectedAssetKey,\n onAssetSoftSelectedChanged,\n selectedAssetKeys,\n assetGalleryCompactRef\n ]\n );\n\n const handleClick = useCallback(() => {\n onAssetSoftSelectedChanged(null);\n }, []);\n\n // Add event listeners for keyboard navigation (soft select)\n useEffect(() => {\n if (softSelectable) {\n document.addEventListener('keydown', handleKeyPress);\n }\n\n return () => document.removeEventListener('keydown', handleKeyPress);\n }, [softSelectable, handleKeyPress]);\n\n useEffect(() => {\n if (softSelectable && softSelectedAssetKey !== null) {\n document.addEventListener('click', handleClick, true);\n }\n\n return () => document.removeEventListener('click', handleClick, true);\n }, [softSelectable, softSelectedAssetKey, handleClick]);\n\n return (\n <>\n <S.AssetGalleryBase\n ref={assetGalleryCompactRef}\n style={{ height: `${totalGalleryHeight}px` }}\n className={props.className}\n {...props}\n >\n {assets.map(\n asset =>\n asset.layout.show && (\n <React.Fragment key={`asset-gallery-${asset.layout.type}-${asset.key}`}>\n {asset.layout.type === 'groupLabel' && (\n <S.GroupLabel\n style={{\n transform: `translate3d(${asset.layout.translateX}px,${asset.layout.translateY}px, 0)`,\n height: `${asset.layout.height}px`\n }}\n >\n {asset.title}\n </S.GroupLabel>\n )}\n\n {asset.layout.type === 'asset' && (\n <S.AssetGalleryCardBase\n style={{\n transform: `translate3d(${asset.layout.translateX}px, ${asset.layout.translateY}px, 0)`,\n width: `${asset.layout.width}px`,\n height: `${asset.layout.height}px`,\n display: 'flex',\n justifyContent: 'center'\n }}\n >\n {viewMode === 'grid' ? (\n <AssetGalleryGridCard\n asset={asset}\n selectable={'selectable' in asset ? asset.selectable : selectable}\n selected={selectedAssetKeys.includes(asset.key)}\n customSelectedBorder={customSelectedBorder}\n extendedSelectMode={Boolean(selectedAssetKeys.length)}\n onAssetSelected={onAssetSelected}\n onAssetUnselected={onAssetUnselected}\n softSelected={softSelectedAssetKey === asset.key}\n component={component}\n />\n ) : (\n <AssetGalleryCompactCard\n asset={asset}\n activeSummaryCard={activeSummaryCard}\n displayIcon={displayIcon}\n hasHeightAndWidth={asset.layout.hasHeightAndWidth}\n collapseExtraInfo={asset.layout.width < 90}\n selectable={'selectable' in asset ? asset.selectable : selectable}\n selected={selectedAssetKeys.includes(asset.key)}\n customSelectedBorder={customSelectedBorder}\n extendedSelectMode={Boolean(selectedAssetKeys.length)}\n onAssetSelected={onAssetSelected}\n onAssetUnselected={onAssetUnselected}\n softSelected={softSelectedAssetKey === asset.key}\n component={component}\n />\n )}\n </S.AssetGalleryCardBase>\n )}\n </React.Fragment>\n )\n )}\n </S.AssetGalleryBase>\n </>\n );\n});\n\nAssetGalleryBase.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n assets: PropTypes.arrayOf(PropTypes.shape(assetShape)),\n\n /**\n * Whether the asset gallery should render the Asset Summary Card on hover.\n */\n activeSummaryCard: PropTypes.bool,\n\n /**\n * Whether the asset gallery should display the Version Count or Verifications on default.\n */\n displayIcon: PropTypes.string,\n\n /**\n * The view mode of the gallery.\n */\n viewMode: PropTypes.oneOf(['compact', 'grid']),\n\n /**\n * The maximum height of thumbnails in the gallery. When the grid is computed the gallery will try\n * to have each row of the gallery as close to the max height as possible.\n */\n thumbnailMaxHeight: PropTypes.number,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: 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 * An array containing the key of all selected assets\n */\n selectedAssetKeys: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.number)\n ]).isRequired,\n\n /**\n * Scrollable element to attach event listeners to. Defaults to window.\n */\n scrollElement: PropTypes.instanceOf(Element),\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 * Whether or not the asset gallery should have soft selectable asset cards\n */\n softSelectable: PropTypes.bool,\n\n /**\n * A value containing the key of the soft selected asset or null\n */\n softSelectedAssetKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * The callback function when soft selected asset changes - returns the selected asset key or null\n */\n onAssetSoftSelectedChanged: PropTypes.func.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 * Optional className\n */\n className: PropTypes.string\n};\n\nexport default AssetGalleryBase;\n"],"names":["AssetGalleryBase","React","forwardRef","assets","assetsProp","activeSummaryCard","displayIcon","viewMode","thumbnailMaxHeight","selectable","customSelectedBorder","selectedAssetKeys","onAssetSelected","onAssetUnselected","softSelectable","softSelectedAssetKey","scrollElement","scrollElementProp","onAssetSoftSelectedChanged","component","props","forwardedRef","assetGalleryDOMNode","useRef","assetGalleryCompactRef","useMergedRefs","assetGalleryWidth","minimumRowAspectRatio","calculatedAssets","setAssets","useState","MAXIMUM_ROW_HEIGHT","useMemo","SPACE_BETWEEN_ASSETS","SPACE_UNDER_ASSETS","PRIMARY_SCROLL_BUFFER_HEIGHT","SECONDARY_SCROLL_BUFFER_HEIGHT","GRID_VIEW_MODE_ASSET_MIN_WIDTH","GRID_VIEW_MODE_ASSET_HEIGHT","MISSING_WIDTH_PLACEHOLDER","MISSING_HEIGHT_PLACEHOLDER","isBrowser","window","previousYOffset","pageYOffset","latestYOffset","scrollDirection","useIsomorphicLayoutEffect","current","throttledOnResize","throttle","onResize","resizeObserver","ResizeObserver","observe","entries","forEach","entry","contentRect","width","requestAnimationFrame","main","unobserve","useEffect","calculateAssetGalleryAspectRatio","calculateLayout","calculateVisibility","calculateAspectRatio","assetsWithoutAKey","filter","a","key","length","console","warn","row","translateX","translateY","computedAssets","lastGroup","desiredAssetCountInRow","Math","floor","desiredAssetWidth","asset","index","group","push","title","layout","type","height","round","rowHeight","rowAsset","rowAspectRatio","max","totalDesiredWidthOfImages","assetWidth","hasHeightAndWidth","Boolean","totalGalleryHeight","lastAsset","throttledOnScroll","onScroll","addEventListener","removeEventListener","setScrollPositionAndDirection","newYOffset","bufferTop","bufferBottom","containerOffset","getOffsetTop","scrollerHeight","innerHeight","yOffset","minTranslateYPlusHeight","maxTranslateY","finalizedAssets","map","self","show","elem","offsetTop","isNaN","offsetParent","handleKeyPress","useCallback","e","isElementVisible","el","rect","getBoundingClientRect","vWidth","innerWidth","document","documentElement","clientWidth","vHeight","clientHeight","efp","x","y","elementFromPoint","right","bottom","left","top","contains","softSelectFirstVisibleAsset","visibleAssets","i","children","previousAssetIndex","findIndex","previousAsset","nextAssetIndex","nextAsset","includes","handleClick","createElement","Fragment","S","_extends","ref","style","className","transform","display","justifyContent","AssetGalleryGridCard","selected","extendedSelectMode","softSelected","AssetGalleryCompactCard","collapseExtraInfo","propTypes","process","env","NODE_ENV","PropTypes","arrayOf","shape","assetShape","bool","string","oneOf","number","oneOfType","isRequired","instanceOf","Element","func"],"mappings":"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"}
|
package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js
CHANGED
|
@@ -4,10 +4,10 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import React__default, { useEffect, useCallback, useRef } from 'react';
|
|
5
5
|
import { trackWindowScroll, LazyLoadComponent, LazyLoadImage } from 'react-lazy-load-image-component';
|
|
6
6
|
import { ReactComponent as SvgCheckRectangleFilled } from '../../../../icons/check-rectangle-filled.svg.js';
|
|
7
|
+
import { ReactComponent as SvgCheckRectangleOutline } from '../../../../icons/check-rectangle-outline.svg.js';
|
|
7
8
|
import { ReactComponent as SvgHeadset } from '../../../../icons/headset.svg.js';
|
|
8
9
|
import { ReactComponent as SvgLayers } from '../../../../icons/layers.svg.js';
|
|
9
10
|
import { ReactComponent as SvgPlay } from '../../../../icons/play.svg.js';
|
|
10
|
-
import { ReactComponent as SvgWarningCircle } from '../../../../icons/warning-circle.svg.js';
|
|
11
11
|
import { convertMsToHMS } from '../../../../utils/dateTime.js';
|
|
12
12
|
import '../../../../data/Alert/Alert.js';
|
|
13
13
|
import Badge from '../../../../data/Badge/Badge.js';
|
|
@@ -33,9 +33,9 @@ import '../../../../inputs/MultiLevelCheckbox/types.js';
|
|
|
33
33
|
import '../../../../inputs/MultiLevelCheckboxSelect/MultiLevelCheckboxSelect.js';
|
|
34
34
|
import ContextMenu from '../../../ContextMenu/ContextMenu.js';
|
|
35
35
|
import ContextMenuItem from '../../../ContextMenu/ContextMenuItem/ContextMenuItem.js';
|
|
36
|
-
import SummaryCard from '../../../SummaryCard/SummaryCard.js';
|
|
37
36
|
import { assetShapeWithLayout } from '../../asset.propType.js';
|
|
38
|
-
import { AssetGalleryWrapper, AssetGalleryGridCard as AssetGalleryGridCard$2,
|
|
37
|
+
import { AssetGalleryWrapper, AssetGalleryGridCard as AssetGalleryGridCard$2, HorizontalBar, HorizontalBarLeft, HorizontalBarRight, StatusIconCircle, ThumbnailRow, ThumbnailSpacer, ThumbnailWrapper, ThumbnailBox, ThumbnailSelectedOverlay, ConsumerOverlay, ActionsContainer, Action, CardBody, CardTitle, CardDescription, InstructionsWrapper, CardDivider, CardFooter, CardFooterLeft, CardFooterRight, CheckboxRow, CheckboxButton } from './AssetGalleryGridCard.styled.js';
|
|
38
|
+
import InstructionSeverityDisplay from '../../../InstructionSeverityDisplay/InstructionSeverityDisplay.js';
|
|
39
39
|
|
|
40
40
|
const ComputedRootComponent = ({
|
|
41
41
|
component,
|
|
@@ -84,25 +84,25 @@ const ComputedActionButton = React__default.forwardRef(function ComputedActionBu
|
|
|
84
84
|
zIndex: 10001,
|
|
85
85
|
offset: [0, -8]
|
|
86
86
|
}, React__default.createElement(ActionButton, {
|
|
87
|
-
useShadow:
|
|
87
|
+
useShadow: false,
|
|
88
88
|
active: true,
|
|
89
89
|
ref: forwardedRef,
|
|
90
90
|
className: className,
|
|
91
91
|
icon: newProps.icon,
|
|
92
92
|
backgroundColors: ['black', 'white'],
|
|
93
93
|
onClick: newProps.onClick,
|
|
94
|
-
actionWidthHeight:
|
|
94
|
+
actionWidthHeight: [40, 40]
|
|
95
95
|
}));
|
|
96
96
|
} else {
|
|
97
97
|
newProps.children = React__default.createElement(ActionButton, {
|
|
98
|
-
useShadow:
|
|
98
|
+
useShadow: false,
|
|
99
99
|
active: true,
|
|
100
100
|
ref: forwardedRef,
|
|
101
101
|
className: className,
|
|
102
102
|
icon: newProps.icon,
|
|
103
103
|
onClick: newProps.onClick,
|
|
104
104
|
backgroundColors: ['black', 'white'],
|
|
105
|
-
actionWidthHeight:
|
|
105
|
+
actionWidthHeight: [40, 40]
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
108
|
if (component) {
|
|
@@ -237,39 +237,7 @@ const AssetGalleryGridCard = props => {
|
|
|
237
237
|
scrollPosition: scrollPosition
|
|
238
238
|
});
|
|
239
239
|
}
|
|
240
|
-
return
|
|
241
|
-
selected: selected
|
|
242
|
-
}, previewContent, React__default.createElement(FigureOverlayBackdrop, {
|
|
243
|
-
selected: selected
|
|
244
|
-
}), React__default.createElement(Overlay, {
|
|
245
|
-
ref: cardRef
|
|
246
|
-
}, React__default.createElement(OverlayBackdrop, {
|
|
247
|
-
$softSelected: softSelected,
|
|
248
|
-
selected: selected
|
|
249
|
-
}), React__default.createElement(OverlayInfo, null, React__default.createElement(OverlayInfoTop, null, React__default.createElement(OverlayInfoTopVersions, null, renderVersionsBadge()), asset?.note?.title && !asset.statusIcon && React__default.createElement(OverlayInfoTopWarning, {
|
|
250
|
-
type: asset?.note?.type
|
|
251
|
-
}, React__default.createElement(SvgWarningCircle, null)), React__default.createElement(OverlayInfoTopActions, null, asset.statusIcon && React__default.createElement(StatusIcon, null, asset.statusIcon), asset.actions && asset.actions.map((action, index) => React__default.createElement(Tooltip, {
|
|
252
|
-
key: `${asset.key}-${action.title}`,
|
|
253
|
-
content: action.title
|
|
254
|
-
}, React__default.createElement(Action, {
|
|
255
|
-
key: `${asset.key}-${action.title}`,
|
|
256
|
-
as: ComputedActionButton,
|
|
257
|
-
component: action.component,
|
|
258
|
-
className: action.className,
|
|
259
|
-
icon: action.icon,
|
|
260
|
-
isSubActionsOpened: shouldOpenSubActions(index),
|
|
261
|
-
onClick: event => onActionClick(event, action, index),
|
|
262
|
-
subActions: action?.subActions,
|
|
263
|
-
actionWidthHeight: action.actionWidthHeight
|
|
264
|
-
}))))), React__default.createElement(OverlayInfoBottom, null, selectable && React__default.createElement(OverlayInfoBottomSelectButton, {
|
|
265
|
-
selected: selected
|
|
266
|
-
}, React__default.createElement(SvgCheckRectangleFilled, {
|
|
267
|
-
onClick: onSelectClick
|
|
268
|
-
})), React__default.createElement(OverlayInfoBottomMediaIcon, null, renderMediaBadge()))), selectable && React__default.createElement(OverlaySelected, {
|
|
269
|
-
selected: selected,
|
|
270
|
-
$softSelected: softSelected,
|
|
271
|
-
$customSelectedBorder: customSelectedBorder
|
|
272
|
-
})), asset.overlay && React__default.createElement(ConsumerDefinedOverlay, null, asset.overlay));
|
|
240
|
+
return previewContent;
|
|
273
241
|
}
|
|
274
242
|
useEffect(() => {
|
|
275
243
|
if (isFunction(asset.onContextMenu)) {
|
|
@@ -344,21 +312,51 @@ const AssetGalleryGridCard = props => {
|
|
|
344
312
|
height: 24
|
|
345
313
|
});
|
|
346
314
|
}, [asset]);
|
|
347
|
-
const
|
|
348
|
-
return React__default.createElement(
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
315
|
+
const renderThumbnail = () => {
|
|
316
|
+
return React__default.createElement(React__default.Fragment, null, React__default.createElement(HorizontalBar, null, React__default.createElement(HorizontalBarLeft, null, renderVersionsBadge()), React__default.createElement(HorizontalBarRight, null, asset.statusIcon && React__default.createElement(StatusIconCircle, null, asset.statusIcon))), React__default.createElement(ThumbnailRow, null, React__default.createElement(ThumbnailSpacer, null), React__default.createElement(ThumbnailWrapper, null, React__default.createElement(ThumbnailBox, null, renderPreview(asset), React__default.createElement(ThumbnailSelectedOverlay, {
|
|
317
|
+
selected: selected
|
|
318
|
+
}), asset.overlay && React__default.createElement(ConsumerOverlay, null, asset.overlay))), React__default.createElement(ActionsContainer, null, (asset.actions ?? []).map((action, index) => React__default.createElement(Tooltip, {
|
|
319
|
+
key: `${asset.key}-${action.title}`,
|
|
320
|
+
content: action.title
|
|
321
|
+
}, React__default.createElement(Action, null, React__default.createElement(ComputedActionButton, {
|
|
322
|
+
component: action.component,
|
|
323
|
+
className: action.className,
|
|
324
|
+
icon: action.icon,
|
|
325
|
+
isSubActionsOpened: shouldOpenSubActions(index),
|
|
326
|
+
onClick: event => onActionClick(event, action, index),
|
|
327
|
+
subActions: action?.subActions,
|
|
328
|
+
actionWidthHeight: action.actionWidthHeight
|
|
329
|
+
})))))), React__default.createElement(HorizontalBar, null, React__default.createElement(HorizontalBarLeft, null), React__default.createElement(HorizontalBarRight, null, renderMediaBadge())));
|
|
330
|
+
};
|
|
331
|
+
const renderDetails = () => {
|
|
332
|
+
return React__default.createElement(CardBody, null, React__default.createElement(CardTitle, {
|
|
333
|
+
title: asset.title || ''
|
|
334
|
+
}, asset.title || ''), React__default.createElement(CardDescription, {
|
|
335
|
+
title: asset.description || ''
|
|
336
|
+
}, asset.description || ''), React__default.createElement(InstructionsWrapper, null, asset.imageRights && React__default.createElement(InstructionSeverityDisplay, {
|
|
337
|
+
labels: asset.instructionLabels,
|
|
338
|
+
instructionText: asset.imageRights,
|
|
339
|
+
severity: asset.instructionSeverity,
|
|
340
|
+
showCard: false,
|
|
341
|
+
padding: "0px 0px",
|
|
342
|
+
detailsFontSize: "12px",
|
|
343
|
+
bgLight: 'transparent',
|
|
344
|
+
bgDark: 'transparent',
|
|
345
|
+
maxLines: 2
|
|
346
|
+
})));
|
|
347
|
+
};
|
|
348
|
+
const renderConsentSummaryInfo = () => {
|
|
349
|
+
return React__default.createElement(React__default.Fragment, null, React__default.createElement(CardDivider, null), React__default.createElement(CardFooter, null, React__default.createElement(CardFooterLeft, null, asset.summary?.footerLeft || null), React__default.createElement(CardFooterRight, null, asset.summary?.footerRight || null)), React__default.createElement(CardDivider, null));
|
|
350
|
+
};
|
|
351
|
+
const renderCheckboxRow = () => {
|
|
352
|
+
return React__default.createElement(CheckboxRow, null, selectable && React__default.createElement(CheckboxButton, {
|
|
353
|
+
selected: selected,
|
|
354
|
+
onClick: onSelectClick
|
|
355
|
+
}, selected ? React__default.createElement(SvgCheckRectangleFilled, null) : React__default.createElement(SvgCheckRectangleOutline, null)));
|
|
356
|
+
};
|
|
360
357
|
return React__default.createElement(AssetGalleryWrapper, {
|
|
361
|
-
disabled: asset.disabled
|
|
358
|
+
disabled: asset.disabled,
|
|
359
|
+
ref: cardRef
|
|
362
360
|
}, React__default.createElement(AssetGalleryGridCard$2, {
|
|
363
361
|
as: ComputedRootComponent,
|
|
364
362
|
component: component,
|
|
@@ -375,16 +373,7 @@ const AssetGalleryGridCard = props => {
|
|
|
375
373
|
completed: asset?.completed,
|
|
376
374
|
$hasError: asset?.hasError,
|
|
377
375
|
$customSelectedBorder: customSelectedBorder
|
|
378
|
-
},
|
|
379
|
-
layout: asset.layout,
|
|
380
|
-
ref: cardRef,
|
|
381
|
-
$softSelected: softSelected,
|
|
382
|
-
selected: selected,
|
|
383
|
-
$customSelectedBorder: customSelectedBorder
|
|
384
|
-
}, React__default.createElement(Asset, {
|
|
385
|
-
"data-id": "ss",
|
|
386
|
-
selected: selected
|
|
387
|
-
}, asset.previewUrl && renderPreview(asset)), renderSummary())));
|
|
376
|
+
}, renderThumbnail(), renderDetails(), renderConsentSummaryInfo(), renderCheckboxRow()));
|
|
388
377
|
};
|
|
389
378
|
AssetGalleryGridCard.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
390
379
|
asset: PropTypes.shape(assetShapeWithLayout).isRequired,
|
package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetGalleryGridCard.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js"],"sourcesContent":["import { get, isEmpty, isFunction, mapKeys, omit } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport {\n LazyLoadComponent,\n LazyLoadImage,\n trackWindowScroll\n} from 'react-lazy-load-image-component';\nimport {\n CheckRectangleIcon,\n HeadsetIcon,\n LayersIcon,\n PlayIcon,\n WarningCircleIcon\n} from '../../../../../icons';\nimport { convertMsToHMS } from '../../../../../utils/dateTime';\nimport { Badge, Popover, Tooltip } from '../../../../data';\nimport { ActionButton } from '../../../../inputs';\nimport ContextMenu from '../../../ContextMenu/ContextMenu';\nimport ContextMenuItem from '../../../ContextMenu/ContextMenuItem/ContextMenuItem';\nimport SummaryCard from '../../../SummaryCard/SummaryCard';\nimport { assetShapeWithLayout } from '../../asset.propType';\nimport * as S from './AssetGalleryGridCard.styled';\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(\n omit(props, [\n 'theme',\n 'extendedSelectMode',\n 'softSelected',\n '$softSelected',\n 'customSelectedBorder',\n '$customSelectedBorder',\n 'isCardHovered',\n '$isCardHovered',\n 'completed',\n '$hasError'\n ]),\n (_, key) => (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.AssetGalleryGridCard ref={newProps.ref} {...newProps} />;\n};\n\n/* eslint-disable react/prop-types */\nconst ComputedActionButton = React.forwardRef(function ComputedActionButton(\n // eslint-disable-next-line react/prop-types\n { component, className, subActions = [], isSubActionsOpened, ...props },\n forwardedRef\n) {\n const newProps = props;\n if (!isEmpty(subActions)) {\n const contextMenuItems = subActions.map((subAction, key) => {\n const { onClick, title, icon } = subAction;\n return <ContextMenuItem key={key} onClickEffect={onClick} title={title} icon={icon} />;\n });\n const contextMenu = <ContextMenu>{contextMenuItems}</ContextMenu>;\n newProps.children = (\n <Popover\n contextMenu={true}\n content={contextMenu}\n placement={'bottom-end'}\n visible={isSubActionsOpened}\n zIndex={10001}\n offset={[0, -8]}\n >\n <ActionButton\n useShadow={true}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n backgroundColors={['black', 'white']}\n onClick={newProps.onClick}\n actionWidthHeight={newProps.actionWidthHeight}\n />\n </Popover>\n );\n } else {\n newProps.children = (\n <ActionButton\n useShadow={true}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n onClick={newProps.onClick}\n backgroundColors={['black', 'white']}\n actionWidthHeight={newProps.actionWidthHeight}\n />\n );\n }\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component())) {\n return React.cloneElement(component(), { ...omit(newProps, 'icon') });\n }\n }\n\n return <React.Fragment>{newProps.children}</React.Fragment>;\n});\n/* eslint-disable react/prop-types */\n\nconst AssetGalleryGridCard = props => {\n const {\n asset,\n selectable,\n selected,\n customSelectedBorder,\n extendedSelectMode,\n onAssetSelected,\n onAssetUnselected,\n softSelected,\n component,\n scrollPosition\n } = props;\n\n const [isCardHovered, setIsCardHovered] = React.useState(false);\n const [openedSubActions, updateOpenedSubActions] = React.useState([]);\n useEffect(() => {\n const newOpenedSubActions = (asset?.actions ?? []).map(() => false);\n updateOpenedSubActions(newOpenedSubActions);\n }, [asset]);\n\n useEffect(() => {\n if (!isCardHovered && openedSubActions?.length) {\n updateOpenedSubActions(openedSubActions.map(() => false));\n }\n }, [isCardHovered]);\n\n const mouseHasEnteredCard = useCallback(() => {\n setIsCardHovered(true);\n }, []);\n\n const mouseHasLeftCard = useCallback(() => {\n setIsCardHovered(false);\n }, []);\n\n const onSubActionsViewToggle = useCallback(\n actionIndex => {\n const newOpenedSubActions = openedSubActions.map((isOpened, index) => {\n if (index !== actionIndex) {\n return false;\n }\n return !isOpened;\n });\n updateOpenedSubActions(newOpenedSubActions);\n },\n [openedSubActions]\n );\n\n const videoPlayerRef = useRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\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 mouseHasEnteredCard();\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n\n mouseHasLeftCard();\n }\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 return onAssetSelected(asset.key);\n }\n\n const onActionClick = useCallback(\n (event, action, index) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (isFunction(action?.onClick)) {\n action.onClick(asset);\n }\n\n if (!isEmpty(action?.subActions)) {\n onSubActionsViewToggle(index);\n }\n },\n [onSubActionsViewToggle]\n );\n\n const shouldOpenSubActions = useCallback(\n actionIndex => openedSubActions[actionIndex],\n [openedSubActions]\n );\n\n function onContextMenu(event) {\n event.preventDefault();\n asset.onContextMenu(event);\n }\n\n function renderPreview(asset) {\n let previewContent = null;\n\n if (asset.fileType?.toLowerCase() === 'video') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <video ref={videoPlayerRef} loop muted>\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 selected={selected}>\n {previewContent}\n <S.FigureOverlayBackdrop selected={selected} />\n <S.Overlay ref={cardRef}>\n <S.OverlayBackdrop $softSelected={softSelected} selected={selected} />\n\n <S.OverlayInfo>\n <S.OverlayInfoTop>\n <S.OverlayInfoTopVersions>{renderVersionsBadge()}</S.OverlayInfoTopVersions>\n\n {asset?.note?.title && !asset.statusIcon && (\n <S.OverlayInfoTopWarning type={asset?.note?.type}>\n <WarningCircleIcon />\n </S.OverlayInfoTopWarning>\n )}\n\n <S.OverlayInfoTopActions>\n {asset.statusIcon && <S.StatusIcon>{asset.statusIcon}</S.StatusIcon>}\n {asset.actions &&\n asset.actions.map((action, index) => (\n <Tooltip key={`${asset.key}-${action.title}`} content={action.title}>\n <S.Action\n key={`${asset.key}-${action.title}`}\n as={ComputedActionButton}\n component={action.component}\n className={action.className}\n icon={action.icon}\n isSubActionsOpened={shouldOpenSubActions(index)}\n onClick={event => onActionClick(event, action, index)}\n subActions={action?.subActions}\n actionWidthHeight={action.actionWidthHeight}\n />\n </Tooltip>\n ))}\n </S.OverlayInfoTopActions>\n </S.OverlayInfoTop>\n\n <S.OverlayInfoBottom>\n {selectable && (\n <S.OverlayInfoBottomSelectButton selected={selected}>\n <CheckRectangleIcon onClick={onSelectClick} />\n </S.OverlayInfoBottomSelectButton>\n )}\n\n <S.OverlayInfoBottomMediaIcon>{renderMediaBadge()}</S.OverlayInfoBottomMediaIcon>\n </S.OverlayInfoBottom>\n </S.OverlayInfo>\n\n {selectable && (\n <S.OverlaySelected\n selected={selected}\n $softSelected={softSelected}\n $customSelectedBorder={customSelectedBorder}\n />\n )}\n </S.Overlay>\n {asset.overlay && <S.ConsumerDefinedOverlay>{asset.overlay}</S.ConsumerDefinedOverlay>}\n </S.Figure>\n );\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 // 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 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 renderSummary = useCallback(() => {\n return (\n <SummaryCard\n activeSummaryCard={true}\n title={asset?.title || ''}\n description={asset?.description || ''}\n instructions={asset?.imageRights || ''}\n instructionSeverity={asset?.instructionSeverity}\n instructionLabels={asset?.instructionLabels}\n footerLeft={asset?.summary?.footerLeft || ''}\n footerRight={asset?.summary?.footerRight || ''}\n view={'grid'}\n />\n );\n }, [asset]);\n\n return (\n <S.AssetGalleryWrapper disabled={asset.disabled}>\n <S.AssetGalleryGridCard\n as={ComputedRootComponent}\n component={component}\n asset={asset}\n disabled={asset.disabled}\n onClick={onClick}\n extendedSelectMode={extendedSelectMode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n draggable={asset.draggable}\n innerRef={dragRef}\n selected={selected}\n $softSelected={softSelected}\n completed={asset?.completed}\n $hasError={asset?.hasError}\n $customSelectedBorder={customSelectedBorder}\n >\n <S.ContentWrapper\n layout={asset.layout}\n ref={cardRef}\n $softSelected={softSelected}\n selected={selected}\n $customSelectedBorder={customSelectedBorder}\n >\n <S.Asset data-id=\"ss\" selected={selected}>\n {asset.previewUrl && renderPreview(asset)}\n </S.Asset>\n\n {renderSummary()}\n </S.ContentWrapper>\n </S.AssetGalleryGridCard>\n </S.AssetGalleryWrapper>\n );\n};\n\nAssetGalleryGridCard.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n asset: PropTypes.shape(assetShapeWithLayout).isRequired,\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\nAssetGalleryGridCard.defaultProps = {};\n\nexport default trackWindowScroll(\n React.memo(AssetGalleryGridCard, (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 'asset.statusIcon',\n 'asset.layout',\n 'asset.imageRights',\n 'asset.instructionSeverity',\n 'asset.description',\n 'asset.title'\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","ComputedActionButton","forwardRef","className","subActions","isSubActionsOpened","forwardedRef","isEmpty","contextMenuItems","map","subAction","onClick","title","icon","ContextMenuItem","onClickEffect","contextMenu","ContextMenu","Popover","content","placement","visible","zIndex","offset","ActionButton","useShadow","active","backgroundColors","actionWidthHeight","Fragment","AssetGalleryGridCard","selectable","selected","customSelectedBorder","extendedSelectMode","onAssetSelected","onAssetUnselected","softSelected","scrollPosition","isCardHovered","setIsCardHovered","useState","openedSubActions","updateOpenedSubActions","useEffect","newOpenedSubActions","actions","length","mouseHasEnteredCard","useCallback","mouseHasLeftCard","onSubActionsViewToggle","actionIndex","isOpened","index","videoPlayerRef","useRef","cardRef","dragRef","onMouseEnter","event","current","playPromise","play","undefined","then","catch","onMouseLeave","pause","onSelectClick","preventDefault","stopPropagation","onActionClick","action","shouldOpenSubActions","onContextMenu","renderPreview","previewContent","fileType","toLowerCase","LazyLoadComponent","loop","muted","src","previewUrl","type","HeadsetIcon","LazyLoadImage","alt","height","width","delayMethod","delayTime","threshold","$softSelected","renderVersionsBadge","note","statusIcon","WarningCircleIcon","Tooltip","as","CheckRectangleIcon","renderMediaBadge","$customSelectedBorder","overlay","addEventListener","removeEventListener","onDragstart","scrollIntoView","behavior","block","versions","Badge","badgeIcon","LayersIcon","badgeContent","colors","fontSize","fontWeight","lineHeight","verticalPadding","horizontalPadding","PlayIcon","duration","convertMsToHMS","minWidth","renderSummary","SummaryCard","activeSummaryCard","description","instructions","imageRights","instructionSeverity","instructionLabels","footerLeft","summary","footerRight","view","disabled","draggable","innerRef","completed","$hasError","hasError","layout","propTypes","process","env","NODE_ENV","PropTypes","shape","assetShapeWithLayout","isRequired","bool","arrayOf","string","func","number","defaultProps","trackWindowScroll","memo","prevProps","nextProps","reactiveProps","every","propKey","get"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetGalleryGridCard.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js"],"sourcesContent":["import { get, isEmpty, isFunction, mapKeys, omit } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport {\n LazyLoadComponent,\n LazyLoadImage,\n trackWindowScroll\n} from 'react-lazy-load-image-component';\nimport {\n CheckRectangleIcon,\n CheckRectangleOutlineIcon,\n HeadsetIcon,\n LayersIcon,\n PlayIcon\n} from '../../../../../icons';\nimport { convertMsToHMS } from '../../../../../utils/dateTime';\nimport { Badge, Popover, Tooltip } from '../../../../data';\nimport { ActionButton } from '../../../../inputs';\nimport ContextMenu from '../../../ContextMenu/ContextMenu';\nimport ContextMenuItem from '../../../ContextMenu/ContextMenuItem/ContextMenuItem';\nimport { assetShapeWithLayout } from '../../asset.propType';\nimport * as S from './AssetGalleryGridCard.styled';\nimport InstructionSeverityDisplay from '../../../InstructionSeverityDisplay';\n\n/**\n >>> Section 1: renderThumbnail():\n┌─────────────────────────────────────────┐ ← S.AssetGalleryGridCard (Root)\n│[renderversionsBadge] [severityIcon]│ ← S.HorizontalBar (Top)\n├─────────────────────────────────────────┤\n│ │ │ │\n│ (spacer) │ [renderPreview]│ [action]│ ← S.ThumbnailRow (Inc. ComputedActionButton)\n│ │ │ [action]│ ← S.ActionsContainer\n│ │ │ │\n├─────────────────────────────────────────┤\n│ [renderMediaBadge] │ ← S.HorizontalBar (Bottom)\n├─────────────────────────────────────────┤\n│ | >>> Section 2: renderDetails():\n│ [asset.title] │ ← S.CardTitle\n│ [asset.description] │ ← S.CardDescription\n├─────────────────────────────────────────┤\n│ [InstructionSeverityDisplay] │ ← S.InstructionsWrapper\n| |\n| | >>> Section 3:renderConsentSummaryInfo():\n├─────────────────────────────────────────┤ ← S.CardDivider\n│ [footerLeft] [footerRight] │ ← S.CardFooter\n├─────────────────────────────────────────┤ ← S.CardDivider\n| |\n│ | >>> Section 4:renderCheckboxRow():\n│ [CheckRectangleIcon / Outline] │ ← S.CheckboxRow\n└─────────────────────────────────────────┘\n Approx Height: 536px (Updated severity card takes more space than XD Design)\n Note: Every block renders ALWAYS to maintain same height+alignment in gallery\n */\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(\n omit(props, [\n 'theme',\n 'extendedSelectMode',\n 'softSelected',\n '$softSelected',\n 'customSelectedBorder',\n '$customSelectedBorder',\n 'isCardHovered',\n '$isCardHovered',\n 'completed',\n '$hasError'\n ]),\n (_, key) => (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.AssetGalleryGridCard ref={newProps.ref} {...newProps} />;\n};\n\n/* eslint-disable react/prop-types */\nconst ComputedActionButton = React.forwardRef(function ComputedActionButton(\n // eslint-disable-next-line react/prop-types\n { component, className, subActions = [], isSubActionsOpened, ...props },\n forwardedRef\n) {\n const newProps = props;\n if (!isEmpty(subActions)) {\n const contextMenuItems = subActions.map((subAction, key) => {\n const { onClick, title, icon } = subAction;\n return <ContextMenuItem key={key} onClickEffect={onClick} title={title} icon={icon} />;\n });\n const contextMenu = <ContextMenu>{contextMenuItems}</ContextMenu>;\n newProps.children = (\n <Popover\n contextMenu={true}\n content={contextMenu}\n placement={'bottom-end'}\n visible={isSubActionsOpened}\n zIndex={10001}\n offset={[0, -8]}\n >\n <ActionButton\n useShadow={false}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n backgroundColors={['black', 'white']}\n onClick={newProps.onClick}\n actionWidthHeight={[40, 40]}\n />\n </Popover>\n );\n } else {\n newProps.children = (\n <ActionButton\n useShadow={false}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n onClick={newProps.onClick}\n backgroundColors={['black', 'white']}\n actionWidthHeight={[40, 40]}\n />\n );\n }\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component())) {\n return React.cloneElement(component(), { ...omit(newProps, 'icon') });\n }\n }\n\n return <React.Fragment>{newProps.children}</React.Fragment>;\n});\n/* eslint-disable react/prop-types */\n\nconst AssetGalleryGridCard = props => {\n const {\n asset,\n selectable,\n selected,\n customSelectedBorder,\n extendedSelectMode,\n onAssetSelected,\n onAssetUnselected,\n softSelected,\n component,\n scrollPosition\n } = props;\n\n const [isCardHovered, setIsCardHovered] = React.useState(false);\n const [openedSubActions, updateOpenedSubActions] = React.useState([]);\n useEffect(() => {\n const newOpenedSubActions = (asset?.actions ?? []).map(() => false);\n updateOpenedSubActions(newOpenedSubActions);\n }, [asset]);\n\n useEffect(() => {\n if (!isCardHovered && openedSubActions?.length) {\n updateOpenedSubActions(openedSubActions.map(() => false));\n }\n }, [isCardHovered]);\n\n const mouseHasEnteredCard = useCallback(() => {\n setIsCardHovered(true);\n }, []);\n\n const mouseHasLeftCard = useCallback(() => {\n setIsCardHovered(false);\n }, []);\n\n const onSubActionsViewToggle = useCallback(\n actionIndex => {\n const newOpenedSubActions = openedSubActions.map((isOpened, index) => {\n if (index !== actionIndex) {\n return false;\n }\n return !isOpened;\n });\n updateOpenedSubActions(newOpenedSubActions);\n },\n [openedSubActions]\n );\n\n const videoPlayerRef = useRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\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 mouseHasEnteredCard();\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n\n mouseHasLeftCard();\n }\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 return onAssetSelected(asset.key);\n }\n\n const onActionClick = useCallback(\n (event, action, index) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (isFunction(action?.onClick)) {\n action.onClick(asset);\n }\n\n if (!isEmpty(action?.subActions)) {\n onSubActionsViewToggle(index);\n }\n },\n [onSubActionsViewToggle]\n );\n\n const shouldOpenSubActions = useCallback(\n actionIndex => openedSubActions[actionIndex],\n [openedSubActions]\n );\n\n function onContextMenu(event) {\n event.preventDefault();\n asset.onContextMenu(event);\n }\n\n function renderPreview(asset) {\n let previewContent = null;\n\n if (asset.fileType?.toLowerCase() === 'video') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <video ref={videoPlayerRef} loop muted>\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 previewContent;\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 // 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 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 renderThumbnail = () => {\n return (\n <>\n {/* Thumbnail Top bar */}\n <S.HorizontalBar>\n <S.HorizontalBarLeft>{renderVersionsBadge()}</S.HorizontalBarLeft>\n <S.HorizontalBarRight>\n {asset.statusIcon && <S.StatusIconCircle>{asset.statusIcon}</S.StatusIconCircle>}\n </S.HorizontalBarRight>\n </S.HorizontalBar>\n <S.ThumbnailRow>\n <S.ThumbnailSpacer />\n {/* Thumbnail */}\n <S.ThumbnailWrapper>\n <S.ThumbnailBox>\n {renderPreview(asset)}\n <S.ThumbnailSelectedOverlay selected={selected} />\n\n {asset.overlay && <S.ConsumerOverlay>{asset.overlay}</S.ConsumerOverlay>}\n </S.ThumbnailBox>\n </S.ThumbnailWrapper>\n\n <S.ActionsContainer>\n {(asset.actions ?? []).map((action, index) => (\n <Tooltip key={`${asset.key}-${action.title}`} content={action.title}>\n <S.Action>\n <ComputedActionButton\n component={action.component}\n className={action.className}\n icon={action.icon}\n isSubActionsOpened={shouldOpenSubActions(index)}\n onClick={event => onActionClick(event, action, index)}\n subActions={action?.subActions}\n actionWidthHeight={action.actionWidthHeight}\n />\n </S.Action>\n </Tooltip>\n ))}\n </S.ActionsContainer>\n </S.ThumbnailRow>\n {/* Thumbnail Bottom bar */}\n <S.HorizontalBar>\n <S.HorizontalBarLeft></S.HorizontalBarLeft>\n <S.HorizontalBarRight>{renderMediaBadge()}</S.HorizontalBarRight>\n </S.HorizontalBar>\n </>\n );\n };\n\n const renderDetails = () => {\n return (\n <S.CardBody>\n <S.CardTitle title={asset.title || ''}>{asset.title || ''}</S.CardTitle>\n <S.CardDescription title={asset.description || ''}>\n {asset.description || ''}\n </S.CardDescription>\n <S.InstructionsWrapper>\n {asset.imageRights && (\n <InstructionSeverityDisplay\n labels={asset.instructionLabels}\n instructionText={asset.imageRights}\n severity={asset.instructionSeverity}\n showCard={false}\n padding=\"0px 0px\"\n detailsFontSize=\"12px\"\n bgLight={'transparent'}\n bgDark={'transparent'}\n maxLines={2}\n />\n )}\n </S.InstructionsWrapper>\n </S.CardBody>\n );\n };\n\n const renderConsentSummaryInfo = () => {\n return (\n <>\n <S.CardDivider />\n <S.CardFooter>\n <S.CardFooterLeft>{asset.summary?.footerLeft || null}</S.CardFooterLeft>\n <S.CardFooterRight>{asset.summary?.footerRight || null}</S.CardFooterRight>\n </S.CardFooter>\n <S.CardDivider />\n </>\n );\n };\n\n const renderCheckboxRow = () => {\n return (\n <S.CheckboxRow>\n {selectable && (\n <S.CheckboxButton selected={selected} onClick={onSelectClick}>\n {selected ? <CheckRectangleIcon /> : <CheckRectangleOutlineIcon />}\n </S.CheckboxButton>\n )}\n </S.CheckboxRow>\n );\n };\n\n return (\n <S.AssetGalleryWrapper disabled={asset.disabled} ref={cardRef}>\n <S.AssetGalleryGridCard\n as={ComputedRootComponent}\n component={component}\n asset={asset}\n disabled={asset.disabled}\n onClick={onClick}\n extendedSelectMode={extendedSelectMode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n draggable={asset.draggable}\n innerRef={dragRef}\n selected={selected}\n $softSelected={softSelected}\n completed={asset?.completed}\n $hasError={asset?.hasError}\n $customSelectedBorder={customSelectedBorder}\n >\n {renderThumbnail()}\n {renderDetails()}\n {renderConsentSummaryInfo()}\n {renderCheckboxRow()}\n </S.AssetGalleryGridCard>\n </S.AssetGalleryWrapper>\n );\n};\n\nAssetGalleryGridCard.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n asset: PropTypes.shape(assetShapeWithLayout).isRequired,\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\nAssetGalleryGridCard.defaultProps = {};\n\nexport default trackWindowScroll(\n React.memo(AssetGalleryGridCard, (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 'asset.statusIcon',\n 'asset.layout',\n 'asset.imageRights',\n 'asset.instructionSeverity',\n 'asset.description',\n 'asset.title'\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","ComputedActionButton","forwardRef","className","subActions","isSubActionsOpened","forwardedRef","isEmpty","contextMenuItems","map","subAction","onClick","title","icon","ContextMenuItem","onClickEffect","contextMenu","ContextMenu","Popover","content","placement","visible","zIndex","offset","ActionButton","useShadow","active","backgroundColors","actionWidthHeight","Fragment","AssetGalleryGridCard","selectable","selected","customSelectedBorder","extendedSelectMode","onAssetSelected","onAssetUnselected","softSelected","scrollPosition","isCardHovered","setIsCardHovered","useState","openedSubActions","updateOpenedSubActions","useEffect","newOpenedSubActions","actions","length","mouseHasEnteredCard","useCallback","mouseHasLeftCard","onSubActionsViewToggle","actionIndex","isOpened","index","videoPlayerRef","useRef","cardRef","dragRef","onMouseEnter","event","current","playPromise","play","undefined","then","catch","onMouseLeave","pause","onSelectClick","preventDefault","stopPropagation","onActionClick","action","shouldOpenSubActions","onContextMenu","renderPreview","previewContent","fileType","toLowerCase","LazyLoadComponent","loop","muted","src","previewUrl","type","HeadsetIcon","LazyLoadImage","alt","height","width","delayMethod","delayTime","threshold","addEventListener","removeEventListener","onDragstart","scrollIntoView","behavior","block","renderVersionsBadge","versions","Badge","badgeIcon","LayersIcon","badgeContent","colors","fontSize","fontWeight","lineHeight","verticalPadding","horizontalPadding","renderMediaBadge","PlayIcon","duration","convertMsToHMS","minWidth","renderThumbnail","statusIcon","overlay","Tooltip","renderDetails","description","imageRights","InstructionSeverityDisplay","labels","instructionLabels","instructionText","severity","instructionSeverity","showCard","padding","detailsFontSize","bgLight","bgDark","maxLines","renderConsentSummaryInfo","summary","footerLeft","footerRight","renderCheckboxRow","CheckRectangleIcon","CheckRectangleOutlineIcon","disabled","as","draggable","innerRef","$softSelected","completed","$hasError","hasError","$customSelectedBorder","propTypes","process","env","NODE_ENV","PropTypes","shape","assetShapeWithLayout","isRequired","bool","arrayOf","string","func","number","defaultProps","trackWindowScroll","memo","prevProps","nextProps","reactiveProps","every","propKey","get"],"mappings":"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"}
|
|
@@ -2,242 +2,269 @@ import { rgba } from 'polished';
|
|
|
2
2
|
import styled, { css } from 'styled-components';
|
|
3
3
|
import { applyDefaultTheme } from '../../../../utils/defaultTheme.js';
|
|
4
4
|
|
|
5
|
+
const getBorderWidth = props => {
|
|
6
|
+
const {
|
|
7
|
+
selected,
|
|
8
|
+
$softSelected,
|
|
9
|
+
$hasError,
|
|
10
|
+
completed
|
|
11
|
+
} = props;
|
|
12
|
+
return selected || $softSelected || $hasError || completed ? 3 : 1;
|
|
13
|
+
};
|
|
5
14
|
const AssetGalleryWrapper = styled.div.attrs(applyDefaultTheme)`
|
|
15
|
+
width: 100%;
|
|
16
|
+
height: 100%;
|
|
6
17
|
${props => props.disabled && css`
|
|
7
18
|
cursor: not-allowed;
|
|
8
|
-
`}
|
|
19
|
+
`}
|
|
9
20
|
`;
|
|
10
21
|
const AssetGalleryGridCard = styled.div.attrs(applyDefaultTheme)`
|
|
11
|
-
display:
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
12
24
|
position: relative;
|
|
13
25
|
height: 100%;
|
|
14
26
|
margin: 0;
|
|
15
27
|
box-sizing: border-box;
|
|
16
|
-
border-width: ${props => {
|
|
17
|
-
const {
|
|
18
|
-
selected,
|
|
19
|
-
$softSelected,
|
|
20
|
-
hasError,
|
|
21
|
-
completed
|
|
22
|
-
} = props;
|
|
23
|
-
return selected || $softSelected || hasError || completed ? 3 : 1;
|
|
24
|
-
}}px;
|
|
25
28
|
border-style: solid;
|
|
29
|
+
border-width: ${getBorderWidth}px;
|
|
26
30
|
text-decoration: none;
|
|
27
31
|
cursor: pointer;
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
transition: box-shadow 220ms;
|
|
34
|
+
&:hover {
|
|
35
|
+
box-shadow: 0px 3px 6px #00000029;
|
|
36
|
+
}
|
|
37
|
+
${props => props.theme.themeProp('background', props.theme.getColor('gray-700'), props.theme.getColor('white'))}
|
|
38
|
+
${props => props.theme.themeProp('border-color', (() => {
|
|
39
|
+
if (props.$softSelected) return rgba(props.theme.getColor('gray-100'), 0.5);
|
|
40
|
+
if (props.selected) {
|
|
41
|
+
if (props.$customSelectedBorder) return props.$customSelectedBorder[0];
|
|
42
|
+
return props.theme.getColor('gray-100');
|
|
43
|
+
}
|
|
44
|
+
if (props.completed) return props.theme.getColor('emerald-500');
|
|
45
|
+
if (props.$hasError) return props.theme.getColor('red-600');
|
|
46
|
+
return props.theme.getColor('gray-700');
|
|
47
|
+
})(), (() => {
|
|
48
|
+
if (props.$softSelected) return rgba(props.theme.getColor('gray-700'), 0.5);
|
|
49
|
+
if (props.selected) {
|
|
50
|
+
if (props.$customSelectedBorder) return props.$customSelectedBorder[1];
|
|
51
|
+
return props.theme.getColor('gray-700');
|
|
52
|
+
}
|
|
53
|
+
if (props.completed) return rgba(props.theme.getColor('emerald-500'), 0.7);
|
|
54
|
+
if (props.$hasError) return rgba(props.theme.getColor('red-500'), 0.7);
|
|
55
|
+
return props.theme.getColor('gray-300');
|
|
56
|
+
})())}
|
|
30
57
|
|
|
31
58
|
${props => props.disabled && css`
|
|
32
59
|
pointer-events: none;
|
|
33
60
|
opacity: 0.4;
|
|
34
|
-
`};
|
|
35
|
-
|
|
36
|
-
${props => props.extendedSelectMode && css`
|
|
37
|
-
cursor: pointer;
|
|
38
61
|
`}
|
|
39
|
-
|
|
40
|
-
${props => {
|
|
41
|
-
if (props.$softSelected) {
|
|
42
|
-
return props.theme.themeProp('border-color', rgba(props.theme.getColor('gray-100'), 0.5), rgba(props.theme.getColor('gray-700'), 0.5));
|
|
43
|
-
}
|
|
44
|
-
if (props.selected) {
|
|
45
|
-
if (props.$customSelectedBorder) {
|
|
46
|
-
return props.theme.themeProp('border-color', props.$customSelectedBorder[0], props.$customSelectedBorder[1]);
|
|
47
|
-
} else {
|
|
48
|
-
return props.theme.themeProp('border-color', props.theme.getColor('gray-100'), props.theme.getColor('gray-700'));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (props.completed) {
|
|
52
|
-
return props.theme.themeProp('border-color', props.theme.getColor('emerald-500'), rgba(props.theme.getColor('emerald-500'), 0.7));
|
|
53
|
-
}
|
|
54
|
-
if (props.hasError) {
|
|
55
|
-
return props.theme.themeProp('border-color', props.theme.getColor('red-600'), rgba(props.theme.getColor('red-500'), 0.7));
|
|
56
|
-
}
|
|
57
|
-
return props.theme.themeProp('border-color', props.theme.getColor('gray-700'), props.theme.getColor('gray-300'));
|
|
58
|
-
}};
|
|
59
62
|
`;
|
|
60
|
-
const
|
|
63
|
+
const HorizontalBar = styled.div.attrs(applyDefaultTheme)`
|
|
61
64
|
display: flex;
|
|
62
|
-
|
|
65
|
+
align-items: center;
|
|
66
|
+
justify-content: space-between;
|
|
67
|
+
padding: 8px;
|
|
68
|
+
height: 40px;
|
|
63
69
|
box-sizing: border-box;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
height: 100%;
|
|
70
|
+
flex-shrink: 0;
|
|
71
|
+
${props => props.theme.themeProp('background', '#3F3F46', '#E4E4E7')}
|
|
67
72
|
`;
|
|
68
|
-
const
|
|
73
|
+
const HorizontalBarLeft = styled.div`
|
|
69
74
|
display: flex;
|
|
70
|
-
flex-direction: column;
|
|
71
75
|
align-items: center;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
76
|
+
`;
|
|
77
|
+
const HorizontalBarRight = styled.div`
|
|
78
|
+
display: flex;
|
|
79
|
+
align-items: center;
|
|
80
|
+
`;
|
|
81
|
+
const StatusIconCircle = styled.span.attrs(applyDefaultTheme)`
|
|
82
|
+
display: inline-flex;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
align-items: center;
|
|
85
|
+
width: 28px;
|
|
86
|
+
height: 28px;
|
|
87
|
+
border-radius: 50%;
|
|
88
|
+
pointer-events: none;
|
|
89
|
+
svg {
|
|
90
|
+
width: 100%;
|
|
91
|
+
height: 100%;
|
|
88
92
|
}
|
|
89
93
|
`;
|
|
90
|
-
const
|
|
94
|
+
const ThumbnailRow = styled.div.attrs(applyDefaultTheme)`
|
|
91
95
|
position: relative;
|
|
92
96
|
display: flex;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
97
|
+
width: 100%;
|
|
98
|
+
${props => props.theme.themeProp('background', '#3F3F46', '#E4E4E7')}
|
|
99
|
+
`;
|
|
100
|
+
const ThumbnailSpacer = styled.div`
|
|
101
|
+
flex: 1;
|
|
102
|
+
`;
|
|
103
|
+
const ThumbnailWrapper = styled.div`
|
|
104
|
+
flex: 1;
|
|
105
|
+
`;
|
|
106
|
+
const ThumbnailBox = styled.div.attrs(applyDefaultTheme)`
|
|
107
|
+
position: relative;
|
|
108
|
+
width: 244.65px;
|
|
109
|
+
height: 168px;
|
|
110
|
+
|
|
111
|
+
flex-shrink: 0;
|
|
112
|
+
overflow: hidden;
|
|
96
113
|
|
|
97
114
|
img,
|
|
98
|
-
video
|
|
99
|
-
.audio {
|
|
100
|
-
display: block;
|
|
101
|
-
max-height: 200px;
|
|
115
|
+
video {
|
|
102
116
|
width: 100%;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
object-fit: cover;
|
|
107
|
-
` : css`
|
|
108
|
-
object-fit: contain;
|
|
109
|
-
`}
|
|
117
|
+
height: 100%;
|
|
118
|
+
object-fit: contain;
|
|
119
|
+
display: block;
|
|
110
120
|
}
|
|
111
121
|
|
|
112
122
|
.audio {
|
|
123
|
+
width: 100%;
|
|
124
|
+
height: 100%;
|
|
113
125
|
display: flex;
|
|
114
|
-
|
|
126
|
+
align-items: center;
|
|
115
127
|
justify-content: center;
|
|
116
128
|
svg {
|
|
117
|
-
width:
|
|
129
|
+
width: 35%;
|
|
130
|
+
${props => props.theme.themeProp('color', props.theme.getColor('gray-400'), props.theme.getColor('gray-400'))}
|
|
118
131
|
}
|
|
119
132
|
}
|
|
120
133
|
`;
|
|
121
|
-
const
|
|
134
|
+
const ThumbnailSelectedOverlay = styled.div.attrs(applyDefaultTheme)`
|
|
122
135
|
position: absolute;
|
|
123
136
|
inset: 0;
|
|
137
|
+
pointer-events: none;
|
|
124
138
|
opacity: ${props => props.selected ? 0.6 : 0};
|
|
125
|
-
background-color:
|
|
139
|
+
background-color: #accef7;
|
|
140
|
+
transition: opacity 220ms;
|
|
126
141
|
`;
|
|
127
|
-
|
|
142
|
+
styled.div`
|
|
128
143
|
position: absolute;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
right: 0;
|
|
144
|
+
bottom: 8px;
|
|
145
|
+
right: 8px;
|
|
146
|
+
pointer-events: none;
|
|
133
147
|
`;
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
148
|
+
const ActionsContainer = styled.div.attrs(applyDefaultTheme)`
|
|
149
|
+
display: flex;
|
|
150
|
+
flex: 1;
|
|
151
|
+
align-items: end;
|
|
152
|
+
padding-right: 8px;
|
|
153
|
+
flex-direction: column;
|
|
154
|
+
gap: 8px;
|
|
140
155
|
opacity: 0;
|
|
141
156
|
transition: opacity 220ms;
|
|
142
|
-
|
|
143
|
-
background: radial-gradient(
|
|
144
|
-
ellipse at center,
|
|
145
|
-
rgba(0, 0, 0, 0.3) 27%,
|
|
146
|
-
rgba(0, 0, 0, 0.5) 60%,
|
|
147
|
-
rgba(0, 0, 0, 0.7) 90%
|
|
148
|
-
);
|
|
149
|
-
` : null}
|
|
157
|
+
z-index: 1;
|
|
150
158
|
|
|
151
|
-
${
|
|
152
|
-
opacity: 1;
|
|
153
|
-
`}
|
|
154
|
-
|
|
155
|
-
${Overlay}:hover & {
|
|
159
|
+
${AssetGalleryGridCard}:hover & {
|
|
156
160
|
opacity: 1;
|
|
157
161
|
}
|
|
158
162
|
|
|
159
|
-
${AssetGalleryGridCard}:
|
|
163
|
+
${AssetGalleryGridCard}:focus-within & {
|
|
160
164
|
opacity: 1;
|
|
161
165
|
}
|
|
162
166
|
`;
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
167
|
+
const Action = styled.div`
|
|
168
|
+
margin: 0;
|
|
169
|
+
|
|
170
|
+
button {
|
|
171
|
+
box-shadow: 0px 3px 6px #00000033;
|
|
172
|
+
}
|
|
173
|
+
svg {
|
|
174
|
+
width: 16px;
|
|
175
|
+
height: 16px;
|
|
176
|
+
max-height: unset;
|
|
177
|
+
max-width: unset;
|
|
178
|
+
}
|
|
174
179
|
`;
|
|
175
|
-
const
|
|
180
|
+
const ConsumerOverlay = styled.div`
|
|
176
181
|
position: absolute;
|
|
177
|
-
|
|
178
|
-
bottom: 0;
|
|
179
|
-
left: 0;
|
|
180
|
-
right: 0;
|
|
182
|
+
inset: 0;
|
|
181
183
|
pointer-events: none;
|
|
182
184
|
`;
|
|
183
|
-
const
|
|
184
|
-
position: absolute;
|
|
185
|
-
left: 0;
|
|
186
|
-
right: 0;
|
|
187
|
-
top: 0;
|
|
188
|
-
padding: 8px;
|
|
185
|
+
const CardBody = styled.div.attrs(applyDefaultTheme)`
|
|
189
186
|
display: flex;
|
|
187
|
+
flex-direction: column;
|
|
188
|
+
flex: 1;
|
|
189
|
+
padding: 16px 16px 16px 16px;
|
|
190
190
|
`;
|
|
191
|
-
const
|
|
192
|
-
|
|
191
|
+
const CardTitle = styled.span.attrs(applyDefaultTheme)`
|
|
192
|
+
display: -webkit-box;
|
|
193
|
+
-webkit-line-clamp: 1;
|
|
194
|
+
-webkit-box-orient: vertical;
|
|
195
|
+
overflow: hidden;
|
|
196
|
+
text-overflow: ellipsis;
|
|
193
197
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const OverlayInfoTopWarning = styled.div.attrs(applyDefaultTheme)`
|
|
199
|
-
margin-left: auto;
|
|
200
|
-
height: 24px;
|
|
201
|
-
width: 24px;
|
|
202
|
-
border-radius: 50%;
|
|
198
|
+
font: normal normal 500 14px/19px Roboto;
|
|
199
|
+
letter-spacing: 0.28px;
|
|
200
|
+
min-height: 19px;
|
|
201
|
+
max-height: 19px;
|
|
203
202
|
box-sizing: border-box;
|
|
204
|
-
padding: ${props => props.type === 'error' ? 0 : '4px'};
|
|
205
|
-
background-color: ${props => props.type === 'error' ? props.theme.getColor('red-500') : props.theme.getColor('gray-100')};
|
|
206
|
-
opacity: 1;
|
|
207
203
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
204
|
+
${props => props.theme.themeProp('color', props.theme.getColor('white'), props.theme.getColor('gray-700'))}
|
|
205
|
+
`;
|
|
206
|
+
const CardDescription = styled.span.attrs(applyDefaultTheme)`
|
|
207
|
+
display: -webkit-box;
|
|
208
|
+
-webkit-line-clamp: 3;
|
|
209
|
+
-webkit-box-orient: vertical;
|
|
210
|
+
overflow: hidden;
|
|
211
|
+
text-overflow: ellipsis;
|
|
212
|
+
padding: 6px 0px 6px 0px;
|
|
213
|
+
font: normal normal normal 12px/1.286em Roboto;
|
|
214
|
+
letter-spacing: 0.24px;
|
|
215
|
+
min-height: 52px;
|
|
216
|
+
max-height: 52px;
|
|
217
|
+
box-sizing: border-box;
|
|
218
|
+
overflow-wrap: break-word;
|
|
219
|
+
word-break: break-word;
|
|
212
220
|
|
|
213
|
-
${
|
|
214
|
-
opacity: 0;
|
|
215
|
-
}
|
|
221
|
+
${props => props.theme.themeProp('color', props.theme.getColor('white'), props.theme.getColor('gray-700'))}
|
|
216
222
|
`;
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
223
|
+
const InstructionsWrapper = styled.div`
|
|
224
|
+
padding-top: 16px;
|
|
225
|
+
min-height: 63px;
|
|
226
|
+
max-height: 63px;
|
|
227
|
+
overflow: hidden;
|
|
228
|
+
flex-shrink: 0;
|
|
229
|
+
`;
|
|
230
|
+
const CardFooter = styled.div.attrs(applyDefaultTheme)`
|
|
222
231
|
display: flex;
|
|
223
|
-
|
|
232
|
+
align-items: center;
|
|
224
233
|
justify-content: space-between;
|
|
225
|
-
|
|
226
|
-
z-index: 99999;
|
|
227
|
-
${props => props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-700'))}
|
|
234
|
+
padding: 0px 16px;
|
|
228
235
|
|
|
229
|
-
|
|
236
|
+
min-height: 52px;
|
|
237
|
+
box-sizing: border-box;
|
|
230
238
|
`;
|
|
231
|
-
const
|
|
232
|
-
position: absolute;
|
|
233
|
-
left: 0;
|
|
234
|
-
right: 0;
|
|
235
|
-
bottom: 0;
|
|
236
|
-
padding: 8px;
|
|
239
|
+
const CardFooterLeft = styled.div`
|
|
237
240
|
display: flex;
|
|
241
|
+
align-items: center;
|
|
242
|
+
> * {
|
|
243
|
+
margin-right: 4px;
|
|
244
|
+
}
|
|
238
245
|
`;
|
|
239
|
-
const
|
|
240
|
-
|
|
246
|
+
const CardFooterRight = styled.div`
|
|
247
|
+
display: flex;
|
|
248
|
+
align-items: center;
|
|
249
|
+
> * {
|
|
250
|
+
margin-left: 4px;
|
|
251
|
+
}
|
|
252
|
+
`;
|
|
253
|
+
const CardDivider = styled.div.attrs(applyDefaultTheme)`
|
|
254
|
+
height: 1px;
|
|
255
|
+
flex-shrink: 0;
|
|
256
|
+
${props => props.theme.themeProp('background', props.theme.getColor('gray-600'), props.theme.getColor('gray-200'))}
|
|
257
|
+
`;
|
|
258
|
+
const CheckboxRow = styled.div`
|
|
259
|
+
display: flex;
|
|
260
|
+
|
|
261
|
+
padding: 0px 16px;
|
|
262
|
+
height: 56px;
|
|
263
|
+
box-sizing: border-box;
|
|
264
|
+
flex-shrink: 0;
|
|
265
|
+
`;
|
|
266
|
+
const CheckboxButton = styled.div.attrs(applyDefaultTheme)`
|
|
267
|
+
opacity: 1;
|
|
241
268
|
flex-shrink: 0;
|
|
242
269
|
cursor: pointer;
|
|
243
270
|
transition: opacity 220ms;
|
|
@@ -248,53 +275,7 @@ const OverlayInfoBottomSelectButton = styled.div.attrs(applyDefaultTheme)`
|
|
|
248
275
|
transition: opacity 120ms;
|
|
249
276
|
opacity: ${props => props.selected ? 1 : 0.5};
|
|
250
277
|
}
|
|
251
|
-
|
|
252
|
-
${Overlay}:hover & {
|
|
253
|
-
opacity: 1;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
${AssetGalleryGridCard}:hover & {
|
|
257
|
-
opacity: 1;
|
|
258
|
-
}
|
|
259
|
-
`;
|
|
260
|
-
const OverlayInfoBottomMediaIcon = styled.div.attrs(applyDefaultTheme)`
|
|
261
|
-
margin-left: auto;
|
|
262
|
-
opacity: 1;
|
|
263
|
-
${AssetGalleryGridCard}:hover & {
|
|
264
|
-
opacity: 0;
|
|
265
|
-
}
|
|
266
|
-
`;
|
|
267
|
-
const ConsumerDefinedOverlay = styled.div.attrs(applyDefaultTheme)`
|
|
268
|
-
position: absolute;
|
|
269
|
-
top: 0;
|
|
270
|
-
bottom: 0;
|
|
271
|
-
left: 0;
|
|
272
|
-
right: 0;
|
|
273
|
-
pointer-events: none;
|
|
274
|
-
`;
|
|
275
|
-
const StatusIcon = styled.span.attrs(applyDefaultTheme)`
|
|
276
|
-
display: inline-flex;
|
|
277
|
-
justify-content: center;
|
|
278
|
-
align-items: center;
|
|
279
|
-
margin: 6px auto 6px auto;
|
|
280
|
-
pointer-events: none;
|
|
281
|
-
border-radius: 50%;
|
|
282
|
-
width: 28px;
|
|
283
|
-
height: 28px;
|
|
284
|
-
box-shadow: 0px 3px 6px ${props => rgba(props.theme.getColor('black'), 0.7)};
|
|
285
|
-
svg {
|
|
286
|
-
width: 100%;
|
|
287
|
-
height: 100%;
|
|
288
|
-
}
|
|
289
|
-
`;
|
|
290
|
-
const Action = styled.div`
|
|
291
|
-
margin: 4px;
|
|
292
|
-
opacity: 0;
|
|
293
|
-
transition: opacity 220ms;
|
|
294
|
-
${AssetGalleryGridCard}:hover & {
|
|
295
|
-
opacity: 1;
|
|
296
|
-
}
|
|
297
278
|
`;
|
|
298
279
|
|
|
299
|
-
export { Action,
|
|
280
|
+
export { Action, ActionsContainer, AssetGalleryGridCard, AssetGalleryWrapper, CardBody, CardDescription, CardDivider, CardFooter, CardFooterLeft, CardFooterRight, CardTitle, CheckboxButton, CheckboxRow, ConsumerOverlay, HorizontalBar, HorizontalBarLeft, HorizontalBarRight, InstructionsWrapper, StatusIconCircle, ThumbnailBox, ThumbnailRow, ThumbnailSelectedOverlay, ThumbnailSpacer, ThumbnailWrapper };
|
|
300
281
|
//# sourceMappingURL=AssetGalleryGridCard.styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetGalleryGridCard.styled.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js"],"sourcesContent":["import { rgba } from 'polished';\nimport styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../../../utils/defaultTheme';\n\nexport const AssetGalleryWrapper = styled.div.attrs(applyDefaultTheme)`\n ${props =>\n props.disabled &&\n css`\n cursor: not-allowed;\n `};\n`;\n\nexport const AssetGalleryGridCard = styled.div.attrs(applyDefaultTheme)`\n display: block;\n position: relative;\n height: 100%;\n margin: 0;\n box-sizing: border-box;\n border-width: ${props => {\n const { selected, $softSelected, hasError, completed } = props;\n return selected || $softSelected || hasError || completed ? 3 : 1;\n }}px;\n border-style: solid;\n text-decoration: none;\n cursor: pointer;\n\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-300'),\n props.theme.getColor('gray-700')\n )}\n\n ${props =>\n props.disabled &&\n css`\n pointer-events: none;\n opacity: 0.4;\n `};\n\n ${props =>\n props.extendedSelectMode &&\n css`\n cursor: pointer;\n `}\n\n ${props => {\n if (props.$softSelected) {\n return props.theme.themeProp(\n 'border-color',\n rgba(props.theme.getColor('gray-100'), 0.5),\n rgba(props.theme.getColor('gray-700'), 0.5)\n );\n }\n\n if (props.selected) {\n if (props.$customSelectedBorder) {\n return props.theme.themeProp(\n 'border-color',\n props.$customSelectedBorder[0],\n props.$customSelectedBorder[1]\n );\n } else {\n return props.theme.themeProp(\n 'border-color',\n props.theme.getColor('gray-100'),\n props.theme.getColor('gray-700')\n );\n }\n }\n\n if (props.completed) {\n return props.theme.themeProp(\n 'border-color',\n props.theme.getColor('emerald-500'),\n rgba(props.theme.getColor('emerald-500'), 0.7)\n );\n }\n\n if (props.hasError) {\n return props.theme.themeProp(\n 'border-color',\n props.theme.getColor('red-600'),\n rgba(props.theme.getColor('red-500'), 0.7)\n );\n }\n\n return props.theme.themeProp(\n 'border-color',\n props.theme.getColor('gray-700'),\n props.theme.getColor('gray-300')\n );\n }};\n`;\n\nexport const ContentWrapper = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n padding: ${props => (props.selected || props.$softSelected ? 4 : 0)}px;\n padding-top: 35px;\n height: 100%;\n`;\n\nexport const Asset = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n position: relative;\n padding: 0 36px;\n min-height: 200px;\n box-sizing: border-box;\n\n video {\n display: block;\n }\n\n .audio {\n display: flex;\n justify-content: center;\n svg {\n width: 25%;\n }\n }\n`;\n\nexport const Figure = styled.figure`\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n margin: 0;\n\n img,\n video,\n .audio {\n display: block;\n max-height: 200px;\n width: 100%;\n box-sizing: border-box;\n\n ${props =>\n props.hasHeightAndWidth\n ? css`\n object-fit: cover;\n `\n : css`\n object-fit: contain;\n `}\n }\n\n .audio {\n display: flex;\n height: 200px;\n justify-content: center;\n svg {\n width: 25%;\n }\n }\n`;\n\nexport const FigureOverlayBackdrop = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n inset: 0;\n opacity: ${props => (props.selected ? 0.6 : 0)};\n background-color: ${props => (props.selected ? '#ACCEF7' : 'transparent')};\n`;\n\nexport const Overlay = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nexport const OverlayBackdrop = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n opacity: 0;\n transition: opacity 220ms;\n ${props =>\n !props.selected\n ? css`\n background: radial-gradient(\n ellipse at center,\n rgba(0, 0, 0, 0.3) 27%,\n rgba(0, 0, 0, 0.5) 60%,\n rgba(0, 0, 0, 0.7) 90%\n );\n `\n : null}\n\n ${props =>\n (props.selected || props.$softSelected) &&\n css`\n opacity: 1;\n `}\n\n ${Overlay}:hover & {\n opacity: 1;\n }\n\n ${AssetGalleryGridCard}:hover & {\n opacity: 1;\n }\n`;\n\nexport const OverlayInfo = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 15px 12px 10px;\n color: ${props => props.theme.getColor('gray-100')};\n`;\n\nexport const OverlaySelected = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n`;\n\nexport const OverlayInfoTop = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n padding: 8px;\n display: flex;\n`;\n\nexport const OverlayInfoTopVersions = styled.div.attrs(applyDefaultTheme)`\n opacity: 1;\n\n ${AssetGalleryGridCard}:hover & {\n opacity: 0;\n }\n`;\n\nexport const OverlayInfoTopWarning = styled.div.attrs(applyDefaultTheme)`\n margin-left: auto;\n height: 24px;\n width: 24px;\n border-radius: 50%;\n box-sizing: border-box;\n padding: ${props => (props.type === 'error' ? 0 : '4px')};\n background-color: ${props =>\n props.type === 'error' ? props.theme.getColor('red-500') : props.theme.getColor('gray-100')};\n opacity: 1;\n\n svg {\n width: 100%;\n color: ${props =>\n props.type === 'error' ? props.theme.getColor('gray-100') : props.theme.getColor('gray-700')};\n }\n\n ${AssetGalleryGridCard}:hover & {\n opacity: 0;\n }\n`;\n\nexport const OverlayInfoTopActions = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n right: 0;\n padding: 4px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n transition: opacity 220ms;\n z-index: 99999;\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-300'),\n props.theme.getColor('gray-700')\n )}\n\n opacity: 1;\n`;\n\nexport const OverlayInfoBottom = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n padding: 8px;\n display: flex;\n`;\n\nexport const OverlayInfoBottomSelectButton = styled.div.attrs(applyDefaultTheme)`\n opacity: ${props => (props.selected ? 1 : 0)};\n flex-shrink: 0;\n cursor: pointer;\n transition: opacity 220ms;\n\n > svg {\n width: 23px;\n height: 100%;\n transition: opacity 120ms;\n opacity: ${props => (props.selected ? 1 : 0.5)};\n }\n\n ${Overlay}:hover & {\n opacity: 1;\n }\n\n ${AssetGalleryGridCard}:hover & {\n opacity: 1;\n }\n`;\n\nexport const OverlayInfoBottomMediaIcon = styled.div.attrs(applyDefaultTheme)`\n margin-left: auto;\n opacity: 1;\n ${AssetGalleryGridCard}:hover & {\n opacity: 0;\n }\n`;\n\nexport const ConsumerDefinedOverlay = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n`;\n\nexport const StatusIcon = styled.span.attrs(applyDefaultTheme)`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin: 6px auto 6px auto;\n pointer-events: none;\n border-radius: 50%;\n width: 28px;\n height: 28px;\n box-shadow: 0px 3px 6px ${props => rgba(props.theme.getColor('black'), 0.7)};\n svg {\n width: 100%;\n height: 100%;\n }\n`;\n\nexport const Action = styled.div`\n margin: 4px;\n opacity: 0;\n transition: opacity 220ms;\n ${AssetGalleryGridCard}:hover & {\n opacity: 1;\n }\n`;\n"],"names":["AssetGalleryWrapper","styled","div","attrs","applyDefaultTheme","props","disabled","css","AssetGalleryGridCard","selected","$softSelected","hasError","completed","theme","themeProp","getColor","extendedSelectMode","rgba","$customSelectedBorder","ContentWrapper","Asset","Figure","figure","hasHeightAndWidth","FigureOverlayBackdrop","Overlay","OverlayBackdrop","OverlayInfo","OverlaySelected","OverlayInfoTop","OverlayInfoTopVersions","OverlayInfoTopWarning","type","OverlayInfoTopActions","OverlayInfoBottom","OverlayInfoBottomSelectButton","OverlayInfoBottomMediaIcon","ConsumerDefinedOverlay","StatusIcon","span","Action"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetGalleryGridCard.styled.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js"],"sourcesContent":["import { rgba } from 'polished';\nimport styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../../../utils/defaultTheme';\n\n/**\n * Returns the card border width based on visual state flags.\n * @param {{selected?: boolean, $softSelected?: boolean, $hasError?: boolean, completed?: boolean}} props\n * @returns {number}\n */\nconst getBorderWidth = props => {\n const { selected, $softSelected, $hasError, completed } = props;\n return selected || $softSelected || $hasError || completed ? 3 : 1;\n};\n\nexport const AssetGalleryWrapper = styled.div.attrs(applyDefaultTheme)`\n width: 100%;\n height: 100%;\n ${props =>\n props.disabled &&\n css`\n cursor: not-allowed;\n `}\n`;\n\nexport const AssetGalleryGridCard = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n flex-direction: column;\n position: relative;\n height: 100%;\n margin: 0;\n box-sizing: border-box;\n border-style: solid;\n border-width: ${getBorderWidth}px;\n text-decoration: none;\n cursor: pointer;\n overflow: hidden;\n transition: box-shadow 220ms;\n &:hover {\n box-shadow: 0px 3px 6px #00000029;\n }\n ${props =>\n props.theme.themeProp(\n 'background',\n props.theme.getColor('gray-700'),\n props.theme.getColor('white')\n )}\n ${props =>\n props.theme.themeProp(\n 'border-color',\n (() => {\n if (props.$softSelected) return rgba(props.theme.getColor('gray-100'), 0.5);\n if (props.selected) {\n if (props.$customSelectedBorder) return props.$customSelectedBorder[0];\n return props.theme.getColor('gray-100');\n }\n if (props.completed) return props.theme.getColor('emerald-500');\n if (props.$hasError) return props.theme.getColor('red-600');\n return props.theme.getColor('gray-700');\n })(),\n (() => {\n if (props.$softSelected) return rgba(props.theme.getColor('gray-700'), 0.5);\n if (props.selected) {\n if (props.$customSelectedBorder) return props.$customSelectedBorder[1];\n return props.theme.getColor('gray-700');\n }\n if (props.completed) return rgba(props.theme.getColor('emerald-500'), 0.7);\n if (props.$hasError) return rgba(props.theme.getColor('red-500'), 0.7);\n return props.theme.getColor('gray-300');\n })()\n )}\n\n ${props =>\n props.disabled &&\n css`\n pointer-events: none;\n opacity: 0.4;\n `}\n`;\n\n// ── Top bar ──────────────────────────────────────────────────────────────────\n\nexport const HorizontalBar = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px;\n height: 40px;\n box-sizing: border-box;\n flex-shrink: 0;\n ${props => props.theme.themeProp('background', '#3F3F46', '#E4E4E7')}\n`;\n\nexport const HorizontalBarLeft = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const HorizontalBarRight = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const StatusIconCircle = styled.span.attrs(applyDefaultTheme)`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n pointer-events: none;\n svg {\n width: 100%;\n height: 100%;\n }\n`;\n\n// ── Thumbnail ─────────────────────────────────────────────────────────────────\n\nexport const ThumbnailRow = styled.div.attrs(applyDefaultTheme)`\n position: relative;\n display: flex;\n width: 100%;\n ${props => props.theme.themeProp('background', '#3F3F46', '#E4E4E7')}\n`;\n\nexport const ThumbnailSpacer = styled.div`\n flex: 1;\n`;\n\nexport const ThumbnailWrapper = styled.div`\n flex: 1;\n`;\n\nexport const ThumbnailBox = styled.div.attrs(applyDefaultTheme)`\n position: relative;\n width: 244.65px;\n height: 168px;\n\n flex-shrink: 0;\n overflow: hidden;\n\n img,\n video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n display: block;\n }\n\n .audio {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n svg {\n width: 35%;\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-400'),\n props.theme.getColor('gray-400')\n )}\n }\n }\n`;\n\nexport const ThumbnailSelectedOverlay = styled.div.attrs(applyDefaultTheme)`\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: ${props => (props.selected ? 0.6 : 0)};\n background-color: #accef7;\n transition: opacity 220ms;\n`;\n\nexport const MediaBadgeContainer = styled.div`\n position: absolute;\n bottom: 8px;\n right: 8px;\n pointer-events: none;\n`;\n\nexport const ActionsContainer = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n flex: 1;\n align-items: end;\n padding-right: 8px;\n flex-direction: column;\n gap: 8px;\n opacity: 0;\n transition: opacity 220ms;\n z-index: 1;\n\n ${AssetGalleryGridCard}:hover & {\n opacity: 1;\n }\n\n ${AssetGalleryGridCard}:focus-within & {\n opacity: 1;\n }\n`;\n\nexport const Action = styled.div`\n margin: 0;\n\n button {\n box-shadow: 0px 3px 6px #00000033;\n }\n svg {\n width: 16px;\n height: 16px;\n max-height: unset;\n max-width: unset;\n }\n`;\n\nexport const ConsumerOverlay = styled.div`\n position: absolute;\n inset: 0;\n pointer-events: none;\n`;\n\n// ── Card body ─────────────────────────────────────────────────────────────────\n\nexport const CardBody = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n flex-direction: column;\n flex: 1;\n padding: 16px 16px 16px 16px;\n`;\n\nexport const CardTitle = styled.span.attrs(applyDefaultTheme)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n\n font: normal normal 500 14px/19px Roboto;\n letter-spacing: 0.28px;\n min-height: 19px;\n max-height: 19px;\n box-sizing: border-box;\n\n ${props =>\n props.theme.themeProp('color', props.theme.getColor('white'), props.theme.getColor('gray-700'))}\n`;\n\nexport const CardDescription = styled.span.attrs(applyDefaultTheme)`\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 6px 0px 6px 0px;\n font: normal normal normal 12px/1.286em Roboto;\n letter-spacing: 0.24px;\n min-height: 52px;\n max-height: 52px;\n box-sizing: border-box;\n overflow-wrap: break-word;\n word-break: break-word;\n\n ${props =>\n props.theme.themeProp('color', props.theme.getColor('white'), props.theme.getColor('gray-700'))}\n`;\n\nexport const InstructionsWrapper = styled.div`\n padding-top: 16px;\n min-height: 63px;\n max-height: 63px;\n overflow: hidden;\n flex-shrink: 0;\n`;\n\nexport const CardFooter = styled.div.attrs(applyDefaultTheme)`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0px 16px;\n\n min-height: 52px;\n box-sizing: border-box;\n`;\n\nexport const CardFooterLeft = styled.div`\n display: flex;\n align-items: center;\n > * {\n margin-right: 4px;\n }\n`;\n\nexport const CardFooterRight = styled.div`\n display: flex;\n align-items: center;\n > * {\n margin-left: 4px;\n }\n`;\n\n// ── Checkbox row ──────────────────────────────────────────────────────────────\n\nexport const CardDivider = styled.div.attrs(applyDefaultTheme)`\n height: 1px;\n flex-shrink: 0;\n ${props =>\n props.theme.themeProp(\n 'background',\n props.theme.getColor('gray-600'),\n props.theme.getColor('gray-200')\n )}\n`;\n\nexport const CheckboxRow = styled.div`\n display: flex;\n\n padding: 0px 16px;\n height: 56px;\n box-sizing: border-box;\n flex-shrink: 0;\n`;\n\nexport const CheckboxButton = styled.div.attrs(applyDefaultTheme)`\n opacity: 1;\n flex-shrink: 0;\n cursor: pointer;\n transition: opacity 220ms;\n\n > svg {\n width: 23px;\n height: 100%;\n transition: opacity 120ms;\n opacity: ${props => (props.selected ? 1 : 0.5)};\n }\n`;\n"],"names":["getBorderWidth","props","selected","$softSelected","$hasError","completed","AssetGalleryWrapper","styled","div","attrs","applyDefaultTheme","disabled","css","AssetGalleryGridCard","theme","themeProp","getColor","rgba","$customSelectedBorder","HorizontalBar","HorizontalBarLeft","HorizontalBarRight","StatusIconCircle","span","ThumbnailRow","ThumbnailSpacer","ThumbnailWrapper","ThumbnailBox","ThumbnailSelectedOverlay","ActionsContainer","Action","ConsumerOverlay","CardBody","CardTitle","CardDescription","InstructionsWrapper","CardFooter","CardFooterLeft","CardFooterRight","CardDivider","CheckboxRow","CheckboxButton"],"mappings":";;;;AASA,MAAMA,cAAc,GAAGC,KAAK,IAAI;EAC9B,MAAM;IAAEC,QAAQ;IAAEC,aAAa;IAAEC,SAAS;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAGJ,KAAK,CAAA;EAC/D,OAAOC,QAAQ,IAAIC,aAAa,IAAIC,SAAS,IAAIC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;AACpE,CAAC,CAAA;AAEM,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACtE;AACA;AACA,EAAA,EAAIT,KAAK,IACLA,KAAK,CAACU,QAAQ,IACdC,GAAG,CAAA;AACP;AACA,IAAK,CAAA,CAAA;AACL,EAAC;AAEM,MAAMC,oBAAoB,GAAGN,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAA,EAAkBV,cAAc,CAAA;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAIC,EAAAA,KAAK,IACLA,KAAK,CAACa,KAAK,CAACC,SAAS,CACnB,YAAY,EACZd,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,EAChCf,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,OAAO,CAC9B,CAAC,CAAA;AACL,EAAIf,EAAAA,KAAK,IACLA,KAAK,CAACa,KAAK,CAACC,SAAS,CACnB,cAAc,EACd,CAAC,MAAM;AACL,EAAA,IAAId,KAAK,CAACE,aAAa,EAAE,OAAOc,IAAI,CAAChB,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAA;EAC3E,IAAIf,KAAK,CAACC,QAAQ,EAAE;IAClB,IAAID,KAAK,CAACiB,qBAAqB,EAAE,OAAOjB,KAAK,CAACiB,qBAAqB,CAAC,CAAC,CAAC,CAAA;AACtE,IAAA,OAAOjB,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,CAAA;AACzC,GAAA;AACA,EAAA,IAAIf,KAAK,CAACI,SAAS,EAAE,OAAOJ,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,aAAa,CAAC,CAAA;AAC/D,EAAA,IAAIf,KAAK,CAACG,SAAS,EAAE,OAAOH,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,SAAS,CAAC,CAAA;AAC3D,EAAA,OAAOf,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,CAAA;AACzC,CAAC,GAAG,EACJ,CAAC,MAAM;AACL,EAAA,IAAIf,KAAK,CAACE,aAAa,EAAE,OAAOc,IAAI,CAAChB,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAA;EAC3E,IAAIf,KAAK,CAACC,QAAQ,EAAE;IAClB,IAAID,KAAK,CAACiB,qBAAqB,EAAE,OAAOjB,KAAK,CAACiB,qBAAqB,CAAC,CAAC,CAAC,CAAA;AACtE,IAAA,OAAOjB,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,CAAA;AACzC,GAAA;AACA,EAAA,IAAIf,KAAK,CAACI,SAAS,EAAE,OAAOY,IAAI,CAAChB,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,CAAA;AAC1E,EAAA,IAAIf,KAAK,CAACG,SAAS,EAAE,OAAOa,IAAI,CAAChB,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAA;AACtE,EAAA,OAAOf,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,CAAA;AACzC,CAAC,GACH,CAAC,CAAA;AACL;AACA,EAAA,EAAIf,KAAK,IACLA,KAAK,CAACU,QAAQ,IACdC,GAAG,CAAA;AACP;AACA;AACA,IAAK,CAAA,CAAA;AACL,EAAC;AAIM,MAAMO,aAAa,GAAGZ,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,EAAIT,KAAK,IAAIA,KAAK,CAACa,KAAK,CAACC,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;AACtE,EAAC;AAEYK,MAAAA,iBAAiB,GAAGb,MAAM,CAACC,GAAG,CAAA;AAC3C;AACA;AACA,EAAC;AAEYa,MAAAA,kBAAkB,GAAGd,MAAM,CAACC,GAAG,CAAA;AAC5C;AACA;AACA,EAAC;AAEM,MAAMc,gBAAgB,GAAGf,MAAM,CAACgB,IAAI,CAACd,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAIM,MAAMc,YAAY,GAAGjB,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC/D;AACA;AACA;AACA,EAAA,EAAIT,KAAK,IAAIA,KAAK,CAACa,KAAK,CAACC,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;AACtE,EAAC;AAEYU,MAAAA,eAAe,GAAGlB,MAAM,CAACC,GAAG,CAAA;AACzC;AACA,EAAC;AAEYkB,MAAAA,gBAAgB,GAAGnB,MAAM,CAACC,GAAG,CAAA;AAC1C;AACA,EAAC;AAEM,MAAMmB,YAAY,GAAGpB,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAQT,EAAAA,KAAK,IACLA,KAAK,CAACa,KAAK,CAACC,SAAS,CACnB,OAAO,EACPd,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,EAChCf,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CACjC,CAAC,CAAA;AACT;AACA;AACA,EAAC;AAEM,MAAMY,wBAAwB,GAAGrB,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC3E;AACA;AACA;AACA,WAAaT,EAAAA,KAAK,IAAKA,KAAK,CAACC,QAAQ,GAAG,GAAG,GAAG,CAAE,CAAA;AAChD;AACA;AACA,EAAC;AAEkCK,MAAM,CAACC,GAAG,CAAA;AAC7C;AACA;AACA;AACA;AACA,EAAC;AAEM,MAAMqB,gBAAgB,GAAGtB,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,EAAIG,oBAAoB,CAAA;AACxB;AACA;AACA;AACA,EAAA,EAAIA,oBAAoB,CAAA;AACxB;AACA;AACA,EAAC;AAEYiB,MAAAA,MAAM,GAAGvB,MAAM,CAACC,GAAG,CAAA;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAEYuB,MAAAA,eAAe,GAAGxB,MAAM,CAACC,GAAG,CAAA;AACzC;AACA;AACA;AACA,EAAC;AAIM,MAAMwB,QAAQ,GAAGzB,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC3D;AACA;AACA;AACA;AACA,EAAC;AAEM,MAAMuB,SAAS,GAAG1B,MAAM,CAACgB,IAAI,CAACd,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAIT,EAAAA,KAAK,IACLA,KAAK,CAACa,KAAK,CAACC,SAAS,CAAC,OAAO,EAAEd,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,OAAO,CAAC,EAAEf,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;AACnG,EAAC;AAEM,MAAMkB,eAAe,GAAG3B,MAAM,CAACgB,IAAI,CAACd,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAIT,EAAAA,KAAK,IACLA,KAAK,CAACa,KAAK,CAACC,SAAS,CAAC,OAAO,EAAEd,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,OAAO,CAAC,EAAEf,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;AACnG,EAAC;AAEYmB,MAAAA,mBAAmB,GAAG5B,MAAM,CAACC,GAAG,CAAA;AAC7C;AACA;AACA;AACA;AACA;AACA,EAAC;AAEM,MAAM4B,UAAU,GAAG7B,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAEY2B,MAAAA,cAAc,GAAG9B,MAAM,CAACC,GAAG,CAAA;AACxC;AACA;AACA;AACA;AACA;AACA,EAAC;AAEY8B,MAAAA,eAAe,GAAG/B,MAAM,CAACC,GAAG,CAAA;AACzC;AACA;AACA;AACA;AACA;AACA,EAAC;AAIM,MAAM+B,WAAW,GAAGhC,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AAC9D;AACA;AACA,EAAIT,EAAAA,KAAK,IACLA,KAAK,CAACa,KAAK,CAACC,SAAS,CACnB,YAAY,EACZd,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CAAC,EAChCf,KAAK,CAACa,KAAK,CAACE,QAAQ,CAAC,UAAU,CACjC,CAAC,CAAA;AACL,EAAC;AAEYwB,MAAAA,WAAW,GAAGjC,MAAM,CAACC,GAAG,CAAA;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAEM,MAAMiC,cAAc,GAAGlC,MAAM,CAACC,GAAG,CAACC,KAAK,CAACC,iBAAiB,CAAC,CAAA;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAeT,EAAAA,KAAK,IAAKA,KAAK,CAACC,QAAQ,GAAG,CAAC,GAAG,GAAI,CAAA;AAClD;AACA;;;;"}
|
package/icons/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { ReactComponent as AudioIcon } from './audio.svg';
|
|
|
8
8
|
import { ReactComponent as BellIcon } from './bell.svg';
|
|
9
9
|
import { ReactComponent as CheckCircleIcon } from './check-circle-filled.svg';
|
|
10
10
|
import { ReactComponent as CheckRectangleIcon } from './check-rectangle-filled.svg';
|
|
11
|
+
import { ReactComponent as CheckRectangleOutlineIcon } from './check-rectangle-outline.svg';
|
|
11
12
|
import { ReactComponent as CloseIcon } from './close.svg';
|
|
12
13
|
import { ReactComponent as CorporateIcon } from './corporate.svg';
|
|
13
14
|
import { ReactComponent as DeleteContextMenuIcon } from './delete-context-menu.svg';
|
|
@@ -49,6 +50,7 @@ export {
|
|
|
49
50
|
BellIcon,
|
|
50
51
|
CheckCircleIcon,
|
|
51
52
|
CheckRectangleIcon,
|
|
53
|
+
CheckRectangleOutlineIcon,
|
|
52
54
|
CloseIcon,
|
|
53
55
|
CorporateIcon,
|
|
54
56
|
DeleteContextMenuIcon,
|