123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- /*
- * 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.
- */
- var _config = require("../../config");
- var __DEV__ = _config.__DEV__;
- var echarts = require("../../echarts");
- var zrUtil = require("zrender/lib/core/util");
- var visualSolution = require("../../visual/visualSolution");
- var Model = require("../../model/Model");
- /*
- * 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.
- */
- var DEFAULT_OUT_OF_BRUSH_COLOR = ['#ddd'];
- var BrushModel = echarts.extendComponentModel({
- type: 'brush',
- dependencies: ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'],
- /**
- * @protected
- */
- defaultOption: {
- // inBrush: null,
- // outOfBrush: null,
- toolbox: null,
- // Default value see preprocessor.
- brushLink: null,
- // Series indices array, broadcast using dataIndex.
- // or 'all', which means all series. 'none' or null means no series.
- seriesIndex: 'all',
- // seriesIndex array, specify series controlled by this brush component.
- geoIndex: null,
- //
- xAxisIndex: null,
- yAxisIndex: null,
- brushType: 'rect',
- // Default brushType, see BrushController.
- brushMode: 'single',
- // Default brushMode, 'single' or 'multiple'
- transformable: true,
- // Default transformable.
- brushStyle: {
- // Default brushStyle
- borderWidth: 1,
- color: 'rgba(120,140,180,0.3)',
- borderColor: 'rgba(120,140,180,0.8)'
- },
- throttleType: 'fixRate',
- // Throttle in brushSelected event. 'fixRate' or 'debounce'.
- // If null, no throttle. Valid only in the first brush component
- throttleDelay: 0,
- // Unit: ms, 0 means every event will be triggered.
- // FIXME
- // 试验效果
- removeOnClick: true,
- z: 10000
- },
- /**
- * @readOnly
- * @type {Array.<Object>}
- */
- areas: [],
- /**
- * Current activated brush type.
- * If null, brush is inactived.
- * see module:echarts/component/helper/BrushController
- * @readOnly
- * @type {string}
- */
- brushType: null,
- /**
- * Current brush opt.
- * see module:echarts/component/helper/BrushController
- * @readOnly
- * @type {Object}
- */
- brushOption: {},
- /**
- * @readOnly
- * @type {Array.<Object>}
- */
- coordInfoList: [],
- optionUpdated: function (newOption, isInit) {
- var thisOption = this.option;
- !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);
- var inBrush = thisOption.inBrush = thisOption.inBrush || {}; // Always give default visual, consider setOption at the second time.
- thisOption.outOfBrush = thisOption.outOfBrush || {
- color: DEFAULT_OUT_OF_BRUSH_COLOR
- };
- if (!inBrush.hasOwnProperty('liftZ')) {
- // Bigger than the highlight z lift, otherwise it will
- // be effected by the highlight z when brush.
- inBrush.liftZ = 5;
- }
- },
- /**
- * If ranges is null/undefined, range state remain.
- *
- * @param {Array.<Object>} [ranges]
- */
- setAreas: function (areas) {
- // If ranges is null/undefined, range state remain.
- // This helps user to dispatchAction({type: 'brush'}) with no areas
- // set but just want to get the current brush select info from a `brush` event.
- if (!areas) {
- return;
- }
- this.areas = zrUtil.map(areas, function (area) {
- return generateBrushOption(this.option, area);
- }, this);
- },
- /**
- * see module:echarts/component/helper/BrushController
- * @param {Object} brushOption
- */
- setBrushOption: function (brushOption) {
- this.brushOption = generateBrushOption(this.option, brushOption);
- this.brushType = this.brushOption.brushType;
- }
- });
- function generateBrushOption(option, brushOption) {
- return zrUtil.merge({
- brushType: option.brushType,
- brushMode: option.brushMode,
- transformable: option.transformable,
- brushStyle: new Model(option.brushStyle).getItemStyle(),
- removeOnClick: option.removeOnClick,
- z: option.z
- }, brushOption, true);
- }
- var _default = BrushModel;
- module.exports = _default;
|