123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- import { trim, isArray, each, reduce } from 'zrender/lib/core/util.js';
- import { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup.js';
- import { retrieveRawValue } from '../../data/helper/dataProvider.js';
- import { isNameSpecified } from '../../util/model.js';
- export function defaultSeriesFormatTooltip(opt) {
- var series = opt.series;
- var dataIndex = opt.dataIndex;
- var multipleSeries = opt.multipleSeries;
- var data = series.getData();
- var tooltipDims = data.mapDimensionsAll('defaultedTooltip');
- var tooltipDimLen = tooltipDims.length;
- var value = series.getRawValue(dataIndex);
- var isValueArr = isArray(value);
- var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);
-
- var inlineValue;
- var inlineValueType;
- var subBlocks;
- var sortParam;
- if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {
- var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);
- inlineValue = formatArrResult.inlineValues;
- inlineValueType = formatArrResult.inlineValueTypes;
- subBlocks = formatArrResult.blocks;
-
- sortParam = formatArrResult.inlineValues[0];
- } else if (tooltipDimLen) {
- var dimInfo = data.getDimensionInfo(tooltipDims[0]);
- sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);
- inlineValueType = dimInfo.type;
- } else {
- sortParam = inlineValue = isValueArr ? value[0] : value;
- }
-
- var seriesNameSpecified = isNameSpecified(series);
- var seriesName = seriesNameSpecified && series.name || '';
- var itemName = data.getName(dataIndex);
- var inlineName = multipleSeries ? seriesName : itemName;
- return createTooltipMarkup('section', {
- header: seriesName,
-
-
- noHeader: multipleSeries || !seriesNameSpecified,
- sortParam: sortParam,
- blocks: [createTooltipMarkup('nameValue', {
- markerType: 'item',
- markerColor: markerColor,
-
-
- name: inlineName,
-
-
- noName: !trim(inlineName),
- value: inlineValue,
- valueType: inlineValueType,
- dataIndex: dataIndex
- })].concat(subBlocks || [])
- });
- }
- function formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {
-
- var data = series.getData();
- var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {
- var dimItem = data.getDimensionInfo(idx);
- return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;
- }, false);
- var inlineValues = [];
- var inlineValueTypes = [];
- var blocks = [];
- tooltipDims.length ? each(tooltipDims, function (dim) {
- setEachItem(retrieveRawValue(data, dataIndex, dim), dim);
- })
-
- : each(value, setEachItem);
- function setEachItem(val, dim) {
- var dimInfo = data.getDimensionInfo(dim);
-
- if (!dimInfo || dimInfo.otherDims.tooltip === false) {
- return;
- }
- if (isValueMultipleLine) {
- blocks.push(createTooltipMarkup('nameValue', {
- markerType: 'subItem',
- markerColor: colorStr,
- name: dimInfo.displayName,
- value: val,
- valueType: dimInfo.type
- }));
- } else {
- inlineValues.push(val);
- inlineValueTypes.push(dimInfo.type);
- }
- }
- return {
- inlineValues: inlineValues,
- inlineValueTypes: inlineValueTypes,
- blocks: blocks
- };
- }
|