@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.
@@ -3128,6 +3128,9 @@ function hasClass(element, className) {
3128
3128
  function getDropDownValue(items, value, type, returnType) {
3129
3129
  var data;
3130
3130
  var result;
3131
+ if (items.length === 0 && value === 'FontSize') {
3132
+ return 'Font Size';
3133
+ }
3131
3134
  for (var k = 0; k < items.length; k++) {
3132
3135
  if (type === 'value' && items[k].value.toLocaleLowerCase() === value.toLocaleLowerCase()) {
3133
3136
  data = items[k];
@@ -3276,7 +3279,7 @@ function setToolbarStatus(e, isPopToolbar, self) {
3276
3279
  }
3277
3280
  var fontNameItems = e.parent.fontFamily.items;
3278
3281
  result = value === 'empty' ? '' : getDropDownValue(fontNameItems, value, 'value', 'text');
3279
- var fontNameContent = isNullOrUndefined(e.parent.fontFamily.default) ? fontNameItems[0].text :
3282
+ var fontNameContent = isNullOrUndefined(e.parent.fontFamily.default) ? (fontNameItems.length === 0) ? self.serviceLocator.getService('rteLocale').getConstant('fontName') : fontNameItems[0].text :
3280
3283
  e.parent.fontFamily.default;
3281
3284
  var name_1 = (isNullOrUndefined(result) ? fontNameContent : result) === 'Default' ? self.serviceLocator.getService('rteLocale').getConstant('fontName')
3282
3285
  : (isNullOrUndefined(result) ? fontNameContent : result);
@@ -3293,9 +3296,9 @@ function setToolbarStatus(e, isPopToolbar, self) {
3293
3296
  break;
3294
3297
  }
3295
3298
  var fontSizeItems = e.parent.fontSize.items;
3296
- var fontSizeContent = isNullOrUndefined(e.parent.fontSize.default) ? fontSizeItems[0].text :
3299
+ var fontSizeContent = isNullOrUndefined(e.parent.fontSize.default) ? (fontSizeItems.length === 0) ? self.serviceLocator.getService('rteLocale').getConstant('fontSize') : fontSizeItems[0].text :
3297
3300
  e.parent.fontSize.default;
3298
- var fontSizeToolbarText = getDropDownValue(fontSizeItems, (value === '' ? fontSizeContent.replace(/\s/g, '') : value), (fontSizeContent.replace(/\s/g, '') === fontSizeItems[0].text && value === '') ? 'text' : 'value', 'text');
3301
+ 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');
3299
3302
  result = value === 'empty' ? '' : (fontSizeToolbarText === 'Default') ? self.serviceLocator.getService('rteLocale').getConstant('fontSize') : fontSizeToolbarText;
3300
3303
  dropDown.fontSizeDropDown.content = ('<span style="display: inline-flex;' +
3301
3304
  'width:' + e.parent.fontSize.width + '" >' +
@@ -5684,7 +5687,7 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
5684
5687
  alignEle = alignEle.parentElement;
5685
5688
  }
5686
5689
  var alignStyle = window.getComputedStyle(alignEle).textAlign;
5687
- if (args.items[0].command === 'Alignments') {
5690
+ if (!isNullOrUndefined(args.items[0]) && args.items[0].command === 'Alignments') {
5688
5691
  if ((args.items[0].text === 'Align Left' && (alignStyle === 'left') || alignStyle === 'start')) {
5689
5692
  addClass([args.element.childNodes[0]], 'e-active');
5690
5693
  break;
@@ -5707,7 +5710,7 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
5707
5710
  //image preselect
5708
5711
  var closestNode = startNode.closest('img');
5709
5712
  var imageEle = closestNode ? closestNode : startNode.querySelector('img');
5710
- if (args.items[0].command === 'Images') {
5713
+ if (!isNullOrUndefined(args.items[0]) && args.items[0].command === 'Images') {
5711
5714
  if (!isNullOrUndefined(imageEle)) {
5712
5715
  var index = void 0;
5713
5716
  if (imageEle.classList.contains('e-imgleft') || imageEle.classList.contains('e-imginline')) {
@@ -5725,7 +5728,7 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
5725
5728
  }
5726
5729
  }
5727
5730
  //Formats preselect
5728
- if (args.items[0].command === 'Formats' || args.items[0].command === 'Font') {
5731
+ if (!isNullOrUndefined(args.items[0]) && (args.items[0].command === 'Formats' || args.items[0].command === 'Font')) {
5729
5732
  var fontName_1 = [];
5730
5733
  var formats_1 = [];
5731
5734
  var hasUpdatedActive = false;
@@ -15705,11 +15708,11 @@ var DropDownButtons = /** @__PURE__ @class */ (function () {
15705
15708
  command: { value: 'Font', enumerable: true }, subCommand: { value: 'FontName', enumerable: true }
15706
15709
  });
15707
15710
  });
15708
- var fontNameContent = isNullOrUndefined(_this.parent.fontFamily.default) ? fontItem[0].text :
15711
+ var fontNameContent = isNullOrUndefined(_this.parent.fontFamily.default) ? fontItem.length === 0 ? '' : fontItem[0].text :
15709
15712
  _this.parent.fontFamily.default;
15710
15713
  _this.fontNameDropDown = _this.toolbarRenderer.renderDropDownButton({
15711
15714
  iconCss: ((type === 'quick') ? 'e-font-name e-icons' : ''),
15712
- 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')))),
15715
+ 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')))),
15713
15716
  cssClass: CLS_DROPDOWN_POPUP + ' ' + CLS_DROPDOWN_ITEMS + ' ' + CLS_FONT_NAME_TB_BTN,
15714
15717
  itemName: 'FontName', items: fontItem, element: targetElement
15715
15718
  });
@@ -15728,11 +15731,11 @@ var DropDownButtons = /** @__PURE__ @class */ (function () {
15728
15731
  command: { value: 'Font', enumerable: true }, subCommand: { value: 'FontSize', enumerable: true }
15729
15732
  });
15730
15733
  });
15731
- var fontSizeContent = isNullOrUndefined(_this.parent.fontSize.default) ? fontsize[0].text :
15734
+ var fontSizeContent = isNullOrUndefined(_this.parent.fontSize.default) ? fontsize.length === 0 ? '' : fontsize[0].text :
15732
15735
  _this.parent.fontSize.default;
15733
15736
  var fontSizeDropDownContent = ((fontSizeContent === 'Default') ? getDropDownValue(fontsize, fontSizeContent.replace(/\s/g, ''), 'text', 'text') : getDropDownValue(fontsize, fontSizeContent.replace(/\s/g, ''), 'value', 'text'));
15734
15737
  _this.fontSizeDropDown = _this.toolbarRenderer.renderDropDownButton({
15735
- content: _this.dropdownContent(_this.parent.fontSize.width, type, getFormattedFontSize((fontSizeDropDownContent === 'Default') ? _this.i10n.getConstant('fontSize') : fontSizeDropDownContent)),
15738
+ content: _this.dropdownContent(_this.parent.fontSize.width, type, fontsize.length === 0 ? _this.i10n.getConstant('fontSize') : (getFormattedFontSize((fontSizeDropDownContent === 'Default') ? _this.i10n.getConstant('fontSize') : fontSizeDropDownContent))),
15736
15739
  cssClass: CLS_DROPDOWN_POPUP + ' ' + CLS_DROPDOWN_ITEMS + ' ' + CLS_FONT_SIZE_TB_BTN,
15737
15740
  itemName: 'FontSize', items: fontsize, element: targetElement
15738
15741
  });
@@ -23506,6 +23509,11 @@ var NodeCutter = /** @__PURE__ @class */ (function () {
23506
23509
  if (node) {
23507
23510
  InsertMethods.AppendBefore(fragment, node, true);
23508
23511
  }
23512
+ else if (parent_1.childNodes.length > 1 && parent_1.childNodes.length !== index) {
23513
+ node = parent_1.childNodes[parent_1.childNodes.length - 1];
23514
+ InsertMethods.AppendBefore(fragment, node, true);
23515
+ node = node.nextSibling;
23516
+ }
23509
23517
  else {
23510
23518
  parent_1.appendChild(fragment);
23511
23519
  var divNode = document.createElement('div');
@@ -27759,8 +27767,10 @@ var SelectionCommands = /** @__PURE__ @class */ (function () {
27759
27767
  range.startContainer.textContent.substring(range.startOffset, range.startContainer.textContent.length) :
27760
27768
  range.startContainer.textContent;
27761
27769
  var nodeText = nodes[index].textContent;
27770
+ var isParentNodeSameAsParentElement = nodes[0].parentElement.nodeName === nodes[0].parentElement.parentElement.nodeName;
27762
27771
  if (!(range.startContainer === range.endContainer && range.startOffset === 0
27763
- && range.endOffset === range.startContainer.length)) {
27772
+ && range.endOffset === range.startContainer.length
27773
+ && (range.startContainer.textContent === formatNode.textContent || isParentNodeSameAsParentElement))) {
27764
27774
  var nodeIndex = [];
27765
27775
  var cloneNode = nodes[index];
27766
27776
  var clonedElement = cloneNode;
@@ -27781,10 +27791,19 @@ var SelectionCommands = /** @__PURE__ @class */ (function () {
27781
27791
  if (!isCursor) {
27782
27792
  while (cloneNode && cloneNode.childNodes.length > 0 && ((nodeIndex.length - 1) >= 0)
27783
27793
  && (cloneNode.childNodes.length > nodeIndex[nodeIndex.length - 1])) {
27784
- cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 1]];
27785
- nodeIndex.pop();
27794
+ if (cloneNode.childNodes.length > 1 && nodeIndex.length > 1) {
27795
+ cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 2]];
27796
+ break;
27797
+ }
27798
+ else {
27799
+ cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 1]];
27800
+ nodeIndex.pop();
27801
+ }
27786
27802
  }
27787
27803
  if (nodes[index].nodeName !== 'BR') {
27804
+ while (cloneNode.nodeType === 1 && cloneNode.childNodes.length > 0) {
27805
+ cloneNode = cloneNode.childNodes[0];
27806
+ }
27788
27807
  if (cloneNode.nodeType === 3 && !(isCursor && cloneNode.nodeValue === '')) {
27789
27808
  nodes[index] = cloneNode;
27790
27809
  }
@@ -32253,10 +32272,21 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
32253
32272
  // eslint-disable-next-line
32254
32273
  lastNode, lastNode.textContent.length);
32255
32274
  }
32256
- if (this.oldRangeElement.nodeName !== '#text' && this.oldRangeElement.querySelectorAll('BR').length === 1) {
32257
- detach(this.oldRangeElement.querySelector('BR'));
32275
+ var checkParent = false;
32276
+ if (this.oldRangeElement && this.oldRangeElement.nodeName !== '#text' && this.oldRangeElement.querySelectorAll('BR').length === 1) {
32277
+ var brElement = this.oldRangeElement.querySelector('BR');
32278
+ if (brElement) {
32279
+ var brParentElement = brElement.parentNode;
32280
+ var currentState = this.oldRangeElement.innerHTML;
32281
+ this.parent.formatter.saveData(currentState);
32282
+ detach(brElement);
32283
+ if (brParentElement && brParentElement.childNodes.length === 0) {
32284
+ detach(brParentElement);
32285
+ checkParent = true;
32286
+ }
32287
+ }
32258
32288
  }
32259
- if (!isNullOrUndefined(this.rangeElement) && this.oldRangeElement !== this.rangeElement) {
32289
+ if (!isNullOrUndefined(this.rangeElement) && this.oldRangeElement !== this.rangeElement && !checkParent) {
32260
32290
  while (this.rangeElement.firstChild) {
32261
32291
  if (this.oldRangeElement.nodeName === '#text') {
32262
32292
  this.oldRangeElement.parentElement.appendChild(this.rangeElement.childNodes[0]);