|   | 
| /* | 
| * 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 an 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; |