UNPKG

cione-comp-lib

Version:

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

130 lines (129 loc) 4.38 kB
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 };