cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
87 lines (86 loc) • 3.27 kB
JavaScript
import { isArray, trim, reduce, each } from "../../../../zrender/lib/core/util.mjs";
import { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from "./tooltipMarkup.mjs";
import { retrieveRawValue } from "../../data/helper/dataProvider.mjs";
import { isNameSpecified } from "../../util/model.mjs";
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,
blocks: [createTooltipMarkup("nameValue", {
markerType: "item",
markerColor,
name: inlineName,
noName: !trim(inlineName),
value: inlineValue,
valueType: inlineValueType
})].concat(subBlocks || [])
});
}
function formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {
var data = series.getData();
var isValueMultipleLine = reduce(value, function(isValueMultipleLine2, val, idx) {
var dimItem = data.getDimensionInfo(idx);
return isValueMultipleLine2 = isValueMultipleLine2 || 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,
inlineValueTypes,
blocks
};
}
export { defaultSeriesFormatTooltip };