@syncfusion/ej2-richtexteditor 20.1.61 → 20.2.39

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 (93) hide show
  1. package/CHANGELOG.md +32 -0
  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 +468 -191
  5. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es5.js +460 -181
  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/helpers/e2e/index.js +8 -6
  12. package/helpers/e2e/rte-helper.js +80 -64
  13. package/package.json +12 -12
  14. package/src/common/util.js +7 -8
  15. package/src/editor-manager/plugin/inserthtml.d.ts +1 -0
  16. package/src/editor-manager/plugin/inserthtml.js +25 -3
  17. package/src/editor-manager/plugin/lists.js +14 -4
  18. package/src/markdown-parser/base/constant.d.ts +6 -0
  19. package/src/markdown-parser/base/constant.js +6 -0
  20. package/src/markdown-parser/base/markdown-parser.d.ts +2 -0
  21. package/src/markdown-parser/base/markdown-parser.js +6 -0
  22. package/src/markdown-parser/base/types.d.ts +1 -1
  23. package/src/markdown-parser/plugin/insert-text.d.ts +22 -0
  24. package/src/markdown-parser/plugin/insert-text.js +51 -0
  25. package/src/rich-text-editor/actions/color-picker.js +20 -4
  26. package/src/rich-text-editor/actions/full-screen.js +4 -2
  27. package/src/rich-text-editor/actions/resize.js +4 -3
  28. package/src/rich-text-editor/actions/toolbar.js +4 -2
  29. package/src/rich-text-editor/base/classes.d.ts +5 -0
  30. package/src/rich-text-editor/base/classes.js +5 -0
  31. package/src/rich-text-editor/base/constant.d.ts +46 -1
  32. package/src/rich-text-editor/base/constant.js +46 -1
  33. package/src/rich-text-editor/base/interface.d.ts +2 -0
  34. package/src/rich-text-editor/base/rich-text-editor.d.ts +1 -0
  35. package/src/rich-text-editor/base/rich-text-editor.js +34 -27
  36. package/src/rich-text-editor/base/util.js +10 -6
  37. package/src/rich-text-editor/formatter/formatter.js +1 -1
  38. package/src/rich-text-editor/renderer/iframe-content-renderer.js +1 -1
  39. package/src/rich-text-editor/renderer/image-module.d.ts +1 -0
  40. package/src/rich-text-editor/renderer/image-module.js +58 -44
  41. package/src/rich-text-editor/renderer/link-module.js +16 -14
  42. package/src/rich-text-editor/renderer/markdown-renderer.js +2 -1
  43. package/src/rich-text-editor/renderer/table-module.d.ts +3 -0
  44. package/src/rich-text-editor/renderer/table-module.js +133 -56
  45. package/src/rich-text-editor/renderer/toolbar-renderer.js +13 -2
  46. package/src/rich-text-editor/renderer/view-source.js +1 -1
  47. package/styles/bootstrap-dark.css +49 -0
  48. package/styles/bootstrap.css +49 -0
  49. package/styles/bootstrap4.css +49 -0
  50. package/styles/bootstrap5-dark.css +49 -0
  51. package/styles/bootstrap5.css +49 -0
  52. package/styles/fabric-dark.css +49 -0
  53. package/styles/fabric.css +49 -0
  54. package/styles/fluent-dark.css +53 -3
  55. package/styles/fluent.css +50 -0
  56. package/styles/highcontrast-light.css +49 -0
  57. package/styles/highcontrast.css +49 -0
  58. package/styles/material-dark.css +49 -0
  59. package/styles/material.css +49 -0
  60. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +17 -16
  61. package/styles/rich-text-editor/_bootstrap-definition.scss +17 -16
  62. package/styles/rich-text-editor/_bootstrap4-definition.scss +17 -16
  63. package/styles/rich-text-editor/_bootstrap5-definition.scss +17 -16
  64. package/styles/rich-text-editor/_fabric-dark-definition.scss +17 -16
  65. package/styles/rich-text-editor/_fabric-definition.scss +17 -16
  66. package/styles/rich-text-editor/_fluent-definition.scss +18 -16
  67. package/styles/rich-text-editor/_fusionnew-definition.scss +190 -0
  68. package/styles/rich-text-editor/_highcontrast-definition.scss +17 -16
  69. package/styles/rich-text-editor/_highcontrast-light-definition.scss +17 -16
  70. package/styles/rich-text-editor/_layout.scss +59 -0
  71. package/styles/rich-text-editor/_material-dark-definition.scss +17 -16
  72. package/styles/rich-text-editor/_material-definition.scss +17 -16
  73. package/styles/rich-text-editor/_material3-definition.scss +190 -0
  74. package/styles/rich-text-editor/_tailwind-definition.scss +17 -16
  75. package/styles/rich-text-editor/bootstrap-dark.css +49 -0
  76. package/styles/rich-text-editor/bootstrap.css +49 -0
  77. package/styles/rich-text-editor/bootstrap4.css +49 -0
  78. package/styles/rich-text-editor/bootstrap5-dark.css +49 -0
  79. package/styles/rich-text-editor/bootstrap5.css +49 -0
  80. package/styles/rich-text-editor/fabric-dark.css +49 -0
  81. package/styles/rich-text-editor/fabric.css +49 -0
  82. package/styles/rich-text-editor/fluent-dark.css +53 -3
  83. package/styles/rich-text-editor/fluent.css +50 -0
  84. package/styles/rich-text-editor/highcontrast-light.css +49 -0
  85. package/styles/rich-text-editor/highcontrast.css +49 -0
  86. package/styles/rich-text-editor/icons/_fusionnew.scss +303 -0
  87. package/styles/rich-text-editor/icons/_material3.scss +303 -0
  88. package/styles/rich-text-editor/material-dark.css +49 -0
  89. package/styles/rich-text-editor/material.css +49 -0
  90. package/styles/rich-text-editor/tailwind-dark.css +49 -0
  91. package/styles/rich-text-editor/tailwind.css +49 -0
  92. package/styles/tailwind-dark.css +49 -0
  93. package/styles/tailwind.css +49 -0
@@ -17,6 +17,7 @@ var Image = /** @class */ (function () {
17
17
  this.isAllowedTypes = true;
18
18
  this.pageX = null;
19
19
  this.pageY = null;
20
+ this.mousex = null;
20
21
  this.deletedImg = [];
21
22
  this.parent = parent;
22
23
  this.rteID = parent.element.id;
@@ -255,18 +256,18 @@ var Image = /** @class */ (function () {
255
256
  this.resizeBtnInit();
256
257
  this.imgEle = e;
257
258
  addClass([this.imgEle], 'e-resize');
258
- this.imgResizeDiv = this.parent.createElement('span', { className: 'e-img-resize', id: this.rteID + '_imgResize' });
259
+ this.imgResizeDiv = this.parent.createElement('span', { className: 'e-img-resize' + ' ' + this.parent.cssClass, id: this.rteID + '_imgResize' });
259
260
  this.imgResizeDiv.appendChild(this.parent.createElement('span', {
260
- className: 'e-rte-imageboxmark e-rte-topLeft', styles: 'cursor: nwse-resize'
261
+ className: 'e-rte-imageboxmark e-rte-topLeft' + ' ' + this.parent.cssClass, styles: 'cursor: nwse-resize'
261
262
  }));
262
263
  this.imgResizeDiv.appendChild(this.parent.createElement('span', {
263
- className: 'e-rte-imageboxmark e-rte-topRight', styles: 'cursor: nesw-resize'
264
+ className: 'e-rte-imageboxmark e-rte-topRight' + ' ' + this.parent.cssClass, styles: 'cursor: nesw-resize'
264
265
  }));
265
266
  this.imgResizeDiv.appendChild(this.parent.createElement('span', {
266
- className: 'e-rte-imageboxmark e-rte-botLeft', styles: 'cursor: nesw-resize'
267
+ className: 'e-rte-imageboxmark e-rte-botLeft' + ' ' + this.parent.cssClass, styles: 'cursor: nesw-resize'
267
268
  }));
268
269
  this.imgResizeDiv.appendChild(this.parent.createElement('span', {
269
- className: 'e-rte-imageboxmark e-rte-botRight', styles: 'cursor: nwse-resize'
270
+ className: 'e-rte-imageboxmark e-rte-botRight' + ' ' + this.parent.cssClass, styles: 'cursor: nwse-resize'
270
271
  }));
271
272
  if (Browser.isDevice) {
272
273
  addClass([this.imgResizeDiv], 'e-mob-rte');
@@ -353,8 +354,9 @@ var Image = /** @class */ (function () {
353
354
  img.style.minWidth = this.parent.insertImageSettings.minWidth === 0 ? '20px' : formatUnit(this.parent.insertImageSettings.minWidth);
354
355
  if (this.parent.insertImageSettings.resizeByPercent) {
355
356
  if (parseInt('' + img.getBoundingClientRect().width + '', 10) !== 0 && parseInt('' + width + '', 10) !== 0) {
356
- var percentageValue = this.pixToPerc((width / height * expectedY), (img.previousElementSibling || img.parentElement));
357
- img.style.width = Math.min(Math.round((percentageValue / img.getBoundingClientRect().width) * expectedX * 100) / 100, 100) + '%';
357
+ var original = img.offsetWidth + this.mousex;
358
+ var finalWidthByPerc = (original / img.offsetWidth) * (parseFloat(img.style.width).toString() == 'NaN' ? (img.offsetWidth / (parseFloat(getComputedStyle(this.parent.element).width)) * 100) : parseFloat(img.style.width));
359
+ img.style.width = ((finalWidthByPerc > 3) ? finalWidthByPerc : 3) + '%';
358
360
  }
359
361
  else {
360
362
  img.style.width = this.pixToPerc((width / height * expectedY), (img.previousElementSibling || img.parentElement)) + '%';
@@ -377,13 +379,20 @@ var Image = /** @class */ (function () {
377
379
  img.style.height = expectedY + 'px';
378
380
  }
379
381
  else {
380
- img.setAttribute('width', ((width / height * expectedY) + width / height).toString());
382
+ if (this.parent.iframeSettings.enable) {
383
+ img.setAttribute('width', (img.width + this.mousex).toString());
384
+ }
385
+ else {
386
+ img.setAttribute('width', (img.offsetWidth + this.mousex).toString());
387
+ }
381
388
  }
382
389
  }
383
390
  else if (height > width) {
384
391
  if (this.parent.insertImageSettings.resizeByPercent) {
385
392
  if (parseInt('' + img.getBoundingClientRect().width + '', 10) !== 0 && parseInt('' + width + '', 10) !== 0) {
386
- img.style.width = Math.min(Math.round((width / img.getBoundingClientRect().width) * expectedX * 100) / 100, 100) + '%';
393
+ var original = img.offsetWidth + this.mousex;
394
+ var finalWidthByPerc = (original / img.offsetWidth) * (parseFloat(img.style.width).toString() == 'NaN' ? (img.offsetWidth / (parseFloat(getComputedStyle(this.parent.element).width)) * 100) : parseFloat(img.style.width));
395
+ img.style.width = ((finalWidthByPerc > 3) ? finalWidthByPerc : 3) + '%';
387
396
  }
388
397
  else {
389
398
  img.style.width = this.pixToPerc((expectedX / height * expectedY), (img.previousElementSibling || img.parentElement)) + '%';
@@ -450,6 +459,7 @@ var Image = /** @class */ (function () {
450
459
  var mouseY = (this.resizeBtnStat.topLeft || this.resizeBtnStat.topRight) ? -(pageY - this.pageY) : (pageY - this.pageY);
451
460
  var width = parseInt(this.imgDupPos.width, 10) + mouseX;
452
461
  var height = parseInt(this.imgDupPos.height, 10) + mouseY;
462
+ this.mousex = mouseX;
453
463
  this.pageX = pageX;
454
464
  this.pageY = pageY;
455
465
  if (this.resizeBtnStat.botRight) {
@@ -931,12 +941,12 @@ var Image = /** @class */ (function () {
931
941
  }
932
942
  this.imagDialog(e);
933
943
  if (!isNullOrUndefined(this.dialogObj)) {
934
- var linkWrap = this.parent.createElement('div', { className: 'e-img-linkwrap' });
944
+ var linkWrap = this.parent.createElement('div', { className: 'e-img-linkwrap' + ' ' + this.parent.cssClass });
935
945
  var linkUrl = this.i10n.getConstant('linkurl');
936
- var content = '<div class="e-rte-field">' +
937
- '<input type="text" data-role ="none" class="e-input e-img-link" spellcheck="false" placeholder="' + linkUrl + '"/></div>' +
946
+ var content = '<div class="e-rte-field' + ' ' + this.parent.cssClass + '">' +
947
+ '<input type="text" data-role ="none" class="e-input e-img-link' + ' ' + this.parent.cssClass + '" spellcheck="false" placeholder="' + linkUrl + '"/></div>' +
938
948
  '<div class="e-rte-label"></div>' + '<div class="e-rte-field">' +
939
- '<input type="checkbox" class="e-rte-linkTarget" data-role ="none"></div>';
949
+ '<input type="checkbox" class="e-rte-linkTarget' + ' ' + this.parent.cssClass + '" data-role ="none"></div>';
940
950
  var contentElem = parseHtml(content);
941
951
  linkWrap.appendChild(contentElem);
942
952
  var linkTarget = linkWrap.querySelector('.e-rte-linkTarget');
@@ -975,9 +985,10 @@ var Image = /** @class */ (function () {
975
985
  _this.insertlink(linkargs_1);
976
986
  },
977
987
  buttonModel: {
978
- content: linkUpdate, cssClass: 'e-flat e-update-link', isPrimary: true
988
+ content: linkUpdate, cssClass: 'e-flat e-update-link' + ' ' + this.parent.cssClass, isPrimary: true
979
989
  }
980
- }]
990
+ }],
991
+ cssClass: this.dialogObj.cssClass + ' e-rte-img-link-dialog'
981
992
  });
982
993
  if (!isNOU(this.parent.cssClass)) {
983
994
  this.dialogObj.setProperties({ cssClass: this.parent.cssClass });
@@ -1000,13 +1011,13 @@ var Image = /** @class */ (function () {
1000
1011
  this.imagDialog(e);
1001
1012
  var altText = this.i10n.getConstant('altText');
1002
1013
  if (!isNullOrUndefined(this.dialogObj)) {
1003
- var altWrap = this.parent.createElement('div', { className: 'e-img-altwrap' });
1014
+ var altWrap = this.parent.createElement('div', { className: 'e-img-altwrap' + ' ' + this.parent.cssClass });
1004
1015
  var altHeader = this.i10n.getConstant('alternateHeader');
1005
1016
  var linkUpdate = this.i10n.getConstant('dialogUpdate');
1006
1017
  var getAlt = (e.selectNode[0].getAttribute('alt') === null) ? '' :
1007
1018
  e.selectNode[0].getAttribute('alt');
1008
- var content = '<div class="e-rte-field">' +
1009
- '<input type="text" spellcheck="false" value="' + getAlt + '" class="e-input e-img-alt" placeholder="' + altText + '"/>' +
1019
+ var content = '<div class="e-rte-field' + ' ' + this.parent.cssClass + '">' +
1020
+ '<input type="text" spellcheck="false" value="' + getAlt + '" class="e-input e-img-alt' + ' ' + this.parent.cssClass + '" placeholder="' + altText + '"/>' +
1010
1021
  '</div>';
1011
1022
  var contentElem = parseHtml(content);
1012
1023
  altWrap.appendChild(contentElem);
@@ -1023,9 +1034,10 @@ var Image = /** @class */ (function () {
1023
1034
  _this.insertAlt(altArgs_1);
1024
1035
  },
1025
1036
  buttonModel: {
1026
- content: linkUpdate, cssClass: 'e-flat e-update-alt', isPrimary: true
1037
+ content: linkUpdate, cssClass: 'e-flat e-update-alt' + ' ' + this.parent.cssClass, isPrimary: true
1027
1038
  }
1028
- }]
1039
+ }],
1040
+ cssClass: this.dialogObj.cssClass + ' e-rte-img-alt-dialog'
1029
1041
  });
1030
1042
  if (!isNOU(this.parent.cssClass)) {
1031
1043
  this.dialogObj.setProperties({ cssClass: this.parent.cssClass });
@@ -1189,11 +1201,11 @@ var Image = /** @class */ (function () {
1189
1201
  }
1190
1202
  else {
1191
1203
  this.captionEle = this.parent.createElement('span', {
1192
- className: classes.CLS_CAPTION + ' ' + classes.CLS_RTE_CAPTION,
1204
+ className: classes.CLS_CAPTION + ' ' + classes.CLS_RTE_CAPTION + ' ' + this.parent.cssClass,
1193
1205
  attrs: { contenteditable: 'false', draggable: 'false', style: 'width:' + this.parent.insertImageSettings.width }
1194
1206
  });
1195
- var imgWrap = this.parent.createElement('span', { className: 'e-img-wrap' });
1196
- var imgInner = this.parent.createElement('span', { className: 'e-img-inner',
1207
+ var imgWrap = this.parent.createElement('span', { className: 'e-img-wrap' + ' ' + this.parent.cssClass });
1208
+ var imgInner = this.parent.createElement('span', { className: 'e-img-inner' + ' ' + this.parent.cssClass,
1197
1209
  attrs: { contenteditable: 'true' } });
1198
1210
  var parent_1 = e.selectNode[0].parentElement;
1199
1211
  if (parent_1.tagName === 'A') {
@@ -1246,9 +1258,10 @@ var Image = /** @class */ (function () {
1246
1258
  _this.insertSize(selectObj_1);
1247
1259
  },
1248
1260
  buttonModel: {
1249
- content: linkUpdate, cssClass: 'e-flat e-update-size', isPrimary: true
1261
+ content: linkUpdate, cssClass: 'e-flat e-update-size' + ' ' + this.parent.cssClass, isPrimary: true
1250
1262
  }
1251
- }]
1263
+ }],
1264
+ cssClass: this.dialogObj.cssClass + ' e-rte-img-size-dialog'
1252
1265
  });
1253
1266
  if (!isNOU(this.parent.cssClass)) {
1254
1267
  this.dialogObj.setProperties({ cssClass: this.parent.cssClass });
@@ -1291,7 +1304,7 @@ var Image = /** @class */ (function () {
1291
1304
  this.dialogObj.hide({ returnValue: true });
1292
1305
  return;
1293
1306
  }
1294
- var imgDialog = this.parent.createElement('div', { className: 'e-rte-img-dialog', id: this.rteID + '_image' });
1307
+ var imgDialog = this.parent.createElement('div', { className: 'e-rte-img-dialog' + ' ' + this.parent.cssClass, id: this.rteID + '_image' });
1295
1308
  this.parent.element.appendChild(imgDialog);
1296
1309
  var imgInsert = this.i10n.getConstant('dialogInsert');
1297
1310
  var imglinkCancel = this.i10n.getConstant('dialogCancel');
@@ -1300,7 +1313,7 @@ var Image = /** @class */ (function () {
1300
1313
  var selectObj = { selfImage: this, selection: e.selection, args: e.args, selectParent: e.selectParent };
1301
1314
  var dialogModel = {
1302
1315
  header: imgHeader,
1303
- cssClass: classes.CLS_RTE_ELEMENTS,
1316
+ cssClass: classes.CLS_RTE_ELEMENTS + ' ' + this.parent.cssClass,
1304
1317
  enableRtl: this.parent.enableRtl,
1305
1318
  locale: this.parent.locale,
1306
1319
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px', height: 'inherit',
@@ -1308,13 +1321,13 @@ var Image = /** @class */ (function () {
1308
1321
  isModal: Browser.isDevice,
1309
1322
  buttons: [{
1310
1323
  click: this.insertImageUrl.bind(selectObj),
1311
- buttonModel: { content: imgInsert, cssClass: 'e-flat e-insertImage', isPrimary: true, disabled: true }
1324
+ buttonModel: { content: imgInsert, cssClass: 'e-flat e-insertImage' + ' ' + this.parent.cssClass, isPrimary: true, disabled: true }
1312
1325
  },
1313
1326
  {
1314
1327
  click: function (e) {
1315
1328
  _this.cancelDialog(e);
1316
1329
  },
1317
- buttonModel: { cssClass: 'e-flat e-cancel', content: imglinkCancel }
1330
+ buttonModel: { cssClass: 'e-flat e-cancel' + ' ' + this.parent.cssClass, content: imglinkCancel }
1318
1331
  }],
1319
1332
  target: (Browser.isDevice) ? document.body : this.parent.element,
1320
1333
  animationSettings: { effect: 'None' },
@@ -1337,12 +1350,12 @@ var Image = /** @class */ (function () {
1337
1350
  _this.dialogObj = null;
1338
1351
  }
1339
1352
  };
1340
- var dialogContent = this.parent.createElement('div', { className: 'e-img-content' });
1353
+ var dialogContent = this.parent.createElement('div', { className: 'e-img-content' + ' ' + this.parent.cssClass });
1341
1354
  if ((!isNullOrUndefined(this.parent.insertImageSettings.path) && this.parent.editorMode === 'Markdown')
1342
1355
  || this.parent.editorMode === 'HTML') {
1343
1356
  dialogContent.appendChild(this.imgUpload(e));
1344
1357
  }
1345
- var linkHeader = this.parent.createElement('div', { className: 'e-linkheader' });
1358
+ var linkHeader = this.parent.createElement('div', { className: 'e-linkheader' + ' ' + this.parent.cssClass });
1346
1359
  var linkHeaderText = this.i10n.getConstant('imageLinkHeader');
1347
1360
  if (this.parent.editorMode === 'HTML') {
1348
1361
  linkHeader.innerHTML = linkHeaderText;
@@ -1414,7 +1427,8 @@ var Image = /** @class */ (function () {
1414
1427
  }
1415
1428
  /* eslint-enable */
1416
1429
  }
1417
- if (!(this.parent.iframeSettings.enable && this.parent.currentTarget.nodeName === 'IMG') && e.target.tagName !== 'IMG' && this.imgResizeDiv && !(this.quickToolObj &&
1430
+ if (!(this.parent.iframeSettings.enable && !isNOU(this.parent.currentTarget) && this.parent.currentTarget.nodeName === 'IMG') &&
1431
+ e.target.tagName !== 'IMG' && this.imgResizeDiv && !(this.quickToolObj &&
1418
1432
  this.quickToolObj.imageQTBar && this.quickToolObj.imageQTBar.element.contains(e.target)) &&
1419
1433
  this.contentModule.getEditPanel().contains(this.imgResizeDiv)) {
1420
1434
  this.cancelResizeAction();
@@ -1444,10 +1458,10 @@ var Image = /** @class */ (function () {
1444
1458
  // eslint-disable-next-line
1445
1459
  Image.prototype.imageUrlPopup = function (e) {
1446
1460
  var _this = this;
1447
- var imgUrl = this.parent.createElement('div', { className: 'imgUrl' });
1461
+ var imgUrl = this.parent.createElement('div', { className: 'imgUrl' + ' ' + this.parent.cssClass });
1448
1462
  var placeUrl = this.i10n.getConstant('imageUrl');
1449
1463
  this.inputUrl = this.parent.createElement('input', {
1450
- className: 'e-input e-img-url',
1464
+ className: 'e-input e-img-url' + ' ' + this.parent.cssClass,
1451
1465
  attrs: { placeholder: placeUrl, spellcheck: 'false' }
1452
1466
  });
1453
1467
  this.inputUrl.addEventListener('input', function () {
@@ -1514,7 +1528,7 @@ var Image = /** @class */ (function () {
1514
1528
  var selectNode = e.selectNode[0];
1515
1529
  var imgHeight = this.i10n.getConstant('imageHeight');
1516
1530
  var imgWidth = this.i10n.getConstant('imageWidth');
1517
- var imgSizeWrap = this.parent.createElement('div', { className: 'e-img-sizewrap' });
1531
+ var imgSizeWrap = this.parent.createElement('div', { className: 'e-img-sizewrap' + ' ' + this.parent.cssClass });
1518
1532
  var widthVal = isNullOrUndefined(this.changedWidthValue) && (selectNode.style.width.toString() === 'auto' ||
1519
1533
  selectNode.style.width !== '') ? selectNode.style.width : !isNullOrUndefined(this.changedWidthValue) ?
1520
1534
  this.changedWidthValue : (parseInt(selectNode.getClientRects()[0].width.toString(), 10)).toString();
@@ -1523,12 +1537,12 @@ var Image = /** @class */ (function () {
1523
1537
  this.changedHeightValue : (parseInt(selectNode.getClientRects()[0].height.toString(), 10)).toString();
1524
1538
  this.changedWidthValue = null;
1525
1539
  this.changedHeightValue = null;
1526
- var content = '<div class="e-rte-label"><label>' + imgWidth +
1527
- '</label></div><div class="e-rte-field"><input type="text" id="imgwidth" class="e-img-width" value=' +
1540
+ var content = '<div class="e-rte-label' + ' ' + this.parent.cssClass + '"><label>' + imgWidth +
1541
+ '</label></div><div class="e-rte-field' + ' ' + this.parent.cssClass + '"><input type="text" id="imgwidth" class="e-img-width' + ' ' + this.parent.cssClass + '" value=' +
1528
1542
  widthVal
1529
1543
  + ' /></div>' +
1530
- '<div class="e-rte-label">' + '<label>' + imgHeight + '</label></div><div class="e-rte-field"> ' +
1531
- '<input type="text" id="imgheight" class="e-img-height" value=' +
1544
+ '<div class="e-rte-label' + ' ' + this.parent.cssClass + '">' + '<label>' + imgHeight + '</label></div><div class="e-rte-field' + ' ' + this.parent.cssClass + '"> ' +
1545
+ '<input type="text" id="imgheight" class="e-img-height' + ' ' + this.parent.cssClass + '" value=' +
1532
1546
  heightVal
1533
1547
  + ' /></div>';
1534
1548
  var contentElem = parseHtml(content);
@@ -1618,16 +1632,16 @@ var Image = /** @class */ (function () {
1618
1632
  save = e.selection;
1619
1633
  selectParent = e.selectParent;
1620
1634
  }
1621
- var uploadParentEle = this.parent.createElement('div', { className: 'e-img-uploadwrap e-droparea' });
1635
+ var uploadParentEle = this.parent.createElement('div', { className: 'e-img-uploadwrap e-droparea' + ' ' + this.parent.cssClass });
1622
1636
  var deviceImgUpMsg = this.i10n.getConstant('imageDeviceUploadMessage');
1623
1637
  var imgUpMsg = this.i10n.getConstant('imageUploadMessage');
1624
- var span = this.parent.createElement('span', { className: 'e-droptext' });
1638
+ var span = this.parent.createElement('span', { className: 'e-droptext' + ' ' + this.parent.cssClass });
1625
1639
  var spanMsg = this.parent.createElement('span', {
1626
- className: 'e-rte-upload-text', innerHTML: ((Browser.isDevice) ? deviceImgUpMsg : imgUpMsg)
1640
+ className: 'e-rte-upload-text' + ' ' + this.parent.cssClass, innerHTML: ((Browser.isDevice) ? deviceImgUpMsg : imgUpMsg)
1627
1641
  });
1628
1642
  span.appendChild(spanMsg);
1629
1643
  var btnEle = this.parent.createElement('button', {
1630
- className: 'e-browsebtn', id: this.rteID + '_insertImage', attrs: { autofocus: 'true', type: 'button' }
1644
+ className: 'e-browsebtn' + ' ' + this.parent.cssClass, id: this.rteID + '_insertImage', attrs: { autofocus: 'true', type: 'button' }
1631
1645
  });
1632
1646
  span.appendChild(btnEle);
1633
1647
  uploadParentEle.appendChild(span);
@@ -1639,7 +1653,7 @@ var Image = /** @class */ (function () {
1639
1653
  var btnClick = (Browser.isDevice) ? span : btnEle;
1640
1654
  EventHandler.add(btnClick, 'click', this.fileSelect, this);
1641
1655
  var uploadEle = this.parent.createElement('input', {
1642
- id: this.rteID + '_upload', attrs: { type: 'File', name: 'UploadFiles' }
1656
+ id: this.rteID + '_upload', attrs: { type: 'File', name: 'UploadFiles' }, className: this.parent.cssClass
1643
1657
  });
1644
1658
  uploadParentEle.appendChild(uploadEle);
1645
1659
  var altText;
@@ -251,22 +251,22 @@ var Link = /** @class */ (function () {
251
251
  var textPlace = this.i10n.getConstant('textPlaceholder');
252
252
  var title = this.i10n.getConstant('linkTitle');
253
253
  var linkDialogEle = this.parent.createElement('div', {
254
- className: 'e-rte-link-dialog', id: this.rteID + '_rtelink'
254
+ className: 'e-rte-link-dialog' + ' ' + this.parent.cssClass, id: this.rteID + '_rtelink'
255
255
  });
256
256
  this.parent.element.appendChild(linkDialogEle);
257
257
  var linkContent = this.parent.createElement('div', {
258
- className: 'e-rte-linkcontent', id: this.rteID + '_linkContent'
258
+ className: 'e-rte-linkcontent' + ' ' + this.parent.cssClass, id: this.rteID + '_linkContent'
259
259
  });
260
260
  var htmlTextbox = (this.parent.editorMode === 'HTML') ? '<label>' + linkTooltip +
261
- '</label></div><div class="e-rte-field">' +
262
- '<input type="text" data-role ="none" spellcheck="false" placeholder = "' + title + '" class="e-input e-rte-linkTitle"></div>' +
263
- '<div class="e-rte-label"></div>' + '<div class="e-rte-field">' +
264
- '<input type="checkbox" class="e-rte-linkTarget" data-role ="none"></div>' : '';
265
- var content = '<div class="e-rte-label"><label>' + linkWebAddress + '</label></div>' + '<div class="e-rte-field">' +
266
- '<input type="text" data-role ="none" spellcheck="false" placeholder="' + urlPlace + '" class="e-input e-rte-linkurl"/></div>' +
267
- '<div class="e-rte-label">' + '<label>' + linkDisplayText + '</label></div><div class="e-rte-field"> ' +
268
- '<input type="text" data-role ="none" spellcheck="false" class="e-input e-rte-linkText" placeholder="' + textPlace + '">' +
269
- '</div><div class="e-rte-label">' + htmlTextbox;
261
+ '</label></div><div class="e-rte-field' + ' ' + this.parent.cssClass + '">' +
262
+ '<input type="text" data-role ="none" spellcheck="false" placeholder = "' + title + '" class="e-input e-rte-linkTitle' + ' ' + this.parent.cssClass + '"></div>' +
263
+ '<div class="e-rte-label' + ' ' + this.parent.cssClass + '"></div>' + '<div class="e-rte-field' + ' ' + this.parent.cssClass + '">' +
264
+ '<input type="checkbox" class="e-rte-linkTarget' + ' ' + this.parent.cssClass + '" data-role ="none"></div>' : '';
265
+ var content = '<div class="e-rte-label' + ' ' + this.parent.cssClass + '"><label>' + linkWebAddress + '</label></div>' + '<div class="e-rte-field' + ' ' + this.parent.cssClass + '">' +
266
+ '<input type="text" data-role ="none" spellcheck="false" placeholder="' + urlPlace + '" class="e-input e-rte-linkurl' + ' ' + this.parent.cssClass + '"/></div>' +
267
+ '<div class="e-rte-label' + ' ' + this.parent.cssClass + '">' + '<label>' + linkDisplayText + '</label></div><div class="e-rte-field' + ' ' + this.parent.cssClass + '"> ' +
268
+ '<input type="text" data-role ="none" spellcheck="false" class="e-input e-rte-linkText' + ' ' + this.parent.cssClass + '" placeholder="' + textPlace + '">' +
269
+ '</div><div class="e-rte-label' + ' ' + this.parent.cssClass + '">' + htmlTextbox;
270
270
  var contentElem = parseHtml(content);
271
271
  linkContent.appendChild(contentElem);
272
272
  var linkTarget = linkContent.querySelector('.e-rte-linkTarget');
@@ -294,9 +294,9 @@ var Link = /** @class */ (function () {
294
294
  isModal: Browser.isDevice,
295
295
  buttons: [{
296
296
  click: this.insertlink.bind(selectObj),
297
- buttonModel: { content: linkInsert, cssClass: 'e-flat e-insertLink', isPrimary: true }
297
+ buttonModel: { content: linkInsert, cssClass: 'e-flat e-insertLink' + ' ' + this.parent.cssClass, isPrimary: true }
298
298
  },
299
- { click: this.cancelDialog.bind(selectObj), buttonModel: { cssClass: 'e-flat', content: linkCancel } }],
299
+ { click: this.cancelDialog.bind(selectObj), buttonModel: { cssClass: 'e-flat' + ' ' + this.parent.cssClass, content: linkCancel } }],
300
300
  target: (Browser.isDevice) ? document.body : this.parent.element,
301
301
  animationSettings: { effect: 'None' },
302
302
  close: function (event) {
@@ -440,8 +440,10 @@ var Link = /** @class */ (function () {
440
440
  if (this.parent.formatter.getUndoRedoStack().length === 0) {
441
441
  this.parent.formatter.saveData();
442
442
  }
443
+ var selectParentEle = this.getAnchorNode(e.selectParent[0]);
443
444
  this.parent.formatter.process(this.parent, e.args, e.args, {
444
445
  selectNode: e.selectNode, selectParent: e.selectParent, selection: e.selection,
446
+ text: selectParentEle.innerText,
445
447
  subCommand: e.args.item.subCommand
446
448
  });
447
449
  if (isIDevice() && this.parent.iframeSettings.enable) {
@@ -456,7 +458,7 @@ var Link = /** @class */ (function () {
456
458
  var selectParentEle = this.getAnchorNode(e.selectParent[0]);
457
459
  if (selectParentEle.classList.contains('e-rte-anchor') || selectParentEle.tagName === 'A') {
458
460
  this.parent.formatter.process(this.parent, e.args, e.args, {
459
- url: selectParentEle.href,
461
+ url: selectParentEle.href, text: selectParentEle.innerText,
460
462
  target: selectParentEle.target === '' ? '_self' : '_blank', selectNode: e.selectNode,
461
463
  subCommand: e.args.item.subCommand
462
464
  });
@@ -25,7 +25,8 @@ var MarkdownRender = /** @class */ (function () {
25
25
  var div = this.parent.createElement('div', { id: this.parent.getID() + '_view', className: 'e-rte-content' });
26
26
  this.editableElement = this.parent.createElement('textarea', {
27
27
  className: 'e-content',
28
- id: this.parent.getID() + '_editable-content'
28
+ id: this.parent.getID() + '_editable-content',
29
+ attrs: { 'aria-labelledby': this.parent.getID() + '_view' }
29
30
  });
30
31
  div.appendChild(this.editableElement);
31
32
  this.setPanel(div);
@@ -32,6 +32,8 @@ export declare class Table {
32
32
  private moveEle;
33
33
  private helper;
34
34
  private dialogRenderObj;
35
+ private currentColumnResize;
36
+ private currentMarginLeft;
35
37
  private constructor();
36
38
  protected addEventListener(): void;
37
39
  protected removeEventListener(): void;
@@ -75,6 +77,7 @@ export declare class Table {
75
77
  private updateHelper;
76
78
  private calMaxCol;
77
79
  private resizing;
80
+ private findFirstLastColCells;
78
81
  private convertPixelToPercentage;
79
82
  private cancelResizeAction;
80
83
  private resizeEnd;