@syncfusion/ej2-richtexteditor 27.1.52 → 27.1.55

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 (37) hide show
  1. package/dist/ej2-richtexteditor.min.js +10 -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 +141 -37
  5. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es5.js +143 -37
  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/editor-manager/base/editor-manager.js +1 -1
  13. package/src/editor-manager/base/interface.d.ts +2 -2
  14. package/src/editor-manager/plugin/clearformat.js +1 -1
  15. package/src/editor-manager/plugin/dom-node.js +1 -1
  16. package/src/editor-manager/plugin/image.js +2 -0
  17. package/src/editor-manager/plugin/inserthtml.d.ts +1 -0
  18. package/src/editor-manager/plugin/inserthtml.js +34 -10
  19. package/src/editor-manager/plugin/link.js +2 -2
  20. package/src/editor-manager/plugin/lists.js +1 -1
  21. package/src/editor-manager/plugin/selection-commands.js +2 -2
  22. package/src/editor-manager/plugin/toolbar-status.js +1 -1
  23. package/src/editor-manager/plugin/undo.js +3 -3
  24. package/src/rich-text-editor/actions/enter-key.js +10 -5
  25. package/src/rich-text-editor/actions/html-editor.js +2 -2
  26. package/src/rich-text-editor/actions/import-export.js +1 -1
  27. package/src/rich-text-editor/actions/paste-clean-up.js +1 -1
  28. package/src/rich-text-editor/actions/resize.d.ts +3 -0
  29. package/src/rich-text-editor/actions/resize.js +13 -0
  30. package/src/rich-text-editor/base/interface.d.ts +13 -1
  31. package/src/rich-text-editor/base/rich-text-editor.js +11 -0
  32. package/src/rich-text-editor/renderer/image-module.js +6 -2
  33. package/src/rich-text-editor/renderer/link-module.js +5 -1
  34. package/src/rich-text-editor/renderer/slash-menu.js +1 -1
  35. package/src/rich-text-editor/renderer/video-module.js +1 -1
  36. package/src/selection/selection.d.ts +5 -0
  37. package/src/selection/selection.js +44 -1
@@ -3,9 +3,10 @@ import { isNullOrUndefined } from '@syncfusion/ej2-base';
3
3
  * `Selection` module is used to handle RTE Selections.
4
4
  */
5
5
  var NodeSelection = /** @class */ (function () {
6
- function NodeSelection() {
6
+ function NodeSelection(editElement) {
7
7
  this.startNodeName = [];
8
8
  this.endNodeName = [];
9
+ this.editableElement = editElement;
9
10
  }
10
11
  NodeSelection.prototype.saveInstance = function (range, body) {
11
12
  this.range = range.cloneRange();
@@ -85,6 +86,9 @@ var NodeSelection = /** @class */ (function () {
85
86
  return false;
86
87
  };
87
88
  NodeSelection.prototype.getNode = function (startNode, endNode, nodeCollection) {
89
+ if (this.editableElement && (!this.editableElement.contains(startNode) || this.editableElement === startNode)) {
90
+ return null;
91
+ }
88
92
  if (endNode === startNode &&
89
93
  (startNode.nodeType === 3 || !startNode.firstChild || nodeCollection.indexOf(startNode.firstChild) !== -1
90
94
  || this.isChildNode(nodeCollection, startNode))) {
@@ -119,6 +123,12 @@ var NodeSelection = /** @class */ (function () {
119
123
  || range.startContainer;
120
124
  var endNode = range.endContainer.childNodes[(range.endOffset > 0) ? (range.endOffset - 1) : range.endOffset]
121
125
  || range.endContainer;
126
+ var tableCursor = this.processedTableImageCursor(range);
127
+ if (tableCursor.start || tableCursor.end) {
128
+ if (tableCursor.startName === 'TABLE' || tableCursor.endName === 'TABLE') {
129
+ return [];
130
+ }
131
+ }
122
132
  if ((startNode === endNode || (startNode.nodeName === 'BR' && startNode === range.endContainer.childNodes[range.endOffset])) &&
123
133
  startNode.childNodes.length === 0) {
124
134
  return [startNode];
@@ -438,6 +448,39 @@ var NodeSelection = /** @class */ (function () {
438
448
  selection.removeAllRanges();
439
449
  selection.addRange(range);
440
450
  };
451
+ NodeSelection.prototype.isTableOrImageStart = function (range) {
452
+ var customHandlerElements = ['TABLE'];
453
+ var startContainer = range.startContainer;
454
+ var startOffset = range.startOffset;
455
+ var isCursorAtStart = range.collapsed && (startContainer.nodeType === 1) &&
456
+ startContainer.isContentEditable && startContainer.childNodes[startOffset] &&
457
+ (customHandlerElements.indexOf(startContainer.childNodes[startOffset].nodeName) > -1);
458
+ if (isCursorAtStart) {
459
+ return { start: isCursorAtStart, startNodeName: startContainer.childNodes[startOffset].nodeName };
460
+ }
461
+ else {
462
+ return { start: false, startNodeName: '' };
463
+ }
464
+ };
465
+ NodeSelection.prototype.isTableOrImageEnd = function (range) {
466
+ var customHandlerElements = ['TABLE'];
467
+ var startContainer = range.startContainer;
468
+ var startOffset = range.startOffset;
469
+ var isCursorAtEnd = range.collapsed && (startContainer.nodeType === 1) &&
470
+ startContainer.isContentEditable && startContainer.childNodes[startOffset - 1] &&
471
+ (customHandlerElements.indexOf(startContainer.childNodes[startOffset - 1].nodeName) > -1);
472
+ if (isCursorAtEnd) {
473
+ return { end: isCursorAtEnd, endNodeName: startContainer.childNodes[startOffset - 1].nodeName };
474
+ }
475
+ else {
476
+ return { end: false, endNodeName: '' };
477
+ }
478
+ };
479
+ NodeSelection.prototype.processedTableImageCursor = function (range) {
480
+ var _a = this.isTableOrImageStart(range), start = _a.start, startNodeName = _a.startNodeName;
481
+ var _b = this.isTableOrImageEnd(range), end = _b.end, endNodeName = _b.endNodeName;
482
+ return { start: start, startName: startNodeName, end: end, endName: endNodeName };
483
+ };
441
484
  return NodeSelection;
442
485
  }());
443
486
  export { NodeSelection };