Skip to content

Commit de77c4c

Browse files
author
pipeline
committed
v28.2.7 is released
1 parent f5d79ab commit de77c4c

File tree

173 files changed

+3220
-488
lines changed

Some content is hidden

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

173 files changed

+3220
-488
lines changed

controls/barcodegenerator/CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## [Unreleased]
44

5-
## 28.2.6 (2025-02-18)
5+
## 28.2.7 (2025-02-25)
66

77
### Barcode
88

controls/buttons/CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## [Unreleased]
44

5+
## 28.2.7 (2025-02-25)
6+
7+
### Button
8+
9+
#### Bug Fixes
10+
11+
- `#I692936` - The issue with "Script error thrown while destroying the button due to extra space in cssClass property" has been resolved.
12+
513
## 28.2.6 (2025-02-18)
614

715
### Checkbox

controls/buttons/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-buttons",
3-
"version": "28.2.3",
3+
"version": "28.2.6",
44
"description": "A package of feature-rich Essential JS 2 components such as Button, CheckBox, RadioButton and Switch.",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

controls/buttons/spec/button.spec.ts

+9
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,15 @@ describe('Button', () => {
345345
expect(element.classList.contains('e-btn')).toEqual(false);
346346
});
347347

348+
it('destroy method with extra space of cssClass property', () => {
349+
button = new Button({cssClass: 'e-custom '});
350+
button.appendTo('#button');
351+
button.cssClass = "e-custom e-css ";
352+
button.dataBind();
353+
button.destroy();
354+
expect(element.classList.contains('e-btn')).toEqual(false);
355+
});
356+
348357
it('getModuleName method', () => {
349358
button = new Button();
350359
button.appendTo('#button');

controls/buttons/src/button/button.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
249249
'e-warning', 'e-flat', 'e-outline', 'e-small', 'e-bigger', 'e-active', 'e-round',
250250
'e-top-icon-btn', 'e-bottom-icon-btn'];
251251
if (this.cssClass) {
252-
classList = classList.concat(this.cssClass.split(' '));
252+
classList = classList.concat(this.cssClass.split(/\s+/).filter((c: string) => c.length > 0));
253253
}
254254
super.destroy();
255255
removeClass([this.element], classList);
@@ -354,7 +354,7 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
354354
break;
355355
case 'cssClass':
356356
if (oldProp.cssClass) {
357-
removeClass([this.element], oldProp.cssClass.split(' '));
357+
removeClass([this.element], oldProp.cssClass.split(/\s+/).filter((c: string) => c.length > 0));
358358
}
359359
if (newProp.cssClass) {
360360
addClass([this.element], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' '));

controls/buttons/src/check-box/check-box.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ export class CheckBox extends Component<HTMLInputElement> implements INotifyProp
475475
break;
476476
case 'cssClass':
477477
if (oldProp.cssClass) {
478-
removeClass([wrapper], oldProp.cssClass.split(' '));
478+
removeClass([wrapper], oldProp.cssClass.split(/\s+/).filter((c: string) => c.length > 0));
479479
}
480480
if (newProp.cssClass) {
481481
addClass([wrapper], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' '));

controls/buttons/src/radio-button/radio-button.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ export class RadioButton extends Component<HTMLInputElement> implements INotifyP
401401
break;
402402
case 'cssClass':
403403
if (oldProp.cssClass) {
404-
removeClass([wrap], oldProp.cssClass.split(' '));
404+
removeClass([wrap], oldProp.cssClass.split(/\s+/).filter((c: string) => c.length > 0));
405405
}
406406
if (newProp.cssClass) {
407407
addClass([wrap], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' '));

controls/buttons/src/speed-dial/speed-dial.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1741,10 +1741,10 @@ export class SpeedDial extends Component<HTMLButtonElement> implements INotifyPr
17411741
case 'cssClass':
17421742
if (!this.popupEle) { break; }
17431743
if (oldProp.cssClass) {
1744-
removeClass(this.overlayEle ? [this.popupEle, this.overlayEle] : [this.popupEle], oldProp.cssClass.split(' '));
1744+
removeClass(this.overlayEle ? [this.popupEle, this.overlayEle] : [this.popupEle], oldProp.cssClass.split(/\s+/).filter((c: string) => c.length > 0));
17451745
}
17461746
if (newProp.cssClass) {
1747-
addClass(this.overlayEle ? [this.popupEle, this.overlayEle] : [this.popupEle], newProp.cssClass.split(' '));
1747+
addClass(this.overlayEle ? [this.popupEle, this.overlayEle] : [this.popupEle], newProp.cssClass.split(/\s+/).filter((c: string) => c.length > 0));
17481748
}
17491749
break;
17501750
case 'visible':

controls/buttons/src/switch/switch.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ export class Switch extends Component<HTMLInputElement> implements INotifyProper
331331
break;
332332
case 'cssClass':
333333
if (oldProp.cssClass) {
334-
removeClass([wrapper], oldProp.cssClass.split(' '));
334+
removeClass([wrapper], oldProp.cssClass.split(/\s+/).filter((c: string) => c.length > 0));
335335
}
336336
if (newProp.cssClass) {
337337
addClass([wrapper], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' '));

controls/calendars/CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## [Unreleased]
44

5+
## 28.2.7 (2025-02-25)
6+
7+
### DatePicker
8+
9+
#### Bug Fixes
10+
11+
- `#I688316` - Fixed an issue where the month was not updating correctly when typing quickly.
12+
513
## 28.1.41 (2025-01-21)
614

715
### DatePicker

controls/calendars/src/maskbase/masked-date-time.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,9 @@ export class MaskedDateTime {
332332
this.dayTypeCount += (this.dayTypeCount === 0 && (parseInt(date + '0', 10) > maxDaysInMonth)) ? 2 : 1;
333333
} else {
334334
this.isDayPart = false;
335-
this.dayTypeCount = this.isDateZero ? this.dayTypeCount + 1 : this.dayTypeCount;
335+
if (!(this.dayTypeCount === 1 && this.isDateZero)) {
336+
this.dayTypeCount += this.isDateZero ? 1 : 0;
337+
}
336338
}
337339
break;
338340
}
@@ -388,7 +390,9 @@ export class MaskedDateTime {
388390
newDateValue.setMonth(0);
389391
this.isLeadingZero = true;
390392
this.isMonthPart = false;
391-
this.monthTypeCount = this.isMonthZero ? this.monthTypeCount + 1 : this.monthTypeCount;
393+
if (!(this.monthTypeCount === 1 && this.isMonthZero)) {
394+
this.monthTypeCount += this.isMonthZero ? 1 : 0;
395+
}
392396
}
393397
} else {
394398
const monthString: string[] = <string[]>(this.getCulturedValue('months[stand-alone].wide'));

controls/charts/CHANGELOG.md

+16
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
22

33
## [Unreleased]
44

5+
## 28.2.7 (2025-02-25)
6+
7+
### Accumulation Chart
8+
9+
#### Bug Fixes
10+
11+
- `#I691821` - The accumulation chart rendering performance has been improved.
12+
13+
## 28.2.6 (2025-02-18)
14+
15+
### Chart
16+
17+
#### Bug Fixes
18+
19+
- `#I691577` - Now, mouse wheel zooming works properly in the Firefox browser.
20+
521
## 28.2.5 (2025-02-11)
622

723
### Chart

controls/charts/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-charts",
3-
"version": "28.2.5",
3+
"version": "28.2.6",
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/base/chart.spec.ts

-17
Original file line numberDiff line numberDiff line change
@@ -1646,22 +1646,5 @@ describe('Chart Control', () => {
16461646
chart.loaded = loaded;
16471647
chart.appendTo('#element');
16481648
});
1649-
it('Checking the mousewheel event', (done: Function) => {
1650-
loaded = (args: Object): void => {
1651-
let wheelArgs: unknown = {
1652-
preventDefault: () => {
1653-
},
1654-
wheelDelta: 120,
1655-
detail: 3,
1656-
clientX: 210,
1657-
clientY: 100
1658-
};
1659-
chart.zoomSettings.enableMouseWheelZooming = true;
1660-
chart.chartOnMouseWheel(<WheelEvent>wheelArgs);
1661-
done();
1662-
};
1663-
chart.loaded = loaded;
1664-
chart.appendTo('#element');
1665-
});
16661649
});
16671650
});

controls/charts/src/chart/chart.ts

+1-20
Original file line numberDiff line numberDiff line change
@@ -3083,7 +3083,6 @@ export class Chart extends Component<HTMLElement> implements INotifyPropertyChan
30833083
const stopEvent: string = Browser.touchEndEvent;
30843084
const cancelEvent: string = Browser.isPointer ? 'pointerleave' : 'mouseleave';
30853085
/** UnBind the Event handler */
3086-
EventHandler.remove(this.element, 'mousewheel', this.chartOnMouseWheel);
30873086
EventHandler.remove(this.element, startEvent, this.chartOnMouseDown);
30883087
EventHandler.remove(this.element, moveEvent, this.mouseMove);
30893088
EventHandler.remove(this.element, stopEvent, this.mouseEnd);
@@ -3123,7 +3122,6 @@ export class Chart extends Component<HTMLElement> implements INotifyPropertyChan
31233122
const cancelEvent: string = Browser.isPointer ? 'pointerleave' : 'mouseleave';
31243123

31253124
/** Bind the Event handler */
3126-
EventHandler.add(this.element, 'mousewheel', this.chartOnMouseWheel, this);
31273125
EventHandler.add(this.element, Browser.touchStartEvent, this.chartOnMouseDown, this);
31283126
EventHandler.add(this.element, Browser.touchMoveEvent, this.mouseMove, this);
31293127
EventHandler.add(this.element, Browser.touchEndEvent, this.mouseEnd, this);
@@ -3899,24 +3897,7 @@ export class Chart extends Component<HTMLElement> implements INotifyPropertyChan
38993897
.categories[parseInt(texts[2], 10)].text);
39003898
}
39013899
}
3902-
/**
3903-
* Handles the mouse wheel on the chart.
3904-
*
3905-
* @param {WheelEvent} e - The wheel event.
3906-
* @returns {boolean} - False.
3907-
* @private
3908-
*/
3909-
public chartOnMouseWheel(e: WheelEvent): boolean {
3910-
const offset: ClientRect = this.element.getBoundingClientRect();
3911-
const svgRect: ClientRect = getElement(this.svgId).getBoundingClientRect();
3912-
const mouseX: number = (e.clientX - offset.left) - Math.max(svgRect.left - offset.left, 0);
3913-
const mouseY: number = (e.clientY - offset.top) - Math.max(svgRect.top - offset.top, 0);
3914-
if (this.zoomSettings.enableMouseWheelZooming &&
3915-
withInBounds(mouseX, mouseY, this.chartAxisLayoutPanel.seriesClipRect)) {
3916-
this.notify('mousewheel', e);
3917-
}
3918-
return false;
3919-
}
3900+
39203901
/**
39213902
* Handles the mouse down on the chart.
39223903
*

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -960,7 +960,7 @@ export class Zoom {
960960
*/
961961
private addEventListener(): void {
962962
if (this.chart.isDestroyed) { return; }
963-
this.chart.on('mousewheel', this.chartMouseWheel, this);
963+
EventHandler.add(this.chart.element, this.wheelEvent, this.chartMouseWheel, this);
964964
this.chart.on(Browser.touchMoveEvent, this.mouseMoveHandler, this);
965965
this.chart.on(Browser.touchStartEvent, this.mouseDownHandler, this);
966966
this.chart.on(Browser.touchEndEvent, this.mouseUpHandler, this);
@@ -973,8 +973,8 @@ export class Zoom {
973973
* @private
974974
*/
975975
public removeEventListener(): void {
976+
EventHandler.remove(this.chart.element, this.wheelEvent, this.chartMouseWheel);
976977
if (this.chart.isDestroyed) { return; }
977-
this.chart.off('mousewheel', this.chartMouseWheel);
978978
this.chart.off(Browser.touchMoveEvent, this.mouseMoveHandler);
979979
this.chart.off(Browser.touchStartEvent, this.mouseDownHandler);
980980
this.chart.off(Browser.touchEndEvent, this.mouseUpHandler);

controls/charts/src/common/utils/helper.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -2138,11 +2138,14 @@ export function convertHexToColor(hex: string): ColorValue {
21382138
*/
21392139
export function colorNameToHex(color: string): string {
21402140
color = color === 'transparent' ? 'white' : color;
2141-
document.body.appendChild(createElement('text', { id: 'chartmeasuretext' }));
2142-
const element: HTMLElement = document.getElementById('chartmeasuretext');
2141+
let element: HTMLElement = document.getElementById('chartmeasuretext');
2142+
if (!element) {
2143+
element = createElement('text', { id: 'chartmeasuretext' });
2144+
document.body.appendChild(element);
2145+
}
21432146
element.style.color = color;
21442147
color = window.getComputedStyle(element).color;
2145-
remove(element);
2148+
element.style.color = '';
21462149
let isRGBValue: string[];
21472150
if (color.indexOf('rgb') === 0 || color.indexOf('hsl') === 0) {
21482151
color = color.replace(/\s/g, '').replace(/[()]/g, '');

controls/data/CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## [Unreleased]
44

5-
## 28.2.6 (2025-02-18)
5+
## 28.2.7 (2025-02-25)
66

77
### DataManager
88

controls/diagrams/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-diagrams",
3-
"version": "28.2.3",
3+
"version": "28.2.6",
44
"description": "Feature-rich diagram control to create diagrams like flow charts, organizational charts, mind maps, and BPMN diagrams. Its rich feature set includes built-in shapes, editing, serializing, exporting, printing, overview, data binding, and automatic layouts.",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

0 commit comments

Comments
 (0)