File tree

80 files changed

+827
-209
lines changed

Some content is hidden

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

80 files changed

+827
-209
lines changed
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## []
44

5-
## 29.2.10 (2025-06-10)
5+
## 29.2.11 (2025-06-17)
66

77
### Barcode
88

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

33
## []
44

5-
## 29.2.10 (2025-06-10)
5+
## 29.2.11 (2025-06-17)
6+
7+
### Common
8+
9+
#### Bug Fixes
10+
11+
- `#I734291` - Resolved invalid CSS custom property issue in Fluent 2 theme
12+
13+
## 29.2.4 (2025-05-14)
614

715
### Common
816

Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-base",
3-
"version": "29.1.35",
3+
"version": "29.2.4",
44
"description": "A common package of Essential JS 2 base libraries, methods and class definitions",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,7 @@ $rating-selected-color:mapcolorvariable('rating-selected-color') !default;
627627
$rating-unrated-color: mapcolorvariable('rating-unrated-color') !default;
628628
$rating-selected-disabled-color: mapcolorvariable('rating-selected-disabled-color') !default;
629629
$rating-unrated-disabled-color: mapcolorvariable('rating-unrated-disabled-color') !default;
630-
$rating-selected-hover-color: mapcolorvariable('rating-selected-hover-color:') !default;
630+
$rating-selected-hover-color: mapcolorvariable('rating-selected-hover-color') !default;
631631
$rating-unrated-hover-color: mapcolorvariable('rating-unrated-hover-color') !default;
632632
$rating-pressed-color: mapcolorvariable('rating-pressed-color') !default;
633633

@@ -646,7 +646,7 @@ $msg-icon-color-alt2: mapcolorvariable('msg-icon-color-alt2') !default;
646646

647647
$msg-close-icon-color: mapcolorvariable('msg-close-icon-color') !default;
648648
$msg-close-icon-color-alt1: mapcolorvariable('msg-close-icon-color-alt21') !default;
649-
$msg-close-icon-color-alt2: mapcolorvariable('msg-close-icon-color-alt2:') !default;
649+
$msg-close-icon-color-alt2: mapcolorvariable('msg-close-icon-color-alt2') !default;
650650

651651
$msg-success-color: mapcolorvariable('msg-success-color') !default;
652652
$msg-success-bg-color: mapcolorvariable('msg-success-bg-color') !default;
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ $rating-selected-color:mapcolorvariable('rating-selected-color') !default;
638638
$rating-unrated-color: mapcolorvariable('rating-unrated-color') !default;
639639
$rating-selected-disabled-color: mapcolorvariable('rating-selected-disabled-color') !default;
640640
$rating-unrated-disabled-color: mapcolorvariable('rating-unrated-disabled-color') !default;
641-
$rating-selected-hover-color: mapcolorvariable('rating-selected-hover-color:') !default;
641+
$rating-selected-hover-color: mapcolorvariable('rating-selected-hover-color') !default;
642642
$rating-unrated-hover-color: mapcolorvariable('rating-unrated-hover-color') !default;
643643
$rating-pressed-color: mapcolorvariable('rating-pressed-color') !default;
644644

@@ -657,7 +657,7 @@ $msg-icon-color-alt2: mapcolorvariable('msg-icon-color-alt2') !default;
657657

658658
$msg-close-icon-color: mapcolorvariable('msg-close-icon-color') !default;
659659
$msg-close-icon-color-alt1: mapcolorvariable('msg-close-icon-color-alt21') !default;
660-
$msg-close-icon-color-alt2: mapcolorvariable('msg-close-icon-color-alt2:') !default;
660+
$msg-close-icon-color-alt2: mapcolorvariable('msg-close-icon-color-alt2') !default;
661661

662662
$msg-success-color: mapcolorvariable('msg-success-color') !default;
663663
$msg-success-bg-color: mapcolorvariable('msg-success-bg-color') !default;
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## []
44

5-
## 29.2.10 (2025-06-10)
5+
## 29.2.11 (2025-06-17)
66

77
### Switch
88

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

33
## []
44

5-
## 29.2.10 (2025-06-10)
5+
## 29.2.11 (2025-06-17)
66

77
### DatePicker
88

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

33
## []
44

5+
## 29.2.11 (2025-06-17)
6+
7+
### Chart
8+
9+
#### Bug Fixes
10+
11+
- `#I730840` - Now, the column with single point renders properly on date time category axis.
12+
513
## 29.2.10 (2025-06-10)
614

715
### Chart
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-charts",
3-
"version": "29.2.8",
3+
"version": "29.2.10",
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",
Original file line numberDiff line numberDiff line change
@@ -1083,7 +1083,7 @@ export function getMinPointsDelta(axis: Axis | Chart3DAxis, seriesCollection: Se
10831083
if (delta !== 0) {
10841084
minDelta = Math.min(minDelta, delta);
10851085
}
1086-
} else if (axis.valueType.indexOf('DateTime') > -1) {
1086+
} else if (axis.valueType === 'DateTime') {
10871087
const timeOffset: number = seriesCollection.length === 1 ? 25920000 : 2592000000;
10881088
seriesMin = (series.xMin === series.xMax) ? (series.xMin - timeOffset) : series.xMin;
10891089
minVal = <number>xValues[0] - (!isNullOrUndefined(seriesMin) ? seriesMin : axis.visibleRange.min);
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## []
44

5-
## 29.2.10 (2025-06-10)
5+
## 29.2.11 (2025-06-17)
66

77
### Diagram
88

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

33
## []
44

5+
## 29.2.11 (2025-06-17)
6+
7+
### DocumentEditor
8+
9+
#### Bug Fixes
10+
11+
- `#I717795` - Fixed the duplicate text insertion issue on mobile devices when using a custom keyboard.
12+
- `#I725685` - Resolved the content overlap issue when copying and pasting list content inside a table cell.
13+
- `#I686769` - Fixed the RTL text layout problem in exported DOCX documents.
14+
- `#I682661` - Corrected the `navigateToNextEditingRegion` API to work properly when the selection is outside the editing region.
15+
- `#I728691` - Fixed the duplicate table issue in exported DOCX documents when the spell checker is enabled.
16+
- `#I725974` - Handled alert pop-ups when a dropdown form field list exceeds its maximum limit.
17+
- `#I731469` - Fixed a script error that occurred when double-clicking inside a table cell while using a custom toolbar.
18+
- `#I718435` - Improved performance when inserting text into an auto-fit table.
19+
- `#I723712` - Fixed the text offset issue that occurred when a line starts with a space character.
20+
- `#I731065` - Resolved the bookmark positioning issue when pressing the Enter key if a bookmark ends after a paragraph mark.
21+
- `#I727094` - Fixed the IME text insertion issue when using backward text selection.
22+
- `#I728082` - Resolved the rendering issue of list elements when the paragraph’s hidden property is enabled.
23+
- `#I726625` - Fixed the comment pane behaviour after disabling the restrict editing mode.
24+
- `#I724502`, `#I724504`, `#I725183` - Resolved various issues with content controls during paste and backspace operations.
25+
526
## 29.2.10 (2025-06-10)
627

728
### DocumentEditor
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-documenteditor",
3-
"version": "29.2.8",
3+
"version": "29.2.10",
44
"description": "Feature-rich document editor control with built-in support for context menu, options pane and dialogs.",
55
"keywords": [
66
"ej2",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
import { LayoutViewer, PageLayoutViewer, DocumentHelper } from '../../src/index';
2+
import { DocumentEditor } from '../../src/document-editor/document-editor';
3+
import { createElement } from '@syncfusion/ej2-base';
4+
import { TestHelper } from '../test-helper.spec';
5+
import { Selection } from '../../src/index';
6+
import { TextPosition } from '../../src/index';
7+
import { Point } from '../../src/document-editor/implementation/editor/editor-helper';
8+
import { Editor } from '../../src/index';
9+
import { EditorHistory } from '../../src/document-editor/implementation/editor-history/editor-history';
10+
import { TableWidget, TableRowWidget, TableCellWidget } from '../../src/index';
11+
12+
13+
describe('Selection based Table middle Cell resize validation', () => {
14+
let editor: DocumentEditor = undefined;
15+
let documentHelper: DocumentHelper;
16+
beforeAll((): void => {
17+
let ele: HTMLElement = createElement('div', {
18+
id: 'container',
19+
styles: 'width:100%;height:100%'
20+
});
21+
document.body.appendChild(ele);
22+
editor = new DocumentEditor({ enableEditor: true, enableSelection: true, isReadOnly: false });
23+
DocumentEditor.Inject(Editor, Selection, EditorHistory); editor.enableEditorHistory = true;
24+
(editor.documentHelper as any).containerCanvasIn = TestHelper.containerCanvas;
25+
(editor.documentHelper as any).selectionCanvasIn = TestHelper.selectionCanvas;
26+
(editor.documentHelper.render as any).pageCanvasIn = TestHelper.pageCanvas;
27+
(editor.documentHelper.render as any).selectionCanvasIn = TestHelper.pageSelectionCanvas;
28+
editor.appendTo('#container');
29+
});
30+
afterAll((done): void => {
31+
editor.destroy();
32+
editor = undefined;
33+
document.body.removeChild(document.getElementById('container'));
34+
document.body.innerHTML = '';
35+
setTimeout(function () {
36+
done();
37+
}, 1000);
38+
});
39+
it('Resize At middle cell', () => {
40+
console.log('Resize At middle cell');
41+
documentHelper = editor.documentHelper;
42+
editor.openBlank();
43+
editor.editor.insertTable(2, 2);
44+
editor.selection.select('0;0;0;0;0;0', '0;0;0;1;0;1');
45+
editor.editorModule.tableResize.currentResizingTable = editor.selection.start.paragraph.associatedCell.ownerTable;
46+
editor.editorModule.tableResize.resizeNode = 0;
47+
documentHelper.isRowOrCellResizing = true;
48+
editor.editorModule.tableResize.resizerPosition = 1;
49+
editor.editorModule.tableResize.startingPoint = new Point(408, 105);
50+
let point: Point = new Point(499, 103);
51+
editor.editorModule.tableResize.handleResizing(point);
52+
expect(((editor.editorModule.tableResize.currentResizingTable.childWidgets[0] as TableRowWidget).childWidgets[1] as TableCellWidget).cellFormat.cellWidth).toBe(143);
53+
});
54+
55+
});
56+
57+
describe('Selection based Table Last Cell resize validation', () => {
58+
let editor: DocumentEditor = undefined;
59+
let documentHelper: DocumentHelper;
60+
beforeAll((): void => {
61+
let ele: HTMLElement = createElement('div', {
62+
id: 'container',
63+
styles: 'width:100%;height:100%'
64+
});
65+
document.body.appendChild(ele);
66+
editor = new DocumentEditor({ enableEditor: true, enableSelection: true, isReadOnly: false });
67+
DocumentEditor.Inject(Editor, Selection, EditorHistory); editor.enableEditorHistory = true;
68+
(editor.documentHelper as any).containerCanvasIn = TestHelper.containerCanvas;
69+
(editor.documentHelper as any).selectionCanvasIn = TestHelper.selectionCanvas;
70+
(editor.documentHelper.render as any).pageCanvasIn = TestHelper.pageCanvas;
71+
(editor.documentHelper.render as any).selectionCanvasIn = TestHelper.pageSelectionCanvas;
72+
editor.appendTo('#container');
73+
});
74+
afterAll((done): void => {
75+
editor.destroy();
76+
editor = undefined;
77+
document.body.removeChild(document.getElementById('container'));
78+
document.body.innerHTML = '';
79+
setTimeout(function () {
80+
done();
81+
}, 1000);
82+
});
83+
it('Resize At Last cell', () => {
84+
console.log('Resize At Last cell');
85+
documentHelper = editor.documentHelper;
86+
editor.openBlank();
87+
editor.editor.insertTable(2, 2);
88+
editor.selection.select('0;0;1;0;0;0', '0;0;1;1;0;1');
89+
editor.editorModule.tableResize.currentResizingTable = editor.selection.start.paragraph.associatedCell.ownerTable;
90+
editor.editorModule.tableResize.resizeNode = 0;
91+
documentHelper.isRowOrCellResizing = true;
92+
editor.editorModule.tableResize.resizerPosition = 2;
93+
editor.editorModule.tableResize.startingPoint = new Point(719, 127);
94+
let point: Point = new Point(500, 123);
95+
editor.editorModule.tableResize.handleResizing(point);
96+
expect(((editor.editorModule.tableResize.currentResizingTable.childWidgets[1] as TableRowWidget).childWidgets[1] as TableCellWidget).cellFormat.cellWidth).toBe(15);
97+
});
98+
99+
});
100+
101+
describe('Selection based Table first Cell resize validation', () => {
102+
let editor: DocumentEditor = undefined;
103+
let documentHelper: DocumentHelper;
104+
beforeAll((): void => {
105+
let ele: HTMLElement = createElement('div', {
106+
id: 'container',
107+
styles: 'width:100%;height:100%'
108+
});
109+
document.body.appendChild(ele);
110+
editor = new DocumentEditor({ enableEditor: true, enableSelection: true, isReadOnly: false });
111+
DocumentEditor.Inject(Editor, Selection, EditorHistory); editor.enableEditorHistory = true;
112+
(editor.documentHelper as any).containerCanvasIn = TestHelper.containerCanvas;
113+
(editor.documentHelper as any).selectionCanvasIn = TestHelper.selectionCanvas;
114+
(editor.documentHelper.render as any).pageCanvasIn = TestHelper.pageCanvas;
115+
(editor.documentHelper.render as any).selectionCanvasIn = TestHelper.pageSelectionCanvas;
116+
editor.appendTo('#container');
117+
});
118+
afterAll((done): void => {
119+
editor.destroy();
120+
editor = undefined;
121+
document.body.removeChild(document.getElementById('container'));
122+
document.body.innerHTML = '';
123+
setTimeout(function () {
124+
done();
125+
}, 1000);
126+
});
127+
it('Resize At first cell', () => {
128+
console.log('Resize At first cell');
129+
documentHelper = editor.documentHelper;
130+
editor.openBlank();
131+
editor.editor.insertTable(2, 2);
132+
editor.selection.select('0;0;1;0;0;0', '0;0;1;1;0;1');
133+
editor.editorModule.tableResize.currentResizingTable = editor.selection.start.paragraph.associatedCell.ownerTable;
134+
editor.editorModule.tableResize.resizeNode = 0;
135+
documentHelper.isRowOrCellResizing = true;
136+
editor.editorModule.tableResize.resizerPosition = 0;
137+
editor.editorModule.tableResize.startingPoint = new Point(96, 122);
138+
let point: Point = new Point(191, 124);
139+
editor.editorModule.tableResize.handleResizing(point);
140+
expect(((editor.editorModule.tableResize.currentResizingTable.childWidgets[1] as TableRowWidget).childWidgets[0] as TableCellWidget).cellFormat.cellWidth).toBe(139);
141+
});
142+
});
Original file line numberDiff line numberDiff line change
@@ -283,9 +283,9 @@ export class StatusBar {
283283
}
284284
public updatePageNumberOnViewChange(args: ViewChangeEventArgs): void {
285285
if (this.documentEditor.selectionModule
286-
&& this.documentEditor.selectionModule.startPage >= args.startPage
287-
&& this.documentEditor.selectionModule.startPage <= args.endPage) {
288-
this.startPage = this.documentEditor.selectionModule.startPage;
286+
&& this.documentEditor.selectionModule.endPage >= args.startPage
287+
&& this.documentEditor.selectionModule.endPage <= args.endPage) {
288+
this.startPage = this.documentEditor.selectionModule.endPage;
289289
} else {
290290
this.startPage = args.startPage;
291291
}
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,7 @@ export class Toolbar {
10571057
}
10581058
}
10591059
}
1060-
if (this.documentEditor.selection.isCellOrRowSelected()) {
1060+
if (this.documentEditor.selection.isCellOrRowSelected() && this.containsItem(id + INSERT_LINK_ID)) {
10611061
this.toolbar.enableItems(document.getElementById(id + INSERT_LINK_ID).parentElement, false);
10621062
}
10631063
if (!isProtectedContent || this.container.showPropertiesPane) {
Original file line numberDiff line numberDiff line change
@@ -3374,7 +3374,8 @@ export class DocumentEditor extends Component<HTMLElement> implements INotifyPro
33743374
'Default Content Control Text': 'Click here or tap to insert text',
33753375
'Default Date Picker': 'Click or tap enter the date',
33763376
'Rich text Controls': 'Rich text controls cannot be applied here.',
3377-
'Plain text Controls': 'Plain text controls cannot be applied here.'
3377+
'Plain text Controls': 'Plain text controls cannot be applied here.',
3378+
'DropDownLimitWarning': 'You can have no more than 25 items in your drop-down list box.'
33783379
};
33793380
/* eslint-enable */
33803381
// Public Implementation Starts
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,11 @@ export class CommentReviewPane {
9191
this.owner.notify('reviewPane', { comment: this.isCommentTabVisible, changes: true });
9292
this.reviewTab.select(1);
9393
} else {
94-
this.owner.trackChangesPane.isChangesTabVisible = false;
95-
this.owner.notify('reviewPane', { comment: true, changes: this.owner.trackChangesPane.isChangesTabVisible, isUserClosed: false });
96-
this.reviewTab.select(0);
94+
if (this.owner.documentHelper.comments.length != 0) {
95+
this.owner.trackChangesPane.isChangesTabVisible = false;
96+
this.owner.notify('reviewPane', { comment: true, changes: this.owner.trackChangesPane.isChangesTabVisible, isUserClosed: false });
97+
this.reviewTab.select(0);
98+
}
9799
}
98100
this.owner.trackChangesPane.updateTrackChanges(this.owner.showRevisions);
99101
this.commentPane.updateCommentStatus();

0 commit comments

Comments
 (0)