in public/pages/CreateRollup/components/HistogramAndMetrics/HistogramAndMetrics.tsx [133:266]
render() {
const {
onChangeStep,
intervalType,
intervalValue,
timestamp,
timezone,
timeunit,
selectedDimensionField,
selectedMetrics,
} = this.props;
const {
from,
size,
sortDirection,
sortField,
metricsShown,
dimensionFrom,
dimensionSize,
dimensionSortDirection,
dimensionSortField,
dimensionsShown,
} = this.state;
const page = Math.floor(from / size);
const dimensionPage = Math.floor(dimensionFrom / dimensionSize);
const pagination: Pagination = {
pageIndex: page,
pageSize: size,
pageSizeOptions: DEFAULT_PAGE_SIZE_OPTIONS,
totalItemCount: selectedMetrics.length,
};
const sorting: EuiTableSortingType<MetricItem> = {
sort: {
direction: sortDirection,
field: sortField,
},
};
const dimensionPagination: Pagination = {
pageIndex: dimensionPage,
pageSize: dimensionSize,
pageSizeOptions: DEFAULT_PAGE_SIZE_OPTIONS,
totalItemCount: selectedDimensionField.length,
};
const dimensionSorting: EuiTableSortingType<DimensionItem> = {
sort: {
direction: dimensionSortDirection,
field: dimensionSortField,
},
};
return (
<ContentPanel
actions={
<ModalConsumer>
{() => (
<ContentPanelActions
actions={[
{
text: "Edit",
buttonProps: {
onClick: () => onChangeStep(2),
},
},
]}
/>
)}
</ModalConsumer>
}
bodyStyles={{ padding: "initial" }}
title={AGGREGATION_AND_METRIC_SETTINGS}
titleSize="m"
>
<div style={{ padding: "15px" }}>
<EuiSpacer size="xs" />
<EuiText>
<h3>Time aggregation</h3>
</EuiText>
<EuiSpacer size="s" />
<EuiFlexGrid columns={3}>
<EuiFlexItem>
<EuiText size="xs">
<dt>Timestamp field</dt>
<dd>{timestamp.length ? timestamp[0].label : ""}</dd>
</EuiText>
</EuiFlexItem>
<EuiFlexItem>
<EuiText size="xs">
<dt>Interval</dt>
<dd>{this.parseInterval(intervalType, intervalValue, timeunit)}</dd>
</EuiText>
</EuiFlexItem>
<EuiFlexItem>
<EuiText size="xs">
<dt>Timezone</dt>
<dd>{timezone}</dd>
</EuiText>
</EuiFlexItem>
</EuiFlexGrid>
<EuiSpacer size="m" />
<EuiFlexGroup gutterSize="xs">
<EuiFlexItem grow={false}>
<EuiText>
<h3>Additional aggregations</h3>
</EuiText>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiText color="subdued" textAlign="left">
<h3>{`(${selectedDimensionField.length})`}</h3>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
{sequenceTableComponents(
selectedDimensionField,
dimensionsShown,
aggregationColumns,
dimensionPagination,
dimensionSorting,
this.onDimensionTableChange
)}
<EuiSpacer size="m" />
<EuiSpacer />
{additionalMetricsComponent(selectedMetrics)}
{sourceFieldComponents(selectedMetrics, this.parseMetric(metricsShown), metricsColumns, pagination, sorting, this.onTableChange)}
<EuiSpacer size="s" />
</div>
</ContentPanel>
);
}