Skip to content

Commit 7eee9a0

Browse files
author
pipeline
committed
v28.1.38 is released
1 parent fc0bec9 commit 7eee9a0

File tree

142 files changed

+7122
-772
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

142 files changed

+7122
-772
lines changed

controls/barcodegenerator/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## [Unreleased]
44

5-
## 28.1.37 (2024-12-31)
5+
## 28.1.38 (2025-01-07)
66

77
### Barcode
88

controls/buttons/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## [Unreleased]
44

5-
## 28.1.37 (2024-12-31)
5+
## 28.1.38 (2025-01-07)
66

77
### Switch
88

controls/calendars/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## [Unreleased]
44

5-
## 28.1.37 (2024-12-31)
5+
## 28.1.38 (2025-01-07)
66

77
### DateRangePicker
88

controls/charts/CHANGELOG.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,21 @@
22

33
## [Unreleased]
44

5+
## 28.1.38 (2025-01-07)
6+
7+
### Chart
8+
9+
#### Bug Fixes
10+
11+
- `#F195601` - The console error no longer occurs when rendering a single data point with a multilevel label.
12+
- `#I676165` - Exporting a chart with complex properties to CSV or XLSX now functions correctly.
13+
14+
### Accumulation Chart
15+
16+
#### Bug Fixes
17+
18+
- `#I674361` - The subtitle now renders correctly even when its length exceeds that of the title.
19+
520
## 28.1.37 (2024-12-31)
621

722
### Chart
@@ -11,7 +26,7 @@
1126
- `#I667080` - The column series now renders properly when the width is set in pixels and `enableSideBySidePlacement` is set to false.
1227
- `#I654525` - The y-axis now dynamically adjusts to accommodate negative ranges when the negative error bar exceeds the minimum value.
1328

14-
## 28.1.36
29+
## 28.1.36 (2024-12-24)
1530

1631
### Chart
1732

controls/charts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-charts",
3-
"version": "28.1.35",
3+
"version": "28.1.37",
44
"description": "Feature-rich chart control with built-in support for over 25 chart types, technical indictors, trendline, zooming, tooltip, selection, crosshair and trackball.",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

controls/charts/spec/chart/series/error-bar.spec.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,6 +1157,46 @@ describe('Chart Control', () => {
11571157
chartObj.refresh();
11581158
});
11591159
});
1160+
1161+
describe('Chart error bar series auto range update', () => {
1162+
let chartObj: Chart;
1163+
let elem: HTMLElement;
1164+
let loaded: EmitType<ILoadedEventArgs>;
1165+
beforeAll(() => {
1166+
elem = createElement('div', { id: 'container' });
1167+
document.body.appendChild(elem);
1168+
chartObj = new Chart(
1169+
{
1170+
series: [{
1171+
dataSource: [{ x: 2005, y: 28 }, { x: 2006, y: 25 },{ x: 2007, y: 26 }, { x: 2008, y: 47 },
1172+
{ x: 2009, y: 32 }, { x: 2010, y: 35 }, { x: 2011, y: 30 }],
1173+
xName: 'x', yName: 'y',
1174+
errorBar: {
1175+
visible: true,
1176+
errorBarColorMapping: 'color',
1177+
verticalError: 'error'
1178+
},
1179+
type: 'Line'
1180+
}],
1181+
1182+
});
1183+
chartObj.appendTo('#container');
1184+
1185+
});
1186+
afterAll((): void => {
1187+
elem.remove();
1188+
chartObj.destroy();
1189+
});
1190+
it('Checking for minimum error', (): void => {
1191+
loaded = (args: Object): void => {
1192+
const element: Element = document.getElementById('container1_AxisLabel_10');
1193+
expect(element.textContent === '50').toBe(true);
1194+
};
1195+
chartObj.loaded = loaded;
1196+
chartObj.refresh();
1197+
});
1198+
1199+
});
11601200
it('memory leak', () => {
11611201
profile.sample();
11621202
let average: any = inMB(profile.averageChange)

controls/charts/spec/pie/base/accumulation.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ describe('accumulation and Doughnut Control Checking', () => {
176176
accumulation.subTitle = 'Syncfusion accumulation subTitleSyncfusionaccumulationTitleSyncfusion';
177177
accumulation.dataBind();
178178
text = getElement(id + '_subTitle');
179-
expect(text.childNodes.length == 2).toBe(true);
179+
expect(text.childNodes.length == 1).toBe(true);
180180
});
181181

182182
it('Checking the title font size', () => {
@@ -214,7 +214,7 @@ describe('accumulation and Doughnut Control Checking', () => {
214214
accumulation.subTitleStyle.textOverflow = 'Trim';
215215
accumulation.dataBind();
216216
text = getElement(id + '_subTitle');
217-
expect(text.textContent.indexOf('...') != -1).toBe(true);
217+
expect(text.textContent.indexOf('...') == -1).toBe(true);
218218
});
219219
it('Checking the border color', () => {
220220
accumulation.border.width = 2;

controls/charts/src/accumulation-chart/accumulation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1796,7 +1796,7 @@ export class AccumulationChart extends Component<HTMLElement> implements INotify
17961796
titleWidth = measureText(titleText, this.titleStyle, this.themeStyle.chartSubTitleFont).width;
17971797
maxWidth = titleWidth > maxWidth ? titleWidth : maxWidth;
17981798
}
1799-
this.subTitleCollection = getTitle(this.subTitle, this.subTitleStyle, maxWidth, this.enableRtl,
1799+
this.subTitleCollection = getTitle(this.subTitle, this.subTitleStyle, this.initialClipRect.width, this.enableRtl,
18001800
this.themeStyle.chartSubTitleFont);
18011801
subTitleHeight = (measureText(this.subTitle, this.subTitleStyle,
18021802
this.themeStyle.chartSubTitleFont).height * this.subTitleCollection.length);

controls/charts/src/chart/axis/multi-level-labels.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,8 @@ export class MultiLevelLabel {
281281
const groupLabel: MultiLevelLabels = <MultiLevelLabels>axis.multiLevelLabels[labelIndex as number];
282282
const categoryType: BorderType = groupLabel.categories[categoryIndex as number].type;
283283
const width: number = gap + padding;
284-
let height: number = this.xAxisMultiLabelHeight[labelIndex as number] + padding;
284+
let height: number = isNullOrUndefined(this.xAxisMultiLabelHeight[labelIndex as number]) ? 0 :
285+
(this.xAxisMultiLabelHeight[labelIndex as number] + padding);
285286
const scrollBarHeight: number = axis.labelPosition === 'Outside' ? axis.scrollBarHeight : 0;
286287
const x: number = startX + axisRect.x;
287288
const y: number = ((!opposedPosition && isOutside) || (opposedPosition && !isOutside)) ? (startY + axisRect.y +

controls/charts/src/chart/print-export/export.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { IExportEventArgs } from '../model/chart-interface';
1010
import { IPDFArgs } from '../../common/model/interface';
1111
import { Workbook } from '@syncfusion/ej2-excel-export';
1212
import { ErrorBarSettingsModel, Series, SeriesModel, AxisModel } from '../../chart';
13+
import { getValue } from '@syncfusion/ej2-base';
1314

1415
/**
1516
* Defines the cell style in an Excel export.
@@ -503,7 +504,11 @@ export class Export {
503504
let usedValueCount: number = isXValue ? 0 : 1;
504505
const usedValueLength: number = this.series[seriesCount as number].type === 'BoxAndWhisker' ? requiredValues[seriesCount as number].length - 1 : requiredValues[seriesCount as number].length;
505506
for (; usedValueCount < usedValueLength; usedValueCount++) {
506-
let value: string | boolean | number | Date = (usedValueCount !== 0 && (this.series[seriesCount as number].type === 'BoxAndWhisker' || (this.series[seriesCount as number] as Series).category === 'Pareto')) ? (this.series[seriesCount as number] as Series).points[dataCount as number][requiredValues[seriesCount as number][usedValueCount as number]] : dataSource[dataCount as number][requiredValues[seriesCount as number][usedValueCount as number]];
507+
const cellValue: Object = (this.series[seriesCount as number] as Series).enableComplexProperty ?
508+
getValue(requiredValues[seriesCount as number][usedValueCount as number],
509+
dataSource[dataCount as number]) :
510+
dataSource[dataCount as number][requiredValues[seriesCount as number][usedValueCount as number]];
511+
let value: string | boolean | number | Date = (usedValueCount !== 0 && (this.series[seriesCount as number].type === 'BoxAndWhisker' || (this.series[seriesCount as number] as Series).category === 'Pareto')) ? (this.series[seriesCount as number] as Series).points[dataCount as number][requiredValues[seriesCount as number][usedValueCount as number]] : cellValue;
507512
if (value === null && type === 'CSV') {
508513
value = '';
509514
}

0 commit comments

Comments
 (0)