UNPKG

cione-comp-lib

Version:

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

261 lines (260 loc) 9.77 kB
import { __extends } from "../../../../tslib/tslib.es6.mjs"; import { bind, each as each$1, isArray as isArray$1, isString, isFunction, merge, clone } from "../../../../zrender/lib/core/util.mjs"; import visualDefault from "../../visual/visualDefault.mjs"; import VisualMapping from "../../visual/VisualMapping.mjs"; import { replaceVisualOption, createVisualMappings } from "../../visual/visualSolution.mjs"; import { normalizeToArray } from "../../util/model.mjs"; import { asc as asc$1, linearMap as linearMap$1 } from "../../util/number.mjs"; import ComponentModel from "../../model/Component.mjs"; var mapVisual = VisualMapping.mapVisual; var eachVisual = VisualMapping.eachVisual; var isArray = isArray$1; var each = each$1; var asc = asc$1; var linearMap = linearMap$1; var VisualMapModel = function(_super) { __extends(VisualMapModel2, _super); function VisualMapModel2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = VisualMapModel2.type; _this.stateList = ["inRange", "outOfRange"]; _this.replacableOptionKeys = ["inRange", "outOfRange", "target", "controller", "color"]; _this.layoutMode = { type: "box", ignoreSize: true }; _this.dataBound = [-Infinity, Infinity]; _this.targetVisuals = {}; _this.controllerVisuals = {}; return _this; } VisualMapModel2.prototype.init = function(option, parentModel, ecModel) { this.mergeDefaultAndTheme(option, ecModel); }; VisualMapModel2.prototype.optionUpdated = function(newOption, isInit) { var thisOption = this.option; !isInit && replaceVisualOption(thisOption, newOption, this.replacableOptionKeys); this.textStyleModel = this.getModel("textStyle"); this.resetItemSize(); this.completeVisualOption(); }; VisualMapModel2.prototype.resetVisual = function(supplementVisualOption) { var stateList = this.stateList; supplementVisualOption = bind(supplementVisualOption, this); this.controllerVisuals = createVisualMappings(this.option.controller, stateList, supplementVisualOption); this.targetVisuals = createVisualMappings(this.option.target, stateList, supplementVisualOption); }; VisualMapModel2.prototype.getItemSymbol = function() { return null; }; VisualMapModel2.prototype.getTargetSeriesIndices = function() { var optionSeriesIndex = this.option.seriesIndex; var seriesIndices = []; if (optionSeriesIndex == null || optionSeriesIndex === "all") { this.ecModel.eachSeries(function(seriesModel, index) { seriesIndices.push(index); }); } else { seriesIndices = normalizeToArray(optionSeriesIndex); } return seriesIndices; }; VisualMapModel2.prototype.eachTargetSeries = function(callback, context) { each$1(this.getTargetSeriesIndices(), function(seriesIndex) { var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex); if (seriesModel) { callback.call(context, seriesModel); } }, this); }; VisualMapModel2.prototype.isTargetSeries = function(seriesModel) { var is = false; this.eachTargetSeries(function(model) { model === seriesModel && (is = true); }); return is; }; VisualMapModel2.prototype.formatValueText = function(value, isCategory, edgeSymbols) { var option = this.option; var precision = option.precision; var dataBound = this.dataBound; var formatter = option.formatter; var isMinMax; edgeSymbols = edgeSymbols || ["<", ">"]; if (isArray$1(value)) { value = value.slice(); isMinMax = true; } var textValue = isCategory ? value : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value); if (isString(formatter)) { return formatter.replace("{value}", isMinMax ? textValue[0] : textValue).replace("{value2}", isMinMax ? textValue[1] : textValue); } else if (isFunction(formatter)) { return isMinMax ? formatter(value[0], value[1]) : formatter(value); } if (isMinMax) { if (value[0] === dataBound[0]) { return edgeSymbols[0] + " " + textValue[1]; } else if (value[1] === dataBound[1]) { return edgeSymbols[1] + " " + textValue[0]; } else { return textValue[0] + " - " + textValue[1]; } } else { return textValue; } function toFixed(val) { return val === dataBound[0] ? "min" : val === dataBound[1] ? "max" : (+val).toFixed(Math.min(precision, 20)); } }; VisualMapModel2.prototype.resetExtent = function() { var thisOption = this.option; var extent = asc([thisOption.min, thisOption.max]); this._dataExtent = extent; }; VisualMapModel2.prototype.getDataDimensionIndex = function(data) { var optDim = this.option.dimension; if (optDim != null) { return data.getDimensionIndex(optDim); } var dimNames = data.dimensions; for (var i = dimNames.length - 1; i >= 0; i--) { var dimName = dimNames[i]; var dimInfo = data.getDimensionInfo(dimName); if (!dimInfo.isCalculationCoord) { return dimInfo.storeDimIndex; } } }; VisualMapModel2.prototype.getExtent = function() { return this._dataExtent.slice(); }; VisualMapModel2.prototype.completeVisualOption = function() { var ecModel = this.ecModel; var thisOption = this.option; var base = { inRange: thisOption.inRange, outOfRange: thisOption.outOfRange }; var target = thisOption.target || (thisOption.target = {}); var controller = thisOption.controller || (thisOption.controller = {}); merge(target, base); merge(controller, base); var isCategory = this.isCategory(); completeSingle.call(this, target); completeSingle.call(this, controller); completeInactive.call(this, target, "inRange", "outOfRange"); completeController.call(this, controller); function completeSingle(base2) { if (isArray(thisOption.color) && !base2.inRange) { base2.inRange = { color: thisOption.color.slice().reverse() }; } base2.inRange = base2.inRange || { color: ecModel.get("gradientColor") }; } function completeInactive(base2, stateExist, stateAbsent) { var optExist = base2[stateExist]; var optAbsent = base2[stateAbsent]; if (optExist && !optAbsent) { optAbsent = base2[stateAbsent] = {}; each(optExist, function(visualData, visualType) { if (!VisualMapping.isValidType(visualType)) { return; } var defa = visualDefault.get(visualType, "inactive", isCategory); if (defa != null) { optAbsent[visualType] = defa; if (visualType === "color" && !optAbsent.hasOwnProperty("opacity") && !optAbsent.hasOwnProperty("colorAlpha")) { optAbsent.opacity = [0, 0]; } } }); } } function completeController(controller2) { var symbolExists = (controller2.inRange || {}).symbol || (controller2.outOfRange || {}).symbol; var symbolSizeExists = (controller2.inRange || {}).symbolSize || (controller2.outOfRange || {}).symbolSize; var inactiveColor = this.get("inactiveColor"); var itemSymbol = this.getItemSymbol(); var defaultSymbol = itemSymbol || "roundRect"; each(this.stateList, function(state) { var itemSize = this.itemSize; var visuals = controller2[state]; if (!visuals) { visuals = controller2[state] = { color: isCategory ? inactiveColor : [inactiveColor] }; } if (visuals.symbol == null) { visuals.symbol = symbolExists && clone(symbolExists) || (isCategory ? defaultSymbol : [defaultSymbol]); } if (visuals.symbolSize == null) { visuals.symbolSize = symbolSizeExists && clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]); } visuals.symbol = mapVisual(visuals.symbol, function(symbol) { return symbol === "none" ? defaultSymbol : symbol; }); var symbolSize = visuals.symbolSize; if (symbolSize != null) { var max_1 = -Infinity; eachVisual(symbolSize, function(value) { value > max_1 && (max_1 = value); }); visuals.symbolSize = mapVisual(symbolSize, function(value) { return linearMap(value, [0, max_1], [0, itemSize[0]], true); }); } }, this); } }; VisualMapModel2.prototype.resetItemSize = function() { this.itemSize = [parseFloat(this.get("itemWidth")), parseFloat(this.get("itemHeight"))]; }; VisualMapModel2.prototype.isCategory = function() { return !!this.option.categories; }; VisualMapModel2.prototype.setSelected = function(selected) { }; VisualMapModel2.prototype.getSelected = function() { return null; }; VisualMapModel2.prototype.getValueState = function(value) { return null; }; VisualMapModel2.prototype.getVisualMeta = function(getColorVisual) { return null; }; VisualMapModel2.type = "visualMap"; VisualMapModel2.dependencies = ["series"]; VisualMapModel2.defaultOption = { show: true, z: 4, seriesIndex: "all", min: 0, max: 200, left: 0, right: null, top: null, bottom: 0, itemWidth: null, itemHeight: null, inverse: false, orient: "vertical", backgroundColor: "rgba(0,0,0,0)", borderColor: "#ccc", contentColor: "#5793f3", inactiveColor: "#aaa", borderWidth: 0, padding: 5, textGap: 10, precision: 0, textStyle: { color: "#333" } }; return VisualMapModel2; }(ComponentModel); var VisualMapModel$1 = VisualMapModel; export { VisualMapModel$1 as default };