@@ -31,6 +31,7 @@ public class CampaignDashboardDiagramComponent extends VerticalLayout {
3131 private final List <Object > axisKeys = new ArrayList <>();
3232 private final Map <Object , String > axisCaptions = new HashMap <>();
3333 private final Map <CampaignDashboardTotalsReference , Double > totalValuesMap ;
34+ private boolean totalValuesWithoutStacks ;
3435 private boolean showPercentages ;
3536
3637 private final HighChart campaignColumnChart ;
@@ -45,6 +46,10 @@ public CampaignDashboardDiagramComponent(
4546 this .showPercentages = showPercentages ;
4647 this .totalValuesMap = totalValuesMap ;
4748
49+ if (this .totalValuesMap .keySet ().stream ().noneMatch (r -> r .getStack () != null )) {
50+ totalValuesWithoutStacks = true ;
51+ }
52+
4853 campaignColumnChart = new HighChart ();
4954
5055 setSizeFull ();
@@ -173,8 +178,10 @@ public void buildDiagramChart(String title) {
173178 for (Object axisKey : axisKeys ) {
174179 if (seriesData .containsKey (axisKey )) {
175180 if (showPercentages && totalValuesMap != null ) {
176- double totalValue =
177- totalValuesMap .get (new CampaignDashboardTotalsReference (seriesData .get (axisKey ).getGroupingKey (), series .getStack ()));
181+ double totalValue = totalValuesMap .get (
182+ new CampaignDashboardTotalsReference (
183+ seriesData .get (axisKey ).getGroupingKey (),
184+ totalValuesWithoutStacks ? null : series .getStack ()));
178185 if (totalValue > 0 ) {
179186 hcjs .append (
180187 BigDecimal .valueOf (seriesData .get (axisKey ).getValueSum ().doubleValue () / totalValue * 100 )
0 commit comments