@syncfusion/ej2-richtexteditor 19.4.56 → 20.1.47
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 +1 -81
- 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 +89 -32
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +88 -31
- 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 +12 -12
- package/src/editor-manager/plugin/clearformat.js +3 -2
- package/src/editor-manager/plugin/inserthtml.js +7 -1
- package/src/editor-manager/plugin/lists.js +14 -6
- package/src/editor-manager/plugin/table.js +6 -5
- package/src/rich-text-editor/actions/count.js +2 -2
- package/src/rich-text-editor/actions/dropdown-buttons.js +1 -1
- package/src/rich-text-editor/actions/html-editor.js +1 -0
- package/src/rich-text-editor/base/classes.d.ts +5 -0
- package/src/rich-text-editor/base/classes.js +5 -0
- package/src/rich-text-editor/base/rich-text-editor.js +4 -3
- package/src/rich-text-editor/renderer/image-module.js +21 -5
- package/src/rich-text-editor/renderer/table-module.js +20 -5
- package/src/selection/selection.js +3 -0
- package/styles/bootstrap-dark.css +6 -3
- package/styles/bootstrap.css +6 -3
- package/styles/bootstrap4.css +2 -2
- package/styles/bootstrap5-dark.css +30 -6
- package/styles/bootstrap5.css +31 -7
- package/styles/fabric-dark.css +2 -2
- package/styles/fabric.css +2 -2
- package/styles/fluent-dark.css +3001 -0
- package/styles/fluent-dark.scss +1 -0
- package/styles/fluent.css +3001 -0
- package/styles/fluent.scss +1 -0
- package/styles/highcontrast-light.css +2 -2
- package/styles/highcontrast.css +2 -2
- package/styles/material-dark.css +2 -2
- package/styles/material.css +2 -2
- package/styles/rich-text-editor/_bootstrap-dark-definition.scss +19 -0
- package/styles/rich-text-editor/_bootstrap-definition.scss +19 -0
- package/styles/rich-text-editor/_bootstrap4-definition.scss +19 -0
- package/styles/rich-text-editor/_bootstrap5-definition.scss +24 -3
- package/styles/rich-text-editor/_fabric-dark-definition.scss +19 -0
- package/styles/rich-text-editor/_fabric-definition.scss +19 -0
- package/styles/rich-text-editor/_fluent-dark-definition.scss +1 -0
- package/styles/rich-text-editor/_fluent-definition.scss +42 -19
- package/styles/rich-text-editor/_highcontrast-definition.scss +19 -0
- package/styles/rich-text-editor/_highcontrast-light-definition.scss +19 -0
- package/styles/rich-text-editor/_layout.scss +96 -6
- package/styles/rich-text-editor/_material-dark-definition.scss +18 -1
- package/styles/rich-text-editor/_material-definition.scss +19 -0
- package/styles/rich-text-editor/_tailwind-definition.scss +26 -6
- package/styles/rich-text-editor/_theme.scss +17 -2
- package/styles/rich-text-editor/bootstrap-dark.css +6 -3
- package/styles/rich-text-editor/bootstrap.css +6 -3
- package/styles/rich-text-editor/bootstrap4.css +2 -2
- package/styles/rich-text-editor/bootstrap5-dark.css +30 -6
- package/styles/rich-text-editor/bootstrap5.css +31 -7
- package/styles/rich-text-editor/fabric-dark.css +2 -2
- package/styles/rich-text-editor/fabric.css +2 -2
- package/styles/rich-text-editor/fluent-dark.css +3001 -0
- package/styles/rich-text-editor/fluent-dark.scss +4 -0
- package/styles/rich-text-editor/fluent.css +3001 -0
- package/styles/rich-text-editor/fluent.scss +4 -0
- package/styles/rich-text-editor/highcontrast-light.css +2 -2
- package/styles/rich-text-editor/highcontrast.css +2 -2
- package/styles/rich-text-editor/icons/_fluent-dark.scss +1 -0
- package/styles/rich-text-editor/icons/_fluent.scss +74 -74
- package/styles/rich-text-editor/icons/_tailwind.scss +73 -74
- package/styles/rich-text-editor/material-dark.css +2 -2
- package/styles/rich-text-editor/material.css +2 -2
- package/styles/rich-text-editor/tailwind-dark.css +104 -85
- package/styles/rich-text-editor/tailwind.css +105 -86
- package/styles/tailwind-dark.css +104 -85
- package/styles/tailwind.css +105 -86
|
@@ -933,6 +933,11 @@ const CLS_FONT_NAME_TB_BTN = 'e-font-name-tbar-btn';
|
|
|
933
933
|
* @deprecated
|
|
934
934
|
*/
|
|
935
935
|
const CLS_FONT_SIZE_TB_BTN = 'e-font-size-tbar-btn';
|
|
936
|
+
/**
|
|
937
|
+
* @hidden
|
|
938
|
+
* @deprecated
|
|
939
|
+
*/
|
|
940
|
+
const CLS_ALIGN_TB_BTN = 'e-alignment-tbar-btn';
|
|
936
941
|
/**
|
|
937
942
|
* @hidden
|
|
938
943
|
* @deprecated
|
|
@@ -3547,7 +3552,7 @@ class DropDownButtons {
|
|
|
3547
3552
|
}
|
|
3548
3553
|
this.alignDropDown = this.toolbarRenderer.renderDropDownButton({
|
|
3549
3554
|
iconCss: 'e-justify-left e-icons',
|
|
3550
|
-
cssClass: CLS_DROPDOWN_POPUP + ' ' + CLS_DROPDOWN_ITEMS,
|
|
3555
|
+
cssClass: CLS_DROPDOWN_POPUP + ' ' + CLS_DROPDOWN_ITEMS + ' ' + CLS_ALIGN_TB_BTN,
|
|
3551
3556
|
itemName: 'Alignments', items: alignmentItems, element: targetElement
|
|
3552
3557
|
});
|
|
3553
3558
|
break;
|
|
@@ -6059,8 +6064,8 @@ class Count {
|
|
|
6059
6064
|
}
|
|
6060
6065
|
}
|
|
6061
6066
|
appendCount() {
|
|
6062
|
-
const htmlText = this.parent.editorMode === 'Markdown' ? this.editPanel.value
|
|
6063
|
-
this.editPanel.textContent
|
|
6067
|
+
const htmlText = this.parent.editorMode === 'Markdown' ? this.editPanel.value :
|
|
6068
|
+
this.editPanel.textContent;
|
|
6064
6069
|
if (this.parent.editorMode !== 'Markdown' && htmlText.indexOf('\u200B') !== -1) {
|
|
6065
6070
|
this.htmlLength = htmlText.replace(/\u200B/g, '').length;
|
|
6066
6071
|
}
|
|
@@ -9510,11 +9515,14 @@ class NodeSelection {
|
|
|
9510
9515
|
setRangePoint(range, isvalid, num, size) {
|
|
9511
9516
|
let node = this.rootNode;
|
|
9512
9517
|
let index = num.length;
|
|
9513
|
-
|
|
9518
|
+
let constant = size;
|
|
9514
9519
|
for (; index--; null) {
|
|
9515
9520
|
node = node && node.childNodes[num[index]];
|
|
9516
9521
|
}
|
|
9517
9522
|
if (node && constant >= 0 && node.nodeName !== 'html') {
|
|
9523
|
+
if (node.nodeType === 3 && node.nodeValue.replace(/\u00a0/g, ' ') === ' ') {
|
|
9524
|
+
constant = node.textContent.length;
|
|
9525
|
+
}
|
|
9518
9526
|
range[isvalid ? 'setStart' : 'setEnd'](node, constant);
|
|
9519
9527
|
}
|
|
9520
9528
|
return range;
|
|
@@ -10514,6 +10522,9 @@ class Lists {
|
|
|
10514
10522
|
range.endContainer.parentElement.closest('LI');
|
|
10515
10523
|
if (!isNullOrUndefined(startNode) && !isNullOrUndefined(endNode) && startNode === endNode && startNode.tagName === 'LI' &&
|
|
10516
10524
|
startNode.textContent.trim() === '' && startNode.querySelectorAll('IMG').length === 0) {
|
|
10525
|
+
if (startNode.innerHTML.indexOf(' ') >= 0) {
|
|
10526
|
+
return;
|
|
10527
|
+
}
|
|
10517
10528
|
if (startNode.textContent.charCodeAt(0) === 65279) {
|
|
10518
10529
|
startNode.textContent = '';
|
|
10519
10530
|
}
|
|
@@ -10655,7 +10666,7 @@ class Lists {
|
|
|
10655
10666
|
e.event.stopPropagation();
|
|
10656
10667
|
this.currentAction = this.getAction(nodes[0]);
|
|
10657
10668
|
if (e.event.shiftKey) {
|
|
10658
|
-
this.revertList(nodes);
|
|
10669
|
+
this.revertList(nodes, e);
|
|
10659
10670
|
this.revertClean();
|
|
10660
10671
|
}
|
|
10661
10672
|
else {
|
|
@@ -10817,6 +10828,9 @@ class Lists {
|
|
|
10817
10828
|
append([nestedElement], prevSibling);
|
|
10818
10829
|
append([elements[i]], nestedElement);
|
|
10819
10830
|
}
|
|
10831
|
+
else if (prevSibling.tagName === 'OL' || prevSibling.tagName === 'UL') {
|
|
10832
|
+
append([elements[i]], prevSibling);
|
|
10833
|
+
}
|
|
10820
10834
|
}
|
|
10821
10835
|
}
|
|
10822
10836
|
else {
|
|
@@ -10911,7 +10925,7 @@ class Lists {
|
|
|
10911
10925
|
listsNodes[i] = listsNodes[i].parentNode;
|
|
10912
10926
|
}
|
|
10913
10927
|
}
|
|
10914
|
-
this.applyLists(listsNodes, this.currentAction, e.selector, e.item);
|
|
10928
|
+
this.applyLists(listsNodes, this.currentAction, e.selector, e.item, e);
|
|
10915
10929
|
if (e.callBack) {
|
|
10916
10930
|
e.callBack({
|
|
10917
10931
|
requestType: this.currentAction,
|
|
@@ -10932,9 +10946,9 @@ class Lists {
|
|
|
10932
10946
|
this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startElem, endElem, 0, 0);
|
|
10933
10947
|
}
|
|
10934
10948
|
}
|
|
10935
|
-
applyLists(elements, type, selector, item) {
|
|
10949
|
+
applyLists(elements, type, selector, item, e) {
|
|
10936
10950
|
if (this.isRevert(elements, type) && isNullOrUndefined(item)) {
|
|
10937
|
-
this.revertList(elements);
|
|
10951
|
+
this.revertList(elements, e);
|
|
10938
10952
|
this.removeEmptyListElements();
|
|
10939
10953
|
}
|
|
10940
10954
|
else {
|
|
@@ -11091,7 +11105,7 @@ class Lists {
|
|
|
11091
11105
|
}
|
|
11092
11106
|
}
|
|
11093
11107
|
}
|
|
11094
|
-
revertList(elements) {
|
|
11108
|
+
revertList(elements, e) {
|
|
11095
11109
|
const temp = [];
|
|
11096
11110
|
for (let i = elements.length - 1; i >= 0; i--) {
|
|
11097
11111
|
for (let j = i - 1; j >= 0; j--) {
|
|
@@ -11135,7 +11149,9 @@ class Lists {
|
|
|
11135
11149
|
' class="' + className + ' e-rte-wrap-inner"';
|
|
11136
11150
|
const wrapper = '<' + DEFAULT_TAG + wrapperclass +
|
|
11137
11151
|
this.domNode.attributes(parentNode) + '></' + DEFAULT_TAG + '>';
|
|
11138
|
-
|
|
11152
|
+
if (e.enterAction !== 'BR') {
|
|
11153
|
+
this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));
|
|
11154
|
+
}
|
|
11139
11155
|
}
|
|
11140
11156
|
else if (this.domNode.contents(element)[0].nodeType === 3) {
|
|
11141
11157
|
const replace = this.domNode.createTagString(DEFAULT_TAG, parentNode, this.parent.domNode.encode(this.domNode.contents(element)[0].textContent));
|
|
@@ -11869,6 +11885,12 @@ class InsertHtml {
|
|
|
11869
11885
|
nodeSelection.setSelectionText(docElement, range.startContainer.children[0], range.startContainer.children[0], 0, 0);
|
|
11870
11886
|
range = nodeSelection.getRange(docElement);
|
|
11871
11887
|
}
|
|
11888
|
+
if (range.startContainer.nodeName === 'BR' && range.startOffset === 0 && range.startOffset === range.endOffset &&
|
|
11889
|
+
range.startContainer === range.endContainer) {
|
|
11890
|
+
const currentIndex = Array.prototype.slice.call(range.startContainer.parentElement.children).indexOf(range.startContainer);
|
|
11891
|
+
nodeSelection.setSelectionText(docElement, range.startContainer.parentElement, range.startContainer.parentElement, currentIndex + 1, currentIndex + 1);
|
|
11892
|
+
range = nodeSelection.getRange(docElement);
|
|
11893
|
+
}
|
|
11872
11894
|
const isCursor = range.startOffset === range.endOffset && range.startOffset === 0 &&
|
|
11873
11895
|
range.startContainer === range.endContainer;
|
|
11874
11896
|
const isCollapsed = range.collapsed;
|
|
@@ -12052,7 +12074,7 @@ class InsertHtml {
|
|
|
12052
12074
|
else {
|
|
12053
12075
|
const tempSpan = createElement('span', { className: 'tempSpan' });
|
|
12054
12076
|
const nearestAnchor = closest(range.startContainer.parentElement, 'a');
|
|
12055
|
-
if (range.startContainer.nodeType === 3 && nearestAnchor) {
|
|
12077
|
+
if (range.startContainer.nodeType === 3 && nearestAnchor && closest(nearestAnchor, 'span')) {
|
|
12056
12078
|
const immediateBlockNode = this.getImmediateBlockNode(range.startContainer, editNode);
|
|
12057
12079
|
if (immediateBlockNode.querySelectorAll('br').length > 0) {
|
|
12058
12080
|
detach(immediateBlockNode.querySelector('br'));
|
|
@@ -13351,7 +13373,7 @@ class TableCommand {
|
|
|
13351
13373
|
const tdElement = createElement('td');
|
|
13352
13374
|
tdElement.appendChild(createElement('br'));
|
|
13353
13375
|
newRow.appendChild(tdElement);
|
|
13354
|
-
tdElement.setAttribute('style', allCells[(isHeaderSelect && isBelow) ? (minVal + 1) : minVal][i].getAttribute('style'));
|
|
13376
|
+
tdElement.setAttribute('style', allCells[(isHeaderSelect && isBelow) ? allCells[(minVal + 1)] ? (minVal + 1) : minVal : minVal][i].getAttribute('style'));
|
|
13355
13377
|
}
|
|
13356
13378
|
}
|
|
13357
13379
|
// eslint-disable-next-line
|
|
@@ -13735,7 +13757,8 @@ class TableCommand {
|
|
|
13735
13757
|
if (min < (max = Math.min(max, eleArray.length - 1))) {
|
|
13736
13758
|
for (rowValue = min; rowValue <= max; rowValue++) {
|
|
13737
13759
|
// eslint-disable-next-line
|
|
13738
|
-
if (!(min < rowValue && eleArray[rowValue][0] === eleArray[rowValue - 1][0]) &&
|
|
13760
|
+
if (!(min < rowValue && eleArray[rowValue][0] === eleArray[rowValue - 1][0]) && eleArray[rowValue][0] &&
|
|
13761
|
+
1 < (index = Math.min(parseInt(eleArray[rowValue][0].getAttribute('rowspan'), 10) || 1, max - min + 1)) && eleArray[rowValue][0] === eleArray[rowValue + 1][0]) {
|
|
13739
13762
|
for (count = index - 1, colIndex = 1; colIndex < eleArray[0].length; colIndex++) {
|
|
13740
13763
|
if (eleArray[rowValue][colIndex] !== eleArray[rowValue][colIndex - 1]) {
|
|
13741
13764
|
for (rowMin = rowValue; rowMin < rowValue + index; rowMin++) {
|
|
@@ -13777,10 +13800,10 @@ class TableCommand {
|
|
|
13777
13800
|
}
|
|
13778
13801
|
mergeCellContent() {
|
|
13779
13802
|
const selectedCells = this.curTable.querySelectorAll('.e-cell-select');
|
|
13780
|
-
let innerHtml = selectedCells[0].innerHTML;
|
|
13781
|
-
for (let i = 1; i < selectedCells.length
|
|
13803
|
+
let innerHtml = selectedCells[0].innerHTML === '<br>' ? '' : selectedCells[0].innerHTML;
|
|
13804
|
+
for (let i = 1; i < selectedCells.length; i++) {
|
|
13782
13805
|
if ('<br>' !== selectedCells[i].innerHTML) {
|
|
13783
|
-
innerHtml = innerHtml + selectedCells[i].innerHTML;
|
|
13806
|
+
innerHtml = innerHtml ? innerHtml + '<br>' + selectedCells[i].innerHTML : innerHtml + selectedCells[i].innerHTML;
|
|
13784
13807
|
}
|
|
13785
13808
|
}
|
|
13786
13809
|
selectedCells[0].innerHTML = innerHtml;
|
|
@@ -15122,7 +15145,8 @@ class ClearFormat$1 {
|
|
|
15122
15145
|
for (let index = 0; index < textNodes.length; index++) {
|
|
15123
15146
|
let currentInlineNode = textNodes[index];
|
|
15124
15147
|
let currentNode;
|
|
15125
|
-
while (!this.domNode.isBlockNode(currentInlineNode)
|
|
15148
|
+
while (!this.domNode.isBlockNode(currentInlineNode) &&
|
|
15149
|
+
(currentInlineNode.parentElement && !currentInlineNode.parentElement.classList.contains('e-img-inner'))) {
|
|
15126
15150
|
currentNode = currentInlineNode;
|
|
15127
15151
|
currentInlineNode = currentInlineNode.parentElement;
|
|
15128
15152
|
}
|
|
@@ -15136,7 +15160,7 @@ class ClearFormat$1 {
|
|
|
15136
15160
|
static removeInlineParent(textNodes) {
|
|
15137
15161
|
const nodes = InsertMethods.unwrap(textNodes);
|
|
15138
15162
|
for (let index = 0; index < nodes.length; index++) {
|
|
15139
|
-
if (nodes[index].parentNode.childNodes.length === 1
|
|
15163
|
+
if (nodes[index].parentNode.childNodes.length === 1 && !nodes[index].parentNode.classList.contains('e-img-inner')
|
|
15140
15164
|
&& IsFormatted.inlineTags.indexOf(nodes[index].parentNode.nodeName.toLocaleLowerCase()) > -1) {
|
|
15141
15165
|
this.removeInlineParent(nodes[index].parentNode);
|
|
15142
15166
|
}
|
|
@@ -17340,6 +17364,7 @@ class HtmlEditor {
|
|
|
17340
17364
|
if (!this.isImageDelete) {
|
|
17341
17365
|
args.preventDefault();
|
|
17342
17366
|
}
|
|
17367
|
+
args.preventDefault();
|
|
17343
17368
|
}
|
|
17344
17369
|
}
|
|
17345
17370
|
isOrderedList(editorValue) {
|
|
@@ -20171,6 +20196,7 @@ class Image {
|
|
|
20171
20196
|
calcPos(elem) {
|
|
20172
20197
|
const ignoreOffset = ['TD', 'TH', 'TABLE', 'A'];
|
|
20173
20198
|
let parentOffset = { top: 0, left: 0 };
|
|
20199
|
+
let elementOffset;
|
|
20174
20200
|
const doc = elem.ownerDocument;
|
|
20175
20201
|
let offsetParent = ((elem.offsetParent && (elem.offsetParent.classList.contains('e-img-caption') ||
|
|
20176
20202
|
ignoreOffset.indexOf(elem.offsetParent.tagName) > -1)) ?
|
|
@@ -20184,10 +20210,19 @@ class Image {
|
|
|
20184
20210
|
// eslint-disable-next-line
|
|
20185
20211
|
parentOffset = offsetParent.getBoundingClientRect();
|
|
20186
20212
|
}
|
|
20187
|
-
|
|
20188
|
-
|
|
20189
|
-
|
|
20190
|
-
|
|
20213
|
+
if (elem.offsetParent && (elem.offsetParent.classList.contains('e-img-caption'))) {
|
|
20214
|
+
elementOffset = elem.getBoundingClientRect();
|
|
20215
|
+
return {
|
|
20216
|
+
top: elementOffset.top - parentOffset.top,
|
|
20217
|
+
left: elementOffset.left - parentOffset.left
|
|
20218
|
+
};
|
|
20219
|
+
}
|
|
20220
|
+
else {
|
|
20221
|
+
return {
|
|
20222
|
+
top: elem.offsetTop,
|
|
20223
|
+
left: elem.offsetLeft
|
|
20224
|
+
};
|
|
20225
|
+
}
|
|
20191
20226
|
}
|
|
20192
20227
|
setAspectRatio(img, expectedX, expectedY, e) {
|
|
20193
20228
|
if (isNullOrUndefined(img.width)) {
|
|
@@ -20197,7 +20232,7 @@ class Image {
|
|
|
20197
20232
|
parseInt(img.style.width, 10) : img.width;
|
|
20198
20233
|
const height = img.style.height !== '' ? parseInt(img.style.height, 10) : img.height;
|
|
20199
20234
|
if (width > height) {
|
|
20200
|
-
img.style.minWidth = '20px';
|
|
20235
|
+
img.style.minWidth = this.parent.insertImageSettings.minWidth === 0 ? '20px' : formatUnit(this.parent.insertImageSettings.minWidth);
|
|
20201
20236
|
if (this.parent.insertImageSettings.resizeByPercent) {
|
|
20202
20237
|
if (parseInt('' + img.getBoundingClientRect().width + '', 10) !== 0 && parseInt('' + width + '', 10) !== 0) {
|
|
20203
20238
|
const percentageValue = this.pixToPerc((width / height * expectedY), (img.previousElementSibling || img.parentElement));
|
|
@@ -20519,6 +20554,10 @@ class Image {
|
|
|
20519
20554
|
range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE))) {
|
|
20520
20555
|
detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE));
|
|
20521
20556
|
}
|
|
20557
|
+
else if (range.startContainer.nodeType === 1 &&
|
|
20558
|
+
range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK)) {
|
|
20559
|
+
detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK));
|
|
20560
|
+
}
|
|
20522
20561
|
}
|
|
20523
20562
|
break;
|
|
20524
20563
|
case 'insert-image':
|
|
@@ -20688,6 +20727,8 @@ class Image {
|
|
|
20688
20727
|
if (this.parent.quickToolbarModule.imageQTBar) {
|
|
20689
20728
|
if (e.isNotify) {
|
|
20690
20729
|
setTimeout(() => {
|
|
20730
|
+
this.parent.formatter.editorManager.nodeSelection.Clear(this.contentModule.getDocument());
|
|
20731
|
+
this.parent.formatter.editorManager.nodeSelection.setSelectionContents(this.contentModule.getDocument(), target);
|
|
20691
20732
|
this.quickToolObj.imageQTBar.showPopup(args.pageX, pageY, target);
|
|
20692
20733
|
}, 400);
|
|
20693
20734
|
}
|
|
@@ -22654,7 +22695,7 @@ class Table {
|
|
|
22654
22695
|
ele.classList.add(CLS_TABLE_SEL);
|
|
22655
22696
|
this.addRow(selection, event, true);
|
|
22656
22697
|
ele.classList.remove(CLS_TABLE_SEL);
|
|
22657
|
-
nextElement = nextElement.parentElement.nextSibling.firstChild;
|
|
22698
|
+
nextElement = nextElement.parentElement.nextSibling ? nextElement.parentElement.nextSibling.firstChild : nextElement.parentElement.firstChild;
|
|
22658
22699
|
// eslint-disable-next-line
|
|
22659
22700
|
(nextElement.textContent.trim() !== '' && closest(nextElement, 'td')) ?
|
|
22660
22701
|
selection.setSelectionNode(this.contentModule.getDocument(), nextElement) :
|
|
@@ -22943,6 +22984,7 @@ class Table {
|
|
|
22943
22984
|
const offset = elem.getBoundingClientRect();
|
|
22944
22985
|
const doc = elem.ownerDocument;
|
|
22945
22986
|
let offsetParent = elem.offsetParent || doc.documentElement;
|
|
22987
|
+
let isNestedTable = false;
|
|
22946
22988
|
while (offsetParent &&
|
|
22947
22989
|
(offsetParent === doc.body || offsetParent === doc.documentElement) &&
|
|
22948
22990
|
offsetParent.style.position === 'static') {
|
|
@@ -22950,15 +22992,29 @@ class Table {
|
|
|
22950
22992
|
}
|
|
22951
22993
|
if (offsetParent.nodeName === 'TD' && elem.nodeName === 'TABLE') {
|
|
22952
22994
|
offsetParent = closest(offsetParent, '.e-rte-content');
|
|
22995
|
+
isNestedTable = true;
|
|
22953
22996
|
}
|
|
22954
22997
|
if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {
|
|
22955
22998
|
// eslint-disable-next-line
|
|
22956
22999
|
parentOffset = offsetParent.getBoundingClientRect();
|
|
22957
23000
|
}
|
|
22958
|
-
|
|
22959
|
-
|
|
22960
|
-
|
|
22961
|
-
|
|
23001
|
+
if (isNestedTable) {
|
|
23002
|
+
isNestedTable = false;
|
|
23003
|
+
let topValue = this.parent.inputElement && this.parent.inputElement.scrollTop > 0 ?
|
|
23004
|
+
(this.parent.inputElement.scrollTop + offset.top) - parentOffset.top : offset.top - parentOffset.top;
|
|
23005
|
+
let leftValue = this.parent.inputElement && this.parent.inputElement.scrollLeft > 0 ?
|
|
23006
|
+
(this.parent.inputElement.scrollLeft + offset.left) - parentOffset.left : offset.left - parentOffset.left;
|
|
23007
|
+
return {
|
|
23008
|
+
top: topValue,
|
|
23009
|
+
left: leftValue
|
|
23010
|
+
};
|
|
23011
|
+
}
|
|
23012
|
+
else {
|
|
23013
|
+
return {
|
|
23014
|
+
top: elem.offsetTop,
|
|
23015
|
+
left: elem.offsetLeft
|
|
23016
|
+
};
|
|
23017
|
+
}
|
|
22962
23018
|
}
|
|
22963
23019
|
getPointX(e) {
|
|
22964
23020
|
if (e.touches && e.touches.length) {
|
|
@@ -25657,7 +25713,7 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
25657
25713
|
this.inputElement.parentElement.insertBefore(this.placeHolderWrapper, this.inputElement);
|
|
25658
25714
|
}
|
|
25659
25715
|
attributes(this.placeHolderWrapper, {
|
|
25660
|
-
'style': 'font-size: 14px;
|
|
25716
|
+
'style': 'font-size: 14px; margin-left: 0px; margin-right: 0px;'
|
|
25661
25717
|
});
|
|
25662
25718
|
}
|
|
25663
25719
|
this.placeHolderWrapper.innerHTML = this.placeholder;
|
|
@@ -25896,7 +25952,8 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
25896
25952
|
}
|
|
25897
25953
|
setValue() {
|
|
25898
25954
|
if (this.valueTemplate) {
|
|
25899
|
-
|
|
25955
|
+
const regEx = new RegExp(/<(?=.*? .*?\/ ?>|br|hr|input|!--|wbr)[a-z]+.*?>|<([a-z]+).*?<\/\1>/i);
|
|
25956
|
+
if (regEx.test(this.valueTemplate)) {
|
|
25900
25957
|
this.setProperties({ value: this.valueTemplate });
|
|
25901
25958
|
}
|
|
25902
25959
|
else {
|
|
@@ -26479,7 +26536,7 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
26479
26536
|
restrict(e) {
|
|
26480
26537
|
if (this.maxLength >= 0) {
|
|
26481
26538
|
const element = this.editorMode === 'Markdown' ? this.contentModule.getText() :
|
|
26482
|
-
e.currentTarget.textContent
|
|
26539
|
+
e.currentTarget.textContent;
|
|
26483
26540
|
const array = [8, 16, 17, 37, 38, 39, 40, 46, 65];
|
|
26484
26541
|
let arrayKey;
|
|
26485
26542
|
for (let i = 0; i <= array.length - 1; i++) {
|
|
@@ -26849,5 +26906,5 @@ RichTextEditor = __decorate$1([
|
|
|
26849
26906
|
* Rich Text Editor component exported items
|
|
26850
26907
|
*/
|
|
26851
26908
|
|
|
26852
|
-
export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, imageCaption, imageSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, afterImageDelete, drop, xhtmlValidation, beforeImageUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, closeImageDialog, showTableDialog, closeTableDialog, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_LIST_PRIMARY_CONTENT, CLS_NUMBERFORMATLIST_TB_BTN, CLS_BULLETFORMATLIST_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_TB_ENABLED, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, getDefaultValue, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, getLocaleFontFormat, updateDropDownFontFormatLocale, ServiceLocator, RendererFactory, EditorManager, IMAGE, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, TABLE_MERGE, TABLE_VERTICAL_SPLIT, TABLE_HORIZONTAL_SPLIT, TABLE_MOVE, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_IMAGE_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP, ON_BEGIN, SPACE_ACTION };
|
|
26909
|
+
export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, imageCaption, imageSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, afterImageDelete, drop, xhtmlValidation, beforeImageUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, closeImageDialog, showTableDialog, closeTableDialog, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_LIST_PRIMARY_CONTENT, CLS_NUMBERFORMATLIST_TB_BTN, CLS_BULLETFORMATLIST_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_ALIGN_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_TB_ENABLED, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, getDefaultValue, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, getLocaleFontFormat, updateDropDownFontFormatLocale, ServiceLocator, RendererFactory, EditorManager, IMAGE, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, TABLE_MERGE, TABLE_VERTICAL_SPLIT, TABLE_HORIZONTAL_SPLIT, TABLE_MOVE, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_IMAGE_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP, ON_BEGIN, SPACE_ACTION };
|
|
26853
26910
|
//# sourceMappingURL=ej2-richtexteditor.es2015.js.map
|