@ntbjs/react-components 2.0.15-rc.2 → 2.0.15-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/data/LiveBadge/LiveBadge.js +11 -2
- package/build/data/LiveBadge/LiveBadge.js.map +1 -1
- package/build/data/Tabs/Tabs.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js +20 -7
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js +14 -5
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,7 +20,9 @@ const LiveDot = () => React__default.createElement(Dot, null, React__default.cre
|
|
|
20
20
|
height: "12",
|
|
21
21
|
viewBox: "0 0 12 12",
|
|
22
22
|
fill: "none",
|
|
23
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
23
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
24
|
+
"aria-hidden": "true",
|
|
25
|
+
focusable: "false"
|
|
24
26
|
}, React__default.createElement("circle", {
|
|
25
27
|
className: "live-dot__ring",
|
|
26
28
|
cx: "6",
|
|
@@ -34,6 +36,7 @@ const LiveDot = () => React__default.createElement(Dot, null, React__default.cre
|
|
|
34
36
|
})));
|
|
35
37
|
const LiveBadge = React__default.forwardRef(function LiveBadge({
|
|
36
38
|
label = 'LIVE',
|
|
39
|
+
ariaLabel,
|
|
37
40
|
fontSize = 12,
|
|
38
41
|
fontWeight = 500,
|
|
39
42
|
height = 20,
|
|
@@ -41,6 +44,11 @@ const LiveBadge = React__default.forwardRef(function LiveBadge({
|
|
|
41
44
|
verticalPadding = 2,
|
|
42
45
|
...rest
|
|
43
46
|
}, forwardedRef) {
|
|
47
|
+
const hasVisibleLabel = typeof label === 'string' ? label.length > 0 : Boolean(label);
|
|
48
|
+
const accessibilityProps = hasVisibleLabel ? {} : {
|
|
49
|
+
role: 'img',
|
|
50
|
+
'aria-label': ariaLabel || typeof label === 'string' && label || 'LIVE'
|
|
51
|
+
};
|
|
44
52
|
return React__default.createElement(Badge, _extends({
|
|
45
53
|
ref: forwardedRef,
|
|
46
54
|
badgeIcon: React__default.createElement(LiveDot, null),
|
|
@@ -52,10 +60,11 @@ const LiveBadge = React__default.forwardRef(function LiveBadge({
|
|
|
52
60
|
height: height,
|
|
53
61
|
horizontalPadding: horizontalPadding,
|
|
54
62
|
verticalPadding: verticalPadding
|
|
55
|
-
}, rest));
|
|
63
|
+
}, accessibilityProps, rest));
|
|
56
64
|
});
|
|
57
65
|
LiveBadge.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
58
66
|
label: PropTypes.node,
|
|
67
|
+
ariaLabel: PropTypes.string,
|
|
59
68
|
fontSize: PropTypes.number,
|
|
60
69
|
fontWeight: PropTypes.number,
|
|
61
70
|
height: PropTypes.number,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveBadge.js","sources":["../../../src/components/data/LiveBadge/LiveBadge.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Badge from '../Badge/Badge';\n\nconst Dot = styled.span`\n display: inline-flex;\n line-height: 0;\n\n .live-dot__ring {\n fill: #7f1b1b;\n }\n .live-dot__core {\n fill: #d83000;\n }\n`;\n\nconst LiveDot = () => (\n <Dot>\n <svg
|
|
1
|
+
{"version":3,"file":"LiveBadge.js","sources":["../../../src/components/data/LiveBadge/LiveBadge.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Badge from '../Badge/Badge';\n\nconst Dot = styled.span`\n display: inline-flex;\n line-height: 0;\n\n .live-dot__ring {\n fill: #7f1b1b;\n }\n .live-dot__core {\n fill: #d83000;\n }\n`;\n\nconst LiveDot = () => (\n <Dot>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle className=\"live-dot__ring\" cx=\"6\" cy=\"6\" r=\"6\" />\n <circle className=\"live-dot__core\" cx=\"6\" cy=\"6\" r=\"4\" />\n </svg>\n </Dot>\n);\n\n/**\n * A red \"live\" pill (dot + label) marking an asset that is currently a live\n * video recording. Thin wrapper around Badge with the fixed live styling.\n *\n * ### Import\n *\n * ```js\n * import { LiveBadge } from '@ntbjs/react-components/data';\n * ```\n */\nconst LiveBadge = React.forwardRef(function LiveBadge(\n {\n label = 'LIVE',\n ariaLabel,\n fontSize = 12,\n fontWeight = 500,\n height = 20,\n horizontalPadding = 8,\n verticalPadding = 2,\n ...rest\n },\n forwardedRef\n) {\n const hasVisibleLabel = typeof label === 'string' ? label.length > 0 : Boolean(label);\n const accessibilityProps = hasVisibleLabel\n ? {}\n : { role: 'img', 'aria-label': ariaLabel || (typeof label === 'string' && label) || 'LIVE' };\n\n return (\n <Badge\n ref={forwardedRef}\n badgeIcon={<LiveDot />}\n badgeContent={label}\n backgroundColors={['#000000', '#000000']}\n colors={['#ffffff', '#ffffff']}\n fontSize={fontSize}\n fontWeight={fontWeight}\n height={height}\n horizontalPadding={horizontalPadding}\n verticalPadding={verticalPadding}\n {...accessibilityProps}\n {...rest}\n />\n );\n});\n\nLiveBadge.propTypes = {\n /** Badge label. Defaults to \"LIVE\"; pass a localized string to override. */\n label: PropTypes.node,\n /**\n * Accessible name announced to screen readers. Used when `label` is empty\n * (dot-only mode); defaults to the label, or \"LIVE\" when none is provided.\n */\n ariaLabel: PropTypes.string,\n /** Font size in pixels. */\n fontSize: PropTypes.number,\n /** Font weight. */\n fontWeight: PropTypes.number,\n /** Badge height in pixels. */\n height: PropTypes.number,\n /** Left and right padding in pixels. */\n horizontalPadding: PropTypes.number,\n /** Top and bottom padding in pixels. */\n verticalPadding: PropTypes.number\n};\n\nexport default LiveBadge;\n"],"names":["Dot","styled","span","LiveDot","React","createElement","width","height","viewBox","fill","xmlns","focusable","className","cx","cy","r","LiveBadge","forwardRef","label","ariaLabel","fontSize","fontWeight","horizontalPadding","verticalPadding","rest","forwardedRef","hasVisibleLabel","length","Boolean","accessibilityProps","role","Badge","_extends","ref","badgeIcon","badgeContent","backgroundColors","colors","propTypes","process","env","NODE_ENV","PropTypes","node","string","number"],"mappings":"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"}
|
|
@@ -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\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(0);\n const contentRef = useRef(null);\n\n const tabs = useMemo(() => {\n const tabs = [];\n function extractChildren(children) {\n Children.forEach(children, (child, index) => {\n if (isNil(child)) {\n return null;\n }\n\n if (child.type === Fragment) {\n extractChildren(child.props?.children);\n }\n\n if (child.props?.hidden) {\n return null;\n }\n\n if (child.type === Tab) {\n tabs.push({\n key: index,\n id: child.props?.id,\n trigger: child.props?.trigger,\n content: child.props?.children\n });\n }\n });\n }\n\n extractChildren(children);\n\n if (!tabs.some(tab => tab?.key === activeTab)) {\n setActiveTab(tabs[0]?.key);\n }\n\n return tabs;\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 *\n * Defaults to the first tab.\n */\n /**\n *\n * Initially-selected tab, matched against each `Tab`'s `id` prop.\n */\n defaultActiveId: PropTypes.string\n};\n\nexport default Tabs;\n"],"names":["Tabs","React","forwardRef","children","defaultMinHeight","customPadding","onTabClick","defaultActiveId","props","forwardedRef","activeTab","setActiveTab","useState","contentRef","useRef","tabs","useMemo","extractChildren","Children","forEach","child","index","isNil","type","Fragment","hidden","Tab","push","key","id","trigger","content","some","tab","handleTabClick","triggerText","useEffect","matchedTab","find","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\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(0);\n const contentRef = useRef(null);\n\n const tabs = useMemo(() => {\n const tabs = [];\n function extractChildren(children) {\n Children.forEach(children, (child, index) => {\n if (isNil(child)) {\n return null;\n }\n\n if (child.type === Fragment) {\n extractChildren(child.props?.children);\n }\n\n if (child.props?.hidden) {\n return null;\n }\n\n if (child.type === Tab) {\n tabs.push({\n key: index,\n id: child.props?.id,\n trigger: child.props?.trigger,\n content: child.props?.children\n });\n }\n });\n }\n\n extractChildren(children);\n\n if (!tabs.some(tab => tab?.key === activeTab)) {\n setActiveTab(tabs[0]?.key);\n }\n\n return tabs;\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.\n */\n defaultActiveId: PropTypes.string\n};\n\nexport default Tabs;\n"],"names":["Tabs","React","forwardRef","children","defaultMinHeight","customPadding","onTabClick","defaultActiveId","props","forwardedRef","activeTab","setActiveTab","useState","contentRef","useRef","tabs","useMemo","extractChildren","Children","forEach","child","index","isNil","type","Fragment","hidden","Tab","push","key","id","trigger","content","some","tab","handleTabClick","triggerText","useEffect","matchedTab","find","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":";;;;;;;AA8FMA,MAAAA,IAAI,GAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,IAAIA,CACzC;EACEG,QAAQ;AACRC,EAAAA,gBAAgB,GAAG,EAAE;AACrBC,EAAAA,aAAa,GAAG,CAAC;AACjBC,EAAAA,UAAU,GAAGA,MAAM,EAAE;EACrBC,eAAe;EACf,GAAGC,KAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC7C,EAAA,MAAMC,UAAU,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAE/B,EAAA,MAAMC,IAAI,GAAGC,OAAO,CAAC,MAAM;IACzB,MAAMD,IAAI,GAAG,EAAE,CAAA;IACf,SAASE,eAAeA,CAACd,QAAQ,EAAE;MACjCe,QAAQ,CAACC,OAAO,CAAChB,QAAQ,EAAE,CAACiB,KAAK,EAAEC,KAAK,KAAK;AAC3C,QAAA,IAAIC,KAAK,CAACF,KAAK,CAAC,EAAE;AAChB,UAAA,OAAO,IAAI,CAAA;AACb,SAAA;AAEA,QAAA,IAAIA,KAAK,CAACG,IAAI,KAAKC,QAAQ,EAAE;AAC3BP,UAAAA,eAAe,CAACG,KAAK,CAACZ,KAAK,EAAEL,QAAQ,CAAC,CAAA;AACxC,SAAA;AAEA,QAAA,IAAIiB,KAAK,CAACZ,KAAK,EAAEiB,MAAM,EAAE;AACvB,UAAA,OAAO,IAAI,CAAA;AACb,SAAA;AAEA,QAAA,IAAIL,KAAK,CAACG,IAAI,KAAKG,GAAG,EAAE;UACtBX,IAAI,CAACY,IAAI,CAAC;AACRC,YAAAA,GAAG,EAAEP,KAAK;AACVQ,YAAAA,EAAE,EAAET,KAAK,CAACZ,KAAK,EAAEqB,EAAE;AACnBC,YAAAA,OAAO,EAAEV,KAAK,CAACZ,KAAK,EAAEsB,OAAO;AAC7BC,YAAAA,OAAO,EAAEX,KAAK,CAACZ,KAAK,EAAEL,QAAAA;AACxB,WAAC,CAAC,CAAA;AACJ,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;IAEAc,eAAe,CAACd,QAAQ,CAAC,CAAA;AAEzB,IAAA,IAAI,CAACY,IAAI,CAACiB,IAAI,CAACC,GAAG,IAAIA,GAAG,EAAEL,GAAG,KAAKlB,SAAS,CAAC,EAAE;AAC7CC,MAAAA,YAAY,CAACI,IAAI,CAAC,CAAC,CAAC,EAAEa,GAAG,CAAC,CAAA;AAC5B,KAAA;AAEA,IAAA,OAAOb,IAAI,CAAA;AACb,GAAC,EAAE,CAACZ,QAAQ,CAAC,CAAC,CAAA;EAEd,MAAM+B,cAAc,GAAGD,GAAG,IAAI;AAC5BtB,IAAAA,YAAY,CAACsB,GAAG,CAACL,GAAG,CAAC,CAAA;IACrB,IAAIO,WAAW,GAAG,EAAE,CAAA;AAEpB,IAAA,IAAIF,GAAG,CAACH,OAAO,IAAIG,GAAG,CAACH,OAAO,CAACtB,KAAK,IAAIyB,GAAG,CAACH,OAAO,CAACtB,KAAK,CAACL,QAAQ,EAAE;AAClEgC,MAAAA,WAAW,GAAGF,GAAG,CAACH,OAAO,CAACtB,KAAK,CAACL,QAAQ,CAAA;AAC1C,KAAA;AACA,IAAA,IAAIG,UAAU,EAAE;AACdA,MAAAA,UAAU,CAAC;AACT,QAAA,GAAG2B,GAAG;AACNE,QAAAA,WAAW,EAAEA,WAAAA;AACf,OAAC,CAAC,CAAA;AACJ,KAAA;GACD,CAAA;AAEDC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAId,KAAK,CAACf,eAAe,CAAC,EAAE,OAAA;AAC5B,IAAA,MAAM8B,UAAU,GAAGtB,IAAI,CAACuB,IAAI,CAACL,GAAG,IAAIA,GAAG,CAACJ,EAAE,KAAKtB,eAAe,CAAC,CAAA;AAC/D,IAAA,IAAI8B,UAAU,EAAEH,cAAc,CAACG,UAAU,CAAC,CAAA;GAC3C,EAAE,EAAE,CAAC,CAAA;EAEN,OACEpC,cAAA,CAAAsC,aAAA,CAACC,MAAM,EAAAC,QAAA,CAAA;AAACC,IAAAA,GAAG,EAAEjC,YAAAA;AAAa,GAAA,EAAKD,KAAK,EAAA;AAAEmC,IAAAA,IAAI,EAAC,SAAA;AAAS,GAAA,CAAA,EAClD1C,cAAA,CAAAsC,aAAA,CAACC,UAAY,EAAA;AAACI,IAAAA,aAAa,EAAEvC,aAAAA;AAAc,GAAA,EACxCU,IAAI,CAAC8B,GAAG,CAACZ,GAAG,IACXhC,cAAA,CAAAsC,aAAA,CAACC,SAAW,EAAA;IACVZ,GAAG,EAAEK,GAAG,CAACL,GAAI;IACbH,MAAM,EAAEQ,GAAG,CAACR,MAAO;AACnBqB,IAAAA,OAAO,EAAEb,GAAG,CAACL,GAAG,KAAKlB,SAAU;AAC/BqC,IAAAA,OAAO,EAAEA,MAAMb,cAAc,CAACD,GAAG,CAAE;AACnCU,IAAAA,IAAI,EAAC,KAAA;AAAK,GAAA,EAETV,GAAG,CAACH,OACM,CACd,CACW,CAAC,EACf7B,cAAA,CAAAsC,aAAA,CAACC,eAAiB,EAAA;AAACI,IAAAA,aAAa,EAAEvC,aAAAA;AAAc,GAAoB,CAAC,EACrEJ,cAAA,CAAAsC,aAAA,CAACC,UAAY,EACVzB,IAAAA,EAAAA,IAAI,CAAC8B,GAAG,CAACZ,GAAG,IACXhC,cAAA,CAAAsC,aAAA,CAAA,KAAA,EAAA;IACEG,GAAG,EAAET,GAAG,CAACL,GAAG,KAAKlB,SAAS,EAAEkB,GAAG,GAAGf,UAAU,GAAG,IAAK;IACpDe,GAAG,EAAEK,GAAG,CAACL,GAAI;AACbe,IAAAA,IAAI,EAAC,UAAU;AACflB,IAAAA,MAAM,EAAEQ,GAAG,CAACL,GAAG,KAAKlB,SAAU;AAC9BsC,IAAAA,KAAK,EAAE;MACLC,SAAS,EAAE,CAACC,OAAO,CAAC9C,gBAAgB,CAAC,GAAGA,gBAAgB,GAAG,EAAA;AAC7D,KAAA;AAAE,GAAA,EAED6B,GAAG,CAACF,OACF,CACN,CACW,CACR,CAAC,CAAA;AAEb,CAAC,EAAC;AAEF/B,IAAI,CAACmD,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAG,YAAA,GAAA;AACfnD,EAAAA,QAAQ,EAAEoD,SAAS,CAACC,SAAS,CAAC,CAACD,SAAS,CAACE,KAAK,EAAEF,SAAS,CAACG,MAAM,CAAC,CAAC;EAIlEC,eAAe,EAAEJ,SAAS,CAACK,MAAM;EAIjCxD,gBAAgB,EAAEmD,SAAS,CAACK,MAAM;EAIlCvD,aAAa,EAAEkD,SAAS,CAACK,MAAM;EAI/BtD,UAAU,EAAEiD,SAAS,CAACM,IAAI;EAK1BtD,eAAe,EAAEgD,SAAS,CAACK,MAAAA;AAC7B,CAAC,GAAA,EAAA;;;;"}
|
|
@@ -66,6 +66,7 @@ const AssetGalleryCompactCard = props => {
|
|
|
66
66
|
const [placement] = useState('bottom');
|
|
67
67
|
const [isOverlayHovered, setIsOverlayHovered] = useState(false);
|
|
68
68
|
const [openedSubActions, updateOpenedSubActions] = useState([]);
|
|
69
|
+
const [failedUrl, setFailedUrl] = useState(null);
|
|
69
70
|
const {
|
|
70
71
|
refs,
|
|
71
72
|
floatingStyles,
|
|
@@ -198,17 +199,25 @@ const AssetGalleryCompactCard = props => {
|
|
|
198
199
|
}
|
|
199
200
|
const renderPreview = asset => {
|
|
200
201
|
let previewContent = null;
|
|
201
|
-
|
|
202
|
+
const isVideo = asset?.fileType?.toLowerCase() === 'video';
|
|
203
|
+
const showFallback = asset?.isLive || isVideo && (!asset.previewUrl || failedUrl === asset.previewUrl);
|
|
204
|
+
if (showFallback) {
|
|
205
|
+
previewContent = React__default.createElement(LazyLoadComponent, {
|
|
206
|
+
scrollPosition: scrollPosition
|
|
207
|
+
}, React__default.createElement("div", {
|
|
208
|
+
className: "audio"
|
|
209
|
+
}, React__default.createElement(SvgPlay, null)));
|
|
210
|
+
} else if (isVideo) {
|
|
202
211
|
previewContent = React__default.createElement(LazyLoadComponent, {
|
|
203
212
|
scrollPosition: scrollPosition
|
|
204
213
|
}, React__default.createElement("video", {
|
|
205
214
|
ref: videoPlayerRef,
|
|
206
215
|
loop: true,
|
|
207
|
-
muted: true
|
|
208
|
-
|
|
216
|
+
muted: true,
|
|
217
|
+
preload: "metadata",
|
|
209
218
|
src: asset.previewUrl,
|
|
210
|
-
|
|
211
|
-
}))
|
|
219
|
+
onError: () => setFailedUrl(asset.previewUrl)
|
|
220
|
+
}));
|
|
212
221
|
} else if (asset?.fileType?.toLowerCase() === 'audio') {
|
|
213
222
|
previewContent = React__default.createElement(LazyLoadComponent, {
|
|
214
223
|
scrollPosition: scrollPosition
|
|
@@ -260,6 +269,7 @@ const AssetGalleryCompactCard = props => {
|
|
|
260
269
|
return asset?.verifications;
|
|
261
270
|
}, [asset]);
|
|
262
271
|
const renderdynamicBadge = useCallback(() => {
|
|
272
|
+
if (asset?.isLive) return null;
|
|
263
273
|
if (asset?.verifications) return renderVerificationBadge();
|
|
264
274
|
if (asset?.versions) return renderVersionsBadge();
|
|
265
275
|
return null;
|
|
@@ -301,7 +311,9 @@ const AssetGalleryCompactCard = props => {
|
|
|
301
311
|
});
|
|
302
312
|
}, [asset]);
|
|
303
313
|
const renderSummaryCardHeaderLeft = useCallback(() => {
|
|
304
|
-
return React__default.createElement(React__default.Fragment, null, renderVersionsBadge(),
|
|
314
|
+
return React__default.createElement(React__default.Fragment, null, renderVersionsBadge(), asset.isLive ? React__default.createElement(LiveBadge, {
|
|
315
|
+
label: asset.liveLabel
|
|
316
|
+
}) : renderMediaBadge());
|
|
305
317
|
}, [asset]);
|
|
306
318
|
const renderPopoverContent = useCallback(() => {
|
|
307
319
|
return React__default.createElement(SummaryCard, {
|
|
@@ -346,7 +358,8 @@ const AssetGalleryCompactCard = props => {
|
|
|
346
358
|
$softSelected: softSelected,
|
|
347
359
|
selected: selected
|
|
348
360
|
}), asset.isLive && React__default.createElement(LiveBadgeSlot, null, React__default.createElement(LiveBadge, {
|
|
349
|
-
label: collapseExtraInfo ? '' : asset.liveLabel
|
|
361
|
+
label: collapseExtraInfo ? '' : asset.liveLabel,
|
|
362
|
+
ariaLabel: asset.liveLabel
|
|
350
363
|
})), (asset?.statusIcon || asset?.actions) && React__default.createElement(OverlayInfoTopActions, null, asset.statusIcon && React__default.createElement(StatusIcon, null, asset.statusIcon), asset?.actions && React__default.createElement(VisibleOnHover, {
|
|
351
364
|
$hidden: extendedSelectMode
|
|
352
365
|
}, React__default.createElement(AssetActionsBase, {
|
|
@@ -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 { 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 = useRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\n\n const overlayCompactRef = useMergeRefs([cardRef, refs.setReference]);\n\n function onMouseEnter(event) {\n if (videoPlayerRef.current) {\n const playPromise = videoPlayerRef.current.play();\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n // Playback started!\n })\n .catch(() => {\n // Play was prevented - silently swallow play errors\n });\n }\n }\n\n if (isFunction(asset.onMouseEnter)) {\n asset.onMouseEnter(event, asset);\n }\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n }\n\n const renderPreview = asset => {\n let previewContent = null;\n if (asset?.fileType?.toLowerCase() === 'video') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <video\n ref={videoPlayerRef}\n loop\n muted\n // style={{ maxHeight: maxHeight }}\n >\n <source src={asset.previewUrl} type=\"video/mp4\" />\n </video>\n </LazyLoadComponent>\n );\n } else if (asset?.fileType?.toLowerCase() === 'audio') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <div className=\"audio\">\n <HeadsetIcon />\n </div>\n </LazyLoadComponent>\n );\n } else {\n previewContent = (\n <LazyLoadImage\n alt={asset?.title}\n src={asset?.previewUrl}\n height=\"100%\"\n width=\"100%\"\n delayMethod=\"debounce\"\n delayTime={0}\n threshold={1500}\n scrollPosition={scrollPosition}\n />\n );\n }\n\n return (\n <S.Figure $hasHeightAndWidth={hasHeightAndWidth}>\n {previewContent}\n <S.FigureOverlayBackdrop selected={selected} />\n </S.Figure>\n );\n };\n\n // If this asset is soft selected we will scroll it into the viewport if it's outside\n useEffect(() => {\n if (softSelected) {\n cardRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }, [softSelected]);\n\n const renderVersionsBadge = useCallback(() => {\n if (!asset?.versions) return null;\n\n return (\n <Badge\n badgeIcon={<LayersIcon />}\n badgeContent={asset.versions}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n />\n );\n }, [asset]);\n\n const renderVerificationBadge = useCallback(() => {\n if (!asset?.verifications) return null;\n return asset?.verifications;\n }, [asset]);\n\n const renderdynamicBadge = useCallback(() => {\n if (asset?.verifications) return renderVerificationBadge();\n if (asset?.versions) return renderVersionsBadge();\n return null;\n });\n\n const renderBadge = () => {\n switch (displayIcon) {\n case 'versions':\n return renderVersionsBadge();\n case 'verifications':\n return renderVerificationBadge();\n case 'dynamic':\n return renderdynamicBadge();\n default:\n return null;\n }\n };\n\n const renderMediaBadge = useCallback(() => {\n let badgeIcon = null;\n let badgeContent = null;\n\n if (asset?.fileType === 'video') {\n badgeIcon = <PlayIcon />;\n }\n\n if (asset?.duration) {\n badgeContent = convertMsToHMS(asset.duration);\n }\n\n if (!badgeIcon && !badgeContent) return null;\n return (\n <Badge\n badgeIcon={badgeIcon}\n badgeContent={badgeContent}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n minWidth={32}\n height={24}\n />\n );\n }, [asset]);\n\n const renderSummaryCardHeaderLeft = useCallback(() => {\n return (\n <>\n {renderVersionsBadge()}\n {renderMediaBadge()}\n </>\n );\n }, [asset]);\n\n const renderPopoverContent = useCallback(() => {\n return (\n <SummaryCard\n activeSummaryCard={activeSummaryCard}\n title={asset?.title || ''}\n description={asset?.description || ''}\n instructions={asset?.imageRights || ''}\n 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}>\n {asset.previewUrl && renderPreview(asset)}\n </S.Reference>\n\n <S.Overlay\n ref={overlayCompactRef}\n onMouseEnter={mouseHasEnteredOverlay}\n onMouseLeave={mouseHasLeftOverlay}\n style={{ height: '100%' }}\n {...getReferenceProps()}\n >\n <S.OverlayBackdrop $softSelected={softSelected} selected={selected} />\n {asset.isLive && (\n <S.LiveBadgeSlot>\n <LiveBadge label={collapseExtraInfo ? '' : asset.liveLabel} />\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.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","overlayCompactRef","useMergeRefs","setReference","onMouseEnter","playPromise","play","undefined","then","catch","onMouseLeave","pause","renderPreview","previewContent","fileType","toLowerCase","LazyLoadComponent","loop","muted","src","previewUrl","type","className","HeadsetIcon","LazyLoadImage","alt","title","height","width","delayMethod","delayTime","threshold","$hasHeightAndWidth","scrollIntoView","behavior","block","renderVersionsBadge","versions","Badge","badgeIcon","LayersIcon","badgeContent","backgroundColors","colors","fontSize","fontWeight","lineHeight","verticalPadding","horizontalPadding","renderVerificationBadge","verifications","renderdynamicBadge","renderBadge","renderMediaBadge","PlayIcon","convertMsToHMS","minWidth","renderSummaryCardHeaderLeft","Fragment","renderPopoverContent","SummaryCard","description","instructions","imageRights","instructionSeverity","instructionLabels","headerRight","summary","headerLeft","footerLeft","footerRight","view","disabled","as","draggable","innerRef","style","$softSelected","isLive","LiveBadge","label","liveLabel","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 { 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 const [failedUrl, setFailedUrl] = useState(null);\n\n const { refs, floatingStyles, context } = useFloating({\n placement,\n open: isOpen,\n onOpenChange: setIsOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({\n element: arrowRef\n })\n ]\n });\n\n const { isMounted, styles } = useTransitionStyles(context, {\n initial: {\n transform: 'translateY(-8px)',\n opacity: 0\n },\n duration: {\n open: 200,\n close: 100\n }\n });\n\n const hover = useHover(context, {\n restMs: 100\n });\n const dismiss = useDismiss(context, {\n referencePress: true,\n ancestorScroll: true,\n windowScroll: true,\n windowBlur: true\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss, hover]);\n\n useEffect(() => {\n const newOpenedSubActions = (asset?.actions ?? []).map(() => false);\n updateOpenedSubActions(newOpenedSubActions);\n }, [asset]);\n\n useEffect(() => {\n if (!isOverlayHovered && openedSubActions?.length) {\n updateOpenedSubActions(openedSubActions.map(() => false));\n }\n }, [isOverlayHovered]);\n\n const mouseHasEnteredOverlay = useCallback(() => {\n setIsOverlayHovered(true);\n }, []);\n\n const mouseHasLeftOverlay = useCallback(() => {\n setIsOverlayHovered(false);\n }, []);\n\n const isAnySubActionsOpened = useMemo(() => {\n return openedSubActions.some(isOpened => isOpened);\n }, [openedSubActions]);\n\n function onClick(event) {\n if (extendedSelectMode) {\n return onSelectClick(event);\n }\n\n if (isFunction(asset.onClick)) {\n asset.onClick(event, asset);\n }\n }\n\n function onSelectClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (selected) {\n return onAssetUnselected(asset.key);\n }\n\n if (selectable) {\n return onAssetSelected(asset.key);\n }\n }\n\n function onContextMenu(event) {\n event.preventDefault();\n asset.onContextMenu(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onContextMenu)) {\n if (cardRef.current) {\n cardRef.current.addEventListener('contextmenu', onContextMenu);\n }\n return () => {\n if (cardRef.current) {\n cardRef.current.removeEventListener('contextmenu', onContextMenu);\n }\n };\n }\n }, []);\n\n function onDragstart(event) {\n asset.onDragstart(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onDragstart)) {\n if (dragRef.current) {\n dragRef.current.addEventListener('dragstart', onDragstart);\n }\n return () => {\n if (dragRef.current) {\n dragRef.current.removeEventListener('dragstart', onDragstart);\n }\n };\n }\n }, []);\n\n const videoPlayerRef = useRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\n\n const overlayCompactRef = useMergeRefs([cardRef, refs.setReference]);\n\n function onMouseEnter(event) {\n if (videoPlayerRef.current) {\n const playPromise = videoPlayerRef.current.play();\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n // Playback started!\n })\n .catch(() => {\n // Play was prevented - silently swallow play errors\n });\n }\n }\n\n if (isFunction(asset.onMouseEnter)) {\n asset.onMouseEnter(event, asset);\n }\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n }\n\n const renderPreview = asset => {\n let previewContent = null;\n const isVideo = asset?.fileType?.toLowerCase() === 'video';\n const showFallback =\n asset?.isLive || (isVideo && (!asset.previewUrl || failedUrl === asset.previewUrl));\n\n if (showFallback) {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <div className=\"audio\">\n <PlayIcon />\n </div>\n </LazyLoadComponent>\n );\n } else if (isVideo) {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <video\n ref={videoPlayerRef}\n loop\n muted\n preload=\"metadata\"\n src={asset.previewUrl}\n onError={() => setFailedUrl(asset.previewUrl)}\n />\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}>\n {asset.previewUrl && renderPreview(asset)}\n </S.Reference>\n\n <S.Overlay\n ref={overlayCompactRef}\n onMouseEnter={mouseHasEnteredOverlay}\n onMouseLeave={mouseHasLeftOverlay}\n style={{ height: '100%' }}\n {...getReferenceProps()}\n >\n <S.OverlayBackdrop $softSelected={softSelected} selected={selected} />\n {asset.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.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","failedUrl","setFailedUrl","refs","floatingStyles","context","useFloating","open","onOpenChange","whileElementsMounted","autoUpdate","middleware","offset","flip","padding","shift","arrow","element","isMounted","styles","useTransitionStyles","initial","transform","opacity","duration","close","hover","useHover","restMs","dismiss","useDismiss","referencePress","ancestorScroll","windowScroll","windowBlur","getReferenceProps","getFloatingProps","useInteractions","useEffect","newOpenedSubActions","actions","map","length","mouseHasEnteredOverlay","useCallback","mouseHasLeftOverlay","isAnySubActionsOpened","useMemo","some","isOpened","onClick","event","onSelectClick","preventDefault","stopPropagation","onContextMenu","cardRef","current","addEventListener","removeEventListener","onDragstart","dragRef","videoPlayerRef","overlayCompactRef","useMergeRefs","setReference","onMouseEnter","playPromise","play","undefined","then","catch","onMouseLeave","pause","renderPreview","previewContent","isVideo","fileType","toLowerCase","showFallback","isLive","previewUrl","LazyLoadComponent","className","PlayIcon","loop","muted","preload","src","onError","HeadsetIcon","LazyLoadImage","alt","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","renderBadge","renderMediaBadge","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","type","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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"}
|
package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js
CHANGED
|
@@ -134,6 +134,7 @@ const AssetGalleryGridCard = props => {
|
|
|
134
134
|
} = props;
|
|
135
135
|
const [isCardHovered, setIsCardHovered] = React__default.useState(false);
|
|
136
136
|
const [openedSubActions, updateOpenedSubActions] = React__default.useState([]);
|
|
137
|
+
const [failedUrl, setFailedUrl] = React__default.useState(null);
|
|
137
138
|
useEffect(() => {
|
|
138
139
|
const newOpenedSubActions = (asset?.actions ?? []).map(() => false);
|
|
139
140
|
updateOpenedSubActions(newOpenedSubActions);
|
|
@@ -212,17 +213,25 @@ const AssetGalleryGridCard = props => {
|
|
|
212
213
|
}
|
|
213
214
|
function renderPreview(asset) {
|
|
214
215
|
let previewContent = null;
|
|
215
|
-
|
|
216
|
+
const isVideo = asset.fileType?.toLowerCase() === 'video';
|
|
217
|
+
const showFallback = asset?.isLive || isVideo && (!asset.previewUrl || failedUrl === asset.previewUrl);
|
|
218
|
+
if (showFallback) {
|
|
219
|
+
previewContent = React__default.createElement(LazyLoadComponent, {
|
|
220
|
+
scrollPosition: scrollPosition
|
|
221
|
+
}, React__default.createElement("div", {
|
|
222
|
+
className: "audio"
|
|
223
|
+
}, React__default.createElement(SvgPlay, null)));
|
|
224
|
+
} else if (isVideo) {
|
|
216
225
|
previewContent = React__default.createElement(LazyLoadComponent, {
|
|
217
226
|
scrollPosition: scrollPosition
|
|
218
227
|
}, React__default.createElement("video", {
|
|
219
228
|
ref: videoPlayerRef,
|
|
220
229
|
loop: true,
|
|
221
|
-
muted: true
|
|
222
|
-
|
|
230
|
+
muted: true,
|
|
231
|
+
preload: "metadata",
|
|
223
232
|
src: asset.previewUrl,
|
|
224
|
-
|
|
225
|
-
}))
|
|
233
|
+
onError: () => setFailedUrl(asset.previewUrl)
|
|
234
|
+
}));
|
|
226
235
|
} else if (asset.fileType?.toLowerCase() === 'audio') {
|
|
227
236
|
previewContent = React__default.createElement(LazyLoadComponent, {
|
|
228
237
|
scrollPosition: scrollPosition
|
package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetGalleryGridCard.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js"],"sourcesContent":["import { get, isEmpty, isFunction, mapKeys, omit } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport {\n LazyLoadComponent,\n LazyLoadImage,\n trackWindowScroll\n} from 'react-lazy-load-image-component';\nimport { HeadsetIcon, LayersIcon, PlayIcon } from '../../../../../icons';\nimport { convertMsToHMS } from '../../../../../utils/dateTime';\nimport { Badge, LiveBadge, Popover, Tooltip } from '../../../../data';\nimport { ActionButton, Checkbox } from '../../../../inputs';\nimport ContextMenu from '../../../ContextMenu/ContextMenu';\nimport ContextMenuItem from '../../../ContextMenu/ContextMenuItem/ContextMenuItem';\nimport { assetShapeWithLayout } from '../../asset.propType';\nimport * as S from './AssetGalleryGridCard.styled';\nimport InstructionSeverityDisplay from '../../../InstructionSeverityDisplay';\n\n/**\n >>> Section 1: renderThumbnail():\n┌─────────────────────────────────────────┐ ← S.AssetGalleryGridCard (Root)\n│[renderversionsBadge] [severityIcon]│ ← S.HorizontalBar (Top)\n├─────────────────────────────────────────┤\n│ │ │ │\n│ (spacer) │ [renderPreview]│ [action]│ ← S.ThumbnailRow (Inc. ComputedActionButton)\n│ │ │ [action]│ ← S.ActionsContainer\n│ │ │ │\n├─────────────────────────────────────────┤\n│ [renderMediaBadge] │ ← S.HorizontalBar (Bottom)\n├─────────────────────────────────────────┤\n│ | >>> Section 2: renderDetails():\n│ [asset.title] │ ← S.CardTitle\n│ [asset.description] │ ← S.CardDescription\n├─────────────────────────────────────────┤\n│ [InstructionSeverityDisplay] │ ← S.InstructionsWrapper\n| |\n| | >>> Section 3:renderConsentSummaryInfo():\n├─────────────────────────────────────────┤ ← S.CardDivider\n│ [footerLeft] [footerRight] │ ← S.CardFooter\n├─────────────────────────────────────────┤ ← S.CardDivider\n| |\n│ | >>> Section 4:renderCheckboxRow():\n│ [CheckRectangleIcon / Outline] │ ← S.CheckboxRow\n└─────────────────────────────────────────┘\n Approx Height: 536px (Updated severity card takes more space than XD Design)\n Note: Every block renders ALWAYS to maintain same height+alignment in gallery\n */\n\n// eslint-disable-next-line react/prop-types\nconst ComputedRootComponent = ({ component, asset, ...props }) => {\n // Omit props we don't need\n const newProps = mapKeys(\n omit(props, [\n 'theme',\n 'extendedSelectMode',\n 'softSelected',\n '$softSelected',\n 'customSelectedBorder',\n '$customSelectedBorder',\n 'isCardHovered',\n '$isCardHovered',\n 'completed',\n '$hasError'\n ]),\n (_, key) => (key === 'innerRef' ? 'ref' : key)\n );\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component(asset, newProps.children))) {\n return React.cloneElement(component(asset, newProps.children), omit(newProps, ['children']));\n }\n }\n\n const { ref, ...rest } = newProps;\n return <div ref={ref} {...rest} />;\n};\n\n/* eslint-disable react/prop-types */\nconst ComputedActionButton = React.forwardRef(function ComputedActionButton(\n // eslint-disable-next-line react/prop-types\n { component, className, subActions = [], isSubActionsOpened, ...props },\n forwardedRef\n) {\n const newProps = props;\n if (!isEmpty(subActions)) {\n const contextMenuItems = subActions.map((subAction, key) => {\n const { onClick, title, icon } = subAction;\n return <ContextMenuItem key={key} onClickEffect={onClick} title={title} icon={icon} />;\n });\n const contextMenu = <ContextMenu>{contextMenuItems}</ContextMenu>;\n newProps.children = (\n <Popover\n contextMenu={true}\n content={contextMenu}\n placement={'bottom-end'}\n visible={isSubActionsOpened}\n zIndex={10001}\n offset={[0, -8]}\n >\n <ActionButton\n useShadow={false}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n backgroundColors={['black', 'white']}\n onClick={newProps.onClick}\n actionWidthHeight={[40, 40]}\n />\n </Popover>\n );\n } else {\n newProps.children = (\n <ActionButton\n useShadow={false}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n onClick={newProps.onClick}\n backgroundColors={['black', 'white']}\n actionWidthHeight={[40, 40]}\n />\n );\n }\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component())) {\n return React.cloneElement(component(), { ...omit(newProps, 'icon') });\n }\n }\n\n return <React.Fragment>{newProps.children}</React.Fragment>;\n});\n/* eslint-disable react/prop-types */\n\nconst AssetGalleryGridCard = props => {\n const {\n asset,\n selectable,\n selected,\n customSelectedBorder,\n extendedSelectMode,\n onAssetSelected,\n onAssetUnselected,\n softSelected,\n component,\n scrollPosition,\n hideConsentSummary\n } = props;\n\n const [isCardHovered, setIsCardHovered] = React.useState(false);\n const [openedSubActions, updateOpenedSubActions] = React.useState([]);\n useEffect(() => {\n const newOpenedSubActions = (asset?.actions ?? []).map(() => false);\n updateOpenedSubActions(newOpenedSubActions);\n }, [asset]);\n\n useEffect(() => {\n if (!isCardHovered && openedSubActions?.length) {\n updateOpenedSubActions(openedSubActions.map(() => false));\n }\n }, [isCardHovered]);\n\n const mouseHasEnteredCard = useCallback(() => {\n setIsCardHovered(true);\n }, []);\n\n const mouseHasLeftCard = useCallback(() => {\n setIsCardHovered(false);\n }, []);\n\n const onSubActionsViewToggle = useCallback(\n actionIndex => {\n const newOpenedSubActions = openedSubActions.map((isOpened, index) => {\n if (index !== actionIndex) {\n return false;\n }\n return !isOpened;\n });\n updateOpenedSubActions(newOpenedSubActions);\n },\n [openedSubActions]\n );\n\n const videoPlayerRef = useRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\n\n function onMouseEnter(event) {\n if (videoPlayerRef.current) {\n const playPromise = videoPlayerRef.current.play();\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n // Playback started!\n })\n .catch(() => {\n // Play was prevented - silently swallow play errors\n });\n }\n }\n\n if (isFunction(asset.onMouseEnter)) {\n asset.onMouseEnter(event, asset);\n }\n\n mouseHasEnteredCard();\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n\n mouseHasLeftCard();\n }\n\n function onClick(event) {\n if (extendedSelectMode) {\n return onSelectClick(event);\n }\n\n if (isFunction(asset.onClick)) {\n asset.onClick(event, asset);\n }\n }\n\n function onSelectClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (selected) {\n return onAssetUnselected(asset.key);\n }\n\n return onAssetSelected(asset.key);\n }\n\n const onActionClick = useCallback(\n (event, action, index) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (isFunction(action?.onClick)) {\n action.onClick(asset);\n }\n\n if (!isEmpty(action?.subActions)) {\n onSubActionsViewToggle(index);\n }\n },\n [onSubActionsViewToggle]\n );\n\n const shouldOpenSubActions = useCallback(\n actionIndex => openedSubActions[actionIndex],\n [openedSubActions]\n );\n\n function onContextMenu(event) {\n event.preventDefault();\n asset.onContextMenu(event);\n }\n\n function renderPreview(asset) {\n let previewContent = null;\n\n if (asset.fileType?.toLowerCase() === 'video') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <video ref={videoPlayerRef} loop muted>\n <source src={asset.previewUrl} type=\"video/mp4\" />\n </video>\n </LazyLoadComponent>\n );\n } else if (asset.fileType?.toLowerCase() === 'audio') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <div className=\"audio\">\n <HeadsetIcon />\n </div>\n </LazyLoadComponent>\n );\n } else {\n previewContent = (\n <LazyLoadImage\n alt={asset.title}\n src={asset.previewUrl}\n height=\"100%\"\n width=\"100%\"\n delayMethod=\"debounce\"\n delayTime={0}\n threshold={1500}\n scrollPosition={scrollPosition}\n />\n );\n }\n\n return previewContent;\n }\n\n useEffect(() => {\n if (isFunction(asset.onContextMenu)) {\n if (cardRef.current) {\n cardRef.current.addEventListener('contextmenu', onContextMenu);\n }\n return () => {\n if (cardRef.current) {\n cardRef.current.removeEventListener('contextmenu', onContextMenu);\n }\n };\n }\n }, []);\n\n function onDragstart(event) {\n asset.onDragstart(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onDragstart)) {\n if (dragRef.current) {\n dragRef.current.addEventListener('dragstart', onDragstart);\n }\n return () => {\n if (dragRef.current) {\n dragRef.current.removeEventListener('dragstart', onDragstart);\n }\n };\n }\n }, []);\n\n // If this asset is soft selected we will scroll it into the viewport if it's outside\n useEffect(() => {\n if (softSelected) {\n cardRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }, [softSelected]);\n\n const renderVersionsBadge = useCallback(() => {\n if (!asset?.versions) return null;\n\n return (\n <Badge\n badgeIcon={<LayersIcon />}\n badgeContent={asset.versions}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n />\n );\n }, [asset]);\n\n const renderMediaBadge = useCallback(() => {\n let badgeIcon = null;\n let badgeContent = null;\n\n if (asset?.fileType === 'video') {\n badgeIcon = <PlayIcon />;\n }\n\n if (asset?.duration) {\n badgeContent = convertMsToHMS(asset.duration);\n }\n\n if (!badgeIcon && !badgeContent) return null;\n return (\n <Badge\n badgeIcon={badgeIcon}\n badgeContent={badgeContent}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n minWidth={32}\n height={24}\n />\n );\n }, [asset]);\n\n const renderThumbnail = () => {\n return (\n <S.ThumbnailSection>\n <S.ThumbnailSelectedOverlay selected={selected} />\n {asset.overlay && <S.ConsumerOverlay>{asset.overlay}</S.ConsumerOverlay>}\n {/* Thumbnail Top bar */}\n <S.HorizontalBar>\n <S.HorizontalBarLeft>\n {asset.isLive && <LiveBadge label={asset.liveLabel} />}\n {renderVersionsBadge()}\n </S.HorizontalBarLeft>\n <S.HorizontalBarRight>\n {asset.statusIcon && <S.StatusIconCircle>{asset.statusIcon}</S.StatusIconCircle>}\n </S.HorizontalBarRight>\n </S.HorizontalBar>\n <S.ThumbnailRow>\n <S.ThumbnailSpacer />\n {/* Thumbnail */}\n <S.ThumbnailWrapper>\n <S.ThumbnailBox>{renderPreview(asset)}</S.ThumbnailBox>\n </S.ThumbnailWrapper>\n <S.ThumbnailActions>\n <S.ActionsContainer>\n {!extendedSelectMode &&\n (asset.actions ?? []).map((action, index) => (\n <Tooltip key={`${asset.key}-${action.title}`} content={action.title}>\n <S.Action>\n <ComputedActionButton\n component={action.component}\n className={action.className}\n icon={action.icon}\n isSubActionsOpened={shouldOpenSubActions(index)}\n onClick={event => onActionClick(event, action, index)}\n subActions={action?.subActions}\n actionWidthHeight={action.actionWidthHeight}\n />\n </S.Action>\n </Tooltip>\n ))}\n </S.ActionsContainer>\n </S.ThumbnailActions>\n </S.ThumbnailRow>\n {/* Thumbnail Bottom bar */}\n <S.HorizontalBar>\n <S.HorizontalBarLeft></S.HorizontalBarLeft>\n <S.HorizontalBarRight>{!asset.isLive && renderMediaBadge()}</S.HorizontalBarRight>\n </S.HorizontalBar>\n </S.ThumbnailSection>\n );\n };\n\n const renderDetails = () => {\n return (\n <S.CardBody>\n <S.CardTitle title={asset.title || ''}>{asset.title || ''}</S.CardTitle>\n <S.CardDescription title={asset.description || ''}>\n {asset.description || ''}\n </S.CardDescription>\n <S.InstructionsWrapper $hasContent={Boolean(asset.imageRights?.toString().trim())}>\n {asset.imageRights && (\n <InstructionSeverityDisplay\n labels={asset.instructionLabels}\n instructionText={asset.imageRights}\n severity={asset.instructionSeverity}\n showCard={false}\n padding=\"16px\"\n detailsFontSize=\"12px\"\n bgLight=\"transparent\"\n bgDark=\"transparent\"\n maxLines={2}\n />\n )}\n </S.InstructionsWrapper>\n </S.CardBody>\n );\n };\n\n const renderConsentSummaryInfo = () => {\n if (hideConsentSummary) {\n return <S.CardDivider />;\n }\n return (\n <>\n <S.CardFooter>\n <S.CardFooterLeft>{asset.summary?.footerLeft || null}</S.CardFooterLeft>\n <S.CardFooterRight>{asset.summary?.footerRight || null}</S.CardFooterRight>\n </S.CardFooter>\n <S.CardDivider />\n </>\n );\n };\n\n const renderCheckboxRow = () => {\n return (\n <S.CheckboxRow>\n {selectable && (\n <div onClick={onSelectClick}>\n <Checkbox\n variant=\"black\"\n checked={selected}\n onChange={event => {\n if (event.target.checked) {\n onAssetSelected(asset.key);\n } else {\n onAssetUnselected(asset.key);\n }\n }}\n />\n </div>\n )}\n </S.CheckboxRow>\n );\n };\n\n return (\n <S.AssetGalleryWrapper disabled={asset.disabled} ref={cardRef}>\n <S.AssetGalleryGridCard\n as={ComputedRootComponent}\n component={component}\n asset={asset}\n disabled={asset.disabled}\n onClick={onClick}\n extendedSelectMode={extendedSelectMode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n draggable={asset.draggable}\n innerRef={dragRef}\n selected={selected}\n $softSelected={softSelected}\n completed={asset?.completed}\n $hasError={asset?.hasError}\n $customSelectedBorder={customSelectedBorder}\n >\n {renderThumbnail()}\n {renderDetails()}\n {renderConsentSummaryInfo()}\n {renderCheckboxRow()}\n </S.AssetGalleryGridCard>\n </S.AssetGalleryWrapper>\n );\n};\n\nAssetGalleryGridCard.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n asset: PropTypes.shape(assetShapeWithLayout).isRequired,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: PropTypes.bool,\n\n /**\n * Is the asset selected\n */\n selected: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have custom borders on selected asset\n */\n customSelectedBorder: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * Makes the whole asset card into a selectable area\n */\n extendedSelectMode: PropTypes.bool,\n\n /**\n * The callback function when an asset is selected - returns the selected asset key\n */\n onAssetSelected: PropTypes.func.isRequired,\n\n /**\n * The callback function when an asset is unselected - returns the unselected asset key\n */\n onAssetUnselected: PropTypes.func.isRequired,\n\n /**\n * Is the asset soft selected\n */\n softSelected: PropTypes.bool.isRequired,\n\n /**\n * A function that returns a custom component to use for the card in the gallery - The function provides\n * `asset` as its first argument\n */\n component: PropTypes.func,\n\n /**\n * Internal prop used by the gallery to determine if the card is in the viewport - This prop is\n * not intended to be used by consumers\n */\n scrollPosition: PropTypes.number,\n\n /**\n * When true, hides the consent summary footer (CardFooter + CardDivider). Default: false.\n */\n hideConsentSummary: PropTypes.bool\n};\n\nAssetGalleryGridCard.defaultProps = {};\n\nexport default trackWindowScroll(\n React.memo(AssetGalleryGridCard, (prevProps, nextProps) => {\n // The asset card will only re-render if any of the following props change.\n const reactiveProps = [\n 'selectable',\n 'selected',\n 'extendedSelectMode',\n 'softSelected',\n 'asset.previewUrl',\n 'asset.overlay',\n 'asset.statusIcon',\n 'asset.layout',\n 'asset.imageRights',\n 'asset.instructionSeverity',\n 'asset.description',\n 'asset.title'\n ];\n\n return reactiveProps.every(propKey => get(prevProps, propKey) === get(nextProps, propKey));\n })\n);\n"],"names":["ComputedRootComponent","component","asset","props","newProps","mapKeys","omit","_","key","isFunction","Error","React","isValidElement","children","cloneElement","ref","rest","createElement","_extends","ComputedActionButton","forwardRef","className","subActions","isSubActionsOpened","forwardedRef","isEmpty","contextMenuItems","map","subAction","onClick","title","icon","ContextMenuItem","onClickEffect","contextMenu","ContextMenu","Popover","content","placement","visible","zIndex","offset","ActionButton","useShadow","active","backgroundColors","actionWidthHeight","Fragment","AssetGalleryGridCard","selectable","selected","customSelectedBorder","extendedSelectMode","onAssetSelected","onAssetUnselected","softSelected","scrollPosition","hideConsentSummary","isCardHovered","setIsCardHovered","useState","openedSubActions","updateOpenedSubActions","useEffect","newOpenedSubActions","actions","length","mouseHasEnteredCard","useCallback","mouseHasLeftCard","onSubActionsViewToggle","actionIndex","isOpened","index","videoPlayerRef","useRef","cardRef","dragRef","onMouseEnter","event","current","playPromise","play","undefined","then","catch","onMouseLeave","pause","onSelectClick","preventDefault","stopPropagation","onActionClick","action","shouldOpenSubActions","onContextMenu","renderPreview","previewContent","fileType","toLowerCase","LazyLoadComponent","loop","muted","src","previewUrl","type","HeadsetIcon","LazyLoadImage","alt","height","width","delayMethod","delayTime","threshold","addEventListener","removeEventListener","onDragstart","scrollIntoView","behavior","block","renderVersionsBadge","versions","Badge","badgeIcon","LayersIcon","badgeContent","colors","fontSize","fontWeight","lineHeight","verticalPadding","horizontalPadding","renderMediaBadge","PlayIcon","duration","convertMsToHMS","minWidth","renderThumbnail","S","overlay","isLive","LiveBadge","label","liveLabel","statusIcon","Tooltip","renderDetails","description","$hasContent","Boolean","imageRights","toString","trim","InstructionSeverityDisplay","labels","instructionLabels","instructionText","severity","instructionSeverity","showCard","padding","detailsFontSize","bgLight","bgDark","maxLines","renderConsentSummaryInfo","summary","footerLeft","footerRight","renderCheckboxRow","Checkbox","variant","checked","onChange","target","disabled","as","draggable","innerRef","$softSelected","completed","$hasError","hasError","$customSelectedBorder","propTypes","process","env","NODE_ENV","PropTypes","shape","assetShapeWithLayout","isRequired","bool","arrayOf","string","func","number","defaultProps","trackWindowScroll","memo","prevProps","nextProps","reactiveProps","every","propKey","get"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetGalleryGridCard.js","sources":["../../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js"],"sourcesContent":["import { get, isEmpty, isFunction, mapKeys, omit } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport {\n LazyLoadComponent,\n LazyLoadImage,\n trackWindowScroll\n} from 'react-lazy-load-image-component';\nimport { HeadsetIcon, LayersIcon, PlayIcon } from '../../../../../icons';\nimport { convertMsToHMS } from '../../../../../utils/dateTime';\nimport { Badge, LiveBadge, Popover, Tooltip } from '../../../../data';\nimport { ActionButton, Checkbox } from '../../../../inputs';\nimport ContextMenu from '../../../ContextMenu/ContextMenu';\nimport ContextMenuItem from '../../../ContextMenu/ContextMenuItem/ContextMenuItem';\nimport { assetShapeWithLayout } from '../../asset.propType';\nimport * as S from './AssetGalleryGridCard.styled';\nimport InstructionSeverityDisplay from '../../../InstructionSeverityDisplay';\n\n/**\n >>> Section 1: renderThumbnail():\n┌─────────────────────────────────────────┐ ← S.AssetGalleryGridCard (Root)\n│[renderversionsBadge] [severityIcon]│ ← S.HorizontalBar (Top)\n├─────────────────────────────────────────┤\n│ │ │ │\n│ (spacer) │ [renderPreview]│ [action]│ ← S.ThumbnailRow (Inc. ComputedActionButton)\n│ │ │ [action]│ ← S.ActionsContainer\n│ │ │ │\n├─────────────────────────────────────────┤\n│ [renderMediaBadge] │ ← S.HorizontalBar (Bottom)\n├─────────────────────────────────────────┤\n│ | >>> Section 2: renderDetails():\n│ [asset.title] │ ← S.CardTitle\n│ [asset.description] │ ← S.CardDescription\n├─────────────────────────────────────────┤\n│ [InstructionSeverityDisplay] │ ← S.InstructionsWrapper\n| |\n| | >>> Section 3:renderConsentSummaryInfo():\n├─────────────────────────────────────────┤ ← S.CardDivider\n│ [footerLeft] [footerRight] │ ← S.CardFooter\n├─────────────────────────────────────────┤ ← S.CardDivider\n| |\n│ | >>> Section 4:renderCheckboxRow():\n│ [CheckRectangleIcon / Outline] │ ← S.CheckboxRow\n└─────────────────────────────────────────┘\n Approx Height: 536px (Updated severity card takes more space than XD Design)\n Note: Every block renders ALWAYS to maintain same height+alignment in gallery\n */\n\n// eslint-disable-next-line react/prop-types\nconst ComputedRootComponent = ({ component, asset, ...props }) => {\n // Omit props we don't need\n const newProps = mapKeys(\n omit(props, [\n 'theme',\n 'extendedSelectMode',\n 'softSelected',\n '$softSelected',\n 'customSelectedBorder',\n '$customSelectedBorder',\n 'isCardHovered',\n '$isCardHovered',\n 'completed',\n '$hasError'\n ]),\n (_, key) => (key === 'innerRef' ? 'ref' : key)\n );\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component(asset, newProps.children))) {\n return React.cloneElement(component(asset, newProps.children), omit(newProps, ['children']));\n }\n }\n\n const { ref, ...rest } = newProps;\n return <div ref={ref} {...rest} />;\n};\n\n/* eslint-disable react/prop-types */\nconst ComputedActionButton = React.forwardRef(function ComputedActionButton(\n // eslint-disable-next-line react/prop-types\n { component, className, subActions = [], isSubActionsOpened, ...props },\n forwardedRef\n) {\n const newProps = props;\n if (!isEmpty(subActions)) {\n const contextMenuItems = subActions.map((subAction, key) => {\n const { onClick, title, icon } = subAction;\n return <ContextMenuItem key={key} onClickEffect={onClick} title={title} icon={icon} />;\n });\n const contextMenu = <ContextMenu>{contextMenuItems}</ContextMenu>;\n newProps.children = (\n <Popover\n contextMenu={true}\n content={contextMenu}\n placement={'bottom-end'}\n visible={isSubActionsOpened}\n zIndex={10001}\n offset={[0, -8]}\n >\n <ActionButton\n useShadow={false}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n backgroundColors={['black', 'white']}\n onClick={newProps.onClick}\n actionWidthHeight={[40, 40]}\n />\n </Popover>\n );\n } else {\n newProps.children = (\n <ActionButton\n useShadow={false}\n active={true}\n ref={forwardedRef}\n className={className}\n icon={newProps.icon}\n onClick={newProps.onClick}\n backgroundColors={['black', 'white']}\n actionWidthHeight={[40, 40]}\n />\n );\n }\n\n if (component) {\n if (!isFunction(component)) throw Error('Expected a function in component-prop');\n\n if (React.isValidElement(component())) {\n return React.cloneElement(component(), { ...omit(newProps, 'icon') });\n }\n }\n\n return <React.Fragment>{newProps.children}</React.Fragment>;\n});\n/* eslint-disable react/prop-types */\n\nconst AssetGalleryGridCard = props => {\n const {\n asset,\n selectable,\n selected,\n customSelectedBorder,\n extendedSelectMode,\n onAssetSelected,\n onAssetUnselected,\n softSelected,\n component,\n scrollPosition,\n hideConsentSummary\n } = props;\n\n const [isCardHovered, setIsCardHovered] = React.useState(false);\n const [openedSubActions, updateOpenedSubActions] = React.useState([]);\n const [failedUrl, setFailedUrl] = React.useState(null);\n useEffect(() => {\n const newOpenedSubActions = (asset?.actions ?? []).map(() => false);\n updateOpenedSubActions(newOpenedSubActions);\n }, [asset]);\n\n useEffect(() => {\n if (!isCardHovered && openedSubActions?.length) {\n updateOpenedSubActions(openedSubActions.map(() => false));\n }\n }, [isCardHovered]);\n\n const mouseHasEnteredCard = useCallback(() => {\n setIsCardHovered(true);\n }, []);\n\n const mouseHasLeftCard = useCallback(() => {\n setIsCardHovered(false);\n }, []);\n\n const onSubActionsViewToggle = useCallback(\n actionIndex => {\n const newOpenedSubActions = openedSubActions.map((isOpened, index) => {\n if (index !== actionIndex) {\n return false;\n }\n return !isOpened;\n });\n updateOpenedSubActions(newOpenedSubActions);\n },\n [openedSubActions]\n );\n\n const videoPlayerRef = useRef();\n const cardRef = useRef();\n const dragRef = useRef(null);\n\n function onMouseEnter(event) {\n if (videoPlayerRef.current) {\n const playPromise = videoPlayerRef.current.play();\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n // Playback started!\n })\n .catch(() => {\n // Play was prevented - silently swallow play errors\n });\n }\n }\n\n if (isFunction(asset.onMouseEnter)) {\n asset.onMouseEnter(event, asset);\n }\n\n mouseHasEnteredCard();\n }\n\n function onMouseLeave() {\n if (videoPlayerRef.current) {\n videoPlayerRef.current.pause();\n }\n\n mouseHasLeftCard();\n }\n\n function onClick(event) {\n if (extendedSelectMode) {\n return onSelectClick(event);\n }\n\n if (isFunction(asset.onClick)) {\n asset.onClick(event, asset);\n }\n }\n\n function onSelectClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (selected) {\n return onAssetUnselected(asset.key);\n }\n\n return onAssetSelected(asset.key);\n }\n\n const onActionClick = useCallback(\n (event, action, index) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (isFunction(action?.onClick)) {\n action.onClick(asset);\n }\n\n if (!isEmpty(action?.subActions)) {\n onSubActionsViewToggle(index);\n }\n },\n [onSubActionsViewToggle]\n );\n\n const shouldOpenSubActions = useCallback(\n actionIndex => openedSubActions[actionIndex],\n [openedSubActions]\n );\n\n function onContextMenu(event) {\n event.preventDefault();\n asset.onContextMenu(event);\n }\n\n function renderPreview(asset) {\n let previewContent = null;\n\n const isVideo = asset.fileType?.toLowerCase() === 'video';\n const showFallback =\n asset?.isLive || (isVideo && (!asset.previewUrl || failedUrl === asset.previewUrl));\n\n if (showFallback) {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <div className=\"audio\">\n <PlayIcon />\n </div>\n </LazyLoadComponent>\n );\n } else if (isVideo) {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <video\n ref={videoPlayerRef}\n loop\n muted\n preload=\"metadata\"\n src={asset.previewUrl}\n onError={() => setFailedUrl(asset.previewUrl)}\n />\n </LazyLoadComponent>\n );\n } else if (asset.fileType?.toLowerCase() === 'audio') {\n previewContent = (\n <LazyLoadComponent scrollPosition={scrollPosition}>\n <div className=\"audio\">\n <HeadsetIcon />\n </div>\n </LazyLoadComponent>\n );\n } else {\n previewContent = (\n <LazyLoadImage\n alt={asset.title}\n src={asset.previewUrl}\n height=\"100%\"\n width=\"100%\"\n delayMethod=\"debounce\"\n delayTime={0}\n threshold={1500}\n scrollPosition={scrollPosition}\n />\n );\n }\n\n return previewContent;\n }\n\n useEffect(() => {\n if (isFunction(asset.onContextMenu)) {\n if (cardRef.current) {\n cardRef.current.addEventListener('contextmenu', onContextMenu);\n }\n return () => {\n if (cardRef.current) {\n cardRef.current.removeEventListener('contextmenu', onContextMenu);\n }\n };\n }\n }, []);\n\n function onDragstart(event) {\n asset.onDragstart(event);\n }\n\n useEffect(() => {\n if (isFunction(asset.onDragstart)) {\n if (dragRef.current) {\n dragRef.current.addEventListener('dragstart', onDragstart);\n }\n return () => {\n if (dragRef.current) {\n dragRef.current.removeEventListener('dragstart', onDragstart);\n }\n };\n }\n }, []);\n\n // If this asset is soft selected we will scroll it into the viewport if it's outside\n useEffect(() => {\n if (softSelected) {\n cardRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }, [softSelected]);\n\n const renderVersionsBadge = useCallback(() => {\n if (!asset?.versions) return null;\n\n return (\n <Badge\n badgeIcon={<LayersIcon />}\n badgeContent={asset.versions}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n />\n );\n }, [asset]);\n\n const renderMediaBadge = useCallback(() => {\n let badgeIcon = null;\n let badgeContent = null;\n\n if (asset?.fileType === 'video') {\n badgeIcon = <PlayIcon />;\n }\n\n if (asset?.duration) {\n badgeContent = convertMsToHMS(asset.duration);\n }\n\n if (!badgeIcon && !badgeContent) return null;\n return (\n <Badge\n badgeIcon={badgeIcon}\n badgeContent={badgeContent}\n backgroundColors={['black', 'black']}\n colors={['#f7f8f9', '#f7f8f9']}\n fontSize={12}\n fontWeight={500}\n lineHeight={16}\n verticalPadding={4}\n horizontalPadding={8}\n minWidth={32}\n height={24}\n />\n );\n }, [asset]);\n\n const renderThumbnail = () => {\n return (\n <S.ThumbnailSection>\n <S.ThumbnailSelectedOverlay selected={selected} />\n {asset.overlay && <S.ConsumerOverlay>{asset.overlay}</S.ConsumerOverlay>}\n {/* Thumbnail Top bar */}\n <S.HorizontalBar>\n <S.HorizontalBarLeft>\n {asset.isLive && <LiveBadge label={asset.liveLabel} />}\n {renderVersionsBadge()}\n </S.HorizontalBarLeft>\n <S.HorizontalBarRight>\n {asset.statusIcon && <S.StatusIconCircle>{asset.statusIcon}</S.StatusIconCircle>}\n </S.HorizontalBarRight>\n </S.HorizontalBar>\n <S.ThumbnailRow>\n <S.ThumbnailSpacer />\n {/* Thumbnail */}\n <S.ThumbnailWrapper>\n <S.ThumbnailBox>{renderPreview(asset)}</S.ThumbnailBox>\n </S.ThumbnailWrapper>\n <S.ThumbnailActions>\n <S.ActionsContainer>\n {!extendedSelectMode &&\n (asset.actions ?? []).map((action, index) => (\n <Tooltip key={`${asset.key}-${action.title}`} content={action.title}>\n <S.Action>\n <ComputedActionButton\n component={action.component}\n className={action.className}\n icon={action.icon}\n isSubActionsOpened={shouldOpenSubActions(index)}\n onClick={event => onActionClick(event, action, index)}\n subActions={action?.subActions}\n actionWidthHeight={action.actionWidthHeight}\n />\n </S.Action>\n </Tooltip>\n ))}\n </S.ActionsContainer>\n </S.ThumbnailActions>\n </S.ThumbnailRow>\n {/* Thumbnail Bottom bar */}\n <S.HorizontalBar>\n <S.HorizontalBarLeft></S.HorizontalBarLeft>\n <S.HorizontalBarRight>{!asset.isLive && renderMediaBadge()}</S.HorizontalBarRight>\n </S.HorizontalBar>\n </S.ThumbnailSection>\n );\n };\n\n const renderDetails = () => {\n return (\n <S.CardBody>\n <S.CardTitle title={asset.title || ''}>{asset.title || ''}</S.CardTitle>\n <S.CardDescription title={asset.description || ''}>\n {asset.description || ''}\n </S.CardDescription>\n <S.InstructionsWrapper $hasContent={Boolean(asset.imageRights?.toString().trim())}>\n {asset.imageRights && (\n <InstructionSeverityDisplay\n labels={asset.instructionLabels}\n instructionText={asset.imageRights}\n severity={asset.instructionSeverity}\n showCard={false}\n padding=\"16px\"\n detailsFontSize=\"12px\"\n bgLight=\"transparent\"\n bgDark=\"transparent\"\n maxLines={2}\n />\n )}\n </S.InstructionsWrapper>\n </S.CardBody>\n );\n };\n\n const renderConsentSummaryInfo = () => {\n if (hideConsentSummary) {\n return <S.CardDivider />;\n }\n return (\n <>\n <S.CardFooter>\n <S.CardFooterLeft>{asset.summary?.footerLeft || null}</S.CardFooterLeft>\n <S.CardFooterRight>{asset.summary?.footerRight || null}</S.CardFooterRight>\n </S.CardFooter>\n <S.CardDivider />\n </>\n );\n };\n\n const renderCheckboxRow = () => {\n return (\n <S.CheckboxRow>\n {selectable && (\n <div onClick={onSelectClick}>\n <Checkbox\n variant=\"black\"\n checked={selected}\n onChange={event => {\n if (event.target.checked) {\n onAssetSelected(asset.key);\n } else {\n onAssetUnselected(asset.key);\n }\n }}\n />\n </div>\n )}\n </S.CheckboxRow>\n );\n };\n\n return (\n <S.AssetGalleryWrapper disabled={asset.disabled} ref={cardRef}>\n <S.AssetGalleryGridCard\n as={ComputedRootComponent}\n component={component}\n asset={asset}\n disabled={asset.disabled}\n onClick={onClick}\n extendedSelectMode={extendedSelectMode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n draggable={asset.draggable}\n innerRef={dragRef}\n selected={selected}\n $softSelected={softSelected}\n completed={asset?.completed}\n $hasError={asset?.hasError}\n $customSelectedBorder={customSelectedBorder}\n >\n {renderThumbnail()}\n {renderDetails()}\n {renderConsentSummaryInfo()}\n {renderCheckboxRow()}\n </S.AssetGalleryGridCard>\n </S.AssetGalleryWrapper>\n );\n};\n\nAssetGalleryGridCard.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n asset: PropTypes.shape(assetShapeWithLayout).isRequired,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: PropTypes.bool,\n\n /**\n * Is the asset selected\n */\n selected: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have custom borders on selected asset\n */\n customSelectedBorder: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * Makes the whole asset card into a selectable area\n */\n extendedSelectMode: PropTypes.bool,\n\n /**\n * The callback function when an asset is selected - returns the selected asset key\n */\n onAssetSelected: PropTypes.func.isRequired,\n\n /**\n * The callback function when an asset is unselected - returns the unselected asset key\n */\n onAssetUnselected: PropTypes.func.isRequired,\n\n /**\n * Is the asset soft selected\n */\n softSelected: PropTypes.bool.isRequired,\n\n /**\n * A function that returns a custom component to use for the card in the gallery - The function provides\n * `asset` as its first argument\n */\n component: PropTypes.func,\n\n /**\n * Internal prop used by the gallery to determine if the card is in the viewport - This prop is\n * not intended to be used by consumers\n */\n scrollPosition: PropTypes.number,\n\n /**\n * When true, hides the consent summary footer (CardFooter + CardDivider). Default: false.\n */\n hideConsentSummary: PropTypes.bool\n};\n\nAssetGalleryGridCard.defaultProps = {};\n\nexport default trackWindowScroll(\n React.memo(AssetGalleryGridCard, (prevProps, nextProps) => {\n // The asset card will only re-render if any of the following props change.\n const reactiveProps = [\n 'selectable',\n 'selected',\n 'extendedSelectMode',\n 'softSelected',\n 'asset.previewUrl',\n 'asset.overlay',\n 'asset.statusIcon',\n 'asset.layout',\n 'asset.imageRights',\n 'asset.instructionSeverity',\n 'asset.description',\n 'asset.title'\n ];\n\n return reactiveProps.every(propKey => get(prevProps, propKey) === get(nextProps, propKey));\n })\n);\n"],"names":["ComputedRootComponent","component","asset","props","newProps","mapKeys","omit","_","key","isFunction","Error","React","isValidElement","children","cloneElement","ref","rest","createElement","_extends","ComputedActionButton","forwardRef","className","subActions","isSubActionsOpened","forwardedRef","isEmpty","contextMenuItems","map","subAction","onClick","title","icon","ContextMenuItem","onClickEffect","contextMenu","ContextMenu","Popover","content","placement","visible","zIndex","offset","ActionButton","useShadow","active","backgroundColors","actionWidthHeight","Fragment","AssetGalleryGridCard","selectable","selected","customSelectedBorder","extendedSelectMode","onAssetSelected","onAssetUnselected","softSelected","scrollPosition","hideConsentSummary","isCardHovered","setIsCardHovered","useState","openedSubActions","updateOpenedSubActions","failedUrl","setFailedUrl","useEffect","newOpenedSubActions","actions","length","mouseHasEnteredCard","useCallback","mouseHasLeftCard","onSubActionsViewToggle","actionIndex","isOpened","index","videoPlayerRef","useRef","cardRef","dragRef","onMouseEnter","event","current","playPromise","play","undefined","then","catch","onMouseLeave","pause","onSelectClick","preventDefault","stopPropagation","onActionClick","action","shouldOpenSubActions","onContextMenu","renderPreview","previewContent","isVideo","fileType","toLowerCase","showFallback","isLive","previewUrl","LazyLoadComponent","PlayIcon","loop","muted","preload","src","onError","HeadsetIcon","LazyLoadImage","alt","height","width","delayMethod","delayTime","threshold","addEventListener","removeEventListener","onDragstart","scrollIntoView","behavior","block","renderVersionsBadge","versions","Badge","badgeIcon","LayersIcon","badgeContent","colors","fontSize","fontWeight","lineHeight","verticalPadding","horizontalPadding","renderMediaBadge","duration","convertMsToHMS","minWidth","renderThumbnail","S","overlay","LiveBadge","label","liveLabel","statusIcon","Tooltip","renderDetails","description","$hasContent","Boolean","imageRights","toString","trim","InstructionSeverityDisplay","labels","instructionLabels","instructionText","severity","instructionSeverity","showCard","padding","detailsFontSize","bgLight","bgDark","maxLines","renderConsentSummaryInfo","summary","footerLeft","footerRight","renderCheckboxRow","Checkbox","variant","checked","onChange","target","disabled","as","draggable","innerRef","$softSelected","completed","$hasError","hasError","$customSelectedBorder","propTypes","process","env","NODE_ENV","PropTypes","shape","assetShapeWithLayout","isRequired","bool","arrayOf","string","func","number","defaultProps","trackWindowScroll","memo","prevProps","nextProps","reactiveProps","every","propKey","get"],"mappings":"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"}
|