@@ -35,6 +35,7 @@ import {
3535 findReferenceLink ,
3636} from '@kbn/cloud-security-posture' ;
3737import { getVendorName } from '@kbn/cloud-security-posture/src/utils/get_vendor_name' ;
38+ import { get } from 'lodash/fp' ;
3839import { CspFlyoutMarkdown } from '../../configurations/findings_flyout/findings_flyout' ;
3940import { NvdLogo } from '../../../assets/icons/nvd_logo_svg' ;
4041import { CVSScoreProps , Vendor } from '../types' ;
@@ -247,6 +248,24 @@ export const VulnerabilityOverviewTab = ({ vulnerabilityRecord }: VulnerabilityT
247248 </ EuiFlexGroup >
248249 ) ;
249250
251+ const renderPackageField = ( field : string ) => {
252+ const value = get ( field , vulnerabilityRecord ) ;
253+ if ( ! value ) {
254+ return < EuiText size = "xs" > { EMPTY_VALUE } </ EuiText > ;
255+ }
256+
257+ return Array . isArray ( value ) ? (
258+ < MultiValueCellPopover < CspVulnerabilityFinding >
259+ items = { value }
260+ field = { `package.${ field } ` }
261+ object = { vulnerabilityRecord }
262+ renderItem = { renderItem }
263+ />
264+ ) : (
265+ value
266+ ) ;
267+ } ;
268+
250269 if ( ! vulnerabilityRecord ?. package ?. fixed_version ) {
251270 return < EuiText > { emptyFixesMessageState } </ EuiText > ;
252271 }
@@ -261,28 +280,55 @@ export const VulnerabilityOverviewTab = ({ vulnerabilityRecord }: VulnerabilityT
261280 ` }
262281 >
263282 < EuiFlexItem >
264- { Array . isArray ( vulnerabilityRecord . package ?. name ) ? (
265- < MultiValueCellPopover < CspVulnerabilityFinding >
266- items = { vulnerabilityRecord . package ?. name }
267- field = { 'package.name' }
268- object = { vulnerabilityRecord }
269- renderItem = { renderItem }
270- />
271- ) : (
272- vulnerabilityRecord . package ?. name
273- ) }
283+ < EuiFlexGroup
284+ responsive = { false }
285+ gutterSize = "xs"
286+ justifyContent = "flexStart"
287+ alignItems = "center"
288+ >
289+ < EuiFlexItem grow = { false } >
290+ < EuiText
291+ size = "xs"
292+ css = { css `
293+ font-weight : ${ euiTheme . font . weight . medium } ;
294+ ` }
295+ >
296+ < FormattedMessage
297+ id = "xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.packageTitle"
298+ defaultMessage = "Package"
299+ />
300+ :
301+ </ EuiText >
302+ </ EuiFlexItem >
303+ < EuiFlexItem grow = { false } > { renderPackageField ( 'package.name' ) } </ EuiFlexItem >
304+ </ EuiFlexGroup >
274305 </ EuiFlexItem >
275306 < EuiFlexItem >
276- { Array . isArray ( vulnerabilityRecord . package ?. version ) ? (
277- < MultiValueCellPopover < CspVulnerabilityFinding >
278- items = { vulnerabilityRecord . package ?. version }
279- field = { 'package.version' }
280- object = { vulnerabilityRecord }
281- renderItem = { renderItem }
282- />
283- ) : (
284- vulnerabilityRecord . package ?. version
285- ) }
307+ < EuiFlexGroup
308+ responsive = { false }
309+ gutterSize = "xs"
310+ justifyContent = "flexStart"
311+ alignItems = "center"
312+ >
313+ < EuiFlexItem grow = { false } >
314+ < EuiText
315+ size = "xs"
316+ css = { css `
317+ font-weight : ${ euiTheme . font . weight . medium } ;
318+ ` }
319+ >
320+ < FormattedMessage
321+ css = { css `
322+ font-weight : ${ euiTheme . font . weight . medium } ;
323+ ` }
324+ id = "xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.fixedVersionTitle"
325+ defaultMessage = "Fixed version"
326+ />
327+ :
328+ </ EuiText >
329+ </ EuiFlexItem >
330+ < EuiFlexItem grow = { false } > { renderPackageField ( 'package.fixed_version' ) } </ EuiFlexItem >
331+ </ EuiFlexGroup >
286332 </ EuiFlexItem >
287333 </ EuiFlexGroup >
288334 ) ;
0 commit comments