/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React, { Fragment } from "react"; import { EuiFlexItem, EuiText, EuiBasicTable, EuiTableFieldDataColumnType, EuiPanel, EuiFlexGroup, EuiIcon } from "@elastic/eui"; import { DimensionItem, MetricItem } from "../../../models/interfaces"; export const AGGREGATION_AND_METRIC_SETTINGS = "Aggregation and metrics settings"; export interface BaseAggregationAndMetricsState { from: number; size: number; sortField: string; sortDirection: string; dimensionFrom: number; dimensionSize: number; dimensionSortField: string; dimensionSortDirection: string; } export const BaseAggregationColumns: Readonly>[] = [ { field: "sequence", name: "Sequence", sortable: true, align: "left", dataType: "number", }, { field: "field.label", name: "Field name", align: "left", }, { field: "aggregationMethod", name: "Aggregation method", align: "left", }, { field: "interval", name: "Interval", dataType: "number", align: "left", render: (interval: null | number) => { if (interval == null) return "-"; else return `${interval}`; }, }, ]; export const BaseMetricsColumns: Readonly>[] = [ { field: "source_field", name: "Field Name", }, { field: "min", name: "Min", align: "center", render: (min: boolean) => min && , }, { field: "max", name: "Max", align: "center", render: (max: boolean) => max && , }, { field: "sum", name: "Sum", align: "center", render: (sum: boolean) => sum && , }, { field: "avg", name: "Avg", align: "center", render: (avg: boolean) => avg && , }, { field: "value_count", name: "Value count", align: "center", render: (value_count: boolean) => value_count && , }, ]; export function sequenceTableComponents(selectedDimensionField, items, columns, pagination, sorting, onChange) { if (selectedDimensionField.length == 0) { return (
No fields added for aggregation
); } return ( ); } export function additionalMetricsComponent(selectedMetrics) { return (

Additional metrics

{`(${selectedMetrics.length})`}

); } export function sourceFieldComponents(selectedMetrics, items, columns, pagination, sorting, onChange) { if (selectedMetrics.length == 0) { return (
No fields added for metrics
); } return ( ); }