/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * AUTO-GENERATED FILE. DO NOT MODIFY. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import { __extends } from "tslib"; import SeriesModel from '../../model/Series.js'; import Tree from '../../data/Tree.js'; import Model from '../../model/Model.js'; import { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js'; import { wrapTreePathInfo } from '../helper/treeHelper.js'; var TreeSeriesModel = /** @class */ function (_super) { __extends(TreeSeriesModel, _super); function TreeSeriesModel() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.hasSymbolVisual = true; // Do it self. _this.ignoreStyleOnData = true; return _this; } /** * Init a tree data structure from data in option series */ TreeSeriesModel.prototype.getInitialData = function (option) { // create a virtual root var root = { name: option.name, children: option.data }; var leaves = option.leaves || {}; var leavesModel = new Model(leaves, this, this.ecModel); var tree = Tree.createTree(root, this, beforeLink); function beforeLink(nodeData) { nodeData.wrapMethod('getItemModel', function (model, idx) { var node = tree.getNodeByDataIndex(idx); if (!(node && node.children.length && node.isExpand)) { model.parentModel = leavesModel; } return model; }); } var treeDepth = 0; tree.eachNode('preorder', function (node) { if (node.depth > treeDepth) { treeDepth = node.depth; } }); var expandAndCollapse = option.expandAndCollapse; var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth; tree.root.eachNode('preorder', function (node) { var item = node.hostTree.data.getRawDataItem(node.dataIndex); // Add item.collapsed != null, because users can collapse node original in the series.data. node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth; }); return tree.data; }; /** * Make the configuration 'orient' backward compatibly, with 'horizontal = LR', 'vertical = TB'. * @returns {string} orient */ TreeSeriesModel.prototype.getOrient = function () { var orient = this.get('orient'); if (orient === 'horizontal') { orient = 'LR'; } else if (orient === 'vertical') { orient = 'TB'; } return orient; }; TreeSeriesModel.prototype.setZoom = function (zoom) { this.option.zoom = zoom; }; TreeSeriesModel.prototype.setCenter = function (center) { this.option.center = center; }; TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) { var tree = this.getData().tree; var realRoot = tree.root.children[0]; var node = tree.getNodeByDataIndex(dataIndex); var value = node.getValue(); var name = node.name; while (node && node !== realRoot) { name = node.parentNode.name + '.' + name; node = node.parentNode; } return createTooltipMarkup('nameValue', { name: name, value: value, noValue: isNaN(value) || value == null }); }; // Add tree path to tooltip param TreeSeriesModel.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.collapsed = !node.isExpand; return params; }; TreeSeriesModel.type = 'series.tree'; // can support the position parameters 'left', 'top','right','bottom', 'width', // 'height' in the setOption() with 'merge' mode normal. TreeSeriesModel.layoutMode = 'box'; TreeSeriesModel.defaultOption = { // zlevel: 0, z: 2, coordinateSystem: 'view', // the position of the whole view left: '12%', top: '12%', right: '12%', bottom: '12%', // the layout of the tree, two value can be selected, 'orthogonal' or 'radial' layout: 'orthogonal', // value can be 'polyline' edgeShape: 'curve', edgeForkPosition: '50%', // true | false | 'move' | 'scale', see module:component/helper/RoamController. roam: false, // Symbol size scale ratio in roam nodeScaleRatio: 0.4, // Default on center of graph center: null, zoom: 1, orient: 'LR', symbol: 'emptyCircle', symbolSize: 7, expandAndCollapse: true, initialTreeDepth: 2, lineStyle: { color: '#ccc', width: 1.5, curveness: 0.5 }, itemStyle: { color: 'lightsteelblue', // borderColor: '#c23531', borderWidth: 1.5 }, label: { show: true }, animationEasing: 'linear', animationDuration: 700, animationDurationUpdate: 500 }; return TreeSeriesModel; }(SeriesModel); export default TreeSeriesModel;