UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

87 lines (86 loc) 3.27 kB
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 };