/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React, { useState, ReactChildren, ReactChild } from 'react'; import { EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiButtonEmpty, EuiPopover, EuiSwitch, EuiIcon, } from '@elastic/eui'; // theme import { uiSettingsService } from '../../../../../common/utils'; // constants import { GRID_HEADER_COLUMN_MAX_WIDTH, ROW_DENSITIES, } from '../../../../../common/constants/explorer'; export interface RowConfigType { icon: string; height: number; selected: boolean; } export const CustomOverlay = ({ children, }: { children: ReactChild | ReactChild[] | ReactChildren | ReactChildren[]; }) => { return (
{children}
); }; export const GridHeader = ({ isFullScreen, setIsFullScreenHandler, selectedRowDensity, selectDensityHandler, columnVisiblityHandler, columns, columnVisibility, }: { isFullScreen: boolean; setIsFullScreenHandler: (v: boolean) => void; selectedRowDensity: any; selectDensityHandler: (v: RowConfigType) => void; columnVisiblityHandler: (visible: boolean, field: string) => void; columns: any; columnVisibility: any; }) => { return ( setIsFullScreenHandler(true)} > Full screen {isFullScreen && ( setIsFullScreenHandler(false)} style={{ position: 'absolute', right: 20, cursor: 'pointer', top: 20 }} /> )} ); }; export const DensityPopover = ({ selectDensityHandler, selectedDensity, }: { selectedDensity: any; selectDensityHandler: (data: RowConfigType) => void; }) => { const [isPopoverOpen, setIsPopoverOpen] = useState(false); const onButtonClick = () => setIsPopoverOpen((isPopoverOpen) => !isPopoverOpen); const closePopover = () => setIsPopoverOpen(false); const button = ( Density ); return ( {ROW_DENSITIES.map((i: RowConfigType, index: number) => ( selectDensityHandler(i)} display={selectedDensity.icon === i.icon ? 'fill' : 'base'} iconType={i.icon} aria-label="Next" /> ))} ); }; export const ColumnVisiblityPopover = ({ columnVisibility, columns, columnVisiblityHandler, }: { columns: any; columnVisibility: any; columnVisiblityHandler: (visible: boolean, field: string) => void; }) => { const [isPopoverOpen, setIsPopoverOpen] = useState(false); const onButtonClick = () => setIsPopoverOpen((isPopoverOpen) => !isPopoverOpen); const closePopover = () => setIsPopoverOpen(false); const button = ( Columns ); return ( {columns.map((i: any, index: number) => { return ( { columnVisiblityHandler(e.target.checked, i.field); }} compressed /> ); })} ); };