UNPKG

di-echarts

Version:

Apache ECharts is a powerful, interactive charting and data visualization library for browser

165 lines (134 loc) 4.64 kB
/* * 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 SeriesModel from '../../model/Series'; import {WhiskerBoxCommonMixin} from '../helper/whiskerBoxCommon'; import { SeriesOption, SeriesOnCartesianOptionMixin, LayoutOrient, ItemStyleOption, ZRColor, ColorString, SeriesLabelOption, SeriesLargeOptionMixin, StatesOptionMixin, SeriesEncodeOptionMixin, DefaultEmphasisFocus, OptionDataValue } from '../../util/types'; import SeriesData from '../../data/SeriesData'; import Cartesian2D from '../../coord/cartesian/Cartesian2D'; import { BrushCommonSelectorsForSeries } from '../../component/brush/selector'; import { mixin } from 'zrender/src/core/util'; type CandlestickDataValue = OptionDataValue[]; interface CandlestickItemStyleOption extends ItemStyleOption { color0?: ZRColor borderColor0?: ColorString borderColorDoji?: ZRColor } export interface CandlestickStateOption { itemStyle?: CandlestickItemStyleOption label?: SeriesLabelOption } export interface CandlestickDataItemOption extends CandlestickStateOption, StatesOptionMixin<CandlestickStateOption, ExtraStateOption> { value: CandlestickDataValue } interface ExtraStateOption { emphasis?: { focus?: DefaultEmphasisFocus scale?: boolean } } export interface CandlestickSeriesOption extends SeriesOption<CandlestickStateOption, ExtraStateOption>, CandlestickStateOption, SeriesOnCartesianOptionMixin, SeriesLargeOptionMixin, SeriesEncodeOptionMixin { type?: 'candlestick' coordinateSystem?: 'cartesian2d' layout?: LayoutOrient clip?: boolean barMaxWidth?: number | string barMinWidth?: number | string barWidth?: number | string data?: (CandlestickDataValue | CandlestickDataItemOption)[] } class CandlestickSeriesModel extends SeriesModel<CandlestickSeriesOption> { static readonly type = 'series.candlestick'; readonly type = CandlestickSeriesModel.type; static readonly dependencies = ['xAxis', 'yAxis', 'grid']; coordinateSystem: Cartesian2D; dimensions: string[]; defaultValueDimensions = [ {name: 'open', defaultTooltip: true}, {name: 'close', defaultTooltip: true}, {name: 'lowest', defaultTooltip: true}, {name: 'highest', defaultTooltip: true} ]; static defaultOption: CandlestickSeriesOption = { // zlevel: 0, z: 2, coordinateSystem: 'cartesian2d', legendHoverLink: true, // xAxisIndex: 0, // yAxisIndex: 0, layout: null, // 'horizontal' or 'vertical' clip: true, itemStyle: { color: '#eb5454', // positive color0: '#47b262', // negative borderColor: '#eb5454', borderColor0: '#47b262', borderColorDoji: null, // when close === open // borderColor: '#d24040', // borderColor0: '#398f4f', borderWidth: 1 }, emphasis: { scale: true, itemStyle: { borderWidth: 2 } }, barMaxWidth: null, barMinWidth: null, barWidth: null, large: true, largeThreshold: 600, progressive: 3e3, progressiveThreshold: 1e4, progressiveChunkMode: 'mod', animationEasing: 'linear', animationDuration: 300 }; /** * Get dimension for shadow in dataZoom * @return dimension name */ getShadowDim() { return 'open'; } brushSelector(dataIndex: number, data: SeriesData, selectors: BrushCommonSelectorsForSeries): boolean { const itemLayout = data.getItemLayout(dataIndex); return itemLayout && selectors.rect(itemLayout.brushRect); } } mixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true); export default CandlestickSeriesModel;