Skip to content

Commit 78827ed

Browse files
author
pipeline
committed
v19.1.55 is released
1 parent 9b7264d commit 78827ed

File tree

173 files changed

+2931
-597
lines changed

Some content is hidden

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

173 files changed

+2931
-597
lines changed

controls/base/CHANGELOG.md

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

33
## [Unreleased]
44

5-
## 19.1.54 (2021-03-30)
5+
## 19.1.55 (2021-04-06)
66

77
### Common
88

controls/calendars/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-calendars",
3-
"version": "17.2.48",
3+
"version": "19.1.54",
44
"description": "A complete package of date or time components with built-in features such as date formatting, inline editing, multiple (range) selection, range restriction, month and year selection, strict mode, and globalization.",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

controls/calendars/src/datepicker/datepicker.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2057,6 +2057,7 @@ export class DatePicker extends Calendar implements IInput {
20572057
}
20582058
}
20592059
this.isInteracted = true;
2060+
this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;
20602061
break;
20612062
case 'format':
20622063
this.checkFormat();
@@ -2137,7 +2138,6 @@ export class DatePicker extends Calendar implements IInput {
21372138
this.hide(null);
21382139
}
21392140
this.isDynamicValueChanged = false;
2140-
this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;
21412141
}
21422142
}
21432143
}

controls/calendars/src/daterangepicker/daterangepicker.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4667,6 +4667,7 @@ export class DateRangePicker extends CalendarBase {
46674667
this.updateHeader();
46684668
this.applyButton.disabled = this.applyButton.element.disabled = false;
46694669
}
4670+
this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;
46704671
break;
46714672
case 'minDays':
46724673
this.setProperties({ minDays: newProp.minDays }, true);
@@ -4712,7 +4713,6 @@ export class DateRangePicker extends CalendarBase {
47124713
this.refreshChange();
47134714
break;
47144715
}
4715-
this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;
47164716
}
47174717
}
47184718
}

controls/calendars/src/datetimepicker/datetimepicker.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1746,6 +1746,7 @@ export class DateTimePicker extends DatePicker {
17461746
this.previousDateTime = new Date(this.inputElement.value);
17471747
this.updateInput();
17481748
this.changeTrigger(null);
1749+
this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;
17491750
break;
17501751
case 'min':
17511752
case 'max':
@@ -1829,7 +1830,6 @@ export class DateTimePicker extends DatePicker {
18291830
this.hide(null);
18301831
}
18311832
this.isDynamicValueChanged = false;
1832-
this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;
18331833
}
18341834
}
18351835
/**

controls/charts/CHANGELOG.md

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

33
## [Unreleased]
44

5-
## 19.1.54 (2021-03-30)
5+
## 19.1.55 (2021-04-06)
66

77
### Chart
88

controls/circulargauge/CHANGELOG.md

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

55
## [Unreleased]
66

7-
## 19.1.54 (2021-03-30)
7+
## 19.1.55 (2021-04-06)
88

99
### CircularGauge
1010

controls/compression/CHANGELOG.md

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

33
## [Unreleased]
44

5-
## 19.1.54 (2021-03-30)
5+
## 19.1.55 (2021-04-06)
66

77
### Compression
88

controls/data/CHANGELOG.md

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

33
## [Unreleased]
44

5+
## 19.1.55 (2021-04-06)
6+
7+
### DataManager
8+
9+
#### Bug Fixes
10+
11+
- `#F163538`, `#I320452` - Blank row issue while adding new record with `RemoteSaveAdaptor` has been fixed.
12+
513
## 19.1.54 (2021-03-30)
614

715
### DataManager
@@ -16,7 +24,7 @@
1624

1725
#### Bug Fixes
1826

19-
- `312017` - `RemoteSaveAdaptor` with batch editing issue has been fixed has been fixed.
27+
- `312017` - `RemoteSaveAdaptor` with batch editing issue has been fixed.
2028

2129
## 18.4.33 (2021-01-05)
2230

controls/data/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-data",
3-
"version": "17.2.48",
3+
"version": "19.1.54",
44
"description": "Essential JS 2 DataManager",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

controls/data/src/adaptors.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -2016,7 +2016,8 @@ export class RemoteSaveAdaptor extends JsonAdaptor {
20162016
data: CrudOptions, ds?: DataOptions, query?: Query, xhr?: XMLHttpRequest, request?: Ajax, changes?: CrudOptions, e?: RemoteArgs):
20172017
Object {
20182018
let i: number;
2019-
data = request ? JSON.parse((<{ data?: string }>request).data) : data;
2019+
let newData: CrudOptions = request ? JSON.parse((<{ data?: string }>request).data) : data;
2020+
data = newData.action === 'batch' ? newData : data;
20202021
if (this.updateType === 'add') {
20212022
super.insert(ds as DataManager, data, null, null, this.pvt.position);
20222023
}

controls/diagrams/CHANGELOG.md

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

33
## [Unreleased]
44

5-
## 19.1.54 (2021-03-30)
5+
## 19.1.55 (2021-04-06)
66

77
### Diagram
88

controls/documenteditor/CHANGELOG.md

+50
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,54 @@
2323
- `#315435` - Table cell width now preserved properly on editing.
2424
- `#162638` - Table background color was now updated properly on updating borders and shading.
2525

26+
## 18.4.49 (2021-03-23)
27+
28+
### Document Editor
29+
30+
#### Bug Fixes
31+
32+
- `#317061` - The merged cell table border rendering issue is resolved.
33+
- `#318283` - Resolved script error while editing the last section header.
34+
- `#310874` - The table with the merged cell is exporting properly.
35+
- `#162017` - Restart page numbering is now preserved properly on exporting.
36+
- `#316810` - Spell check script error is now resolved for layout type change.
37+
- `#163236` - Strike through and underline content are now copy-pasted properly.
38+
39+
## 18.4.48 (2021-03-16)
40+
41+
### Document Editor
42+
43+
#### Bug Fixes
44+
45+
- `#163116`, `#317496`, `#315005` - Implemented the line spacing Hanging similar to MS word.
46+
- `#317691` - Resolve the Number formatting after applying bullet formats.
47+
- `#317524` - Replace all with empty string is now working.
48+
- `#317605` - Shape with line format value null was now preserved properly.
49+
- `#317150` - Can press 'p' key in Firefox after control + a and then backspace.
50+
- Resolve hanging issue while opening document.
51+
- `#315656` - Resolve script error when importing document.
52+
53+
## 18.4.47 (2021-03-09)
54+
55+
### Document Editor
56+
57+
#### Breaking Changes
58+
59+
- The `DictionaryData(int langID,string dictPath,string affPath,string customPath)` is marked as obsolete. Please use the alternate new constructor `DictionaryData(int langID, string dictPath, string affPath)` in `Syncfusion.EJ2.SpellChecker` spell checker.
60+
- The `SpellChecker(List<SpellCheckDictionary> dictItem)` is marked as obsolete. Please use the alternate new constructor `SpellChecker(List<DictionaryData> dictItem, string customDicPath)` in `Syncfusion.EJ2.SpellChecker` spell checker.
61+
62+
#### Bug Fixes
63+
64+
- `#315096` - Selection behaviour is updated properly, while pasting a URL and clicking enter after the URL.
65+
- `#315413`, `#317463` - Table cell is now rendered properly.
66+
- `#314467` - Find and replace is now working properly.
67+
- `#315441` - While inserting same bookmark multiple times and deleting, bookmarks were preserved properly now.
68+
- `#316532` - ParagraphFormat is now preserved while pasting with text only option.
69+
- `#314193` - Document with charts were now preserved properly on exporting.
70+
- `#161908`, `#318321` - Added API to show/hide restrict editing pane.
71+
- `#315435` - Table cell width now preserved properly on editing.
72+
- `#162638` - Table background color was now updated properly on updating borders and shading.
73+
2674
## 18.4.46 (2021-03-02)
2775

2876
### Document Editor
@@ -48,6 +96,8 @@
4896
- `#162017` - Page number was now updated properly based on page index.
4997
- `#313821` - Table column were now layout properly.
5098
- `#311371` - While deleting the bookmark extra spaces between the text were now removed properly.
99+
- `#312082` - Resolved script error on updating TOC.
100+
- `#312306` - Hyperlink label was not added while editing the link address now.
51101

52102
## 18.4.43 (2021-02-16)
53103

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": "18.4.46",
3+
"version": "19.1.54",
44
"description": "Feature-rich document editor control with built-in support for context menu, options pane and dialogs.",
55
"keywords": [
66
"ej2",

controls/documenteditor/spec/implementation/dialogs/table-properties-dialog.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1508,7 +1508,7 @@ console.log('in 3*4 table and last column resized with minimum width');
15081508
(tablePropertiesDialog as any).center.click();
15091509
tablePropertiesDialog.applyTableProperties();
15101510
expect(editor.selection.tableFormat.tableAlignment).toBe('Center');
1511-
expect(editor.selection.tableFormat.table.x).toBe(96);
1511+
expect(editor.selection.tableFormat.table.x).not.toBe(96);
15121512
expect(Math.round(cellWidget.cellFormat.preferredWidth)).toBe(Math.round(previousCellWidth));
15131513
});
15141514
it('cell with different backgroud validation', () => {

controls/documenteditor/spec/implementation/editor/editor.spec.ts

+7
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,13 @@ describe("Insert and delete table validation", () => {
161161
//expect(editor.selection.start.paragraph.isInsideTable).toBe(true);
162162
expect(editor.pageCount).toBe(2);
163163
});
164+
it("Apply cell format validation", () => {
165+
editor.openBlank();
166+
editor.editorModule.insertTable(2, 2);
167+
editor.selection.selectColumn();
168+
editor.selection.cellFormat.preferredWidth = 400;
169+
expect(editor.selection.start.paragraph.associatedCell.ownerTable.tableHolder.tableWidth).toBeGreaterThan(630);
170+
});
164171
});
165172

166173
describe("Insert Hyperlink and bookmark validation", () => {

controls/documenteditor/spec/implementation/editor_2.spec.ts

+72
Original file line numberDiff line numberDiff line change
@@ -2954,3 +2954,75 @@ console.log('copy with content control');
29542954
expect(() => { editor.editorModule.paste(); }).not.toThrowError();
29552955
});
29562956
});
2957+
describe('Text Replace', () => {
2958+
let editor: DocumentEditor = undefined;
2959+
beforeAll(() => {
2960+
let ele: HTMLElement = createElement('div', { id: 'container' });
2961+
document.body.appendChild(ele);
2962+
editor = new DocumentEditor({ enableEditor: true, isReadOnly: false });
2963+
DocumentEditor.Inject(Editor, Selection, EditorHistory); editor.enableEditorHistory = true;
2964+
(editor.documentHelper as any).containerCanvasIn = TestHelper.containerCanvas;
2965+
(editor.documentHelper as any).selectionCanvasIn = TestHelper.selectionCanvas;
2966+
(editor.documentHelper.render as any).pageCanvasIn = TestHelper.pageCanvas;
2967+
(editor.documentHelper.render as any).selectionCanvasIn = TestHelper.pageSelectionCanvas;
2968+
editor.appendTo('#container');
2969+
});
2970+
afterAll((done) => {
2971+
editor.destroy();
2972+
document.body.removeChild(document.getElementById('container'));
2973+
editor = undefined;
2974+
setTimeout(function () {
2975+
done();
2976+
}, 1000);
2977+
});
2978+
it('Text replace should not delete, after empty space', () => {
2979+
editor.openBlank();
2980+
editor.editorModule.insertText('Test Test Test');
2981+
editor.selection.start.offset = 5;
2982+
editor.selection.end.offset = 9;
2983+
editor.editor.insertText('t');
2984+
let line: LineWidget = (editor.selection.start.paragraph.childWidgets[0] as LineWidget);
2985+
let element: TextElementBox = (line.children[0] as TextElementBox)
2986+
expect(element.text).toBe('Test t Test');
2987+
});
2988+
});
2989+
describe('Header Footer ', () => {
2990+
let editor: DocumentEditor = undefined;
2991+
beforeAll(() => {
2992+
let ele: HTMLElement = createElement('div', { id: 'container' });
2993+
document.body.appendChild(ele);
2994+
editor = new DocumentEditor({ enableEditor: true, isReadOnly: false });
2995+
DocumentEditor.Inject(Editor, Selection, EditorHistory); editor.enableEditorHistory = true;
2996+
(editor.documentHelper as any).containerCanvasIn = TestHelper.containerCanvas;
2997+
(editor.documentHelper as any).selectionCanvasIn = TestHelper.selectionCanvas;
2998+
(editor.documentHelper.render as any).pageCanvasIn = TestHelper.pageCanvas;
2999+
(editor.documentHelper.render as any).selectionCanvasIn = TestHelper.pageSelectionCanvas;
3000+
editor.appendTo('#container');
3001+
});
3002+
afterAll((done) => {
3003+
editor.destroy();
3004+
document.body.removeChild(document.getElementById('container'));
3005+
editor = undefined;
3006+
setTimeout(function () {
3007+
done();
3008+
}, 1000);
3009+
});
3010+
it('Headers and Footers after section breaks dont start Different First Page', () => {
3011+
editor.openBlank();
3012+
editor.selection.start.paragraph.bodyWidget.sectionFormat.differentFirstPage = true;
3013+
editor.selection.sectionFormat.differentFirstPage = true;
3014+
editor.selection.goToHeader();
3015+
editor.editor.insertText('First');
3016+
editor.selection.disableHeaderFooter();
3017+
editor.editor.insertText('Test');
3018+
editor.editor.insertPageBreak();
3019+
editor.selection.goToHeader();
3020+
editor.editor.insertText('Second');
3021+
editor.selection.disableHeaderFooter();
3022+
editor.editor.insertText('Test');
3023+
editor.editor.insertSectionBreak();
3024+
editor.selection.goToHeader();
3025+
let text: string = ((editor.selection.start.paragraph.childWidgets[0] as LineWidget).children[0] as TextElementBox).text;
3026+
expect(text).toBe('First');
3027+
});
3028+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { DocumentEditor } from '../../../src/document-editor/document-editor';
2+
import { createElement } from '@syncfusion/ej2-base';
3+
import { Editor, DocumentHelper, SfdtExport } from '../../../src/index';
4+
import { TestHelper } from '../../test-helper.spec';
5+
import { Selection } from '../../../src/index';
6+
import { EditorHistory } from '../../../src/document-editor/implementation/editor-history/editor-history';
7+
8+
/**
9+
* Auto Convert List Test script
10+
*/
11+
12+
describe('HTML Writer validation', () => {
13+
let editor: DocumentEditor;
14+
let documentHelper: DocumentHelper;
15+
beforeAll((): void => {
16+
let ele: HTMLElement = createElement('div', { id: 'container' });
17+
document.body.appendChild(ele);
18+
DocumentEditor.Inject(Editor, Selection, EditorHistory, SfdtExport);
19+
editor = new DocumentEditor({ enableEditor: true, isReadOnly: false, enableSelection: true, enableEditorHistory: true });
20+
editor.acceptTab = true;
21+
(editor.documentHelper as any).containerCanvasIn = TestHelper.containerCanvas;
22+
(editor.documentHelper as any).selectionCanvasIn = TestHelper.selectionCanvas;
23+
(editor.documentHelper.render as any).pageCanvasIn = TestHelper.pageCanvas;
24+
(editor.documentHelper.render as any).selectionCanvasIn = TestHelper.pageSelectionCanvas;
25+
editor.appendTo('#container');
26+
documentHelper = editor.documentHelper;
27+
});
28+
afterAll((done): void => {
29+
documentHelper.destroy();
30+
documentHelper = undefined;
31+
editor.destroy();
32+
document.body.removeChild(document.getElementById('container'));
33+
editor = undefined;
34+
setTimeout(function () {
35+
done();
36+
}, 1000);
37+
});
38+
it('Underline Strikethrough validation.', () => {
39+
console.log('Underline Strikethrough validation');
40+
editor.openBlank();
41+
editor.editorModule.insertText('hello world');
42+
editor.selection.selectAll();
43+
editor.selection.characterFormat.underline = 'Single';
44+
editor.selection.characterFormat.strikethrough = 'SingleStrike';
45+
expect(editor.selection.getHtmlContent()).toEqual('<div style="font-weight:normal;font-style:normal;text-decoration:line-through underline;color:empty;font-size:11pt;font-family:Calibri;text-align:left;margin-top:0pt; margin-right:0pt; margin-bottom:0pt; margin-left:0pt; line-height:1"><span style="font-weight:normal;font-style:normal;text-decoration:line-through underline;">hello world</span></div>');
46+
})
47+
it('Strikethrough validation.', () => {
48+
console.log('Strikethrough validation.');
49+
editor.openBlank();
50+
editor.editorModule.insertText('hello world');
51+
editor.selection.selectAll();
52+
editor.selection.characterFormat.strikethrough = 'SingleStrike';
53+
expect(editor.selection.getHtmlContent()).toEqual('<div style="font-weight:normal;font-style:normal;text-decoration:line-through ;color:empty;font-size:11pt;font-family:Calibri;text-align:left;margin-top:0pt; margin-right:0pt; margin-bottom:0pt; margin-left:0pt; line-height:1"><span style="font-weight:normal;font-style:normal;text-decoration:line-through ;">hello world</span></div>');
54+
})
55+
it('Underline validation.', () => {
56+
console.log('Underline validation.');
57+
editor.openBlank();
58+
editor.editorModule.insertText('hello world');
59+
editor.selection.selectAll();
60+
editor.selection.characterFormat.underline = 'Single';
61+
expect(editor.selection.getHtmlContent()).toEqual('<div style="font-weight:normal;font-style:normal;text-decoration:underline;color:empty;font-size:11pt;font-family:Calibri;text-align:left;margin-top:0pt; margin-right:0pt; margin-bottom:0pt; margin-left:0pt; line-height:1"><span style="font-weight:normal;font-style:normal;text-decoration:underline;">hello world</span></div>');
62+
})
63+
})

controls/documenteditor/src/document-editor-container/properties-pane/text-properties.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,10 @@ export class Text {
309309
}
310310
private applyHighlightColor (color: string): void {
311311
this.appliedHighlightColor = color;
312-
const hgltColor: HighlightColor = this.getHighLightColor(color);
312+
let hgltColor: HighlightColor = this.getHighLightColor(color);
313+
if (hgltColor === 'NoColor') {
314+
this.documentEditor.selection.characterFormat.highlightColor = null;
315+
}
313316
this.documentEditor.selection.characterFormat.highlightColor = hgltColor as HighlightColor;
314317
}
315318
private getHighLightColor(color: string): HighlightColor {

0 commit comments

Comments
 (0)