SUPPORT-8732: adding shadow bar setting

This commit is contained in:
Рауф Латыпов 2024-12-13 02:09:25 +03:00
parent 5bf246ef0c
commit c36e0b04aa
2 changed files with 39 additions and 2 deletions

View file

@ -278,11 +278,47 @@ export class ErvuChartV2 extends Control implements Filterable {
if (this.bars) {
chartOptions.scales = chartOptions.scales ? chartOptions.scales : {};
chartOptions.scales.x = this.bars.x;
chartOptions.scales.y = this.bars.y
chartOptions.scales.y = this.bars.y;
// shadow bar treatment must be before border radius treatment
if (this.bars.shadowBar && chartConfig.data.datasets &&
chartConfig.data.datasets.length > 0) {
const shadowBarStack: string = this.bars.shadowBar;
let datasets = chartConfig.data.datasets;
const shadowBarIndex = datasets.findIndex(element => element.stack === shadowBarStack);
if (shadowBarIndex > -1) {
const shadowBar = datasets[shadowBarIndex];
const stacks: string[] = [];
datasets.forEach((element, index) => {
let stack: string = element.stack;
if (stack) {
if (stack !== shadowBarStack && stacks.includes(stack)) {
stacks.push(stack);
}
}
else {
stack = shadowBarStack + index;
element.stack = stack;
stacks.push(stack);
}
});
datasets.splice(shadowBarIndex, 1);
stacks.forEach(value => {
const cloneShadowBar = {...shadowBar};
cloneShadowBar.stack = value;
datasets.push(cloneShadowBar);
});
}
}
}
if (this.datasetsCommon && chartConfig.data.datasets &&
chartConfig.data.datasets.length > 0) {
// border radius treatment
if (this.datasetsCommon.borderRadiusNumber
|| (this.datasetsCommon.borderRadius &&
(this.datasetsCommon.borderRadius.topLeft ||

View file

@ -1,6 +1,7 @@
import {AxisSettings} from "./AxisSettings";
export class ChartBarSettings {
public shadowBar: string;
public x: AxisSettings;
public y: AxisSettings;
}
}