@syncfusion/ej2-richtexteditor 23.2.6 → 23.2.7

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.
@@ -3340,7 +3340,7 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
3340
3340
  };
3341
3341
  ToolbarRenderer.prototype.destroyTooltip = function () {
3342
3342
  if (!isNullOrUndefined(document.querySelector('.e-tooltip-wrap')) && !isNullOrUndefined(document.querySelector(' [data-tooltip-id]'))) {
3343
- var tooltipTargetEle = document.querySelector('#' + (this.parent.element).id + ' [data-tooltip-id]');
3343
+ var tooltipTargetEle = this.parent.element.querySelector('[data-tooltip-id]');
3344
3344
  var event_1 = new MouseEvent('mouseleave', { bubbles: true, cancelable: true });
3345
3345
  tooltipTargetEle.dispatchEvent(event_1);
3346
3346
  }
@@ -3501,17 +3501,86 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
3501
3501
  return;
3502
3502
  }
3503
3503
  // eslint-disable-next-line
3504
- for (var index = 0; index < args.element.childNodes.length; index++) {
3505
- var divNode = _this.parent.createElement('div');
3506
- divNode.innerHTML = dropDown.content.trim();
3507
- if (divNode.textContent.trim() !== ''
3508
- && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) {
3509
- if (!args.element.childNodes[index].classList.contains('e-active')) {
3510
- addClass([args.element.childNodes[index]], 'e-active');
3504
+ // Table styles dropdown preselect
3505
+ if (proxy.parent.editorMode !== 'Markdown') {
3506
+ var startNode = proxy.parent.getRange().startContainer.parentElement;
3507
+ var tableEle = startNode.closest('table');
3508
+ var trow = startNode.closest('tr');
3509
+ if (!isNullOrUndefined(tableEle) && tableEle.classList.contains('e-dashed-border')) {
3510
+ for (var index = 0; index < args.element.childNodes.length; index++) {
3511
+ if (args.element.childNodes[index].classList.contains('e-dashed-borders')) {
3512
+ addClass([args.element.childNodes[index]], 'e-active');
3513
+ }
3511
3514
  }
3512
3515
  }
3513
- else {
3514
- removeClass([args.element.childNodes[index]], 'e-active');
3516
+ else if (!isNullOrUndefined(tableEle) && !tableEle.classList.contains('e-dashed-border') && tableEle.classList.contains('e-alternate-rows') && window.getComputedStyle(trow).backgroundColor !== '') {
3517
+ for (var index = 0; index < args.element.childNodes.length; index++) {
3518
+ if (args.element.childNodes[index].classList.contains('e-alternate-rows')) {
3519
+ addClass([args.element.childNodes[index]], 'e-active');
3520
+ }
3521
+ }
3522
+ }
3523
+ //Alignments preselect
3524
+ var alignEle = proxy.parent.getRange().startContainer;
3525
+ while (alignEle !== proxy.parent.element.querySelector('.e-content') && !isNullOrUndefined(alignEle.parentElement)) {
3526
+ if (alignEle.nodeName === '#text') {
3527
+ alignEle = alignEle.parentElement;
3528
+ }
3529
+ var alignStyle = window.getComputedStyle(alignEle).textAlign;
3530
+ if (args.items[0].command === 'Alignments') {
3531
+ if ((args.items[0].text === 'Align Left' && (alignStyle === 'left') || alignStyle === 'start')) {
3532
+ addClass([args.element.childNodes[0]], 'e-active');
3533
+ break;
3534
+ }
3535
+ else if (args.items[1].text === 'Align Center' && alignStyle === 'center') {
3536
+ addClass([args.element.childNodes[1]], 'e-active');
3537
+ break;
3538
+ }
3539
+ else if (args.items[2].text === 'Align Right' && alignStyle === 'right') {
3540
+ addClass([args.element.childNodes[2]], 'e-active');
3541
+ break;
3542
+ }
3543
+ else if (args.items[3].text === 'Align Justify' && alignStyle === 'justify') {
3544
+ addClass([args.element.childNodes[3]], 'e-active');
3545
+ break;
3546
+ }
3547
+ }
3548
+ alignEle = alignEle.parentElement;
3549
+ }
3550
+ //image preselect
3551
+ var imageEle = startNode.closest('img') ? startNode.closest('img') : startNode.querySelector('img');
3552
+ if (args.items[0].command === 'Images') {
3553
+ if (!isNullOrUndefined(imageEle)) {
3554
+ var index = void 0;
3555
+ if (imageEle.classList.contains('e-imgleft') || imageEle.classList.contains('e-imginline')) {
3556
+ index = 0;
3557
+ }
3558
+ else if (imageEle.classList.contains('e-imgcenter') || imageEle.classList.contains('e-imgbreak')) {
3559
+ index = 1;
3560
+ }
3561
+ else if (imageEle.classList.contains('e-imgright')) {
3562
+ index = 2;
3563
+ }
3564
+ if (!isNullOrUndefined(args.element.childNodes[index])) {
3565
+ addClass([args.element.childNodes[index]], 'e-active');
3566
+ }
3567
+ }
3568
+ }
3569
+ //Formats preselect
3570
+ if (args.items[0].command === 'Formats') {
3571
+ for (var index = 0; index < args.element.childNodes.length; index++) {
3572
+ var divNode = _this.parent.createElement('div');
3573
+ divNode.innerHTML = dropDown.content.trim();
3574
+ if (divNode.textContent.trim() !== ''
3575
+ && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) {
3576
+ if (!args.element.childNodes[index].classList.contains('e-active')) {
3577
+ addClass([args.element.childNodes[index]], 'e-active');
3578
+ }
3579
+ }
3580
+ else {
3581
+ removeClass([args.element.childNodes[index]], 'e-active');
3582
+ }
3583
+ }
3515
3584
  }
3516
3585
  }
3517
3586
  proxy.parent.notify(beforeDropDownOpen, args);
@@ -13684,7 +13753,9 @@ var InsertHtml = /** @__PURE__ @class */ (function () {
13684
13753
  InsertHtml.findDetachEmptyElem = function (element) {
13685
13754
  var removableElement;
13686
13755
  if (!isNullOrUndefined(element.parentElement)) {
13687
- if (element.parentElement.textContent.trim() === '' && element.parentElement.contentEditable !== 'true' &&
13756
+ var hasNbsp = element.parentElement.textContent.length > 0 && element.parentElement.textContent.match(/\u00a0/g)
13757
+ && element.parentElement.textContent.match(/\u00a0/g).length > 0;
13758
+ if (!hasNbsp && element.parentElement.textContent.trim() === '' && element.parentElement.contentEditable !== 'true' &&
13688
13759
  isNullOrUndefined(element.parentElement.querySelector('img'))) {
13689
13760
  removableElement = this.findDetachEmptyElem(element.parentElement);
13690
13761
  }
@@ -17939,7 +18010,9 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17939
18010
  isNullOrUndefined(allElements[i].nextElementSibling)))) {
17940
18011
  var detachableElement = this.findDetachElem(allElements[i]);
17941
18012
  var brElement = createElement('br');
17942
- if (!isNullOrUndefined(detachableElement.parentElement)) {
18013
+ var hasNbsp = detachableElement.textContent.length > 0 && detachableElement.textContent.match(/\u00a0/g)
18014
+ && detachableElement.textContent.match(/\u00a0/g).length > 0;
18015
+ if (!hasNbsp && !isNullOrUndefined(detachableElement.parentElement)) {
17943
18016
  detachableElement.parentElement.insertBefore(brElement, detachableElement);
17944
18017
  detach(detachableElement);
17945
18018
  }
@@ -17978,7 +18051,9 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17978
18051
  MsWordPaste.prototype.findDetachEmptyElem = function (element) {
17979
18052
  var removableElement;
17980
18053
  if (!isNullOrUndefined(element.parentElement)) {
17981
- if (element.parentElement.textContent.trim() === '' &&
18054
+ var hasNbsp = element.parentElement.textContent.length > 0 && element.parentElement.textContent.match(/\u00a0/g)
18055
+ && element.parentElement.textContent.match(/\u00a0/g).length > 0;
18056
+ if (!hasNbsp && element.parentElement.textContent.trim() === '' &&
17982
18057
  element.parentElement.getAttribute('id') !== 'MSWord-Content' &&
17983
18058
  !(this.hasParentWithClass(element, 'MsoListParagraph')) &&
17984
18059
  isNullOrUndefined(element.parentElement.querySelector('img'))) {
@@ -21345,7 +21420,7 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21345
21420
  var popupEle = this.parent.createElement('div');
21346
21421
  this.parent.element.appendChild(popupEle);
21347
21422
  var contentEle = this.parent.createElement('input', {
21348
- id: this.parent.element.id + '_upload', attrs: { type: 'File', name: 'UploadFiles' }
21423
+ id: this.parent.getID() + '_upload', attrs: { type: 'File', name: 'UploadFiles' }
21349
21424
  });
21350
21425
  var offsetY = this.parent.iframeSettings.enable ? -50 : -90;
21351
21426
  this.popupObj = new Popup(popupEle, {
@@ -21973,7 +22048,9 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21973
22048
  PasteCleanup.prototype.findDetachEmptyElem = function (element) {
21974
22049
  var removableElement;
21975
22050
  if (!isNullOrUndefined(element.parentElement)) {
21976
- if (element.parentElement.textContent.trim() === '' &&
22051
+ var hasNbsp = element.parentElement.textContent.length > 0 && element.parentElement.textContent.match(/\u00a0/g)
22052
+ && element.parentElement.textContent.match(/\u00a0/g).length > 0;
22053
+ if (!hasNbsp && element.parentElement.textContent.trim() === '' &&
21977
22054
  element.parentElement.getAttribute('class') !== 'pasteContent') {
21978
22055
  removableElement = this.findDetachEmptyElem(element.parentElement);
21979
22056
  }
@@ -25330,7 +25407,6 @@ var Image$1 = /** @__PURE__ @class */ (function () {
25330
25407
  width: '290px',
25331
25408
  header: this.parent.localeObj.getConstant('imageInsertLinkHeader'),
25332
25409
  content: linkWrap,
25333
- position: { X: 'center', Y: 'center' },
25334
25410
  buttons: [{
25335
25411
  // eslint-disable-next-line
25336
25412
  click: function (e) {
@@ -25380,7 +25456,7 @@ var Image$1 = /** @__PURE__ @class */ (function () {
25380
25456
  alt: inputAlt
25381
25457
  };
25382
25458
  this.dialogObj.setProperties({
25383
- height: 'inherit', width: '290px', header: altHeader, content: altWrap, position: { X: 'center', Y: 'center' },
25459
+ height: 'inherit', width: '290px', header: altHeader, content: altWrap,
25384
25460
  buttons: [{
25385
25461
  // eslint-disable-next-line
25386
25462
  click: function (e) {
@@ -25607,7 +25683,7 @@ var Image$1 = /** @__PURE__ @class */ (function () {
25607
25683
  var dialogContent = this.imgsizeInput(e);
25608
25684
  var selectObj_1 = { args: e.args, selfImage: this, selection: e.selection, selectNode: e.selectNode };
25609
25685
  this.dialogObj.setProperties({
25610
- height: (Browser.isDevice) ? '300px' : 'inherit', width: '290px', header: imgSizeHeader, content: dialogContent, position: { X: 'center', Y: 'center' },
25686
+ height: (Browser.isDevice) ? '300px' : 'inherit', width: '290px', header: imgSizeHeader, content: dialogContent,
25611
25687
  buttons: [{
25612
25688
  // eslint-disable-next-line
25613
25689
  click: function (e) {
@@ -25673,7 +25749,6 @@ var Image$1 = /** @__PURE__ @class */ (function () {
25673
25749
  enableRtl: this.parent.enableRtl,
25674
25750
  locale: this.parent.locale,
25675
25751
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
25676
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
25677
25752
  isModal: Browser.isDevice,
25678
25753
  buttons: [{
25679
25754
  click: this.insertImageUrl.bind(selectObj),
@@ -27167,7 +27242,6 @@ var Audio = /** @__PURE__ @class */ (function () {
27167
27242
  enableRtl: this.parent.enableRtl,
27168
27243
  locale: this.parent.locale,
27169
27244
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
27170
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
27171
27245
  isModal: Browser.isDevice,
27172
27246
  buttons: [{
27173
27247
  click: this.insertAudioUrl.bind(selectObj),
@@ -27600,7 +27674,7 @@ var Video = /** @__PURE__ @class */ (function () {
27600
27674
  var dialogContent = this.vidsizeInput(e);
27601
27675
  var selectObj_1 = { args: e.args, selfVideo: this, selection: e.selection, selectNode: e.selectNode };
27602
27676
  this.dialogObj.setProperties({
27603
- height: 'inherit', width: '290px', header: vidSizeHeader, content: dialogContent, position: { X: 'center', Y: 'center' },
27677
+ height: 'inherit', width: '290px', header: vidSizeHeader, content: dialogContent,
27604
27678
  buttons: [{
27605
27679
  // eslint-disable-next-line
27606
27680
  click: function (e) {
@@ -28505,7 +28579,6 @@ var Video = /** @__PURE__ @class */ (function () {
28505
28579
  enableRtl: this.parent.enableRtl,
28506
28580
  locale: this.parent.locale,
28507
28581
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
28508
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
28509
28582
  isModal: Browser.isDevice,
28510
28583
  buttons: [{
28511
28584
  click: this.insertVideoUrl.bind(selectObj),
@@ -28988,13 +29061,13 @@ var ViewSource = /** @__PURE__ @class */ (function () {
28988
29061
  this.parent.updateValueData();
28989
29062
  if (this.parent.iframeSettings.enable) {
28990
29063
  var rteContent = void 0;
28991
- if (isNullOrUndefined(this.parent.element.querySelector('#' + this.parent.element.id + '_source-view'))) {
29064
+ if (isNullOrUndefined(this.parent.element.querySelector('#' + this.parent.getID() + '_source-view'))) {
28992
29065
  rteContent = this.parent.createElement('div', {
28993
- className: 'e-source-content', id: this.parent.element.id + '_source-view'
29066
+ className: 'e-source-content', id: this.parent.getID() + '_source-view'
28994
29067
  });
28995
29068
  }
28996
29069
  else {
28997
- rteContent = this.parent.element.querySelector('#' + this.parent.element.id + '_source-view');
29070
+ rteContent = this.parent.element.querySelector('#' + this.parent.getID() + '_source-view');
28998
29071
  }
28999
29072
  rteContent.appendChild(this.previewElement);
29000
29073
  this.parent.element.appendChild(rteContent);
@@ -29175,6 +29248,7 @@ var Table = /** @__PURE__ @class */ (function () {
29175
29248
  this.parent.on(tableToolbarAction, this.onToolbarAction, this);
29176
29249
  this.parent.on(dropDownSelect, this.dropdownSelect, this);
29177
29250
  this.parent.on(keyDown, this.keyDown, this);
29251
+ this.parent.on(keyUp, this.keyUp, this);
29178
29252
  this.parent.on(mouseUp, this.selectionTable, this);
29179
29253
  this.parent.on(tableModulekeyUp, this.tableModulekeyUp, this);
29180
29254
  this.parent.on(bindCssClass, this.setCssClass, this);
@@ -29197,6 +29271,7 @@ var Table = /** @__PURE__ @class */ (function () {
29197
29271
  this.parent.off(dropDownSelect, this.dropdownSelect);
29198
29272
  this.parent.off(mouseDown, this.cellSelect);
29199
29273
  this.parent.off(tableColorPickerChanged, this.setBGColor);
29274
+ this.parent.off(keyUp, this.keyUp);
29200
29275
  this.parent.off(keyDown, this.keyDown);
29201
29276
  this.parent.off(mouseUp, this.selectionTable);
29202
29277
  this.parent.off(tableModulekeyUp, this.tableModulekeyUp);
@@ -29301,6 +29376,12 @@ var Table = /** @__PURE__ @class */ (function () {
29301
29376
  this.parent.formatter.process(this.parent, e, e, { selection: selectCell, subCommand: e.item.subCommand });
29302
29377
  this.hideTableQuickToolbar();
29303
29378
  };
29379
+ Table.prototype.keyUp = function (e) {
29380
+ var target = e.args.target;
29381
+ if (e.args.key.toLocaleLowerCase() === 'escape' && target && target.classList && (this.popupObj && !closest(target, '[id=' + "'" + this.popupObj.element.id + "'" + ']')) && this.popupObj) {
29382
+ this.popupObj.hide();
29383
+ }
29384
+ };
29304
29385
  Table.prototype.keyDown = function (e) {
29305
29386
  var event = e.args;
29306
29387
  // eslint-disable-next-line
@@ -30708,6 +30789,7 @@ var DialogRenderer = /** @__PURE__ @class */ (function () {
30708
30789
  var dlgObj;
30709
30790
  e.beforeOpen = this.beforeOpen.bind(this);
30710
30791
  e.open = this.open.bind(this);
30792
+ e.position = { X: 'center', Y: this.getDialogPosition() };
30711
30793
  if (isNullOrUndefined(e.close)) {
30712
30794
  e.close = this.close.bind(this);
30713
30795
  }
@@ -30752,6 +30834,16 @@ var DialogRenderer = /** @__PURE__ @class */ (function () {
30752
30834
  }
30753
30835
  });
30754
30836
  };
30837
+ DialogRenderer.prototype.getDialogPosition = function () {
30838
+ var distanceFromVisibleTop = this.parent.element.getBoundingClientRect().top;
30839
+ if (distanceFromVisibleTop < 0) {
30840
+ distanceFromVisibleTop = Math.abs(distanceFromVisibleTop);
30841
+ return distanceFromVisibleTop.toString();
30842
+ }
30843
+ else {
30844
+ return 'top';
30845
+ }
30846
+ };
30755
30847
  /**
30756
30848
  * dialog close method
30757
30849
  *
@@ -31945,7 +32037,7 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
31945
32037
  var newElem = void 0;
31946
32038
  var outerBRElem = _this.parent.createElement('br');
31947
32039
  if (_this.range.startOffset === 0 && _this.range.endOffset === 0 &&
31948
- !isNullOrUndefined(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR') {
32040
+ !isNullOrUndefined(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR' && currentParent.nodeName !== 'P' && currentParent.nodeName !== 'DIV') {
31949
32041
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
31950
32042
  newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, currentParent, false).cloneNode(true);
31951
32043
  _this.parent.formatter.editorManager.domNode.insertAfter(outerBRElem, currentParent);