[Lens] Add median operation (#79453)
This commit is contained in:
parent
949c5a55b2
commit
52b35f3504
|
@ -264,7 +264,11 @@ export function DimensionEditor(props: DimensionEditorProps) {
|
|||
<EuiListGroup
|
||||
className={sideNavItems.length > 3 ? 'lnsIndexPatternDimensionEditor__columns' : ''}
|
||||
gutterSize="none"
|
||||
listItems={sideNavItems}
|
||||
listItems={
|
||||
// add a padding item containing a non breakable space if the number of operations is not even
|
||||
// otherwise the column layout will break within an element
|
||||
sideNavItems.length % 2 === 1 ? [...sideNavItems, { label: '\u00a0' }] : sideNavItems
|
||||
}
|
||||
maxWidth={false}
|
||||
/>
|
||||
</div>
|
||||
|
|
|
@ -993,9 +993,11 @@ describe('IndexPatternDimensionEditorPanel', () => {
|
|||
'Average',
|
||||
'Count',
|
||||
'Maximum',
|
||||
'Median',
|
||||
'Minimum',
|
||||
'Sum',
|
||||
'Unique count',
|
||||
'\u00a0',
|
||||
]);
|
||||
});
|
||||
|
||||
|
|
|
@ -18,6 +18,8 @@ import {
|
|||
SumIndexPatternColumn,
|
||||
maxOperation,
|
||||
MaxIndexPatternColumn,
|
||||
medianOperation,
|
||||
MedianIndexPatternColumn,
|
||||
} from './metrics';
|
||||
import { dateHistogramOperation, DateHistogramIndexPatternColumn } from './date_histogram';
|
||||
import { countOperation, CountIndexPatternColumn } from './count';
|
||||
|
@ -43,6 +45,7 @@ export type IndexPatternColumn =
|
|||
| AvgIndexPatternColumn
|
||||
| CardinalityIndexPatternColumn
|
||||
| SumIndexPatternColumn
|
||||
| MedianIndexPatternColumn
|
||||
| CountIndexPatternColumn;
|
||||
|
||||
export type FieldBasedIndexPatternColumn = Extract<IndexPatternColumn, { sourceField: string }>;
|
||||
|
@ -59,6 +62,7 @@ const internalOperationDefinitions = [
|
|||
averageOperation,
|
||||
cardinalityOperation,
|
||||
sumOperation,
|
||||
medianOperation,
|
||||
countOperation,
|
||||
rangeOperation,
|
||||
];
|
||||
|
|
|
@ -87,6 +87,7 @@ export type SumIndexPatternColumn = MetricColumn<'sum'>;
|
|||
export type AvgIndexPatternColumn = MetricColumn<'avg'>;
|
||||
export type MinIndexPatternColumn = MetricColumn<'min'>;
|
||||
export type MaxIndexPatternColumn = MetricColumn<'max'>;
|
||||
export type MedianIndexPatternColumn = MetricColumn<'median'>;
|
||||
|
||||
export const minOperation = buildMetricOperation<MinIndexPatternColumn>({
|
||||
type: 'min',
|
||||
|
@ -137,3 +138,15 @@ export const sumOperation = buildMetricOperation<SumIndexPatternColumn>({
|
|||
values: { name },
|
||||
}),
|
||||
});
|
||||
|
||||
export const medianOperation = buildMetricOperation<MedianIndexPatternColumn>({
|
||||
type: 'median',
|
||||
displayName: i18n.translate('xpack.lens.indexPattern.median', {
|
||||
defaultMessage: 'Median',
|
||||
}),
|
||||
ofName: (name) =>
|
||||
i18n.translate('xpack.lens.indexPattern.medianOf', {
|
||||
defaultMessage: 'Median of {name}',
|
||||
values: { name },
|
||||
}),
|
||||
});
|
||||
|
|
|
@ -315,12 +315,12 @@ describe('getOperationTypesForField', () => {
|
|||
},
|
||||
Object {
|
||||
"field": "bytes",
|
||||
"operationType": "min",
|
||||
"operationType": "max",
|
||||
"type": "field",
|
||||
},
|
||||
Object {
|
||||
"field": "bytes",
|
||||
"operationType": "max",
|
||||
"operationType": "min",
|
||||
"type": "field",
|
||||
},
|
||||
Object {
|
||||
|
@ -338,6 +338,11 @@ describe('getOperationTypesForField', () => {
|
|||
"operationType": "cardinality",
|
||||
"type": "field",
|
||||
},
|
||||
Object {
|
||||
"field": "bytes",
|
||||
"operationType": "median",
|
||||
"type": "field",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
|
|
Loading…
Reference in a new issue