Skip to content

Commit de29fa0

Browse files
author
pipeline
committed
v26.2.10 is released
1 parent 7766b8f commit de29fa0

File tree

235 files changed

+3134
-766
lines changed

Some content is hidden

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

235 files changed

+3134
-766
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-
## 26.2.9 (2024-08-13)
5+
## 26.2.10 (2024-08-20)
66

77
### Barcode
88

controls/buttons/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-
## 26.2.9 (2024-08-13)
5+
## 26.2.10 (2024-08-20)
66

77
### Switch
88

controls/calendars/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
## [Unreleased]
44

5+
## 26.2.10 (2024-08-20)
6+
7+
### DateRangePicker
8+
9+
#### Bug Fixes
10+
11+
- `#I189705` - Resolved an issue that caused a console error on mobile devices when utilizing the `maxDays` property in the `DateRangePicker`.
12+
13+
- `#I607606` - Fixed the issue where the TimePicker popup was not opening at the center on mobile devices.
14+
15+
- `#I613304` - Resolved an issue where toggling the visibility of the date range picker caused a memory leak.
16+
517
## 26.2.8 (2024-08-06)
618

719
### DatePicker

controls/calendars/node_modules/@types/node/README.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

controls/calendars/node_modules/aws-sdk/README.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

controls/calendars/node_modules/libphonenumber-js/README.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

controls/calendars/src/daterangepicker/daterangepicker.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2436,7 +2436,7 @@ export class DateRangePicker extends CalendarBase {
24362436
}
24372437
private updateMinMaxDays(calendar: HTMLElement): void {
24382438
if ((!isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) ||
2439-
(this.isMobile && this.endButton.element.classList.contains(ACTIVE))) {
2439+
(this.isMobile && this.endButton && this.endButton.element.classList.contains(ACTIVE))) {
24402440
if ((!isNullOrUndefined(this.minDays) && this.minDays > 0) || (!isNullOrUndefined(this.maxDays) && this.maxDays > 0)) {
24412441
const startValueSelected : Date = this.removeTimeValueFromDate(this.startValue);
24422442
let minDate: Date = new Date(new Date(+startValueSelected).setDate(startValueSelected.getDate() + (this.minDays - 1)));
@@ -3584,6 +3584,18 @@ export class DateRangePicker extends CalendarBase {
35843584
if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label)) {
35853585
this.unWireListEvents();
35863586
}
3587+
if (this.applyButton) {
3588+
this.applyButton.destroy();
3589+
}
3590+
if (this.cancelButton) {
3591+
this.cancelButton.destroy();
3592+
}
3593+
if (this.isMobile && this.endButton) {
3594+
this.endButton.destroy();
3595+
}
3596+
if (this.isMobile && this.startButton) {
3597+
this.startButton.destroy();
3598+
}
35873599
if (!isNullOrUndefined(this.popupObj)) {
35883600
if (!isNullOrUndefined(this.popupObj.element.parentElement)) {
35893601
detach(this.popupObj.element);

controls/calendars/src/datetimepicker/datetimepicker.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,6 +1117,14 @@ export class DateTimePicker extends DatePicker {
11171117
this.timeModal.style.display = 'block';
11181118
document.body.appendChild(this.timeModal);
11191119
}
1120+
if(Browser.isDevice){
1121+
const modelWrapper: HTMLElement = createElement('div', { className: 'e-datetime-mob-popup-wrap' });
1122+
modelWrapper.appendChild(this.dateTimeWrapper);
1123+
const dlgOverlay: HTMLElement = createElement('div', { className: 'e-dlg-overlay'});
1124+
dlgOverlay.style.zIndex = (this.zIndex - 1).toString();
1125+
modelWrapper.appendChild(dlgOverlay);
1126+
document.body.appendChild(modelWrapper);
1127+
}
11201128
const offset: number = 4;
11211129
this.popupObject = new Popup(this.dateTimeWrapper as HTMLElement, {
11221130
width: this.setPopupWidth(),
@@ -1157,26 +1165,21 @@ export class DateTimePicker extends DatePicker {
11571165
}
11581166
});
11591167
if (Browser.isDevice && this.fullScreenMode){
1160-
this.popupObject.element.style.display = 'flex';
11611168
this.popupObject.element.style.maxHeight = '100%';
11621169
this.popupObject.element.style.width = '100%';
11631170
} else {
11641171
this.popupObject.element.style.maxHeight = POPUPDIMENSION;
11651172
}
11661173

11671174
if (Browser.isDevice && this.fullScreenMode) {
1168-
const modelWrapper: HTMLElement = createElement('div', { className: 'e-datetime-mob-popup-wrap' });
11691175
const modelHeader: HTMLElement = this.createElement('div', { className: 'e-model-header' });
11701176
const modelTitleSpan: HTMLElement = this.createElement('span', { className: 'e-model-title' });
11711177
modelTitleSpan.textContent = 'Select time';
11721178
const modelCloseIcon: HTMLElement = this.createElement('span', { className: 'e-popup-close' });
11731179
EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.dateTimeCloseHandler, this);
1174-
const timeContent: HTMLElement = this.dateTimeWrapper.querySelector('.e-content');
11751180
modelHeader.appendChild(modelCloseIcon);
11761181
modelHeader.appendChild(modelTitleSpan);
1177-
modelWrapper.appendChild(modelHeader);
1178-
modelWrapper.appendChild(timeContent);
1179-
this.dateTimeWrapper.insertBefore(modelWrapper, this.dateTimeWrapper.firstElementChild);
1182+
this.dateTimeWrapper.insertBefore(modelHeader, this.dateTimeWrapper.firstElementChild);
11801183
}
11811184
}
11821185

controls/calendars/styles/datetimepicker/_layout.scss

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,26 @@
5757
}
5858
}
5959

60+
.e-datetime-mob-popup-wrap {
61+
align-items: center;
62+
display: flex;
63+
flex-direction: column;
64+
height: 100%;
65+
justify-content: center;
66+
left: 0;
67+
max-height: 100%;
68+
position: fixed;
69+
top: 0;
70+
width: 100%;
71+
z-index: 1002;
72+
73+
.e-datetimepicker.e-popup.e-lib.e-control.e-popup-open {
74+
left: 0 !important; /* stylelint-disable-line declaration-no-important */
75+
position: relative;
76+
top: 0 !important; /* stylelint-disable-line declaration-no-important */
77+
}
78+
}
79+
6080
#{&}.e-datetimepicker.e-time-modal {
6181
@if $skin-name != 'Material3' {
6282
background-color: $datetime-default-overlay;

controls/charts/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-
## 26.2.9 (2024-08-13)
5+
## 26.2.10 (2024-08-20)
66

77
### Chart
88

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-
## 26.2.9 (2024-08-13)
5+
## 26.2.10 (2024-08-20)
66

77
### DataManager
88

controls/documenteditor/CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22

33
## [Unreleased]
44

5+
## 26.2.10 (2024-08-20)
6+
7+
### DocumentEditor
8+
9+
#### Bug Fixes
10+
11+
- `#I613623` - Resolved the script error occurs while copy pasting the content from Word when enabling spellcheck.
12+
- `#I616511` - Resolved the problem with selecting and editing text after the comment inserted.
13+
- `#I616207` - Resolved the table left margin issue when opening attached document.
14+
- `#I616276` - Resolved the can edit and can delete values in content control are bound inversely.
15+
- `#I620559` - Resolved the issue that Ctrl + H opens the Find option instead of replace option.
16+
- `#I613766` - Resolved the single page content expanded into 13 pages issue in Document Editor.
17+
- `#I616846` - Resolved the overlapping issue when updating table of contents field.
18+
519
## 26.2.9 (2024-08-13)
620

721
### DocumentEditor

controls/documenteditor/node_modules/@types/node/README.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

controls/documenteditor/node_modules/aws-sdk/README.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

controls/documenteditor/node_modules/libphonenumber-js/README.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

controls/documenteditor/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-documenteditor",
3-
"version": "26.2.8",
3+
"version": "26.2.9",
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/implementation/dialogs/style-dialog.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,7 @@ export class StyleDialog {
691691
* @returns {void}
692692
*/
693693
public onOkButtonClick = (): void => {
694-
let styleName: string = SanitizeHtmlHelper.sanitize(this.styleNameElement.value);
694+
let styleName: string = this.documentHelper.owner.stylesDialogModule.getStyleName(SanitizeHtmlHelper.sanitize(this.styleNameElement.value));
695695
if (styleName.length > 0) {
696696
let style: WStyle = this.documentHelper.styles.findByName(styleName) as WStyle;
697697
let name: string;

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

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1960,7 +1960,6 @@ export class Editor {
19601960
if (!this.owner.isReadOnly && this.owner.optionsPaneModule) {
19611961
this.owner.optionsPaneModule.isReplace = true;
19621962
this.owner.documentEditorSettings.showNavigationPane = true;
1963-
this.owner.optionsPaneModule.showHideOptionsPane(true);
19641963
}
19651964
break;
19661965
case 73:
@@ -2555,8 +2554,8 @@ export class Editor {
25552554
properties.color = "#00000000";
25562555
this.selection.isEmpty ? properties.hasPlaceHolderText = true : properties.hasPlaceHolderText = false;
25572556
properties.isTemporary = false;
2558-
properties.lockContentControl = !isNullOrUndefined(lock) ? lock : false;
2559-
properties.lockContents = !isNullOrUndefined(lockContents) ? lock : false;
2557+
properties.lockContentControl = !isNullOrUndefined(lock) ? !lock : false;
2558+
properties.lockContents = !isNullOrUndefined(lockContents) ? !lockContents : false;
25602559
properties.tag = !isNullOrUndefined(tag) ? tag : undefined;
25612560
properties.title = !isNullOrUndefined(title) ? title : undefined;
25622561
properties.multiline = false;
@@ -2626,8 +2625,8 @@ export class Editor {
26262625
properties.color = "#00000000";
26272626
this.selection.isEmpty ? properties.hasPlaceHolderText = true : properties.hasPlaceHolderText = false;
26282627
properties.isTemporary = false;
2629-
properties.lockContentControl = !isNullOrUndefined(lock) ? lock : false;
2630-
properties.lockContents = !isNullOrUndefined(lockContents) ? lock : false;
2628+
properties.lockContentControl = !isNullOrUndefined(lock) ? !lock : false;
2629+
properties.lockContents = !isNullOrUndefined(lockContents) ? !lockContents : false;
26312630
properties.tag = !isNullOrUndefined(tag) ? tag : undefined;
26322631
properties.title = !isNullOrUndefined(title) ? title : undefined;
26332632
properties.multiline = false;
@@ -6152,7 +6151,7 @@ export class Editor {
61526151
return 0;
61536152
}
61546153
private checkSameLevelFormat(lstLevelNo: number, abstractList: any, list: WList): boolean {
6155-
return abstractList[levelsProperty[this.keywordIndex]][lstLevelNo][listLevelPatternProperty[this.keywordIndex]] === list.abstractList.levels[lstLevelNo].listLevelPattern
6154+
return this.owner.parser.getListLevelPattern(abstractList[levelsProperty[this.keywordIndex]][lstLevelNo][listLevelPatternProperty[this.keywordIndex]]) === list.abstractList.levels[lstLevelNo].listLevelPattern
61566155
&& abstractList[levelsProperty[this.keywordIndex]][lstLevelNo][numberFormatProperty[this.keywordIndex]] === list.abstractList.levels[lstLevelNo].numberFormat
61576156
&& (abstractList[levelsProperty[this.keywordIndex]][lstLevelNo][listLevelPatternProperty[this.keywordIndex]] === (this.keywordIndex == 1 ? 10 : 'Bullet')
61586157
|| abstractList[levelsProperty[this.keywordIndex]][lstLevelNo][startAtProperty[this.keywordIndex]] === list.abstractList.levels[lstLevelNo].startAt);
@@ -6163,7 +6162,7 @@ export class Editor {
61636162
if (isNullOrUndefined(level)) {
61646163
return false; // Skip this list if the level does not exist
61656164
}
6166-
return level.listLevelPattern === listLevel[listLevelPatternProperty[this.keywordIndex]]
6165+
return level.listLevelPattern === this.owner.parser.getListLevelPattern(listLevel[listLevelPatternProperty[this.keywordIndex]])
61676166
&& level.numberFormat === listLevel[numberFormatProperty[this.keywordIndex]]
61686167
&& (listLevel[listLevelPatternProperty[this.keywordIndex]] === (this.keywordIndex == 1 ? 10 : 'Bullet') || level.startAt === listLevel[startAtProperty[this.keywordIndex]])
61696168
&& this.isEqualParagraphFormat(level.paragraphFormat, listLevel[paragraphFormatProperty[this.keywordIndex]]);
@@ -8300,9 +8299,6 @@ export class Editor {
83008299
let paraStart: boolean = this.selection.start.isAtParagraphStart;
83018300
if (!selection.start.isAtParagraphStart) {
83028301
if (block instanceof ParagraphWidget) {
8303-
if (!this.isInsertingTOC && this.owner.enableTrackChanges && !this.skipTracking()) {
8304-
this.insertRevisionForBlock(block, 'Insertion');
8305-
}
83068302
let startPosition: TextPosition = selection.start.clone();
83078303
//let prevBlock: ParagraphWidget = (block as ParagraphWidget).clone()
83088304
if (!this.isInsertingTOC && this.owner.enableTrackChanges && !this.skipTracking()) {
@@ -21586,8 +21582,8 @@ export class Editor {
2158621582
bodyWidget.sectionFormat = new WSectionFormat(bodyWidget);
2158721583
bodyWidget.childWidgets = widgets;
2158821584
this.pasteContentsInternal([bodyWidget], false);
21589-
this.isInsertingTOC = false;
2159021585
this.updatePageRef();
21586+
this.isInsertingTOC = false;
2159121587
if (this.editorHistory) {
2159221588
this.editorHistory.updateComplexHistory();
2159321589
this.updateHistoryForComments(removedCommentStart);
@@ -22909,6 +22905,9 @@ export class Editor {
2290922905
contentControl.contentControlProperties.contentControlListItems.push(span);
2291022906
this.dropDownChange(contentControl, span.displayText as string);
2291122907
}
22908+
this.selection.contentControleditRegionHighlighters.clear();
22909+
this.selection.isHighlightContentControlEditRegion = true;
22910+
this.selection.onHighlightContentControl();
2291222911
}
2291322912
private updateContentControlResult(contentControl: ContentControl, value: string, reset?: boolean): void {
2291422913
this.selection.selectContentControlInternal(contentControl);

controls/documenteditor/src/document-editor/implementation/selection/selection-helper.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1220,13 +1220,17 @@ export class TextPosition {
12201220

12211221
private getPreviousWordOffsetComment(comment: ElementBox, selection: Selection, indexInInline: number, type: number, isInField: boolean, isStarted: boolean, endSelection: boolean, endPosition: TextPosition): void {
12221222
if (comment.previousNode) {
1223-
const inline: TextElementBox = comment.previousNode as TextElementBox;
1224-
if (comment.previousNode instanceof TextElementBox
1225-
&& HelperMethods.lastIndexOfAny(inline.text, HelperMethods.wordSplitCharacters) !== inline.text.length - 1) {
1226-
this.getPreviousWordOffset(inline, selection, indexInInline, type, isInField, isStarted, endSelection, endPosition);
1227-
} else {
1223+
if ((comment as CommentCharacterElementBox).commentType === 0) {
1224+
const inline: TextElementBox = comment.previousNode as TextElementBox;
1225+
if (comment.previousNode instanceof TextElementBox
1226+
&& HelperMethods.lastIndexOfAny(inline.text, HelperMethods.wordSplitCharacters) !== inline.text.length - 1) {
1227+
this.getPreviousWordOffset(inline, selection, indexInInline, type, isInField, isStarted, endSelection, endPosition);
1228+
} else {
12281229

1229-
this.getPreviousWordOffset(comment.previousNode, selection, comment.previousNode.length, type, isInField, isStarted, endSelection, endPosition);
1230+
this.getPreviousWordOffset(comment.previousNode, selection, comment.previousNode.length, type, isInField, isStarted, endSelection, endPosition);
1231+
}
1232+
} else {
1233+
endPosition.setPositionParagraph(comment.line, comment.line.getOffset(comment, 1));
12301234
}
12311235
} else {
12321236
endPosition.setPositionParagraph(comment.line, selection.getStartLineOffset(comment.line));
@@ -1314,9 +1318,6 @@ export class TextPosition {
13141318
const txt: string = span.text.length > indexInInline ? span.text.slice(0, indexInInline) : span.text;
13151319
wordStartIndex = HelperMethods.lastIndexOfAny(txt, HelperMethods.wordSplitCharacters);
13161320

1317-
if (wordStartIndex === -1 && span.previousElement instanceof CommentCharacterElementBox && isNullOrUndefined(span.previousNode.previousNode)) {
1318-
wordStartIndex = span.length;
1319-
}
13201321
if (wordStartIndex !== -1) {
13211322
if (isInField) {
13221323
endSelection = false;

0 commit comments

Comments
 (0)