mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[ML] field data card translations (#27593)
[ML] translate field data card
This commit is contained in:
parent
20ed7d43b7
commit
ac99a2eb85
13 changed files with 261 additions and 67 deletions
|
@ -1,13 +1,23 @@
|
|||
<div ng-if="card.existsInDocs === true" class="card-contents">
|
||||
<div class="stats euiText">
|
||||
<div class="stat"><i class="fa fa-files-o" aria-hidden="true"></i>
|
||||
{{ card.stats.count }} <ng-pluralize count="card.stats.count" when="{'1':'document', 'other':'documents'}">documents</ng-pluralize>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardBoolean.cardStatsCountDocumentsPercentsLabel"
|
||||
i18n-default-message="{cardStatsCount, plural, one {# document} other {# documents}}"
|
||||
i18n-values="{
|
||||
cardStatsCount: card.stats.count,
|
||||
}"
|
||||
></span>
|
||||
({{ 100 * card.stats.count / card.stats.sampleCount | number:1 }}%)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stats euiText">
|
||||
<div class="stat">values</div>
|
||||
<div
|
||||
class="stat"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardBoolean.valuesLabel"
|
||||
i18n-default-message="values"
|
||||
></div>
|
||||
<div class="top-value">
|
||||
<div class="field-label"
|
||||
tooltip-html-unsafe="true"
|
||||
|
|
|
@ -1,11 +1,30 @@
|
|||
<div ng-if="card.existsInDocs === true" class="card-contents">
|
||||
<div class="stats euiText">
|
||||
<div class="stat"><i class="fa fa-files-o" aria-hidden="true"></i>
|
||||
{{ card.stats.count }} <ng-pluralize count="card.stats.count" when="{'1':'document', 'other':'documents'}">documents</ng-pluralize>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardDate.cardStatsCountDocumentsPercentsLabel"
|
||||
i18n-default-message="{cardStatsCount, plural, one {# document} other {# documents}}"
|
||||
i18n-values="{
|
||||
cardStatsCount: card.stats.count,
|
||||
}"
|
||||
></span>
|
||||
({{ 100 * card.stats.count / card.stats.sampleCount | number:1 }}%)
|
||||
</div>
|
||||
<div class="stat">earliest {{ card.stats.earliest | moment }}</div>
|
||||
<div class="stat">latest {{ card.stats.latest | moment }}</div>
|
||||
|
||||
<div
|
||||
class="stat"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardDate.earliestLabel"
|
||||
i18n-default-message="earliest {earliestCardStats}"
|
||||
i18n-values="{
|
||||
earliestCardStats: (card.stats.earliest | moment),
|
||||
}"
|
||||
></div>
|
||||
<div
|
||||
class="stat"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardDate.latestLabel"
|
||||
i18n-default-message="latest {latestCardStats}"
|
||||
i18n-values="{
|
||||
latestCardStats: (card.stats.latest | moment),
|
||||
}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -8,8 +8,10 @@
|
|||
<div class="content-wrapper" />
|
||||
</ml-document-count-chart>
|
||||
</div>
|
||||
<div class="sampled-message euiText">
|
||||
Calculated over all documents
|
||||
</div>
|
||||
<div
|
||||
class="sampled-message euiText"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardDocumentCount.calculatedOverAllDocumentsLabel"
|
||||
i18n-default-message="Calculated over all documents"
|
||||
></div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,15 +1,34 @@
|
|||
<div ng-if="card.existsInDocs === true" class="card-contents">
|
||||
<div class="stats euiText">
|
||||
<div ng-if="card.aggregatable === true" class="stat"><i class="fa fa-files-o" aria-hidden="true"></i>
|
||||
{{ card.stats.count }} <ng-pluralize count="card.stats.count" when="{'1':'document', 'other':'documents'}">documents</ng-pluralize>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardGeoPoint.cardStatsCountDocumentsPercentsLabel"
|
||||
i18n-default-message="{cardStatsCount, plural, one {# document} other {# documents}}"
|
||||
i18n-values="{
|
||||
cardStatsCount: card.stats.count,
|
||||
}"
|
||||
></span>
|
||||
({{ 100 * card.stats.count / card.stats.sampleCount | number:1 }}%)
|
||||
</div>
|
||||
<div ng-if="card.aggregatable === true" class="stat"><i class="fa fa-cubes" aria-hidden="true"></i> {{ card.stats.cardinality }} distinct
|
||||
<ng-pluralize count="card.stats.cardinality" when="{'1':'value', 'other':'values'}">values</ng-pluralize>
|
||||
<div ng-if="card.aggregatable === true" class="stat"><i class="fa fa-cubes" aria-hidden="true"></i>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardGeoPoint.cardStatsCardinalityDistinctValuesLabel"
|
||||
i18n-default-message="{cardStatsCardinality} distinct {cardStatsCardinality, plural, one {value} other {values}}"
|
||||
i18n-values="{
|
||||
cardStatsCardinality: card.stats.cardinality,
|
||||
}"
|
||||
></span>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="card.stats.examples.length > 0" class="stats euiText">
|
||||
<div class="stat"><ng-pluralize count="card.stats.examples.length" when="{'1':'value', 'other':'examples'}">examples</ng-pluralize></div>
|
||||
<div
|
||||
class="stat"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardGeoPoint.cardStatsExamplesLabel"
|
||||
i18n-default-message="{cardStatsExamplesLength, plural, one {value} other {examples}}"
|
||||
i18n-values="{
|
||||
cardStatsExamplesLength: card.stats.examples.length,
|
||||
}"
|
||||
></div>
|
||||
<div ng-repeat="example in card.stats.examples">
|
||||
{{ example }}
|
||||
</div>
|
||||
|
|
|
@ -1,17 +1,33 @@
|
|||
<div ng-if="card.existsInDocs === true" class="card-contents">
|
||||
<div class="stats euiText">
|
||||
<div class="stat"><i class="fa fa-files-o" aria-hidden="true"></i>
|
||||
{{ card.stats.count }} <ng-pluralize count="card.stats.count" when="{'1':'document', 'other':'documents'}">documents</ng-pluralize>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardIp.cardStatsCountDocumentsPercentsLabel"
|
||||
i18n-default-message="{cardStatsCount, plural, one {# document} other {# documents}}"
|
||||
i18n-values="{
|
||||
cardStatsCount: card.stats.count,
|
||||
}"
|
||||
></span>
|
||||
({{ 100 * card.stats.count / card.stats.sampleCount | number:1 }}%)
|
||||
</div>
|
||||
<div class="stat"><i class="fa fa-cubes" aria-hidden="true"></i> {{ card.stats.cardinality }} distinct
|
||||
<ng-pluralize count="card.stats.cardinality" when="{'1':'value', 'other':'values'}">values</ng-pluralize>
|
||||
<div class="stat"><i class="fa fa-cubes" aria-hidden="true"></i>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardIp.cardStatsCardinalityDistinctValuesLabel"
|
||||
i18n-default-message="{cardStatsCardinality} distinct {cardStatsCardinality, plural, one {value} other {values}}"
|
||||
i18n-values="{
|
||||
cardStatsCardinality: card.stats.cardinality,
|
||||
}"
|
||||
></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="stats euiText">
|
||||
<div class="stat">top values</div>
|
||||
<div
|
||||
class="stat"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardIp.topValuesLabel"
|
||||
i18n-default-message="top values"
|
||||
></div>
|
||||
<ml-top-values></ml-top-values>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,16 +1,32 @@
|
|||
<div ng-if="card.existsInDocs === true" class="card-contents">
|
||||
<div class="stats euiText">
|
||||
<div class="stat"><i class="fa fa-files-o" aria-hidden="true"></i>
|
||||
{{ card.stats.count }} <ng-pluralize count="card.stats.count" when="{'1':'document', 'other':'documents'}">documents</ng-pluralize>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardKeyword.cardStatsCountDocumentsPercentsLabel"
|
||||
i18n-default-message="{cardStatsCount, plural, one {# document} other {# documents}}"
|
||||
i18n-values="{
|
||||
cardStatsCount: card.stats.count,
|
||||
}"
|
||||
></span>
|
||||
({{ 100 * card.stats.count / card.stats.sampleCount | number:1 }}%)
|
||||
</div>
|
||||
<div class="stat"><i class="fa fa-cubes" aria-hidden="true"></i> {{ card.stats.cardinality }} distinct
|
||||
<ng-pluralize count="card.stats.cardinality" when="{'1':'value', 'other':'values'}">values</ng-pluralize>
|
||||
<div class="stat"><i class="fa fa-cubes" aria-hidden="true"></i>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardKeyword.cardStatsCardinalityDistinctValuesLabel"
|
||||
i18n-default-message="{cardStatsCardinality} distinct {cardStatsCardinality, plural, one {value} other {values}}"
|
||||
i18n-values="{
|
||||
cardStatsCardinality: card.stats.cardinality,
|
||||
}"
|
||||
></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stats euiText">
|
||||
<div class="stat">top values</div>
|
||||
<div
|
||||
class="stat"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardKeyword.topValuesLabel"
|
||||
i18n-default-message="top values"
|
||||
></div>
|
||||
<ml-top-values></ml-top-values>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,16 +1,40 @@
|
|||
<div ng-if="card.existsInDocs === true" class="card-contents">
|
||||
<div class="stats euiText">
|
||||
<div class="stat"><i class="fa fa-files-o" aria-hidden="true"></i>
|
||||
{{ card.stats.count }} <ng-pluralize count="card.stats.count" when="{'1':'document', 'other':'documents'}">documents</ng-pluralize>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardNumber.cardStatsCountDocumentsPercentsLabel"
|
||||
i18n-default-message="{cardStatsCount, plural, one {# document} other {# documents}}"
|
||||
i18n-values="{
|
||||
cardStatsCount: card.stats.count,
|
||||
}"
|
||||
></span>
|
||||
({{ 100 * card.stats.count / card.stats.sampleCount | number:1 }}%)
|
||||
</div>
|
||||
<div class="stat"><i class="fa fa-cubes" aria-hidden="true"></i> {{ card.stats.cardinality }} distinct
|
||||
<ng-pluralize count="card.stats.cardinality" when="{'1':'value', 'other':'values'}">values</ng-pluralize>
|
||||
<div class="stat"><i class="fa fa-cubes" aria-hidden="true"></i>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardNumber.cardStatsCardinalityDistinctValuesLabel"
|
||||
i18n-default-message="{cardStatsCardinality} distinct {cardStatsCardinality, plural, one {value} other {values}}"
|
||||
i18n-values="{
|
||||
cardStatsCardinality: card.stats.cardinality,
|
||||
}"
|
||||
></span>
|
||||
</div>
|
||||
<div>
|
||||
<div class="stat min heading">min</div>
|
||||
<div class="stat median heading">median</div>
|
||||
<div class="stat max heading">max</div>
|
||||
<div
|
||||
class="stat min heading"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardNumber.minLabel"
|
||||
i18n-default-message="min"
|
||||
></div>
|
||||
<div
|
||||
class="stat median heading"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardNumber.medianLabel"
|
||||
i18n-default-message="median"
|
||||
></div>
|
||||
<div
|
||||
class="stat max heading"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardNumber.maxLabel"
|
||||
i18n-default-message="max"
|
||||
></div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="stat min">{{ card.stats.min | formatField:card.fieldFormat }}</div>
|
||||
|
@ -23,9 +47,17 @@
|
|||
<select class="kuiSelect"
|
||||
ng-model="detailsMode"
|
||||
ng-change="detailsModeChanged(detailsMode)"
|
||||
aria-label="Select metric details display">
|
||||
<option value="distribution">distribution of values</option>
|
||||
<option value="top">top values</option>
|
||||
aria-label="{{:: 'xpack.ml.fieldDataCard.cardNumber.details.selectMetricDetailsDisplayAriaLabel' | i18n: { defaultMessage: 'Select metric details display' } }}">
|
||||
<option
|
||||
value="distribution"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardNumber.details.distributionOfValuesLabel"
|
||||
i18n-default-message="distribution of values"
|
||||
></option>
|
||||
<option
|
||||
value="top"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardNumber.details.topValuesLabel"
|
||||
i18n-default-message="top values"
|
||||
></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="details-container" ng-switch on="detailsMode">
|
||||
|
|
|
@ -1,18 +1,42 @@
|
|||
<div ng-if="card.existsInDocs === true" class="card-contents">
|
||||
<div class="stats euiText">
|
||||
<div class="stat">
|
||||
{{ card.type }} type
|
||||
</div>
|
||||
<div
|
||||
class="stat"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardOther.cardTypeLabel"
|
||||
i18n-default-message="{cardType} type"
|
||||
i18n-values="{
|
||||
cardType: card.type,
|
||||
}"
|
||||
></div>
|
||||
<div ng-if="card.aggregatable === true" class="stat"><i class="fa fa-files-o" aria-hidden="true"></i>
|
||||
{{ card.stats.count }} <ng-pluralize count="card.stats.count" when="{'1':'document', 'other':'documents'}">documents</ng-pluralize>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardOther.cardStatsCountDocumentsPercentsLabel"
|
||||
i18n-default-message="{cardStatsCount, plural, one {# document} other {# documents}}"
|
||||
i18n-values="{
|
||||
cardStatsCount: card.stats.count,
|
||||
}"
|
||||
></span>
|
||||
({{ 100 * card.stats.count / card.stats.sampleCount | number:1 }}%)
|
||||
</div>
|
||||
<div ng-if="card.aggregatable === true" class="stat"><i class="fa fa-cubes" aria-hidden="true"></i> {{ card.stats.cardinality }} distinct
|
||||
<ng-pluralize count="card.stats.cardinality" when="{'1':'value', 'other':'values'}">values</ng-pluralize>
|
||||
<div ng-if="card.aggregatable === true" class="stat"><i class="fa fa-cubes" aria-hidden="true"></i>
|
||||
<span
|
||||
i18n-id="xpack.ml.fieldDataCard.cardOther.cardStatsCardinalityDistinctValuesLabel"
|
||||
i18n-default-message="{cardStatsCardinality} distinct {cardStatsCardinality, plural, one {value} other {values}}"
|
||||
i18n-values="{
|
||||
cardStatsCardinality: card.stats.cardinality,
|
||||
}"
|
||||
></span>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="examples.length > 0" class="stats euiText">
|
||||
<div class="stat"><ng-pluralize count="card.stats.examples.length" when="{'1':'value', 'other':'examples'}">examples</ng-pluralize></div>
|
||||
<div
|
||||
class="stat"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardOther.cardStatsExamplesLabel"
|
||||
i18n-default-message="{cardStatsExamplesLength, plural, one {value} other {examples}}"
|
||||
i18n-values="{
|
||||
cardStatsExamplesLength: card.stats.examples.length,
|
||||
}"
|
||||
></div>
|
||||
<div ng-repeat="example in card.stats.examples">
|
||||
{{ example }}
|
||||
</div>
|
||||
|
|
|
@ -1,26 +1,43 @@
|
|||
<div ng-if="card.existsInDocs === true" class="card-contents">
|
||||
<div ng-if="card.stats.examples.length > 0" class="stats euiText">
|
||||
<div class="stat"><ng-pluralize count="card.stats.examples.length" when="{'1':'value', 'other':'examples'}">examples</ng-pluralize></div>
|
||||
<div
|
||||
class="stat"
|
||||
i18n-id="xpack.ml.fieldDataCard.cardText.examplesLabel"
|
||||
i18n-default-message="{examplesLength, plural, one {value} other {examples}}"
|
||||
i18n-values="{
|
||||
examplesLength: card.stats.examples.length,
|
||||
}"
|
||||
></div>
|
||||
<div ng-repeat="example in card.stats.examples">
|
||||
{{ example }}
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="card.stats.examples.length === 0" class="not-exist-message">
|
||||
<div>
|
||||
<p>
|
||||
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i> No examples were obtained for this field.
|
||||
</p>
|
||||
<p>
|
||||
This field was not present in the <span class="text-code">_source</span>
|
||||
field of documents queried.
|
||||
</p>
|
||||
<p>
|
||||
It may be populated, for example, using a
|
||||
<span class="text-code">copy_to</span> parameter in the document mapping,
|
||||
or be pruned from the <span class="text-code">_source</span> field afer
|
||||
indexing through the use of <span class="text-code">includes</span> and
|
||||
<span class="text-code">excludes</span> parameters.
|
||||
</p>
|
||||
<p
|
||||
i18n-id="xpack.ml.fieldDataCard.cardText.noExampleForFieldsTitle"
|
||||
i18n-default-message="{icon} No examples were obtained for this field."
|
||||
i18n-values="{
|
||||
html_icon: '<i class=\'fa fa-exclamation-triangle\' aria-hidden=\'true\'></i>',
|
||||
}"
|
||||
></p>
|
||||
<p
|
||||
i18n-id="xpack.ml.fieldDataCard.cardText.fieldNotPresentInDocumentQueriedFieldDescription"
|
||||
i18n-default-message="This field was not present in the {sourceParam} field of documents queried."
|
||||
i18n-values="{
|
||||
html_sourceParam: '<span class=\'text-code\'>_source</span>',
|
||||
}"
|
||||
></p>
|
||||
<p
|
||||
i18n-id="xpack.ml.fieldDataCard.cardText.fieldMayBePopulatedDescription"
|
||||
i18n-default-message="It may be populated, for example, using a {copyToParam} parameter in the document mapping, or be pruned from the {sourceParam} field afer indexing through the use of {includesParam} and {excludesParam} parameters."
|
||||
i18n-values="{
|
||||
html_copyToParam: '<span class=\'text-code\'>copy_to</span>',
|
||||
html_sourceParam: '<span class=\'text-code\'>_source</span>',
|
||||
html_includesParam: '<span class=\'text-code\'>includes</span>',
|
||||
html_excludesParam: '<span class=\'text-code\'>excludes</span>',
|
||||
}"
|
||||
></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ import { uiModules } from 'ui/modules';
|
|||
import { timefilter } from 'ui/timefilter';
|
||||
const module = uiModules.get('apps/ml');
|
||||
|
||||
module.directive('mlDocumentCountChart', function (Private) {
|
||||
module.directive('mlDocumentCountChart', function (Private, i18n) {
|
||||
function link(scope, element, attrs) {
|
||||
const svgWidth = attrs.width ? +attrs.width : 400;
|
||||
const svgHeight = scope.height = attrs.height ? +attrs.height : 400;
|
||||
|
@ -157,7 +157,15 @@ module.directive('mlDocumentCountChart', function (Private) {
|
|||
|
||||
function showChartTooltip(data, rect) {
|
||||
const formattedDate = formatHumanReadableDateTime(data.time);
|
||||
const contents = `${formattedDate}<br/><hr/>count: ${data.value}`;
|
||||
const contents = i18n('xpack.ml.fieldDataCard.documentCountChart.chartTooltip', {
|
||||
defaultMessage: '{formattedDate}{br}{hr}count: {dataValue}',
|
||||
values: {
|
||||
formattedDate,
|
||||
dataValue: data.value,
|
||||
br: '<br />',
|
||||
hr: '<hr />',
|
||||
},
|
||||
});
|
||||
|
||||
// Calculate the y offset.
|
||||
// rectY are mouseY are relative to top of the chart area.
|
||||
|
|
|
@ -3,17 +3,21 @@
|
|||
|
||||
<div ng-if="card.loading === true" class="card-contents">
|
||||
<ml-loading-indicator
|
||||
label="Loading"
|
||||
label="{{:: 'xpack.ml.fieldDataCard.loadingLabel' | i18n: { defaultMessage: 'Loading' } }}"
|
||||
is-loading="card.loading"
|
||||
height="200"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div ng-if="card.existsInDocs === false" class="card-contents">
|
||||
<div class="not-exist-message">
|
||||
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
This field does not appear in any documents for the selected time range
|
||||
</div>
|
||||
<div
|
||||
class="not-exist-message"
|
||||
i18n-id="xpack.ml.fieldDataCard.fieldDoesNotAppearInDocumentsDescription"
|
||||
i18n-default-message="{icon} This field does not appear in any documents for the selected time range"
|
||||
i18n-values="{
|
||||
html_icon: '<i class=\'fa fa-exclamation-triangle\' aria-hidden=\'true\'></i>',
|
||||
}"
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<ng-include ng-if="card.loading === false" src="getCardUrl()"></ng-include>
|
||||
|
|
|
@ -21,7 +21,7 @@ import { mlChartTooltipService } from '../../components/chart_tooltip/chart_tool
|
|||
import { uiModules } from 'ui/modules';
|
||||
const module = uiModules.get('apps/ml');
|
||||
|
||||
module.directive('mlMetricDistributionChart', function () {
|
||||
module.directive('mlMetricDistributionChart', function (i18n) {
|
||||
|
||||
function link(scope, element, attrs) {
|
||||
const svgWidth = attrs.width ? +attrs.width : 400;
|
||||
|
@ -179,7 +179,13 @@ module.directive('mlMetricDistributionChart', function () {
|
|||
.attr('y', 10)
|
||||
.attr('class', 'info-text')
|
||||
.attr('transform', `translate(${margin.left}, ${margin.top})`)
|
||||
.text(`Displaying ${minPercent} - ${maxPercent} percentiles`);
|
||||
.text(i18n('xpack.ml.fieldDataCard.metricDistributionChart.displayingPercentilesLabel', {
|
||||
defaultMessage: 'Displaying {minPercent} - {maxPercent} percentiles',
|
||||
values: {
|
||||
minPercent,
|
||||
maxPercent,
|
||||
},
|
||||
}));
|
||||
|
||||
const translateTop = margin.top + infoLabelHeight;
|
||||
chartGroup = svg.append('g')
|
||||
|
@ -245,14 +251,29 @@ module.directive('mlMetricDistributionChart', function () {
|
|||
}
|
||||
}
|
||||
|
||||
let contents = `value:${xVal}`;
|
||||
let contents;
|
||||
const bar = scope.processedData[processedDataIdx];
|
||||
const minValFormatted = scope.card.fieldFormat.convert(bar.dataMin, 'text');
|
||||
if (bar.dataMax > bar.dataMin) {
|
||||
const maxValFormatted = scope.card.fieldFormat.convert(bar.dataMax, 'text');
|
||||
contents = `${bar.percent}% of documents have<br>values between ${minValFormatted} and ${maxValFormatted}`;
|
||||
contents = i18n('xpack.ml.fieldDataCard.metricDistributionChart.documentsBarPercentBetweenValuesDescription', {
|
||||
defaultMessage: '{barPercent}% of documents have{br}values between {minValFormatted} and {maxValFormatted}',
|
||||
values: {
|
||||
barPercent: bar.percent,
|
||||
minValFormatted,
|
||||
maxValFormatted,
|
||||
br: '<br />',
|
||||
},
|
||||
});
|
||||
} else {
|
||||
contents = `${bar.percent}% of documents have<br>a value of ${minValFormatted}`;
|
||||
contents = i18n('xpack.ml.fieldDataCard.metricDistributionChart.documentsBarPercentValueDescription', {
|
||||
defaultMessage: '{barPercent}% of documents have{br}a value of {minValFormatted}',
|
||||
values: {
|
||||
barPercent: bar.percent,
|
||||
minValFormatted,
|
||||
br: '<br />',
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
contents = `<div class='eui-textCenter'>${contents}</div>`;
|
||||
|
|
|
@ -26,6 +26,12 @@
|
|||
{{ 100 * value.doc_count/card.stats.topValuesSampleSize >= 0.1 ? (100 * value.doc_count/card.stats.topValuesSampleSize | number:1): '< 0.1' }}%
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="card.stats.isTopValuesSampled === true" class="sampled-message euiText">
|
||||
Calculated from sample of {{ card.stats.topValuesSamplerShardSize }} documents per shard
|
||||
</div>
|
||||
<div
|
||||
ng-if="card.stats.isTopValuesSampled === true"
|
||||
class="sampled-message euiText"
|
||||
i18n-id="xpack.ml.fieldDataCard.calculatedFromSampleDescription"
|
||||
i18n-default-message="Calculated from sample of {topValuesSamplerShardSize} documents per shard"
|
||||
i18n-values="{
|
||||
topValuesSamplerShardSize: card.stats.topValuesSamplerShardSize,
|
||||
}"
|
||||
></div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue