Skip to content

Commit 320a4c4

Browse files
author
pipeline
committed
v24.2.5 is released
1 parent 30fa87a commit 320a4c4

File tree

188 files changed

+2350
-954
lines changed

Some content is hidden

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

188 files changed

+2350
-954
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-
## 24.2.4 (2024-02-06)
5+
## 24.2.5 (2024-02-13)
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+
## 24.2.5 (2024-02-13)
6+
7+
### Common
8+
9+
#### Bug Fixes
10+
11+
- `#I495294` - The issue with content sanitization in the tooltip component has been resolved.
12+
513
## 24.2.3 (2024-01-31)
614

715
### Common

controls/base/releasenotes/README.md

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

controls/base/spec/template.spec.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,4 +497,12 @@ describe('Template', () => {
497497
expect(outputDOM(data)).toEqual(output);
498498
});
499499

500+
it('Template string with encrypted value: ', () => {
501+
// Below is an base64 encrypted value `jaVasCript:/*-/*`/*\`/*'/*/**/"(/* */oNcliCk=alert('XSS') )//%0D%0A%0D%0A//`
502+
const unformattedValue: string = window.atob(
503+
'amFWYXNDcmlwdDovKi0vKmAvKlxgLyonLyovKiovIigvKiAqL29OY2xpQ2s9YWxlcnQoJ1hTUycpICkvLyUwRCUwQSUwRCUwQS8v'
504+
);
505+
const templateFn: Function = template.compile(unformattedValue);
506+
expect(templateFn()).toBe('jaVasCript:/*-/*`/*`/*\'/*/**/"(/* */oNcliCk=alert(\'XSS\') )//%0D%0A%0D%0A//');
507+
});
500508
});

controls/base/src/template.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,21 @@ function evalExp(str: string, nameSpace: string, helper?: Object, ignorePrefix?:
125125
str = str.replace(value, singleSpace);
126126
});
127127
}
128-
128+
if (exp.test(str)) {
129+
let insideBraces: boolean = false;
130+
let outputString: string = '';
131+
for (let i: number = 0; i < str.length; i++) {
132+
if (str[i + ''] === '$' && str[i + 1] === '{') {
133+
insideBraces = true;
134+
} else if (str[i + ''] === '}') {
135+
insideBraces = false;
136+
}
137+
outputString += (str[i + ''] === '"' && !insideBraces) ? '\\"' : str[i + ''];
138+
}
139+
str = outputString;
140+
} else {
141+
str = str.replace(/\\?"/g, '\\"');
142+
}
129143
return str.replace(LINES, '').replace(DBL_QUOTED_STR, '\'$1\'').replace(
130144

131145
exp,

controls/buttons/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+
## 24.2.5 (2024-02-13)
6+
7+
### SpeedDial
8+
9+
#### Bug Fixes
10+
11+
- `FAB` and `SpeedDial` control `readme.md` file updated.
12+
513
## 24.2.3 (2024-01-31)
614

715
### Switch

controls/calendars/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+
## 24.2.5 (2024-02-13)
6+
7+
### DatePicker
8+
9+
#### Bug Fixes
10+
11+
- `#I860067` - Resolved an issue where users were unable to focus on the Today button using the Tab key.
12+
513
## 24.2.3 (2024-01-31)
614

715
### DateTimePicker

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+
## 24.2.5 (2024-02-13)
6+
7+
### StockChart
8+
9+
#### Bug Fixes
10+
11+
- `#I549996` - Now, the stock chart axis labels render properly.
12+
513
## 24.2.4 (2024-02-06)
614

715
### 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": "24.2.3",
3+
"version": "24.2.4",
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/axis/axis.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1338,7 +1338,7 @@ export class Axis extends ChildProperty<Axis> {
13381338
// To avoid overlap axis label with chart title or chart legend when it is outside.
13391339
if (this.labelPosition === 'Outside' && !isHorizontalAngle && isBreakLabel(this.rotatedLabel)) {
13401340
this.maxLabelSize = new Size(this.maxLabelSize.height, this.maxLabelSize.width);
1341-
} else if (!chart.stockChart) {
1341+
} else {
13421342
this.maxLabelSize = rotateTextSize(this.labelStyle, this.rotatedLabel, this.angle, chart);
13431343
}
13441344
} else if (this.angle !== 0 && this.orientation === 'Vertical') {
@@ -1349,7 +1349,7 @@ export class Axis extends ChildProperty<Axis> {
13491349
// To avoid overlap axis label with chart title or chart legend when it is outside.
13501350
if (this.labelPosition === 'Outside' && !isHorizontalAngle && isBreakLabel(this.rotatedLabel)) {
13511351
this.maxLabelSize = new Size(this.maxLabelSize.height, this.maxLabelSize.width);
1352-
} else if (!chart.stockChart) {
1352+
} else {
13531353
this.maxLabelSize = rotateTextSize(this.labelStyle, this.rotatedLabel, this.angle, chart);
13541354
}
13551355
}

controls/charts/src/chart/axis/cartesian-panel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1411,7 +1411,7 @@ export class CartesianAxisLayoutPanel {
14111411
anchor = (chart.enableRtl) ? ((isEndAnchor) ? '' : 'end') : (chart.isRtlEnabled || isEndAnchor) ? 'end' : '';
14121412
}
14131413
options = new TextOption(chart.element.id + index + '_AxisLabel_' + i, pointX, pointY, anchor);
1414-
if (angle !== 0 && !chart.stockChart) {
1414+
if (angle !== 0) {
14151415
rotatedLabelSize = rotateTextSize(label.labelStyle, label.originalText, angle, chart);
14161416
isLeft = ((angle < 0 && angle > -90) || (angle < -180 && angle > -270) || (angle > 90 && angle < 180) || (angle > 270 && angle < 360));
14171417
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ export function rotateTextSize(font: FontModel, text: string, angle: number, cha
115115
labelText = text as string;
116116
}
117117
const htmlObject: HTMLElement = renderer.createText(options, labelText) as HTMLElement;
118-
if (!chart.delayRedraw && !chart.redraw) {
118+
if (!chart.delayRedraw && !chart.redraw && !(chart as Chart).stockChart) {
119119
chart.element.appendChild(chart.svgObject);
120120
}
121121
// for line break label
@@ -140,7 +140,7 @@ export function rotateTextSize(font: FontModel, text: string, angle: number, cha
140140
chart.element.style.transform = transformValue;
141141
}
142142
remove(htmlObject);
143-
if (!chart.delayRedraw && !chart.redraw) {
143+
if (!chart.delayRedraw && !chart.redraw && !(chart as Chart).stockChart) {
144144
remove(chart.svgObject);
145145
}
146146
if ((chart as Chart).enableCanvas) {

controls/diagrams/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+
## 24.2.5 (2024-02-13)
6+
7+
### Diagram
8+
9+
#### Bug Fixes
10+
11+
- `#I547586` - Now, the performance of diagram is improved while dragging large number of HTML shapes.
12+
513
## 24.2.4 (2024-02-06)
614

715
### Diagram

controls/diagrams/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-diagrams",
3-
"version": "24.2.3",
3+
"version": "24.2.4",
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",

controls/diagrams/src/diagram/rendering/svg-renderer.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -632,16 +632,8 @@ export class SvgRenderer implements IRenderer {
632632
element: DiagramHtmlElement, canvas: HTMLElement, transform?: Transforms, value?: boolean, indexValue?: number): void {
633633
let htmlElement: HTMLElement; let parentHtmlElement: HTMLElement;
634634
if (canvas) {
635-
let i: number; let j: number; let parentElement: HTMLElement;
636-
for (i = 0; i < canvas.childNodes.length; i++) {
637-
parentElement = canvas.childNodes[parseInt(i.toString(), 10)] as HTMLElement;
638-
for (j = 0; j < parentElement.childNodes.length; j++) {
639-
if ((parentElement.childNodes[parseInt(j.toString(), 10)] as HTMLElement).id === element.id + '_html_element') {
640-
htmlElement = parentElement.childNodes[parseInt(j.toString(), 10)] as HTMLElement;
641-
break;
642-
}
643-
}
644-
}
635+
//869698- drag performance is slow when dealing with 1000 plus HTML shapes and Overview feature
636+
htmlElement = canvas.querySelector('#' + element.id + '_html_element');
645637
}
646638
if (!htmlElement) {
647639
parentHtmlElement = canvas.querySelector(('#' + element.id + '_html_element')) ||

0 commit comments

Comments
 (0)