diff --git a/src/chart/bar/BarSeries.ts b/src/chart/bar/BarSeries.ts index d2b76ab3a7..eb838c11ff 100644 --- a/src/chart/bar/BarSeries.ts +++ b/src/chart/bar/BarSeries.ts @@ -27,7 +27,7 @@ import { SeriesSamplingOptionMixin, SeriesLabelOption, SeriesEncodeOptionMixin, - DefaultStatesMixinEmpasis, + DefaultStatesMixinEmphasis, CallbackDataParams } from '../../util/types'; import type Cartesian2D from '../../coord/cartesian/Cartesian2D'; @@ -49,7 +49,7 @@ export interface BarStateOption { } interface BarStatesMixin { - emphasis?: DefaultStatesMixinEmpasis + emphasis?: DefaultStatesMixinEmphasis } export interface BarItemStyleOption extends ItemStyleOption { diff --git a/src/chart/funnel/FunnelSeries.ts b/src/chart/funnel/FunnelSeries.ts index b40ed8b253..152cdb37da 100644 --- a/src/chart/funnel/FunnelSeries.ts +++ b/src/chart/funnel/FunnelSeries.ts @@ -37,7 +37,7 @@ import { VerticalAlign, SeriesLabelOption, SeriesEncodeOptionMixin, - DefaultStatesMixinEmpasis, + DefaultStatesMixinEmphasis, CallbackDataParams } from '../../util/types'; import GlobalModel from '../../model/Global'; @@ -49,7 +49,7 @@ type FunnelLabelOption = Omit & { }; interface FunnelStatesMixin { - emphasis?: DefaultStatesMixinEmpasis + emphasis?: DefaultStatesMixinEmphasis } export interface FunnelCallbackDataParams extends CallbackDataParams { diff --git a/src/chart/gauge/GaugeSeries.ts b/src/chart/gauge/GaugeSeries.ts index 78601156d2..07bfcc470e 100644 --- a/src/chart/gauge/GaugeSeries.ts +++ b/src/chart/gauge/GaugeSeries.ts @@ -29,7 +29,7 @@ import { OptionDataValueNumeric, StatesOptionMixin, SeriesEncodeOptionMixin, - DefaultStatesMixinEmpasis, + DefaultStatesMixinEmphasis, CallbackDataParams } from '../../util/types'; import GlobalModel from '../../model/Global'; @@ -105,7 +105,7 @@ interface DetailOption extends LabelOption { } interface GaugeStatesMixin { - emphasis?: DefaultStatesMixinEmpasis + emphasis?: DefaultStatesMixinEmphasis } export interface GaugeStateOption { itemStyle?: ItemStyleOption diff --git a/src/chart/heatmap/HeatmapSeries.ts b/src/chart/heatmap/HeatmapSeries.ts index 700f0b439d..df68efdeb6 100644 --- a/src/chart/heatmap/HeatmapSeries.ts +++ b/src/chart/heatmap/HeatmapSeries.ts @@ -30,7 +30,7 @@ import { StatesOptionMixin, SeriesEncodeOptionMixin, SeriesOnCalendarOptionMixin, - DefaultStatesMixinEmpasis, + DefaultStatesMixinEmphasis, CallbackDataParams } from '../../util/types'; import GlobalModel from '../../model/Global'; @@ -43,12 +43,14 @@ type HeatmapDataValue = OptionDataValue[]; export interface HeatmapStateOption { // Available on cartesian2d coordinate system - itemStyle?: ItemStyleOption + itemStyle?: ItemStyleOption & { + borderRadius?: number | number[] + } label?: SeriesLabelOption } interface FunnelStatesMixin { - emphasis?: DefaultStatesMixinEmpasis + emphasis?: DefaultStatesMixinEmphasis } export interface HeatmapDataItemOption extends HeatmapStateOption, StatesOptionMixin { diff --git a/src/chart/heatmap/HeatmapView.ts b/src/chart/heatmap/HeatmapView.ts index 253fe50e6a..cd835ae048 100644 --- a/src/chart/heatmap/HeatmapView.ts +++ b/src/chart/heatmap/HeatmapView.ts @@ -205,6 +205,7 @@ class HeatmapView extends ChartView { let emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle(); let blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(); let selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle(); + let borderRadius = seriesModel.get(['itemStyle', 'borderRadius']); let labelStatesModels = getLabelStatesModels(seriesModel); const emphasisModel = seriesModel.getModel('emphasis'); let focus = emphasisModel.get('focus'); @@ -268,15 +269,21 @@ class HeatmapView extends ChartView { }); } - const itemModel = data.getItemModel(idx); - // Optimization for large datset if (data.hasItemOption) { + const itemModel = data.getItemModel(idx); const emphasisModel = itemModel.getModel('emphasis'); emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle(); blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle(); selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle(); + // Each item value struct in the data would be firstly + // { + // itemStyle: { borderRadius: [30, 30] }, + // value: [2022, 02, 22] + // } + borderRadius = itemModel.get(['itemStyle', 'borderRadius']); + focus = emphasisModel.get('focus'); blurScope = emphasisModel.get('blurScope'); emphasisDisabled = emphasisModel.get('disabled'); @@ -284,6 +291,8 @@ class HeatmapView extends ChartView { labelStatesModels = getLabelStatesModels(itemModel); } + rect.shape.r = borderRadius; + const rawValue = seriesModel.getRawValue(idx) as OptionDataValue[]; let defaultText = '-'; if (rawValue && rawValue[2] != null) { diff --git a/src/chart/lines/LinesSeries.ts b/src/chart/lines/LinesSeries.ts index 03a08dfbbb..f97b6a0b97 100644 --- a/src/chart/lines/LinesSeries.ts +++ b/src/chart/lines/LinesSeries.ts @@ -35,7 +35,7 @@ import { StatesOptionMixin, SeriesLineLabelOption, DimensionDefinitionLoose, - DefaultStatesMixinEmpasis, + DefaultStatesMixinEmphasis, ZRColor, CallbackDataParams } from '../../util/types'; @@ -86,7 +86,7 @@ interface LegacyDataItemOption { } interface LinesStatesMixin { - emphasis?: DefaultStatesMixinEmpasis + emphasis?: DefaultStatesMixinEmphasis } export interface LinesStateOption { lineStyle?: LinesLineStyleOption<(TCbParams extends never ? never : (params: TCbParams) => ZRColor) | ZRColor> diff --git a/src/chart/parallel/ParallelSeries.ts b/src/chart/parallel/ParallelSeries.ts index d3f94b0176..301b56c106 100644 --- a/src/chart/parallel/ParallelSeries.ts +++ b/src/chart/parallel/ParallelSeries.ts @@ -33,10 +33,10 @@ import { OptionEncodeValue, Dictionary, OptionEncode, - DefaultStatesMixinEmpasis, + DefaultStatesMixinEmphasis, ZRColor, CallbackDataParams - } from '../../util/types'; +} from '../../util/types'; import GlobalModel from '../../model/Global'; import SeriesData from '../../data/SeriesData'; import { ParallelActiveState, ParallelAxisOption } from '../../coord/parallel/AxisModel'; @@ -46,7 +46,7 @@ import ParallelModel from '../../coord/parallel/ParallelModel'; type ParallelSeriesDataValue = OptionDataValue[]; interface ParallelStatesMixin { - emphasis?: DefaultStatesMixinEmpasis + emphasis?: DefaultStatesMixinEmphasis } export interface ParallelStateOption { lineStyle?: LineStyleOption<(TCbParams extends never ? never : (params: TCbParams) => ZRColor) | ZRColor> diff --git a/src/chart/radar/RadarSeries.ts b/src/chart/radar/RadarSeries.ts index 761f096abe..1405ac074b 100644 --- a/src/chart/radar/RadarSeries.ts +++ b/src/chart/radar/RadarSeries.ts @@ -33,7 +33,7 @@ import { OptionDataItemObject, SeriesEncodeOptionMixin, CallbackDataParams, - DefaultStatesMixinEmpasis + DefaultStatesMixinEmphasis } from '../../util/types'; import GlobalModel from '../../model/Global'; import SeriesData from '../../data/SeriesData'; @@ -45,7 +45,7 @@ import { type RadarSeriesDataValue = OptionDataValue[]; interface RadarStatesMixin { - emphasis?: DefaultStatesMixinEmpasis + emphasis?: DefaultStatesMixinEmphasis } export interface RadarSeriesStateOption { lineStyle?: LineStyleOption diff --git a/src/chart/themeRiver/ThemeRiverSeries.ts b/src/chart/themeRiver/ThemeRiverSeries.ts index 64a01a004e..f1fb0bc495 100644 --- a/src/chart/themeRiver/ThemeRiverSeries.ts +++ b/src/chart/themeRiver/ThemeRiverSeries.ts @@ -35,7 +35,7 @@ import { Dictionary, SeriesLabelOption, CallbackDataParams, - DefaultStatesMixinEmpasis + DefaultStatesMixinEmphasis } from '../../util/types'; import SingleAxis from '../../coord/single/SingleAxis'; import GlobalModel from '../../model/Global'; @@ -51,7 +51,7 @@ interface ThemeRiverSeriesLabelOption extends SeriesLabelOption { type ThemerRiverDataItem = [OptionDataValueDate, OptionDataValueNumeric, string]; interface ThemeRiverStatesMixin { - emphasis?: DefaultStatesMixinEmpasis + emphasis?: DefaultStatesMixinEmphasis } export interface ThemeRiverStateOption { label?: ThemeRiverSeriesLabelOption diff --git a/src/util/types.ts b/src/util/types.ts index 4c00203ea0..dbaafc81b6 100644 --- a/src/util/types.ts +++ b/src/util/types.ts @@ -1471,7 +1471,7 @@ export interface DefaultStatesMixin { export type DefaultEmphasisFocus = 'none' | 'self' | 'series'; -export interface DefaultStatesMixinEmpasis { +export interface DefaultStatesMixinEmphasis { /** * self: Focus self and blur all others. * series: Focus series and blur all other series. diff --git a/test/heatmap-borderRadius.html b/test/heatmap-borderRadius.html new file mode 100644 index 0000000000..f7cc584a4e --- /dev/null +++ b/test/heatmap-borderRadius.html @@ -0,0 +1,328 @@ + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file