@ntbjs/react-components 2.0.9-rc.2 → 2.0.9-rc.4
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/Badge/Badge.js +5 -2
- package/build/data/Badge/Badge.js.map +1 -1
- package/build/data/Badge/Badge.styled.js +6 -1
- package/build/data/Badge/Badge.styled.js.map +1 -1
- package/build/icons/index.js +2 -0
- package/build/icons/info-red.svg +11 -0
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js +6 -3
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js +4 -4
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js +5 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js +3 -3
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js +5 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js.map +1 -1
- package/build/widgets/AssetGallery/asset.propType.js +2 -2
- package/build/widgets/AssetGallery/asset.propType.js.map +1 -1
- package/build/widgets/{InstructionsSeverityDisplay/InstructionsSeverityDisplay.js → InstructionSeverityDisplay/InstructionSeverityDisplay.js} +50 -13
- package/build/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.js.map +1 -0
- package/build/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.styled.js +52 -0
- package/build/widgets/InstructionSeverityDisplay/InstructionSeverityDisplay.styled.js.map +1 -0
- package/build/widgets/SummaryCard/SummaryCard.js +8 -7
- package/build/widgets/SummaryCard/SummaryCard.js.map +1 -1
- package/build/widgets/SummaryCard/SummaryCard.styled.js +6 -1
- package/build/widgets/SummaryCard/SummaryCard.styled.js.map +1 -1
- package/build/widgets/index.js +1 -1
- package/icons/index.js +2 -0
- package/icons/info-red.svg +11 -0
- package/package.json +1 -1
- package/build/widgets/InstructionsSeverityDisplay/InstructionsSeverityDisplay.js.map +0 -1
- package/build/widgets/InstructionsSeverityDisplay/InstructionsSeverityDisplay.styled.js +0 -77
- package/build/widgets/InstructionsSeverityDisplay/InstructionsSeverityDisplay.styled.js.map +0 -1
|
@@ -22,6 +22,7 @@ const Badge = React__default.forwardRef(function Badge({
|
|
|
22
22
|
minHeight,
|
|
23
23
|
width,
|
|
24
24
|
minWidth,
|
|
25
|
+
borderColors,
|
|
25
26
|
...props
|
|
26
27
|
}, forwardedRef) {
|
|
27
28
|
if (typeof badgeContent === 'number') {
|
|
@@ -48,7 +49,8 @@ const Badge = React__default.forwardRef(function Badge({
|
|
|
48
49
|
height: height,
|
|
49
50
|
$minHeight: minHeight,
|
|
50
51
|
width: width,
|
|
51
|
-
$minWidth: minWidth
|
|
52
|
+
$minWidth: minWidth,
|
|
53
|
+
$borderColors: borderColors
|
|
52
54
|
}, badgeIcon && React__default.createElement(BadgeIcon, {
|
|
53
55
|
$useGutter: !!badgeContent
|
|
54
56
|
}, badgeIcon), badgeContent));
|
|
@@ -71,7 +73,8 @@ Badge.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
71
73
|
height: PropTypes.number,
|
|
72
74
|
minHeight: PropTypes.number,
|
|
73
75
|
width: PropTypes.number,
|
|
74
|
-
minWidth: PropTypes.number
|
|
76
|
+
minWidth: PropTypes.number,
|
|
77
|
+
borderColors: PropTypes.arrayOf(PropTypes.string)
|
|
75
78
|
} : {};
|
|
76
79
|
Badge.defaultProps = {
|
|
77
80
|
elevated: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sources":["../../../src/components/data/Badge/Badge.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport * as S from './Badge.styled';\n\n/**\n * Badges show a bubble containing a `number` or a `string`. It may be used by itself or with children passed as props\n * (to display a badge on top of an icon, for example, pass the icon as the child).\n *\n * If the badge content is passed as a `float`, it will be rounded up to the nearest `integer`,\n * and if the number is higher than 1 000 or 1 000 000 it will be abbreviated to for example \"1.4K\" or \"1.4M\" respectively.\n * If you need to display a `float` instead of a rounded `integer`, pass it as a `string` instead (e.g. \"1,4\").\n *\n * ### Import\n *\n * ``` js\n * import { Badge } from '@ntbjs/react-components/data'\n * // or\n * import Badge from '@ntbjs/react-components/data/Badge'\n * ```\n * ## Props\n * ```\n * Pass `badgeIcon={<svg></svg>}` to display an icon.\n * Pass a number or string to the badgeContent to display it alongside the icon.\n * Pass `align={\"left\"}`or `align={\"center\"}` to align content.\n * Pass `elevated={true}` to display the badge on top of the children\n * Pass `active={true}` to reflect the active status of the badge\n * Pass `error={true}` to reflect the error status of the badge\n * Pass `warning={true}` to reflect the warning status of the badge\n * Pass `fontSize={15}` to set the font size of the badge in pixel\n * Pass `fontWeight={500}` to set the font weight of the badge\n * Pass `lineHeight={12}` to set the line height of the badge in pixel\n * Pass `colors={[#ffffff, #000000]}` to set the font color of the badge\n * Pass `backgroundColors={[#ffffff, #000000]}` to set the background color of the badge\n * Pass `verticalPadding={15}` to set the bottom and top padding of the badge in pixel\n * Pass `horizontalPadding={20}` to set the left and right padding of the badge in pixel\n * Pass `height={24}` to set the height of the badge in pixel\n * Pass `minHeight={24}` to set the minimum height of the badge in pixel\n * Pass `width={50}` to set the width of the badge in pixel\n * Pass `minWidth={32}` to set the minimum width of the badge in pixel\n * ```\n */\nconst Badge = React.forwardRef(function Badge(\n {\n badgeContent,\n badgeIcon,\n children,\n elevated,\n fontSize,\n fontWeight,\n lineHeight,\n active,\n error,\n warning,\n backgroundColors,\n colors,\n verticalPadding,\n horizontalPadding,\n height,\n minHeight,\n width,\n minWidth,\n ...props\n },\n forwardedRef\n) {\n if (typeof badgeContent === 'number') {\n badgeContent = Intl.NumberFormat('en', { notation: 'compact' }).format(badgeContent);\n }\n\n return (\n <S.Badge ref={forwardedRef} $elevated={elevated} $hasChildren={Boolean(children)} {...props}>\n {children && <S.BadgeChildrenContainer>{children}</S.BadgeChildrenContainer>}\n {(badgeIcon || badgeContent) && (\n <S.BadgeLabel\n $backgroundColors={backgroundColors}\n $colors={colors}\n $elevated={elevated}\n fontSize={fontSize}\n fontWeight={fontWeight}\n $lineHeight={lineHeight}\n $active={active}\n $error={error}\n $warning={warning}\n $elevatedverticalPadding={verticalPadding}\n $horizontalPadding={horizontalPadding}\n height={height}\n $minHeight={minHeight}\n width={width}\n $minWidth={minWidth}\n >\n {badgeIcon && <S.BadgeIcon $useGutter={!!badgeContent}>{badgeIcon}</S.BadgeIcon>}\n {badgeContent}\n </S.BadgeLabel>\n )}\n </S.Badge>\n );\n});\n\nBadge.propTypes = {\n /**\n * An Icon to show in the badge alongside with a text\n */\n badgeIcon: PropTypes.node,\n\n /**\n * Content to be showed in the badge – e.g. number of results.\n */\n badgeContent: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.func,\n PropTypes.element\n ]),\n\n /**\n * The element(s) for which the badge will be displayed – e.g. an icon or a text.\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n\n /**\n * Whether the badge should be displayed in an elevated position on top of the child element(s) or not.\n */\n elevated: PropTypes.bool,\n\n /**\n * Whether the element is active or not (e.g. the currently selected menu item). This changes the color of the badge.\n */\n active: PropTypes.bool,\n\n /**\n * There is an error present – 'error be prioritized over warnings if both are set to `true`.\n */\n error: PropTypes.bool,\n\n /**\n * There is a warning present.\n */\n warning: PropTypes.bool,\n /**\n * Font size for the badge\n */\n fontSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Font weight for the badge\n */\n fontWeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Line weight for the badge\n */\n lineHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Colors of the font in the manner of [darkThemeColor, lightThemeColor]\n */\n colors: PropTypes.arrayOf(PropTypes.string),\n /**\n * Background colors for the badge in the manner of [darkThemeColor, lightThemeColor]\n */\n backgroundColors: PropTypes.arrayOf(PropTypes.string),\n /**\n * Top and bottom padding for the badge\n */\n verticalPadding: PropTypes.number,\n /**\n * Left and right padding for the badge\n */\n horizontalPadding: PropTypes.number,\n /**\n * Height of the badge\n */\n height: PropTypes.number,\n /**\n * Minimum height of the badge\n */\n minHeight: PropTypes.number,\n /**\n * Width of the badge\n */\n width: PropTypes.number,\n /**\n * Minimum width of the badge\n */\n minWidth: PropTypes.number\n};\n\nBadge.defaultProps = {\n elevated: false,\n active: false,\n error: false,\n warning: false,\n badgeIcon: null,\n fontWeight: 'normal',\n lineHeight: 'normal'\n};\n\nexport default Badge;\n"],"names":["Badge","React","forwardRef","badgeContent","badgeIcon","children","elevated","fontSize","fontWeight","lineHeight","active","error","warning","backgroundColors","colors","verticalPadding","horizontalPadding","height","minHeight","width","minWidth","props","forwardedRef","Intl","NumberFormat","notation","format","createElement","S","_extends","ref","$elevated","$hasChildren","Boolean","$backgroundColors","$colors","$lineHeight","$active","$error","$warning","$elevatedverticalPadding","$horizontalPadding","$minHeight","$minWidth","$useGutter","propTypes","process","env","NODE_ENV","PropTypes","node","oneOfType","string","number","func","element","bool","arrayOf","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Badge.js","sources":["../../../src/components/data/Badge/Badge.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport * as S from './Badge.styled';\n\n/**\n * Badges show a bubble containing a `number` or a `string`. It may be used by itself or with children passed as props\n * (to display a badge on top of an icon, for example, pass the icon as the child).\n *\n * If the badge content is passed as a `float`, it will be rounded up to the nearest `integer`,\n * and if the number is higher than 1 000 or 1 000 000 it will be abbreviated to for example \"1.4K\" or \"1.4M\" respectively.\n * If you need to display a `float` instead of a rounded `integer`, pass it as a `string` instead (e.g. \"1,4\").\n *\n * ### Import\n *\n * ``` js\n * import { Badge } from '@ntbjs/react-components/data'\n * // or\n * import Badge from '@ntbjs/react-components/data/Badge'\n * ```\n * ## Props\n * ```\n * Pass `badgeIcon={<svg></svg>}` to display an icon.\n * Pass a number or string to the badgeContent to display it alongside the icon.\n * Pass `align={\"left\"}`or `align={\"center\"}` to align content.\n * Pass `elevated={true}` to display the badge on top of the children\n * Pass `active={true}` to reflect the active status of the badge\n * Pass `error={true}` to reflect the error status of the badge\n * Pass `warning={true}` to reflect the warning status of the badge\n * Pass `fontSize={15}` to set the font size of the badge in pixel\n * Pass `fontWeight={500}` to set the font weight of the badge\n * Pass `lineHeight={12}` to set the line height of the badge in pixel\n * Pass `colors={[#ffffff, #000000]}` to set the font color of the badge\n * Pass `backgroundColors={[#ffffff, #000000]}` to set the background color of the badge\n * Pass `verticalPadding={15}` to set the bottom and top padding of the badge in pixel\n * Pass `horizontalPadding={20}` to set the left and right padding of the badge in pixel\n * Pass `height={24}` to set the height of the badge in pixel\n * Pass `minHeight={24}` to set the minimum height of the badge in pixel\n * Pass `width={50}` to set the width of the badge in pixel\n * Pass `minWidth={32}` to set the minimum width of the badge in pixel\n * ```\n */\nconst Badge = React.forwardRef(function Badge(\n {\n badgeContent,\n badgeIcon,\n children,\n elevated,\n fontSize,\n fontWeight,\n lineHeight,\n active,\n error,\n warning,\n backgroundColors,\n colors,\n verticalPadding,\n horizontalPadding,\n height,\n minHeight,\n width,\n minWidth,\n borderColors,\n ...props\n },\n forwardedRef\n) {\n if (typeof badgeContent === 'number') {\n badgeContent = Intl.NumberFormat('en', { notation: 'compact' }).format(badgeContent);\n }\n\n return (\n <S.Badge ref={forwardedRef} $elevated={elevated} $hasChildren={Boolean(children)} {...props}>\n {children && <S.BadgeChildrenContainer>{children}</S.BadgeChildrenContainer>}\n {(badgeIcon || badgeContent) && (\n <S.BadgeLabel\n $backgroundColors={backgroundColors}\n $colors={colors}\n $elevated={elevated}\n fontSize={fontSize}\n fontWeight={fontWeight}\n $lineHeight={lineHeight}\n $active={active}\n $error={error}\n $warning={warning}\n $elevatedverticalPadding={verticalPadding}\n $horizontalPadding={horizontalPadding}\n height={height}\n $minHeight={minHeight}\n width={width}\n $minWidth={minWidth}\n $borderColors={borderColors}\n >\n {badgeIcon && <S.BadgeIcon $useGutter={!!badgeContent}>{badgeIcon}</S.BadgeIcon>}\n {badgeContent}\n </S.BadgeLabel>\n )}\n </S.Badge>\n );\n});\n\nBadge.propTypes = {\n /**\n * An Icon to show in the badge alongside with a text\n */\n badgeIcon: PropTypes.node,\n\n /**\n * Content to be showed in the badge – e.g. number of results.\n */\n badgeContent: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.func,\n PropTypes.element\n ]),\n\n /**\n * The element(s) for which the badge will be displayed – e.g. an icon or a text.\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n\n /**\n * Whether the badge should be displayed in an elevated position on top of the child element(s) or not.\n */\n elevated: PropTypes.bool,\n\n /**\n * Whether the element is active or not (e.g. the currently selected menu item). This changes the color of the badge.\n */\n active: PropTypes.bool,\n\n /**\n * There is an error present – 'error be prioritized over warnings if both are set to `true`.\n */\n error: PropTypes.bool,\n\n /**\n * There is a warning present.\n */\n warning: PropTypes.bool,\n /**\n * Font size for the badge\n */\n fontSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Font weight for the badge\n */\n fontWeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Line weight for the badge\n */\n lineHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Colors of the font in the manner of [darkThemeColor, lightThemeColor]\n */\n colors: PropTypes.arrayOf(PropTypes.string),\n /**\n * Background colors for the badge in the manner of [darkThemeColor, lightThemeColor]\n */\n backgroundColors: PropTypes.arrayOf(PropTypes.string),\n /**\n * Top and bottom padding for the badge\n */\n verticalPadding: PropTypes.number,\n /**\n * Left and right padding for the badge\n */\n horizontalPadding: PropTypes.number,\n /**\n * Height of the badge\n */\n height: PropTypes.number,\n /**\n * Minimum height of the badge\n */\n minHeight: PropTypes.number,\n /**\n * Width of the badge\n */\n width: PropTypes.number,\n /**\n * Minimum width of the badge\n */\n minWidth: PropTypes.number,\n /**\n * Border colors in the manner of [darkThemeColor, lightThemeColor]. When provided, a 1px solid border is applied.\n */\n borderColors: PropTypes.arrayOf(PropTypes.string)\n};\n\nBadge.defaultProps = {\n elevated: false,\n active: false,\n error: false,\n warning: false,\n badgeIcon: null,\n fontWeight: 'normal',\n lineHeight: 'normal'\n};\n\nexport default Badge;\n"],"names":["Badge","React","forwardRef","badgeContent","badgeIcon","children","elevated","fontSize","fontWeight","lineHeight","active","error","warning","backgroundColors","colors","verticalPadding","horizontalPadding","height","minHeight","width","minWidth","borderColors","props","forwardedRef","Intl","NumberFormat","notation","format","createElement","S","_extends","ref","$elevated","$hasChildren","Boolean","$backgroundColors","$colors","$lineHeight","$active","$error","$warning","$elevatedverticalPadding","$horizontalPadding","$minHeight","$minWidth","$borderColors","$useGutter","propTypes","process","env","NODE_ENV","PropTypes","node","oneOfType","string","number","func","element","bool","arrayOf","defaultProps"],"mappings":"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"}
|
|
@@ -72,7 +72,7 @@ const BadgeLabel = styled.span.withConfig({
|
|
|
72
72
|
const active = props.$active;
|
|
73
73
|
const error = props.$error;
|
|
74
74
|
const warning = props.$warning;
|
|
75
|
-
const defaultBgColor = props
|
|
75
|
+
const defaultBgColor = props?.$backgroundColors?.[0] ?? props.theme.getColor('gray-600');
|
|
76
76
|
switch (true) {
|
|
77
77
|
case !error && !warning && !active:
|
|
78
78
|
return defaultBgColor;
|
|
@@ -127,6 +127,11 @@ const BadgeLabel = styled.span.withConfig({
|
|
|
127
127
|
return defaultColor;
|
|
128
128
|
}
|
|
129
129
|
})}
|
|
130
|
+
|
|
131
|
+
${props => props.$borderColors && css`
|
|
132
|
+
border: 1px solid;
|
|
133
|
+
${props.theme.themeProp('border-color', props.$borderColors[0], props.$borderColors[1])}
|
|
134
|
+
`}
|
|
130
135
|
`;
|
|
131
136
|
const BadgeIcon = styled.span.withConfig({
|
|
132
137
|
shouldForwardProp
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.styled.js","sources":["../../../src/components/data/Badge/Badge.styled.js"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../utils/defaultTheme';\n\nconst shouldForwardProp = prop => {\n return prop !== 'theme' && !prop.startsWith('$');\n};\n\nexport const Badge = styled.span\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n align-content: center;\n display: ${props => (props.$elevated || !props.$hasChildren ? 'inline-flex' : 'flex')};\n font-family: ${props => props.theme.primaryFontFamily};\n font-size: 1rem;\n font-weight: 500;\n min-height: 24px;\n position: relative;\n width: ${props => (props.$elevated ? 'fit-content' : 'initial')};\n`;\n\nexport const BadgeChildrenContainer = styled.span\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n align-self: center;\n height: fit-content;\n margin-right: 8px;\n`;\n\nexport const BadgeLabel = styled.span\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n border-radius: ${props => (props.$elevated ? '12px' : '14px')};\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n\n font-size: ${props => {\n if (props.fontSize) {\n return `${props.fontSize}px`;\n } else {\n return props.elevated ? '0.625rem' : '0.750rem';\n }\n }};\n font-weight: ${props => (props.fontWeight ? props.fontWeight : 'normal')};\n line-height: ${props => (props.$lineHeight ? `${props.$lineHeight}px` : 'normal')};\n height: ${props => (props.height ? `${props.height}px` : 'fit-content')};\n letter-spacing: 0.32px;\n margin-left: ${props => (props.$elevated ? '15px' : 'auto')};\n position: ${props => (props.$elevated ? 'absolute' : 'initial')};\n right: 0;\n transform: ${props => (props.$elevated ? 'translate(33%, -8px)' : 'initial')};\n\n ${props =>\n props.width\n ? css`\n width: ${props.width}px;\n `\n : null}\n\n ${props =>\n props.$minWidth\n ? css`\n min-width: ${props.$minWidth}px;\n `\n : null}\n\n ${props =>\n props.$minHeight\n ? css`\n min-height: ${props.$minHeight}px;\n `\n : null}\n\n ${props => {\n const verticalPadding = props.verticalPadding\n ? `${props.verticalPadding}px`\n : props.$elevated\n ? '4px'\n : '6px';\n const horizontalPadding = props.$horizontalPadding\n ? `${props.$horizontalPadding}px`\n : props.$elevated\n ? '7px'\n : '10px';\n return css`\n padding: ${verticalPadding} ${horizontalPadding};\n `;\n }}\n\n ${props =>\n props.theme.themeProp(\n 'background',\n () => {\n const active = props.$active;\n const error = props.$error;\n const warning = props.$warning;\n\n const defaultBgColor = props?.backgroundColors?.[0] ?? props.theme.getColor('gray-600');\n\n switch (true) {\n case !error && !warning && !active:\n return defaultBgColor;\n\n case !error && !warning && active:\n return props.theme.getColor('gray-700');\n\n case error && active:\n return props.theme.getColor('red-500');\n\n case error:\n return props.theme.getColor('red-200');\n\n case warning && active:\n return props.theme.getColor('signal-yellow-500');\n\n case warning:\n return props.theme.getColor('signal-yellow-400');\n\n default:\n return props.theme.getColor('gray-600');\n }\n },\n () => {\n const active = props.$active;\n const error = props.$error;\n const warning = props.$warning;\n\n const defaultBgColor = props?.$backgroundColors?.[1] ?? props.theme.getColor('gray-200');\n\n switch (true) {\n case !error && !warning && !active:\n return defaultBgColor;\n\n case !error && !warning && active:\n return props.theme.getColor('white');\n\n case error && active:\n return props.theme.getColor('red-500');\n\n case error:\n return props.theme.getColor('red-200');\n\n case warning && active:\n return props.theme.getColor('signal-yellow-500');\n\n case warning:\n return props.theme.getColor('signal-yellow-400');\n\n default:\n return props.theme.getColor('gray-200');\n }\n }\n )}\n\n ${props =>\n props.theme.themeProp(\n 'color',\n () => {\n const defaultColor = props?.$colors?.[0] ?? props.theme.getColor('white');\n if ((props.$warning && !props.$error) || (props.error && !props.$active)) {\n return props.theme.getColor('gray-900');\n } else {\n return defaultColor;\n }\n },\n () => {\n const defaultColor = props?.$colors?.[1] ?? props.theme.getColor('gray-900');\n if (props.$error && props.$active) {\n return props.theme.getColor('white');\n } else {\n return defaultColor;\n }\n }\n )}\n`;\n\nexport const BadgeIcon = styled.span\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: flex;\n align-items: center;\n margin-right: ${props => (props.$useGutter ? '4px' : 0)};\n svg {\n height: 12px;\n }\n`;\n"],"names":["shouldForwardProp","prop","startsWith","Badge","styled","span","withConfig","attrs","applyDefaultTheme","props","$elevated","$hasChildren","theme","primaryFontFamily","BadgeChildrenContainer","BadgeLabel","fontSize","elevated","fontWeight","$lineHeight","height","width","css","$minWidth","$minHeight","verticalPadding","horizontalPadding","$horizontalPadding","themeProp","active","$active","error","$error","warning","$warning","defaultBgColor","backgroundColors","getColor","$backgroundColors","defaultColor","$colors","BadgeIcon","$useGutter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Badge.styled.js","sources":["../../../src/components/data/Badge/Badge.styled.js"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { applyDefaultTheme } from '../../../utils/defaultTheme';\n\nconst shouldForwardProp = prop => {\n return prop !== 'theme' && !prop.startsWith('$');\n};\n\nexport const Badge = styled.span\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n align-content: center;\n display: ${props => (props.$elevated || !props.$hasChildren ? 'inline-flex' : 'flex')};\n font-family: ${props => props.theme.primaryFontFamily};\n font-size: 1rem;\n font-weight: 500;\n min-height: 24px;\n position: relative;\n width: ${props => (props.$elevated ? 'fit-content' : 'initial')};\n`;\n\nexport const BadgeChildrenContainer = styled.span\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n align-self: center;\n height: fit-content;\n margin-right: 8px;\n`;\n\nexport const BadgeLabel = styled.span\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n border-radius: ${props => (props.$elevated ? '12px' : '14px')};\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n\n font-size: ${props => {\n if (props.fontSize) {\n return `${props.fontSize}px`;\n } else {\n return props.elevated ? '0.625rem' : '0.750rem';\n }\n }};\n font-weight: ${props => (props.fontWeight ? props.fontWeight : 'normal')};\n line-height: ${props => (props.$lineHeight ? `${props.$lineHeight}px` : 'normal')};\n height: ${props => (props.height ? `${props.height}px` : 'fit-content')};\n letter-spacing: 0.32px;\n margin-left: ${props => (props.$elevated ? '15px' : 'auto')};\n position: ${props => (props.$elevated ? 'absolute' : 'initial')};\n right: 0;\n transform: ${props => (props.$elevated ? 'translate(33%, -8px)' : 'initial')};\n\n ${props =>\n props.width\n ? css`\n width: ${props.width}px;\n `\n : null}\n\n ${props =>\n props.$minWidth\n ? css`\n min-width: ${props.$minWidth}px;\n `\n : null}\n\n ${props =>\n props.$minHeight\n ? css`\n min-height: ${props.$minHeight}px;\n `\n : null}\n\n ${props => {\n const verticalPadding = props.verticalPadding\n ? `${props.verticalPadding}px`\n : props.$elevated\n ? '4px'\n : '6px';\n const horizontalPadding = props.$horizontalPadding\n ? `${props.$horizontalPadding}px`\n : props.$elevated\n ? '7px'\n : '10px';\n return css`\n padding: ${verticalPadding} ${horizontalPadding};\n `;\n }}\n\n ${props =>\n props.theme.themeProp(\n 'background',\n () => {\n const active = props.$active;\n const error = props.$error;\n const warning = props.$warning;\n\n const defaultBgColor = props?.$backgroundColors?.[0] ?? props.theme.getColor('gray-600');\n\n switch (true) {\n case !error && !warning && !active:\n return defaultBgColor;\n\n case !error && !warning && active:\n return props.theme.getColor('gray-700');\n\n case error && active:\n return props.theme.getColor('red-500');\n\n case error:\n return props.theme.getColor('red-200');\n\n case warning && active:\n return props.theme.getColor('signal-yellow-500');\n\n case warning:\n return props.theme.getColor('signal-yellow-400');\n\n default:\n return props.theme.getColor('gray-600');\n }\n },\n () => {\n const active = props.$active;\n const error = props.$error;\n const warning = props.$warning;\n\n const defaultBgColor = props?.$backgroundColors?.[1] ?? props.theme.getColor('gray-200');\n\n switch (true) {\n case !error && !warning && !active:\n return defaultBgColor;\n\n case !error && !warning && active:\n return props.theme.getColor('white');\n\n case error && active:\n return props.theme.getColor('red-500');\n\n case error:\n return props.theme.getColor('red-200');\n\n case warning && active:\n return props.theme.getColor('signal-yellow-500');\n\n case warning:\n return props.theme.getColor('signal-yellow-400');\n\n default:\n return props.theme.getColor('gray-200');\n }\n }\n )}\n\n ${props =>\n props.theme.themeProp(\n 'color',\n () => {\n const defaultColor = props?.$colors?.[0] ?? props.theme.getColor('white');\n if ((props.$warning && !props.$error) || (props.error && !props.$active)) {\n return props.theme.getColor('gray-900');\n } else {\n return defaultColor;\n }\n },\n () => {\n const defaultColor = props?.$colors?.[1] ?? props.theme.getColor('gray-900');\n if (props.$error && props.$active) {\n return props.theme.getColor('white');\n } else {\n return defaultColor;\n }\n }\n )}\n\n ${props =>\n props.$borderColors &&\n css`\n border: 1px solid;\n ${props.theme.themeProp('border-color', props.$borderColors[0], props.$borderColors[1])}\n `}\n`;\n\nexport const BadgeIcon = styled.span\n .withConfig({\n shouldForwardProp\n })\n .attrs(applyDefaultTheme)`\n display: flex;\n align-items: center;\n margin-right: ${props => (props.$useGutter ? '4px' : 0)};\n svg {\n height: 12px;\n }\n`;\n"],"names":["shouldForwardProp","prop","startsWith","Badge","styled","span","withConfig","attrs","applyDefaultTheme","props","$elevated","$hasChildren","theme","primaryFontFamily","BadgeChildrenContainer","BadgeLabel","fontSize","elevated","fontWeight","$lineHeight","height","width","css","$minWidth","$minHeight","verticalPadding","horizontalPadding","$horizontalPadding","themeProp","active","$active","error","$error","warning","$warning","defaultBgColor","$backgroundColors","getColor","defaultColor","$colors","$borderColors","BadgeIcon","$useGutter"],"mappings":"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"}
|
package/build/icons/index.js
CHANGED
|
@@ -36,6 +36,7 @@ import { ReactComponent as TriangleRightIcon } from './triangle-right.svg';
|
|
|
36
36
|
import { ReactComponent as VerificationIcon } from './verification.svg';
|
|
37
37
|
import { ReactComponent as WarningCircleIcon } from './warning-circle.svg';
|
|
38
38
|
import { ReactComponent as WarningTriangleIcon } from './warning-triangle.svg';
|
|
39
|
+
import { ReactComponent as InfoRedIcon } from './info-red.svg';
|
|
39
40
|
import { ReactComponent as InfoYellowIcon } from './info-yellow.svg';
|
|
40
41
|
export {
|
|
41
42
|
AddIcon,
|
|
@@ -76,5 +77,6 @@ export {
|
|
|
76
77
|
VerificationIcon,
|
|
77
78
|
WarningCircleIcon,
|
|
78
79
|
WarningTriangleIcon,
|
|
80
|
+
InfoRedIcon,
|
|
79
81
|
InfoYellowIcon
|
|
80
82
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg viewBox="5 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_red)">
|
|
3
|
+
<rect width="28" height="28" transform="translate(5)" fill="#B62902"/>
|
|
4
|
+
<path d="M19.0007 25.6663C12.5572 25.6663 7.33398 20.4432 7.33398 13.9997C7.33398 7.55617 12.5572 2.33301 19.0007 2.33301C25.4442 2.33301 30.6673 7.55617 30.6673 13.9997C30.6673 20.4432 25.4442 25.6663 19.0007 25.6663ZM19.0007 23.333C21.476 23.333 23.85 22.3497 25.6003 20.5993C27.3507 18.849 28.334 16.475 28.334 13.9997C28.334 11.5243 27.3507 9.15035 25.6003 7.40001C23.85 5.64967 21.476 4.66634 19.0007 4.66634C16.5253 4.66634 14.1513 5.64967 12.401 7.40001C10.6506 9.15035 9.66732 11.5243 9.66732 13.9997C9.66732 16.475 10.6506 18.849 12.401 20.5993C14.1513 22.3497 16.5253 23.333 19.0007 23.333ZM17.834 8.16634H20.1673V10.4997H17.834V8.16634ZM17.834 12.833H20.1673V19.833H17.834V12.833Z" fill="#FECACA"/>
|
|
5
|
+
</g>
|
|
6
|
+
<defs>
|
|
7
|
+
<clipPath id="clip0_red">
|
|
8
|
+
<path d="M5 14C5 6.26801 11.268 0 19 0C26.732 0 33 6.26801 33 14C33 21.732 26.732 28 19 28C11.268 28 5 21.732 5 14Z" fill="white"/>
|
|
9
|
+
</clipPath>
|
|
10
|
+
</defs>
|
|
11
|
+
</svg>
|
|
@@ -40,7 +40,8 @@ const AssetGalleryBase = React__default.forwardRef(function AssetGalleryBase({
|
|
|
40
40
|
const PRIMARY_SCROLL_BUFFER_HEIGHT = 1500;
|
|
41
41
|
const SECONDARY_SCROLL_BUFFER_HEIGHT = 500;
|
|
42
42
|
const GRID_VIEW_MODE_ASSET_MIN_WIDTH = 300;
|
|
43
|
-
const GRID_VIEW_MODE_ASSET_HEIGHT =
|
|
43
|
+
const GRID_VIEW_MODE_ASSET_HEIGHT = 474;
|
|
44
|
+
const GRID_VIEW_MODE_INSTRUCTION_EXTRA_HEIGHT = 40;
|
|
44
45
|
const MISSING_WIDTH_PLACEHOLDER = 1920;
|
|
45
46
|
const MISSING_HEIGHT_PLACEHOLDER = 1080;
|
|
46
47
|
const isBrowser = typeof window !== 'undefined';
|
|
@@ -110,13 +111,15 @@ const AssetGalleryBase = React__default.forwardRef(function AssetGalleryBase({
|
|
|
110
111
|
}
|
|
111
112
|
row.push(asset);
|
|
112
113
|
if (row.length === desiredAssetCountInRow || index + 1 === assetsProp.length || assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group) {
|
|
114
|
+
const rowHasInstructions = row.some(a => a.imageRights);
|
|
115
|
+
const rowHeight = rowHasInstructions ? GRID_VIEW_MODE_ASSET_HEIGHT + GRID_VIEW_MODE_INSTRUCTION_EXTRA_HEIGHT : GRID_VIEW_MODE_ASSET_HEIGHT;
|
|
113
116
|
row.forEach(rowAsset => {
|
|
114
117
|
computedAssets.push({
|
|
115
118
|
...rowAsset,
|
|
116
119
|
layout: {
|
|
117
120
|
type: 'asset',
|
|
118
121
|
width: Math.round(desiredAssetWidth),
|
|
119
|
-
height: Math.round(
|
|
122
|
+
height: Math.round(rowHeight),
|
|
120
123
|
translateX: Math.round(translateX),
|
|
121
124
|
translateY: Math.round(translateY)
|
|
122
125
|
}
|
|
@@ -125,7 +128,7 @@ const AssetGalleryBase = React__default.forwardRef(function AssetGalleryBase({
|
|
|
125
128
|
});
|
|
126
129
|
row = [];
|
|
127
130
|
translateX = 0;
|
|
128
|
-
translateY +=
|
|
131
|
+
translateY += rowHeight + SPACE_UNDER_ASSETS;
|
|
129
132
|
}
|
|
130
133
|
});
|
|
131
134
|
calculatedAssets.current = computedAssets;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetGalleryBase.js","sources":["../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { throttle } from 'lodash';\nimport PropTypes from 'prop-types';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { assetShape } from '../asset.propType';\nimport useIsomorphicLayoutEffect from './../../../../hooks/useIsomorphicLayoutEffect';\nimport * as S from './AssetGalleryBase.styled';\nimport AssetGalleryCompactCard from './AssetGalleryCompactCard/AssetGalleryCompactCard';\nimport AssetGalleryGridCard from './AssetGalleryGridCard/AssetGalleryGridCard';\n\nconst AssetGalleryBase = React.forwardRef(function AssetGalleryBase(\n {\n assets: assetsProp,\n activeSummaryCard,\n displayIcon,\n viewMode,\n thumbnailMaxHeight,\n selectable,\n customSelectedBorder,\n selectedAssetKeys,\n onAssetSelected,\n onAssetUnselected,\n softSelectable,\n softSelectedAssetKey,\n scrollElement: scrollElementProp,\n onAssetSoftSelectedChanged,\n component,\n ...props\n },\n forwardedRef\n) {\n // Combine forwarded ref and the local ref\n const assetGalleryDOMNode = useRef();\n const assetGalleryCompactRef = useMergedRefs(forwardedRef, assetGalleryDOMNode);\n\n const assetGalleryWidth = useRef(0);\n const minimumRowAspectRatio = useRef(0);\n\n // Calculated assets\n const calculatedAssets = useRef([]);\n const [assets, setAssets] = useState([]);\n\n // Constants\n const MAXIMUM_ROW_HEIGHT = useMemo(\n () => (viewMode === 'grid' ? 450 : thumbnailMaxHeight),\n [viewMode, thumbnailMaxHeight]\n );\n const SPACE_BETWEEN_ASSETS = 8;\n const SPACE_UNDER_ASSETS = 8;\n const PRIMARY_SCROLL_BUFFER_HEIGHT = 1500;\n const SECONDARY_SCROLL_BUFFER_HEIGHT = 500;\n const GRID_VIEW_MODE_ASSET_MIN_WIDTH = 300;\n const GRID_VIEW_MODE_ASSET_HEIGHT = 427;\n const MISSING_WIDTH_PLACEHOLDER = 1920;\n const MISSING_HEIGHT_PLACEHOLDER = 1080;\n\n const isBrowser = typeof window !== 'undefined';\n\n const scrollElement = scrollElementProp || window;\n\n // Scroll position and direction\n const previousYOffset = useRef(isBrowser ? scrollElement.pageYOffset : 0);\n const latestYOffset = useRef(isBrowser ? scrollElement.pageYOffset : 0);\n const scrollDirection = useRef('down');\n\n // Track resize changes and set the current Asset Gallery width\n useIsomorphicLayoutEffect(() => {\n if (!assetGalleryDOMNode.current) return;\n\n const throttledOnResize = throttle(onResize, 1);\n\n const resizeObserver = new ResizeObserver(throttledOnResize);\n\n resizeObserver.observe(assetGalleryDOMNode.current);\n\n function onResize(entries) {\n entries.forEach(entry => {\n // setAssetGalleryWidth(entry.contentRect.width);\n if (assetGalleryWidth.current === entry.contentRect.width) return;\n window.requestAnimationFrame(() => {\n assetGalleryWidth.current = entry.contentRect.width;\n main();\n });\n });\n }\n\n return () => {\n resizeObserver.unobserve(assetGalleryDOMNode.current);\n };\n }, [assetsProp, assetGalleryDOMNode, MAXIMUM_ROW_HEIGHT]);\n\n //Re calculate Asset Gallery when something changes `MAXIMUM_ROW_HEIGHT` or `assetsProp` changes\n useEffect(() => {\n main();\n }, [MAXIMUM_ROW_HEIGHT, assetsProp]);\n\n const main = () => {\n calculateAssetGalleryAspectRatio();\n calculateLayout();\n calculateVisibility();\n };\n\n const calculateAssetGalleryAspectRatio = () => {\n // We don't care to compute the aspect ratio if the width of the gallery is 0\n if (assetGalleryWidth.current > 0) {\n minimumRowAspectRatio.current = calculateAspectRatio(\n assetGalleryWidth.current,\n MAXIMUM_ROW_HEIGHT\n );\n }\n };\n\n // Calculate asset gallery layout\n const calculateLayout = () => {\n // Check for required attributes and omit assets that are missing the attribute\n const assetsWithoutAKey = assetsProp.filter(a => !a.key);\n if (assetsWithoutAKey.length > 0) {\n assetsProp = assetsProp.filter(a => a.key);\n assetsWithoutAKey.forEach(a =>\n console.warn(\n 'Omitted asset from the gallery because it was missing the unique `key` property.',\n a\n )\n );\n }\n\n if (viewMode === 'grid' && assetGalleryWidth.current > 0) {\n // State\n let row = []; // The list of images in the current row.\n let translateX = 0; // The current translateX value that we are at\n let translateY = 0; // The current translateY value that we are at\n const computedAssets = [];\n let lastGroup = null; // The last group that was created\n\n // Calculate how many assets we can put in a row before violating `ASSET_MIN_WIDTH`\n // but we always want minimum of 1 asset in a row\n const desiredAssetCountInRow =\n Math.floor(assetGalleryWidth.current / GRID_VIEW_MODE_ASSET_MIN_WIDTH) || 1;\n\n // Calculate the width of each asset in a row\n const desiredAssetWidth =\n assetGalleryWidth.current / desiredAssetCountInRow -\n SPACE_BETWEEN_ASSETS +\n SPACE_BETWEEN_ASSETS / desiredAssetCountInRow;\n\n assetsProp.forEach((asset, index) => {\n // Create a group label\n if (asset.group && asset.group !== lastGroup) {\n computedAssets.push({\n title: asset.group,\n key: asset.key,\n layout: {\n type: 'groupLabel',\n height: 50,\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n lastGroup = asset.group;\n translateY += 50 + SPACE_UNDER_ASSETS;\n }\n\n row.push(asset);\n\n if (\n row.length === desiredAssetCountInRow ||\n index + 1 === assetsProp.length ||\n (assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group)\n ) {\n row.forEach(rowAsset => {\n computedAssets.push({\n ...rowAsset,\n layout: {\n type: 'asset', // Indicates that this is an asset and not a group label\n width: Math.round(desiredAssetWidth),\n height: Math.round(GRID_VIEW_MODE_ASSET_HEIGHT),\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n\n translateX += desiredAssetWidth + SPACE_BETWEEN_ASSETS;\n });\n\n row = [];\n translateX = 0;\n translateY += GRID_VIEW_MODE_ASSET_HEIGHT + SPACE_UNDER_ASSETS;\n }\n });\n\n calculatedAssets.current = computedAssets;\n } else {\n if (minimumRowAspectRatio.current > 0) {\n // State\n let row = []; // The list of images in the current row.\n let translateX = 0; // The current translateX value that we are at\n let translateY = 0; // The current translateY value that we are at\n let rowAspectRatio = 0; // The aspect ratio of the row we are building\n let lastGroup = null; // The last group that was created\n\n const computedAssets = [];\n\n // Loop through all our images, building them up into rows and computing\n // the working rowAspectRatio.\n assetsProp.forEach((asset, index) => {\n // Create a group label\n if (asset.group && asset.group !== lastGroup) {\n computedAssets.push({\n title: asset.group,\n key: asset.key,\n layout: {\n type: 'groupLabel',\n height: 50,\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n lastGroup = asset.group;\n translateY += 50 + SPACE_UNDER_ASSETS;\n }\n\n rowAspectRatio += calculateAspectRatio(\n asset.width || MISSING_WIDTH_PLACEHOLDER,\n asset.height || MISSING_HEIGHT_PLACEHOLDER\n );\n\n row.push(asset);\n\n // End the row if any of the conditions match\n if (\n rowAspectRatio >= minimumRowAspectRatio.current ||\n index + 1 === assetsProp.length ||\n (assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group)\n ) {\n // Make sure that the last row also has a reasonable height\n rowAspectRatio = Math.max(rowAspectRatio, minimumRowAspectRatio.current);\n\n // Compute this row's height.\n const totalDesiredWidthOfImages =\n assetGalleryWidth.current - SPACE_BETWEEN_ASSETS * (row.length - 1);\n const rowHeight = totalDesiredWidthOfImages / rowAspectRatio;\n\n row.forEach(rowAsset => {\n const assetWidth =\n rowHeight *\n calculateAspectRatio(\n rowAsset.width || MISSING_WIDTH_PLACEHOLDER,\n rowAsset.height || MISSING_HEIGHT_PLACEHOLDER\n );\n\n computedAssets.push({\n ...rowAsset,\n layout: {\n type: 'asset', // Indicates that this is an asset an not a group label\n width: Math.round(assetWidth),\n height: Math.round(rowHeight),\n translateX: Math.round(translateX),\n translateY: Math.round(translateY),\n hasHeightAndWidth: Boolean(rowAsset.width && rowAsset.height)\n }\n });\n\n // The next image is `SPACE_BETWEEN_ASSETS` pixels to the right of this image.\n translateX += assetWidth + SPACE_BETWEEN_ASSETS;\n });\n\n // Reset our state variables for next row.\n row = [];\n rowAspectRatio = 0;\n translateY += rowHeight + SPACE_UNDER_ASSETS;\n translateX = 0;\n }\n });\n\n calculatedAssets.current = computedAssets;\n }\n }\n };\n\n // Utility function to calculate the aspect ratio of a width and height\n function calculateAspectRatio(width, height) {\n return width / height;\n }\n\n // Calculate the total height of the gallery\n const totalGalleryHeight = useMemo(() => {\n if (assets.length === 0) {\n return 0;\n }\n\n const lastAsset = assets[assets.length - 1];\n\n if (assets.length < 8) {\n return (lastAsset.layout.translateY + lastAsset.layout.height) * 2;\n }\n\n return lastAsset.layout.translateY + lastAsset.layout.height;\n }, [assets]);\n\n useEffect(() => {\n const throttledOnScroll = throttle(onScroll, 200);\n\n scrollElement.addEventListener('scroll', throttledOnScroll, false);\n return () => scrollElement.removeEventListener('scroll', throttledOnScroll, false);\n }, [assetGalleryDOMNode, calculatedAssets]);\n\n function onScroll() {\n setScrollPositionAndDirection();\n calculateVisibility();\n }\n\n function setScrollPositionAndDirection() {\n const newYOffset = scrollElement.pageYOffset;\n previousYOffset.current = latestYOffset.current;\n latestYOffset.current = newYOffset;\n scrollDirection.current = latestYOffset.current > previousYOffset.current ? 'down' : 'up';\n }\n\n /**\n * +---------------------------+\n * | |\n * | |\n * | |\n * | |\n * + - - - - - - - - - - - - - + -------\n * | | A\n * | Secondary Buffer | SECONDARY_SCROLL_BUFFER_HEIGHT\n * | | V\n * +---------------------------+ -------\n * | | A\n * | | |\n * | | |\n * | Viewport | window.innerHeight\n * | | |\n * | | |\n * | | V\n * +---------------------------+ -------\n * | | A\n * | | |\n * | | |\n * | | |\n * | Primary Buffer | PRIMARY_SCROLL_BUFFER_HEIGHT\n * | | |\n * | | |\n * | | |\n * | | V\n * + - - - - - - - - - - - - - + -------\n * | |\n * | (Scroll direction) |\n * | | |\n * | | |\n * | V |\n * | |\n *\n */\n\n const calculateVisibility = () => {\n if (!assetGalleryDOMNode.current) return;\n\n // Get the top and bottom buffers heights.\n const bufferTop =\n scrollDirection.current === 'up'\n ? PRIMARY_SCROLL_BUFFER_HEIGHT\n : SECONDARY_SCROLL_BUFFER_HEIGHT;\n\n const bufferBottom =\n scrollDirection.current === 'up'\n ? SECONDARY_SCROLL_BUFFER_HEIGHT\n : PRIMARY_SCROLL_BUFFER_HEIGHT;\n\n const containerOffset = getOffsetTop(assetGalleryDOMNode.current);\n const scrollerHeight = scrollElement.innerHeight;\n\n const yOffset = latestYOffset.current;\n\n // This is the top of the top buffer. If the bottom of an image is above\n // this line, it will be removed.\n const minTranslateYPlusHeight = yOffset - containerOffset - bufferTop;\n\n // This is the bottom of the bottom buffer. If the top of an image is\n // below this line, it will be removed.\n const maxTranslateY = yOffset - containerOffset + scrollerHeight + bufferBottom;\n\n const finalizedAssets = calculatedAssets.current.map(asset => {\n if (\n scrollElement.self == window &&\n (asset.layout.translateY + asset.layout.height < minTranslateYPlusHeight ||\n asset.layout.translateY > maxTranslateY)\n ) {\n // Hide Image\n asset.layout.show = false;\n } else {\n // Show Image\n asset.layout.show = true;\n }\n\n return asset;\n });\n\n setAssets(finalizedAssets);\n };\n\n // Utility function that returns the distance from `elem` to the top of the page.\n // This is done by walking up the node tree, getting the offsetTop of each\n // parent node, until the top of the page.\n function getOffsetTop(elem) {\n let offsetTop = 0;\n do {\n if (!isNaN(elem.offsetTop)) {\n offsetTop += elem.offsetTop;\n }\n elem = elem.offsetParent;\n } while (elem);\n return offsetTop;\n }\n\n const handleKeyPress = useCallback(\n e => {\n function isElementVisible(el) {\n const rect = el.getBoundingClientRect(),\n vWidth = scrollElement.innerWidth || document.documentElement.clientWidth,\n vHeight = scrollElement.innerHeight || document.documentElement.clientHeight,\n efp = function (x, y) {\n return document.elementFromPoint(x, y);\n };\n\n // Return false if it's not in the viewport\n if (rect.right < 0 || rect.bottom < 0 || rect.left > vWidth || rect.top > vHeight)\n return false;\n\n // Return true if any of its four corners are visible\n return (\n el.contains(efp(rect.left, rect.top)) ||\n el.contains(efp(rect.right, rect.top)) ||\n el.contains(efp(rect.right, rect.bottom)) ||\n el.contains(efp(rect.left, rect.bottom))\n );\n }\n\n function softSelectFirstVisibleAsset() {\n const visibleAssets = assets.filter(asset => asset.layout.show);\n\n for (let i = 0; i < assetGalleryDOMNode.current.children.length; i++) {\n if (isElementVisible(assetGalleryDOMNode.current.children[i])) {\n onAssetSoftSelectedChanged(visibleAssets[i].key);\n break;\n }\n }\n }\n\n if (assets.length === 0) return;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n if (softSelectedAssetKey === null) {\n softSelectFirstVisibleAsset();\n\n return;\n }\n }\n\n if (e.key === 'ArrowLeft') {\n const previousAssetIndex =\n assets.findIndex(asset => asset.key === softSelectedAssetKey) - 1;\n\n const previousAsset = assets[previousAssetIndex];\n\n if (previousAsset) {\n if (previousAsset.layout.show) {\n onAssetSoftSelectedChanged(previousAsset.key);\n } else {\n softSelectFirstVisibleAsset();\n }\n }\n\n return;\n }\n\n if (e.key === 'ArrowRight') {\n const nextAssetIndex = assets.findIndex(asset => asset.key === softSelectedAssetKey) + 1;\n\n const nextAsset = assets[nextAssetIndex];\n\n if (nextAsset) {\n if (nextAsset.layout.show) {\n onAssetSoftSelectedChanged(nextAsset.key);\n } else {\n softSelectFirstVisibleAsset();\n }\n }\n\n return;\n }\n\n if (e.key === 'Enter') {\n if (softSelectedAssetKey === null) return;\n\n if (selectedAssetKeys.includes(softSelectedAssetKey)) {\n onAssetUnselected(softSelectedAssetKey);\n } else {\n onAssetSelected(softSelectedAssetKey);\n }\n }\n },\n [\n assets,\n softSelectedAssetKey,\n onAssetSoftSelectedChanged,\n selectedAssetKeys,\n assetGalleryCompactRef\n ]\n );\n\n const handleClick = useCallback(() => {\n onAssetSoftSelectedChanged(null);\n }, []);\n\n // Add event listeners for keyboard navigation (soft select)\n useEffect(() => {\n if (softSelectable) {\n document.addEventListener('keydown', handleKeyPress);\n }\n\n return () => document.removeEventListener('keydown', handleKeyPress);\n }, [softSelectable, handleKeyPress]);\n\n useEffect(() => {\n if (softSelectable && softSelectedAssetKey !== null) {\n document.addEventListener('click', handleClick, true);\n }\n\n return () => document.removeEventListener('click', handleClick, true);\n }, [softSelectable, softSelectedAssetKey, handleClick]);\n\n return (\n <>\n <S.AssetGalleryBase\n ref={assetGalleryCompactRef}\n style={{ height: `${totalGalleryHeight}px` }}\n className={props.className}\n {...props}\n >\n {assets.map(\n asset =>\n asset.layout.show && (\n <React.Fragment key={`asset-gallery-${asset.layout.type}-${asset.key}`}>\n {asset.layout.type === 'groupLabel' && (\n <S.GroupLabel\n style={{\n transform: `translate3d(${asset.layout.translateX}px,${asset.layout.translateY}px, 0)`,\n height: `${asset.layout.height}px`\n }}\n >\n {asset.title}\n </S.GroupLabel>\n )}\n\n {asset.layout.type === 'asset' && (\n <S.AssetGalleryCardBase\n style={{\n transform: `translate3d(${asset.layout.translateX}px, ${asset.layout.translateY}px, 0)`,\n width: `${asset.layout.width}px`,\n height: `${asset.layout.height}px`,\n display: 'flex',\n justifyContent: 'center'\n }}\n >\n {viewMode === 'grid' ? (\n <AssetGalleryGridCard\n asset={asset}\n selectable={'selectable' in asset ? asset.selectable : selectable}\n selected={selectedAssetKeys.includes(asset.key)}\n customSelectedBorder={customSelectedBorder}\n extendedSelectMode={Boolean(selectedAssetKeys.length)}\n onAssetSelected={onAssetSelected}\n onAssetUnselected={onAssetUnselected}\n softSelected={softSelectedAssetKey === asset.key}\n component={component}\n />\n ) : (\n <AssetGalleryCompactCard\n asset={asset}\n activeSummaryCard={activeSummaryCard}\n displayIcon={displayIcon}\n hasHeightAndWidth={asset.layout.hasHeightAndWidth}\n collapseExtraInfo={asset.layout.width < 90}\n selectable={'selectable' in asset ? asset.selectable : selectable}\n selected={selectedAssetKeys.includes(asset.key)}\n customSelectedBorder={customSelectedBorder}\n extendedSelectMode={Boolean(selectedAssetKeys.length)}\n onAssetSelected={onAssetSelected}\n onAssetUnselected={onAssetUnselected}\n softSelected={softSelectedAssetKey === asset.key}\n component={component}\n />\n )}\n </S.AssetGalleryCardBase>\n )}\n </React.Fragment>\n )\n )}\n </S.AssetGalleryBase>\n </>\n );\n});\n\nAssetGalleryBase.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n assets: PropTypes.arrayOf(PropTypes.shape(assetShape)),\n\n /**\n * Whether the asset gallery should render the Asset Summary Card on hover.\n */\n activeSummaryCard: PropTypes.bool,\n\n /**\n * Whether the asset gallery should display the Version Count or Verifications on default.\n */\n displayIcon: PropTypes.string,\n\n /**\n * The view mode of the gallery.\n */\n viewMode: PropTypes.oneOf(['compact', 'grid']),\n\n /**\n * The maximum height of thumbnails in the gallery. When the grid is computed the gallery will try\n * to have each row of the gallery as close to the max height as possible.\n */\n thumbnailMaxHeight: PropTypes.number,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have custom borders on selected asset\n */\n customSelectedBorder: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * An array containing the key of all selected assets\n */\n selectedAssetKeys: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.number)\n ]).isRequired,\n\n /**\n * Scrollable element to attach event listeners to. Defaults to window.\n */\n scrollElement: PropTypes.instanceOf(Element),\n\n /**\n * The callback function when an asset is selected - returns the selected asset key\n */\n onAssetSelected: PropTypes.func.isRequired,\n\n /**\n * The callback function when an asset is unselected - returns the unselected asset key\n */\n onAssetUnselected: PropTypes.func.isRequired,\n\n /**\n * Whether or not the asset gallery should have soft selectable asset cards\n */\n softSelectable: PropTypes.bool,\n\n /**\n * A value containing the key of the soft selected asset or null\n */\n softSelectedAssetKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * The callback function when soft selected asset changes - returns the selected asset key or null\n */\n onAssetSoftSelectedChanged: PropTypes.func.isRequired,\n\n /**\n * A function that returns a custom component to use for the card in the gallery - The function provides\n * `asset` as its first argument\n */\n component: PropTypes.func,\n\n /**\n * Optional className\n */\n className: PropTypes.string\n};\n\nexport default AssetGalleryBase;\n"],"names":["AssetGalleryBase","React","forwardRef","assets","assetsProp","activeSummaryCard","displayIcon","viewMode","thumbnailMaxHeight","selectable","customSelectedBorder","selectedAssetKeys","onAssetSelected","onAssetUnselected","softSelectable","softSelectedAssetKey","scrollElement","scrollElementProp","onAssetSoftSelectedChanged","component","props","forwardedRef","assetGalleryDOMNode","useRef","assetGalleryCompactRef","useMergedRefs","assetGalleryWidth","minimumRowAspectRatio","calculatedAssets","setAssets","useState","MAXIMUM_ROW_HEIGHT","useMemo","SPACE_BETWEEN_ASSETS","SPACE_UNDER_ASSETS","PRIMARY_SCROLL_BUFFER_HEIGHT","SECONDARY_SCROLL_BUFFER_HEIGHT","GRID_VIEW_MODE_ASSET_MIN_WIDTH","GRID_VIEW_MODE_ASSET_HEIGHT","MISSING_WIDTH_PLACEHOLDER","MISSING_HEIGHT_PLACEHOLDER","isBrowser","window","previousYOffset","pageYOffset","latestYOffset","scrollDirection","useIsomorphicLayoutEffect","current","throttledOnResize","throttle","onResize","resizeObserver","ResizeObserver","observe","entries","forEach","entry","contentRect","width","requestAnimationFrame","main","unobserve","useEffect","calculateAssetGalleryAspectRatio","calculateLayout","calculateVisibility","calculateAspectRatio","assetsWithoutAKey","filter","a","key","length","console","warn","row","translateX","translateY","computedAssets","lastGroup","desiredAssetCountInRow","Math","floor","desiredAssetWidth","asset","index","group","push","title","layout","type","height","round","rowAsset","rowAspectRatio","max","totalDesiredWidthOfImages","rowHeight","assetWidth","hasHeightAndWidth","Boolean","totalGalleryHeight","lastAsset","throttledOnScroll","onScroll","addEventListener","removeEventListener","setScrollPositionAndDirection","newYOffset","bufferTop","bufferBottom","containerOffset","getOffsetTop","scrollerHeight","innerHeight","yOffset","minTranslateYPlusHeight","maxTranslateY","finalizedAssets","map","self","show","elem","offsetTop","isNaN","offsetParent","handleKeyPress","useCallback","e","isElementVisible","el","rect","getBoundingClientRect","vWidth","innerWidth","document","documentElement","clientWidth","vHeight","clientHeight","efp","x","y","elementFromPoint","right","bottom","left","top","contains","softSelectFirstVisibleAsset","visibleAssets","i","children","previousAssetIndex","findIndex","previousAsset","nextAssetIndex","nextAsset","includes","handleClick","createElement","Fragment","S","_extends","ref","style","className","transform","display","justifyContent","AssetGalleryGridCard","selected","extendedSelectMode","softSelected","AssetGalleryCompactCard","collapseExtraInfo","propTypes","process","env","NODE_ENV","PropTypes","arrayOf","shape","assetShape","bool","string","oneOf","number","oneOfType","isRequired","instanceOf","Element","func"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetGalleryBase.js","sources":["../../../../src/components/widgets/AssetGallery/AssetGalleryBase/AssetGalleryBase.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { throttle } from 'lodash';\nimport PropTypes from 'prop-types';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { assetShape } from '../asset.propType';\nimport useIsomorphicLayoutEffect from './../../../../hooks/useIsomorphicLayoutEffect';\nimport * as S from './AssetGalleryBase.styled';\nimport AssetGalleryCompactCard from './AssetGalleryCompactCard/AssetGalleryCompactCard';\nimport AssetGalleryGridCard from './AssetGalleryGridCard/AssetGalleryGridCard';\n\nconst AssetGalleryBase = React.forwardRef(function AssetGalleryBase(\n {\n assets: assetsProp,\n activeSummaryCard,\n displayIcon,\n viewMode,\n thumbnailMaxHeight,\n selectable,\n customSelectedBorder,\n selectedAssetKeys,\n onAssetSelected,\n onAssetUnselected,\n softSelectable,\n softSelectedAssetKey,\n scrollElement: scrollElementProp,\n onAssetSoftSelectedChanged,\n component,\n ...props\n },\n forwardedRef\n) {\n // Combine forwarded ref and the local ref\n const assetGalleryDOMNode = useRef();\n const assetGalleryCompactRef = useMergedRefs(forwardedRef, assetGalleryDOMNode);\n\n const assetGalleryWidth = useRef(0);\n const minimumRowAspectRatio = useRef(0);\n\n // Calculated assets\n const calculatedAssets = useRef([]);\n const [assets, setAssets] = useState([]);\n\n // Constants\n const MAXIMUM_ROW_HEIGHT = useMemo(\n () => (viewMode === 'grid' ? 450 : thumbnailMaxHeight),\n [viewMode, thumbnailMaxHeight]\n );\n const SPACE_BETWEEN_ASSETS = 8;\n const SPACE_UNDER_ASSETS = 8;\n const PRIMARY_SCROLL_BUFFER_HEIGHT = 1500;\n const SECONDARY_SCROLL_BUFFER_HEIGHT = 500;\n const GRID_VIEW_MODE_ASSET_MIN_WIDTH = 300;\n const GRID_VIEW_MODE_ASSET_HEIGHT = 474;\n const GRID_VIEW_MODE_INSTRUCTION_EXTRA_HEIGHT = 40;\n const MISSING_WIDTH_PLACEHOLDER = 1920;\n const MISSING_HEIGHT_PLACEHOLDER = 1080;\n\n const isBrowser = typeof window !== 'undefined';\n\n const scrollElement = scrollElementProp || window;\n\n // Scroll position and direction\n const previousYOffset = useRef(isBrowser ? scrollElement.pageYOffset : 0);\n const latestYOffset = useRef(isBrowser ? scrollElement.pageYOffset : 0);\n const scrollDirection = useRef('down');\n\n // Track resize changes and set the current Asset Gallery width\n useIsomorphicLayoutEffect(() => {\n if (!assetGalleryDOMNode.current) return;\n\n const throttledOnResize = throttle(onResize, 1);\n\n const resizeObserver = new ResizeObserver(throttledOnResize);\n\n resizeObserver.observe(assetGalleryDOMNode.current);\n\n function onResize(entries) {\n entries.forEach(entry => {\n // setAssetGalleryWidth(entry.contentRect.width);\n if (assetGalleryWidth.current === entry.contentRect.width) return;\n window.requestAnimationFrame(() => {\n assetGalleryWidth.current = entry.contentRect.width;\n main();\n });\n });\n }\n\n return () => {\n resizeObserver.unobserve(assetGalleryDOMNode.current);\n };\n }, [assetsProp, assetGalleryDOMNode, MAXIMUM_ROW_HEIGHT]);\n\n //Re calculate Asset Gallery when something changes `MAXIMUM_ROW_HEIGHT` or `assetsProp` changes\n useEffect(() => {\n main();\n }, [MAXIMUM_ROW_HEIGHT, assetsProp]);\n\n const main = () => {\n calculateAssetGalleryAspectRatio();\n calculateLayout();\n calculateVisibility();\n };\n\n const calculateAssetGalleryAspectRatio = () => {\n // We don't care to compute the aspect ratio if the width of the gallery is 0\n if (assetGalleryWidth.current > 0) {\n minimumRowAspectRatio.current = calculateAspectRatio(\n assetGalleryWidth.current,\n MAXIMUM_ROW_HEIGHT\n );\n }\n };\n\n // Calculate asset gallery layout\n const calculateLayout = () => {\n // Check for required attributes and omit assets that are missing the attribute\n const assetsWithoutAKey = assetsProp.filter(a => !a.key);\n if (assetsWithoutAKey.length > 0) {\n assetsProp = assetsProp.filter(a => a.key);\n assetsWithoutAKey.forEach(a =>\n console.warn(\n 'Omitted asset from the gallery because it was missing the unique `key` property.',\n a\n )\n );\n }\n\n if (viewMode === 'grid' && assetGalleryWidth.current > 0) {\n // State\n let row = []; // The list of images in the current row.\n let translateX = 0; // The current translateX value that we are at\n let translateY = 0; // The current translateY value that we are at\n const computedAssets = [];\n let lastGroup = null; // The last group that was created\n\n // Calculate how many assets we can put in a row before violating `ASSET_MIN_WIDTH`\n // but we always want minimum of 1 asset in a row\n const desiredAssetCountInRow =\n Math.floor(assetGalleryWidth.current / GRID_VIEW_MODE_ASSET_MIN_WIDTH) || 1;\n\n // Calculate the width of each asset in a row\n const desiredAssetWidth =\n assetGalleryWidth.current / desiredAssetCountInRow -\n SPACE_BETWEEN_ASSETS +\n SPACE_BETWEEN_ASSETS / desiredAssetCountInRow;\n\n assetsProp.forEach((asset, index) => {\n // Create a group label\n if (asset.group && asset.group !== lastGroup) {\n computedAssets.push({\n title: asset.group,\n key: asset.key,\n layout: {\n type: 'groupLabel',\n height: 50,\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n lastGroup = asset.group;\n translateY += 50 + SPACE_UNDER_ASSETS;\n }\n\n row.push(asset);\n\n if (\n row.length === desiredAssetCountInRow ||\n index + 1 === assetsProp.length ||\n (assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group)\n ) {\n const rowHasInstructions = row.some(a => a.imageRights);\n const rowHeight = rowHasInstructions\n ? GRID_VIEW_MODE_ASSET_HEIGHT + GRID_VIEW_MODE_INSTRUCTION_EXTRA_HEIGHT\n : GRID_VIEW_MODE_ASSET_HEIGHT;\n\n row.forEach(rowAsset => {\n computedAssets.push({\n ...rowAsset,\n layout: {\n type: 'asset', // Indicates that this is an asset and not a group label\n width: Math.round(desiredAssetWidth),\n height: Math.round(rowHeight),\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n\n translateX += desiredAssetWidth + SPACE_BETWEEN_ASSETS;\n });\n\n row = [];\n translateX = 0;\n translateY += rowHeight + SPACE_UNDER_ASSETS;\n }\n });\n\n calculatedAssets.current = computedAssets;\n } else {\n if (minimumRowAspectRatio.current > 0) {\n // State\n let row = []; // The list of images in the current row.\n let translateX = 0; // The current translateX value that we are at\n let translateY = 0; // The current translateY value that we are at\n let rowAspectRatio = 0; // The aspect ratio of the row we are building\n let lastGroup = null; // The last group that was created\n\n const computedAssets = [];\n\n // Loop through all our images, building them up into rows and computing\n // the working rowAspectRatio.\n assetsProp.forEach((asset, index) => {\n // Create a group label\n if (asset.group && asset.group !== lastGroup) {\n computedAssets.push({\n title: asset.group,\n key: asset.key,\n layout: {\n type: 'groupLabel',\n height: 50,\n translateX: Math.round(translateX),\n translateY: Math.round(translateY)\n }\n });\n lastGroup = asset.group;\n translateY += 50 + SPACE_UNDER_ASSETS;\n }\n\n rowAspectRatio += calculateAspectRatio(\n asset.width || MISSING_WIDTH_PLACEHOLDER,\n asset.height || MISSING_HEIGHT_PLACEHOLDER\n );\n\n row.push(asset);\n\n // End the row if any of the conditions match\n if (\n rowAspectRatio >= minimumRowAspectRatio.current ||\n index + 1 === assetsProp.length ||\n (assetsProp[index + 1]?.group && assetsProp[index + 1].group !== asset.group)\n ) {\n // Make sure that the last row also has a reasonable height\n rowAspectRatio = Math.max(rowAspectRatio, minimumRowAspectRatio.current);\n\n // Compute this row's height.\n const totalDesiredWidthOfImages =\n assetGalleryWidth.current - SPACE_BETWEEN_ASSETS * (row.length - 1);\n const rowHeight = totalDesiredWidthOfImages / rowAspectRatio;\n\n row.forEach(rowAsset => {\n const assetWidth =\n rowHeight *\n calculateAspectRatio(\n rowAsset.width || MISSING_WIDTH_PLACEHOLDER,\n rowAsset.height || MISSING_HEIGHT_PLACEHOLDER\n );\n\n computedAssets.push({\n ...rowAsset,\n layout: {\n type: 'asset', // Indicates that this is an asset an not a group label\n width: Math.round(assetWidth),\n height: Math.round(rowHeight),\n translateX: Math.round(translateX),\n translateY: Math.round(translateY),\n hasHeightAndWidth: Boolean(rowAsset.width && rowAsset.height)\n }\n });\n\n // The next image is `SPACE_BETWEEN_ASSETS` pixels to the right of this image.\n translateX += assetWidth + SPACE_BETWEEN_ASSETS;\n });\n\n // Reset our state variables for next row.\n row = [];\n rowAspectRatio = 0;\n translateY += rowHeight + SPACE_UNDER_ASSETS;\n translateX = 0;\n }\n });\n\n calculatedAssets.current = computedAssets;\n }\n }\n };\n\n // Utility function to calculate the aspect ratio of a width and height\n function calculateAspectRatio(width, height) {\n return width / height;\n }\n\n // Calculate the total height of the gallery\n const totalGalleryHeight = useMemo(() => {\n if (assets.length === 0) {\n return 0;\n }\n\n const lastAsset = assets[assets.length - 1];\n\n if (assets.length < 8) {\n return (lastAsset.layout.translateY + lastAsset.layout.height) * 2;\n }\n\n return lastAsset.layout.translateY + lastAsset.layout.height;\n }, [assets]);\n\n useEffect(() => {\n const throttledOnScroll = throttle(onScroll, 200);\n\n scrollElement.addEventListener('scroll', throttledOnScroll, false);\n return () => scrollElement.removeEventListener('scroll', throttledOnScroll, false);\n }, [assetGalleryDOMNode, calculatedAssets]);\n\n function onScroll() {\n setScrollPositionAndDirection();\n calculateVisibility();\n }\n\n function setScrollPositionAndDirection() {\n const newYOffset = scrollElement.pageYOffset;\n previousYOffset.current = latestYOffset.current;\n latestYOffset.current = newYOffset;\n scrollDirection.current = latestYOffset.current > previousYOffset.current ? 'down' : 'up';\n }\n\n /**\n * +---------------------------+\n * | |\n * | |\n * | |\n * | |\n * + - - - - - - - - - - - - - + -------\n * | | A\n * | Secondary Buffer | SECONDARY_SCROLL_BUFFER_HEIGHT\n * | | V\n * +---------------------------+ -------\n * | | A\n * | | |\n * | | |\n * | Viewport | window.innerHeight\n * | | |\n * | | |\n * | | V\n * +---------------------------+ -------\n * | | A\n * | | |\n * | | |\n * | | |\n * | Primary Buffer | PRIMARY_SCROLL_BUFFER_HEIGHT\n * | | |\n * | | |\n * | | |\n * | | V\n * + - - - - - - - - - - - - - + -------\n * | |\n * | (Scroll direction) |\n * | | |\n * | | |\n * | V |\n * | |\n *\n */\n\n const calculateVisibility = () => {\n if (!assetGalleryDOMNode.current) return;\n\n // Get the top and bottom buffers heights.\n const bufferTop =\n scrollDirection.current === 'up'\n ? PRIMARY_SCROLL_BUFFER_HEIGHT\n : SECONDARY_SCROLL_BUFFER_HEIGHT;\n\n const bufferBottom =\n scrollDirection.current === 'up'\n ? SECONDARY_SCROLL_BUFFER_HEIGHT\n : PRIMARY_SCROLL_BUFFER_HEIGHT;\n\n const containerOffset = getOffsetTop(assetGalleryDOMNode.current);\n const scrollerHeight = scrollElement.innerHeight;\n\n const yOffset = latestYOffset.current;\n\n // This is the top of the top buffer. If the bottom of an image is above\n // this line, it will be removed.\n const minTranslateYPlusHeight = yOffset - containerOffset - bufferTop;\n\n // This is the bottom of the bottom buffer. If the top of an image is\n // below this line, it will be removed.\n const maxTranslateY = yOffset - containerOffset + scrollerHeight + bufferBottom;\n\n const finalizedAssets = calculatedAssets.current.map(asset => {\n if (\n scrollElement.self == window &&\n (asset.layout.translateY + asset.layout.height < minTranslateYPlusHeight ||\n asset.layout.translateY > maxTranslateY)\n ) {\n // Hide Image\n asset.layout.show = false;\n } else {\n // Show Image\n asset.layout.show = true;\n }\n\n return asset;\n });\n\n setAssets(finalizedAssets);\n };\n\n // Utility function that returns the distance from `elem` to the top of the page.\n // This is done by walking up the node tree, getting the offsetTop of each\n // parent node, until the top of the page.\n function getOffsetTop(elem) {\n let offsetTop = 0;\n do {\n if (!isNaN(elem.offsetTop)) {\n offsetTop += elem.offsetTop;\n }\n elem = elem.offsetParent;\n } while (elem);\n return offsetTop;\n }\n\n const handleKeyPress = useCallback(\n e => {\n function isElementVisible(el) {\n const rect = el.getBoundingClientRect(),\n vWidth = scrollElement.innerWidth || document.documentElement.clientWidth,\n vHeight = scrollElement.innerHeight || document.documentElement.clientHeight,\n efp = function (x, y) {\n return document.elementFromPoint(x, y);\n };\n\n // Return false if it's not in the viewport\n if (rect.right < 0 || rect.bottom < 0 || rect.left > vWidth || rect.top > vHeight)\n return false;\n\n // Return true if any of its four corners are visible\n return (\n el.contains(efp(rect.left, rect.top)) ||\n el.contains(efp(rect.right, rect.top)) ||\n el.contains(efp(rect.right, rect.bottom)) ||\n el.contains(efp(rect.left, rect.bottom))\n );\n }\n\n function softSelectFirstVisibleAsset() {\n const visibleAssets = assets.filter(asset => asset.layout.show);\n\n for (let i = 0; i < assetGalleryDOMNode.current.children.length; i++) {\n if (isElementVisible(assetGalleryDOMNode.current.children[i])) {\n onAssetSoftSelectedChanged(visibleAssets[i].key);\n break;\n }\n }\n }\n\n if (assets.length === 0) return;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n if (softSelectedAssetKey === null) {\n softSelectFirstVisibleAsset();\n\n return;\n }\n }\n\n if (e.key === 'ArrowLeft') {\n const previousAssetIndex =\n assets.findIndex(asset => asset.key === softSelectedAssetKey) - 1;\n\n const previousAsset = assets[previousAssetIndex];\n\n if (previousAsset) {\n if (previousAsset.layout.show) {\n onAssetSoftSelectedChanged(previousAsset.key);\n } else {\n softSelectFirstVisibleAsset();\n }\n }\n\n return;\n }\n\n if (e.key === 'ArrowRight') {\n const nextAssetIndex = assets.findIndex(asset => asset.key === softSelectedAssetKey) + 1;\n\n const nextAsset = assets[nextAssetIndex];\n\n if (nextAsset) {\n if (nextAsset.layout.show) {\n onAssetSoftSelectedChanged(nextAsset.key);\n } else {\n softSelectFirstVisibleAsset();\n }\n }\n\n return;\n }\n\n if (e.key === 'Enter') {\n if (softSelectedAssetKey === null) return;\n\n if (selectedAssetKeys.includes(softSelectedAssetKey)) {\n onAssetUnselected(softSelectedAssetKey);\n } else {\n onAssetSelected(softSelectedAssetKey);\n }\n }\n },\n [\n assets,\n softSelectedAssetKey,\n onAssetSoftSelectedChanged,\n selectedAssetKeys,\n assetGalleryCompactRef\n ]\n );\n\n const handleClick = useCallback(() => {\n onAssetSoftSelectedChanged(null);\n }, []);\n\n // Add event listeners for keyboard navigation (soft select)\n useEffect(() => {\n if (softSelectable) {\n document.addEventListener('keydown', handleKeyPress);\n }\n\n return () => document.removeEventListener('keydown', handleKeyPress);\n }, [softSelectable, handleKeyPress]);\n\n useEffect(() => {\n if (softSelectable && softSelectedAssetKey !== null) {\n document.addEventListener('click', handleClick, true);\n }\n\n return () => document.removeEventListener('click', handleClick, true);\n }, [softSelectable, softSelectedAssetKey, handleClick]);\n\n return (\n <>\n <S.AssetGalleryBase\n ref={assetGalleryCompactRef}\n style={{ height: `${totalGalleryHeight}px` }}\n className={props.className}\n {...props}\n >\n {assets.map(\n asset =>\n asset.layout.show && (\n <React.Fragment key={`asset-gallery-${asset.layout.type}-${asset.key}`}>\n {asset.layout.type === 'groupLabel' && (\n <S.GroupLabel\n style={{\n transform: `translate3d(${asset.layout.translateX}px,${asset.layout.translateY}px, 0)`,\n height: `${asset.layout.height}px`\n }}\n >\n {asset.title}\n </S.GroupLabel>\n )}\n\n {asset.layout.type === 'asset' && (\n <S.AssetGalleryCardBase\n style={{\n transform: `translate3d(${asset.layout.translateX}px, ${asset.layout.translateY}px, 0)`,\n width: `${asset.layout.width}px`,\n height: `${asset.layout.height}px`,\n display: 'flex',\n justifyContent: 'center'\n }}\n >\n {viewMode === 'grid' ? (\n <AssetGalleryGridCard\n asset={asset}\n selectable={'selectable' in asset ? asset.selectable : selectable}\n selected={selectedAssetKeys.includes(asset.key)}\n customSelectedBorder={customSelectedBorder}\n extendedSelectMode={Boolean(selectedAssetKeys.length)}\n onAssetSelected={onAssetSelected}\n onAssetUnselected={onAssetUnselected}\n softSelected={softSelectedAssetKey === asset.key}\n component={component}\n />\n ) : (\n <AssetGalleryCompactCard\n asset={asset}\n activeSummaryCard={activeSummaryCard}\n displayIcon={displayIcon}\n hasHeightAndWidth={asset.layout.hasHeightAndWidth}\n collapseExtraInfo={asset.layout.width < 90}\n selectable={'selectable' in asset ? asset.selectable : selectable}\n selected={selectedAssetKeys.includes(asset.key)}\n customSelectedBorder={customSelectedBorder}\n extendedSelectMode={Boolean(selectedAssetKeys.length)}\n onAssetSelected={onAssetSelected}\n onAssetUnselected={onAssetUnselected}\n softSelected={softSelectedAssetKey === asset.key}\n component={component}\n />\n )}\n </S.AssetGalleryCardBase>\n )}\n </React.Fragment>\n )\n )}\n </S.AssetGalleryBase>\n </>\n );\n});\n\nAssetGalleryBase.propTypes = {\n /**\n * An array of assets to display in the gallery.\n */\n assets: PropTypes.arrayOf(PropTypes.shape(assetShape)),\n\n /**\n * Whether the asset gallery should render the Asset Summary Card on hover.\n */\n activeSummaryCard: PropTypes.bool,\n\n /**\n * Whether the asset gallery should display the Version Count or Verifications on default.\n */\n displayIcon: PropTypes.string,\n\n /**\n * The view mode of the gallery.\n */\n viewMode: PropTypes.oneOf(['compact', 'grid']),\n\n /**\n * The maximum height of thumbnails in the gallery. When the grid is computed the gallery will try\n * to have each row of the gallery as close to the max height as possible.\n */\n thumbnailMaxHeight: PropTypes.number,\n\n /**\n * Whether or not the asset gallery should have selectable asset cards\n */\n selectable: PropTypes.bool,\n\n /**\n * Whether or not the asset gallery should have custom borders on selected asset\n */\n customSelectedBorder: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * An array containing the key of all selected assets\n */\n selectedAssetKeys: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.number)\n ]).isRequired,\n\n /**\n * Scrollable element to attach event listeners to. Defaults to window.\n */\n scrollElement: PropTypes.instanceOf(Element),\n\n /**\n * The callback function when an asset is selected - returns the selected asset key\n */\n onAssetSelected: PropTypes.func.isRequired,\n\n /**\n * The callback function when an asset is unselected - returns the unselected asset key\n */\n onAssetUnselected: PropTypes.func.isRequired,\n\n /**\n * Whether or not the asset gallery should have soft selectable asset cards\n */\n softSelectable: PropTypes.bool,\n\n /**\n * A value containing the key of the soft selected asset or null\n */\n softSelectedAssetKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * The callback function when soft selected asset changes - returns the selected asset key or null\n */\n onAssetSoftSelectedChanged: PropTypes.func.isRequired,\n\n /**\n * A function that returns a custom component to use for the card in the gallery - The function provides\n * `asset` as its first argument\n */\n component: PropTypes.func,\n\n /**\n * Optional className\n */\n className: PropTypes.string\n};\n\nexport default AssetGalleryBase;\n"],"names":["AssetGalleryBase","React","forwardRef","assets","assetsProp","activeSummaryCard","displayIcon","viewMode","thumbnailMaxHeight","selectable","customSelectedBorder","selectedAssetKeys","onAssetSelected","onAssetUnselected","softSelectable","softSelectedAssetKey","scrollElement","scrollElementProp","onAssetSoftSelectedChanged","component","props","forwardedRef","assetGalleryDOMNode","useRef","assetGalleryCompactRef","useMergedRefs","assetGalleryWidth","minimumRowAspectRatio","calculatedAssets","setAssets","useState","MAXIMUM_ROW_HEIGHT","useMemo","SPACE_BETWEEN_ASSETS","SPACE_UNDER_ASSETS","PRIMARY_SCROLL_BUFFER_HEIGHT","SECONDARY_SCROLL_BUFFER_HEIGHT","GRID_VIEW_MODE_ASSET_MIN_WIDTH","GRID_VIEW_MODE_ASSET_HEIGHT","GRID_VIEW_MODE_INSTRUCTION_EXTRA_HEIGHT","MISSING_WIDTH_PLACEHOLDER","MISSING_HEIGHT_PLACEHOLDER","isBrowser","window","previousYOffset","pageYOffset","latestYOffset","scrollDirection","useIsomorphicLayoutEffect","current","throttledOnResize","throttle","onResize","resizeObserver","ResizeObserver","observe","entries","forEach","entry","contentRect","width","requestAnimationFrame","main","unobserve","useEffect","calculateAssetGalleryAspectRatio","calculateLayout","calculateVisibility","calculateAspectRatio","assetsWithoutAKey","filter","a","key","length","console","warn","row","translateX","translateY","computedAssets","lastGroup","desiredAssetCountInRow","Math","floor","desiredAssetWidth","asset","index","group","push","title","layout","type","height","round","rowHasInstructions","some","imageRights","rowHeight","rowAsset","rowAspectRatio","max","totalDesiredWidthOfImages","assetWidth","hasHeightAndWidth","Boolean","totalGalleryHeight","lastAsset","throttledOnScroll","onScroll","addEventListener","removeEventListener","setScrollPositionAndDirection","newYOffset","bufferTop","bufferBottom","containerOffset","getOffsetTop","scrollerHeight","innerHeight","yOffset","minTranslateYPlusHeight","maxTranslateY","finalizedAssets","map","self","show","elem","offsetTop","isNaN","offsetParent","handleKeyPress","useCallback","e","isElementVisible","el","rect","getBoundingClientRect","vWidth","innerWidth","document","documentElement","clientWidth","vHeight","clientHeight","efp","x","y","elementFromPoint","right","bottom","left","top","contains","softSelectFirstVisibleAsset","visibleAssets","i","children","previousAssetIndex","findIndex","previousAsset","nextAssetIndex","nextAsset","includes","handleClick","createElement","Fragment","S","_extends","ref","style","className","transform","display","justifyContent","AssetGalleryGridCard","selected","extendedSelectMode","softSelected","AssetGalleryCompactCard","collapseExtraInfo","propTypes","process","env","NODE_ENV","PropTypes","arrayOf","shape","assetShape","bool","string","oneOf","number","oneOfType","isRequired","instanceOf","Element","func"],"mappings":"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"}
|
|
@@ -307,7 +307,7 @@ const AssetGalleryCompactCard = props => {
|
|
|
307
307
|
title: asset?.title || '',
|
|
308
308
|
description: asset?.description || '',
|
|
309
309
|
instructions: asset?.imageRights || '',
|
|
310
|
-
|
|
310
|
+
instructionSeverity: asset?.instructionSeverity,
|
|
311
311
|
headerRight: asset?.summary?.headerRight || '',
|
|
312
312
|
headerLeft: React__default.createElement(React__default.Fragment, null, renderSummaryCardHeaderLeft(), asset?.summary?.headerLeft || ''),
|
|
313
313
|
footerLeft: asset?.summary?.footerLeft || '',
|
|
@@ -345,9 +345,9 @@ const AssetGalleryCompactCard = props => {
|
|
|
345
345
|
}), (asset?.statusIcon || asset?.actions) && React__default.createElement(OverlayInfoTopActions, null, asset.statusIcon && React__default.createElement(StatusIcon, null, asset.statusIcon), asset?.actions && React__default.createElement(React__default.Fragment, null, React__default.createElement(VisibleOnHover, null, React__default.createElement(AssetActionsBase, {
|
|
346
346
|
actions: asset.actions,
|
|
347
347
|
asset: asset
|
|
348
|
-
})))), React__default.createElement(OverlayInfo, null, isOverlayHovered && React__default.createElement("span", null, asset.title), React__default.createElement(OverlayInfoTop, null, React__default.createElement(OverlayInfoTopLeft, {
|
|
348
|
+
})))), React__default.createElement(OverlayInfo, null, isOverlayHovered && !activeSummaryCard && React__default.createElement("span", null, asset.title), React__default.createElement(OverlayInfoTop, null, React__default.createElement(OverlayInfoTopLeft, {
|
|
349
349
|
$collapseExtraInfo: collapseExtraInfo
|
|
350
|
-
}, renderBadge()), asset?.note?.title && React__default.createElement(OverlayInfoTopWarning, {
|
|
350
|
+
}, renderBadge()), asset?.note?.title && !asset.statusIcon && React__default.createElement(OverlayInfoTopWarning, {
|
|
351
351
|
type: asset?.note?.type
|
|
352
352
|
}, React__default.createElement(SvgWarningCircle, null))), React__default.createElement(OverlayInfoBottom, null, selectable && React__default.createElement(OverlayInfoBottomSelectButton, {
|
|
353
353
|
selected: selected
|
|
@@ -402,7 +402,7 @@ AssetGalleryCompactCard.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
402
402
|
displayIcon: PropTypes.oneOf(['dynamic', 'versions', 'verifications', ''])
|
|
403
403
|
} : {};
|
|
404
404
|
var AssetGalleryCompactCard$1 = trackWindowScroll(React__default.memo(AssetGalleryCompactCard, (prevProps, nextProps) => {
|
|
405
|
-
const reactiveProps = ['selectable', 'selected', 'extendedSelectMode', 'softSelected', 'asset.previewUrl', 'asset.overlay', 'asset.statusIcon', 'hasHeightAndWidth', 'collapseExtraInfo'];
|
|
405
|
+
const reactiveProps = ['selectable', 'selected', 'extendedSelectMode', 'softSelected', 'asset.previewUrl', 'asset.overlay', 'asset.statusIcon', 'hasHeightAndWidth', 'collapseExtraInfo', 'asset.imageRights', 'asset.instructionSeverity', 'asset.description', 'asset.title'];
|
|
406
406
|
return reactiveProps.every(propKey => get(prevProps, propKey) === get(nextProps, propKey));
|
|
407
407
|
}));
|
|
408
408
|
|