Skip to content

Commit 80b964d

Browse files
author
pipeline
committed
v32.2.7 is released
1 parent 49a98fb commit 80b964d

File tree

166 files changed

+2218
-735
lines changed

Some content is hidden

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

166 files changed

+2218
-735
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-
## 32.2.5 (2026-02-17)
5+
## 32.2.7 (2026-02-24)
66

77
### Barcode
88

controls/blockeditor/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-
## 32.2.5 (2026-02-17)
5+
## 32.2.7 (2026-02-24)
66

77
### Block Editor
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-
## 32.2.5 (2026-02-17)
5+
## 32.2.7 (2026-02-24)
66

77
### DatePicker
88

controls/charts/CHANGELOG.md

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

33
## [Unreleased]
44

5-
## 32.2.5 (2026-02-17)
5+
## 32.2.7 (2026-02-24)
6+
7+
### Chart
8+
9+
#### Bug Fixes
10+
11+
- `I811385` - The chart data label now display correctly in the top and bottom positions when the angle is set to 90 degree.
12+
13+
## 32.1.25 (2026-01-24)
14+
15+
### Chart
16+
17+
#### Bug Fixes
18+
19+
- The `columnWidthInPixel` property works correctly when the `enableSideBySidePlacement` property is disabled.
20+
21+
## 32.1.24 (2026-01-20)
622

723
### Chart
824

controls/charts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"markdown-spellcheck": "^1.3.1"
1616
},
1717
"devDependencies": {
18-
"@syncfusion/ej2-staging": "^1.0.1",
18+
"@syncfusion/ej2-staging": "^1.0.2",
1919
"@types/chai": "^3.4.28",
2020
"@types/es6-promise": "0.0.28",
2121
"@types/jasmine": "2.8.9",

controls/charts/src/chart/series/data-label.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,8 @@ export class DataLabel {
181181
let isDataLabelOverlap: boolean = false;
182182
const dataLabelElement: Element[] = [];
183183
let startLocation: ChartLocation;
184-
dataLabel.angle = dataLabel.labelIntersectAction === 'Rotate90' ? 90 : dataLabel.angle;
185184
dataLabel.enableRotation = dataLabel.labelIntersectAction === 'Rotate90' ? true : dataLabel.enableRotation;
186-
const angle: number = degree = dataLabel.angle;
185+
const angle: number = degree = dataLabel.labelIntersectAction === 'Rotate90' ? 90 : dataLabel.angle;
187186
const border: BorderModel = { width: dataLabel.border.width, color: dataLabel.border.color };
188187
const argsFont: FontModel = <FontModel>(extend({}, getValue('properties', dataLabel.font), null, true));
189188
if (
@@ -208,7 +207,7 @@ export class DataLabel {
208207
this.createDataLabelTemplate(element, series, dataLabel, point, argsData, i, this.chart.redraw);
209208
} else {
210209
if (dataLabel.enableRotation) {
211-
textSize = rotateTextSize(dataLabel.font, argsData.text, dataLabel.angle, this.chart,
210+
textSize = rotateTextSize(dataLabel.font, argsData.text, angle, this.chart,
212211
this.chart.themeStyle.datalabelFont);
213212
}
214213
else {
@@ -221,7 +220,7 @@ export class DataLabel {
221220
const rectCoordinates: ChartLocation[] = this.getRectanglePoints(actualRect);
222221
rectCenterX = rect.x + (rect.width / 2);
223222
rectCenterY = (rect.y + (rect.height / 2));
224-
isDataLabelOverlap = (dataLabel.labelIntersectAction === 'Rotate90' || angle === -90) ? false : this.isDataLabelOverlapWithChartBound(rectCoordinates, this.chart, { x: 0, y: 0, width: 0, height: 0 });
223+
isDataLabelOverlap = (dataLabel.labelIntersectAction === 'Rotate90' || angle === -90 || angle === 90) ? false : this.isDataLabelOverlapWithChartBound(rectCoordinates, this.chart, { x: 0, y: 0, width: 0, height: 0 });
225224
if (!isDataLabelOverlap) {
226225
this.chart.rotatedDataLabelCollections.push(rectCoordinates);
227226
const currentPointIndex: number = this.chart.rotatedDataLabelCollections.length - 1;
@@ -281,7 +280,7 @@ export class DataLabel {
281280
xPos -= this.chart.chartAreaType === 'Cartesian' && xPos + (textSize.width / 2) > clip.width ? (!this.chart.requireInvertedAxis && xPos > clip.width) ? 0 : (xPos + textSize.width / 2) - clip.width : 0;
282281
yPos -= (yPos + textSize.height > clip.y + clip.height && !(series.type.indexOf('Bar') > -1)) ? (yPos + textSize.height) - (clip.y + clip.height) : 0;
283282
}
284-
const textAnchor: string = dataLabel.labelIntersectAction === 'Rotate90' ? (dataLabel.position === 'Top' ? 'start' : (dataLabel.position === 'Middle' ? 'middle' : 'end')) :
283+
const textAnchor: string = (dataLabel.labelIntersectAction === 'Rotate90' || angle === 90) ? (dataLabel.position === 'Top' ? 'start' : (dataLabel.position === 'Middle' ? 'middle' : 'end')) :
285284
((angle === -90 && dataLabel.enableRotation) ? (dataLabel.position === 'Top' ? 'end' : (dataLabel.position === 'Middle' ? 'middle' : 'start')) : 'middle');
286285
let oldText: string;
287286
if (this.chart.redraw && document.getElementById(this.commonId + point.index + '_Text_' + i)) {
@@ -303,7 +302,7 @@ export class DataLabel {
303302
));
304303
}
305304
if (this.isShape && dataLabel.enableRotation) {
306-
shapeRect.setAttribute('transform', 'rotate(' + dataLabel.angle + ', ' + xValue + ', ' + yValue + ')');
305+
shapeRect.setAttribute('transform', 'rotate(' + angle + ', ' + xValue + ', ' + yValue + ')');
307306
}
308307
if (this.chart.stackLabels.visible && series.type.indexOf('Stacking') > -1) {
309308
this.dataLabelRectCollection = !this.dataLabelRectCollection ? {}

controls/data/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-
## 32.2.5 (2026-02-17)
5+
## 32.2.7 (2026-02-24)
66

77
### DataManager
88

controls/diagrams/CHANGELOG.md

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

33
## [Unreleased]
44

5-
## 32.2.5 (2026-02-17)
5+
## 32.2.7 (2026-02-24)
6+
7+
### Diagram
8+
9+
#### Bug Fixes
10+
11+
- `#I812514` - Resolved Incorrect State Values in sourcePointChange and targetPointChange Events.
12+
13+
## 32.2.4 (2026-02-11)
614

715
### Diagram
816

controls/diagrams/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-diagrams",
3-
"version": "32.2.3",
3+
"version": "32.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",
@@ -18,7 +18,7 @@
1818
"markdown-spellcheck": "^1.3.1"
1919
},
2020
"devDependencies": {
21-
"@syncfusion/ej2-staging": "^1.0.1",
21+
"@syncfusion/ej2-staging": "^1.0.2",
2222
"@types/chai": "^3.4.28",
2323
"@types/es6-promise": "0.0.28",
2424
"@types/jasmine": "2.8.9",

controls/diagrams/src/diagram/interaction/tool.ts

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ export class ToolBase {
120120

121121
private checkProperty: boolean = true;
122122

123+
/** @private */
124+
public isConnectionChangeStarted : boolean = false;
125+
123126
protected undoParentElement: SelectorModel = { nodes: [], connectors: [] };
124127

125128
protected undoContainerElement: SelectorModel = { nodes: [], connectors: [] };
@@ -496,6 +499,8 @@ export class ConnectTool extends ToolBase {
496499

497500
/** @private */
498501
public selectedSegment: BezierSegment;
502+
/** @private - tracks whether the connector endpoint actually moved during the change */
503+
protected connectionChangeMoved: boolean = false;
499504

500505
constructor(commandHandler: CommandHandler, endPoint: string) {
501506
super(commandHandler, true);
@@ -575,14 +580,15 @@ export class ConnectTool extends ToolBase {
575580
this.checkPropertyValue();
576581
this.commandHandler.updateSelector();
577582
this.commandHandler.removeSnap();
578-
if (args.source && (args.source as SelectorModel).connectors && (!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' &&
583+
//1010806: Incorrect state Values in sourcePointChange and targetPointChange Events
584+
if ((args.source && (args.source as SelectorModel).connectors && (!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' &&
579585
(args.source as SelectorModel).connectors.length &&
580586
((!Point.equals((args.source as SelectorModel).connectors[0].sourcePoint, this.undoElement.connectors[0].sourcePoint) ||
581587
((args.source as SelectorModel).connectors[0].sourceID !== this.undoElement.connectors[0].sourceID)))) ||
582588
(this.endPoint === 'ConnectorTargetEnd' &&
583589
((!Point.equals((args.source as SelectorModel).connectors[0].targetPoint, this.undoElement.connectors[0].targetPoint))
584-
|| ((args.source as SelectorModel).connectors[0].targetID !== this.undoElement.connectors[0].targetID))))) {
585-
590+
|| ((args.source as SelectorModel).connectors[0].targetID !== this.undoElement.connectors[0].targetID)))) ) ||
591+
(this.isConnectionChangeStarted && this.connectionChangeMoved && args.source && (args.source as SelectorModel).connectors)) {
586592
let oldValues: PointModel; let newValues: PointModel; let connector: ConnectorModel;
587593
if (args.source && (args.source as SelectorModel).connectors && this.endPoint === 'ConnectorSourceEnd') {
588594
//941055: The sourcePointChange event's old and new values are the same
@@ -625,6 +631,7 @@ export class ConnectTool extends ToolBase {
625631
this.commandHandler.addHistoryEntry(entry);
626632
}
627633
const trigger: number = this.endPoint === 'ConnectorSourceEnd' ? DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;
634+
this.isConnectionChangeStarted = false;
628635
this.commandHandler.triggerEvent(trigger, arg);
629636
//this.commandHandler.removeTerminalSegment(connector as Connector, true);
630637
} else if (!(this instanceof ConnectorDrawingTool) &&
@@ -657,7 +664,7 @@ export class ConnectTool extends ToolBase {
657664
public mouseMove(args: MouseEventArgs): boolean {
658665
super.mouseMove(args);
659666
let tempArgs: IBlazorConnectionChangeEventArgs;
660-
if ((!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' &&
667+
if (!this.isConnectionChangeStarted && !this.connectionChangeMoved && (!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' &&
661668
Point.equals((args.source as SelectorModel).connectors[0].sourcePoint, this.undoElement.connectors[0].sourcePoint)) ||
662669
(this.endPoint === 'ConnectorTargetEnd' &&
663670
Point.equals((args.source as SelectorModel).connectors[0].targetPoint, this.undoElement.connectors[0].targetPoint)))) {
@@ -674,6 +681,7 @@ export class ConnectTool extends ToolBase {
674681
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
675682
(target instanceof PointPort || target instanceof BpmnSubEvent) ? targetPort = target.id : targetNode = target.id;
676683
}
684+
this.isConnectionChangeStarted = true;
677685
let arg: IEndChangeEventArgs = {
678686
connector: connectors, state: 'Start', targetNode: targetNode,
679687
oldValue: oldValue, newValue: oldValue, cancel: false, targetPort: targetPort
@@ -709,6 +717,8 @@ export class ConnectTool extends ToolBase {
709717
const trigger: number = this.endPoint === 'ConnectorSourceEnd' ?
710718
DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;
711719
this.commandHandler.triggerEvent(trigger, arg);
720+
// mark that the connector endpoint has moved at least once during this interaction
721+
this.connectionChangeMoved = true;
712722
}
713723
if (args.target) {
714724
inPort = getInOutConnectPorts((args.target as Node), true); outPort = getInOutConnectPorts((args.target as Node), false);
@@ -883,6 +893,7 @@ export class ConnectTool extends ToolBase {
883893
super.endAction();
884894
this.prevPosition = null;
885895
this.endPoint = null;
896+
this.connectionChangeMoved = false;
886897
}
887898
}
888899

@@ -1415,7 +1426,9 @@ export class MoveTool extends ToolBase {
14151426
}
14161427
if (isSame && !isBlazor()) {
14171428
this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);
1418-
this.connectorEndPointChangeEvent(arg);
1429+
if (!this.isStartAction) {
1430+
this.connectorEndPointChangeEvent(arg);
1431+
}
14191432
this.isStartAction = true;
14201433
}
14211434
this.commandHandler.diagram.cancelPositionChange = arg.cancel;
@@ -1450,7 +1463,9 @@ export class MoveTool extends ToolBase {
14501463
this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);
14511464
this.commandHandler.diagram.cancelPositionChange = arg.cancel;
14521465
this.canTrigger = true;
1453-
this.connectorEndPointChangeEvent(arg, snappedPoint);
1466+
if (this.isStartAction && arg.state !== 'Start') {
1467+
this.connectorEndPointChangeEvent(arg, snappedPoint);
1468+
}
14541469
if (!arg.cancel && !this.canCancel) {
14551470
this.blocked = !this.commandHandler.dragSelectedObjects(snappedPoint.x, snappedPoint.y);
14561471
const blocked: boolean = !(this.commandHandler.mouseOver(this.currentElement, this.currentTarget, this.currentPosition));

0 commit comments

Comments
 (0)