cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
101 lines (100 loc) • 3.72 kB
JavaScript
import { isArray, isFunction, isString, isObject } from "../../../../zrender/lib/core/util.mjs";
import { retrieveRawValue } from "../../data/helper/dataProvider.mjs";
import { formatTpl } from "../../util/format.mjs";
var DIMENSION_LABEL_REG = /\{@(.+?)\}/g;
var DataFormatMixin = function() {
function DataFormatMixin2() {
}
DataFormatMixin2.prototype.getDataParams = function(dataIndex, dataType) {
var data = this.getData(dataType);
var rawValue = this.getRawValue(dataIndex, dataType);
var rawDataIndex = data.getRawIndex(dataIndex);
var name = data.getName(dataIndex);
var itemOpt = data.getRawDataItem(dataIndex);
var style = data.getItemVisual(dataIndex, "style");
var color = style && style[data.getItemVisual(dataIndex, "drawType") || "fill"];
var borderColor = style && style.stroke;
var mainType = this.mainType;
var isSeries = mainType === "series";
var userOutput = data.userOutput && data.userOutput.get();
return {
componentType: mainType,
componentSubType: this.subType,
componentIndex: this.componentIndex,
seriesType: isSeries ? this.subType : null,
seriesIndex: this.seriesIndex,
seriesId: isSeries ? this.id : null,
seriesName: isSeries ? this.name : null,
name,
dataIndex: rawDataIndex,
data: itemOpt,
dataType,
value: rawValue,
color,
borderColor,
dimensionNames: userOutput ? userOutput.fullDimensions : null,
encode: userOutput ? userOutput.encode : null,
$vars: ["seriesName", "name", "value"]
};
};
DataFormatMixin2.prototype.getFormattedLabel = function(dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {
status = status || "normal";
var data = this.getData(dataType);
var params = this.getDataParams(dataIndex, dataType);
if (extendParams) {
params.value = extendParams.interpolatedValue;
}
if (labelDimIndex != null && isArray(params.value)) {
params.value = params.value[labelDimIndex];
}
if (!formatter) {
var itemModel = data.getItemModel(dataIndex);
formatter = itemModel.get(status === "normal" ? ["label", "formatter"] : [status, "label", "formatter"]);
}
if (isFunction(formatter)) {
params.status = status;
params.dimensionIndex = labelDimIndex;
return formatter(params);
} else if (isString(formatter)) {
var str = formatTpl(formatter, params);
return str.replace(DIMENSION_LABEL_REG, function(origin, dimStr) {
var len = dimStr.length;
var dimLoose = dimStr;
if (dimLoose.charAt(0) === "[" && dimLoose.charAt(len - 1) === "]") {
dimLoose = +dimLoose.slice(1, len - 1);
}
var val = retrieveRawValue(data, dataIndex, dimLoose);
if (extendParams && isArray(extendParams.interpolatedValue)) {
var dimIndex = data.getDimensionIndex(dimLoose);
if (dimIndex >= 0) {
val = extendParams.interpolatedValue[dimIndex];
}
}
return val != null ? val + "" : "";
});
}
};
DataFormatMixin2.prototype.getRawValue = function(idx, dataType) {
return retrieveRawValue(this.getData(dataType), idx);
};
DataFormatMixin2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) {
return;
};
return DataFormatMixin2;
}();
function normalizeTooltipFormatResult(result) {
var markupText;
var markupFragment;
if (isObject(result)) {
if (result.type) {
markupFragment = result;
}
} else {
markupText = result;
}
return {
text: markupText,
frag: markupFragment
};
}
export { DataFormatMixin, normalizeTooltipFormatResult };