/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import './docView.scss'; import React from 'react'; import { EuiButton, EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiFlyoutBody, EuiFlyoutHeader, EuiTitle, EuiToolTip, } from '@elastic/eui'; import moment from 'moment'; import { FlyoutContainers } from '../../../common/flyout_containers'; import { IDocType } from './docViewRow'; import { DocViewer } from './docViewer'; import { uiSettingsService } from '../../../../../common/utils'; import { IExplorerFields } from '../../../../../common/types/explorer'; import { getHeaders, populateDataGrid } from '../../utils'; import { DEFAULT_COLUMNS } from '../../../../../common/constants/explorer'; import { HttpSetup } from '../../../../../../../src/core/public'; import { PPL_STATS_REGEX } from '../../../../../common/constants/shared'; interface Props { http: HttpSetup; detailsOpen: boolean; setDetailsOpen: React.Dispatch>; doc: IDocType; timeStampField: string; memorizedTds: JSX.Element[]; explorerFields: IExplorerFields; openTraces: boolean; rawQuery: string; toggleSize: boolean; setToggleSize: React.Dispatch>; setOpenTraces: React.Dispatch>; setSurroundingEventsOpen: React.Dispatch>; } export const DocFlyout = ({ http, detailsOpen, setDetailsOpen, doc, timeStampField, memorizedTds, explorerFields, openTraces, rawQuery, toggleSize, setToggleSize, setOpenTraces, setSurroundingEventsOpen, }: Props) => { const closeFlyout = () => { setDetailsOpen(false); setOpenTraces(false); }; const openSurroundingFlyout = () => { setSurroundingEventsOpen(true); closeFlyout(); }; const flyoutHeader = (

{doc.hasOwnProperty(timeStampField) ? `Event: ${moment(doc[timeStampField]).format( uiSettingsService.get('dateFormat') )}` : `Event Details`}

{ setToggleSize((isOn) => !isOn); }} /> Cannot view surrounding events with `stats` command in PPL query

) : !doc.hasOwnProperty(timeStampField) ? (

Cannot view surrounding events without time field in query response

) : (

View surrounding events based on timestamp

) } > View surrounding events
); const flyoutBody = (
{populateDataGrid( explorerFields, getHeaders(explorerFields.queriedFields, DEFAULT_COLUMNS.slice(1), true), {memorizedTds}, getHeaders(explorerFields.selectedFields, DEFAULT_COLUMNS.slice(1), true), {memorizedTds} )}
); const flyoutFooter = <>; return ( ); };