@syncfusion/ej2-richtexteditor 27.2.3 → 27.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 27.2.3
3
+ * version : 27.2.4
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-richtexteditor@*",
3
- "_id": "@syncfusion/ej2-richtexteditor@27.2.2",
3
+ "_id": "@syncfusion/ej2-richtexteditor@27.2.3",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-XhxuV4pqamHtam7yooDj+UAn8UorGonjtxLr2pDoVeiz3r/YodlN5r+UV8Ta6jk4p0hvmwyTa/wJGliZjPBuzQ==",
5
+ "_integrity": "sha512-pp9x/DFwkNSSE2Tan2Lp5VmSNG56ukyqIdbHdqMEBOKVTCqX5nlYCpEjTU4T6piBi4BlbeiEcjasWJxtc3ZhNw==",
6
6
  "_location": "/@syncfusion/ej2-richtexteditor",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -25,8 +25,8 @@
25
25
  "/@syncfusion/ej2-react-richtexteditor",
26
26
  "/@syncfusion/ej2-vue-richtexteditor"
27
27
  ],
28
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-27.2.2.tgz",
29
- "_shasum": "0b7cb82941dbccb875cbea81919374a9245339a9",
28
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-27.2.3.tgz",
29
+ "_shasum": "c4636a9f71acd2f9a8a0a63cbfb22593f71ac168",
30
30
  "_spec": "@syncfusion/ej2-richtexteditor@*",
31
31
  "_where": "/jenkins/workspace/elease-automation_release_27.1.1/packages/included",
32
32
  "author": {
@@ -38,11 +38,11 @@
38
38
  "bundleDependencies": false,
39
39
  "dependencies": {
40
40
  "@syncfusion/ej2-base": "~27.2.2",
41
- "@syncfusion/ej2-buttons": "~27.2.2",
42
- "@syncfusion/ej2-dropdowns": "~27.2.3",
41
+ "@syncfusion/ej2-buttons": "~27.2.4",
42
+ "@syncfusion/ej2-dropdowns": "~27.2.4",
43
43
  "@syncfusion/ej2-filemanager": "~27.2.3",
44
- "@syncfusion/ej2-inputs": "~27.2.2",
45
- "@syncfusion/ej2-navigations": "~27.2.3",
44
+ "@syncfusion/ej2-inputs": "~27.2.4",
45
+ "@syncfusion/ej2-navigations": "~27.2.4",
46
46
  "@syncfusion/ej2-popups": "~27.2.2",
47
47
  "@syncfusion/ej2-splitbuttons": "~27.2.2"
48
48
  },
@@ -80,6 +80,6 @@
80
80
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
81
81
  },
82
82
  "typings": "index.d.ts",
83
- "version": "27.2.3",
83
+ "version": "27.2.4",
84
84
  "sideEffects": false
85
85
  }
@@ -76,6 +76,11 @@ var NodeCutter = /** @class */ (function () {
76
76
  if (node) {
77
77
  InsertMethods.AppendBefore(fragment, node, true);
78
78
  }
79
+ else if (parent_1.childNodes.length > 1 && parent_1.childNodes.length !== index) {
80
+ node = parent_1.childNodes[parent_1.childNodes.length - 1];
81
+ InsertMethods.AppendBefore(fragment, node, true);
82
+ node = node.nextSibling;
83
+ }
79
84
  else {
80
85
  parent_1.appendChild(fragment);
81
86
  var divNode = document.createElement('div');
@@ -284,8 +284,10 @@ var SelectionCommands = /** @class */ (function () {
284
284
  range.startContainer.textContent.substring(range.startOffset, range.startContainer.textContent.length) :
285
285
  range.startContainer.textContent;
286
286
  var nodeText = nodes[index].textContent;
287
+ var isParentNodeSameAsParentElement = nodes[0].parentElement.nodeName === nodes[0].parentElement.parentElement.nodeName;
287
288
  if (!(range.startContainer === range.endContainer && range.startOffset === 0
288
- && range.endOffset === range.startContainer.length)) {
289
+ && range.endOffset === range.startContainer.length
290
+ && (range.startContainer.textContent === formatNode.textContent || isParentNodeSameAsParentElement))) {
289
291
  var nodeIndex = [];
290
292
  var cloneNode = nodes[index];
291
293
  var clonedElement = cloneNode;
@@ -306,10 +308,19 @@ var SelectionCommands = /** @class */ (function () {
306
308
  if (!isCursor) {
307
309
  while (cloneNode && cloneNode.childNodes.length > 0 && ((nodeIndex.length - 1) >= 0)
308
310
  && (cloneNode.childNodes.length > nodeIndex[nodeIndex.length - 1])) {
309
- cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 1]];
310
- nodeIndex.pop();
311
+ if (cloneNode.childNodes.length > 1 && nodeIndex.length > 1) {
312
+ cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 2]];
313
+ break;
314
+ }
315
+ else {
316
+ cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 1]];
317
+ nodeIndex.pop();
318
+ }
311
319
  }
312
320
  if (nodes[index].nodeName !== 'BR') {
321
+ while (cloneNode.nodeType === 1 && cloneNode.childNodes.length > 0) {
322
+ cloneNode = cloneNode.childNodes[0];
323
+ }
313
324
  if (cloneNode.nodeType === 3 && !(isCursor && cloneNode.nodeValue === '')) {
314
325
  nodes[index] = cloneNode;
315
326
  }
@@ -113,11 +113,11 @@ var DropDownButtons = /** @class */ (function () {
113
113
  command: { value: 'Font', enumerable: true }, subCommand: { value: 'FontName', enumerable: true }
114
114
  });
115
115
  });
116
- var fontNameContent = isNullOrUndefined(_this.parent.fontFamily.default) ? fontItem[0].text :
116
+ var fontNameContent = isNullOrUndefined(_this.parent.fontFamily.default) ? fontItem.length === 0 ? '' : fontItem[0].text :
117
117
  _this.parent.fontFamily.default;
118
118
  _this.fontNameDropDown = _this.toolbarRenderer.renderDropDownButton({
119
119
  iconCss: ((type === 'quick') ? 'e-font-name e-icons' : ''),
120
- content: _this.dropdownContent(_this.parent.fontFamily.width, type, ((type === 'quick') ? '' : (getDropDownValue(fontItem, fontNameContent, 'text', 'text') === 'Default' ? _this.i10n.getConstant('fontName') : getDropDownValue(fontItem, fontNameContent, 'text', 'text')))),
120
+ content: _this.dropdownContent(_this.parent.fontFamily.width, type, ((fontItem.length === 0) ? _this.i10n.getConstant('fontName') : (type === 'quick') ? '' : (getDropDownValue(fontItem, fontNameContent, 'text', 'text') === 'Default' ? _this.i10n.getConstant('fontName') : getDropDownValue(fontItem, fontNameContent, 'text', 'text')))),
121
121
  cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_FONT_NAME_TB_BTN,
122
122
  itemName: 'FontName', items: fontItem, element: targetElement
123
123
  });
@@ -136,11 +136,11 @@ var DropDownButtons = /** @class */ (function () {
136
136
  command: { value: 'Font', enumerable: true }, subCommand: { value: 'FontSize', enumerable: true }
137
137
  });
138
138
  });
139
- var fontSizeContent = isNullOrUndefined(_this.parent.fontSize.default) ? fontsize[0].text :
139
+ var fontSizeContent = isNullOrUndefined(_this.parent.fontSize.default) ? fontsize.length === 0 ? '' : fontsize[0].text :
140
140
  _this.parent.fontSize.default;
141
141
  var fontSizeDropDownContent = ((fontSizeContent === 'Default') ? getDropDownValue(fontsize, fontSizeContent.replace(/\s/g, ''), 'text', 'text') : getDropDownValue(fontsize, fontSizeContent.replace(/\s/g, ''), 'value', 'text'));
142
142
  _this.fontSizeDropDown = _this.toolbarRenderer.renderDropDownButton({
143
- content: _this.dropdownContent(_this.parent.fontSize.width, type, getFormattedFontSize((fontSizeDropDownContent === 'Default') ? _this.i10n.getConstant('fontSize') : fontSizeDropDownContent)),
143
+ content: _this.dropdownContent(_this.parent.fontSize.width, type, fontsize.length === 0 ? _this.i10n.getConstant('fontSize') : (getFormattedFontSize((fontSizeDropDownContent === 'Default') ? _this.i10n.getConstant('fontSize') : fontSizeDropDownContent))),
144
144
  cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_FONT_SIZE_TB_BTN,
145
145
  itemName: 'FontSize', items: fontsize, element: targetElement
146
146
  });
@@ -584,10 +584,21 @@ var HtmlEditor = /** @class */ (function () {
584
584
  // eslint-disable-next-line
585
585
  lastNode, lastNode.textContent.length);
586
586
  }
587
- if (this.oldRangeElement.nodeName !== '#text' && this.oldRangeElement.querySelectorAll('BR').length === 1) {
588
- detach(this.oldRangeElement.querySelector('BR'));
587
+ var checkParent = false;
588
+ if (this.oldRangeElement && this.oldRangeElement.nodeName !== '#text' && this.oldRangeElement.querySelectorAll('BR').length === 1) {
589
+ var brElement = this.oldRangeElement.querySelector('BR');
590
+ if (brElement) {
591
+ var brParentElement = brElement.parentNode;
592
+ var currentState = this.oldRangeElement.innerHTML;
593
+ this.parent.formatter.saveData(currentState);
594
+ detach(brElement);
595
+ if (brParentElement && brParentElement.childNodes.length === 0) {
596
+ detach(brParentElement);
597
+ checkParent = true;
598
+ }
599
+ }
589
600
  }
590
- if (!isNOU(this.rangeElement) && this.oldRangeElement !== this.rangeElement) {
601
+ if (!isNOU(this.rangeElement) && this.oldRangeElement !== this.rangeElement && !checkParent) {
591
602
  while (this.rangeElement.firstChild) {
592
603
  if (this.oldRangeElement.nodeName === '#text') {
593
604
  this.oldRangeElement.parentElement.appendChild(this.rangeElement.childNodes[0]);
@@ -54,6 +54,9 @@ export function hasClass(element, className) {
54
54
  export function getDropDownValue(items, value, type, returnType) {
55
55
  var data;
56
56
  var result;
57
+ if (items.length === 0 && value === 'FontSize') {
58
+ return 'Font Size';
59
+ }
57
60
  for (var k = 0; k < items.length; k++) {
58
61
  if (type === 'value' && items[k].value.toLocaleLowerCase() === value.toLocaleLowerCase()) {
59
62
  data = items[k];
@@ -202,7 +205,7 @@ export function setToolbarStatus(e, isPopToolbar, self) {
202
205
  }
203
206
  var fontNameItems = e.parent.fontFamily.items;
204
207
  result = value === 'empty' ? '' : getDropDownValue(fontNameItems, value, 'value', 'text');
205
- var fontNameContent = isNOU(e.parent.fontFamily.default) ? fontNameItems[0].text :
208
+ var fontNameContent = isNOU(e.parent.fontFamily.default) ? (fontNameItems.length === 0) ? self.serviceLocator.getService('rteLocale').getConstant('fontName') : fontNameItems[0].text :
206
209
  e.parent.fontFamily.default;
207
210
  var name_1 = (isNOU(result) ? fontNameContent : result) === 'Default' ? self.serviceLocator.getService('rteLocale').getConstant('fontName')
208
211
  : (isNOU(result) ? fontNameContent : result);
@@ -219,9 +222,9 @@ export function setToolbarStatus(e, isPopToolbar, self) {
219
222
  break;
220
223
  }
221
224
  var fontSizeItems = e.parent.fontSize.items;
222
- var fontSizeContent = isNOU(e.parent.fontSize.default) ? fontSizeItems[0].text :
225
+ var fontSizeContent = isNOU(e.parent.fontSize.default) ? (fontSizeItems.length === 0) ? self.serviceLocator.getService('rteLocale').getConstant('fontSize') : fontSizeItems[0].text :
223
226
  e.parent.fontSize.default;
224
- var fontSizeToolbarText = getDropDownValue(fontSizeItems, (value === '' ? fontSizeContent.replace(/\s/g, '') : value), (fontSizeContent.replace(/\s/g, '') === fontSizeItems[0].text && value === '') ? 'text' : 'value', 'text');
227
+ var fontSizeToolbarText = getDropDownValue(fontSizeItems, (value === '' ? fontSizeContent.replace(/\s/g, '') : value), (fontSizeItems.length > 0 && fontSizeItems[0] && fontSizeContent.replace(/\s/g, '') === fontSizeItems[0].text && value === '') ? 'text' : 'value', 'text');
225
228
  result = value === 'empty' ? '' : (fontSizeToolbarText === 'Default') ? self.serviceLocator.getService('rteLocale').getConstant('fontSize') : fontSizeToolbarText;
226
229
  dropDown.fontSizeDropDown.content = ('<span style="display: inline-flex;' +
227
230
  'width:' + e.parent.fontSize.width + '" >' +
@@ -227,7 +227,7 @@ var ToolbarRenderer = /** @class */ (function () {
227
227
  alignEle = alignEle.parentElement;
228
228
  }
229
229
  var alignStyle = window.getComputedStyle(alignEle).textAlign;
230
- if (args.items[0].command === 'Alignments') {
230
+ if (!isNOU(args.items[0]) && args.items[0].command === 'Alignments') {
231
231
  if ((args.items[0].text === 'Align Left' && (alignStyle === 'left') || alignStyle === 'start')) {
232
232
  addClass([args.element.childNodes[0]], 'e-active');
233
233
  break;
@@ -250,7 +250,7 @@ var ToolbarRenderer = /** @class */ (function () {
250
250
  //image preselect
251
251
  var closestNode = startNode.closest('img');
252
252
  var imageEle = closestNode ? closestNode : startNode.querySelector('img');
253
- if (args.items[0].command === 'Images') {
253
+ if (!isNOU(args.items[0]) && args.items[0].command === 'Images') {
254
254
  if (!isNOU(imageEle)) {
255
255
  var index = void 0;
256
256
  if (imageEle.classList.contains('e-imgleft') || imageEle.classList.contains('e-imginline')) {
@@ -268,7 +268,7 @@ var ToolbarRenderer = /** @class */ (function () {
268
268
  }
269
269
  }
270
270
  //Formats preselect
271
- if (args.items[0].command === 'Formats' || args.items[0].command === 'Font') {
271
+ if (!isNOU(args.items[0]) && (args.items[0].command === 'Formats' || args.items[0].command === 'Font')) {
272
272
  var fontName_1 = [];
273
273
  var formats_1 = [];
274
274
  var hasUpdatedActive = false;