UNPKG

cione-comp-lib

Version:

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

225 lines (224 loc) 7 kB
import { __extends } from "../../../../tslib/tslib.es6.mjs"; import { map, extend, createHashMap, each, isArray } from "../../../../zrender/lib/core/util.mjs"; import SeriesModel from "../../model/Series.mjs"; import Tree from "../../data/Tree.mjs"; import Model from "../../model/Model.mjs"; import { wrapTreePathInfo } from "../helper/treeHelper.mjs"; import { normalizeToArray } from "../../util/model.mjs"; import { createTooltipMarkup } from "../../component/tooltip/tooltipMarkup.mjs"; import enableAriaDecalForTree from "../helper/enableAriaDecalForTree.mjs"; var TreemapSeriesModel = function(_super) { __extends(TreemapSeriesModel2, _super); function TreemapSeriesModel2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = TreemapSeriesModel2.type; _this.preventUsingHoverLayer = true; return _this; } TreemapSeriesModel2.prototype.getInitialData = function(option, ecModel) { var root = { name: option.name, children: option.data }; completeTreeValue(root); var levels = option.levels || []; var designatedVisualItemStyle = this.designatedVisualItemStyle = {}; var designatedVisualModel = new Model({ itemStyle: designatedVisualItemStyle }, this, ecModel); levels = option.levels = setDefault(levels, ecModel); var levelModels = map(levels || [], function(levelDefine) { return new Model(levelDefine, designatedVisualModel, ecModel); }, this); var tree = Tree.createTree(root, this, beforeLink); function beforeLink(nodeData) { nodeData.wrapMethod("getItemModel", function(model, idx) { var node = tree.getNodeByDataIndex(idx); var levelModel = node ? levelModels[node.depth] : null; model.parentModel = levelModel || designatedVisualModel; return model; }); } return tree.data; }; TreemapSeriesModel2.prototype.optionUpdated = function() { this.resetViewRoot(); }; TreemapSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { var data = this.getData(); var value = this.getRawValue(dataIndex); var name = data.getName(dataIndex); return createTooltipMarkup("nameValue", { name, value }); }; TreemapSeriesModel2.prototype.getDataParams = function(dataIndex) { var params = _super.prototype.getDataParams.apply(this, arguments); var node = this.getData().tree.getNodeByDataIndex(dataIndex); params.treeAncestors = wrapTreePathInfo(node, this); params.treePathInfo = params.treeAncestors; return params; }; TreemapSeriesModel2.prototype.setLayoutInfo = function(layoutInfo) { this.layoutInfo = this.layoutInfo || {}; extend(this.layoutInfo, layoutInfo); }; TreemapSeriesModel2.prototype.mapIdToIndex = function(id) { var idIndexMap = this._idIndexMap; if (!idIndexMap) { idIndexMap = this._idIndexMap = createHashMap(); this._idIndexMapCount = 0; } var index = idIndexMap.get(id); if (index == null) { idIndexMap.set(id, index = this._idIndexMapCount++); } return index; }; TreemapSeriesModel2.prototype.getViewRoot = function() { return this._viewRoot; }; TreemapSeriesModel2.prototype.resetViewRoot = function(viewRoot) { viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot; var root = this.getRawData().tree.root; if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) { this._viewRoot = root; } }; TreemapSeriesModel2.prototype.enableAriaDecal = function() { enableAriaDecalForTree(this); }; TreemapSeriesModel2.type = "series.treemap"; TreemapSeriesModel2.layoutMode = "box"; TreemapSeriesModel2.defaultOption = { progressive: 0, left: "center", top: "middle", width: "80%", height: "80%", sort: true, clipWindow: "origin", squareRatio: 0.5 * (1 + Math.sqrt(5)), leafDepth: null, drillDownIcon: "\u25B6", zoomToNodeRatio: 0.32 * 0.32, roam: true, nodeClick: "zoomToNode", animation: true, animationDurationUpdate: 900, animationEasing: "quinticInOut", breadcrumb: { show: true, height: 22, left: "center", top: "bottom", emptyItemWidth: 25, itemStyle: { color: "rgba(0,0,0,0.7)", textStyle: { color: "#fff" } }, emphasis: { itemStyle: { color: "rgba(0,0,0,0.9)" } } }, label: { show: true, distance: 0, padding: 5, position: "inside", color: "#fff", overflow: "truncate" }, upperLabel: { show: false, position: [0, "50%"], height: 20, overflow: "truncate", verticalAlign: "middle" }, itemStyle: { color: null, colorAlpha: null, colorSaturation: null, borderWidth: 0, gapWidth: 0, borderColor: "#fff", borderColorSaturation: null }, emphasis: { upperLabel: { show: true, position: [0, "50%"], overflow: "truncate", verticalAlign: "middle" } }, visualDimension: 0, visualMin: null, visualMax: null, color: [], colorAlpha: null, colorSaturation: null, colorMappingBy: "index", visibleMin: 10, childrenVisibleMin: null, levels: [] }; return TreemapSeriesModel2; }(SeriesModel); function completeTreeValue(dataNode) { var sum = 0; each(dataNode.children, function(child) { completeTreeValue(child); var childValue = child.value; isArray(childValue) && (childValue = childValue[0]); sum += childValue; }); var thisValue = dataNode.value; if (isArray(thisValue)) { thisValue = thisValue[0]; } if (thisValue == null || isNaN(thisValue)) { thisValue = sum; } if (thisValue < 0) { thisValue = 0; } isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue; } function setDefault(levels, ecModel) { var globalColorList = normalizeToArray(ecModel.get("color")); var globalDecalList = normalizeToArray(ecModel.get(["aria", "decal", "decals"])); if (!globalColorList) { return; } levels = levels || []; var hasColorDefine; var hasDecalDefine; each(levels, function(levelDefine) { var model = new Model(levelDefine); var modelColor = model.get("color"); var modelDecal = model.get("decal"); if (model.get(["itemStyle", "color"]) || modelColor && modelColor !== "none") { hasColorDefine = true; } if (model.get(["itemStyle", "decal"]) || modelDecal && modelDecal !== "none") { hasDecalDefine = true; } }); var level0 = levels[0] || (levels[0] = {}); if (!hasColorDefine) { level0.color = globalColorList.slice(); } if (!hasDecalDefine && globalDecalList) { level0.decal = globalDecalList.slice(); } return levels; } var TreemapSeriesModel$1 = TreemapSeriesModel; export { TreemapSeriesModel$1 as default };