echarts AxisPointerModel 源码
echarts AxisPointerModel 代码
文件路径:/src/component/axisPointer/AxisPointerModel.ts
/*
* 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 ComponentModel from '../../model/Component';
import {
ComponentOption,
ScaleDataValue,
CommonAxisPointerOption
} from '../../util/types';
interface MapperParamAxisInfo {
axisIndex: number
axisName: string
axisId: string
axisDim: string
}
interface AxisPointerLink {
xAxisIndex?: number[] | 'all'
yAxisIndex?: number[] | 'all'
xAxisId?: string[]
yAxisId?: string[]
xAxisName?: string[] | string
yAxisName?: string[] | string
radiusAxisIndex?: number[] | 'all'
angleAxisIndex?: number[] | 'all'
radiusAxisId?: string[]
angleAxisId?: string[]
radiusAxisName?: string[] | string
angleAxisName?: string[] | string
singleAxisIndex?: number[] | 'all'
singleAxisId?: string[]
singleAxisName?: string[] | string
mapper?(
sourceVal: ScaleDataValue,
sourceAxisInfo: MapperParamAxisInfo,
targetAxisInfo: MapperParamAxisInfo
): CommonAxisPointerOption['value'] // TODO: TYPE Should return numeric value or category value?
}
// TODO: TYPE AxisPointerOption for each axis
export interface AxisPointerOption extends ComponentOption, Omit<CommonAxisPointerOption, 'type'> {
mainType?: 'axisPointer'
type?: 'line' | 'shadow' | 'cross' | 'none'
link?: AxisPointerLink[]
}
class AxisPointerModel extends ComponentModel<AxisPointerOption> {
static type = 'axisPointer' as const;
type = AxisPointerModel.type;
// Will be injected and read in modelHelper and axisTrigger
// No need to care about it.
coordSysAxesInfo: unknown;
static defaultOption: AxisPointerOption = {
// 'auto' means that show when triggered by tooltip or handle.
show: 'auto',
// zlevel: 0,
z: 50,
type: 'line', // 'line' 'shadow' 'cross' 'none'.
// axispointer triggered by tootip determine snap automatically,
// see `modelHelper`.
snap: false,
triggerTooltip: true,
value: null,
status: null, // Init value depends on whether handle is used.
link: [],
// Do not set 'auto' here, otherwise global animation: false
// will not effect at this axispointer.
animation: null,
animationDurationUpdate: 200,
lineStyle: {
color: '#B9BEC9',
width: 1,
type: 'dashed'
},
shadowStyle: {
color: 'rgba(210,219,238,0.2)'
},
label: {
show: true,
formatter: null, // string | Function
precision: 'auto', // Or a number like 0, 1, 2 ...
margin: 3,
color: '#fff',
padding: [5, 7, 5, 7],
backgroundColor: 'auto', // default: axis line color
borderColor: null,
borderWidth: 0,
borderRadius: 3
},
handle: {
show: false,
// eslint-disable-next-line
icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z', // jshint ignore:line
size: 45,
// handle margin is from symbol center to axis, which is stable when circular move.
margin: 50,
// color: '#1b8bbd'
// color: '#2f4554'
color: '#333',
shadowBlur: 3,
shadowColor: '#aaa',
shadowOffsetX: 0,
shadowOffsetY: 2,
// For mobile performance
throttle: 40
}
};
}
export default AxisPointerModel;
相关信息
相关文章
echarts CartesianAxisPointer 源码
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦