@ntbjs/react-components 2.0.17 → 2.0.18-rc.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../src/components/data/Tabs/Tabs.js"],"sourcesContent":["import { isEmpty, isNil } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { Children, Fragment, useEffect, useMemo, useRef, useState } from 'react';\nimport Tab from '../Tab';\nimport * as S from './Tabs.styled';\n\nfunction buildTabs(children) {\n const tabs = [];\n function walk(nodes, prefix) {\n Children.forEach(nodes, (child, index) => {\n if (isNil(child)) {\n return;\n }\n\n const segment = child.key != null ? `k:${child.key}` : `i:${index}`;\n const path = prefix === '' ? segment : `${prefix}.${segment}`;\n\n if (child.type === Fragment) {\n walk(child.props?.children, path);\n }\n\n if (child.props?.hidden) {\n return;\n }\n\n if (child.type === Tab) {\n tabs.push({\n key: child.props?.id != null ? `id:${child.props.id}` : path,\n id: child.props?.id,\n trigger: child.props?.trigger,\n content: child.props?.children\n });\n }\n });\n }\n\n walk(children, '');\n return tabs;\n}\n\nfunction getInitialActiveKey(children, defaultActiveId) {\n const tabs = buildTabs(children);\n if (!isNil(defaultActiveId)) {\n const matchedTab = tabs.find(tab => tab.id === defaultActiveId);\n if (matchedTab) return matchedTab.key;\n }\n return tabs[0]?.key;\n}\n\n/**\n * Tabs that let you group content\n *\n * ### Import\n *\n * ``` js\n * import { Tabs, Tab } from '@ntbjs/react-components/data'\n * // or\n * import Tabs from '@ntbjs/react-components/data/Tabs'\n * import Tab from '@ntbjs/react-components/data/Tab'\n * ```\n * ### Tab - Tabs - Badge\n * `Tab`, `Tabs` and `Badge` must be used in order to implement the component.\n * ```\n * <Tabs>\n * <Tab trigger={<Badge>Tab title</Badge>}>\n * Tab content\n * </Tab>\n * </Tabs>\n * ```\n * ## Wrapping\n * Content (data displayed inside the `Tab`) is wrapped by `Tab`:\n * ```\n * <Tab>\n * Tab content\n * </Tab>\n * ```\n * ### Badge\n * The tab title is wrapped by `Badge` (which is passed as the trigger prop inside `Tab`):\n *\n *Props that can be passed inside the `Badge` component are: `badgeContent`, `active`, `error`, `warning` (check out the `Badge` component documentation for props options).\n * ```\n * <Tab trigger={<Badge>Tab title</Badge>}>\n * Tab content\n * </Tab>\n * ```\n * All tabs are wrapped by `Tabs`:\n * ```\n * <Tabs>\n * <Tab trigger={<Badge>Tab title 1</Badge>}>Tab content 1</Tab>\n * <Tab trigger={<Badge>Tab title 2</Badge>}>Tab content 2</Tab>\n * <Tab trigger={<Badge>Tab title 3</Badge>}>Tab content 3</Tab>\n * <Tab trigger={<Badge>Tab title 4</Badge>}>Tab content 4</Tab>\n * <Tab trigger={<Badge>Tab title 5</Badge>}>Tab content 5</Tab>\n * </Tabs>\n * ```\n * ## Props\n * A `backgroundColor` prop can be passed as a string to set the `Tabs` component background color.\n * ```\n * <Tabs backgroundColor={'#bfe0d5'}>\n * <Tab trigger={<Badge>Tab title 1</Badge>}>Tab content 1</Tab>\n * <Tab trigger={<Badge>Tab title 2</Badge>}>Tab content 2</Tab>\n * </Tabs>\n * ```\n * ### hidden\n * A single Tab can be hidden by using the `hidden={true||false}` prop (this is useful when the tab has empty content):\n * ```\n * <Tabs>\n * <Tab hidden={true} trigger={<Badge>Tab title 1</Badge>}></Tab>\n * <Tab trigger={<Badge>Tab title 2</Badge>}>Tab content 2</Tab>\n * <Tab hidden={true} trigger={<Badge>Tab title 3</Badge>}></Tab>\n * <Tab trigger={<Badge>Tab title 4</Badge>}>Tab content 4</Tab>\n * <Tab hidden={true} trigger={<Badge>Tab title 5</Badge>}></Tab>\n * </Tabs>\n * ```\n * ### Default minHeight\n * A `defaultMinHeight` prop can be passed to the Tabs component to set a predefined min-height.\n *\n * Pass `defaultMinHeight={'value px'}` on the `Tabs` component to use this feature.\n * ```\n * <Tabs defaultMinHeight={'500px'}>\n * <Tab trigger={<Badge>Tab title 1</Badge>}>Tab content 1</Tab>\n * <Tab trigger={<Badge>Tab title 2</Badge>}>Tab content 2</Tab>\n * </Tabs>\n * ```\n *\n * ### Custom padding\n * A `customPadding` prop can be passed to the Tabs component to set a custom padding on the tabs. The custom padding is applied the the Tabs options,\n * not to the content within the Tabs.\n *\n * Pass `customPadding={'value px'}` on the `Tabs` component to use this feature.\n * ```\n * <Tabs customPadding={'40px'}>\n * <Tab trigger={<Badge>Tab title 1</Badge>}>Tab content 1</Tab>\n * <Tab trigger={<Badge>Tab title 2</Badge>}>Tab content 2</Tab>\n * </Tabs>\n * ```\n */\nconst Tabs = React.forwardRef(function Tabs(\n {\n children,\n defaultMinHeight = '',\n customPadding = 0,\n onTabClick = () => {},\n defaultActiveId,\n ...props\n },\n forwardedRef\n) {\n const [activeTab, setActiveTab] = useState(() =>\n getInitialActiveKey(children, defaultActiveId)\n );\n const contentRef = useRef(null);\n\n const tabs = useMemo(() => {\n const built = buildTabs(children);\n\n if (!built.some(tab => tab.key === activeTab)) {\n setActiveTab(built[0]?.key);\n }\n\n return built;\n }, [children]);\n\n const handleTabClick = tab => {\n setActiveTab(tab.key);\n let triggerText = '';\n\n if (tab.trigger && tab.trigger.props && tab.trigger.props.children) {\n triggerText = tab.trigger.props.children;\n }\n if (onTabClick) {\n onTabClick({\n ...tab,\n triggerText: triggerText\n });\n }\n };\n\n useEffect(() => {\n if (isNil(defaultActiveId)) return;\n const matchedTab = tabs.find(tab => tab.id === defaultActiveId);\n if (matchedTab) handleTabClick(matchedTab);\n }, []); // eslint-disable-line\n\n return (\n <S.Tabs ref={forwardedRef} {...props} role=\"tablist\">\n <S.TabHeaders custompadding={customPadding}>\n {tabs.map(tab => (\n <S.TabHeader\n key={tab.key}\n hidden={tab.hidden}\n $active={tab.key === activeTab}\n onClick={() => handleTabClick(tab)}\n role=\"tab\"\n >\n {tab.trigger}\n </S.TabHeader>\n ))}\n </S.TabHeaders>\n <S.TabHeaderBorder custompadding={customPadding}></S.TabHeaderBorder>\n <S.TabContent>\n {tabs.map(tab => (\n <div\n ref={tab.key === activeTab?.key ? contentRef : null}\n key={tab.key}\n role=\"tabpanel\"\n hidden={tab.key !== activeTab}\n style={{\n minHeight: !isEmpty(defaultMinHeight) ? defaultMinHeight : ''\n }}\n >\n {tab.content}\n </div>\n ))}\n </S.TabContent>\n </S.Tabs>\n );\n});\n\nTabs.propTypes = {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n /**\n * Whether `Tabs` component has a background color\n */\n backgroundColor: PropTypes.string,\n /**\n * Whether `tabs` will have a predefined min-height.\n */\n defaultMinHeight: PropTypes.string,\n /**\n * Custom padding.\n */\n customPadding: PropTypes.string,\n /**\n * Callback for clicked tab\n */\n onTabClick: PropTypes.func,\n /**\n * Initially-selected tab, matched against each `Tab`'s `id` prop.\n * Defaults to the first tab when omitted. Selection is tracked by each\n * `Tab`'s `id`, falling back to its React `key` and then its position, so\n * tabs keep their selection across reorders as long as they carry a stable\n * `id` or `key`.\n */\n defaultActiveId: PropTypes.string\n};\n\nexport default Tabs;\n"],"names":["buildTabs","children","tabs","walk","nodes","prefix","Children","forEach","child","index","isNil","segment","key","path","type","Fragment","props","hidden","Tab","push","id","trigger","content","getInitialActiveKey","defaultActiveId","matchedTab","find","tab","Tabs","React","forwardRef","defaultMinHeight","customPadding","onTabClick","forwardedRef","activeTab","setActiveTab","useState","contentRef","useRef","useMemo","built","some","handleTabClick","triggerText","useEffect","createElement","S","_extends","ref","role","custompadding","map","$active","onClick","style","minHeight","isEmpty","propTypes","process","env","NODE_ENV","PropTypes","oneOfType","array","object","backgroundColor","string","func"],"mappings":"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"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../../src/components/data/Tabs/Tabs.js"],"sourcesContent":["import { isEmpty, isNil } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { Children, Fragment, useEffect, useMemo, useRef, useState } from 'react';\nimport Tab from '../Tab';\nimport * as S from './Tabs.styled';\n\nfunction buildTabs(children) {\n const tabs = [];\n function walk(nodes, prefix) {\n Children.forEach(nodes, (child, index) => {\n if (isNil(child)) {\n return;\n }\n\n const segment = child.key != null ? `k:${child.key}` : `i:${index}`;\n const path = prefix === '' ? segment : `${prefix}.${segment}`;\n\n if (child.type === Fragment) {\n walk(child.props?.children, path);\n }\n\n if (child.props?.hidden) {\n return;\n }\n\n if (child.type === Tab) {\n tabs.push({\n key: child.props?.id != null ? `id:${child.props.id}` : path,\n id: child.props?.id,\n trigger: child.props?.trigger,\n content: child.props?.children\n });\n }\n });\n }\n\n walk(children, '');\n return tabs;\n}\n\nfunction getInitialActiveKey(children, defaultActiveId) {\n const tabs = buildTabs(children);\n if (!isNil(defaultActiveId)) {\n const matchedTab = tabs.find(tab => tab.id === defaultActiveId);\n if (matchedTab) return matchedTab.key;\n }\n return tabs[0]?.key;\n}\n\n/**\n * Tabs that let you group content\n *\n * ### Import\n *\n * ``` js\n * import { Tabs, Tab } from '@ntbjs/react-components/data'\n * // or\n * import Tabs from '@ntbjs/react-components/data/Tabs'\n * import Tab from '@ntbjs/react-components/data/Tab'\n * ```\n * ### Tab - Tabs - Badge\n * `Tab`, `Tabs` and `Badge` must be used in order to implement the component.\n * ```\n * <Tabs>\n * <Tab trigger={<Badge>Tab title</Badge>}>\n * Tab content\n * </Tab>\n * </Tabs>\n * ```\n * ## Wrapping\n * Content (data displayed inside the `Tab`) is wrapped by `Tab`:\n * ```\n * <Tab>\n * Tab content\n * </Tab>\n * ```\n * ### Badge\n * The tab title is wrapped by `Badge` (which is passed as the trigger prop inside `Tab`):\n *\n *Props that can be passed inside the `Badge` component are: `badgeContent`, `active`, `error`, `warning` (check out the `Badge` component documentation for props options).\n * ```\n * <Tab trigger={<Badge>Tab title</Badge>}>\n * Tab content\n * </Tab>\n * ```\n * All tabs are wrapped by `Tabs`:\n * ```\n * <Tabs>\n * <Tab trigger={<Badge>Tab title 1</Badge>}>Tab content 1</Tab>\n * <Tab trigger={<Badge>Tab title 2</Badge>}>Tab content 2</Tab>\n * <Tab trigger={<Badge>Tab title 3</Badge>}>Tab content 3</Tab>\n * <Tab trigger={<Badge>Tab title 4</Badge>}>Tab content 4</Tab>\n * <Tab trigger={<Badge>Tab title 5</Badge>}>Tab content 5</Tab>\n * </Tabs>\n * ```\n * ## Props\n * A `backgroundColor` prop can be passed as a string to set the `Tabs` component background color.\n * ```\n * <Tabs backgroundColor={'#bfe0d5'}>\n * <Tab trigger={<Badge>Tab title 1</Badge>}>Tab content 1</Tab>\n * <Tab trigger={<Badge>Tab title 2</Badge>}>Tab content 2</Tab>\n * </Tabs>\n * ```\n * ### hidden\n * A single Tab can be hidden by using the `hidden={true||false}` prop (this is useful when the tab has empty content):\n * ```\n * <Tabs>\n * <Tab hidden={true} trigger={<Badge>Tab title 1</Badge>}></Tab>\n * <Tab trigger={<Badge>Tab title 2</Badge>}>Tab content 2</Tab>\n * <Tab hidden={true} trigger={<Badge>Tab title 3</Badge>}></Tab>\n * <Tab trigger={<Badge>Tab title 4</Badge>}>Tab content 4</Tab>\n * <Tab hidden={true} trigger={<Badge>Tab title 5</Badge>}></Tab>\n * </Tabs>\n * ```\n * ### Default minHeight\n * A `defaultMinHeight` prop can be passed to the Tabs component to set a predefined min-height.\n *\n * Pass `defaultMinHeight={'value px'}` on the `Tabs` component to use this feature.\n * ```\n * <Tabs defaultMinHeight={'500px'}>\n * <Tab trigger={<Badge>Tab title 1</Badge>}>Tab content 1</Tab>\n * <Tab trigger={<Badge>Tab title 2</Badge>}>Tab content 2</Tab>\n * </Tabs>\n * ```\n *\n * ### Custom padding\n * A `customPadding` prop can be passed to the Tabs component to set a custom padding on the tabs. The custom padding is applied the the Tabs options,\n * not to the content within the Tabs.\n *\n * Pass `customPadding={'value px'}` on the `Tabs` component to use this feature.\n * ```\n * <Tabs customPadding={'40px'}>\n * <Tab trigger={<Badge>Tab title 1</Badge>}>Tab content 1</Tab>\n * <Tab trigger={<Badge>Tab title 2</Badge>}>Tab content 2</Tab>\n * </Tabs>\n * ```\n */\nconst Tabs = React.forwardRef(function Tabs(\n {\n children,\n defaultMinHeight = '',\n customPadding = 0,\n onTabClick = () => {},\n defaultActiveId,\n ...props\n },\n forwardedRef\n) {\n const [activeTab, setActiveTab] = useState(() => getInitialActiveKey(children, defaultActiveId));\n const contentRef = useRef(null);\n\n const tabs = useMemo(() => {\n const built = buildTabs(children);\n\n if (!built.some(tab => tab.key === activeTab)) {\n setActiveTab(built[0]?.key);\n }\n\n return built;\n }, [children]);\n\n const handleTabClick = tab => {\n setActiveTab(tab.key);\n let triggerText = '';\n\n if (tab.trigger && tab.trigger.props && tab.trigger.props.children) {\n triggerText = tab.trigger.props.children;\n }\n if (onTabClick) {\n onTabClick({\n ...tab,\n triggerText: triggerText\n });\n }\n };\n\n useEffect(() => {\n if (isNil(defaultActiveId)) return;\n const matchedTab = tabs.find(tab => tab.id === defaultActiveId);\n if (matchedTab) handleTabClick(matchedTab);\n }, []); // eslint-disable-line\n\n return (\n <S.Tabs ref={forwardedRef} {...props} role=\"tablist\">\n <S.TabHeaders custompadding={customPadding}>\n {tabs.map(tab => (\n <S.TabHeader\n key={tab.key}\n hidden={tab.hidden}\n $active={tab.key === activeTab}\n onClick={() => handleTabClick(tab)}\n role=\"tab\"\n >\n {tab.trigger}\n </S.TabHeader>\n ))}\n </S.TabHeaders>\n <S.TabHeaderBorder custompadding={customPadding}></S.TabHeaderBorder>\n <S.TabContent>\n {tabs.map(tab => (\n <div\n ref={tab.key === activeTab?.key ? contentRef : null}\n key={tab.key}\n role=\"tabpanel\"\n hidden={tab.key !== activeTab}\n style={{\n minHeight: !isEmpty(defaultMinHeight) ? defaultMinHeight : ''\n }}\n >\n {tab.content}\n </div>\n ))}\n </S.TabContent>\n </S.Tabs>\n );\n});\n\nTabs.propTypes = {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n /**\n * Whether `Tabs` component has a background color\n */\n backgroundColor: PropTypes.string,\n /**\n * Whether `tabs` will have a predefined min-height.\n */\n defaultMinHeight: PropTypes.string,\n /**\n * Custom padding.\n */\n customPadding: PropTypes.string,\n /**\n * Callback for clicked tab\n */\n onTabClick: PropTypes.func,\n /**\n * Initially-selected tab, matched against each `Tab`'s `id` prop.\n * Defaults to the first tab when omitted. Selection is tracked by each\n * `Tab`'s `id`, falling back to its React `key` and then its position, so\n * tabs keep their selection across reorders as long as they carry a stable\n * `id` or `key`.\n */\n defaultActiveId: PropTypes.string\n};\n\nexport default Tabs;\n"],"names":["buildTabs","children","tabs","walk","nodes","prefix","Children","forEach","child","index","isNil","segment","key","path","type","Fragment","props","hidden","Tab","push","id","trigger","content","getInitialActiveKey","defaultActiveId","matchedTab","find","tab","Tabs","React","forwardRef","defaultMinHeight","customPadding","onTabClick","forwardedRef","activeTab","setActiveTab","useState","contentRef","useRef","useMemo","built","some","handleTabClick","triggerText","useEffect","createElement","S","_extends","ref","role","custompadding","map","$active","onClick","style","minHeight","isEmpty","propTypes","process","env","NODE_ENV","PropTypes","oneOfType","array","object","backgroundColor","string","func"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React__default, { useRef, useState, useMemo, useEffect, useCallback } from 'react';
3
3
  import useMergedRefs from '@restart/hooks/useMergedRefs';
4
- import { throttle } from 'lodash';
4
+ import { throttle, sum } from 'lodash';
5
5
  import PropTypes from 'prop-types';
6
6
  import ResizeObserver from 'resize-observer-polyfill';
7
7
  import { assetShape } from '../asset.propType.js';
@@ -42,6 +42,7 @@ const AssetGalleryBase = React__default.forwardRef(function AssetGalleryBase({
42
42
  const SECONDARY_SCROLL_BUFFER_HEIGHT = 500;
43
43
  const GRID_VIEW_MODE_ASSET_MIN_WIDTH = 300;
44
44
  const GRID_VIEW_MODE_ASSET_HEIGHT = hideConsentSummary ? 503 : 556;
45
+ const COMPACT_VIEW_MODE_ASSET_MIN_WIDTH = 76;
45
46
  const MISSING_WIDTH_PLACEHOLDER = 1920;
46
47
  const MISSING_HEIGHT_PLACEHOLDER = 1080;
47
48
  const isBrowser = typeof window !== 'undefined';
@@ -134,11 +135,59 @@ const AssetGalleryBase = React__default.forwardRef(function AssetGalleryBase({
134
135
  } else {
135
136
  if (minimumRowAspectRatio.current > 0) {
136
137
  let row = [];
137
- let translateX = 0;
138
138
  let translateY = 0;
139
- let rowAspectRatio = 0;
140
139
  let lastGroup = null;
141
140
  const computedAssets = [];
141
+ const getAspectRatio = asset => Math.max(calculateAspectRatio(asset.width || MISSING_WIDTH_PLACEHOLDER, asset.height || MISSING_HEIGHT_PLACEHOLDER), COMPACT_VIEW_MODE_ASSET_MIN_WIDTH / MAXIMUM_ROW_HEIGHT);
142
+ const getRowAspectRatio = rowAssets => sum(rowAssets.map(getAspectRatio));
143
+ const getRowWidth = rowAssets => assetGalleryWidth.current - SPACE_BETWEEN_ASSETS * (rowAssets.length - 1);
144
+ const getWidths = (rowAssets, rowHeight) => rowAssets.map(rowAsset => Math.max(getAspectRatio(rowAsset) * rowHeight, COMPACT_VIEW_MODE_ASSET_MIN_WIDTH));
145
+ const fitRowHeight = (rowAssets, rowWidth, maxHeight) => {
146
+ const aspectRatios = rowAssets.map(getAspectRatio).sort((a, b) => a - b);
147
+ let rowHeight = maxHeight;
148
+ for (let held = 1; held < aspectRatios.length; held++) {
149
+ if (aspectRatios[held - 1] * rowHeight > COMPACT_VIEW_MODE_ASSET_MIN_WIDTH) break;
150
+ rowHeight = Math.min(rowHeight, (rowWidth - held * COMPACT_VIEW_MODE_ASSET_MIN_WIDTH) / sum(aspectRatios.slice(held)));
151
+ }
152
+ return rowHeight;
153
+ };
154
+ const startsNewRow = asset => {
155
+ const candidate = [...row, asset];
156
+ const rowWidth = getRowWidth(candidate);
157
+ if (candidate.length * COMPACT_VIEW_MODE_ASSET_MIN_WIDTH > rowWidth) return true;
158
+ const maxHeight = Math.min(MAXIMUM_ROW_HEIGHT, rowWidth / getRowAspectRatio(candidate));
159
+ const rowHeight = fitRowHeight(candidate, rowWidth, maxHeight);
160
+ if (rowHeight === maxHeight) return false;
161
+ const heightLoss = 1 - rowHeight / MAXIMUM_ROW_HEIGHT;
162
+ const widthLoss = 1 - getRowAspectRatio(row) * MAXIMUM_ROW_HEIGHT / getRowWidth(row);
163
+ return widthLoss < heightLoss;
164
+ };
165
+ const closeRow = justify => {
166
+ const rowWidth = getRowWidth(row);
167
+ const rowHeight = fitRowHeight(row, rowWidth, rowWidth / Math.max(getRowAspectRatio(row), minimumRowAspectRatio.current));
168
+ let widths = getWidths(row, rowHeight);
169
+ if (justify) {
170
+ const scale = rowWidth / sum(widths);
171
+ widths = widths.map(width => width * scale);
172
+ }
173
+ let translateX = 0;
174
+ row.forEach((rowAsset, index) => {
175
+ computedAssets.push({
176
+ ...rowAsset,
177
+ layout: {
178
+ type: 'asset',
179
+ width: Math.round(widths[index]),
180
+ height: Math.round(rowHeight),
181
+ translateX: Math.round(translateX),
182
+ translateY: Math.round(translateY),
183
+ hasHeightAndWidth: Boolean(rowAsset.width && rowAsset.height)
184
+ }
185
+ });
186
+ translateX += widths[index] + SPACE_BETWEEN_ASSETS;
187
+ });
188
+ row = [];
189
+ translateY += rowHeight + SPACE_UNDER_ASSETS;
190
+ };
142
191
  assetsProp.forEach((asset, index) => {
143
192
  if (asset.group && asset.group !== lastGroup) {
144
193
  computedAssets.push({
@@ -147,38 +196,18 @@ const AssetGalleryBase = React__default.forwardRef(function AssetGalleryBase({
147
196
  layout: {
148
197
  type: 'groupLabel',
149
198
  height: 50,
150
- translateX: Math.round(translateX),
199
+ translateX: 0,
151
200
  translateY: Math.round(translateY)
152
201
  }
153
202
  });
154
203
  lastGroup = asset.group;
155
204
  translateY += 50 + SPACE_UNDER_ASSETS;
156
205
  }
157
- rowAspectRatio += calculateAspectRatio(asset.width || MISSING_WIDTH_PLACEHOLDER, asset.height || MISSING_HEIGHT_PLACEHOLDER);
206
+ if (row.length > 0 && startsNewRow(asset)) closeRow(true);
158
207
  row.push(asset);
159
- if (rowAspectRatio >= minimumRowAspectRatio.current || index + 1 === assetsProp.length || assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group) {
160
- rowAspectRatio = Math.max(rowAspectRatio, minimumRowAspectRatio.current);
161
- const totalDesiredWidthOfImages = assetGalleryWidth.current - SPACE_BETWEEN_ASSETS * (row.length - 1);
162
- const rowHeight = totalDesiredWidthOfImages / rowAspectRatio;
163
- row.forEach(rowAsset => {
164
- const assetWidth = rowHeight * calculateAspectRatio(rowAsset.width || MISSING_WIDTH_PLACEHOLDER, rowAsset.height || MISSING_HEIGHT_PLACEHOLDER);
165
- computedAssets.push({
166
- ...rowAsset,
167
- layout: {
168
- type: 'asset',
169
- width: Math.round(assetWidth),
170
- height: Math.round(rowHeight),
171
- translateX: Math.round(translateX),
172
- translateY: Math.round(translateY),
173
- hasHeightAndWidth: Boolean(rowAsset.width && rowAsset.height)
174
- }
175
- });
176
- translateX += assetWidth + SPACE_BETWEEN_ASSETS;
177
- });
178
- row = [];
179
- rowAspectRatio = 0;
180
- translateY += rowHeight + SPACE_UNDER_ASSETS;
181
- translateX = 0;
208
+ const isFull = getRowAspectRatio(row) >= minimumRowAspectRatio.current;
209
+ if (isFull || index + 1 === assetsProp.length || assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group) {
210
+ closeRow(isFull);
182
211
  }
183
212
  });
184
213
  calculatedAssets.current = computedAssets;
@@ -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';\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 hideConsentSummary,\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 = hideConsentSummary ? 503 : 556;\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 $isVideo={asset.fileType?.toLowerCase() === 'video'}\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 hideConsentSummary={hideConsentSummary}\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 /**\n * When true, hides the consent summary footer on grid cards (CardFooter + CardDivider). Default: false.\n */\n hideConsentSummary: PropTypes.bool\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","hideConsentSummary","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","$isVideo","fileType","toLowerCase","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":";;;;;;;;;;;;AAUMA,MAAAA,gBAAgB,GAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,gBAAgBA,CACjE;AACEG,EAAAA,MAAM,EAAEC,UAAU;EAClBC,iBAAiB;EACjBC,WAAW;EACXC,QAAQ;EACRC,kBAAkB;EAClBC,UAAU;EACVC,oBAAoB;EACpBC,iBAAiB;EACjBC,eAAe;EACfC,iBAAiB;EACjBC,cAAc;EACdC,oBAAoB;AACpBC,EAAAA,aAAa,EAAEC,iBAAiB;EAChCC,0BAA0B;EAC1BC,SAAS;EACTC,kBAAkB;EAClB,GAAGC,KAAAA;AACL,CAAC,EACDC,YAAY,EACZ;AAEA,EAAA,MAAMC,mBAAmB,GAAGC,MAAM,EAAE,CAAA;AACpC,EAAA,MAAMC,sBAAsB,GAAGC,aAAa,CAACJ,YAAY,EAAEC,mBAAmB,CAAC,CAAA;AAE/E,EAAA,MAAMI,iBAAiB,GAAGH,MAAM,CAAC,CAAC,CAAC,CAAA;AACnC,EAAA,MAAMI,qBAAqB,GAAGJ,MAAM,CAAC,CAAC,CAAC,CAAA;AAGvC,EAAA,MAAMK,gBAAgB,GAAGL,MAAM,CAAC,EAAE,CAAC,CAAA;EACnC,MAAM,CAACrB,MAAM,EAAE2B,SAAS,CAAC,GAAGC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAGxC,EAAA,MAAMC,kBAAkB,GAAGC,OAAO,CAChC,MAAO1B,QAAQ,KAAK,MAAM,GAAG,GAAG,GAAGC,kBAAmB,EACtD,CAACD,QAAQ,EAAEC,kBAAkB,CAC/B,CAAC,CAAA;EACD,MAAM0B,oBAAoB,GAAG,CAAC,CAAA;EAC9B,MAAMC,kBAAkB,GAAG,CAAC,CAAA;EAC5B,MAAMC,4BAA4B,GAAG,IAAI,CAAA;EACzC,MAAMC,8BAA8B,GAAG,GAAG,CAAA;EAC1C,MAAMC,8BAA8B,GAAG,GAAG,CAAA;AAC1C,EAAA,MAAMC,2BAA2B,GAAGnB,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAA;EAClE,MAAMoB,yBAAyB,GAAG,IAAI,CAAA;EACtC,MAAMC,0BAA0B,GAAG,IAAI,CAAA;AAEvC,EAAA,MAAMC,SAAS,GAAG,OAAOC,MAAM,KAAK,WAAW,CAAA;AAE/C,EAAA,MAAM3B,aAAa,GAAGC,iBAAiB,IAAI0B,MAAM,CAAA;EAGjD,MAAMC,eAAe,GAAGpB,MAAM,CAACkB,SAAS,GAAG1B,aAAa,CAAC6B,WAAW,GAAG,CAAC,CAAC,CAAA;EACzE,MAAMC,aAAa,GAAGtB,MAAM,CAACkB,SAAS,GAAG1B,aAAa,CAAC6B,WAAW,GAAG,CAAC,CAAC,CAAA;AACvE,EAAA,MAAME,eAAe,GAAGvB,MAAM,CAAC,MAAM,CAAC,CAAA;AAGtCwB,EAAAA,yBAAyB,CAAC,MAAM;AAC9B,IAAA,IAAI,CAACzB,mBAAmB,CAAC0B,OAAO,EAAE,OAAA;AAElC,IAAA,MAAMC,iBAAiB,GAAGC,QAAQ,CAACC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAE/C,IAAA,MAAMC,cAAc,GAAG,IAAIC,cAAc,CAACJ,iBAAiB,CAAC,CAAA;AAE5DG,IAAAA,cAAc,CAACE,OAAO,CAAChC,mBAAmB,CAAC0B,OAAO,CAAC,CAAA;IAEnD,SAASG,QAAQA,CAACI,OAAO,EAAE;AACzBA,MAAAA,OAAO,CAACC,OAAO,CAACC,KAAK,IAAI;QAEvB,IAAI/B,iBAAiB,CAACsB,OAAO,KAAKS,KAAK,CAACC,WAAW,CAACC,KAAK,EAAE,OAAA;QAC3DjB,MAAM,CAACkB,qBAAqB,CAAC,MAAM;AACjClC,UAAAA,iBAAiB,CAACsB,OAAO,GAAGS,KAAK,CAACC,WAAW,CAACC,KAAK,CAAA;AACnDE,UAAAA,IAAI,EAAE,CAAA;AACR,SAAC,CAAC,CAAA;AACJ,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,OAAO,MAAM;AACXT,MAAAA,cAAc,CAACU,SAAS,CAACxC,mBAAmB,CAAC0B,OAAO,CAAC,CAAA;KACtD,CAAA;GACF,EAAE,CAAC7C,UAAU,EAAEmB,mBAAmB,EAAES,kBAAkB,CAAC,CAAC,CAAA;AAGzDgC,EAAAA,SAAS,CAAC,MAAM;AACdF,IAAAA,IAAI,EAAE,CAAA;AACR,GAAC,EAAE,CAAC9B,kBAAkB,EAAE5B,UAAU,CAAC,CAAC,CAAA;EAEpC,MAAM0D,IAAI,GAAGA,MAAM;AACjBG,IAAAA,gCAAgC,EAAE,CAAA;AAClCC,IAAAA,eAAe,EAAE,CAAA;AACjBC,IAAAA,mBAAmB,EAAE,CAAA;GACtB,CAAA;EAED,MAAMF,gCAAgC,GAAGA,MAAM;AAE7C,IAAA,IAAItC,iBAAiB,CAACsB,OAAO,GAAG,CAAC,EAAE;MACjCrB,qBAAqB,CAACqB,OAAO,GAAGmB,oBAAoB,CAClDzC,iBAAiB,CAACsB,OAAO,EACzBjB,kBACF,CAAC,CAAA;AACH,KAAA;GACD,CAAA;EAGD,MAAMkC,eAAe,GAAGA,MAAM;AAE5B,IAAA,MAAMG,iBAAiB,GAAGjE,UAAU,CAACkE,MAAM,CAACC,CAAC,IAAI,CAACA,CAAC,CAACC,GAAG,CAAC,CAAA;AACxD,IAAA,IAAIH,iBAAiB,CAACI,MAAM,GAAG,CAAC,EAAE;MAChCrE,UAAU,GAAGA,UAAU,CAACkE,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACC,GAAG,CAAC,CAAA;AAC1CH,MAAAA,iBAAiB,CAACZ,OAAO,CAACc,CAAC,IACzBG,OAAO,CAACC,IAAI,CACV,kFAAkF,EAClFJ,CACF,CACF,CAAC,CAAA;AACH,KAAA;IAEA,IAAIhE,QAAQ,KAAK,MAAM,IAAIoB,iBAAiB,CAACsB,OAAO,GAAG,CAAC,EAAE;MAExD,IAAI2B,GAAG,GAAG,EAAE,CAAA;MACZ,IAAIC,UAAU,GAAG,CAAC,CAAA;MAClB,IAAIC,UAAU,GAAG,CAAC,CAAA;MAClB,MAAMC,cAAc,GAAG,EAAE,CAAA;MACzB,IAAIC,SAAS,GAAG,IAAI,CAAA;AAIpB,MAAA,MAAMC,sBAAsB,GAC1BC,IAAI,CAACC,KAAK,CAACxD,iBAAiB,CAACsB,OAAO,GAAGX,8BAA8B,CAAC,IAAI,CAAC,CAAA;AAG7E,MAAA,MAAM8C,iBAAiB,GACrBzD,iBAAiB,CAACsB,OAAO,GAAGgC,sBAAsB,GAClD/C,oBAAoB,GACpBA,oBAAoB,GAAG+C,sBAAsB,CAAA;AAE/C7E,MAAAA,UAAU,CAACqD,OAAO,CAAC,CAAC4B,KAAK,EAAEC,KAAK,KAAK;QAEnC,IAAID,KAAK,CAACE,KAAK,IAAIF,KAAK,CAACE,KAAK,KAAKP,SAAS,EAAE;UAC5CD,cAAc,CAACS,IAAI,CAAC;YAClBC,KAAK,EAAEJ,KAAK,CAACE,KAAK;YAClBf,GAAG,EAAEa,KAAK,CAACb,GAAG;AACdkB,YAAAA,MAAM,EAAE;AACNC,cAAAA,IAAI,EAAE,YAAY;AAClBC,cAAAA,MAAM,EAAE,EAAE;AACVf,cAAAA,UAAU,EAAEK,IAAI,CAACW,KAAK,CAAChB,UAAU,CAAC;AAClCC,cAAAA,UAAU,EAAEI,IAAI,CAACW,KAAK,CAACf,UAAU,CAAA;AACnC,aAAA;AACF,WAAC,CAAC,CAAA;UACFE,SAAS,GAAGK,KAAK,CAACE,KAAK,CAAA;UACvBT,UAAU,IAAI,EAAE,GAAG3C,kBAAkB,CAAA;AACvC,SAAA;AAEAyC,QAAAA,GAAG,CAACY,IAAI,CAACH,KAAK,CAAC,CAAA;AAEf,QAAA,IACET,GAAG,CAACH,MAAM,KAAKQ,sBAAsB,IACrCK,KAAK,GAAG,CAAC,KAAKlF,UAAU,CAACqE,MAAM,IAC9BrE,UAAU,CAACkF,KAAK,GAAG,CAAC,CAAC,EAAEC,KAAK,IAAInF,UAAU,CAACkF,KAAK,GAAG,CAAC,CAAC,CAACC,KAAK,KAAKF,KAAK,CAACE,KAAM,EAC7E;UACA,MAAMO,SAAS,GAAGvD,2BAA2B,CAAA;AAE7CqC,UAAAA,GAAG,CAACnB,OAAO,CAACsC,QAAQ,IAAI;YACtBhB,cAAc,CAACS,IAAI,CAAC;AAClB,cAAA,GAAGO,QAAQ;AACXL,cAAAA,MAAM,EAAE;AACNC,gBAAAA,IAAI,EAAE,OAAO;AACb/B,gBAAAA,KAAK,EAAEsB,IAAI,CAACW,KAAK,CAACT,iBAAiB,CAAC;AACpCQ,gBAAAA,MAAM,EAAEV,IAAI,CAACW,KAAK,CAACC,SAAS,CAAC;AAC7BjB,gBAAAA,UAAU,EAAEK,IAAI,CAACW,KAAK,CAAChB,UAAU,CAAC;AAClCC,gBAAAA,UAAU,EAAEI,IAAI,CAACW,KAAK,CAACf,UAAU,CAAA;AACnC,eAAA;AACF,aAAC,CAAC,CAAA;YAEFD,UAAU,IAAIO,iBAAiB,GAAGlD,oBAAoB,CAAA;AACxD,WAAC,CAAC,CAAA;AAEF0C,UAAAA,GAAG,GAAG,EAAE,CAAA;AACRC,UAAAA,UAAU,GAAG,CAAC,CAAA;UACdC,UAAU,IAAIgB,SAAS,GAAG3D,kBAAkB,CAAA;AAC9C,SAAA;AACF,OAAC,CAAC,CAAA;MAEFN,gBAAgB,CAACoB,OAAO,GAAG8B,cAAc,CAAA;AAC3C,KAAC,MAAM;AACL,MAAA,IAAInD,qBAAqB,CAACqB,OAAO,GAAG,CAAC,EAAE;QAErC,IAAI2B,GAAG,GAAG,EAAE,CAAA;QACZ,IAAIC,UAAU,GAAG,CAAC,CAAA;QAClB,IAAIC,UAAU,GAAG,CAAC,CAAA;QAClB,IAAIkB,cAAc,GAAG,CAAC,CAAA;QACtB,IAAIhB,SAAS,GAAG,IAAI,CAAA;QAEpB,MAAMD,cAAc,GAAG,EAAE,CAAA;AAIzB3E,QAAAA,UAAU,CAACqD,OAAO,CAAC,CAAC4B,KAAK,EAAEC,KAAK,KAAK;UAEnC,IAAID,KAAK,CAACE,KAAK,IAAIF,KAAK,CAACE,KAAK,KAAKP,SAAS,EAAE;YAC5CD,cAAc,CAACS,IAAI,CAAC;cAClBC,KAAK,EAAEJ,KAAK,CAACE,KAAK;cAClBf,GAAG,EAAEa,KAAK,CAACb,GAAG;AACdkB,cAAAA,MAAM,EAAE;AACNC,gBAAAA,IAAI,EAAE,YAAY;AAClBC,gBAAAA,MAAM,EAAE,EAAE;AACVf,gBAAAA,UAAU,EAAEK,IAAI,CAACW,KAAK,CAAChB,UAAU,CAAC;AAClCC,gBAAAA,UAAU,EAAEI,IAAI,CAACW,KAAK,CAACf,UAAU,CAAA;AACnC,eAAA;AACF,aAAC,CAAC,CAAA;YACFE,SAAS,GAAGK,KAAK,CAACE,KAAK,CAAA;YACvBT,UAAU,IAAI,EAAE,GAAG3C,kBAAkB,CAAA;AACvC,WAAA;AAEA6D,UAAAA,cAAc,IAAI5B,oBAAoB,CACpCiB,KAAK,CAACzB,KAAK,IAAIpB,yBAAyB,EACxC6C,KAAK,CAACO,MAAM,IAAInD,0BAClB,CAAC,CAAA;AAEDmC,UAAAA,GAAG,CAACY,IAAI,CAACH,KAAK,CAAC,CAAA;AAGf,UAAA,IACEW,cAAc,IAAIpE,qBAAqB,CAACqB,OAAO,IAC/CqC,KAAK,GAAG,CAAC,KAAKlF,UAAU,CAACqE,MAAM,IAC9BrE,UAAU,CAACkF,KAAK,GAAG,CAAC,CAAC,EAAEC,KAAK,IAAInF,UAAU,CAACkF,KAAK,GAAG,CAAC,CAAC,CAACC,KAAK,KAAKF,KAAK,CAACE,KAAM,EAC7E;YAEAS,cAAc,GAAGd,IAAI,CAACe,GAAG,CAACD,cAAc,EAAEpE,qBAAqB,CAACqB,OAAO,CAAC,CAAA;AAGxE,YAAA,MAAMiD,yBAAyB,GAC7BvE,iBAAiB,CAACsB,OAAO,GAAGf,oBAAoB,IAAI0C,GAAG,CAACH,MAAM,GAAG,CAAC,CAAC,CAAA;AACrE,YAAA,MAAMqB,SAAS,GAAGI,yBAAyB,GAAGF,cAAc,CAAA;AAE5DpB,YAAAA,GAAG,CAACnB,OAAO,CAACsC,QAAQ,IAAI;AACtB,cAAA,MAAMI,UAAU,GACdL,SAAS,GACT1B,oBAAoB,CAClB2B,QAAQ,CAACnC,KAAK,IAAIpB,yBAAyB,EAC3CuD,QAAQ,CAACH,MAAM,IAAInD,0BACrB,CAAC,CAAA;cAEHsC,cAAc,CAACS,IAAI,CAAC;AAClB,gBAAA,GAAGO,QAAQ;AACXL,gBAAAA,MAAM,EAAE;AACNC,kBAAAA,IAAI,EAAE,OAAO;AACb/B,kBAAAA,KAAK,EAAEsB,IAAI,CAACW,KAAK,CAACM,UAAU,CAAC;AAC7BP,kBAAAA,MAAM,EAAEV,IAAI,CAACW,KAAK,CAACC,SAAS,CAAC;AAC7BjB,kBAAAA,UAAU,EAAEK,IAAI,CAACW,KAAK,CAAChB,UAAU,CAAC;AAClCC,kBAAAA,UAAU,EAAEI,IAAI,CAACW,KAAK,CAACf,UAAU,CAAC;kBAClCsB,iBAAiB,EAAEC,OAAO,CAACN,QAAQ,CAACnC,KAAK,IAAImC,QAAQ,CAACH,MAAM,CAAA;AAC9D,iBAAA;AACF,eAAC,CAAC,CAAA;cAGFf,UAAU,IAAIsB,UAAU,GAAGjE,oBAAoB,CAAA;AACjD,aAAC,CAAC,CAAA;AAGF0C,YAAAA,GAAG,GAAG,EAAE,CAAA;AACRoB,YAAAA,cAAc,GAAG,CAAC,CAAA;YAClBlB,UAAU,IAAIgB,SAAS,GAAG3D,kBAAkB,CAAA;AAC5C0C,YAAAA,UAAU,GAAG,CAAC,CAAA;AAChB,WAAA;AACF,SAAC,CAAC,CAAA;QAEFhD,gBAAgB,CAACoB,OAAO,GAAG8B,cAAc,CAAA;AAC3C,OAAA;AACF,KAAA;GACD,CAAA;AAGD,EAAA,SAASX,oBAAoBA,CAACR,KAAK,EAAEgC,MAAM,EAAE;IAC3C,OAAOhC,KAAK,GAAGgC,MAAM,CAAA;AACvB,GAAA;AAGA,EAAA,MAAMU,kBAAkB,GAAGrE,OAAO,CAAC,MAAM;AACvC,IAAA,IAAI9B,MAAM,CAACsE,MAAM,KAAK,CAAC,EAAE;AACvB,MAAA,OAAO,CAAC,CAAA;AACV,KAAA;IAEA,MAAM8B,SAAS,GAAGpG,MAAM,CAACA,MAAM,CAACsE,MAAM,GAAG,CAAC,CAAC,CAAA;AAE3C,IAAA,IAAItE,MAAM,CAACsE,MAAM,GAAG,CAAC,EAAE;AACrB,MAAA,OAAO,CAAC8B,SAAS,CAACb,MAAM,CAACZ,UAAU,GAAGyB,SAAS,CAACb,MAAM,CAACE,MAAM,IAAI,CAAC,CAAA;AACpE,KAAA;IAEA,OAAOW,SAAS,CAACb,MAAM,CAACZ,UAAU,GAAGyB,SAAS,CAACb,MAAM,CAACE,MAAM,CAAA;AAC9D,GAAC,EAAE,CAACzF,MAAM,CAAC,CAAC,CAAA;AAEZ6D,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,MAAMwC,iBAAiB,GAAGrD,QAAQ,CAACsD,QAAQ,EAAE,GAAG,CAAC,CAAA;IAEjDzF,aAAa,CAAC0F,gBAAgB,CAAC,QAAQ,EAAEF,iBAAiB,EAAE,KAAK,CAAC,CAAA;IAClE,OAAO,MAAMxF,aAAa,CAAC2F,mBAAmB,CAAC,QAAQ,EAAEH,iBAAiB,EAAE,KAAK,CAAC,CAAA;AACpF,GAAC,EAAE,CAACjF,mBAAmB,EAAEM,gBAAgB,CAAC,CAAC,CAAA;EAE3C,SAAS4E,QAAQA,GAAG;AAClBG,IAAAA,6BAA6B,EAAE,CAAA;AAC/BzC,IAAAA,mBAAmB,EAAE,CAAA;AACvB,GAAA;EAEA,SAASyC,6BAA6BA,GAAG;AACvC,IAAA,MAAMC,UAAU,GAAG7F,aAAa,CAAC6B,WAAW,CAAA;AAC5CD,IAAAA,eAAe,CAACK,OAAO,GAAGH,aAAa,CAACG,OAAO,CAAA;IAC/CH,aAAa,CAACG,OAAO,GAAG4D,UAAU,CAAA;AAClC9D,IAAAA,eAAe,CAACE,OAAO,GAAGH,aAAa,CAACG,OAAO,GAAGL,eAAe,CAACK,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;AAC3F,GAAA;EAwCA,MAAMkB,mBAAmB,GAAGA,MAAM;AAChC,IAAA,IAAI,CAAC5C,mBAAmB,CAAC0B,OAAO,EAAE,OAAA;IAGlC,MAAM6D,SAAS,GACb/D,eAAe,CAACE,OAAO,KAAK,IAAI,GAC5Bb,4BAA4B,GAC5BC,8BAA8B,CAAA;IAEpC,MAAM0E,YAAY,GAChBhE,eAAe,CAACE,OAAO,KAAK,IAAI,GAC5BZ,8BAA8B,GAC9BD,4BAA4B,CAAA;AAElC,IAAA,MAAM4E,eAAe,GAAGC,YAAY,CAAC1F,mBAAmB,CAAC0B,OAAO,CAAC,CAAA;AACjE,IAAA,MAAMiE,cAAc,GAAGlG,aAAa,CAACmG,WAAW,CAAA;AAEhD,IAAA,MAAMC,OAAO,GAAGtE,aAAa,CAACG,OAAO,CAAA;AAIrC,IAAA,MAAMoE,uBAAuB,GAAGD,OAAO,GAAGJ,eAAe,GAAGF,SAAS,CAAA;IAIrE,MAAMQ,aAAa,GAAGF,OAAO,GAAGJ,eAAe,GAAGE,cAAc,GAAGH,YAAY,CAAA;IAE/E,MAAMQ,eAAe,GAAG1F,gBAAgB,CAACoB,OAAO,CAACuE,GAAG,CAACnC,KAAK,IAAI;AAC5D,MAAA,IACErE,aAAa,CAACyG,IAAI,IAAI9E,MAAM,KAC3B0C,KAAK,CAACK,MAAM,CAACZ,UAAU,GAAGO,KAAK,CAACK,MAAM,CAACE,MAAM,GAAGyB,uBAAuB,IACtEhC,KAAK,CAACK,MAAM,CAACZ,UAAU,GAAGwC,aAAa,CAAC,EAC1C;AAEAjC,QAAAA,KAAK,CAACK,MAAM,CAACgC,IAAI,GAAG,KAAK,CAAA;AAC3B,OAAC,MAAM;AAELrC,QAAAA,KAAK,CAACK,MAAM,CAACgC,IAAI,GAAG,IAAI,CAAA;AAC1B,OAAA;AAEA,MAAA,OAAOrC,KAAK,CAAA;AACd,KAAC,CAAC,CAAA;IAEFvD,SAAS,CAACyF,eAAe,CAAC,CAAA;GAC3B,CAAA;EAKD,SAASN,YAAYA,CAACU,IAAI,EAAE;IAC1B,IAAIC,SAAS,GAAG,CAAC,CAAA;IACjB,GAAG;AACD,MAAA,IAAI,CAACC,KAAK,CAACF,IAAI,CAACC,SAAS,CAAC,EAAE;QAC1BA,SAAS,IAAID,IAAI,CAACC,SAAS,CAAA;AAC7B,OAAA;MACAD,IAAI,GAAGA,IAAI,CAACG,YAAY,CAAA;AAC1B,KAAC,QAAQH,IAAI,EAAA;AACb,IAAA,OAAOC,SAAS,CAAA;AAClB,GAAA;AAEA,EAAA,MAAMG,cAAc,GAAGC,WAAW,CAChCC,CAAC,IAAI;IACH,SAASC,gBAAgBA,CAACC,EAAE,EAAE;AAC5B,MAAA,MAAMC,IAAI,GAAGD,EAAE,CAACE,qBAAqB,EAAE;QACrCC,MAAM,GAAGtH,aAAa,CAACuH,UAAU,IAAIC,QAAQ,CAACC,eAAe,CAACC,WAAW;QACzEC,OAAO,GAAG3H,aAAa,CAACmG,WAAW,IAAIqB,QAAQ,CAACC,eAAe,CAACG,YAAY;AAC5EC,QAAAA,GAAG,GAAG,UAAUC,CAAC,EAAEC,CAAC,EAAE;AACpB,UAAA,OAAOP,QAAQ,CAACQ,gBAAgB,CAACF,CAAC,EAAEC,CAAC,CAAC,CAAA;SACvC,CAAA;MAGH,IAAIX,IAAI,CAACa,KAAK,GAAG,CAAC,IAAIb,IAAI,CAACc,MAAM,GAAG,CAAC,IAAId,IAAI,CAACe,IAAI,GAAGb,MAAM,IAAIF,IAAI,CAACgB,GAAG,GAAGT,OAAO,EAC/E,OAAO,KAAK,CAAA;AAGd,MAAA,OACER,EAAE,CAACkB,QAAQ,CAACR,GAAG,CAACT,IAAI,CAACe,IAAI,EAAEf,IAAI,CAACgB,GAAG,CAAC,CAAC,IACrCjB,EAAE,CAACkB,QAAQ,CAACR,GAAG,CAACT,IAAI,CAACa,KAAK,EAAEb,IAAI,CAACgB,GAAG,CAAC,CAAC,IACtCjB,EAAE,CAACkB,QAAQ,CAACR,GAAG,CAACT,IAAI,CAACa,KAAK,EAAEb,IAAI,CAACc,MAAM,CAAC,CAAC,IACzCf,EAAE,CAACkB,QAAQ,CAACR,GAAG,CAACT,IAAI,CAACe,IAAI,EAAEf,IAAI,CAACc,MAAM,CAAC,CAAC,CAAA;AAE5C,KAAA;IAEA,SAASI,2BAA2BA,GAAG;AACrC,MAAA,MAAMC,aAAa,GAAGpJ,MAAM,CAACmE,MAAM,CAACe,KAAK,IAAIA,KAAK,CAACK,MAAM,CAACgC,IAAI,CAAC,CAAA;AAE/D,MAAA,KAAK,IAAI8B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGjI,mBAAmB,CAAC0B,OAAO,CAACwG,QAAQ,CAAChF,MAAM,EAAE+E,CAAC,EAAE,EAAE;QACpE,IAAItB,gBAAgB,CAAC3G,mBAAmB,CAAC0B,OAAO,CAACwG,QAAQ,CAACD,CAAC,CAAC,CAAC,EAAE;AAC7DtI,UAAAA,0BAA0B,CAACqI,aAAa,CAACC,CAAC,CAAC,CAAChF,GAAG,CAAC,CAAA;AAChD,UAAA,MAAA;AACF,SAAA;AACF,OAAA;AACF,KAAA;AAEA,IAAA,IAAIrE,MAAM,CAACsE,MAAM,KAAK,CAAC,EAAE,OAAA;IAEzB,IAAIwD,CAAC,CAACzD,GAAG,KAAK,WAAW,IAAIyD,CAAC,CAACzD,GAAG,KAAK,YAAY,EAAE;MACnD,IAAIzD,oBAAoB,KAAK,IAAI,EAAE;AACjCuI,QAAAA,2BAA2B,EAAE,CAAA;AAE7B,QAAA,OAAA;AACF,OAAA;AACF,KAAA;AAEA,IAAA,IAAIrB,CAAC,CAACzD,GAAG,KAAK,WAAW,EAAE;AACzB,MAAA,MAAMkF,kBAAkB,GACtBvJ,MAAM,CAACwJ,SAAS,CAACtE,KAAK,IAAIA,KAAK,CAACb,GAAG,KAAKzD,oBAAoB,CAAC,GAAG,CAAC,CAAA;AAEnE,MAAA,MAAM6I,aAAa,GAAGzJ,MAAM,CAACuJ,kBAAkB,CAAC,CAAA;AAEhD,MAAA,IAAIE,aAAa,EAAE;AACjB,QAAA,IAAIA,aAAa,CAAClE,MAAM,CAACgC,IAAI,EAAE;AAC7BxG,UAAAA,0BAA0B,CAAC0I,aAAa,CAACpF,GAAG,CAAC,CAAA;AAC/C,SAAC,MAAM;AACL8E,UAAAA,2BAA2B,EAAE,CAAA;AAC/B,SAAA;AACF,OAAA;AAEA,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAIrB,CAAC,CAACzD,GAAG,KAAK,YAAY,EAAE;AAC1B,MAAA,MAAMqF,cAAc,GAAG1J,MAAM,CAACwJ,SAAS,CAACtE,KAAK,IAAIA,KAAK,CAACb,GAAG,KAAKzD,oBAAoB,CAAC,GAAG,CAAC,CAAA;AAExF,MAAA,MAAM+I,SAAS,GAAG3J,MAAM,CAAC0J,cAAc,CAAC,CAAA;AAExC,MAAA,IAAIC,SAAS,EAAE;AACb,QAAA,IAAIA,SAAS,CAACpE,MAAM,CAACgC,IAAI,EAAE;AACzBxG,UAAAA,0BAA0B,CAAC4I,SAAS,CAACtF,GAAG,CAAC,CAAA;AAC3C,SAAC,MAAM;AACL8E,UAAAA,2BAA2B,EAAE,CAAA;AAC/B,SAAA;AACF,OAAA;AAEA,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAIrB,CAAC,CAACzD,GAAG,KAAK,OAAO,EAAE;MACrB,IAAIzD,oBAAoB,KAAK,IAAI,EAAE,OAAA;AAEnC,MAAA,IAAIJ,iBAAiB,CAACoJ,QAAQ,CAAChJ,oBAAoB,CAAC,EAAE;QACpDF,iBAAiB,CAACE,oBAAoB,CAAC,CAAA;AACzC,OAAC,MAAM;QACLH,eAAe,CAACG,oBAAoB,CAAC,CAAA;AACvC,OAAA;AACF,KAAA;AACF,GAAC,EACD,CACEZ,MAAM,EACNY,oBAAoB,EACpBG,0BAA0B,EAC1BP,iBAAiB,EACjBc,sBAAsB,CAE1B,CAAC,CAAA;AAED,EAAA,MAAMuI,WAAW,GAAGhC,WAAW,CAAC,MAAM;IACpC9G,0BAA0B,CAAC,IAAI,CAAC,CAAA;GACjC,EAAE,EAAE,CAAC,CAAA;AAGN8C,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIlD,cAAc,EAAE;AAClB0H,MAAAA,QAAQ,CAAC9B,gBAAgB,CAAC,SAAS,EAAEqB,cAAc,CAAC,CAAA;AACtD,KAAA;IAEA,OAAO,MAAMS,QAAQ,CAAC7B,mBAAmB,CAAC,SAAS,EAAEoB,cAAc,CAAC,CAAA;AACtE,GAAC,EAAE,CAACjH,cAAc,EAAEiH,cAAc,CAAC,CAAC,CAAA;AAEpC/D,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIlD,cAAc,IAAIC,oBAAoB,KAAK,IAAI,EAAE;MACnDyH,QAAQ,CAAC9B,gBAAgB,CAAC,OAAO,EAAEsD,WAAW,EAAE,IAAI,CAAC,CAAA;AACvD,KAAA;IAEA,OAAO,MAAMxB,QAAQ,CAAC7B,mBAAmB,CAAC,OAAO,EAAEqD,WAAW,EAAE,IAAI,CAAC,CAAA;GACtE,EAAE,CAAClJ,cAAc,EAAEC,oBAAoB,EAAEiJ,WAAW,CAAC,CAAC,CAAA;AAEvD,EAAA,OACE/J,cAAA,CAAAgK,aAAA,CAAAhK,cAAA,CAAAiK,QAAA,EAAA,IAAA,EACEjK,cAAA,CAAAgK,aAAA,CAACE,kBAAkB,EAAAC,QAAA,CAAA;AACjBC,IAAAA,GAAG,EAAE5I,sBAAuB;AAC5B6I,IAAAA,KAAK,EAAE;MAAE1E,MAAM,EAAE,GAAGU,kBAAkB,CAAA,EAAA,CAAA;KAAO;IAC7CiE,SAAS,EAAElJ,KAAK,CAACkJ,SAAAA;GACblJ,EAAAA,KAAK,GAERlB,MAAM,CAACqH,GAAG,CACTnC,KAAK,IACHA,KAAK,CAACK,MAAM,CAACgC,IAAI,IACfzH,cAAA,CAAAgK,aAAA,CAAChK,cAAK,CAACiK,QAAQ,EAAA;IAAC1F,GAAG,EAAE,CAAiBa,cAAAA,EAAAA,KAAK,CAACK,MAAM,CAACC,IAAI,CAAA,CAAA,EAAIN,KAAK,CAACb,GAAG,CAAA,CAAA;AAAG,GAAA,EACpEa,KAAK,CAACK,MAAM,CAACC,IAAI,KAAK,YAAY,IACjC1F,cAAA,CAAAgK,aAAA,CAACE,UAAY,EAAA;AACXG,IAAAA,KAAK,EAAE;AACLE,MAAAA,SAAS,EAAE,CAAA,YAAA,EAAenF,KAAK,CAACK,MAAM,CAACb,UAAU,CAAA,GAAA,EAAMQ,KAAK,CAACK,MAAM,CAACZ,UAAU,CAAQ,MAAA,CAAA;AACtFc,MAAAA,MAAM,EAAE,CAAGP,EAAAA,KAAK,CAACK,MAAM,CAACE,MAAM,CAAA,EAAA,CAAA;AAChC,KAAA;AAAE,GAAA,EAEDP,KAAK,CAACI,KACK,CACf,EAEAJ,KAAK,CAACK,MAAM,CAACC,IAAI,KAAK,OAAO,IAC5B1F,cAAA,CAAAgK,aAAA,CAACE,oBAAsB,EAAA;IACrBM,QAAQ,EAAEpF,KAAK,CAACqF,QAAQ,EAAEC,WAAW,EAAE,KAAK,OAAQ;AACpDL,IAAAA,KAAK,EAAE;AACLE,MAAAA,SAAS,EAAE,CAAA,YAAA,EAAenF,KAAK,CAACK,MAAM,CAACb,UAAU,CAAA,IAAA,EAAOQ,KAAK,CAACK,MAAM,CAACZ,UAAU,CAAQ,MAAA,CAAA;AACvFlB,MAAAA,KAAK,EAAE,CAAGyB,EAAAA,KAAK,CAACK,MAAM,CAAC9B,KAAK,CAAI,EAAA,CAAA;AAChCgC,MAAAA,MAAM,EAAE,CAAGP,EAAAA,KAAK,CAACK,MAAM,CAACE,MAAM,CAAI,EAAA,CAAA;AAClCgF,MAAAA,OAAO,EAAE,MAAM;AACfC,MAAAA,cAAc,EAAE,QAAA;AAClB,KAAA;GAECtK,EAAAA,QAAQ,KAAK,MAAM,GAClBN,cAAA,CAAAgK,aAAA,CAACa,oBAAoB,EAAA;AACnBzF,IAAAA,KAAK,EAAEA,KAAM;IACb5E,UAAU,EAAE,YAAY,IAAI4E,KAAK,GAAGA,KAAK,CAAC5E,UAAU,GAAGA,UAAW;IAClEsK,QAAQ,EAAEpK,iBAAiB,CAACoJ,QAAQ,CAAC1E,KAAK,CAACb,GAAG,CAAE;AAChD9D,IAAAA,oBAAoB,EAAEA,oBAAqB;AAC3CsK,IAAAA,kBAAkB,EAAE3E,OAAO,CAAC1F,iBAAiB,CAAC8D,MAAM,CAAE;AACtD7D,IAAAA,eAAe,EAAEA,eAAgB;AACjCC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCoK,IAAAA,YAAY,EAAElK,oBAAoB,KAAKsE,KAAK,CAACb,GAAI;AACjDrD,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,kBAAkB,EAAEA,kBAAAA;AAAmB,GACxC,CAAC,GAEFnB,cAAA,CAAAgK,aAAA,CAACiB,uBAAuB,EAAA;AACtB7F,IAAAA,KAAK,EAAEA,KAAM;AACbhF,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,WAAW,EAAEA,WAAY;AACzB8F,IAAAA,iBAAiB,EAAEf,KAAK,CAACK,MAAM,CAACU,iBAAkB;AAClD+E,IAAAA,iBAAiB,EAAE9F,KAAK,CAACK,MAAM,CAAC9B,KAAK,GAAG,EAAG;IAC3CnD,UAAU,EAAE,YAAY,IAAI4E,KAAK,GAAGA,KAAK,CAAC5E,UAAU,GAAGA,UAAW;IAClEsK,QAAQ,EAAEpK,iBAAiB,CAACoJ,QAAQ,CAAC1E,KAAK,CAACb,GAAG,CAAE;AAChD9D,IAAAA,oBAAoB,EAAEA,oBAAqB;AAC3CsK,IAAAA,kBAAkB,EAAE3E,OAAO,CAAC1F,iBAAiB,CAAC8D,MAAM,CAAE;AACtD7D,IAAAA,eAAe,EAAEA,eAAgB;AACjCC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCoK,IAAAA,YAAY,EAAElK,oBAAoB,KAAKsE,KAAK,CAACb,GAAI;AACjDrD,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GACtB,CAEmB,CAEZ,CAEtB,CACkB,CACpB,CAAC,CAAA;AAEP,CAAC,EAAC;AAEFnB,gBAAgB,CAACoL,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAG,YAAA,GAAA;EAI3BpL,MAAM,EAAEqL,SAAS,CAACC,OAAO,CAACD,SAAS,CAACE,KAAK,CAACC,UAAU,CAAC,CAAC;EAKtDtL,iBAAiB,EAAEmL,SAAS,CAACI,IAAI;EAKjCtL,WAAW,EAAEkL,SAAS,CAACK,MAAM;EAK7BtL,QAAQ,EAAEiL,SAAS,CAACM,KAAK,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;EAM9CtL,kBAAkB,EAAEgL,SAAS,CAACO,MAAM;EAKpCtL,UAAU,EAAE+K,SAAS,CAACI,IAAI;EAK1BlL,oBAAoB,EAAE8K,SAAS,CAACC,OAAO,CAACD,SAAS,CAACK,MAAM,CAAC;EAKzDlL,iBAAiB,EAAE6K,SAAS,CAACQ,SAAS,CAAC,CACrCR,SAAS,CAACC,OAAO,CAACD,SAAS,CAACK,MAAM,CAAC,EACnCL,SAAS,CAACC,OAAO,CAACD,SAAS,CAACO,MAAM,CAAC,CACpC,CAAC,CAACE,UAAU;AAKbjL,EAAAA,aAAa,EAAEwK,SAAS,CAACU,UAAU,CAACC,OAAO,CAAC;AAK5CvL,EAAAA,eAAe,EAAE4K,SAAS,CAACY,IAAI,CAACH,UAAU;AAK1CpL,EAAAA,iBAAiB,EAAE2K,SAAS,CAACY,IAAI,CAACH,UAAU;EAK5CnL,cAAc,EAAE0K,SAAS,CAACI,IAAI;AAK9B7K,EAAAA,oBAAoB,EAAEyK,SAAS,CAACQ,SAAS,CAAC,CAACR,SAAS,CAACK,MAAM,EAAEL,SAAS,CAACO,MAAM,CAAC,CAAC;AAK/E7K,EAAAA,0BAA0B,EAAEsK,SAAS,CAACY,IAAI,CAACH,UAAU;EAMrD9K,SAAS,EAAEqK,SAAS,CAACY,IAAI;EAKzB7B,SAAS,EAAEiB,SAAS,CAACK,MAAM;EAK3BzK,kBAAkB,EAAEoK,SAAS,CAACI,IAAAA;AAChC,CAAC,GAAA,EAAA;;;;"}
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 { sum, 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 hideConsentSummary,\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 = hideConsentSummary ? 503 : 556;\n // 8 + 24 (select button) + 4 + 32 (media badge) + 8, see AssetGalleryCompactCard.styled.js\n const COMPACT_VIEW_MODE_ASSET_MIN_WIDTH = 76;\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 translateY = 0; // The current translateY value that we are at\n let lastGroup = null; // The last group that was created\n\n const computedAssets = [];\n\n // Clamped so `isFull` counts a narrow card at the width it will get\n const getAspectRatio = asset =>\n Math.max(\n calculateAspectRatio(\n asset.width || MISSING_WIDTH_PLACEHOLDER,\n asset.height || MISSING_HEIGHT_PLACEHOLDER\n ),\n COMPACT_VIEW_MODE_ASSET_MIN_WIDTH / MAXIMUM_ROW_HEIGHT\n );\n const getRowAspectRatio = rowAssets => sum(rowAssets.map(getAspectRatio));\n const getRowWidth = rowAssets =>\n assetGalleryWidth.current - SPACE_BETWEEN_ASSETS * (rowAssets.length - 1);\n\n const getWidths = (rowAssets, rowHeight) =>\n rowAssets.map(rowAsset =>\n Math.max(getAspectRatio(rowAsset) * rowHeight, COMPACT_VIEW_MODE_ASSET_MIN_WIDTH)\n );\n\n // Cards that would be narrower than the minimum width keep it, so the row gets lower\n // until the other cards fit next to them\n const fitRowHeight = (rowAssets, rowWidth, maxHeight) => {\n const aspectRatios = rowAssets.map(getAspectRatio).sort((a, b) => a - b);\n let rowHeight = maxHeight;\n for (let held = 1; held < aspectRatios.length; held++) {\n if (aspectRatios[held - 1] * rowHeight > COMPACT_VIEW_MODE_ASSET_MIN_WIDTH) break;\n rowHeight = Math.min(\n rowHeight,\n (rowWidth - held * COMPACT_VIEW_MODE_ASSET_MIN_WIDTH) / sum(aspectRatios.slice(held))\n );\n }\n return rowHeight;\n };\n\n // Held cards can't shrink, so taking an asset can make a row a lot lower. The asset\n // starts the next row instead when the gap that leaves is the smaller loss.\n const startsNewRow = asset => {\n const candidate = [...row, asset];\n const rowWidth = getRowWidth(candidate);\n if (candidate.length * COMPACT_VIEW_MODE_ASSET_MIN_WIDTH > rowWidth) return true;\n\n const maxHeight = Math.min(MAXIMUM_ROW_HEIGHT, rowWidth / getRowAspectRatio(candidate));\n const rowHeight = fitRowHeight(candidate, rowWidth, maxHeight);\n if (rowHeight === maxHeight) return false; // Nothing held\n\n const heightLoss = 1 - rowHeight / MAXIMUM_ROW_HEIGHT;\n const widthLoss = 1 - (getRowAspectRatio(row) * MAXIMUM_ROW_HEIGHT) / getRowWidth(row);\n return widthLoss < heightLoss;\n };\n\n // `justify` fills the gallery width; only a row ended early by `startsNewRow` is short\n const closeRow = justify => {\n const rowWidth = getRowWidth(row);\n const rowHeight = fitRowHeight(\n row,\n rowWidth,\n rowWidth / Math.max(getRowAspectRatio(row), minimumRowAspectRatio.current)\n );\n let widths = getWidths(row, rowHeight);\n if (justify) {\n const scale = rowWidth / sum(widths);\n widths = widths.map(width => width * scale);\n }\n\n let translateX = 0;\n row.forEach((rowAsset, index) => {\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(widths[index]),\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 += widths[index] + SPACE_BETWEEN_ASSETS;\n });\n\n // Reset our state variables for next row.\n row = [];\n translateY += rowHeight + SPACE_UNDER_ASSETS;\n };\n\n // Loop through all our images, building them up into rows\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: 0,\n translateY: Math.round(translateY)\n }\n });\n lastGroup = asset.group;\n translateY += 50 + SPACE_UNDER_ASSETS;\n }\n\n if (row.length > 0 && startsNewRow(asset)) closeRow(true);\n\n row.push(asset);\n\n // End the row if any of the conditions match. The last row of a group stays left aligned\n const isFull = getRowAspectRatio(row) >= minimumRowAspectRatio.current;\n if (\n isFull ||\n index + 1 === assetsProp.length ||\n (assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group)\n ) {\n closeRow(isFull);\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 $isVideo={asset.fileType?.toLowerCase() === 'video'}\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 hideConsentSummary={hideConsentSummary}\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 /**\n * When true, hides the consent summary footer on grid cards (CardFooter + CardDivider). Default: false.\n */\n hideConsentSummary: PropTypes.bool\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","hideConsentSummary","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","COMPACT_VIEW_MODE_ASSET_MIN_WIDTH","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","getAspectRatio","max","getRowAspectRatio","rowAssets","sum","map","getRowWidth","getWidths","fitRowHeight","rowWidth","maxHeight","aspectRatios","sort","b","held","min","slice","startsNewRow","candidate","heightLoss","widthLoss","closeRow","justify","widths","scale","hasHeightAndWidth","Boolean","isFull","totalGalleryHeight","lastAsset","throttledOnScroll","onScroll","addEventListener","removeEventListener","setScrollPositionAndDirection","newYOffset","bufferTop","bufferBottom","containerOffset","getOffsetTop","scrollerHeight","innerHeight","yOffset","minTranslateYPlusHeight","maxTranslateY","finalizedAssets","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","$isVideo","fileType","toLowerCase","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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"}
@@ -22,7 +22,7 @@ import '../../../../data/Tooltip/Tooltip.js';
22
22
  import '../../../../data/VerificationStatusIcon/VerificationStatusIcon.js';
23
23
  import SummaryCard from '../../../SummaryCard/SummaryCard.js';
24
24
  import { assetShapeWithLayout } from '../../asset.propType.js';
25
- import { AssetGalleryWrapper, AssetGalleryCompactCard as AssetGalleryCompactCard$2, Reference, Overlay, OverlayBackdrop, LiveBadgeSlot, OverlayInfoTopActions, StatusIcon, VisibleOnHover, OverlayInfo, OverlayInfoTop, OverlayInfoTopLeft, OverlayInfoTopWarning, OverlayInfoBottom, OverlayInfoBottomSelectButton, OverlayInfoBottomMediaIcon, OverlayCompleted, OverlayHasError, OverlaySelected, StyledFloatingArrow, ConsumerDefinedOverlay, Figure, FigureOverlayBackdrop } from './AssetGalleryCompactCard.styled.js';
25
+ import { OverlayInfoBottomMediaDuration, AssetGalleryWrapper, AssetGalleryCompactCard as AssetGalleryCompactCard$2, Reference, Overlay, OverlayBackdrop, LiveBadgeSlot, OverlayInfoTopActions, StatusIcon, VisibleOnHover, OverlayInfo, OverlayInfoTop, OverlayInfoTopLeft, OverlayInfoTopWarning, OverlayInfoBottom, OverlayInfoBottomSelectButton, OverlayInfoBottomMediaIcon, OverlayCompleted, OverlayHasError, OverlaySelected, StyledFloatingArrow, ConsumerDefinedOverlay, Figure, FigureOverlayBackdrop } from './AssetGalleryCompactCard.styled.js';
26
26
  import { useFloating, autoUpdate, offset, flip, shift, arrow, useTransitionStyles, useHover, useDismiss, useInteractions, useMergeRefs } from '@floating-ui/react';
27
27
  import AssetActionsBase from '../../../AssetActionsBase/AssetActionsBase.js';
28
28
 
@@ -291,7 +291,7 @@ const AssetGalleryCompactCard = props => {
291
291
  badgeIcon = React__default.createElement(SvgPlay, null);
292
292
  }
293
293
  if (asset?.duration) {
294
- badgeContent = convertMsToHMS(asset.duration);
294
+ badgeContent = React__default.createElement(OverlayInfoBottomMediaDuration, null, convertMsToHMS(asset.duration));
295
295
  }
296
296
  if (!badgeIcon && !badgeContent) return null;
297
297
  return React__default.createElement(Badge, {
@@ -1 +1 @@
1
- {"version":3,"file":"AssetGalleryCompactCard.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js"],"sourcesContent":["import { get, isFunction, mapKeys, omit } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n LazyLoadComponent,\n LazyLoadImage,\n trackWindowScroll\n} from 'react-lazy-load-image-component';\nimport 'react-lazy-load-image-component/src/effects/opacity.css';\nimport {\n CheckRectangleIcon,\n HeadsetIcon,\n LayersIcon,\n PlayIcon,\n WarningCircleIcon\n} from '../../../../../icons';\nimport { convertMsToHMS } from '../../../../../utils/dateTime';\nimport { usePreviewVideoRef } from '../../../../../hooks/usePreviewVideoRef';\nimport { Badge, LiveBadge } from '../../../../data';\n\nimport SummaryCard from '../../../SummaryCard/SummaryCard';\nimport { assetShapeWithLayout } from '../../asset.propType';\nimport * as S from './AssetGalleryCompactCard.styled';\n\nimport {\n useFloating,\n useHover,\n useInteractions,\n useTransitionStyles,\n flip,\n shift,\n arrow,\n autoUpdate,\n offset,\n useDismiss,\n useMergeRefs\n} from '@floating-ui/react';\nimport AssetActionsBase from '../../../AssetActionsBase/AssetActionsBase';\n\n// eslint-disable-next-line react/prop-types\nconst ComputedRootComponent = ({ component, asset, ...props }) => {\n // Omit props we don't need\n const newProps = mapKeys(\n omit(props, [\n 'theme',\n 'extendedSelectMode',\n 'softSelected',\n '$softSelected',\n 'customSelectedBorder',\n '$customSelectedBorder',\n 'hasHeightAndWidth',\n '$hasHeightAndWidth',\n 'collapseExtraInfo',\n '$collapseExtraInfo'\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.AssetGalleryCompactCard ref={newProps.ref} {...newProps} />;\n};\n\nconst AssetGalleryCompactCard = props => {\n const {\n asset,\n activeSummaryCard,\n displayIcon,\n selectable,\n hasHeightAndWidth,\n selected,\n customSelectedBorder,\n extendedSelectMode,\n onAssetSelected,\n onAssetUnselected,\n softSelected,\n component,\n scrollPosition,\n collapseExtraInfo\n } = props;\n\n const ARROW_WIDTH = 30;\n const ARROW_HEIGHT = 15;\n const GAP = 8;\n\n const arrowRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const [placement] = useState('bottom');\n\n const [isOverlayHovered, setIsOverlayHovered] = useState(false);\n const [openedSubActions, updateOpenedSubActions] = useState([]);\n\n const { refs, floatingStyles, context } = useFloating({\n placement,\n open: isOpen,\n onOpenChange: setIsOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({\n element: arrowRef\n })\n ]\n });\n\n const { isMounted, styles } = useTransitionStyles(context, {\n initial: {\n transform: 'translateY(-8px)',\n opacity: 0\n },\n duration: {\n open: 200,\n close: 100\n }\n });\n\n const hover = useHover(context, {\n restMs: 100\n });\n const dismiss = useDismiss(context, {\n referencePress: true,\n ancestorScroll: true,\n windowScroll: true,\n windowBlur: true\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss, hover]);\n\n useEffect(() => {\n const newOpenedSubActions = (asset?.actions ?? []).map(() => false);\n updateOpenedSubActions(newOpenedSubActions);\n }, [asset]);\n\n useEffect(() => {\n if (!isOverlayHovered && openedSubActions?.length) {\n updateOpenedSubActions(openedSubActions.map(() => false));\n }\n }, [isOverlayHovered]);\n\n const mouseHasEnteredOverlay = useCallback(() => {\n setIsOverlayHovered(true);\n }, []);\n\n const mouseHasLeftOverlay = useCallback(() => {\n setIsOverlayHovered(false);\n }, []);\n\n const isAnySubActionsOpened = useMemo(() => {\n return openedSubActions.some(isOpened => isOpened);\n }, [openedSubActions]);\n\n function onClick(event) {\n if (extendedSelectMode) {\n return onSelectClick(event);\n }\n\n if (isFunction(asset.onClick)) {\n asset.onClick(event, asset);\n }\n }\n\n function onSelectClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (selected) {\n return onAssetUnselected(asset.key);\n }\n\n if (selectable) {\n return onAssetSelected(asset.key);\n }\n }\n\n function onContextMenu(event) {\n event.preventDefault();\n asset.onContextMenu(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onContextMenu)) {\n if (cardRef.current) {\n cardRef.current.addEventListener('contextmenu', onContextMenu);\n }\n return () => {\n if (cardRef.current) {\n cardRef.current.removeEventListener('contextmenu', onContextMenu);\n }\n };\n }\n }, []);\n\n function onDragstart(event) {\n asset.onDragstart(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onDragstart)) {\n if (dragRef.current) {\n dragRef.current.addEventListener('dragstart', onDragstart);\n }\n return () => {\n if (dragRef.current) {\n dragRef.current.removeEventListener('dragstart', onDragstart);\n }\n };\n }\n }, []);\n\n const [videoPlayerRef, setVideoPlayerRef] = usePreviewVideoRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\n\n const overlayCompactRef = useMergeRefs([cardRef, refs.setReference]);\n\n function onMouseEnter(event) {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.dataset.revealed = '';\n const playPromise = videoPlayerRef.current.play();\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n // Playback started!\n })\n .catch(() => {\n // Play was prevented - silently swallow play errors\n });\n }\n }\n\n if (isFunction(asset.onMouseEnter)) {\n asset.onMouseEnter(event, asset);\n }\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n }\n\n const renderPreview = asset => {\n let previewContent = null;\n if (asset?.fileType?.toLowerCase() === 'video') {\n // Browsers ignore a changed <source> src, so the key remounts the video on a new\n // file. The query is only a cache-buster, so it's left out of the key.\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n {asset.poster && <img className=\"video-poster\" src={asset.poster} alt=\"\" />}\n <video key={asset.previewUrl?.split('?')[0]} ref={setVideoPlayerRef} 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 $hasHeightAndWidth={hasHeightAndWidth}>\n {previewContent}\n <S.FigureOverlayBackdrop selected={selected} />\n </S.Figure>\n );\n };\n\n // If this asset is soft selected we will scroll it into the viewport if it's outside\n useEffect(() => {\n if (softSelected) {\n cardRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }, [softSelected]);\n\n const renderVersionsBadge = useCallback(() => {\n if (!asset?.versions) return null;\n\n return (\n <Badge\n badgeIcon={<LayersIcon />}\n badgeContent={asset.versions}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n />\n );\n }, [asset]);\n\n const renderVerificationBadge = useCallback(() => {\n if (!asset?.verifications) return null;\n return asset?.verifications;\n }, [asset]);\n\n const renderdynamicBadge = useCallback(() => {\n if (asset?.isLive) return null;\n if (asset?.verifications) return renderVerificationBadge();\n if (asset?.versions) return renderVersionsBadge();\n return null;\n });\n\n const renderBadge = () => {\n switch (displayIcon) {\n case 'versions':\n return renderVersionsBadge();\n case 'verifications':\n return renderVerificationBadge();\n case 'dynamic':\n return renderdynamicBadge();\n default:\n return null;\n }\n };\n\n const renderMediaBadge = useCallback(() => {\n let badgeIcon = null;\n let badgeContent = null;\n\n if (asset?.fileType === 'video') {\n badgeIcon = <PlayIcon />;\n }\n\n if (asset?.duration) {\n badgeContent = convertMsToHMS(asset.duration);\n }\n\n if (!badgeIcon && !badgeContent) return null;\n return (\n <Badge\n badgeIcon={badgeIcon}\n badgeContent={badgeContent}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n minWidth={32}\n height={24}\n />\n );\n }, [asset]);\n\n const renderSummaryCardHeaderLeft = useCallback(() => {\n return (\n <>\n {renderVersionsBadge()}\n {asset.isLive ? <LiveBadge label={asset.liveLabel} /> : renderMediaBadge()}\n </>\n );\n }, [asset]);\n\n const renderPopoverContent = useCallback(() => {\n return (\n <SummaryCard\n activeSummaryCard={activeSummaryCard}\n title={asset?.title || ''}\n description={asset?.description || ''}\n instructions={asset?.imageRights || ''}\n instructionSeverity={asset?.instructionSeverity}\n instructionLabels={asset?.instructionLabels}\n headerRight={asset?.summary?.headerRight || ''}\n headerLeft={\n <>\n {renderSummaryCardHeaderLeft()}\n {asset?.summary?.headerLeft || ''}\n </>\n }\n footerLeft={asset?.summary?.footerLeft || ''}\n footerRight={asset?.summary?.footerRight || ''}\n width={375}\n view={'compact'}\n />\n );\n }, [asset]);\n\n return (\n <S.AssetGalleryWrapper disabled={asset.disabled}>\n <S.AssetGalleryCompactCard\n as={ComputedRootComponent}\n component={component}\n disabled={asset.disabled}\n asset={asset}\n onClick={onClick}\n extendedSelectMode={extendedSelectMode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n draggable={asset.draggable}\n innerRef={dragRef}\n selected={selected}\n // ref={refs.setReference}\n {...getReferenceProps()}\n >\n <S.Reference ref={refs.setReference}>{renderPreview(asset)}</S.Reference>\n\n <S.Overlay\n ref={overlayCompactRef}\n onMouseEnter={mouseHasEnteredOverlay}\n onMouseLeave={mouseHasLeftOverlay}\n style={{ height: '100%' }}\n {...getReferenceProps()}\n >\n <S.OverlayBackdrop $softSelected={softSelected} selected={selected} />\n {asset.isLive && (\n <S.LiveBadgeSlot>\n <LiveBadge\n label={collapseExtraInfo ? '' : asset.liveLabel}\n ariaLabel={asset.liveLabel}\n />\n </S.LiveBadgeSlot>\n )}\n {(asset?.statusIcon || asset?.actions) && (\n <S.OverlayInfoTopActions>\n {asset.statusIcon && <S.StatusIcon>{asset.statusIcon}</S.StatusIcon>}\n {asset?.actions && (\n <S.VisibleOnHover $hidden={extendedSelectMode}>\n <AssetActionsBase actions={asset.actions} asset={asset} />\n </S.VisibleOnHover>\n )}\n </S.OverlayInfoTopActions>\n )}\n <S.OverlayInfo>\n {isOverlayHovered && !activeSummaryCard && <span>{asset.title}</span>}\n <S.OverlayInfoTop>\n <S.OverlayInfoTopLeft $collapseExtraInfo={collapseExtraInfo}>\n {renderBadge()}\n </S.OverlayInfoTopLeft>\n {asset?.note?.title && !asset.statusIcon && (\n <S.OverlayInfoTopWarning type={asset?.note?.type}>\n <WarningCircleIcon />\n </S.OverlayInfoTopWarning>\n )}\n </S.OverlayInfoTop>\n <S.OverlayInfoBottom>\n {selectable && (\n <S.OverlayInfoBottomSelectButton selected={selected}>\n <CheckRectangleIcon onClick={onSelectClick} />\n </S.OverlayInfoBottomSelectButton>\n )}\n <S.OverlayInfoBottomMediaIcon>\n {!asset.isLive && renderMediaBadge()}\n </S.OverlayInfoBottomMediaIcon>\n </S.OverlayInfoBottom>\n </S.OverlayInfo>\n {asset.completed && <S.OverlayCompleted $softSelected={softSelected} />}\n {asset.hasError && <S.OverlayHasError $softSelected={softSelected} />}\n {selectable && (\n <S.OverlaySelected\n selected={selected}\n $softSelected={softSelected}\n $customSelectedBorder={customSelectedBorder}\n />\n )}\n {isOpen &&\n isOverlayHovered &&\n isMounted &&\n activeSummaryCard &&\n !isAnySubActionsOpened && (\n <div ref={refs.setFloating} style={floatingStyles} {...getFloatingProps()}>\n <div style={styles} className=\"floating\">\n {renderPopoverContent()}\n <S.StyledFloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n />\n </div>\n </div>\n )}\n {isOpen &&\n isOverlayHovered &&\n isMounted &&\n activeSummaryCard &&\n !isAnySubActionsOpened && (\n <div ref={refs.setFloating} style={floatingStyles} {...getFloatingProps()}>\n <div style={styles} className=\"floating\">\n {renderPopoverContent()}\n <S.StyledFloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n />\n </div>\n </div>\n )}\n </S.Overlay>\n\n {asset.overlay && <S.ConsumerDefinedOverlay>{asset.overlay}</S.ConsumerDefinedOverlay>}\n </S.AssetGalleryCompactCard>\n </S.AssetGalleryWrapper>\n );\n};\n\nAssetGalleryCompactCard.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n asset: PropTypes.shape(assetShapeWithLayout).isRequired,\n\n /**\n * Tells the asset card that the asset height and width was known\n */\n hasHeightAndWidth: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: PropTypes.bool,\n\n /**\n * Is the asset selected\n */\n selected: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have custom borders on selected asset\n */\n customSelectedBorder: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * Makes the whole asset card into a selectable area\n */\n extendedSelectMode: PropTypes.bool,\n\n /**\n * The callback function when an asset is selected - returns the selected asset key\n */\n onAssetSelected: PropTypes.func.isRequired,\n\n /**\n * The callback function when an asset is unselected - returns the unselected asset key\n */\n onAssetUnselected: PropTypes.func.isRequired,\n\n /**\n * Is the asset soft selected\n */\n softSelected: PropTypes.bool.isRequired,\n\n /**\n * A function that returns a custom component to use for the card in the gallery - The function provides\n * `asset` as its first argument\n */\n component: PropTypes.func,\n\n /**\n * Internal prop used by the gallery to determine if the card is in the viewport - This prop is\n * not intended to be used by consumers\n */\n scrollPosition: PropTypes.number,\n\n /**\n * If the width of the card is too small to render all the badges\n */\n collapseExtraInfo: PropTypes.bool,\n\n /**\n * Display a tooltip on hover with a summary of info about the asset\n */\n activeSummaryCard: PropTypes.bool,\n /**\n * * Display an icon on the card\n */\n displayIcon: PropTypes.oneOf(['dynamic', 'versions', 'verifications', ''])\n};\n\nexport default trackWindowScroll(\n React.memo(AssetGalleryCompactCard, (prevProps, nextProps) => {\n // The asset card will only re-render if any of the following props change.\n const reactiveProps = [\n 'selectable',\n 'selected',\n 'extendedSelectMode',\n 'softSelected',\n 'asset.previewUrl',\n 'asset.poster',\n 'asset.overlay',\n 'asset.statusIcon',\n 'hasHeightAndWidth',\n 'collapseExtraInfo',\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","AssetGalleryCompactCard","activeSummaryCard","displayIcon","selectable","hasHeightAndWidth","selected","customSelectedBorder","extendedSelectMode","onAssetSelected","onAssetUnselected","softSelected","scrollPosition","collapseExtraInfo","ARROW_WIDTH","ARROW_HEIGHT","GAP","arrowRef","useRef","isOpen","setIsOpen","useState","placement","isOverlayHovered","setIsOverlayHovered","openedSubActions","updateOpenedSubActions","refs","floatingStyles","context","useFloating","open","onOpenChange","whileElementsMounted","autoUpdate","middleware","offset","flip","padding","shift","arrow","element","isMounted","styles","useTransitionStyles","initial","transform","opacity","duration","close","hover","useHover","restMs","dismiss","useDismiss","referencePress","ancestorScroll","windowScroll","windowBlur","getReferenceProps","getFloatingProps","useInteractions","useEffect","newOpenedSubActions","actions","map","length","mouseHasEnteredOverlay","useCallback","mouseHasLeftOverlay","isAnySubActionsOpened","useMemo","some","isOpened","onClick","event","onSelectClick","preventDefault","stopPropagation","onContextMenu","cardRef","current","addEventListener","removeEventListener","onDragstart","dragRef","videoPlayerRef","setVideoPlayerRef","usePreviewVideoRef","overlayCompactRef","useMergeRefs","setReference","onMouseEnter","dataset","revealed","playPromise","play","undefined","then","catch","onMouseLeave","pause","renderPreview","previewContent","fileType","toLowerCase","LazyLoadComponent","poster","className","src","alt","previewUrl","split","loop","muted","type","HeadsetIcon","LazyLoadImage","title","height","width","delayMethod","delayTime","threshold","$hasHeightAndWidth","scrollIntoView","behavior","block","renderVersionsBadge","versions","Badge","badgeIcon","LayersIcon","badgeContent","backgroundColors","colors","fontSize","fontWeight","lineHeight","verticalPadding","horizontalPadding","renderVerificationBadge","verifications","renderdynamicBadge","isLive","renderBadge","renderMediaBadge","PlayIcon","convertMsToHMS","minWidth","renderSummaryCardHeaderLeft","Fragment","LiveBadge","label","liveLabel","renderPopoverContent","SummaryCard","description","instructions","imageRights","instructionSeverity","instructionLabels","headerRight","summary","headerLeft","footerLeft","footerRight","view","disabled","as","draggable","innerRef","style","$softSelected","ariaLabel","statusIcon","$hidden","AssetActionsBase","$collapseExtraInfo","note","WarningCircleIcon","CheckRectangleIcon","completed","hasError","$customSelectedBorder","setFloating","overlay","propTypes","process","env","NODE_ENV","PropTypes","shape","assetShapeWithLayout","isRequired","bool","arrayOf","string","func","number","oneOf","trackWindowScroll","memo","prevProps","nextProps","reactiveProps","every","propKey","get"],"mappings":"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"}
1
+ {"version":3,"file":"AssetGalleryCompactCard.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js"],"sourcesContent":["import { get, isFunction, mapKeys, omit } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n LazyLoadComponent,\n LazyLoadImage,\n trackWindowScroll\n} from 'react-lazy-load-image-component';\nimport 'react-lazy-load-image-component/src/effects/opacity.css';\nimport {\n CheckRectangleIcon,\n HeadsetIcon,\n LayersIcon,\n PlayIcon,\n WarningCircleIcon\n} from '../../../../../icons';\nimport { convertMsToHMS } from '../../../../../utils/dateTime';\nimport { usePreviewVideoRef } from '../../../../../hooks/usePreviewVideoRef';\nimport { Badge, LiveBadge } from '../../../../data';\n\nimport SummaryCard from '../../../SummaryCard/SummaryCard';\nimport { assetShapeWithLayout } from '../../asset.propType';\nimport * as S from './AssetGalleryCompactCard.styled';\n\nimport {\n useFloating,\n useHover,\n useInteractions,\n useTransitionStyles,\n flip,\n shift,\n arrow,\n autoUpdate,\n offset,\n useDismiss,\n useMergeRefs\n} from '@floating-ui/react';\nimport AssetActionsBase from '../../../AssetActionsBase/AssetActionsBase';\n\n// eslint-disable-next-line react/prop-types\nconst ComputedRootComponent = ({ component, asset, ...props }) => {\n // Omit props we don't need\n const newProps = mapKeys(\n omit(props, [\n 'theme',\n 'extendedSelectMode',\n 'softSelected',\n '$softSelected',\n 'customSelectedBorder',\n '$customSelectedBorder',\n 'hasHeightAndWidth',\n '$hasHeightAndWidth',\n 'collapseExtraInfo',\n '$collapseExtraInfo'\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.AssetGalleryCompactCard ref={newProps.ref} {...newProps} />;\n};\n\nconst AssetGalleryCompactCard = props => {\n const {\n asset,\n activeSummaryCard,\n displayIcon,\n selectable,\n hasHeightAndWidth,\n selected,\n customSelectedBorder,\n extendedSelectMode,\n onAssetSelected,\n onAssetUnselected,\n softSelected,\n component,\n scrollPosition,\n collapseExtraInfo\n } = props;\n\n const ARROW_WIDTH = 30;\n const ARROW_HEIGHT = 15;\n const GAP = 8;\n\n const arrowRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const [placement] = useState('bottom');\n\n const [isOverlayHovered, setIsOverlayHovered] = useState(false);\n const [openedSubActions, updateOpenedSubActions] = useState([]);\n\n const { refs, floatingStyles, context } = useFloating({\n placement,\n open: isOpen,\n onOpenChange: setIsOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({\n element: arrowRef\n })\n ]\n });\n\n const { isMounted, styles } = useTransitionStyles(context, {\n initial: {\n transform: 'translateY(-8px)',\n opacity: 0\n },\n duration: {\n open: 200,\n close: 100\n }\n });\n\n const hover = useHover(context, {\n restMs: 100\n });\n const dismiss = useDismiss(context, {\n referencePress: true,\n ancestorScroll: true,\n windowScroll: true,\n windowBlur: true\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss, hover]);\n\n useEffect(() => {\n const newOpenedSubActions = (asset?.actions ?? []).map(() => false);\n updateOpenedSubActions(newOpenedSubActions);\n }, [asset]);\n\n useEffect(() => {\n if (!isOverlayHovered && openedSubActions?.length) {\n updateOpenedSubActions(openedSubActions.map(() => false));\n }\n }, [isOverlayHovered]);\n\n const mouseHasEnteredOverlay = useCallback(() => {\n setIsOverlayHovered(true);\n }, []);\n\n const mouseHasLeftOverlay = useCallback(() => {\n setIsOverlayHovered(false);\n }, []);\n\n const isAnySubActionsOpened = useMemo(() => {\n return openedSubActions.some(isOpened => isOpened);\n }, [openedSubActions]);\n\n function onClick(event) {\n if (extendedSelectMode) {\n return onSelectClick(event);\n }\n\n if (isFunction(asset.onClick)) {\n asset.onClick(event, asset);\n }\n }\n\n function onSelectClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (selected) {\n return onAssetUnselected(asset.key);\n }\n\n if (selectable) {\n return onAssetSelected(asset.key);\n }\n }\n\n function onContextMenu(event) {\n event.preventDefault();\n asset.onContextMenu(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onContextMenu)) {\n if (cardRef.current) {\n cardRef.current.addEventListener('contextmenu', onContextMenu);\n }\n return () => {\n if (cardRef.current) {\n cardRef.current.removeEventListener('contextmenu', onContextMenu);\n }\n };\n }\n }, []);\n\n function onDragstart(event) {\n asset.onDragstart(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onDragstart)) {\n if (dragRef.current) {\n dragRef.current.addEventListener('dragstart', onDragstart);\n }\n return () => {\n if (dragRef.current) {\n dragRef.current.removeEventListener('dragstart', onDragstart);\n }\n };\n }\n }, []);\n\n const [videoPlayerRef, setVideoPlayerRef] = usePreviewVideoRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\n\n const overlayCompactRef = useMergeRefs([cardRef, refs.setReference]);\n\n function onMouseEnter(event) {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.dataset.revealed = '';\n const playPromise = videoPlayerRef.current.play();\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n // Playback started!\n })\n .catch(() => {\n // Play was prevented - silently swallow play errors\n });\n }\n }\n\n if (isFunction(asset.onMouseEnter)) {\n asset.onMouseEnter(event, asset);\n }\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n }\n\n const renderPreview = asset => {\n let previewContent = null;\n if (asset?.fileType?.toLowerCase() === 'video') {\n // Browsers ignore a changed <source> src, so the key remounts the video on a new\n // file. The query is only a cache-buster, so it's left out of the key.\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n {asset.poster && <img className=\"video-poster\" src={asset.poster} alt=\"\" />}\n <video key={asset.previewUrl?.split('?')[0]} ref={setVideoPlayerRef} 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 $hasHeightAndWidth={hasHeightAndWidth}>\n {previewContent}\n <S.FigureOverlayBackdrop selected={selected} />\n </S.Figure>\n );\n };\n\n // If this asset is soft selected we will scroll it into the viewport if it's outside\n useEffect(() => {\n if (softSelected) {\n cardRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }, [softSelected]);\n\n const renderVersionsBadge = useCallback(() => {\n if (!asset?.versions) return null;\n\n return (\n <Badge\n badgeIcon={<LayersIcon />}\n badgeContent={asset.versions}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n />\n );\n }, [asset]);\n\n const renderVerificationBadge = useCallback(() => {\n if (!asset?.verifications) return null;\n return asset?.verifications;\n }, [asset]);\n\n const renderdynamicBadge = useCallback(() => {\n if (asset?.isLive) return null;\n if (asset?.verifications) return renderVerificationBadge();\n if (asset?.versions) return renderVersionsBadge();\n return null;\n });\n\n const renderBadge = () => {\n switch (displayIcon) {\n case 'versions':\n return renderVersionsBadge();\n case 'verifications':\n return renderVerificationBadge();\n case 'dynamic':\n return renderdynamicBadge();\n default:\n return null;\n }\n };\n\n const renderMediaBadge = useCallback(() => {\n let badgeIcon = null;\n let badgeContent = null;\n\n if (asset?.fileType === 'video') {\n badgeIcon = <PlayIcon />;\n }\n\n if (asset?.duration) {\n badgeContent = (\n <S.OverlayInfoBottomMediaDuration>\n {convertMsToHMS(asset.duration)}\n </S.OverlayInfoBottomMediaDuration>\n );\n }\n\n if (!badgeIcon && !badgeContent) return null;\n return (\n <Badge\n badgeIcon={badgeIcon}\n badgeContent={badgeContent}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n minWidth={32}\n height={24}\n />\n );\n }, [asset]);\n\n const renderSummaryCardHeaderLeft = useCallback(() => {\n return (\n <>\n {renderVersionsBadge()}\n {asset.isLive ? <LiveBadge label={asset.liveLabel} /> : renderMediaBadge()}\n </>\n );\n }, [asset]);\n\n const renderPopoverContent = useCallback(() => {\n return (\n <SummaryCard\n activeSummaryCard={activeSummaryCard}\n title={asset?.title || ''}\n description={asset?.description || ''}\n instructions={asset?.imageRights || ''}\n instructionSeverity={asset?.instructionSeverity}\n instructionLabels={asset?.instructionLabels}\n headerRight={asset?.summary?.headerRight || ''}\n headerLeft={\n <>\n {renderSummaryCardHeaderLeft()}\n {asset?.summary?.headerLeft || ''}\n </>\n }\n footerLeft={asset?.summary?.footerLeft || ''}\n footerRight={asset?.summary?.footerRight || ''}\n width={375}\n view={'compact'}\n />\n );\n }, [asset]);\n\n return (\n <S.AssetGalleryWrapper disabled={asset.disabled}>\n <S.AssetGalleryCompactCard\n as={ComputedRootComponent}\n component={component}\n disabled={asset.disabled}\n asset={asset}\n onClick={onClick}\n extendedSelectMode={extendedSelectMode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n draggable={asset.draggable}\n innerRef={dragRef}\n selected={selected}\n // ref={refs.setReference}\n {...getReferenceProps()}\n >\n <S.Reference ref={refs.setReference}>{renderPreview(asset)}</S.Reference>\n\n <S.Overlay\n ref={overlayCompactRef}\n onMouseEnter={mouseHasEnteredOverlay}\n onMouseLeave={mouseHasLeftOverlay}\n style={{ height: '100%' }}\n {...getReferenceProps()}\n >\n <S.OverlayBackdrop $softSelected={softSelected} selected={selected} />\n {asset.isLive && (\n <S.LiveBadgeSlot>\n <LiveBadge\n label={collapseExtraInfo ? '' : asset.liveLabel}\n ariaLabel={asset.liveLabel}\n />\n </S.LiveBadgeSlot>\n )}\n {(asset?.statusIcon || asset?.actions) && (\n <S.OverlayInfoTopActions>\n {asset.statusIcon && <S.StatusIcon>{asset.statusIcon}</S.StatusIcon>}\n {asset?.actions && (\n <S.VisibleOnHover $hidden={extendedSelectMode}>\n <AssetActionsBase actions={asset.actions} asset={asset} />\n </S.VisibleOnHover>\n )}\n </S.OverlayInfoTopActions>\n )}\n <S.OverlayInfo>\n {isOverlayHovered && !activeSummaryCard && <span>{asset.title}</span>}\n <S.OverlayInfoTop>\n <S.OverlayInfoTopLeft $collapseExtraInfo={collapseExtraInfo}>\n {renderBadge()}\n </S.OverlayInfoTopLeft>\n {asset?.note?.title && !asset.statusIcon && (\n <S.OverlayInfoTopWarning type={asset?.note?.type}>\n <WarningCircleIcon />\n </S.OverlayInfoTopWarning>\n )}\n </S.OverlayInfoTop>\n <S.OverlayInfoBottom>\n {selectable && (\n <S.OverlayInfoBottomSelectButton selected={selected}>\n <CheckRectangleIcon onClick={onSelectClick} />\n </S.OverlayInfoBottomSelectButton>\n )}\n <S.OverlayInfoBottomMediaIcon>\n {!asset.isLive && renderMediaBadge()}\n </S.OverlayInfoBottomMediaIcon>\n </S.OverlayInfoBottom>\n </S.OverlayInfo>\n {asset.completed && <S.OverlayCompleted $softSelected={softSelected} />}\n {asset.hasError && <S.OverlayHasError $softSelected={softSelected} />}\n {selectable && (\n <S.OverlaySelected\n selected={selected}\n $softSelected={softSelected}\n $customSelectedBorder={customSelectedBorder}\n />\n )}\n {isOpen &&\n isOverlayHovered &&\n isMounted &&\n activeSummaryCard &&\n !isAnySubActionsOpened && (\n <div ref={refs.setFloating} style={floatingStyles} {...getFloatingProps()}>\n <div style={styles} className=\"floating\">\n {renderPopoverContent()}\n <S.StyledFloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n />\n </div>\n </div>\n )}\n {isOpen &&\n isOverlayHovered &&\n isMounted &&\n activeSummaryCard &&\n !isAnySubActionsOpened && (\n <div ref={refs.setFloating} style={floatingStyles} {...getFloatingProps()}>\n <div style={styles} className=\"floating\">\n {renderPopoverContent()}\n <S.StyledFloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n />\n </div>\n </div>\n )}\n </S.Overlay>\n\n {asset.overlay && <S.ConsumerDefinedOverlay>{asset.overlay}</S.ConsumerDefinedOverlay>}\n </S.AssetGalleryCompactCard>\n </S.AssetGalleryWrapper>\n );\n};\n\nAssetGalleryCompactCard.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n asset: PropTypes.shape(assetShapeWithLayout).isRequired,\n\n /**\n * Tells the asset card that the asset height and width was known\n */\n hasHeightAndWidth: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: PropTypes.bool,\n\n /**\n * Is the asset selected\n */\n selected: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have custom borders on selected asset\n */\n customSelectedBorder: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * Makes the whole asset card into a selectable area\n */\n extendedSelectMode: PropTypes.bool,\n\n /**\n * The callback function when an asset is selected - returns the selected asset key\n */\n onAssetSelected: PropTypes.func.isRequired,\n\n /**\n * The callback function when an asset is unselected - returns the unselected asset key\n */\n onAssetUnselected: PropTypes.func.isRequired,\n\n /**\n * Is the asset soft selected\n */\n softSelected: PropTypes.bool.isRequired,\n\n /**\n * A function that returns a custom component to use for the card in the gallery - The function provides\n * `asset` as its first argument\n */\n component: PropTypes.func,\n\n /**\n * Internal prop used by the gallery to determine if the card is in the viewport - This prop is\n * not intended to be used by consumers\n */\n scrollPosition: PropTypes.number,\n\n /**\n * If the width of the card is too small to render all the badges\n */\n collapseExtraInfo: PropTypes.bool,\n\n /**\n * Display a tooltip on hover with a summary of info about the asset\n */\n activeSummaryCard: PropTypes.bool,\n /**\n * * Display an icon on the card\n */\n displayIcon: PropTypes.oneOf(['dynamic', 'versions', 'verifications', ''])\n};\n\nexport default trackWindowScroll(\n React.memo(AssetGalleryCompactCard, (prevProps, nextProps) => {\n // The asset card will only re-render if any of the following props change.\n const reactiveProps = [\n 'selectable',\n 'selected',\n 'extendedSelectMode',\n 'softSelected',\n 'asset.previewUrl',\n 'asset.poster',\n 'asset.overlay',\n 'asset.statusIcon',\n 'hasHeightAndWidth',\n 'collapseExtraInfo',\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","AssetGalleryCompactCard","activeSummaryCard","displayIcon","selectable","hasHeightAndWidth","selected","customSelectedBorder","extendedSelectMode","onAssetSelected","onAssetUnselected","softSelected","scrollPosition","collapseExtraInfo","ARROW_WIDTH","ARROW_HEIGHT","GAP","arrowRef","useRef","isOpen","setIsOpen","useState","placement","isOverlayHovered","setIsOverlayHovered","openedSubActions","updateOpenedSubActions","refs","floatingStyles","context","useFloating","open","onOpenChange","whileElementsMounted","autoUpdate","middleware","offset","flip","padding","shift","arrow","element","isMounted","styles","useTransitionStyles","initial","transform","opacity","duration","close","hover","useHover","restMs","dismiss","useDismiss","referencePress","ancestorScroll","windowScroll","windowBlur","getReferenceProps","getFloatingProps","useInteractions","useEffect","newOpenedSubActions","actions","map","length","mouseHasEnteredOverlay","useCallback","mouseHasLeftOverlay","isAnySubActionsOpened","useMemo","some","isOpened","onClick","event","onSelectClick","preventDefault","stopPropagation","onContextMenu","cardRef","current","addEventListener","removeEventListener","onDragstart","dragRef","videoPlayerRef","setVideoPlayerRef","usePreviewVideoRef","overlayCompactRef","useMergeRefs","setReference","onMouseEnter","dataset","revealed","playPromise","play","undefined","then","catch","onMouseLeave","pause","renderPreview","previewContent","fileType","toLowerCase","LazyLoadComponent","poster","className","src","alt","previewUrl","split","loop","muted","type","HeadsetIcon","LazyLoadImage","title","height","width","delayMethod","delayTime","threshold","$hasHeightAndWidth","scrollIntoView","behavior","block","renderVersionsBadge","versions","Badge","badgeIcon","LayersIcon","badgeContent","backgroundColors","colors","fontSize","fontWeight","lineHeight","verticalPadding","horizontalPadding","renderVerificationBadge","verifications","renderdynamicBadge","isLive","renderBadge","renderMediaBadge","PlayIcon","convertMsToHMS","minWidth","renderSummaryCardHeaderLeft","Fragment","LiveBadge","label","liveLabel","renderPopoverContent","SummaryCard","description","instructions","imageRights","instructionSeverity","instructionLabels","headerRight","summary","headerLeft","footerLeft","footerRight","view","disabled","as","draggable","innerRef","style","$softSelected","ariaLabel","statusIcon","$hidden","AssetActionsBase","$collapseExtraInfo","note","WarningCircleIcon","CheckRectangleIcon","completed","hasError","$customSelectedBorder","setFloating","overlay","propTypes","process","env","NODE_ENV","PropTypes","shape","assetShapeWithLayout","isRequired","bool","arrayOf","string","func","number","oneOf","trackWindowScroll","memo","prevProps","nextProps","reactiveProps","every","propKey","get"],"mappings":"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"}
@@ -2,6 +2,7 @@ import { rgba } from 'polished';
2
2
  import styled, { css } from 'styled-components';
3
3
  import { applyDefaultTheme } from '../../../../utils/defaultTheme.js';
4
4
  import { FloatingArrow } from '@floating-ui/react';
5
+ import { BadgeIcon } from '../../../../data/Badge/Badge.styled.js';
5
6
 
6
7
  const shouldForwardProp = prop => {
7
8
  return prop !== 'theme' && !prop.startsWith('$');
@@ -9,6 +10,8 @@ const shouldForwardProp = prop => {
9
10
  const AssetGalleryWrapper = styled.div.withConfig({
10
11
  shouldForwardProp
11
12
  }).attrs(applyDefaultTheme)`
13
+ width: 100%;
14
+ container-type: inline-size;
12
15
  ${props => props.disabled && css`
13
16
  cursor: not-allowed;
14
17
  `};
@@ -79,7 +82,8 @@ const Figure = styled.figure.withConfig({
79
82
  display: block !important;
80
83
  }
81
84
 
82
- img {
85
+ img,
86
+ video {
83
87
  display: block;
84
88
  height: 100%;
85
89
  width: 100%;
@@ -89,9 +93,6 @@ const Figure = styled.figure.withConfig({
89
93
  object-fit: contain;
90
94
  `}
91
95
  }
92
- .video-poster {
93
- object-fit: contain;
94
- }
95
96
 
96
97
  .video-poster + video {
97
98
  position: absolute;
@@ -343,6 +344,7 @@ const OverlayInfoBottomSelectButton = styled.div.withConfig({
343
344
  opacity: 1;
344
345
  }
345
346
  `;
347
+ const OverlayInfoBottomMediaDuration = styled.span``;
346
348
  const OverlayInfoBottomMediaIcon = styled.div.withConfig({
347
349
  shouldForwardProp
348
350
  }).attrs(applyDefaultTheme)`
@@ -352,6 +354,18 @@ const OverlayInfoBottomMediaIcon = styled.div.withConfig({
352
354
  ${Overlay}:hover & {
353
355
  opacity: 0;
354
356
  }
357
+
358
+ /* 8 + 24 (select button) + 4 + 71 (badge with "00:00") + 8. Keep in step with
359
+ COMPACT_VIEW_MODE_ASSET_MIN_WIDTH. Scoped here so the summary popover keeps its duration */
360
+ @container (max-width: 115px) {
361
+ ${BadgeIcon} {
362
+ margin-right: 0;
363
+ }
364
+
365
+ ${OverlayInfoBottomMediaDuration} {
366
+ display: none;
367
+ }
368
+ }
355
369
  `;
356
370
  const ConsumerDefinedOverlay = styled.div.withConfig({
357
371
  shouldForwardProp
@@ -379,5 +393,5 @@ const StyledFloatingArrow = styled(FloatingArrow).withConfig({
379
393
  ${props => props.theme.themeProp('fill', props.theme.getColor('gray-700'), props.theme.getColor('white'))}
380
394
  `;
381
395
 
382
- export { AssetGalleryCompactCard, AssetGalleryWrapper, ConsumerDefinedOverlay, Figure, FigureOverlayBackdrop, LiveBadgeSlot, Overlay, OverlayBackdrop, OverlayCompleted, OverlayHasError, OverlayInfo, OverlayInfoBottom, OverlayInfoBottomMediaIcon, OverlayInfoBottomSelectButton, OverlayInfoTop, OverlayInfoTopActions, OverlayInfoTopLeft, OverlayInfoTopWarning, OverlaySelected, Reference, StatusIcon, StyledFloatingArrow, VisibleOnHover };
396
+ export { AssetGalleryCompactCard, AssetGalleryWrapper, ConsumerDefinedOverlay, Figure, FigureOverlayBackdrop, LiveBadgeSlot, Overlay, OverlayBackdrop, OverlayCompleted, OverlayHasError, OverlayInfo, OverlayInfoBottom, OverlayInfoBottomMediaDuration, OverlayInfoBottomMediaIcon, OverlayInfoBottomSelectButton, OverlayInfoTop, OverlayInfoTopActions, OverlayInfoTopLeft, OverlayInfoTopWarning, OverlaySelected, Reference, StatusIcon, StyledFloatingArrow, VisibleOnHover };
383
397
  //# sourceMappingURL=AssetGalleryCompactCard.styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssetGalleryCompactCard.styled.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js"],"sourcesContent":["import { rgba } from 'polished';\nimport styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../../../utils/defaultTheme';\nimport { FloatingArrow } from '@floating-ui/react';\n\nconst shouldForwardProp = prop => {\n return prop !== 'theme' && !prop.startsWith('$');\n};\n\nexport const AssetGalleryWrapper = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n ${props =>\n props.disabled &&\n css`\n cursor: not-allowed;\n `};\n`;\n\nexport const Reference = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n width: 100%;\n height: 100%;\n`;\n\nexport const AssetGalleryCompactCard = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: block;\n height: 100%;\n padding-left: ${props => (props.selected ? 1 : 0)}px;\n padding-right: ${props => (props.selected ? 1 : 0)}px;\n padding-top: ${props => (props.selected ? 1 : 0)}px;\n box-sizing: border-box;\n cursor: pointer;\n\n ${props =>\n props.theme.themeProp(\n 'background',\n props.theme.getColor('gray-700'),\n props.theme.getColor('gray-300')\n )};\n\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-100'),\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 video {\n width: 100%;\n height: 100%;\n }\n\n .audio {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n // Assets with no dimensions leave this box indefinite, so the icon needs bounds of its own.\n svg {\n width: 25%;\n min-width: 32px;\n max-width: 96px;\n }\n }\n`;\n\nexport const Figure = styled.figure\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: center;\n align-items: center;\n position: relative;\n margin: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n .lazy-load-image-background {\n display: block !important;\n }\n\n img {\n display: block;\n height: 100%;\n width: 100%;\n ${props =>\n props.$hasHeightAndWidth\n ? css`\n object-fit: cover;\n `\n : css`\n object-fit: contain;\n `}\n }\n .video-poster {\n object-fit: contain;\n }\n\n .video-poster + video {\n position: absolute;\n inset: 0;\n opacity: 0;\n transition: opacity 0.8s ease-in-out;\n }\n\n .video-poster + video[data-revealed] {\n opacity: 1;\n }\n`;\n\nexport const FigureOverlayBackdrop = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nexport const OverlayBackdrop = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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\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 ${props =>\n (props.selected || props.$softSelected) &&\n css`\n opacity: 1;\n `}\n ${Overlay}:hover & {\n opacity: 1;\n }\n`;\n\nexport const OverlayInfo = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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 50px 10px 12px;\n color: ${props => props.theme.getColor('gray-100')};\n & span {\n overflow: hidden;\n word-wrap: break-word;\n }\n`;\n\nexport const OverlayCompleted = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n transition: border-color 120ms;\n border: 3px solid;\n ${props => {\n if (props.$softSelected) return null;\n\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\nexport const OverlayHasError = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n transition: border-color 120ms;\n border: 3px solid;\n ${props => {\n if (props.$softSelected) return null;\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\nexport const OverlaySelected = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n transition: border-color 120ms;\n border-style: solid;\n border-width: 3px;\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 return props.theme.themeProp('border-color', 'transparent', 'transparent');\n }};\n`;\n\nexport const OverlayInfoTop = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n padding: 8px;\n display: flex;\n`;\n\nexport const OverlayInfoTopActions = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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 StatusIcon = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin: 4px 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.16)};\n svg {\n width: 100%;\n height: 100%;\n }\n`;\n\nexport const VisibleOnHover = styled.div`\n opacity: 0;\n transition: opacity 220ms;\n ${Overlay}:hover & {\n opacity: 1;\n }\n visibility: ${props => (props.$hidden ? 'hidden' : 'visible')};\n`;\n\nexport const OverlayInfoTopLeft = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n opacity: 1;\n display: ${props => (props?.$collapseExtraInfo ? 'none' : 'block')};\n\n ${Overlay}:hover & {\n opacity: 0;\n }\n`;\n\nexport const LiveBadgeSlot = styled.div`\n position: absolute;\n top: 8px;\n left: 8px;\n z-index: 100000;\n pointer-events: none;\n`;\n\nexport const OverlayInfoTopWarning = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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 : '3px 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 ${Overlay}:hover & {\n opacity: 0;\n }\n`;\n\nexport const OverlayInfoBottom = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n opacity: ${props => (props.selected ? 1 : 0)};\n flex-shrink: 0;\n cursor: pointer;\n transition: opacity 220ms;\n height: 24px;\n\n > svg {\n width: 24px;\n height: 24px;\n transition: opacity 120ms;\n opacity: ${props => (props.selected ? 1 : 0.5)};\n }\n\n ${Overlay}:hover & {\n opacity: 1;\n }\n`;\n\nexport const OverlayInfoBottomMediaIcon = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n margin-left: auto;\n opacity: 1;\n\n ${Overlay}:hover & {\n opacity: 0;\n }\n`;\n\nexport const ConsumerDefinedOverlay = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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 Fragment = styled.div`\n margin: 4px;\n`;\n\nexport const ActionTitle = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n ${props =>\n props.theme.themeProp(\n 'background',\n props.theme.getColor('gray-700'),\n props.theme.getColor('white')\n )}\n padding: 4px 8px;\n border-radius: 4px;\n`;\n\nexport const StyledFloatingArrow = styled(FloatingArrow)\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n ${props =>\n props.theme.themeProp('fill', props.theme.getColor('gray-700'), props.theme.getColor('white'))}\n`;\n"],"names":["shouldForwardProp","prop","startsWith","AssetGalleryWrapper","styled","div","withConfig","attrs","applyDefaultTheme","props","disabled","css","Reference","AssetGalleryCompactCard","selected","theme","themeProp","getColor","extendedSelectMode","Figure","figure","$hasHeightAndWidth","FigureOverlayBackdrop","Overlay","OverlayBackdrop","$softSelected","OverlayInfo","OverlayCompleted","rgba","OverlayHasError","OverlaySelected","$customSelectedBorder","OverlayInfoTop","OverlayInfoTopActions","StatusIcon","VisibleOnHover","$hidden","OverlayInfoTopLeft","$collapseExtraInfo","LiveBadgeSlot","OverlayInfoTopWarning","type","OverlayInfoBottom","OverlayInfoBottomSelectButton","OverlayInfoBottomMediaIcon","ConsumerDefinedOverlay","StyledFloatingArrow","FloatingArrow"],"mappings":"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"}
1
+ {"version":3,"file":"AssetGalleryCompactCard.styled.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js"],"sourcesContent":["import { rgba } from 'polished';\nimport styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../../../utils/defaultTheme';\nimport { FloatingArrow } from '@floating-ui/react';\nimport { BadgeIcon } from '../../../../data/Badge/Badge.styled';\n\nconst shouldForwardProp = prop => {\n return prop !== 'theme' && !prop.startsWith('$');\n};\n\nexport const AssetGalleryWrapper = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n width: 100%;\n container-type: inline-size;\n ${props =>\n props.disabled &&\n css`\n cursor: not-allowed;\n `};\n`;\n\nexport const Reference = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n width: 100%;\n height: 100%;\n`;\n\nexport const AssetGalleryCompactCard = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: block;\n height: 100%;\n padding-left: ${props => (props.selected ? 1 : 0)}px;\n padding-right: ${props => (props.selected ? 1 : 0)}px;\n padding-top: ${props => (props.selected ? 1 : 0)}px;\n box-sizing: border-box;\n cursor: pointer;\n\n ${props =>\n props.theme.themeProp(\n 'background',\n props.theme.getColor('gray-700'),\n props.theme.getColor('gray-300')\n )};\n\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-100'),\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 video {\n width: 100%;\n height: 100%;\n }\n\n .audio {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n // Assets with no dimensions leave this box indefinite, so the icon needs bounds of its own.\n svg {\n width: 25%;\n min-width: 32px;\n max-width: 96px;\n }\n }\n`;\n\nexport const Figure = styled.figure\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: center;\n align-items: center;\n position: relative;\n margin: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n .lazy-load-image-background {\n display: block !important;\n }\n\n img,\n video {\n display: block;\n height: 100%;\n width: 100%;\n ${props =>\n props.$hasHeightAndWidth\n ? css`\n object-fit: cover;\n `\n : css`\n object-fit: contain;\n `}\n }\n\n .video-poster + video {\n position: absolute;\n inset: 0;\n opacity: 0;\n transition: opacity 0.8s ease-in-out;\n }\n\n .video-poster + video[data-revealed] {\n opacity: 1;\n }\n`;\n\nexport const FigureOverlayBackdrop = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nexport const OverlayBackdrop = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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\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 ${props =>\n (props.selected || props.$softSelected) &&\n css`\n opacity: 1;\n `}\n ${Overlay}:hover & {\n opacity: 1;\n }\n`;\n\nexport const OverlayInfo = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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 50px 10px 12px;\n color: ${props => props.theme.getColor('gray-100')};\n & span {\n overflow: hidden;\n word-wrap: break-word;\n }\n`;\n\nexport const OverlayCompleted = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n transition: border-color 120ms;\n border: 3px solid;\n ${props => {\n if (props.$softSelected) return null;\n\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\nexport const OverlayHasError = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n transition: border-color 120ms;\n border: 3px solid;\n ${props => {\n if (props.$softSelected) return null;\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\nexport const OverlaySelected = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n transition: border-color 120ms;\n border-style: solid;\n border-width: 3px;\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 return props.theme.themeProp('border-color', 'transparent', 'transparent');\n }};\n`;\n\nexport const OverlayInfoTop = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n padding: 8px;\n display: flex;\n`;\n\nexport const OverlayInfoTopActions = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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 StatusIcon = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin: 4px 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.16)};\n svg {\n width: 100%;\n height: 100%;\n }\n`;\n\nexport const VisibleOnHover = styled.div`\n opacity: 0;\n transition: opacity 220ms;\n ${Overlay}:hover & {\n opacity: 1;\n }\n visibility: ${props => (props.$hidden ? 'hidden' : 'visible')};\n`;\n\nexport const OverlayInfoTopLeft = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n opacity: 1;\n display: ${props => (props?.$collapseExtraInfo ? 'none' : 'block')};\n\n ${Overlay}:hover & {\n opacity: 0;\n }\n`;\n\nexport const LiveBadgeSlot = styled.div`\n position: absolute;\n top: 8px;\n left: 8px;\n z-index: 100000;\n pointer-events: none;\n`;\n\nexport const OverlayInfoTopWarning = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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 : '3px 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 ${Overlay}:hover & {\n opacity: 0;\n }\n`;\n\nexport const OverlayInfoBottom = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n opacity: ${props => (props.selected ? 1 : 0)};\n flex-shrink: 0;\n cursor: pointer;\n transition: opacity 220ms;\n height: 24px;\n\n > svg {\n width: 24px;\n height: 24px;\n transition: opacity 120ms;\n opacity: ${props => (props.selected ? 1 : 0.5)};\n }\n\n ${Overlay}:hover & {\n opacity: 1;\n }\n`;\n\nexport const OverlayInfoBottomMediaDuration = styled.span``;\n\nexport const OverlayInfoBottomMediaIcon = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n margin-left: auto;\n opacity: 1;\n\n ${Overlay}:hover & {\n opacity: 0;\n }\n\n /* 8 + 24 (select button) + 4 + 71 (badge with \"00:00\") + 8. Keep in step with\n COMPACT_VIEW_MODE_ASSET_MIN_WIDTH. Scoped here so the summary popover keeps its duration */\n @container (max-width: 115px) {\n ${BadgeIcon} {\n margin-right: 0;\n }\n\n ${OverlayInfoBottomMediaDuration} {\n display: none;\n }\n }\n`;\n\nexport const ConsumerDefinedOverlay = styled.div\n .withConfig({\n shouldForwardProp\n })\n .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 Fragment = styled.div`\n margin: 4px;\n`;\n\nexport const ActionTitle = styled.div\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n ${props =>\n props.theme.themeProp(\n 'background',\n props.theme.getColor('gray-700'),\n props.theme.getColor('white')\n )}\n padding: 4px 8px;\n border-radius: 4px;\n`;\n\nexport const StyledFloatingArrow = styled(FloatingArrow)\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n ${props =>\n props.theme.themeProp('fill', props.theme.getColor('gray-700'), props.theme.getColor('white'))}\n`;\n"],"names":["shouldForwardProp","prop","startsWith","AssetGalleryWrapper","styled","div","withConfig","attrs","applyDefaultTheme","props","disabled","css","Reference","AssetGalleryCompactCard","selected","theme","themeProp","getColor","extendedSelectMode","Figure","figure","$hasHeightAndWidth","FigureOverlayBackdrop","Overlay","OverlayBackdrop","$softSelected","OverlayInfo","OverlayCompleted","rgba","OverlayHasError","OverlaySelected","$customSelectedBorder","OverlayInfoTop","OverlayInfoTopActions","StatusIcon","VisibleOnHover","$hidden","OverlayInfoTopLeft","$collapseExtraInfo","LiveBadgeSlot","OverlayInfoTopWarning","type","OverlayInfoBottom","OverlayInfoBottomSelectButton","OverlayInfoBottomMediaDuration","span","OverlayInfoBottomMediaIcon","BadgeIcon","ConsumerDefinedOverlay","StyledFloatingArrow","FloatingArrow"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ntbjs/react-components",
3
- "version": "2.0.17",
3
+ "version": "2.0.18-rc.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },