project/node_modules/echarts/lib/component/brush/BrushModel.js

136 lines
4.6 KiB
JavaScript
Raw Permalink Normal View History

2024-07-14 15:48:34 +08:00
/*
* 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 * as zrUtil from 'zrender/lib/core/util.js';
import * as visualSolution from '../../visual/visualSolution.js';
import Model from '../../model/Model.js';
import ComponentModel from '../../model/Component.js';
var DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';
var BrushModel = /** @class */function (_super) {
__extends(BrushModel, _super);
function BrushModel() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.type = BrushModel.type;
/**
* @readOnly
*/
_this.areas = [];
/**
* Current brush painting area settings.
* @readOnly
*/
_this.brushOption = {};
return _this;
}
BrushModel.prototype.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 `areas` is null/undefined, range state remain.
*/
BrushModel.prototype.setAreas = function (areas) {
if (process.env.NODE_ENV !== 'production') {
zrUtil.assert(zrUtil.isArray(areas));
zrUtil.each(areas, function (area) {
zrUtil.assert(area.brushType, 'Illegal areas');
});
}
// If areas 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);
};
/**
* Set the current painting brush option.
*/
BrushModel.prototype.setBrushOption = function (brushOption) {
this.brushOption = generateBrushOption(this.option, brushOption);
this.brushType = this.brushOption.brushType;
};
BrushModel.type = 'brush';
BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];
BrushModel.defaultOption = {
seriesIndex: 'all',
brushType: 'rect',
brushMode: 'single',
transformable: true,
brushStyle: {
borderWidth: 1,
color: 'rgba(210,219,238,0.3)',
borderColor: '#D2DBEE'
},
throttleType: 'fixRate',
throttleDelay: 0,
removeOnClick: true,
z: 10000
};
return BrushModel;
}(ComponentModel);
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);
}
export default BrushModel;