@syncfusion/ej2-richtexteditor 20.4.42 → 20.4.44
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.
- package/CHANGELOG.md +26 -0
- package/dist/ej2-richtexteditor.min.js +2 -2
- package/dist/ej2-richtexteditor.umd.min.js +2 -2
- package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es2015.js +142 -68
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +142 -68
- package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
- package/dist/global/ej2-richtexteditor.min.js +2 -2
- package/dist/global/ej2-richtexteditor.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +10 -10
- package/src/editor-manager/plugin/inserthtml.js +48 -38
- package/src/editor-manager/plugin/lists.js +6 -1
- package/src/editor-manager/plugin/selection-commands.js +57 -17
- package/src/rich-text-editor/actions/html-editor.js +4 -2
- package/src/rich-text-editor/base/rich-text-editor-model.d.ts +2 -2
- package/src/rich-text-editor/base/rich-text-editor.d.ts +2 -2
- package/src/rich-text-editor/base/rich-text-editor.js +4 -4
- package/src/rich-text-editor/renderer/audio-module.js +4 -1
- package/src/rich-text-editor/renderer/image-module.js +8 -1
- package/src/rich-text-editor/renderer/table-module.js +7 -3
- package/src/rich-text-editor/renderer/video-module.js +4 -1
|
@@ -11182,7 +11182,7 @@ class Lists {
|
|
|
11182
11182
|
range.startContainer.parentElement.closest('LI');
|
|
11183
11183
|
const endNode = range.endContainer.nodeName === 'LI' ? range.endContainer :
|
|
11184
11184
|
range.endContainer.parentElement.closest('LI');
|
|
11185
|
-
// Checks for Image, Audio , Video Element inside List Element
|
|
11185
|
+
// Checks for Image, Audio , Video Element inside List Element
|
|
11186
11186
|
let hasMediaElem = false;
|
|
11187
11187
|
if (!isNullOrUndefined(startNode)) {
|
|
11188
11188
|
const videoElemList = startNode.querySelectorAll('.e-video-clickelem');
|
|
@@ -11809,6 +11809,11 @@ class Lists {
|
|
|
11809
11809
|
}
|
|
11810
11810
|
node.parentNode.removeChild(node);
|
|
11811
11811
|
}
|
|
11812
|
+
else if (!isNullOrUndefined(node.getAttribute('level'))) {
|
|
11813
|
+
if (node.tagName === node.previousElementSibling.tagName) {
|
|
11814
|
+
node.previousElementSibling.lastChild.append(node);
|
|
11815
|
+
}
|
|
11816
|
+
}
|
|
11812
11817
|
}
|
|
11813
11818
|
}
|
|
11814
11819
|
findUnSelected(temp, elements) {
|
|
@@ -12848,52 +12853,62 @@ class InsertHtml {
|
|
|
12848
12853
|
}
|
|
12849
12854
|
}
|
|
12850
12855
|
else {
|
|
12851
|
-
|
|
12852
|
-
|
|
12853
|
-
|
|
12854
|
-
|
|
12855
|
-
|
|
12856
|
-
|
|
12857
|
-
|
|
12858
|
-
}
|
|
12859
|
-
|
|
12860
|
-
|
|
12861
|
-
|
|
12862
|
-
|
|
12856
|
+
let parentElem = range.startContainer;
|
|
12857
|
+
while (!isNullOrUndefined(parentElem) && parentElem.nodeName !== 'PRE' && parentElem !== editNode) {
|
|
12858
|
+
parentElem = parentElem.parentElement;
|
|
12859
|
+
}
|
|
12860
|
+
if (!isNullOrUndefined(node) && !isNullOrUndefined(parentElem) && parentElem.nodeName === 'PRE') {
|
|
12861
|
+
range.insertNode(node);
|
|
12862
|
+
lastSelectionNode = node.lastChild;
|
|
12863
|
+
}
|
|
12864
|
+
else {
|
|
12865
|
+
this.insertTempNode(range, node, nodes, nodeCutter, editNode);
|
|
12866
|
+
let isFirstTextNode = true;
|
|
12867
|
+
let isPreviousInlineElem;
|
|
12868
|
+
let paraElm;
|
|
12869
|
+
let previousParent;
|
|
12870
|
+
if (!this.contentsDeleted) {
|
|
12871
|
+
range.deleteContents();
|
|
12863
12872
|
}
|
|
12864
|
-
|
|
12865
|
-
(
|
|
12866
|
-
|
|
12867
|
-
|
|
12868
|
-
const firstParaElm = createElement('p');
|
|
12869
|
-
node.parentElement.insertBefore(firstParaElm, node);
|
|
12873
|
+
while (node.firstChild) {
|
|
12874
|
+
if (node.firstChild.nodeName === '#text' && node.firstChild.textContent.trim() === '') {
|
|
12875
|
+
detach(node.firstChild);
|
|
12876
|
+
continue;
|
|
12870
12877
|
}
|
|
12871
|
-
|
|
12872
|
-
|
|
12873
|
-
|
|
12874
|
-
|
|
12875
|
-
|
|
12876
|
-
|
|
12877
|
-
if (!isPreviousInlineElem) {
|
|
12878
|
-
paraElm = createElement('p');
|
|
12879
|
-
paraElm.appendChild(node.firstChild);
|
|
12880
|
-
fragment.appendChild(paraElm);
|
|
12878
|
+
if (node.firstChild.nodeName === '#text' && isFirstTextNode ||
|
|
12879
|
+
(this.inlineNode.indexOf(node.firstChild.nodeName.toLocaleLowerCase()) >= 0 && isFirstTextNode)) {
|
|
12880
|
+
lastSelectionNode = node.firstChild;
|
|
12881
|
+
if (isNullOrUndefined(node.previousElementSibling)) {
|
|
12882
|
+
const firstParaElm = createElement('p');
|
|
12883
|
+
node.parentElement.insertBefore(firstParaElm, node);
|
|
12881
12884
|
}
|
|
12882
|
-
|
|
12883
|
-
previousParent.appendChild(node.firstChild);
|
|
12884
|
-
fragment.appendChild(previousParent);
|
|
12885
|
-
}
|
|
12886
|
-
previousParent = paraElm;
|
|
12887
|
-
isPreviousInlineElem = true;
|
|
12885
|
+
node.previousElementSibling.appendChild(node.firstChild);
|
|
12888
12886
|
}
|
|
12889
12887
|
else {
|
|
12890
|
-
|
|
12891
|
-
|
|
12888
|
+
lastSelectionNode = node.firstChild;
|
|
12889
|
+
if (node.firstChild.nodeName === '#text' ||
|
|
12890
|
+
(this.inlineNode.indexOf(node.firstChild.nodeName.toLocaleLowerCase()) >= 0)) {
|
|
12891
|
+
if (!isPreviousInlineElem) {
|
|
12892
|
+
paraElm = createElement('p');
|
|
12893
|
+
paraElm.appendChild(node.firstChild);
|
|
12894
|
+
fragment.appendChild(paraElm);
|
|
12895
|
+
}
|
|
12896
|
+
else {
|
|
12897
|
+
previousParent.appendChild(node.firstChild);
|
|
12898
|
+
fragment.appendChild(previousParent);
|
|
12899
|
+
}
|
|
12900
|
+
previousParent = paraElm;
|
|
12901
|
+
isPreviousInlineElem = true;
|
|
12902
|
+
}
|
|
12903
|
+
else {
|
|
12904
|
+
fragment.appendChild(node.firstChild);
|
|
12905
|
+
isPreviousInlineElem = false;
|
|
12906
|
+
}
|
|
12907
|
+
isFirstTextNode = false;
|
|
12892
12908
|
}
|
|
12893
|
-
isFirstTextNode = false;
|
|
12894
12909
|
}
|
|
12910
|
+
node.parentNode.replaceChild(fragment, node);
|
|
12895
12911
|
}
|
|
12896
|
-
node.parentNode.replaceChild(fragment, node);
|
|
12897
12912
|
}
|
|
12898
12913
|
if (lastSelectionNode.nodeName === '#text') {
|
|
12899
12914
|
this.placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode);
|
|
@@ -15612,14 +15627,17 @@ class SelectionCommands {
|
|
|
15612
15627
|
isSubSup = formatNode === null ? false : true;
|
|
15613
15628
|
}
|
|
15614
15629
|
}
|
|
15630
|
+
else if ((format === 'fontsize' || format === 'fontname' || format === 'fontcolor') && range.startContainer.parentElement === endNode) {
|
|
15631
|
+
formatNode = null;
|
|
15632
|
+
}
|
|
15615
15633
|
if (index === 0 && formatNode === null) {
|
|
15616
15634
|
isFormat = true;
|
|
15617
15635
|
}
|
|
15618
15636
|
if (formatNode !== null && (!isFormat || isFontStyle)) {
|
|
15619
15637
|
nodes[index] = this.removeFormat(nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domSelection, endNode, domNode);
|
|
15620
15638
|
}
|
|
15621
|
-
else {
|
|
15622
|
-
nodes[index] = this.insertFormat(docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value);
|
|
15639
|
+
else if (range.startContainer.parentElement !== endNode || (range.commonAncestorContainer === endNode || nodes.length === 1)) {
|
|
15640
|
+
nodes[index] = this.insertFormat(docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domNode, endNode);
|
|
15623
15641
|
}
|
|
15624
15642
|
domSelection = this.applySelection(nodes, domSelection, nodeCutter, index, isCollapsed);
|
|
15625
15643
|
}
|
|
@@ -15874,10 +15892,24 @@ class SelectionCommands {
|
|
|
15874
15892
|
}
|
|
15875
15893
|
return nodes[index];
|
|
15876
15894
|
}
|
|
15877
|
-
static insertFormat(docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value) {
|
|
15895
|
+
static insertFormat(docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domNode, endNode) {
|
|
15896
|
+
let rootBlockNode;
|
|
15878
15897
|
if (!isCursor) {
|
|
15879
15898
|
if ((formatNode === null && isFormat) || isFontStyle) {
|
|
15880
15899
|
if (nodes[index].nodeName !== 'BR') {
|
|
15900
|
+
if (format === 'fontsize' || format === 'fontname' || format === 'fontcolor') {
|
|
15901
|
+
let rangeNode = nodes[index];
|
|
15902
|
+
while (rangeNode && !domNode.isBlockNode(rangeNode) && rangeNode !== endNode) {
|
|
15903
|
+
if (domNode.isBlockNode(rangeNode.parentElement)) {
|
|
15904
|
+
rootBlockNode = rangeNode;
|
|
15905
|
+
}
|
|
15906
|
+
rangeNode = rangeNode.parentElement;
|
|
15907
|
+
}
|
|
15908
|
+
if (rootBlockNode && rootBlockNode.nodeType !== 3) {
|
|
15909
|
+
nodeCutter.SplitNode(range, rootBlockNode, true).cloneNode(true);
|
|
15910
|
+
nodeCutter.SplitNode(range, rootBlockNode, false).cloneNode(false);
|
|
15911
|
+
}
|
|
15912
|
+
}
|
|
15881
15913
|
nodes[index] = nodeCutter.GetSpliceNode(range, nodes[index]);
|
|
15882
15914
|
nodes[index].textContent = nodeCutter.TrimLineBreak(nodes[index].textContent);
|
|
15883
15915
|
}
|
|
@@ -15887,24 +15919,47 @@ class SelectionCommands {
|
|
|
15887
15919
|
}
|
|
15888
15920
|
else if (!(isFontStyle === true && value === '')) {
|
|
15889
15921
|
const element = this.GetFormatNode(format, value);
|
|
15890
|
-
if (format === 'fontsize' || format === 'fontcolor') {
|
|
15891
|
-
|
|
15892
|
-
|
|
15893
|
-
|
|
15894
|
-
parentElement
|
|
15895
|
-
|
|
15922
|
+
if (format === 'fontsize' || format === 'fontcolor' || format === 'fontname') {
|
|
15923
|
+
if (format !== 'fontname') {
|
|
15924
|
+
let liElement = nodes[index].parentElement;
|
|
15925
|
+
let parentElement = nodes[index].parentElement;
|
|
15926
|
+
while (!isNullOrUndefined(parentElement) && parentElement.tagName.toLowerCase() !== 'li') {
|
|
15927
|
+
parentElement = parentElement.parentElement;
|
|
15928
|
+
liElement = parentElement;
|
|
15929
|
+
}
|
|
15930
|
+
if (!isNullOrUndefined(liElement) && liElement.tagName.toLowerCase() === 'li' &&
|
|
15931
|
+
liElement.textContent.trim() === nodes[index].textContent.trim()) {
|
|
15932
|
+
if (format === 'fontsize') {
|
|
15933
|
+
liElement.style.fontSize = value;
|
|
15934
|
+
}
|
|
15935
|
+
else {
|
|
15936
|
+
liElement.style.color = value;
|
|
15937
|
+
liElement.style.textDecoration = 'inherit';
|
|
15938
|
+
}
|
|
15939
|
+
}
|
|
15896
15940
|
}
|
|
15897
|
-
if (
|
|
15898
|
-
|
|
15899
|
-
|
|
15900
|
-
|
|
15941
|
+
if (rootBlockNode && rootBlockNode.nodeType !== 3) {
|
|
15942
|
+
const save = new NodeSelection();
|
|
15943
|
+
save.save(range, docElement);
|
|
15944
|
+
domNode.setMarker(save);
|
|
15945
|
+
var cloneNode = rootBlockNode.cloneNode(true);
|
|
15946
|
+
element.appendChild(cloneNode);
|
|
15947
|
+
domNode.replaceWith(rootBlockNode, element.outerHTML);
|
|
15948
|
+
const currentStartNode = endNode.querySelector('.e-editor-select-start');
|
|
15949
|
+
const currrentEndNode = endNode.querySelector('.e-editor-select-end');
|
|
15950
|
+
if (index === 0) {
|
|
15951
|
+
nodes[index] = currentStartNode ? currentStartNode.lastChild : nodes[index];
|
|
15901
15952
|
}
|
|
15902
|
-
|
|
15903
|
-
|
|
15904
|
-
|
|
15953
|
+
if (range.startContainer.parentElement === endNode) {
|
|
15954
|
+
if (nodes.length > 1) {
|
|
15955
|
+
nodes[nodes.length - 1] = currrentEndNode ? currrentEndNode.lastChild : nodes[index];
|
|
15956
|
+
}
|
|
15905
15957
|
}
|
|
15958
|
+
domNode.saveMarker(save, null);
|
|
15959
|
+
}
|
|
15960
|
+
else {
|
|
15961
|
+
nodes[index] = this.applyStyles(nodes, index, element);
|
|
15906
15962
|
}
|
|
15907
|
-
nodes[index] = this.applyStyles(nodes, index, element);
|
|
15908
15963
|
if (format === 'fontsize') {
|
|
15909
15964
|
const bg = closest(nodes[index].parentElement, 'span[style*=' + 'background-color' + ']');
|
|
15910
15965
|
if (!isNullOrUndefined(bg)) {
|
|
@@ -18500,10 +18555,12 @@ class HtmlEditor {
|
|
|
18500
18555
|
// eslint-disable-next-line
|
|
18501
18556
|
const regEx = new RegExp(String.fromCharCode(8203), 'g');
|
|
18502
18557
|
let pointer;
|
|
18558
|
+
let isRootParent = false;
|
|
18503
18559
|
if (restrictKeys.indexOf(args.keyCode) < 0 && !args.shiftKey && !args.ctrlKey && !args.altKey) {
|
|
18504
18560
|
pointer = range.startOffset;
|
|
18505
18561
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
18506
|
-
range.startContainer.nodeName === '#text' ? range.startContainer.parentElement.
|
|
18562
|
+
range.startContainer.nodeName === '#text' ? range.startContainer.parentElement !== this.parent.inputElement ? range.startContainer.parentElement.classList.add('currentStartMark')
|
|
18563
|
+
: isRootParent = true : range.startContainer.classList.add('currentStartMark');
|
|
18507
18564
|
if (range.startContainer.textContent.charCodeAt(0) === 8203) {
|
|
18508
18565
|
pointer = range.startOffset === 0 ? range.startOffset : range.startOffset - 1;
|
|
18509
18566
|
range.startContainer.textContent = range.startContainer.textContent.replace(regEx, '');
|
|
@@ -18512,7 +18569,7 @@ class HtmlEditor {
|
|
|
18512
18569
|
const previousLength = this.parent.inputElement.innerHTML.length;
|
|
18513
18570
|
const currentLength = this.parent.inputElement.innerHTML.replace(regEx, '').length;
|
|
18514
18571
|
let focusNode = range.startContainer;
|
|
18515
|
-
if (previousLength > currentLength) {
|
|
18572
|
+
if (previousLength > currentLength && !isRootParent) {
|
|
18516
18573
|
let currentChild = this.parent.inputElement.firstChild;
|
|
18517
18574
|
while (!isNullOrUndefined(currentChild) && currentChild.textContent.replace(regEx, '').trim().length > 0) {
|
|
18518
18575
|
currentChild.innerHTML = currentChild.innerHTML.replace(regEx, '');
|
|
@@ -21784,6 +21841,10 @@ class Image {
|
|
|
21784
21841
|
});
|
|
21785
21842
|
}
|
|
21786
21843
|
resizing(e) {
|
|
21844
|
+
if (!this.parent) {
|
|
21845
|
+
this.cancelResizeAction();
|
|
21846
|
+
return;
|
|
21847
|
+
}
|
|
21787
21848
|
if (this.imgEle.offsetWidth >= this.parent.getInsertImgMaxWidth()) {
|
|
21788
21849
|
this.imgEle.style.maxHeight = this.imgEle.offsetHeight + 'px';
|
|
21789
21850
|
}
|
|
@@ -21947,7 +22008,6 @@ class Image {
|
|
|
21947
22008
|
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) &&
|
|
21948
22009
|
originalEvent.code !== 'KeyK') {
|
|
21949
22010
|
range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
|
|
21950
|
-
save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
|
|
21951
22011
|
selectNodeEle = this.parent.formatter.editorManager.nodeSelection.getNodeCollection(range);
|
|
21952
22012
|
selectParentEle = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
|
|
21953
22013
|
if (!originalEvent.ctrlKey && originalEvent.key && (originalEvent.key.length === 1 || originalEvent.action === 'enter') &&
|
|
@@ -21966,6 +22026,8 @@ class Image {
|
|
|
21966
22026
|
}
|
|
21967
22027
|
if (originalEvent.keyCode === 8 || originalEvent.keyCode === 46) {
|
|
21968
22028
|
if (selectNodeEle && selectNodeEle[0].nodeName === 'IMG' && selectNodeEle.length < 1) {
|
|
22029
|
+
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
|
|
22030
|
+
save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
|
|
21969
22031
|
originalEvent.preventDefault();
|
|
21970
22032
|
const event = {
|
|
21971
22033
|
selectNode: selectNodeEle, selection: save, selectParent: selectParentEle,
|
|
@@ -22024,6 +22086,8 @@ class Image {
|
|
|
22024
22086
|
}
|
|
22025
22087
|
break;
|
|
22026
22088
|
case 'insert-image':
|
|
22089
|
+
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
|
|
22090
|
+
save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
|
|
22027
22091
|
this.openDialog(true, originalEvent, save, selectNodeEle, selectParentEle);
|
|
22028
22092
|
originalEvent.preventDefault();
|
|
22029
22093
|
break;
|
|
@@ -23795,7 +23859,6 @@ class Audio {
|
|
|
23795
23859
|
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) &&
|
|
23796
23860
|
originalEvent.code !== 'KeyK') {
|
|
23797
23861
|
range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
|
|
23798
|
-
save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
|
|
23799
23862
|
selectNodeEle = this.parent.formatter.editorManager.nodeSelection.getNodeCollection(range);
|
|
23800
23863
|
selectParentEle = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
|
|
23801
23864
|
if (!originalEvent.ctrlKey && originalEvent.key && (originalEvent.key.length === 1 || originalEvent.action === 'enter') &&
|
|
@@ -23811,6 +23874,8 @@ class Audio {
|
|
|
23811
23874
|
}
|
|
23812
23875
|
if (originalEvent.keyCode === 8 || originalEvent.keyCode === 46) {
|
|
23813
23876
|
if (selectNodeEle && this.isAudioElem(selectNodeEle[0]) && selectNodeEle.length < 1) {
|
|
23877
|
+
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
|
|
23878
|
+
save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
|
|
23814
23879
|
originalEvent.preventDefault();
|
|
23815
23880
|
const event = {
|
|
23816
23881
|
selectNode: selectNodeEle, selection: save, selectParent: selectParentEle,
|
|
@@ -23859,6 +23924,8 @@ class Audio {
|
|
|
23859
23924
|
}
|
|
23860
23925
|
break;
|
|
23861
23926
|
case 'insert-audio':
|
|
23927
|
+
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
|
|
23928
|
+
save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
|
|
23862
23929
|
this.openDialog(true, originalEvent, save, selectNodeEle, selectParentEle);
|
|
23863
23930
|
originalEvent.preventDefault();
|
|
23864
23931
|
break;
|
|
@@ -25092,7 +25159,6 @@ class Video {
|
|
|
25092
25159
|
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) &&
|
|
25093
25160
|
originalEvent.code !== 'KeyK') {
|
|
25094
25161
|
range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
|
|
25095
|
-
save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
|
|
25096
25162
|
selectNodeEle = this.parent.formatter.editorManager.nodeSelection.getNodeCollection(range);
|
|
25097
25163
|
selectParentEle = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
|
|
25098
25164
|
if (!originalEvent.ctrlKey && originalEvent.key && (originalEvent.key.length === 1 || originalEvent.action === 'enter') &&
|
|
@@ -25112,6 +25178,8 @@ class Video {
|
|
|
25112
25178
|
}
|
|
25113
25179
|
if (originalEvent.keyCode === 8 || originalEvent.keyCode === 46) {
|
|
25114
25180
|
if (selectNodeEle && (selectNodeEle[0].nodeName === 'VIDEO' || this.isEmbedVidElem(selectNodeEle[0])) && selectNodeEle.length < 1) {
|
|
25181
|
+
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
|
|
25182
|
+
save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
|
|
25115
25183
|
originalEvent.preventDefault();
|
|
25116
25184
|
const event = {
|
|
25117
25185
|
selectNode: selectNodeEle, selection: save, selectParent: selectParentEle,
|
|
@@ -25164,6 +25232,8 @@ class Video {
|
|
|
25164
25232
|
}
|
|
25165
25233
|
break;
|
|
25166
25234
|
case 'insert-video':
|
|
25235
|
+
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
|
|
25236
|
+
save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
|
|
25167
25237
|
this.openDialog(true, originalEvent, save, selectNodeEle, selectParentEle);
|
|
25168
25238
|
originalEvent.preventDefault();
|
|
25169
25239
|
break;
|
|
@@ -26347,14 +26417,15 @@ class Table {
|
|
|
26347
26417
|
}
|
|
26348
26418
|
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) && this.contentModule
|
|
26349
26419
|
&& event.code !== 'KeyK') {
|
|
26420
|
+
let selection;
|
|
26350
26421
|
const range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
|
|
26351
|
-
const selection = this.parent.formatter.editorManager.
|
|
26352
|
-
nodeSelection.save(range, this.contentModule.getDocument());
|
|
26353
26422
|
let ele = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range)[0];
|
|
26354
26423
|
ele = (ele && ele.tagName !== 'TD' && ele.tagName !== 'TH') ? ele.parentElement : ele;
|
|
26355
26424
|
if ((event.keyCode === 8 || event.keyCode === 46) ||
|
|
26356
26425
|
(event.ctrlKey && event.keyCode === 88)) {
|
|
26357
26426
|
if (ele && ele.tagName === 'TBODY') {
|
|
26427
|
+
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) && this.contentModule)
|
|
26428
|
+
selection = this.parent.formatter.editorManager.nodeSelection.save(range, this.contentModule.getDocument());
|
|
26358
26429
|
event.preventDefault();
|
|
26359
26430
|
proxy.removeTable(selection, event, true);
|
|
26360
26431
|
}
|
|
@@ -26368,6 +26439,8 @@ class Table {
|
|
|
26368
26439
|
ele = !isNullOrUndefined(closestTd) && this.parent.inputElement.contains(closestTd) ? closestTd : ele;
|
|
26369
26440
|
}
|
|
26370
26441
|
if (ele && (ele.tagName === 'TD' || ele.tagName === 'TH')) {
|
|
26442
|
+
if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) && this.contentModule)
|
|
26443
|
+
selection = this.parent.formatter.editorManager.nodeSelection.save(range, this.contentModule.getDocument());
|
|
26371
26444
|
switch (event.keyCode) {
|
|
26372
26445
|
case 9:
|
|
26373
26446
|
case 37:
|
|
@@ -26635,9 +26708,10 @@ class Table {
|
|
|
26635
26708
|
const range = this.parent.formatter.editorManager.nodeSelection.getRange(this.contentModule.getDocument());
|
|
26636
26709
|
this.parent.formatter.editorManager.nodeSelection.save(range, this.contentModule.getDocument());
|
|
26637
26710
|
this.parent.formatter.editorManager.nodeSelection.Clear(this.contentModule.getDocument());
|
|
26711
|
+
const pageX = (this.parent.iframeSettings.enable) ? window.pageXOffset + this.parent.element.getBoundingClientRect().left + args.clientX : args.pageX;
|
|
26638
26712
|
const pageY = (this.parent.iframeSettings.enable) ? window.pageYOffset +
|
|
26639
26713
|
this.parent.element.getBoundingClientRect().top + args.clientY : args.pageY;
|
|
26640
|
-
this.quickToolObj.tableQTBar.showPopup(
|
|
26714
|
+
this.quickToolObj.tableQTBar.showPopup(pageX, pageY, target);
|
|
26641
26715
|
this.parent.formatter.editorManager.nodeSelection.restore();
|
|
26642
26716
|
}
|
|
26643
26717
|
else {
|
|
@@ -29670,6 +29744,10 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
29670
29744
|
if (this.isDestroyed || !this.isRendered) {
|
|
29671
29745
|
return;
|
|
29672
29746
|
}
|
|
29747
|
+
if (!isNullOrUndefined(this.timeInterval)) {
|
|
29748
|
+
clearInterval(this.timeInterval);
|
|
29749
|
+
this.timeInterval = null;
|
|
29750
|
+
}
|
|
29673
29751
|
if (this.element.offsetParent === null) {
|
|
29674
29752
|
if (!isNullOrUndefined(this.toolbarModule)) {
|
|
29675
29753
|
this.toolbarModule.destroy();
|
|
@@ -29679,10 +29757,6 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
29679
29757
|
}
|
|
29680
29758
|
this.notify(destroy, {});
|
|
29681
29759
|
this.destroyDependentModules();
|
|
29682
|
-
if (!isNullOrUndefined(this.timeInterval)) {
|
|
29683
|
-
clearInterval(this.timeInterval);
|
|
29684
|
-
this.timeInterval = null;
|
|
29685
|
-
}
|
|
29686
29760
|
this.unWireEvents();
|
|
29687
29761
|
if (this.originalElement.tagName === 'TEXTAREA') {
|
|
29688
29762
|
this.element.parentElement.insertBefore(this.valueContainer, this.element);
|