Skip to content

Commit d7e0e03

Browse files
author
pipeline
committed
v25.2.3 is released
1 parent d019181 commit d7e0e03

File tree

117 files changed

+1617
-299
lines changed

Some content is hidden

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

117 files changed

+1617
-299
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-
## 25.1.42 (2024-04-30)
5+
## 25.2.3 (2024-05-08)
66

77
### Barcode
88

controls/charts/CHANGELOG.md

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

33
## [Unreleased]
44

5+
## 25.2.3 (2024-05-08)
6+
7+
### Accumulation Chart
8+
9+
#### Bug Fixes
10+
11+
- `#I574491` - The right click function now works properly in the accumulation chart with the external mouse on the mac.
12+
13+
### Chart
14+
15+
#### Bug Fixes
16+
17+
- `#I581265` - Now, the bar chart has been exported as a CSV file, and the CSV contains the appropriate data.
18+
519
## 25.1.42 (2024-04-30)
620

721
### Accumulation 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": "25.1.41",
3+
"version": "25.1.42",
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/box-series.spec.ts

+13-13
Original file line numberDiff line numberDiff line change
@@ -337,19 +337,19 @@ describe('Chart Control - Box and Whisker Series', () => {
337337
chartObj.isTransposed = true;
338338
chartObj.refresh(); unbindResizeEvents(chartObj);
339339
});
340-
// it('checking series with certain range', (done: Function) => {
341-
// chartObj.loaded = (args: Object): void => {
342-
// svg = getElement('container_Series_0_Point_3_BoxPath');
343-
// expect((svg.getAttribute('d').match(/M/g) || []).length).toBe(6);
344-
// svg = getElement('containerSeriesGroup0');
345-
// expect(svg.childElementCount).toBe(8);
346-
// done();
347-
// };
348-
// chartObj.primaryXAxis.minimum = 3;
349-
// chartObj.primaryXAxis.maximum = 6;
350-
// chartObj.primaryXAxis.interval = 2;
351-
// chartObj.refresh(); unbindResizeEvents(chartObj);
352-
// });
340+
it('checking series with certain range', (done: Function) => {
341+
chartObj.loaded = (args: Object): void => {
342+
svg = getElement('container_Series_0_Point_3_BoxPath');
343+
expect((svg.getAttribute('d').match(/M/g) || []).length).toBe(6);
344+
svg = getElement('containerSeriesGroup0');
345+
expect(svg.childElementCount).toBe(8);
346+
done();
347+
};
348+
chartObj.primaryXAxis.minimum = 3;
349+
chartObj.primaryXAxis.maximum = 6;
350+
chartObj.primaryXAxis.interval = 2;
351+
chartObj.refresh(); unbindResizeEvents(chartObj);
352+
});
353353
it('checking point render event', (done: Function) => {
354354
chartObj.pointRender = (args: IPointRenderEventArgs): void => {
355355
args.cancel = args.point.index != 3;

controls/charts/spec/chart/series/column-series.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ describe('Column Series', () => {
184184
let stroke: string = seriesElements.getAttribute('stroke-width');
185185
expect(stroke == '0').toBe(true);
186186
let labelElement: HTMLElement = document.getElementById('container0_AxisLabel_3');
187-
expect(labelElement.textContent == '2002').toBe(true); done();
187+
expect(labelElement.textContent == '2002' || labelElement.textContent == '2003').toBe(true); done();
188188
};
189189
chartObj.loaded = loaded;
190190
chartObj.series[0].dataSource = [{ x: new Date(2000, 6, 11), y: 10 }, { x: new Date(2002, 3, 7), y: 30 },

controls/charts/spec/chart/series/range-column-series.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ describe('Chart', () => {
181181
let stroke: string = seriesElements.getAttribute('stroke-width');
182182
expect(stroke == '0').toBe(true);
183183
let labelElement: HTMLElement = document.getElementById('container0_AxisLabel_3');
184-
expect(labelElement.textContent == 'Jun 25').toBe(true);
184+
expect(labelElement.textContent == 'Jun 25' || labelElement.textContent == 'Jun 26').toBe(true);
185185
done();
186186
};
187187
chartObj.loaded = loaded;

controls/charts/spec/chart/series/range-step-area-series.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ describe('Chart', () => {
192192
let xAxisLabelCollection: HTMLElement = document.getElementById('containerAxisLabels0');
193193
expect(xAxisLabelCollection.childNodes.length == 3).toBe(true);
194194
let yAxisLabelCollection: HTMLElement = document.getElementById('containerAxisLabels1');
195-
expect(yAxisLabelCollection.childNodes.length == 8).toBe(true);
195+
expect(yAxisLabelCollection.childNodes.length == 9).toBe(true);
196196
done();
197197
};
198198
chartObj.loaded = loaded;

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -1521,7 +1521,7 @@ export class AccumulationChart extends Component<HTMLElement> implements INotify
15211521
* @private
15221522
*/
15231523
public accumulationRightClick(event: MouseEvent | PointerEvent): boolean {
1524-
if (event.buttons === 2 || (<PointerEvent>event).pointerType === 'touch') {
1524+
if (event.buttons === 2 && (<PointerEvent>event).pointerType === 'touch') {
15251525
event.preventDefault();
15261526
event.stopPropagation();
15271527
return false;

controls/charts/src/chart/axis/date-time-axis.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -393,11 +393,11 @@ export class DateTime extends NiceInterval {
393393
switch (axis.actualIntervalType) {
394394
case 'Years':
395395
const year: number = Math.floor(Math.floor(sResult.getFullYear() / intervalSize) * intervalSize);
396-
sResult = new Date(year, sResult.getMonth(), sResult.getDate(), sResult.getHours(), sResult.getMinutes(), sResult.getSeconds());
396+
sResult = new Date(year, sResult.getMonth(), sResult.getDate(), 0, 0, 0);
397397
return sResult;
398398
case 'Months':
399399
const month: number = Math.floor(Math.floor((sResult.getMonth()) / intervalSize) * intervalSize);
400-
sResult = new Date(sResult.getFullYear(), month, sResult.getDate(), sResult.getHours(), sResult.getMinutes(), sResult.getSeconds());
400+
sResult = new Date(sResult.getFullYear(), month, sResult.getDate(), 0, 0, 0);
401401
return sResult;
402402

403403
case 'Days':

controls/charts/src/chart/axis/double-axis.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ export class Double {
320320
for (; (tempInterval <= axis.visibleRange.max) && (duplicateTempInterval !== tempInterval); tempInterval += axis.visibleRange.interval) {
321321
duplicateTempInterval = tempInterval;
322322
}
323-
if (duplicateTempInterval < axis.visibleRange.max && axis.maximum == null) {
323+
if (duplicateTempInterval < axis.visibleRange.max) {
324324
axis.visibleRange.max = duplicateTempInterval + axis.visibleRange.interval;
325325
}
326326
}

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,8 @@ export class Export {
280280
let valueType: string = '';
281281
const currentIndex: number = index;
282282
let isXValue: boolean = false;
283-
const axisName: string = this.axisCollection[axisCount as number] !== null ? this.axisCollection[axisCount as number].name === 'primaryXAxis' ? null : this.axisCollection[axisCount as number].name : '';
284283
for (let seriesCount: number = 0; seriesCount < this.series.length; seriesCount++) {
284+
const axisName: string = this.axisCollection[axisCount as number] !== null ? (this.axisCollection[axisCount as number].name === 'primaryXAxis' || (this.axisCollection[axisCount as number].name === 'primaryYAxis' && this.series[seriesCount as number].type === 'Bar')) ? null : this.axisCollection[axisCount as number].name : '';
285285
if (!isRangeNavigator && ((!isAccumulation && (axisName !==
286286
(this.series[seriesCount as number] as SeriesModel | StockSeriesModel).xAxisName)) ||
287287
!(this.series[seriesCount as number] as SeriesModel | AccumulationSeriesModel | StockSeriesModel).visible ||
@@ -355,10 +355,10 @@ export class Export {
355355
isRangeNavigator: boolean, isAccumulation: boolean): number[][] {
356356
const xValues: number[][] = [];
357357
for (let axisCount: number = 0; axisCount < this.axisCollection.length; axisCount++) {
358-
const xValue: number[] = [];
359-
let axisName: string = this.axisCollection[axisCount as number] !== null ? this.axisCollection[axisCount as number].name === 'primaryXAxis' ? null : this.axisCollection[axisCount as number].name : '';
358+
const xValue: number[] = [];
360359
const valueType: string = isAccumulation ? '' : isRangeNavigator ? (controls[0] as RangeNavigator).valueType : this.axisCollection[axisCount as number].valueType;
361360
for (let seriesCount: number = 0; seriesCount < this.series.length; seriesCount++) {
361+
const axisName: string = this.axisCollection[axisCount as number] !== null ? (this.axisCollection[axisCount as number].name === 'primaryXAxis' || (this.axisCollection[axisCount as number].name === 'primaryYAxis' && this.series[seriesCount as number].type === 'Bar')) ? null : this.axisCollection[axisCount as number].name : '';
362362
if ((!isRangeNavigator && ((!isAccumulation && (axisName !==
363363
(this.series[seriesCount as number] as SeriesModel | StockSeriesModel).xAxisName)) ||
364364
!(this.series[seriesCount as number] as SeriesModel | AccumulationSeriesModel | StockSeriesModel).visible) ||
@@ -392,13 +392,13 @@ export class Export {
392392
let startIndex: number = 0;
393393
let index: number = 0;
394394
for (let axisCount: number = 0; axisCount < this.axisCollection.length; axisCount++) {
395-
const axisName: string = this.axisCollection[axisCount as number] !== null ? this.axisCollection[axisCount as number].name === 'primaryXAxis' ? null : this.axisCollection[axisCount as number].name : '';
396395
const valueType: string = isAccumulation ? '' : isRangeNavigator ? (controls[0] as RangeNavigator).valueType : this.axisCollection[axisCount as number].valueType;
397396
for (let xValueLength: number = 0; xValueLength < xValues[axisCount as number].length; xValueLength++) {
398397
index = startIndex ? startIndex : 1;
399398
const cells: ExcelCell[] = [];
400399
let isXValue: boolean = true;
401400
for (let seriesCount: number = 0; seriesCount < this.series.length; seriesCount++) {
401+
const axisName: string = this.axisCollection[axisCount as number] !== null ? (this.axisCollection[axisCount as number].name === 'primaryXAxis' || (this.axisCollection[axisCount as number].name === 'primaryYAxis' && this.series[seriesCount as number].type === 'Bar')) ? null : this.axisCollection[axisCount as number].name : '';
402402
if ((!isRangeNavigator && ((!isAccumulation &&
403403
(this.series[seriesCount as number] as SeriesModel | StockSeriesModel).xAxisName !== axisName) ||
404404
!(this.series[seriesCount as number] as SeriesModel | AccumulationSeriesModel | StockSeriesModel).visible) ||

controls/circulargauge/CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
## [Unreleased]
66

7-
## 25.1.42 (2024-04-30)
7+
## 25.2.3 (2024-05-08)
88

99
### Circular Gauge
1010

controls/diagrams/CHANGELOG.md

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

33
## [Unreleased]
44

5-
## 25.1.42 (2024-04-30)
5+
## 25.2.3 (2024-05-08)
66

77
### Diagram
88

controls/documenteditor/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-documenteditor",
3-
"version": "25.1.41",
3+
"version": "25.1.42",
44
"description": "Feature-rich document editor control with built-in support for context menu, options pane and dialogs.",
55
"keywords": [
66
"ej2",

controls/documenteditor/src/document-editor-container/tool-bar/tool-bar.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -786,7 +786,7 @@ export class Toolbar {
786786
DialogUtility.alert({
787787
content: localizeValue.getConstant('Unsupported format'),
788788
closeOnEscape: true, showCloseIcon: true,
789-
position: { X: 'Center', Y: 'Center' }
789+
position: { X: 'center', Y: 'center' }
790790
}).enableRtl = this.container.enableRtl;
791791
}
792792
}
@@ -833,7 +833,7 @@ export class Toolbar {
833833
DialogUtility.alert({
834834
content: this.container.localObj.getConstant('Error in establishing connection with web server'),
835835
closeOnEscape: true, showCloseIcon: true,
836-
position: { X: 'Center', Y: 'Center' }
836+
position: { X: 'center', Y: 'center' }
837837
}).enableRtl = this.container.enableRtl;
838838
} else {
839839
alert('Failed to load the file');

controls/documenteditor/src/document-editor/implementation/comments/comment.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ export class CommentReviewPane {
253253
showCloseIcon: true,
254254
closeOnEscape: true,
255255
animationSettings: { effect: 'Zoom' },
256-
position: { X: 'Center', Y: 'Center' }
256+
position: { X: 'center', Y: 'center' }
257257
});
258258
} else {
259259
this.owner.documentHelper.currentSelectedComment = undefined;
@@ -470,8 +470,11 @@ export class CommentReviewPane {
470470
public discardComment(comment: CommentElementBox): void {
471471
if (comment) {
472472
if (this.owner.editorHistoryModule) {
473-
this.owner.editorHistoryModule.undo();
474-
this.owner.editorHistoryModule.redoStack.pop();
473+
if (this.owner.editorHistoryModule.undoStack.length > 0
474+
&& this.owner.editorHistoryModule.undoStack[this.owner.editorHistoryModule.undoStack.length - 1].action === 'InsertComment') {
475+
this.owner.editorHistoryModule.undo();
476+
this.owner.editorHistoryModule.redoStack.pop();
477+
}
475478
this.owner.editorModule.isSkipOperationsBuild = true;
476479
this.owner.editorModule.deleteCommentInternal(comment);
477480
this.owner.editorModule.isSkipOperationsBuild = false;

controls/documenteditor/src/document-editor/implementation/editor-history/base-history-info.ts

+15-8
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,11 @@ export class BaseHistoryInfo {
637637
this.endPosition = undefined;
638638
// Use this property to skip deletion if already selected content deleted case.
639639
let isRemoveContent: boolean = false;
640+
// Use this property to delete table or cell based on history action.
641+
let isDeletecell: boolean = false;
642+
if (this.action === 'DeleteCells') {
643+
isDeletecell = true;
644+
}
640645
if (this.endRevisionLogicalIndex && deletedNodes.length > 0) {
641646
let currentPosition: TextPosition = sel.getTextPosBasedOnLogicalIndex(this.endRevisionLogicalIndex);
642647
if (this.editorHistory.isUndoing || (this.editorHistory.isRedoing && insertTextPosition.isAtSamePosition(endTextPosition))) {
@@ -648,7 +653,7 @@ export class BaseHistoryInfo {
648653
this.endIndex += this.paraInclude(currentPosition);
649654
}
650655
if (this.editorHistory.isUndoing || (this.editorHistory.isRedoing && !this.owner.selectionModule.isEmpty && deletedNodes.length > 0)) {
651-
this.owner.editorModule.deleteSelectedContents(sel, true);
656+
this.owner.editorModule.deleteSelectedContents(sel, true, isDeletecell);
652657
isRemoveContent = true;
653658
}
654659
}
@@ -710,11 +715,6 @@ export class BaseHistoryInfo {
710715
let isRedoAction: boolean = (this.editorHistory.isRedoing && !isRemoveContent);
711716
isRemoveContent = this.lastElementRevision ? false : isRemoveContent;
712717
this.revertModifiedNodes(deletedNodes, isRedoAction, isForwardSelection ? start : end, start === end, isForwardSelection ? end : start);
713-
// Use this property to delete table or cell based on history action.
714-
let isDeletecell: boolean = false;
715-
if (this.action === 'DeleteCells') {
716-
isDeletecell = true;
717-
}
718718
if (isRemoveContent) {
719719
this.removeContent(insertTextPosition, endTextPosition, isDeletecell);
720720
}
@@ -725,7 +725,7 @@ export class BaseHistoryInfo {
725725
if (!isNullOrUndefined(this.editorHistory.currentHistoryInfo) && (this.editorHistory.currentHistoryInfo.action === 'Reject All' || this.editorHistory.currentHistoryInfo.action === 'Accept All' || this.editorHistory.currentHistoryInfo.action === 'Paste')) {
726726
updateSelection = true;
727727
}
728-
if (!this.owner.trackChangesPane.isTrackingPageBreak && ((this.editorHistory.isUndoing || this.endRevisionLogicalIndex || this.action === 'RemoveRowTrack' || updateSelection) && isNullOrUndefined(this.editorHistory.currentHistoryInfo) || updateSelection) ||
728+
if (this.action !== 'TrackingPageBreak' && ((this.editorHistory.isUndoing || this.endRevisionLogicalIndex || this.action === 'RemoveRowTrack' || updateSelection) && isNullOrUndefined(this.editorHistory.currentHistoryInfo) || updateSelection) ||
729729
((this.action === 'InsertRowAbove' || this.action === 'Borders' || this.action === 'InsertRowBelow' || this.action === 'InsertColumnLeft' || this.action === 'InsertColumnRight' || this.action === 'Accept Change' || this.action === 'PasteColumn' || this.action === 'PasteRow' || this.action === 'PasteOverwrite' || this.action === 'PasteNested') && (this.editorHistory.isRedoing
730730
|| this.editorHistory.currentHistoryInfo.action === 'Paste'))) {
731731
if (this.action === 'RemoveRowTrack' && this.editorHistory.isRedoing) {
@@ -1190,7 +1190,14 @@ export class BaseHistoryInfo {
11901190
if (this.editorHistory.isUndoing) {
11911191
while (currentPara !== endPara) {
11921192
isSplittedWidget = false;
1193-
this.owner.editorModule.applyRevisionForCurrentPara(currentPara, startoffset, currentPara.getLength(), id, true);
1193+
let endOffset = 0;
1194+
if (!isNullOrUndefined(currentPara.previousSplitWidget)) {
1195+
startoffset = (currentPara.previousSplitWidget as ParagraphWidget).getLength() + 1;
1196+
endOffset = (currentPara.previousSplitWidget as ParagraphWidget).getLength() + currentPara.getLength();
1197+
} else {
1198+
endOffset = currentPara.getLength();
1199+
}
1200+
this.owner.editorModule.applyRevisionForCurrentPara(currentPara, startoffset, endOffset, id, true);
11941201
//Correct the condition to get next widget instead of next widget of next splitted widget
11951202
currentPara = this.documentHelper.selection.getNextParagraphBlock(currentPara as BlockWidget);
11961203
if (!isNullOrUndefined(currentPara) && !isNullOrUndefined(currentPara.previousRenderedWidget) && currentPara.previousRenderedWidget instanceof ParagraphWidget && currentPara.previousRenderedWidget.nextSplitWidget && currentPara === endPara) {

0 commit comments

Comments
 (0)