cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
130 lines (129 loc) • 4.38 kB
JavaScript
import { clone, each as each$1 } from "../../../zrender/lib/core/util.mjs";
import VisualMapping from "./VisualMapping.mjs";
import { getItemVisualFromData, setItemVisualFromData } from "./helper.mjs";
var each = each$1;
function hasKeys(obj) {
if (obj) {
for (var name_1 in obj) {
if (obj.hasOwnProperty(name_1)) {
return true;
}
}
}
}
function createVisualMappings(option, stateList, supplementVisualOption) {
var visualMappings = {};
each(stateList, function(state) {
var mappings = visualMappings[state] = createMappings();
each(option[state], function(visualData, visualType) {
if (!VisualMapping.isValidType(visualType)) {
return;
}
var mappingOption = {
type: visualType,
visual: visualData
};
supplementVisualOption && supplementVisualOption(mappingOption, state);
mappings[visualType] = new VisualMapping(mappingOption);
if (visualType === "opacity") {
mappingOption = clone(mappingOption);
mappingOption.type = "colorAlpha";
mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);
}
});
});
return visualMappings;
function createMappings() {
var Creater = function() {
};
Creater.prototype.__hidden = Creater.prototype;
var obj = new Creater();
return obj;
}
}
function replaceVisualOption(thisOption, newOption, keys) {
var has;
each$1(keys, function(key) {
if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {
has = true;
}
});
has && each$1(keys, function(key) {
if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {
thisOption[key] = clone(newOption[key]);
} else {
delete thisOption[key];
}
});
}
function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {
var visualTypesMap = {};
each$1(stateList, function(state) {
var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);
visualTypesMap[state] = visualTypes;
});
var dataIndex;
function getVisual(key) {
return getItemVisualFromData(data, dataIndex, key);
}
function setVisual(key, value) {
setItemVisualFromData(data, dataIndex, key, value);
}
if (dimension == null) {
data.each(eachItem);
} else {
data.each([dimension], eachItem);
}
function eachItem(valueOrIndex, index) {
dataIndex = dimension == null ? valueOrIndex : index;
var rawDataItem = data.getRawDataItem(dataIndex);
if (rawDataItem && rawDataItem.visualMap === false) {
return;
}
var valueState = getValueState.call(scope, valueOrIndex);
var mappings = visualMappings[valueState];
var visualTypes = visualTypesMap[valueState];
for (var i = 0, len = visualTypes.length; i < len; i++) {
var type = visualTypes[i];
mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);
}
}
}
function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {
var visualTypesMap = {};
each$1(stateList, function(state) {
var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);
visualTypesMap[state] = visualTypes;
});
return {
progress: function progress(params, data) {
var dimIndex;
if (dim != null) {
dimIndex = data.getDimensionIndex(dim);
}
function getVisual(key) {
return getItemVisualFromData(data, dataIndex, key);
}
function setVisual(key, value2) {
setItemVisualFromData(data, dataIndex, key, value2);
}
var dataIndex;
var store = data.getStore();
while ((dataIndex = params.next()) != null) {
var rawDataItem = data.getRawDataItem(dataIndex);
if (rawDataItem && rawDataItem.visualMap === false) {
continue;
}
var value = dim != null ? store.get(dimIndex, dataIndex) : dataIndex;
var valueState = getValueState(value);
var mappings = visualMappings[valueState];
var visualTypes = visualTypesMap[valueState];
for (var i = 0, len = visualTypes.length; i < len; i++) {
var type = visualTypes[i];
mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);
}
}
}
};
}
export { applyVisual, createVisualMappings, incrementalApplyVisual, replaceVisualOption };