@syncfusion/ej2-richtexteditor 25.1.42 → 25.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.
Files changed (57) hide show
  1. package/CHANGELOG.md +26 -4
  2. package/dist/ej2-richtexteditor.min.js +2 -2
  3. package/dist/ej2-richtexteditor.umd.min.js +2 -2
  4. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-richtexteditor.es2015.js +110 -24
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +115 -26
  8. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  9. package/dist/global/ej2-richtexteditor.min.js +2 -2
  10. package/dist/global/ej2-richtexteditor.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +12 -12
  13. package/src/common/util.d.ts +8 -0
  14. package/src/common/util.js +52 -0
  15. package/src/editor-manager/plugin/dom-node.js +1 -1
  16. package/src/editor-manager/plugin/ms-word-clean-up.js +2 -2
  17. package/src/editor-manager/plugin/undo.js +3 -1
  18. package/src/rich-text-editor/actions/html-editor.js +2 -10
  19. package/src/rich-text-editor/actions/paste-clean-up.d.ts +1 -0
  20. package/src/rich-text-editor/actions/paste-clean-up.js +52 -12
  21. package/src/rich-text-editor/base/rich-text-editor.d.ts +1 -0
  22. package/src/rich-text-editor/base/rich-text-editor.js +6 -2
  23. package/styles/bootstrap-dark.css +3 -6
  24. package/styles/bootstrap.css +3 -6
  25. package/styles/bootstrap4.css +3 -6
  26. package/styles/bootstrap5-dark.css +3 -6
  27. package/styles/bootstrap5.css +3 -6
  28. package/styles/fabric-dark.css +3 -6
  29. package/styles/fabric.css +3 -6
  30. package/styles/fluent-dark.css +3 -6
  31. package/styles/fluent.css +3 -6
  32. package/styles/highcontrast-light.css +3 -6
  33. package/styles/highcontrast.css +3 -6
  34. package/styles/material-dark.css +3 -6
  35. package/styles/material.css +3 -6
  36. package/styles/material3-dark.css +3 -6
  37. package/styles/material3.css +3 -6
  38. package/styles/rich-text-editor/_layout.scss +3 -6
  39. package/styles/rich-text-editor/bootstrap-dark.css +3 -6
  40. package/styles/rich-text-editor/bootstrap.css +3 -6
  41. package/styles/rich-text-editor/bootstrap4.css +3 -6
  42. package/styles/rich-text-editor/bootstrap5-dark.css +3 -6
  43. package/styles/rich-text-editor/bootstrap5.css +3 -6
  44. package/styles/rich-text-editor/fabric-dark.css +3 -6
  45. package/styles/rich-text-editor/fabric.css +3 -6
  46. package/styles/rich-text-editor/fluent-dark.css +3 -6
  47. package/styles/rich-text-editor/fluent.css +3 -6
  48. package/styles/rich-text-editor/highcontrast-light.css +3 -6
  49. package/styles/rich-text-editor/highcontrast.css +3 -6
  50. package/styles/rich-text-editor/material-dark.css +3 -6
  51. package/styles/rich-text-editor/material.css +3 -6
  52. package/styles/rich-text-editor/material3-dark.css +3 -6
  53. package/styles/rich-text-editor/material3.css +3 -6
  54. package/styles/rich-text-editor/tailwind-dark.css +3 -6
  55. package/styles/rich-text-editor/tailwind.css +3 -6
  56. package/styles/tailwind-dark.css +3 -6
  57. package/styles/tailwind.css +3 -6
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 25.1.42
3
+ * version : 25.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@25.1.41",
3
+ "_id": "@syncfusion/ej2-richtexteditor@25.2.3",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-+SQQWuGTr85M/kWC43aUeAA8TDQsVcc+Py0S5FC0jSb88TH8ZhY1yS/N9nSsCtkk8H+9LWn3sF3xk9VNzovEdw==",
5
+ "_integrity": "sha512-l5lUzKF2Mrk2KgQR3Sez/lXpDu9vZnnUJXSfQNUHy+kfr+Z8qd+8SwR06pt7hBZjn05UTHz+TLCmRKA+uYmTHQ==",
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-25.1.41.tgz",
29
- "_shasum": "e454a752ac8f1b765d7affaadc18316ec104e50f",
28
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-25.2.3.tgz",
29
+ "_shasum": "ca743ef7877548820123a735ac98979caf771278",
30
30
  "_spec": "@syncfusion/ej2-richtexteditor@*",
31
31
  "_where": "/jenkins/workspace/elease-automation_release_25.1.1/packages/included",
32
32
  "author": {
@@ -37,13 +37,13 @@
37
37
  },
38
38
  "bundleDependencies": false,
39
39
  "dependencies": {
40
- "@syncfusion/ej2-base": "~25.1.35",
41
- "@syncfusion/ej2-buttons": "~25.1.39",
42
- "@syncfusion/ej2-filemanager": "~25.1.40",
43
- "@syncfusion/ej2-inputs": "~25.1.42",
44
- "@syncfusion/ej2-navigations": "~25.1.42",
45
- "@syncfusion/ej2-popups": "~25.1.42",
46
- "@syncfusion/ej2-splitbuttons": "~25.1.38"
40
+ "@syncfusion/ej2-base": "~25.2.3",
41
+ "@syncfusion/ej2-buttons": "~25.2.4",
42
+ "@syncfusion/ej2-filemanager": "~25.2.3",
43
+ "@syncfusion/ej2-inputs": "~25.2.3",
44
+ "@syncfusion/ej2-navigations": "~25.2.4",
45
+ "@syncfusion/ej2-popups": "~25.2.4",
46
+ "@syncfusion/ej2-splitbuttons": "~25.2.4"
47
47
  },
48
48
  "deprecated": false,
49
49
  "description": "Essential JS 2 RichTextEditor component",
@@ -79,6 +79,6 @@
79
79
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
80
80
  },
81
81
  "typings": "index.d.ts",
82
- "version": "25.1.42",
82
+ "version": "25.2.4",
83
83
  "sideEffects": false
84
84
  }
@@ -40,3 +40,11 @@ export declare function getDefaultMDTbStatus(): IToolbarStatus;
40
40
  * @hidden
41
41
  */
42
42
  export declare function nestedListCleanUp(range: Range): void;
43
+ /**
44
+ * Method to scroll the content to the cursor position
45
+ *
46
+ * @param {Document} document - specifies the document.
47
+ * @param {HTMLElement | HTMLBodyElement} inputElement - specifies the input element.
48
+ * @returns {void}
49
+ */
50
+ export declare function scrollToCursor(document: Document, inputElement: HTMLElement | HTMLBodyElement): void;
@@ -116,6 +116,10 @@ export function updateTextNode(value, enterAction) {
116
116
  tableElm[i].classList.remove('e-rte-paste-onenote-table');
117
117
  continue;
118
118
  }
119
+ else if (tableElm[i].classList.contains('e-rte-paste-html-table')) {
120
+ tableElm[i].classList.remove('e-rte-paste-html-table');
121
+ continue;
122
+ }
119
123
  }
120
124
  }
121
125
  var imageElm = resultElm.querySelectorAll('img');
@@ -220,3 +224,51 @@ export function nestedListCleanUp(range) {
220
224
  }
221
225
  }
222
226
  }
227
+ /**
228
+ * Method to scroll the content to the cursor position
229
+ *
230
+ * @param {Document} document - specifies the document.
231
+ * @param {HTMLElement | HTMLBodyElement} inputElement - specifies the input element.
232
+ * @returns {void}
233
+ */
234
+ export function scrollToCursor(document, inputElement) {
235
+ var rootElement = inputElement.nodeName === 'BODY' ?
236
+ inputElement.ownerDocument.defaultView.frameElement.closest('.e-richtexteditor') :
237
+ inputElement.closest('.e-richtexteditor');
238
+ var height = rootElement.style.height;
239
+ if (document.getSelection().rangeCount === 0) {
240
+ return;
241
+ }
242
+ var range = document.getSelection().getRangeAt(0);
243
+ var finalFocusElement = range.startContainer.nodeName === '#text' ? range.startContainer.parentElement :
244
+ range.startContainer;
245
+ var rect = finalFocusElement.getBoundingClientRect();
246
+ var cursorTop = rect.top;
247
+ var cursorBottom = rect.bottom;
248
+ var rootRect = rootElement.getBoundingClientRect();
249
+ var hasMargin = rootElement.querySelectorAll('.e-count-enabled, .e-resize-enabled').length > 0;
250
+ if (inputElement.nodeName === 'BODY') {
251
+ if (height === 'auto') {
252
+ if (window.innerHeight < cursorTop) {
253
+ finalFocusElement.scrollIntoView(false);
254
+ }
255
+ }
256
+ else {
257
+ if (cursorTop > inputElement.getBoundingClientRect().height) {
258
+ finalFocusElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });
259
+ }
260
+ }
261
+ }
262
+ else {
263
+ if (height === 'auto') {
264
+ if (window.innerHeight < cursorTop) {
265
+ finalFocusElement.scrollIntoView({ block: 'end', inline: 'nearest' });
266
+ }
267
+ }
268
+ else {
269
+ if (cursorBottom > rootRect.bottom) {
270
+ rootElement.querySelector('.e-rte-content').scrollTop += (cursorBottom - rootRect.bottom) + (hasMargin ? 20 : 0);
271
+ }
272
+ }
273
+ }
274
+ }
@@ -318,7 +318,7 @@ var DOMNode = /** @class */ (function () {
318
318
  DOMNode.prototype.unWrap = function (element) {
319
319
  var parent = element.parentNode;
320
320
  var unWrapNode = [];
321
- while (element.firstChild) {
321
+ while (element.firstChild && (element.previousSibling !== this.parent.querySelector('.e-mention-chip') || element.textContent !== ' ')) {
322
322
  unWrapNode.push(element.firstChild);
323
323
  parent.insertBefore(element.firstChild, element);
324
324
  }
@@ -66,9 +66,9 @@ var MsWordPaste = /** @class */ (function () {
66
66
  var patern2 = /class="?Mso|style="[^ ]*\bmso-/i;
67
67
  var patern3 = /(class="?Mso|class='?Mso|class="?Xl|class='?Xl|class=Xl|style="[^"]*\bmso-|style='[^']*\bmso-|w:WordDocument)/gi;
68
68
  var pattern4 = /style='mso-width-source:/i;
69
+ var source = this.findSource(elm);
69
70
  if (patern.test(tempHTMLContent) || patern2.test(tempHTMLContent) || patern3.test(tempHTMLContent) ||
70
71
  pattern4.test(tempHTMLContent)) {
71
- var source = this.findSource(elm);
72
72
  tempHTMLContent = tempHTMLContent.replace(/<img[^>]+>/i, '');
73
73
  this.addListClass(elm);
74
74
  listNodes = this.cleanUp(elm, listNodes);
@@ -93,7 +93,7 @@ var MsWordPaste = /** @class */ (function () {
93
93
  e.callBack(elm.innerHTML, this.cropImageDimensions, source);
94
94
  }
95
95
  else {
96
- e.callBack(elm.innerHTML);
96
+ e.callBack(elm.innerHTML, null, source);
97
97
  }
98
98
  };
99
99
  MsWordPaste.prototype.addDoubleBr = function (elm) {
@@ -1,7 +1,7 @@
1
1
  import { debounce, isNullOrUndefined, detach } from '@syncfusion/ej2-base';
2
2
  import { NodeSelection } from './../../selection/selection';
3
3
  import * as EVENTS from './../../common/constant';
4
- import { isIDevice, setEditFrameFocus } from '../../common/util';
4
+ import { isIDevice, scrollToCursor, setEditFrameFocus } from '../../common/util';
5
5
  /**
6
6
  * `Undo` module is used to handle undo actions.
7
7
  */
@@ -183,6 +183,7 @@ var UndoRedoManager = /** @class */ (function () {
183
183
  this.parent.editableElement.innerHTML = '';
184
184
  this.parent.editableElement.appendChild(removedContent.cloneNode(true));
185
185
  this.parent.editableElement.focus();
186
+ scrollToCursor(this.parent.currentDocument, this.parent.editableElement);
186
187
  if (isIDevice()) {
187
188
  setEditFrameFocus(this.parent.editableElement, e.selector);
188
189
  }
@@ -215,6 +216,7 @@ var UndoRedoManager = /** @class */ (function () {
215
216
  this.parent.editableElement.innerHTML = '';
216
217
  this.parent.editableElement.appendChild(addedContent.cloneNode(true));
217
218
  this.parent.editableElement.focus();
219
+ scrollToCursor(this.parent.currentDocument, this.parent.editableElement);
218
220
  if (isIDevice()) {
219
221
  setEditFrameFocus(this.parent.editableElement, e.selector);
220
222
  }
@@ -11,7 +11,7 @@ import { ColorPickerInput } from './color-picker';
11
11
  import { NodeSelection } from '../../selection/selection';
12
12
  import { InsertHtml } from '../../editor-manager/plugin/inserthtml';
13
13
  import { getTextNodesUnder, sanitizeHelper, getDefaultValue } from '../base/util';
14
- import { isIDevice } from '../../common/util';
14
+ import { isIDevice, scrollToCursor } from '../../common/util';
15
15
  import { XhtmlValidation } from './xhtml-validation';
16
16
  import { ON_BEGIN } from './../../common/constant';
17
17
  import * as CONSTANT from '../base/constant';
@@ -322,15 +322,7 @@ var HtmlEditor = /** @class */ (function () {
322
322
  }
323
323
  else {
324
324
  this.parent.notify(events.enterHandler, { args: e.args });
325
- var newRange = this.parent.getRange();
326
- if (!isNullOrUndefined(newRange.startContainer) && this.parent.height !== 'auto' && newRange.startContainer.nodeName !== '#text'
327
- && !this.parent.iframeSettings.enable && newRange.startContainer.getBoundingClientRect().bottom > this.parent.element.getBoundingClientRect().bottom) {
328
- this.parent.element.querySelector('.e-rte-content').scrollTop += newRange.startContainer.getBoundingClientRect().bottom - this.parent.element.getBoundingClientRect().bottom;
329
- }
330
- else if (!isNullOrUndefined(newRange.startContainer) && this.parent.height === 'auto' && newRange.startContainer.nodeName !== '#text'
331
- && !this.parent.iframeSettings.enable && window.innerHeight < newRange.startContainer.getBoundingClientRect().top) {
332
- newRange.startContainer.scrollIntoView({ block: 'end', inline: 'nearest' });
333
- }
325
+ scrollToCursor(this.parent.contentModule.getDocument(), this.parent.inputElement);
334
326
  }
335
327
  }
336
328
  }
@@ -58,6 +58,7 @@ export declare class PasteCleanup {
58
58
  private docClick;
59
59
  private cleanAppleClass;
60
60
  private formatting;
61
+ private convertBlobToBase64;
61
62
  private cropImageHandler;
62
63
  private addTableClass;
63
64
  private setImageProperties;
@@ -13,6 +13,7 @@ import { RenderType, ImageInputSource } from '../base/enum';
13
13
  import { Uploader } from '@syncfusion/ej2-inputs';
14
14
  import * as classes from '../base/classes';
15
15
  import { sanitizeHelper, convertToBlob, getDefaultValue } from '../base/util';
16
+ import { scrollToCursor } from '../../common/util';
16
17
  /**
17
18
  * PasteCleanup module called when pasting content in RichTextEditor
18
19
  */
@@ -404,7 +405,9 @@ var PasteCleanup = /** @class */ (function () {
404
405
  popupObj.close();
405
406
  }
406
407
  this.parent.trigger(events.imageUploadFailed, e);
407
- uploadObj.destroy();
408
+ if (uploadObj && document.body.contains(uploadObj.element)) {
409
+ uploadObj.destroy();
410
+ }
408
411
  };
409
412
  PasteCleanup.prototype.popupClose = function (popupObj, uploadObj, imgElem, e) {
410
413
  var _this = this;
@@ -420,7 +423,7 @@ var PasteCleanup = /** @class */ (function () {
420
423
  });
421
424
  popupObj.close();
422
425
  imgElem.style.opacity = '1';
423
- if (!uploadObj.isDestroyed) {
426
+ if (uploadObj && document.body.contains(uploadObj.element)) {
424
427
  uploadObj.destroy();
425
428
  }
426
429
  this.toolbarEnableDisable(false);
@@ -720,16 +723,42 @@ var PasteCleanup = /** @class */ (function () {
720
723
  extend(args, { elements: returnArgs.elements, imageElements: returnArgs.imgElem }, true);
721
724
  _this.parent.formatter.onSuccess(_this.parent, args);
722
725
  }, clipBoardElem, null, null, this.parent.enterKey);
726
+ scrollToCursor(this.parent.contentModule.getDocument(), this.parent.inputElement);
723
727
  this.removeTempClass();
724
728
  this.parent.notify(events.toolbarRefresh, {});
725
729
  this.cropImageHandler(this.parent.inputElement);
726
730
  }
727
731
  };
732
+ PasteCleanup.prototype.convertBlobToBase64 = function (element) {
733
+ var imgElem = element.querySelectorAll('img');
734
+ var _loop_1 = function (i) {
735
+ if (imgElem[i].getAttribute('src') &&
736
+ imgElem[i].getAttribute('src').startsWith("blob")) {
737
+ var blobImageUrl = imgElem[i].getAttribute('src');
738
+ var img_1 = new Image();
739
+ var onImageLoadEvent_1 = function () {
740
+ var canvas = document.createElement('canvas');
741
+ var ctx = canvas.getContext('2d');
742
+ canvas.width = img_1.width;
743
+ canvas.height = img_1.height;
744
+ ctx.drawImage(img_1, 0, 0);
745
+ var base64String = canvas.toDataURL('image/png');
746
+ imgElem[i].src = base64String;
747
+ img_1.removeEventListener('load', onImageLoadEvent_1);
748
+ };
749
+ img_1.src = blobImageUrl;
750
+ img_1.addEventListener('load', onImageLoadEvent_1);
751
+ }
752
+ };
753
+ for (var i = 0; i < imgElem.length; i++) {
754
+ _loop_1(i);
755
+ }
756
+ };
728
757
  PasteCleanup.prototype.cropImageHandler = function (element) {
729
758
  var _this = this;
730
759
  var allImgElm = element.querySelectorAll('.e-img-cropped');
731
760
  if (allImgElm.length > 0) {
732
- var _loop_1 = function (i) {
761
+ var _loop_2 = function (i) {
733
762
  if (allImgElm[i].getAttribute('src').split(',')[0].indexOf('base64') >= 0) {
734
763
  var image_1 = new Image();
735
764
  image_1.src = allImgElm[i].getAttribute('src');
@@ -763,26 +792,37 @@ var PasteCleanup = /** @class */ (function () {
763
792
  }
764
793
  };
765
794
  for (var i = 0; i < allImgElm.length; i++) {
766
- _loop_1(i);
795
+ _loop_2(i);
767
796
  }
768
797
  }
769
798
  else {
770
- this.imgUploading(this.parent.inputElement);
771
- if (this.parent.iframeSettings.enable) {
772
- this.parent.updateValue();
799
+ if (!isNullOrUndefined(this.parent.insertImageSettings.saveUrl) && !isNullOrUndefined(this.parent.insertImageSettings.path) && !isNullOrUndefined(this.parent.inputElement.querySelectorAll("img")) && this.parent.inputElement.querySelectorAll("img")[0].src.startsWith("blob")) {
800
+ this.convertBlobToBase64(this.parent.inputElement);
801
+ setTimeout(function () {
802
+ _this.imgUploading(_this.parent.inputElement);
803
+ if (_this.parent.iframeSettings.enable) {
804
+ _this.parent.updateValue();
805
+ }
806
+ }, 20);
807
+ }
808
+ else {
809
+ this.imgUploading(this.parent.inputElement);
810
+ if (this.parent.iframeSettings.enable) {
811
+ this.parent.updateValue();
812
+ }
773
813
  }
774
814
  }
775
815
  };
776
816
  PasteCleanup.prototype.addTableClass = function (element, source) {
777
- source = isNOU(source) ? '' : source;
778
817
  var tableElement = element.querySelectorAll('table');
779
818
  for (var i = 0; i < tableElement.length; i++) {
780
- if (!tableElement[i].classList.contains('e-rte-table') && (source === 'html' || source === '')) {
781
- tableElement[i].classList.add('e-rte-table');
782
- }
783
- else if (source && source !== 'html') {
819
+ var isMSTeamsTable = tableElement[i].parentElement.nodeName === 'FIGURE';
820
+ if (this.parent.pasteCleanupSettings.keepFormat && source && !isMSTeamsTable) {
784
821
  tableElement[i].classList.add('e-rte-paste-' + source + '-table');
785
822
  }
823
+ else if (!tableElement[i].classList.contains('e-rte-table')) {
824
+ tableElement[i].classList.add('e-rte-table');
825
+ }
786
826
  }
787
827
  return element;
788
828
  };
@@ -58,6 +58,7 @@ export declare class RichTextEditor extends Component<HTMLElement> implements IN
58
58
  private isResizeInitialized;
59
59
  private isValueChangeBlurhandler;
60
60
  private displayTempElem;
61
+ private beforeRenderClassValue;
61
62
  /**
62
63
  * @hidden
63
64
 
@@ -196,6 +196,7 @@ var RichTextEditor = /** @class */ (function (_super) {
196
196
  this.persistData();
197
197
  setStyleAttribute(this.element, { 'width': formatUnit(this.width) });
198
198
  attributes(this.element, { role: 'application', 'aria-label': 'Rich Text Editor' });
199
+ this.beforeRenderClassValue = this.element.getAttribute('class');
199
200
  };
200
201
  RichTextEditor.prototype.persistData = function () {
201
202
  if (this.enablePersistence && this.originalElement.tagName === 'TEXTAREA') {
@@ -1068,6 +1069,10 @@ var RichTextEditor = /** @class */ (function (_super) {
1068
1069
  if (this.isDestroyed || !this.isRendered) {
1069
1070
  return;
1070
1071
  }
1072
+ this.element.className = this.beforeRenderClassValue;
1073
+ this.removeHtmlAttributes();
1074
+ this.removeAttributes();
1075
+ this.beforeRenderClassValue = null;
1071
1076
  if (!isNOU(this.timeInterval)) {
1072
1077
  clearInterval(this.timeInterval);
1073
1078
  this.timeInterval = null;
@@ -1135,8 +1140,6 @@ var RichTextEditor = /** @class */ (function (_super) {
1135
1140
  }
1136
1141
  }
1137
1142
  }
1138
- this.removeHtmlAttributes();
1139
- this.removeAttributes();
1140
1143
  _super.prototype.destroy.call(this);
1141
1144
  this.isRendered = false;
1142
1145
  };
@@ -1167,6 +1170,7 @@ var RichTextEditor = /** @class */ (function (_super) {
1167
1170
  this.element.removeAttribute('aria-disabled');
1168
1171
  this.element.removeAttribute('role');
1169
1172
  this.element.removeAttribute('tabindex');
1173
+ this.element.removeAttribute('aria-label');
1170
1174
  };
1171
1175
  RichTextEditor.prototype.destroyDependentModules = function () {
1172
1176
  /* destroy dependent modules */
@@ -899,6 +899,8 @@
899
899
  .e-richtexteditor .e-rte-content .e-content table,
900
900
  .e-richtexteditor .e-source-content .e-content table {
901
901
  margin-bottom: 10px;
902
+ border-collapse: collapse;
903
+ empty-cells: show;
902
904
  }
903
905
  .e-richtexteditor .e-rte-content .e-content pre,
904
906
  .e-richtexteditor .e-source-content .e-content pre {
@@ -1204,7 +1206,7 @@
1204
1206
  margin-right: 5px;
1205
1207
  display: inline-block;
1206
1208
  float: none;
1207
- max-width: calc(100% - 10px);
1209
+ max-width: 100%;
1208
1210
  padding: 1px;
1209
1211
  vertical-align: bottom;
1210
1212
  }
@@ -1289,11 +1291,6 @@
1289
1291
  display: contents;
1290
1292
  }
1291
1293
 
1292
- .e-rte-table {
1293
- border-collapse: collapse;
1294
- empty-cells: show;
1295
- }
1296
-
1297
1294
  .e-rte-table td,
1298
1295
  .e-rte-table th {
1299
1296
  border: 1px solid #959595;
@@ -1040,6 +1040,8 @@
1040
1040
  .e-richtexteditor .e-rte-content .e-content table,
1041
1041
  .e-richtexteditor .e-source-content .e-content table {
1042
1042
  margin-bottom: 10px;
1043
+ border-collapse: collapse;
1044
+ empty-cells: show;
1043
1045
  }
1044
1046
  .e-richtexteditor .e-rte-content .e-content pre,
1045
1047
  .e-richtexteditor .e-source-content .e-content pre {
@@ -1345,7 +1347,7 @@
1345
1347
  margin-right: 5px;
1346
1348
  display: inline-block;
1347
1349
  float: none;
1348
- max-width: calc(100% - 10px);
1350
+ max-width: 100%;
1349
1351
  padding: 1px;
1350
1352
  vertical-align: bottom;
1351
1353
  }
@@ -1430,11 +1432,6 @@
1430
1432
  display: contents;
1431
1433
  }
1432
1434
 
1433
- .e-rte-table {
1434
- border-collapse: collapse;
1435
- empty-cells: show;
1436
- }
1437
-
1438
1435
  .e-rte-table td,
1439
1436
  .e-rte-table th {
1440
1437
  border: 1px solid #bdbdbd;
@@ -1135,6 +1135,8 @@
1135
1135
  .e-richtexteditor .e-rte-content .e-content table,
1136
1136
  .e-richtexteditor .e-source-content .e-content table {
1137
1137
  margin-bottom: 10px;
1138
+ border-collapse: collapse;
1139
+ empty-cells: show;
1138
1140
  }
1139
1141
  .e-richtexteditor .e-rte-content .e-content pre,
1140
1142
  .e-richtexteditor .e-source-content .e-content pre {
@@ -1440,7 +1442,7 @@
1440
1442
  margin-right: 5px;
1441
1443
  display: inline-block;
1442
1444
  float: none;
1443
- max-width: calc(100% - 10px);
1445
+ max-width: 100%;
1444
1446
  padding: 1px;
1445
1447
  vertical-align: bottom;
1446
1448
  }
@@ -1525,11 +1527,6 @@
1525
1527
  display: contents;
1526
1528
  }
1527
1529
 
1528
- .e-rte-table {
1529
- border-collapse: collapse;
1530
- empty-cells: show;
1531
- }
1532
-
1533
1530
  .e-rte-table td,
1534
1531
  .e-rte-table th {
1535
1532
  border: 1px solid #adb5bd;
@@ -906,6 +906,8 @@
906
906
  .e-richtexteditor .e-rte-content .e-content table,
907
907
  .e-richtexteditor .e-source-content .e-content table {
908
908
  margin-bottom: 10px;
909
+ border-collapse: collapse;
910
+ empty-cells: show;
909
911
  }
910
912
  .e-richtexteditor .e-rte-content .e-content pre,
911
913
  .e-richtexteditor .e-source-content .e-content pre {
@@ -1211,7 +1213,7 @@
1211
1213
  margin-right: 5px;
1212
1214
  display: inline-block;
1213
1215
  float: none;
1214
- max-width: calc(100% - 10px);
1216
+ max-width: 100%;
1215
1217
  padding: 1px;
1216
1218
  vertical-align: bottom;
1217
1219
  }
@@ -1296,11 +1298,6 @@
1296
1298
  display: contents;
1297
1299
  }
1298
1300
 
1299
- .e-rte-table {
1300
- border-collapse: collapse;
1301
- empty-cells: show;
1302
- }
1303
-
1304
1301
  .e-rte-table td,
1305
1302
  .e-rte-table th {
1306
1303
  border: 1px solid #444c54;
@@ -906,6 +906,8 @@
906
906
  .e-richtexteditor .e-rte-content .e-content table,
907
907
  .e-richtexteditor .e-source-content .e-content table {
908
908
  margin-bottom: 10px;
909
+ border-collapse: collapse;
910
+ empty-cells: show;
909
911
  }
910
912
  .e-richtexteditor .e-rte-content .e-content pre,
911
913
  .e-richtexteditor .e-source-content .e-content pre {
@@ -1211,7 +1213,7 @@
1211
1213
  margin-right: 5px;
1212
1214
  display: inline-block;
1213
1215
  float: none;
1214
- max-width: calc(100% - 10px);
1216
+ max-width: 100%;
1215
1217
  padding: 1px;
1216
1218
  vertical-align: bottom;
1217
1219
  }
@@ -1296,11 +1298,6 @@
1296
1298
  display: contents;
1297
1299
  }
1298
1300
 
1299
- .e-rte-table {
1300
- border-collapse: collapse;
1301
- empty-cells: show;
1302
- }
1303
-
1304
1301
  .e-rte-table td,
1305
1302
  .e-rte-table th {
1306
1303
  border: 1px solid #dee2e6;
@@ -888,6 +888,8 @@
888
888
  .e-richtexteditor .e-rte-content .e-content table,
889
889
  .e-richtexteditor .e-source-content .e-content table {
890
890
  margin-bottom: 10px;
891
+ border-collapse: collapse;
892
+ empty-cells: show;
891
893
  }
892
894
  .e-richtexteditor .e-rte-content .e-content pre,
893
895
  .e-richtexteditor .e-source-content .e-content pre {
@@ -1193,7 +1195,7 @@
1193
1195
  margin-right: 5px;
1194
1196
  display: inline-block;
1195
1197
  float: none;
1196
- max-width: calc(100% - 10px);
1198
+ max-width: 100%;
1197
1199
  padding: 1px;
1198
1200
  vertical-align: bottom;
1199
1201
  }
@@ -1278,11 +1280,6 @@
1278
1280
  display: contents;
1279
1281
  }
1280
1282
 
1281
- .e-rte-table {
1282
- border-collapse: collapse;
1283
- empty-cells: show;
1284
- }
1285
-
1286
1283
  .e-rte-table td,
1287
1284
  .e-rte-table th {
1288
1285
  border: 1px solid #9a9a9a;
package/styles/fabric.css CHANGED
@@ -888,6 +888,8 @@
888
888
  .e-richtexteditor .e-rte-content .e-content table,
889
889
  .e-richtexteditor .e-source-content .e-content table {
890
890
  margin-bottom: 10px;
891
+ border-collapse: collapse;
892
+ empty-cells: show;
891
893
  }
892
894
  .e-richtexteditor .e-rte-content .e-content pre,
893
895
  .e-richtexteditor .e-source-content .e-content pre {
@@ -1193,7 +1195,7 @@
1193
1195
  margin-right: 5px;
1194
1196
  display: inline-block;
1195
1197
  float: none;
1196
- max-width: calc(100% - 10px);
1198
+ max-width: 100%;
1197
1199
  padding: 1px;
1198
1200
  vertical-align: bottom;
1199
1201
  }
@@ -1278,11 +1280,6 @@
1278
1280
  display: contents;
1279
1281
  }
1280
1282
 
1281
- .e-rte-table {
1282
- border-collapse: collapse;
1283
- empty-cells: show;
1284
- }
1285
-
1286
1283
  .e-rte-table td,
1287
1284
  .e-rte-table th {
1288
1285
  border: 1px solid #bdbdbd;
@@ -893,6 +893,8 @@
893
893
  .e-richtexteditor .e-rte-content .e-content table,
894
894
  .e-richtexteditor .e-source-content .e-content table {
895
895
  margin-bottom: 10px;
896
+ border-collapse: collapse;
897
+ empty-cells: show;
896
898
  }
897
899
  .e-richtexteditor .e-rte-content .e-content pre,
898
900
  .e-richtexteditor .e-source-content .e-content pre {
@@ -1198,7 +1200,7 @@
1198
1200
  margin-right: 5px;
1199
1201
  display: inline-block;
1200
1202
  float: none;
1201
- max-width: calc(100% - 10px);
1203
+ max-width: 100%;
1202
1204
  padding: 1px;
1203
1205
  vertical-align: bottom;
1204
1206
  }
@@ -1283,11 +1285,6 @@
1283
1285
  display: contents;
1284
1286
  }
1285
1287
 
1286
- .e-rte-table {
1287
- border-collapse: collapse;
1288
- empty-cells: show;
1289
- }
1290
-
1291
1288
  .e-rte-table td,
1292
1289
  .e-rte-table th {
1293
1290
  border: 1px solid #292827;
package/styles/fluent.css CHANGED
@@ -893,6 +893,8 @@
893
893
  .e-richtexteditor .e-rte-content .e-content table,
894
894
  .e-richtexteditor .e-source-content .e-content table {
895
895
  margin-bottom: 10px;
896
+ border-collapse: collapse;
897
+ empty-cells: show;
896
898
  }
897
899
  .e-richtexteditor .e-rte-content .e-content pre,
898
900
  .e-richtexteditor .e-source-content .e-content pre {
@@ -1198,7 +1200,7 @@
1198
1200
  margin-right: 5px;
1199
1201
  display: inline-block;
1200
1202
  float: none;
1201
- max-width: calc(100% - 10px);
1203
+ max-width: 100%;
1202
1204
  padding: 1px;
1203
1205
  vertical-align: bottom;
1204
1206
  }
@@ -1283,11 +1285,6 @@
1283
1285
  display: contents;
1284
1286
  }
1285
1287
 
1286
- .e-rte-table {
1287
- border-collapse: collapse;
1288
- empty-cells: show;
1289
- }
1290
-
1291
1288
  .e-rte-table td,
1292
1289
  .e-rte-table th {
1293
1290
  border: 1px solid #edebe9;