Skip to content

Commit 4fb2df8

Browse files
author
pipeline
committed
v29.2.4 is released
1 parent b43039a commit 4fb2df8

File tree

237 files changed

+5490
-1599
lines changed

Some content is hidden

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

237 files changed

+5490
-1599
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-
## 29.1.41 (2025-05-06)
5+
## 29.2.4 (2025-05-14)
66

77
### Barcode
88

controls/base/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## [Unreleased]
44

5+
## 29.2.4 (2025-05-14)
6+
7+
### Common
8+
9+
#### Bug Fixes
10+
11+
- `#I718268` - Resolved Persistence not properly working when using `SetCulture` in Grid.
12+
513
## 29.1.35 (2025-04-01)
614

715
### Common

controls/base/releasenotes/README.md

Lines changed: 0 additions & 183 deletions
This file was deleted.

controls/base/src/component.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ export abstract class Component<ElementType extends HTMLElement> extends Base<El
114114
this.moduleLoader.clean();
115115
this.destroy();
116116
this.clearChanges();
117+
if (this.enablePersistence && this.getModuleName() === 'grid') {
118+
this.attachUnloadEvent();
119+
}
117120
this.localObserver = new Observer(this);
118121
this.preRender();
119122
this.injectModules();

controls/calendars/CHANGELOG.md

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

33
## [Unreleased]
44

5-
## 29.1.41 (2025-05-06)
5+
## 29.1.40 (2025-04-29)
6+
7+
### DateRangePicker
8+
9+
#### Bug Fixes
10+
11+
- `#709169` - Fixed HTML accessibility errors and warnings in the popup component of the DateRangePicker.
612

713
### DateTimePicker
814

controls/calendars/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-calendars",
3-
"version": "29.1.39",
3+
"version": "29.1.40",
44
"description": "A complete package of date or time components with built-in features such as date formatting, inline editing, multiple (range) selection, range restriction, month and year selection, strict mode, and globalization.",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

controls/calendars/spec/daterangepicker/daterangepicker.spec.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,9 @@ describe('DateRangePicker', () => {
435435
it('autocorrect attribute test case', () => {
436436
daterangepicker = new DateRangePicker({ readonly: true });
437437
daterangepicker.appendTo('#date');
438-
expect(daterangepicker.element.getAttribute('autocorrect') == 'off').toBe(true);
438+
if (Browser.isIos) {
439+
expect(daterangepicker.element.getAttribute('autocorrect') == 'off').toBe(true);
440+
}
439441
});
440442
it('autocapitalize attribute test case', () => {
441443
daterangepicker = new DateRangePicker({ readonly: true });

controls/calendars/src/calendar/calendar.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ export class CalendarBase extends Component<HTMLElement> implements INotifyPrope
559559

560560
};
561561
const ariaTitleAttrs: Object = {
562-
'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'title'
562+
'aria-atomic': 'true', 'aria-live': 'assertive'
563563
};
564564
const tabIndexAttr: Object = {'tabindex': '0'};
565565
this.headerElement = this.createElement('div', { className: HEADER });
@@ -1348,7 +1348,7 @@ export class CalendarBase extends Component<HTMLElement> implements INotifyPrope
13481348
value = date.valueOf();
13491349
}
13501350
const attrs: Object = {
1351-
className: CELL, attrs: { 'id': '' + getUniqueID('' + value), 'aria-selected': 'false'}
1351+
className: CELL, attrs: { 'id': '' + getUniqueID('' + value)}
13521352
};
13531353
return this.createElement('td', attrs);
13541354
}

controls/calendars/src/daterangepicker/daterangepicker.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3210,7 +3210,6 @@ export class DateRangePicker extends CalendarBase {
32103210
const labelContainer: HTMLElement = this.createRangeHeader();
32113211
headerContainer.appendChild(labelContainer);
32123212
const daySpan: HTMLElement = this.createElement('div', { className: DAYSPAN });
3213-
attributes(daySpan, { 'aria-label': 'Selected Days' });
32143213
daySpan.textContent = this.l10n.getConstant('selectedDays');
32153214
headerContainer.appendChild(daySpan);
32163215
const separator: HTMLElement = this.createElement('div', { className: SEPARATOR });
@@ -3976,8 +3975,11 @@ export class DateRangePicker extends CalendarBase {
39763975
attributes(this.inputElement, {
39773976
'tabindex': '0', 'aria-expanded': 'false', 'role': 'combobox',
39783977
'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',
3979-
'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false'
3978+
'autocapitalize': 'off', 'spellcheck': 'false'
39803979
});
3980+
if (Browser.isIos) {
3981+
attributes(this.inputElement, { 'autocorrect': 'off' });
3982+
}
39813983
Input.addAttributes({ 'aria-label': 'select', 'role': 'button' }, this.inputWrapper.buttons[0]);
39823984
// if (!isNullOrUndefined(this.placeholder) && this.placeholder.trim() !== '') {
39833985
// Input.addAttributes({ 'aria-placeholder': this.placeholder }, this.inputElement);

controls/charts/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## [Unreleased]
44

5+
## 29.2.4 (2025-05-14)
6+
7+
### Chart
8+
9+
#### Bug Fixes
10+
11+
- `#F67379` - Now the opacity updates properly on the data point after the tooltip fades out.
12+
513
## 29.1.41 (2025-05-06)
614

715
### Accumulation Chart

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": "29.1.40",
3+
"version": "29.1.41",
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/src/chart/chart.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4801,9 +4801,7 @@ export class Chart extends Component<HTMLElement> implements INotifyPropertyChan
48014801
}
48024802
}
48034803
}
4804-
if (this.scrollElement && this.zoomSettings.enableScrollbar) {
4805-
this.scrollElement = null;
4806-
}
4804+
48074805
break;
48084806
case 'height':
48094807
case 'width':

controls/charts/src/chart/user-interaction/tooltip.ts

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -504,23 +504,18 @@ export class Tooltip extends BaseTooltip {
504504
location.x = tooltip.location.x !== null ? tooltip.location.x : location.x;
505505
location.y = tooltip.location.y !== null ? tooltip.location.y : location.y;
506506
location = (location.x === null && location.y === null) ? null : location;
507-
if (point.series.type.indexOf('Range') === -1 || withInBounds(location.x, location.y, chart.chartAxisLayoutPanel.seriesClipRect)) {
508-
this.createTooltip(
509-
chart, isFirst, location,
510-
this.currentPoints.length === 1 ? this.currentPoints[0].series.clipRect : null,
511-
dataCollection.length === 1 ? dataCollection[0].point : null,
512-
this.findShapes(), this.findMarkerHeight(<PointData>this.currentPoints[0]),
513-
new Rect(borderWidth, (chart.stockChart ? (toolbarHeight + titleHeight + borderWidth) : borderWidth),
514-
this.chart.availableSize.width - padding - borderWidth * 2,
515-
this.chart.availableSize.height - padding - borderWidth * 2),
516-
this.chart.crosshair.enable, extraPoints,
517-
this.template ? this.getTemplateText(dataCollection) : null,
518-
this.template ? argsData.template.join('') : ''
519-
);
520-
} else {
521-
removeElement(this.element.id + '_tooltip');
522-
extraPoints.push(point);
523-
}
507+
this.createTooltip(
508+
chart, isFirst, location,
509+
this.currentPoints.length === 1 ? this.currentPoints[0].series.clipRect : null,
510+
dataCollection.length === 1 ? dataCollection[0].point : null,
511+
this.findShapes(), this.findMarkerHeight(<PointData>this.currentPoints[0]),
512+
new Rect(borderWidth, (chart.stockChart ? (toolbarHeight + titleHeight + borderWidth) : borderWidth),
513+
this.chart.availableSize.width - padding - borderWidth * 2,
514+
this.chart.availableSize.height - padding - borderWidth * 2),
515+
this.chart.crosshair.enable, extraPoints,
516+
this.template ? this.getTemplateText(dataCollection) : null,
517+
this.template ? argsData.template.join('') : ''
518+
);
524519
point = null;
525520
} else {
526521
removeElement(this.element.id + '_tooltip');

controls/charts/src/chart/user-interaction/zooming-toolkit.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ export class Toolkit {
390390
const chart: Chart = this.chart;
391391
this.enableZoomButton = false;
392392
chart.redraw = chart.enableCanvas ? chart.redraw : chart.zoomSettings.enableAnimation;
393-
if (!chart.zoomModule.isDevice) {
393+
if (!chart.zoomModule.isDevice && chart.zoomModule.toolkitElements) {
394394
remove(chart.zoomModule.toolkitElements);
395395
} else if (event.type === 'touchstart') {
396396
event.stopPropagation();

controls/charts/src/common/user-interaction/tooltip.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ export class BaseTooltip extends ChartData {
181181
}
182182

183183
public highlightPoint(series: Series | AccumulationSeries | Chart3DSeries, pointIndex: number, highlight: boolean): void {
184-
const element: HTMLElement = this.getElement(this.element.id + '_Series_' + series.index + '_Point_' + pointIndex);
184+
const element: HTMLElement = series.type === 'BoxAndWhisker' ? this.getElement(this.element.id + '_Series_' + series.index + '_Point_' + pointIndex + '_BoxPath') : this.getElement(this.element.id + '_Series_' + series.index + '_Point_' + pointIndex);
185185
const selectionModule: AccumulationSelection = (this.control as AccumulationChart).accumulationSelectionModule;
186186
const isAccumulation: boolean = this.chart.getModuleName() === 'accumulationchart';
187187
const isSelectedElement: boolean = selectionModule && selectionModule.selectedDataIndexes.length > 0 ? true : false;

0 commit comments

Comments
 (0)