| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 | 
							
- /*
 
- * 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 prepareSeriesDataSchema from '../../data/helper/createDimensions.js';
 
- import { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper.js';
 
- import SeriesData from '../../data/SeriesData.js';
 
- import * as zrUtil from 'zrender/lib/core/util.js';
 
- import { groupData, SINGLE_REFERRING } from '../../util/model.js';
 
- import LegendVisualProvider from '../../visual/LegendVisualProvider.js';
 
- import { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';
 
- var DATA_NAME_INDEX = 2;
 
- var ThemeRiverSeriesModel = /** @class */function (_super) {
 
-   __extends(ThemeRiverSeriesModel, _super);
 
-   function ThemeRiverSeriesModel() {
 
-     var _this = _super !== null && _super.apply(this, arguments) || this;
 
-     _this.type = ThemeRiverSeriesModel.type;
 
-     return _this;
 
-   }
 
-   /**
 
-    * @override
 
-    */
 
-   ThemeRiverSeriesModel.prototype.init = function (option) {
 
-     // eslint-disable-next-line
 
-     _super.prototype.init.apply(this, arguments);
 
-     // Put this function here is for the sake of consistency of code style.
 
-     // Enable legend selection for each data item
 
-     // Use a function instead of direct access because data reference may changed
 
-     this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));
 
-   };
 
-   /**
 
-    * If there is no value of a certain point in the time for some event,set it value to 0.
 
-    *
 
-    * @param {Array} data  initial data in the option
 
-    * @return {Array}
 
-    */
 
-   ThemeRiverSeriesModel.prototype.fixData = function (data) {
 
-     var rawDataLength = data.length;
 
-     /**
 
-      * Make sure every layer data get the same keys.
 
-      * The value index tells which layer has visited.
 
-      * {
 
-      *  2014/01/01: -1
 
-      * }
 
-      */
 
-     var timeValueKeys = {};
 
-     // grouped data by name
 
-     var groupResult = groupData(data, function (item) {
 
-       if (!timeValueKeys.hasOwnProperty(item[0] + '')) {
 
-         timeValueKeys[item[0] + ''] = -1;
 
-       }
 
-       return item[2];
 
-     });
 
-     var layerData = [];
 
-     groupResult.buckets.each(function (items, key) {
 
-       layerData.push({
 
-         name: key,
 
-         dataList: items
 
-       });
 
-     });
 
-     var layerNum = layerData.length;
 
-     for (var k = 0; k < layerNum; ++k) {
 
-       var name_1 = layerData[k].name;
 
-       for (var j = 0; j < layerData[k].dataList.length; ++j) {
 
-         var timeValue = layerData[k].dataList[j][0] + '';
 
-         timeValueKeys[timeValue] = k;
 
-       }
 
-       for (var timeValue in timeValueKeys) {
 
-         if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {
 
-           timeValueKeys[timeValue] = k;
 
-           data[rawDataLength] = [timeValue, 0, name_1];
 
-           rawDataLength++;
 
-         }
 
-       }
 
-     }
 
-     return data;
 
-   };
 
-   /**
 
-    * @override
 
-    * @param  option  the initial option that user gave
 
-    * @param  ecModel  the model object for themeRiver option
 
-    */
 
-   ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {
 
-     var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];
 
-     var axisType = singleAxisModel.get('type');
 
-     // filter the data item with the value of label is undefined
 
-     var filterData = zrUtil.filter(option.data, function (dataItem) {
 
-       return dataItem[2] !== undefined;
 
-     });
 
-     // ??? TODO design a stage to transfer data for themeRiver and lines?
 
-     var data = this.fixData(filterData || []);
 
-     var nameList = [];
 
-     var nameMap = this.nameMap = zrUtil.createHashMap();
 
-     var count = 0;
 
-     for (var i = 0; i < data.length; ++i) {
 
-       nameList.push(data[i][DATA_NAME_INDEX]);
 
-       if (!nameMap.get(data[i][DATA_NAME_INDEX])) {
 
-         nameMap.set(data[i][DATA_NAME_INDEX], count);
 
-         count++;
 
-       }
 
-     }
 
-     var dimensions = prepareSeriesDataSchema(data, {
 
-       coordDimensions: ['single'],
 
-       dimensionsDefine: [{
 
-         name: 'time',
 
-         type: getDimensionTypeByAxis(axisType)
 
-       }, {
 
-         name: 'value',
 
-         type: 'float'
 
-       }, {
 
-         name: 'name',
 
-         type: 'ordinal'
 
-       }],
 
-       encodeDefine: {
 
-         single: 0,
 
-         value: 1,
 
-         itemName: 2
 
-       }
 
-     }).dimensions;
 
-     var list = new SeriesData(dimensions, this);
 
-     list.initData(data);
 
-     return list;
 
-   };
 
-   /**
 
-    * The raw data is divided into multiple layers and each layer
 
-    *     has same name.
 
-    */
 
-   ThemeRiverSeriesModel.prototype.getLayerSeries = function () {
 
-     var data = this.getData();
 
-     var lenCount = data.count();
 
-     var indexArr = [];
 
-     for (var i = 0; i < lenCount; ++i) {
 
-       indexArr[i] = i;
 
-     }
 
-     var timeDim = data.mapDimension('single');
 
-     // data group by name
 
-     var groupResult = groupData(indexArr, function (index) {
 
-       return data.get('name', index);
 
-     });
 
-     var layerSeries = [];
 
-     groupResult.buckets.each(function (items, key) {
 
-       items.sort(function (index1, index2) {
 
-         return data.get(timeDim, index1) - data.get(timeDim, index2);
 
-       });
 
-       layerSeries.push({
 
-         name: key,
 
-         indices: items
 
-       });
 
-     });
 
-     return layerSeries;
 
-   };
 
-   /**
 
-    * Get data indices for show tooltip content
 
-    */
 
-   ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {
 
-     if (!zrUtil.isArray(dim)) {
 
-       dim = dim ? [dim] : [];
 
-     }
 
-     var data = this.getData();
 
-     var layerSeries = this.getLayerSeries();
 
-     var indices = [];
 
-     var layerNum = layerSeries.length;
 
-     var nestestValue;
 
-     for (var i = 0; i < layerNum; ++i) {
 
-       var minDist = Number.MAX_VALUE;
 
-       var nearestIdx = -1;
 
-       var pointNum = layerSeries[i].indices.length;
 
-       for (var j = 0; j < pointNum; ++j) {
 
-         var theValue = data.get(dim[0], layerSeries[i].indices[j]);
 
-         var dist = Math.abs(theValue - value);
 
-         if (dist <= minDist) {
 
-           nestestValue = theValue;
 
-           minDist = dist;
 
-           nearestIdx = layerSeries[i].indices[j];
 
-         }
 
-       }
 
-       indices.push(nearestIdx);
 
-     }
 
-     return {
 
-       dataIndices: indices,
 
-       nestestValue: nestestValue
 
-     };
 
-   };
 
-   ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {
 
-     var data = this.getData();
 
-     var name = data.getName(dataIndex);
 
-     var value = data.get(data.mapDimension('value'), dataIndex);
 
-     return createTooltipMarkup('nameValue', {
 
-       name: name,
 
-       value: value
 
-     });
 
-   };
 
-   ThemeRiverSeriesModel.type = 'series.themeRiver';
 
-   ThemeRiverSeriesModel.dependencies = ['singleAxis'];
 
-   ThemeRiverSeriesModel.defaultOption = {
 
-     // zlevel: 0,
 
-     z: 2,
 
-     colorBy: 'data',
 
-     coordinateSystem: 'singleAxis',
 
-     // gap in axis's orthogonal orientation
 
-     boundaryGap: ['10%', '10%'],
 
-     // legendHoverLink: true,
 
-     singleAxisIndex: 0,
 
-     animationEasing: 'linear',
 
-     label: {
 
-       margin: 4,
 
-       show: true,
 
-       position: 'left',
 
-       fontSize: 11
 
-     },
 
-     emphasis: {
 
-       label: {
 
-         show: true
 
-       }
 
-     }
 
-   };
 
-   return ThemeRiverSeriesModel;
 
- }(SeriesModel);
 
- export default ThemeRiverSeriesModel;
 
 
  |