@syncfusion/ej2-richtexteditor 19.3.43 → 19.3.47

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.
Files changed (67) hide show
  1. package/CHANGELOG.md +44 -2
  2. package/dist/ej2-richtexteditor.umd.min.js +2 -2
  3. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-richtexteditor.es2015.js +199 -80
  5. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es5.js +195 -80
  7. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  8. package/dist/global/ej2-richtexteditor.min.js +2 -2
  9. package/dist/global/ej2-richtexteditor.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +12 -12
  12. package/src/common/constant.d.ts +8 -8
  13. package/src/common/constant.js +8 -8
  14. package/src/editor-manager/base/editor-manager.js +1 -1
  15. package/src/editor-manager/plugin/clearformat.d.ts +1 -0
  16. package/src/editor-manager/plugin/clearformat.js +1 -0
  17. package/src/editor-manager/plugin/image.js +12 -17
  18. package/src/editor-manager/plugin/inserthtml.js +16 -6
  19. package/src/editor-manager/plugin/lists.js +0 -1
  20. package/src/editor-manager/plugin/ms-word-clean-up.js +1 -0
  21. package/src/editor-manager/plugin/selection-commands.d.ts +1 -0
  22. package/src/editor-manager/plugin/selection-commands.js +52 -2
  23. package/src/editor-manager/plugin/table.js +3 -3
  24. package/src/editor-manager/plugin/toolbar-status.js +3 -3
  25. package/src/rich-text-editor/actions/enter-key.js +4 -16
  26. package/src/rich-text-editor/actions/html-editor.d.ts +1 -0
  27. package/src/rich-text-editor/actions/html-editor.js +31 -1
  28. package/src/rich-text-editor/actions/quick-toolbar.js +5 -2
  29. package/src/rich-text-editor/actions/xhtml-validation.d.ts +1 -0
  30. package/src/rich-text-editor/actions/xhtml-validation.js +5 -3
  31. package/src/rich-text-editor/base/rich-text-editor-model.d.ts +6 -6
  32. package/src/rich-text-editor/base/util.d.ts +1 -0
  33. package/src/rich-text-editor/base/util.js +1 -0
  34. package/src/rich-text-editor/renderer/image-module.d.ts +2 -0
  35. package/src/rich-text-editor/renderer/image-module.js +39 -12
  36. package/src/rich-text-editor/renderer/link-module.js +5 -3
  37. package/src/rich-text-editor/renderer/table-module.js +10 -3
  38. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +0 -1
  39. package/src/rich-text-editor/renderer/toolbar-renderer.js +1 -1
  40. package/styles/bootstrap-dark.css +1 -1
  41. package/styles/bootstrap.css +1 -1
  42. package/styles/bootstrap4.css +1 -1
  43. package/styles/bootstrap5-dark.css +1 -1
  44. package/styles/bootstrap5.css +1 -1
  45. package/styles/fabric-dark.css +1 -1
  46. package/styles/fabric.css +1 -1
  47. package/styles/highcontrast-light.css +1 -1
  48. package/styles/highcontrast.css +1 -1
  49. package/styles/material-dark.css +1 -1
  50. package/styles/material.css +1 -1
  51. package/styles/rich-text-editor/_tailwind-definition.scss +1 -1
  52. package/styles/rich-text-editor/_theme.scss +1 -1
  53. package/styles/rich-text-editor/bootstrap-dark.css +1 -1
  54. package/styles/rich-text-editor/bootstrap.css +1 -1
  55. package/styles/rich-text-editor/bootstrap4.css +1 -1
  56. package/styles/rich-text-editor/bootstrap5-dark.css +1 -1
  57. package/styles/rich-text-editor/bootstrap5.css +1 -1
  58. package/styles/rich-text-editor/fabric-dark.css +1 -1
  59. package/styles/rich-text-editor/fabric.css +1 -1
  60. package/styles/rich-text-editor/highcontrast-light.css +1 -1
  61. package/styles/rich-text-editor/highcontrast.css +1 -1
  62. package/styles/rich-text-editor/material-dark.css +1 -1
  63. package/styles/rich-text-editor/material.css +1 -1
  64. package/styles/rich-text-editor/tailwind-dark.css +1 -1
  65. package/styles/rich-text-editor/tailwind.css +1 -1
  66. package/styles/tailwind-dark.css +1 -1
  67. package/styles/tailwind.css +1 -1
@@ -314,7 +314,7 @@ var Image = /** @class */ (function () {
314
314
  if (width > height) {
315
315
  img.style.minWidth = '20px';
316
316
  if (this.parent.insertImageSettings.resizeByPercent) {
317
- if (parseInt('' + img.getBoundingClientRect().width + '') !== 0 && parseInt('' + width + '') !== 0) {
317
+ if (parseInt('' + img.getBoundingClientRect().width + '', 10) !== 0 && parseInt('' + width + '', 10) !== 0) {
318
318
  var percentageValue = this.pixToPerc((width / height * expectedY), (img.previousElementSibling || img.parentElement));
319
319
  img.style.width = Math.min(Math.round((percentageValue / img.getBoundingClientRect().width) * expectedX * 100) / 100, 100) + '%';
320
320
  }
@@ -340,7 +340,7 @@ var Image = /** @class */ (function () {
340
340
  }
341
341
  else if (height > width) {
342
342
  if (this.parent.insertImageSettings.resizeByPercent) {
343
- if (parseInt('' + img.getBoundingClientRect().width + '') !== 0 && parseInt('' + width + '') !== 0) {
343
+ if (parseInt('' + img.getBoundingClientRect().width + '', 10) !== 0 && parseInt('' + width + '', 10) !== 0) {
344
344
  img.style.width = Math.min(Math.round((width / img.getBoundingClientRect().width) * expectedX * 100) / 100, 100) + '%';
345
345
  }
346
346
  else {
@@ -813,7 +813,7 @@ var Image = /** @class */ (function () {
813
813
  var target = args.target;
814
814
  this.contentModule = this.rendererFactory.getRenderer(RenderType.Content);
815
815
  var isPopupOpen = this.quickToolObj.imageQTBar.element.classList.contains('e-rte-pop');
816
- if (target.nodeName === 'IMG' && this.parent.quickToolbarModule) {
816
+ if (target.nodeName === 'IMG' && this.parent.quickToolbarModule && this.parent.getRange().startOffset === this.parent.getRange().endOffset) {
817
817
  if (isPopupOpen) {
818
818
  return;
819
819
  }
@@ -1052,13 +1052,34 @@ var Image = /** @class */ (function () {
1052
1052
  }
1053
1053
  };
1054
1054
  Image.prototype.imageRemovePost = function (src) {
1055
+ var proxy = this;
1056
+ var absoluteUrl = '';
1057
+ if (src.indexOf('http://') > -1 || src.indexOf('https://') > -1) {
1058
+ absoluteUrl = src;
1059
+ }
1060
+ else {
1061
+ absoluteUrl = new URL(src, document.baseURI).href;
1062
+ }
1063
+ this.removingImgName = absoluteUrl.replace(/^.*[\\\/]/, '');
1064
+ var xhr = new XMLHttpRequest();
1065
+ xhr.addEventListener("readystatechange", function () {
1066
+ if (this.readyState == 4 && this.status == 200) {
1067
+ proxy.triggerPost(this.response);
1068
+ }
1069
+ });
1070
+ xhr.open('GET', absoluteUrl);
1071
+ xhr.responseType = 'blob';
1072
+ xhr.send();
1073
+ };
1074
+ Image.prototype.triggerPost = function (response) {
1055
1075
  var removeUrl = this.parent.insertImageSettings.removeUrl;
1056
1076
  if (isNOU(removeUrl) || removeUrl === '') {
1057
1077
  return;
1058
1078
  }
1079
+ var file = new File([response], this.removingImgName);
1059
1080
  var ajax = new Ajax(removeUrl, 'POST', true, null);
1060
1081
  var formData = new FormData();
1061
- formData.append(name, src);
1082
+ formData.append('UploadFiles', file);
1062
1083
  ajax.send(formData);
1063
1084
  };
1064
1085
  Image.prototype.caption = function (e) {
@@ -1298,9 +1319,15 @@ var Image = /** @class */ (function () {
1298
1319
  (this.parent.getToolbarElement() && this.parent.getToolbarElement().contains(e.target) &&
1299
1320
  !closest(target, '#' + this.parent.getID() + '_toolbar_Image') &&
1300
1321
  !target.querySelector('#' + this.parent.getID() + '_toolbar_Image')))) {
1301
- this.dialogObj.hide({ returnValue: true });
1302
- this.parent.isBlur = true;
1303
- dispatchEvent(this.parent.element, 'focusout');
1322
+ /* eslint-disable */
1323
+ if (e.offsetX > e.target.clientWidth || e.offsetY > e.target.clientHeight) {
1324
+ }
1325
+ else {
1326
+ this.dialogObj.hide({ returnValue: true });
1327
+ this.parent.isBlur = true;
1328
+ dispatchEvent(this.parent.element, 'focusout');
1329
+ }
1330
+ /* eslint-enable */
1304
1331
  }
1305
1332
  if (e.target.tagName !== 'IMG' && this.imgResizeDiv && !(this.quickToolObj &&
1306
1333
  this.quickToolObj.imageQTBar && this.quickToolObj.imageQTBar.element.contains(e.target)) &&
@@ -1404,11 +1431,11 @@ var Image = /** @class */ (function () {
1404
1431
  var imgWidth = this.i10n.getConstant('imageWidth');
1405
1432
  var imgSizeWrap = this.parent.createElement('div', { className: 'e-img-sizewrap' });
1406
1433
  var widthVal = isNullOrUndefined(this.changedWidthValue) && (selectNode.style.width.toString() === 'auto' ||
1407
- selectNode.style.width !== "") ? selectNode.style.width : !isNullOrUndefined(this.changedWidthValue) ?
1408
- this.changedWidthValue : (parseInt(selectNode.getClientRects()[0].width.toString())).toString();
1434
+ selectNode.style.width !== '') ? selectNode.style.width : !isNullOrUndefined(this.changedWidthValue) ?
1435
+ this.changedWidthValue : (parseInt(selectNode.getClientRects()[0].width.toString(), 10)).toString();
1409
1436
  var heightVal = isNullOrUndefined(this.changedHeightValue) && (selectNode.style.height.toString() === 'auto' ||
1410
- selectNode.style.height !== "") ? selectNode.style.height : !isNullOrUndefined(this.changedHeightValue) ?
1411
- this.changedHeightValue : (parseInt(selectNode.getClientRects()[0].height.toString())).toString();
1437
+ selectNode.style.height !== '') ? selectNode.style.height : !isNullOrUndefined(this.changedHeightValue) ?
1438
+ this.changedHeightValue : (parseInt(selectNode.getClientRects()[0].height.toString(), 10)).toString();
1412
1439
  this.changedWidthValue = null;
1413
1440
  this.changedHeightValue = null;
1414
1441
  var content = '<div class="e-rte-label"><label>' + imgWidth +
@@ -1447,7 +1474,7 @@ var Image = /** @class */ (function () {
1447
1474
  return value;
1448
1475
  }
1449
1476
  else {
1450
- return "auto";
1477
+ return 'auto';
1451
1478
  }
1452
1479
  };
1453
1480
  Image.prototype.insertSize = function (e) {
@@ -1,4 +1,4 @@
1
- import { EventHandler, detach, isNullOrUndefined, select, extend } from '@syncfusion/ej2-base';
1
+ import { EventHandler, detach, isNullOrUndefined, select, extend, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';
2
2
  import { closest, addClass, removeClass, Browser } from '@syncfusion/ej2-base';
3
3
  import * as events from '../base/constant';
4
4
  import { CLS_RTE_ELEMENTS } from '../base/classes';
@@ -136,7 +136,8 @@ var Link = /** @class */ (function () {
136
136
  this.contentModule = this.rendererFactory.getRenderer(RenderType.Content);
137
137
  var isPopupOpen = this.quickToolObj.linkQTBar.element.classList.contains('e-rte-pop');
138
138
  if (target.nodeName === 'A' && (target.childNodes.length > 0 && target.childNodes[0].nodeName !== 'IMG') &&
139
- e.args.target.nodeName !== 'IMG') {
139
+ e.args.target.nodeName !== 'IMG' &&
140
+ !isNOU(closest(this.parent.getRange().startContainer.parentElement, 'A')) && !isNOU(closest(this.parent.getRange().endContainer.parentElement, 'A'))) {
140
141
  if (isPopupOpen) {
141
142
  return;
142
143
  }
@@ -397,7 +398,8 @@ var Link = /** @class */ (function () {
397
398
  else {
398
399
  argsValue = this.args;
399
400
  }
400
- this.selfLink.parent.formatter.process(this.selfLink.parent, argsValue, (!isNullOrUndefined(this.args) && this.args.originalEvent), value);
401
+ this.selfLink.parent.formatter.process(this.selfLink.parent, argsValue, (!isNullOrUndefined(this.args) &&
402
+ this.args.originalEvent), value);
401
403
  this.selfLink.parent.contentModule.getEditPanel().focus();
402
404
  };
403
405
  Link.prototype.isUrl = function (url) {
@@ -238,8 +238,12 @@ var Table = /** @class */ (function () {
238
238
  if (args.args && args.args.item.cssClass) {
239
239
  var classList = args.args.item.cssClass.split(' ');
240
240
  for (var i = 0; i < classList.length; i++) {
241
- (table.classList.contains(classList[i])) ? table.classList.remove(classList[i]) :
241
+ if (table.classList.contains(classList[i])) {
242
+ table.classList.remove(classList[i]);
243
+ }
244
+ else {
242
245
  table.classList.add(classList[i]);
246
+ }
243
247
  }
244
248
  }
245
249
  this.parent.formatter.saveData();
@@ -395,7 +399,9 @@ var Table = /** @class */ (function () {
395
399
  }
396
400
  var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.contentModule.getDocument());
397
401
  var closestTable = closest(target, 'table');
398
- if (target && target.nodeName !== 'A' && target.nodeName !== 'IMG' && (target.nodeName === 'TD' || target.nodeName === 'TH' ||
402
+ var startNode = this.parent.getRange().startContainer.parentElement;
403
+ var endNode = this.parent.getRange().endContainer.parentElement;
404
+ if (target && target.nodeName !== 'A' && target.nodeName !== 'IMG' && startNode === endNode && (target.nodeName === 'TD' || target.nodeName === 'TH' ||
399
405
  target.nodeName === 'TABLE' || (closestTable && this.parent.contentModule.getEditPanel().contains(closestTable)))
400
406
  && !(range.startContainer.nodeType === 3 && !range.collapsed)) {
401
407
  var range_1 = this.parent.formatter.editorManager.nodeSelection.getRange(this.contentModule.getDocument());
@@ -482,7 +488,6 @@ var Table = /** @class */ (function () {
482
488
  tdNode : target;
483
489
  removeClass(this.contentModule.getEditPanel().querySelectorAll('table td, table th'), classes.CLS_TABLE_SEL);
484
490
  if (target && (target.tagName === 'TD' || target.tagName === 'TH')) {
485
- target.removeAttribute('class');
486
491
  addClass([target], classes.CLS_TABLE_SEL);
487
492
  this.activeCell = target;
488
493
  this.curTable = (this.curTable) ? this.curTable : closest(target, 'table');
@@ -581,6 +586,7 @@ var Table = /** @class */ (function () {
581
586
  top: 0,
582
587
  left: 0
583
588
  };
589
+ // eslint-disable-next-line
584
590
  var offset = elem.getBoundingClientRect();
585
591
  var doc = elem.ownerDocument;
586
592
  var offsetParent = elem.offsetParent || doc.documentElement;
@@ -593,6 +599,7 @@ var Table = /** @class */ (function () {
593
599
  offsetParent = closest(offsetParent, '.e-rte-content');
594
600
  }
595
601
  if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {
602
+ // eslint-disable-next-line
596
603
  parentOffset = offsetParent.getBoundingClientRect();
597
604
  }
598
605
  return {
@@ -53,7 +53,6 @@ export declare class ToolbarRenderer implements IRenderer {
53
53
  * renderListDropDown method
54
54
  *
55
55
  * @param {IDropDownModel} args - specifies the the arguments.
56
- * @param {string} item - specifies the string value
57
56
  * @returns {void}
58
57
  * @hidden
59
58
 
@@ -183,7 +183,6 @@ var ToolbarRenderer = /** @class */ (function () {
183
183
  * renderListDropDown method
184
184
  *
185
185
  * @param {IDropDownModel} args - specifies the the arguments.
186
- * @param {string} item - specifies the string value
187
186
  * @returns {void}
188
187
  * @hidden
189
188
 
@@ -471,6 +470,7 @@ var ToolbarRenderer = /** @class */ (function () {
471
470
  enablePersistence: this.parent.enablePersistence,
472
471
  enableRtl: this.parent.enableRtl,
473
472
  inline: true,
473
+ value: '#fff',
474
474
  created: function () {
475
475
  var value = (item === 'backgroundcolor') ? proxy.parent.backgroundColor.default : proxy.parent.fontColor.default;
476
476
  colorPicker.setProperties({ value: value });
@@ -2903,7 +2903,7 @@ span.e-rte-imageboxmark {
2903
2903
  border: 1px solid #0070f0;
2904
2904
  }
2905
2905
 
2906
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2906
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2907
2907
  background-color: #222;
2908
2908
  }
2909
2909
 
@@ -3049,7 +3049,7 @@ span.e-rte-imageboxmark {
3049
3049
  border: 1px solid #ccc;
3050
3050
  }
3051
3051
 
3052
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
3052
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
3053
3053
  background-color: #f5f5f5;
3054
3054
  }
3055
3055
 
@@ -3177,7 +3177,7 @@ span.e-rte-imageboxmark {
3177
3177
  border: 1px solid #007bff;
3178
3178
  }
3179
3179
 
3180
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
3180
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
3181
3181
  background-color: #f8f9fa;
3182
3182
  }
3183
3183
 
@@ -2999,7 +2999,7 @@ span.e-rte-imageboxmark {
2999
2999
  border: 1px solid #0d6efd;
3000
3000
  }
3001
3001
 
3002
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
3002
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
3003
3003
  background-color: #282d31;
3004
3004
  }
3005
3005
 
@@ -2999,7 +2999,7 @@ span.e-rte-imageboxmark {
2999
2999
  border: 1px solid #0d6efd;
3000
3000
  }
3001
3001
 
3002
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
3002
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
3003
3003
  background-color: #f8f9fa;
3004
3004
  }
3005
3005
 
@@ -2887,7 +2887,7 @@ span.e-rte-imageboxmark {
2887
2887
  border: 1px solid #38a9ff;
2888
2888
  }
2889
2889
 
2890
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2890
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2891
2891
  background-color: #282727;
2892
2892
  }
2893
2893
 
package/styles/fabric.css CHANGED
@@ -2887,7 +2887,7 @@ span.e-rte-imageboxmark {
2887
2887
  border: 1px solid #0078d6;
2888
2888
  }
2889
2889
 
2890
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2890
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2891
2891
  background-color: #f5f5f5;
2892
2892
  }
2893
2893
 
@@ -2887,7 +2887,7 @@ span.e-rte-imageboxmark {
2887
2887
  border: 1px solid #400074;
2888
2888
  }
2889
2889
 
2890
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2890
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2891
2891
  background-color: #f5f5f5;
2892
2892
  }
2893
2893
 
@@ -2880,7 +2880,7 @@ span.e-rte-imageboxmark {
2880
2880
  border: 1px solid #ffd939;
2881
2881
  }
2882
2882
 
2883
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2883
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2884
2884
  background-color: #f5f5f5;
2885
2885
  color: #000;
2886
2886
  }
@@ -2888,7 +2888,7 @@ span.e-rte-imageboxmark {
2888
2888
  border: 1px solid #00b0ff;
2889
2889
  }
2890
2890
 
2891
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2891
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2892
2892
  background-color: #353535;
2893
2893
  }
2894
2894
 
@@ -2888,7 +2888,7 @@ span.e-rte-imageboxmark {
2888
2888
  border: 1px solid #e3165b;
2889
2889
  }
2890
2890
 
2891
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2891
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2892
2892
  background-color: #f5f5f5;
2893
2893
  }
2894
2894
 
@@ -164,4 +164,4 @@ $rte-table-alternate-color: $content-bg-color-alt1 !default;
164
164
  $rte-table-header-bg: $content-bg-color-alt1 !default;
165
165
  //Theme Variables End
166
166
 
167
- $rte-tb-hover-bg-color: $content-bg-color-alt1
167
+ $rte-tb-hover-bg-color: $content-bg-color-alt1 !default;
@@ -531,7 +531,7 @@
531
531
  border: 1px solid $rte-table-span-active-border-color;
532
532
  }
533
533
 
534
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
534
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
535
535
  background-color: $rte-table-alternate-color;
536
536
  @if $skin-name == 'highcontrast' {
537
537
  color: $rte-img-popup-color;
@@ -2903,7 +2903,7 @@ span.e-rte-imageboxmark {
2903
2903
  border: 1px solid #0070f0;
2904
2904
  }
2905
2905
 
2906
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2906
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2907
2907
  background-color: #222;
2908
2908
  }
2909
2909
 
@@ -3049,7 +3049,7 @@ span.e-rte-imageboxmark {
3049
3049
  border: 1px solid #ccc;
3050
3050
  }
3051
3051
 
3052
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
3052
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
3053
3053
  background-color: #f5f5f5;
3054
3054
  }
3055
3055
 
@@ -3177,7 +3177,7 @@ span.e-rte-imageboxmark {
3177
3177
  border: 1px solid #007bff;
3178
3178
  }
3179
3179
 
3180
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
3180
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
3181
3181
  background-color: #f8f9fa;
3182
3182
  }
3183
3183
 
@@ -2999,7 +2999,7 @@ span.e-rte-imageboxmark {
2999
2999
  border: 1px solid #0d6efd;
3000
3000
  }
3001
3001
 
3002
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
3002
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
3003
3003
  background-color: #282d31;
3004
3004
  }
3005
3005
 
@@ -2999,7 +2999,7 @@ span.e-rte-imageboxmark {
2999
2999
  border: 1px solid #0d6efd;
3000
3000
  }
3001
3001
 
3002
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
3002
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
3003
3003
  background-color: #f8f9fa;
3004
3004
  }
3005
3005
 
@@ -2887,7 +2887,7 @@ span.e-rte-imageboxmark {
2887
2887
  border: 1px solid #38a9ff;
2888
2888
  }
2889
2889
 
2890
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2890
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2891
2891
  background-color: #282727;
2892
2892
  }
2893
2893
 
@@ -2887,7 +2887,7 @@ span.e-rte-imageboxmark {
2887
2887
  border: 1px solid #0078d6;
2888
2888
  }
2889
2889
 
2890
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2890
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2891
2891
  background-color: #f5f5f5;
2892
2892
  }
2893
2893
 
@@ -2887,7 +2887,7 @@ span.e-rte-imageboxmark {
2887
2887
  border: 1px solid #400074;
2888
2888
  }
2889
2889
 
2890
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2890
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2891
2891
  background-color: #f5f5f5;
2892
2892
  }
2893
2893
 
@@ -2880,7 +2880,7 @@ span.e-rte-imageboxmark {
2880
2880
  border: 1px solid #ffd939;
2881
2881
  }
2882
2882
 
2883
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2883
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2884
2884
  background-color: #f5f5f5;
2885
2885
  color: #000;
2886
2886
  }
@@ -2888,7 +2888,7 @@ span.e-rte-imageboxmark {
2888
2888
  border: 1px solid #00b0ff;
2889
2889
  }
2890
2890
 
2891
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2891
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2892
2892
  background-color: #353535;
2893
2893
  }
2894
2894
 
@@ -2888,7 +2888,7 @@ span.e-rte-imageboxmark {
2888
2888
  border: 1px solid #e3165b;
2889
2889
  }
2890
2890
 
2891
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2891
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2892
2892
  background-color: #f5f5f5;
2893
2893
  }
2894
2894
 
@@ -2915,7 +2915,7 @@ span.e-rte-imageboxmark {
2915
2915
  border: 1px solid #22d3ee;
2916
2916
  }
2917
2917
 
2918
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2918
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2919
2919
  background-color: #232e3e;
2920
2920
  }
2921
2921
 
@@ -2915,7 +2915,7 @@ span.e-rte-imageboxmark {
2915
2915
  border: 1px solid #4f46e5;
2916
2916
  }
2917
2917
 
2918
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2918
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2919
2919
  background-color: #f9fafb;
2920
2920
  }
2921
2921
 
@@ -2915,7 +2915,7 @@ span.e-rte-imageboxmark {
2915
2915
  border: 1px solid #22d3ee;
2916
2916
  }
2917
2917
 
2918
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2918
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2919
2919
  background-color: #232e3e;
2920
2920
  }
2921
2921
 
@@ -2915,7 +2915,7 @@ span.e-rte-imageboxmark {
2915
2915
  border: 1px solid #4f46e5;
2916
2916
  }
2917
2917
 
2918
- .e-rte-table.e-alternate-border tbody tr:nth-child(2n) {
2918
+ .e-rte-table.e-alternate-border tbody tr:nth-child(2n+0) {
2919
2919
  background-color: #f9fafb;
2920
2920
  }
2921
2921