@syncfusion/ej2-richtexteditor 23.2.7 → 24.1.43-569781
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/.eslintrc.json +259 -259
- package/CHANGELOG.md +1927 -1749
- package/README.md +76 -76
- package/dist/ej2-richtexteditor.umd.min.js +1 -10
- package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es2015.js +3069 -1283
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +3173 -1386
- package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
- package/helpers/e2e/index.js +3 -3
- package/helpers/e2e/rte-helper.js +13 -13
- package/license +9 -9
- package/package.json +74 -74
- package/src/common/config.d.ts +7 -0
- package/src/common/config.js +12 -1
- package/src/common/constant.d.ts +6 -0
- package/src/common/constant.js +6 -0
- package/src/common/interface.d.ts +19 -7
- package/src/common/types.d.ts +6 -0
- package/src/common/util.d.ts +6 -0
- package/src/common/util.js +61 -20
- package/src/editor-manager/base/classes.d.ts +1 -1
- package/src/editor-manager/base/classes.js +1 -1
- package/src/editor-manager/base/constant.d.ts +6 -0
- package/src/editor-manager/base/constant.js +6 -0
- package/src/editor-manager/base/editor-manager.d.ts +8 -3
- package/src/editor-manager/base/editor-manager.js +62 -3
- package/src/editor-manager/base/enum.d.ts +2 -2
- package/src/editor-manager/base/interface.d.ts +17 -9
- package/src/editor-manager/base/types.d.ts +1 -1
- package/src/editor-manager/plugin/alignments.d.ts +2 -2
- package/src/editor-manager/plugin/alignments.js +2 -2
- package/src/editor-manager/plugin/audio.d.ts +3 -3
- package/src/editor-manager/plugin/audio.js +16 -6
- package/src/editor-manager/plugin/clearformat-exec.d.ts +2 -2
- package/src/editor-manager/plugin/clearformat-exec.js +2 -2
- package/src/editor-manager/plugin/clearformat.d.ts +1 -1
- package/src/editor-manager/plugin/clearformat.js +1 -1
- package/src/editor-manager/plugin/dom-node.d.ts +39 -35
- package/src/editor-manager/plugin/dom-node.js +203 -62
- package/src/editor-manager/plugin/format-painter-actions.d.ts +2 -1
- package/src/editor-manager/plugin/format-painter-actions.js +20 -2
- package/src/editor-manager/plugin/formats.d.ts +3 -2
- package/src/editor-manager/plugin/formats.js +40 -5
- package/src/editor-manager/plugin/image.d.ts +3 -3
- package/src/editor-manager/plugin/image.js +41 -18
- package/src/editor-manager/plugin/indents.d.ts +2 -2
- package/src/editor-manager/plugin/indents.js +2 -2
- package/src/editor-manager/plugin/insert-methods.d.ts +4 -4
- package/src/editor-manager/plugin/insert-methods.js +4 -4
- package/src/editor-manager/plugin/insert-text.d.ts +2 -2
- package/src/editor-manager/plugin/insert-text.js +2 -2
- package/src/editor-manager/plugin/inserthtml-exec.d.ts +2 -2
- package/src/editor-manager/plugin/inserthtml-exec.js +2 -2
- package/src/editor-manager/plugin/inserthtml.d.ts +3 -2
- package/src/editor-manager/plugin/inserthtml.js +69 -9
- package/src/editor-manager/plugin/isformatted.d.ts +8 -8
- package/src/editor-manager/plugin/isformatted.js +8 -8
- package/src/editor-manager/plugin/link.d.ts +2 -2
- package/src/editor-manager/plugin/link.js +6 -3
- package/src/editor-manager/plugin/lists.d.ts +2 -2
- package/src/editor-manager/plugin/lists.js +123 -67
- package/src/editor-manager/plugin/ms-word-clean-up.d.ts +4 -1
- package/src/editor-manager/plugin/ms-word-clean-up.js +216 -86
- package/src/editor-manager/plugin/nodecutter.d.ts +6 -6
- package/src/editor-manager/plugin/nodecutter.js +8 -8
- package/src/editor-manager/plugin/selection-commands.d.ts +2 -1
- package/src/editor-manager/plugin/selection-commands.js +166 -4
- package/src/editor-manager/plugin/selection-exec.d.ts +2 -2
- package/src/editor-manager/plugin/selection-exec.js +2 -2
- package/src/editor-manager/plugin/table.d.ts +2 -3
- package/src/editor-manager/plugin/table.js +35 -32
- package/src/editor-manager/plugin/toolbar-status.d.ts +4 -4
- package/src/editor-manager/plugin/toolbar-status.js +22 -12
- package/src/editor-manager/plugin/undo.d.ts +7 -6
- package/src/editor-manager/plugin/undo.js +27 -7
- package/src/editor-manager/plugin/video.d.ts +3 -3
- package/src/editor-manager/plugin/video.js +3 -3
- package/src/markdown-parser/base/interface.d.ts +10 -10
- package/src/markdown-parser/base/markdown-parser.d.ts +3 -3
- package/src/markdown-parser/base/markdown-parser.js +3 -3
- package/src/markdown-parser/base/types.d.ts +1 -1
- package/src/markdown-parser/plugin/clearformat.d.ts +2 -2
- package/src/markdown-parser/plugin/clearformat.js +2 -2
- package/src/markdown-parser/plugin/formats.d.ts +2 -2
- package/src/markdown-parser/plugin/formats.js +2 -2
- package/src/markdown-parser/plugin/insert-text.d.ts +2 -2
- package/src/markdown-parser/plugin/insert-text.js +2 -2
- package/src/markdown-parser/plugin/link.d.ts +2 -2
- package/src/markdown-parser/plugin/link.js +2 -2
- package/src/markdown-parser/plugin/markdown-selection.d.ts +14 -14
- package/src/markdown-parser/plugin/markdown-selection.js +14 -14
- package/src/markdown-parser/plugin/md-selection-formats.d.ts +1 -1
- package/src/markdown-parser/plugin/md-selection-formats.js +1 -1
- package/src/markdown-parser/plugin/table.d.ts +3 -3
- package/src/markdown-parser/plugin/table.js +3 -3
- package/src/markdown-parser/plugin/undo.d.ts +6 -6
- package/src/markdown-parser/plugin/undo.js +6 -6
- package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +12 -12
- package/src/rich-text-editor/actions/base-quick-toolbar.js +75 -24
- package/src/rich-text-editor/actions/base-toolbar.d.ts +3 -3
- package/src/rich-text-editor/actions/base-toolbar.js +35 -37
- package/src/rich-text-editor/actions/color-picker.d.ts +3 -2
- package/src/rich-text-editor/actions/color-picker.js +15 -5
- package/src/rich-text-editor/actions/count.d.ts +3 -3
- package/src/rich-text-editor/actions/count.js +4 -4
- package/src/rich-text-editor/actions/dropdown-buttons.d.ts +2 -2
- package/src/rich-text-editor/actions/dropdown-buttons.js +27 -6
- package/src/rich-text-editor/actions/emoji-picker.d.ts +1 -1
- package/src/rich-text-editor/actions/emoji-picker.js +16 -7
- package/src/rich-text-editor/actions/enter-key.js +6 -4
- package/src/rich-text-editor/actions/file-manager.js +1 -1
- package/src/rich-text-editor/actions/format-painter.js +1 -1
- package/src/rich-text-editor/actions/full-screen.d.ts +3 -3
- package/src/rich-text-editor/actions/full-screen.js +8 -7
- package/src/rich-text-editor/actions/html-editor.d.ts +5 -3
- package/src/rich-text-editor/actions/html-editor.js +137 -22
- package/src/rich-text-editor/actions/keyboard-model.d.ts +16 -16
- package/src/rich-text-editor/actions/keyboard.d.ts +1 -1
- package/src/rich-text-editor/actions/keyboard.js +23 -21
- package/src/rich-text-editor/actions/markdown-editor.d.ts +2 -2
- package/src/rich-text-editor/actions/markdown-editor.js +5 -3
- package/src/rich-text-editor/actions/paste-clean-up.d.ts +6 -1
- package/src/rich-text-editor/actions/paste-clean-up.js +157 -29
- package/src/rich-text-editor/actions/quick-toolbar.d.ts +16 -9
- package/src/rich-text-editor/actions/quick-toolbar.js +54 -20
- package/src/rich-text-editor/actions/resize.js +2 -1
- package/src/rich-text-editor/actions/toolbar-action.js +1 -1
- package/src/rich-text-editor/actions/toolbar.d.ts +16 -16
- package/src/rich-text-editor/actions/toolbar.js +48 -109
- package/src/rich-text-editor/actions/xhtml-validation.d.ts +1 -1
- package/src/rich-text-editor/actions/xhtml-validation.js +1 -1
- package/src/rich-text-editor/base/classes.d.ts +125 -125
- package/src/rich-text-editor/base/classes.js +125 -125
- package/src/rich-text-editor/base/constant.d.ts +195 -150
- package/src/rich-text-editor/base/constant.js +364 -150
- package/src/rich-text-editor/base/enum.d.ts +1 -1
- package/src/rich-text-editor/base/enum.js +1 -1
- package/src/rich-text-editor/base/interface.d.ts +96 -52
- package/src/rich-text-editor/base/interface.js +1 -1
- package/src/rich-text-editor/base/rich-text-editor-model.d.ts +891 -891
- package/src/rich-text-editor/base/rich-text-editor.d.ts +76 -64
- package/src/rich-text-editor/base/rich-text-editor.js +259 -163
- package/src/rich-text-editor/base/util.d.ts +5 -1
- package/src/rich-text-editor/base/util.js +58 -6
- package/src/rich-text-editor/formatter/formatter.d.ts +8 -8
- package/src/rich-text-editor/formatter/formatter.js +23 -12
- package/src/rich-text-editor/formatter/html-formatter.d.ts +2 -2
- package/src/rich-text-editor/formatter/html-formatter.js +15 -15
- package/src/rich-text-editor/formatter/markdown-formatter.d.ts +2 -2
- package/src/rich-text-editor/formatter/markdown-formatter.js +15 -15
- package/src/rich-text-editor/models/default-locale.js +31 -25
- package/src/rich-text-editor/models/iframe-settings-model.d.ts +26 -26
- package/src/rich-text-editor/models/iframe-settings.js +19 -19
- package/src/rich-text-editor/models/inline-mode-model.d.ts +11 -11
- package/src/rich-text-editor/models/inline-mode.js +19 -19
- package/src/rich-text-editor/models/items.js +3 -3
- package/src/rich-text-editor/models/toolbar-settings-model.d.ts +760 -760
- package/src/rich-text-editor/models/toolbar-settings.d.ts +1 -1
- package/src/rich-text-editor/models/toolbar-settings.js +20 -20
- package/src/rich-text-editor/renderer/audio-module.d.ts +2 -1
- package/src/rich-text-editor/renderer/audio-module.js +14 -1
- package/src/rich-text-editor/renderer/content-renderer.d.ts +6 -6
- package/src/rich-text-editor/renderer/content-renderer.js +6 -6
- package/src/rich-text-editor/renderer/dialog-renderer.d.ts +4 -2
- package/src/rich-text-editor/renderer/dialog-renderer.js +24 -4
- package/src/rich-text-editor/renderer/iframe-content-renderer.d.ts +4 -4
- package/src/rich-text-editor/renderer/iframe-content-renderer.js +19 -18
- package/src/rich-text-editor/renderer/image-module.d.ts +10 -2
- package/src/rich-text-editor/renderer/image-module.js +261 -220
- package/src/rich-text-editor/renderer/link-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/link-module.js +54 -25
- package/src/rich-text-editor/renderer/markdown-renderer.d.ts +6 -6
- package/src/rich-text-editor/renderer/markdown-renderer.js +6 -6
- package/src/rich-text-editor/renderer/popup-renderer.d.ts +5 -5
- package/src/rich-text-editor/renderer/popup-renderer.js +5 -5
- package/src/rich-text-editor/renderer/render.d.ts +2 -2
- package/src/rich-text-editor/renderer/render.js +2 -2
- package/src/rich-text-editor/renderer/table-module.d.ts +11 -2
- package/src/rich-text-editor/renderer/table-module.js +331 -166
- package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +13 -15
- package/src/rich-text-editor/renderer/toolbar-renderer.js +114 -115
- package/src/rich-text-editor/renderer/video-module.d.ts +4 -1
- package/src/rich-text-editor/renderer/video-module.js +62 -35
- package/src/rich-text-editor/renderer/view-source.d.ts +7 -6
- package/src/rich-text-editor/renderer/view-source.js +21 -11
- package/src/rich-text-editor/services/renderer-factory.d.ts +3 -3
- package/src/rich-text-editor/services/renderer-factory.js +3 -3
- package/src/rich-text-editor/services/service-locator.d.ts +3 -3
- package/src/rich-text-editor/services/service-locator.js +3 -3
- package/src/selection/selection.d.ts +22 -22
- package/src/selection/selection.js +25 -22
- package/styles/_all.scss +1 -1
- package/styles/bootstrap-dark.css +345 -99
- package/styles/bootstrap.css +353 -108
- package/styles/bootstrap4.css +337 -95
- package/styles/bootstrap5-dark.css +343 -96
- package/styles/bootstrap5.css +343 -96
- package/styles/fabric-dark.css +331 -89
- package/styles/fabric.css +332 -90
- package/styles/fluent-dark.css +342 -92
- package/styles/fluent.css +342 -92
- package/styles/highcontrast-light.css +331 -89
- package/styles/highcontrast.css +335 -90
- package/styles/material-dark.css +337 -90
- package/styles/material.css +337 -90
- package/styles/material3-dark.css +347 -99
- package/styles/material3-dark.scss +1 -1
- package/styles/material3.css +347 -99
- package/styles/material3.scss +1 -1
- package/styles/rich-text-editor/_all.scss +2 -2
- package/styles/rich-text-editor/_bds-definition.scss +279 -0
- package/styles/rich-text-editor/_bootstrap-dark-definition.scss +281 -277
- package/styles/rich-text-editor/_bootstrap-definition.scss +337 -334
- package/styles/rich-text-editor/_bootstrap4-definition.scss +464 -460
- package/styles/rich-text-editor/_bootstrap5-definition.scss +266 -262
- package/styles/rich-text-editor/_fabric-dark-definition.scss +263 -259
- package/styles/rich-text-editor/_fabric-definition.scss +261 -257
- package/styles/rich-text-editor/_fluent-definition.scss +267 -263
- package/styles/rich-text-editor/_fusionnew-definition.scss +265 -261
- package/styles/rich-text-editor/_highcontrast-definition.scss +261 -257
- package/styles/rich-text-editor/_highcontrast-light-definition.scss +261 -257
- package/styles/rich-text-editor/_layout.scss +2249 -2072
- package/styles/rich-text-editor/_material-dark-definition.scss +266 -262
- package/styles/rich-text-editor/_material-definition.scss +264 -260
- package/styles/rich-text-editor/_material3-definition.scss +266 -262
- package/styles/rich-text-editor/_tailwind-definition.scss +261 -257
- package/styles/rich-text-editor/_theme.scss +906 -837
- package/styles/rich-text-editor/bootstrap-dark.css +345 -99
- package/styles/rich-text-editor/bootstrap.css +353 -108
- package/styles/rich-text-editor/bootstrap4.css +337 -95
- package/styles/rich-text-editor/bootstrap5-dark.css +343 -96
- package/styles/rich-text-editor/bootstrap5.css +343 -96
- package/styles/rich-text-editor/fabric-dark.css +331 -89
- package/styles/rich-text-editor/fabric.css +332 -90
- package/styles/rich-text-editor/fluent-dark.css +342 -92
- package/styles/rich-text-editor/fluent.css +342 -92
- package/styles/rich-text-editor/highcontrast-light.css +331 -89
- package/styles/rich-text-editor/highcontrast.css +335 -90
- package/styles/rich-text-editor/icons/_bds.scss +348 -0
- package/styles/rich-text-editor/icons/_bootstrap-dark.scss +349 -349
- package/styles/rich-text-editor/icons/_bootstrap.scss +349 -349
- package/styles/rich-text-editor/icons/_bootstrap4.scss +349 -349
- package/styles/rich-text-editor/icons/_bootstrap5.scss +348 -348
- package/styles/rich-text-editor/icons/_fabric-dark.scss +349 -349
- package/styles/rich-text-editor/icons/_fabric.scss +349 -349
- package/styles/rich-text-editor/icons/_fluent.scss +348 -348
- package/styles/rich-text-editor/icons/_fusionnew.scss +348 -348
- package/styles/rich-text-editor/icons/_highcontrast-light.scss +349 -349
- package/styles/rich-text-editor/icons/_highcontrast.scss +349 -349
- package/styles/rich-text-editor/icons/_material-dark.scss +349 -349
- package/styles/rich-text-editor/icons/_material.scss +349 -349
- package/styles/rich-text-editor/icons/_material3.scss +348 -348
- package/styles/rich-text-editor/icons/_tailwind.scss +348 -348
- package/styles/rich-text-editor/material-dark.css +337 -90
- package/styles/rich-text-editor/material.css +337 -90
- package/styles/rich-text-editor/material3-dark.css +347 -99
- package/styles/rich-text-editor/material3-dark.scss +1 -1
- package/styles/rich-text-editor/material3.css +347 -99
- package/styles/rich-text-editor/material3.scss +1 -1
- package/styles/rich-text-editor/tailwind-dark.css +386 -116
- package/styles/rich-text-editor/tailwind.css +386 -116
- package/styles/tailwind-dark.css +386 -116
- package/styles/tailwind.css +386 -116
- package/.github/PULL_REQUEST_TEMPLATE/Bug.md +0 -41
- package/.github/PULL_REQUEST_TEMPLATE/Feature.md +0 -27
- package/dist/ej2-richtexteditor.min.js +0 -10
- package/dist/global/ej2-richtexteditor.min.js +0 -11
- package/dist/global/ej2-richtexteditor.min.js.map +0 -1
- package/dist/global/index.d.ts +0 -14
- package/tslint.json +0 -111
|
@@ -7,7 +7,7 @@ import { NodeCutter } from './nodecutter';
|
|
|
7
7
|
* Formats internal component
|
|
8
8
|
*
|
|
9
9
|
* @hidden
|
|
10
|
-
|
|
10
|
+
* @deprecated
|
|
11
11
|
*/
|
|
12
12
|
var Formats = /** @class */ (function () {
|
|
13
13
|
/**
|
|
@@ -15,7 +15,7 @@ var Formats = /** @class */ (function () {
|
|
|
15
15
|
*
|
|
16
16
|
* @param {EditorManager} parent - specifies the parent element.
|
|
17
17
|
* @hidden
|
|
18
|
-
|
|
18
|
+
* @deprecated
|
|
19
19
|
*/
|
|
20
20
|
function Formats(parent) {
|
|
21
21
|
this.parent = parent;
|
|
@@ -52,6 +52,14 @@ var Formats = /** @class */ (function () {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
|
+
Formats.prototype.getBlockParent = function (node, endNode) {
|
|
56
|
+
var currentParent;
|
|
57
|
+
while (node != endNode) {
|
|
58
|
+
currentParent = node;
|
|
59
|
+
node = node.parentElement;
|
|
60
|
+
}
|
|
61
|
+
return currentParent;
|
|
62
|
+
};
|
|
55
63
|
Formats.prototype.onKeyDown = function (e) {
|
|
56
64
|
if (e.event.which === 13) {
|
|
57
65
|
var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
|
|
@@ -61,6 +69,8 @@ var Formats = /** @class */ (function () {
|
|
|
61
69
|
? range.endContainer : range.endContainer.parentElement;
|
|
62
70
|
var preElem = closest(startCon, 'pre');
|
|
63
71
|
var endPreElem = closest(endCon, 'pre');
|
|
72
|
+
var blockquoteEle = closest(startCon, 'blockquote');
|
|
73
|
+
var endBlockquoteEle = closest(endCon, 'blockquote');
|
|
64
74
|
var liParent = !isNOU(preElem) && !isNOU(preElem.parentElement) && preElem.parentElement.tagName === 'LI';
|
|
65
75
|
if (liParent) {
|
|
66
76
|
return;
|
|
@@ -72,6 +82,17 @@ var Formats = /** @class */ (function () {
|
|
|
72
82
|
range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
|
|
73
83
|
this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, endCon, 0);
|
|
74
84
|
}
|
|
85
|
+
if (e.event.which === 13 && ((!isNOU(blockquoteEle) && !isNOU(endBlockquoteEle)) || (!isNOU(blockquoteEle) && isNOU(endBlockquoteEle)))) {
|
|
86
|
+
var startParent = this.getBlockParent(range.startContainer, blockquoteEle);
|
|
87
|
+
if ((startParent.textContent.charCodeAt(0) === 8203 &&
|
|
88
|
+
startParent.textContent.length === 1) || startParent.textContent.length === 0) {
|
|
89
|
+
if (isNOU(startParent.nextSibling) && ((startParent.previousSibling.textContent.charCodeAt(0) === 8203 &&
|
|
90
|
+
startParent.previousSibling.textContent.length === 1) || startParent.previousSibling.textContent.length === 0)) {
|
|
91
|
+
e.event.preventDefault();
|
|
92
|
+
this.paraFocus(startParent.parentElement); //Revert from blockquotes while pressing enter key
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
75
96
|
if (e.event.which === 13 && !isNOU(preElem) && !isNOU(endPreElem)) {
|
|
76
97
|
e.event.preventDefault();
|
|
77
98
|
this.deleteContent(range);
|
|
@@ -221,7 +242,7 @@ var Formats = /** @class */ (function () {
|
|
|
221
242
|
}
|
|
222
243
|
var save = this.parent.nodeSelection.save(range, this.parent.currentDocument);
|
|
223
244
|
this.parent.domNode.setMarker(save);
|
|
224
|
-
var formatsNodes = this.parent.domNode.blockNodes();
|
|
245
|
+
var formatsNodes = this.parent.domNode.blockNodes(true);
|
|
225
246
|
if (e.enterAction === 'BR') {
|
|
226
247
|
this.setSelectionBRConfig();
|
|
227
248
|
var allSelectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument);
|
|
@@ -295,7 +316,7 @@ var Formats = /** @class */ (function () {
|
|
|
295
316
|
replaceHTML = parentNode.innerHTML;
|
|
296
317
|
}
|
|
297
318
|
if ((e.subCommand.toLowerCase() === parentNode.tagName.toLowerCase() &&
|
|
298
|
-
(e.subCommand.toLowerCase() !== 'pre' ||
|
|
319
|
+
(e.subCommand.toLowerCase() !== 'pre' && e.subCommand.toLowerCase() !== 'blockquote' ||
|
|
299
320
|
(!isNOU(e.exeValue) && e.exeValue.name === 'dropDownSelect'))) ||
|
|
300
321
|
isNOU(parentNode.parentNode) ||
|
|
301
322
|
(parentNode.tagName === 'TABLE' && e.subCommand.toLowerCase() === 'pre')) {
|
|
@@ -304,7 +325,21 @@ var Formats = /** @class */ (function () {
|
|
|
304
325
|
this.cleanFormats(parentNode, e.subCommand);
|
|
305
326
|
var replaceNode = (e.subCommand.toLowerCase() === 'pre' && parentNode.tagName.toLowerCase() === 'pre') ?
|
|
306
327
|
'p' : e.subCommand;
|
|
307
|
-
var
|
|
328
|
+
var isToggleBlockquoteList = e.subCommand.toLowerCase() === parentNode.tagName.toLowerCase() &&
|
|
329
|
+
e.subCommand.toLowerCase() === 'blockquote' && this.parent.domNode.isList(parentNode.firstElementChild);
|
|
330
|
+
var isToggleBlockquote = e.subCommand.toLowerCase() === parentNode.tagName.toLowerCase()
|
|
331
|
+
&& e.subCommand.toLowerCase() === 'blockquote';
|
|
332
|
+
var replaceTag = void 0;
|
|
333
|
+
if (isToggleBlockquoteList) {
|
|
334
|
+
replaceTag = replaceHTML.replace(/>\s+</g, '><');
|
|
335
|
+
}
|
|
336
|
+
else if (isToggleBlockquote) {
|
|
337
|
+
var tagWrap = (e.enterAction == 'BR' || e.enterAction == 'P') ? 'P' : e.enterAction;
|
|
338
|
+
replaceTag = this.parent.domNode.createTagString(tagWrap, parentNode, replaceHTML.replace(/>\s+</g, '><'));
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
replaceTag = this.parent.domNode.createTagString(replaceNode, parentNode, replaceHTML.replace(/>\s+</g, '><'));
|
|
342
|
+
}
|
|
308
343
|
if (parentNode.tagName === 'LI') {
|
|
309
344
|
parentNode.innerHTML = '';
|
|
310
345
|
parentNode.insertAdjacentHTML('beforeend', replaceTag);
|
|
@@ -4,7 +4,7 @@ import { IHtmlItem } from './../base/interface';
|
|
|
4
4
|
* Link internal component
|
|
5
5
|
*
|
|
6
6
|
* @hidden
|
|
7
|
-
|
|
7
|
+
* @deprecated
|
|
8
8
|
*/
|
|
9
9
|
export declare class ImageCommand {
|
|
10
10
|
private parent;
|
|
@@ -13,7 +13,7 @@ export declare class ImageCommand {
|
|
|
13
13
|
*
|
|
14
14
|
* @param {EditorManager} parent - specifies the parent element
|
|
15
15
|
* @hidden
|
|
16
|
-
|
|
16
|
+
* @deprecated
|
|
17
17
|
*/
|
|
18
18
|
constructor(parent: EditorManager);
|
|
19
19
|
private addEventListener;
|
|
@@ -23,7 +23,7 @@ export declare class ImageCommand {
|
|
|
23
23
|
* @param {IHtmlItem} e - specifies the element
|
|
24
24
|
* @returns {void}
|
|
25
25
|
* @hidden
|
|
26
|
-
|
|
26
|
+
* @deprecated
|
|
27
27
|
*/
|
|
28
28
|
imageCommand(e: IHtmlItem): void;
|
|
29
29
|
private createImage;
|
|
@@ -6,7 +6,7 @@ import { InsertHtml } from './inserthtml';
|
|
|
6
6
|
* Link internal component
|
|
7
7
|
*
|
|
8
8
|
* @hidden
|
|
9
|
-
|
|
9
|
+
* @deprecated
|
|
10
10
|
*/
|
|
11
11
|
var ImageCommand = /** @class */ (function () {
|
|
12
12
|
/**
|
|
@@ -14,7 +14,7 @@ var ImageCommand = /** @class */ (function () {
|
|
|
14
14
|
*
|
|
15
15
|
* @param {EditorManager} parent - specifies the parent element
|
|
16
16
|
* @hidden
|
|
17
|
-
|
|
17
|
+
* @deprecated
|
|
18
18
|
*/
|
|
19
19
|
function ImageCommand(parent) {
|
|
20
20
|
this.parent = parent;
|
|
@@ -29,7 +29,7 @@ var ImageCommand = /** @class */ (function () {
|
|
|
29
29
|
* @param {IHtmlItem} e - specifies the element
|
|
30
30
|
* @returns {void}
|
|
31
31
|
* @hidden
|
|
32
|
-
|
|
32
|
+
* @deprecated
|
|
33
33
|
*/
|
|
34
34
|
ImageCommand.prototype.imageCommand = function (e) {
|
|
35
35
|
switch (e.value.toString().toLowerCase()) {
|
|
@@ -79,13 +79,12 @@ var ImageCommand = /** @class */ (function () {
|
|
|
79
79
|
}
|
|
80
80
|
};
|
|
81
81
|
ImageCommand.prototype.createImage = function (e) {
|
|
82
|
-
var _this = this;
|
|
83
82
|
var isReplaced = false;
|
|
84
83
|
e.item.url = isNOU(e.item.url) || e.item.url === 'undefined' ? e.item.src : e.item.url;
|
|
85
84
|
if (!isNOU(e.item.selectParent) && e.item.selectParent[0].tagName === 'IMG') {
|
|
86
85
|
var imgEle = e.item.selectParent[0];
|
|
87
|
-
this.setStyle(imgEle, e);
|
|
88
86
|
isReplaced = true;
|
|
87
|
+
this.setStyle(imgEle, e, isReplaced);
|
|
89
88
|
}
|
|
90
89
|
else {
|
|
91
90
|
var imgElement = createElement('img');
|
|
@@ -109,24 +108,43 @@ var ImageCommand = /** @class */ (function () {
|
|
|
109
108
|
var selectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)[0];
|
|
110
109
|
var imgElm_1 = (e.value === 'Replace' || isReplaced) ? e.item.selectParent[0] :
|
|
111
110
|
(Browser.isIE ? selectedNode.previousSibling : selectedNode.previousElementSibling);
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
111
|
+
var imageInstance_1 = this;
|
|
112
|
+
var onImageLoadEvent_1 = function () {
|
|
113
|
+
e.callBack({
|
|
114
|
+
requestType: (e.value === 'Replace') ? (e.item.subCommand = 'Replace', "Replace") : 'Images',
|
|
115
|
+
editorMode: 'HTML',
|
|
116
|
+
event: e.event,
|
|
117
|
+
range: imageInstance_1.parent.nodeSelection.getRange(imageInstance_1.parent.currentDocument),
|
|
118
|
+
elements: [imgElm_1]
|
|
119
|
+
});
|
|
120
|
+
imgElm_1.removeEventListener('load', onImageLoadEvent_1);
|
|
121
|
+
};
|
|
122
|
+
imgElm_1.addEventListener('load', onImageLoadEvent_1);
|
|
123
123
|
}
|
|
124
124
|
};
|
|
125
|
-
ImageCommand.prototype.setStyle = function (imgElement, e) {
|
|
125
|
+
ImageCommand.prototype.setStyle = function (imgElement, e, imgReplace) {
|
|
126
126
|
if (!isNOU(e.item.url)) {
|
|
127
127
|
imgElement.setAttribute('src', e.item.url);
|
|
128
128
|
}
|
|
129
|
-
|
|
129
|
+
var alignClassName;
|
|
130
|
+
if (imgReplace) {
|
|
131
|
+
var alignClass = {
|
|
132
|
+
'e-imgcenter': 'e-imgcenter',
|
|
133
|
+
'e-imgright': 'e-imgright',
|
|
134
|
+
'e-imgleft': 'e-imgleft'
|
|
135
|
+
};
|
|
136
|
+
var imgClassList = imgElement.classList;
|
|
137
|
+
var classArray = [];
|
|
138
|
+
for (var i = 0; i < imgClassList.length; i++) {
|
|
139
|
+
// eslint-disable-next-line
|
|
140
|
+
if (!isNOU(alignClass[imgClassList[i]])) {
|
|
141
|
+
// eslint-disable-next-line
|
|
142
|
+
alignClassName = alignClass[imgClassList[i]];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
imgElement.setAttribute('class', 'e-rte-image' + (isNOU(e.item.cssClass) ? '' : ' ' + e.item.cssClass)
|
|
147
|
+
+ (isNOU(alignClassName) ? '' : ' ' + alignClassName));
|
|
130
148
|
if (!isNOU(e.item.altText)) {
|
|
131
149
|
imgElement.setAttribute('alt', e.item.altText);
|
|
132
150
|
}
|
|
@@ -178,6 +196,9 @@ var ImageCommand = /** @class */ (function () {
|
|
|
178
196
|
if (!isNOU(e.item.target)) {
|
|
179
197
|
anchor.setAttribute('target', e.item.target);
|
|
180
198
|
}
|
|
199
|
+
if (!isNOU(e.item.ariaLabel)) {
|
|
200
|
+
anchor.setAttribute('aria-label', e.item.ariaLabel);
|
|
201
|
+
}
|
|
181
202
|
InsertHtml.Insert(this.parent.currentDocument, anchor, this.parent.editableElement);
|
|
182
203
|
this.callBack(e);
|
|
183
204
|
};
|
|
@@ -209,9 +230,11 @@ var ImageCommand = /** @class */ (function () {
|
|
|
209
230
|
e.item.selectNode[0].parentElement.href = e.item.url;
|
|
210
231
|
if (isNOU(e.item.target)) {
|
|
211
232
|
e.item.selectNode[0].parentElement.removeAttribute('target');
|
|
233
|
+
e.item.selectNode[0].parentElement.removeAttribute('aria-label');
|
|
212
234
|
}
|
|
213
235
|
else {
|
|
214
236
|
e.item.selectNode[0].parentElement.target = e.item.target;
|
|
237
|
+
e.item.selectNode[0].parentElement.ariaLabel = e.item.ariaLabel;
|
|
215
238
|
}
|
|
216
239
|
this.callBack(e);
|
|
217
240
|
};
|
|
@@ -3,7 +3,7 @@ import { EditorManager } from './../base/editor-manager';
|
|
|
3
3
|
* Indents internal component
|
|
4
4
|
*
|
|
5
5
|
* @hidden
|
|
6
|
-
|
|
6
|
+
* @deprecated
|
|
7
7
|
*/
|
|
8
8
|
export declare class Indents {
|
|
9
9
|
private parent;
|
|
@@ -13,7 +13,7 @@ export declare class Indents {
|
|
|
13
13
|
*
|
|
14
14
|
* @param {EditorManager} parent - specifies the parent element
|
|
15
15
|
* @hidden
|
|
16
|
-
|
|
16
|
+
* @deprecated
|
|
17
17
|
*/
|
|
18
18
|
constructor(parent: EditorManager);
|
|
19
19
|
private addEventListener;
|
|
@@ -5,7 +5,7 @@ import { isIDevice, setEditFrameFocus } from '../../common/util';
|
|
|
5
5
|
* Indents internal component
|
|
6
6
|
*
|
|
7
7
|
* @hidden
|
|
8
|
-
|
|
8
|
+
* @deprecated
|
|
9
9
|
*/
|
|
10
10
|
var Indents = /** @class */ (function () {
|
|
11
11
|
/**
|
|
@@ -13,7 +13,7 @@ var Indents = /** @class */ (function () {
|
|
|
13
13
|
*
|
|
14
14
|
* @param {EditorManager} parent - specifies the parent element
|
|
15
15
|
* @hidden
|
|
16
|
-
|
|
16
|
+
* @deprecated
|
|
17
17
|
*/
|
|
18
18
|
function Indents(parent) {
|
|
19
19
|
this.indentValue = 20;
|
|
@@ -12,7 +12,7 @@ export declare class InsertMethods {
|
|
|
12
12
|
* @param {boolean} isAfter - specifies the boolean value
|
|
13
13
|
* @returns {Text} - returns the text value
|
|
14
14
|
* @hidden
|
|
15
|
-
|
|
15
|
+
* @deprecated
|
|
16
16
|
*/
|
|
17
17
|
static WrapBefore(textNode: Text, parentNode: HTMLElement, isAfter?: boolean): Text;
|
|
18
18
|
/**
|
|
@@ -22,7 +22,7 @@ export declare class InsertMethods {
|
|
|
22
22
|
* @param {HTMLElement} parentNode - specifies the parent node.
|
|
23
23
|
* @returns {HTMLElement} - returns the element
|
|
24
24
|
* @hidden
|
|
25
|
-
|
|
25
|
+
* @deprecated
|
|
26
26
|
*/
|
|
27
27
|
static Wrap(childNode: HTMLElement, parentNode: HTMLElement): HTMLElement;
|
|
28
28
|
/**
|
|
@@ -31,7 +31,7 @@ export declare class InsertMethods {
|
|
|
31
31
|
* @param {Node} node - specifies the node element.
|
|
32
32
|
* @returns {Node[]} - returns the array of value
|
|
33
33
|
* @hidden
|
|
34
|
-
|
|
34
|
+
* @deprecated
|
|
35
35
|
*/
|
|
36
36
|
static unwrap(node: Node | HTMLElement): Node[];
|
|
37
37
|
/**
|
|
@@ -42,7 +42,7 @@ export declare class InsertMethods {
|
|
|
42
42
|
* @param {boolean} isAfter - specifies the boolean value
|
|
43
43
|
* @returns {void}
|
|
44
44
|
* @hidden
|
|
45
|
-
|
|
45
|
+
* @deprecated
|
|
46
46
|
*/
|
|
47
47
|
static AppendBefore(textNode: HTMLElement | Text | DocumentFragment, parentNode: HTMLElement | Text | DocumentFragment, isAfter?: boolean): HTMLElement | Text | DocumentFragment;
|
|
48
48
|
}
|
|
@@ -14,7 +14,7 @@ var InsertMethods = /** @class */ (function () {
|
|
|
14
14
|
* @param {boolean} isAfter - specifies the boolean value
|
|
15
15
|
* @returns {Text} - returns the text value
|
|
16
16
|
* @hidden
|
|
17
|
-
|
|
17
|
+
* @deprecated
|
|
18
18
|
*/
|
|
19
19
|
InsertMethods.WrapBefore = function (textNode, parentNode, isAfter) {
|
|
20
20
|
parentNode.innerText = textNode.textContent;
|
|
@@ -32,7 +32,7 @@ var InsertMethods = /** @class */ (function () {
|
|
|
32
32
|
* @param {HTMLElement} parentNode - specifies the parent node.
|
|
33
33
|
* @returns {HTMLElement} - returns the element
|
|
34
34
|
* @hidden
|
|
35
|
-
|
|
35
|
+
* @deprecated
|
|
36
36
|
*/
|
|
37
37
|
InsertMethods.Wrap = function (childNode, parentNode) {
|
|
38
38
|
this.AppendBefore(parentNode, childNode);
|
|
@@ -45,7 +45,7 @@ var InsertMethods = /** @class */ (function () {
|
|
|
45
45
|
* @param {Node} node - specifies the node element.
|
|
46
46
|
* @returns {Node[]} - returns the array of value
|
|
47
47
|
* @hidden
|
|
48
|
-
|
|
48
|
+
* @deprecated
|
|
49
49
|
*/
|
|
50
50
|
InsertMethods.unwrap = function (node) {
|
|
51
51
|
var parent = node.parentNode;
|
|
@@ -64,7 +64,7 @@ var InsertMethods = /** @class */ (function () {
|
|
|
64
64
|
* @param {boolean} isAfter - specifies the boolean value
|
|
65
65
|
* @returns {void}
|
|
66
66
|
* @hidden
|
|
67
|
-
|
|
67
|
+
* @deprecated
|
|
68
68
|
*/
|
|
69
69
|
InsertMethods.AppendBefore = function (textNode, parentNode, isAfter) {
|
|
70
70
|
return (parentNode.parentNode) ? ((!isAfter) ? parentNode.parentNode.insertBefore(textNode, parentNode)
|
|
@@ -3,7 +3,7 @@ import { EditorManager } from '../base/editor-manager';
|
|
|
3
3
|
* Insert a Text Node or Text
|
|
4
4
|
*
|
|
5
5
|
* @hidden
|
|
6
|
-
|
|
6
|
+
* @deprecated
|
|
7
7
|
*/
|
|
8
8
|
export declare class InsertTextExec {
|
|
9
9
|
private parent;
|
|
@@ -12,7 +12,7 @@ export declare class InsertTextExec {
|
|
|
12
12
|
*
|
|
13
13
|
* @param {EditorManager} parent - specifies the parent element
|
|
14
14
|
* @hidden
|
|
15
|
-
|
|
15
|
+
* @deprecated
|
|
16
16
|
*/
|
|
17
17
|
constructor(parent: EditorManager);
|
|
18
18
|
private addEventListener;
|
|
@@ -4,7 +4,7 @@ import { InsertHtml } from './inserthtml';
|
|
|
4
4
|
* Insert a Text Node or Text
|
|
5
5
|
*
|
|
6
6
|
* @hidden
|
|
7
|
-
|
|
7
|
+
* @deprecated
|
|
8
8
|
*/
|
|
9
9
|
var InsertTextExec = /** @class */ (function () {
|
|
10
10
|
/**
|
|
@@ -12,7 +12,7 @@ var InsertTextExec = /** @class */ (function () {
|
|
|
12
12
|
*
|
|
13
13
|
* @param {EditorManager} parent - specifies the parent element
|
|
14
14
|
* @hidden
|
|
15
|
-
|
|
15
|
+
* @deprecated
|
|
16
16
|
*/
|
|
17
17
|
function InsertTextExec(parent) {
|
|
18
18
|
this.parent = parent;
|
|
@@ -3,7 +3,7 @@ import { EditorManager } from './../base/editor-manager';
|
|
|
3
3
|
* Selection EXEC internal component
|
|
4
4
|
*
|
|
5
5
|
* @hidden
|
|
6
|
-
|
|
6
|
+
* @deprecated
|
|
7
7
|
*/
|
|
8
8
|
export declare class InsertHtmlExec {
|
|
9
9
|
private parent;
|
|
@@ -12,7 +12,7 @@ export declare class InsertHtmlExec {
|
|
|
12
12
|
*
|
|
13
13
|
* @param {EditorManager} parent - sepcifies the parent element
|
|
14
14
|
* @hidden
|
|
15
|
-
|
|
15
|
+
* @deprecated
|
|
16
16
|
*/
|
|
17
17
|
constructor(parent: EditorManager);
|
|
18
18
|
private addEventListener;
|
|
@@ -4,7 +4,7 @@ import { InsertHtml } from './inserthtml';
|
|
|
4
4
|
* Selection EXEC internal component
|
|
5
5
|
*
|
|
6
6
|
* @hidden
|
|
7
|
-
|
|
7
|
+
* @deprecated
|
|
8
8
|
*/
|
|
9
9
|
var InsertHtmlExec = /** @class */ (function () {
|
|
10
10
|
/**
|
|
@@ -12,7 +12,7 @@ var InsertHtmlExec = /** @class */ (function () {
|
|
|
12
12
|
*
|
|
13
13
|
* @param {EditorManager} parent - sepcifies the parent element
|
|
14
14
|
* @hidden
|
|
15
|
-
|
|
15
|
+
* @deprecated
|
|
16
16
|
*/
|
|
17
17
|
function InsertHtmlExec(parent) {
|
|
18
18
|
this.parent = parent;
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
* Insert a HTML Node or Text
|
|
3
3
|
*
|
|
4
4
|
* @hidden
|
|
5
|
-
|
|
5
|
+
* @deprecated
|
|
6
6
|
*/
|
|
7
7
|
export declare class InsertHtml {
|
|
8
8
|
/**
|
|
9
9
|
* Insert method
|
|
10
10
|
*
|
|
11
11
|
* @hidden
|
|
12
|
-
|
|
12
|
+
* @deprecated
|
|
13
13
|
*/
|
|
14
14
|
static inlineNode: string[];
|
|
15
15
|
static contentsDeleted: boolean;
|
|
@@ -26,4 +26,5 @@ export declare class InsertHtml {
|
|
|
26
26
|
private static findDetachEmptyElem;
|
|
27
27
|
private static removeEmptyElements;
|
|
28
28
|
private static closestEle;
|
|
29
|
+
private static insertTableInList;
|
|
29
30
|
}
|
|
@@ -3,12 +3,12 @@ import { NodeCutter } from './nodecutter';
|
|
|
3
3
|
import * as CONSTANT from './../base/constant';
|
|
4
4
|
import { detach, Browser, isNullOrUndefined as isNOU, createElement, closest } from '@syncfusion/ej2-base';
|
|
5
5
|
import { InsertMethods } from './insert-methods';
|
|
6
|
-
import { updateTextNode } from './../../common/util';
|
|
6
|
+
import { updateTextNode, nestedListCleanUp } from './../../common/util';
|
|
7
7
|
/**
|
|
8
8
|
* Insert a HTML Node or Text
|
|
9
9
|
*
|
|
10
10
|
* @hidden
|
|
11
|
-
|
|
11
|
+
* @deprecated
|
|
12
12
|
*/
|
|
13
13
|
var InsertHtml = /** @class */ (function () {
|
|
14
14
|
function InsertHtml() {
|
|
@@ -59,6 +59,10 @@ var InsertHtml = /** @class */ (function () {
|
|
|
59
59
|
var isCollapsed = range.collapsed;
|
|
60
60
|
var nodes = this.getNodeCollection(range, nodeSelection, node);
|
|
61
61
|
var closestParentNode = (node.nodeName.toLowerCase() === 'table') ? this.closestEle(nodes[0].parentNode, editNode) : nodes[0];
|
|
62
|
+
if (closestParentNode && closestParentNode.nodeName === 'LI' && node.nodeName.toLowerCase() === 'table') {
|
|
63
|
+
this.insertTableInList(range, node, closestParentNode, nodes[0], nodeCutter);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
62
66
|
if (isExternal || (!isNOU(node) && !isNOU(node.classList) &&
|
|
63
67
|
node.classList.contains('pasteContent'))) {
|
|
64
68
|
this.pasteInsertHTML(nodes, node, range, nodeSelection, nodeCutter, docElement, isCollapsed, closestParentNode, editNode, enterAction);
|
|
@@ -82,7 +86,12 @@ var InsertHtml = /** @class */ (function () {
|
|
|
82
86
|
lasNode.textContent.length : lasNode.childNodes.length);
|
|
83
87
|
range = nodeSelection.getRange(docElement);
|
|
84
88
|
}
|
|
85
|
-
range.
|
|
89
|
+
if (range.startContainer.parentElement.closest('ol,ul') !== null && range.endContainer.parentElement.closest('ol,ul') !== null) {
|
|
90
|
+
nestedListCleanUp(range);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
range.extractContents();
|
|
94
|
+
}
|
|
86
95
|
if (insertNode.tagName === 'TABLE') {
|
|
87
96
|
this.removeEmptyElements(editNode);
|
|
88
97
|
}
|
|
@@ -119,6 +128,9 @@ var InsertHtml = /** @class */ (function () {
|
|
|
119
128
|
InsertMethods.AppendBefore(node, parentNode.firstChild, false);
|
|
120
129
|
}
|
|
121
130
|
}
|
|
131
|
+
else if (isNOU(preNode.previousSibling) && insertNode.tagName === 'TABLE') {
|
|
132
|
+
parentNode.prepend(node);
|
|
133
|
+
}
|
|
122
134
|
else {
|
|
123
135
|
parentNode.appendChild(node);
|
|
124
136
|
}
|
|
@@ -203,7 +215,12 @@ var InsertHtml = /** @class */ (function () {
|
|
|
203
215
|
CONSTANT.TABLE_BLOCK_TAGS.indexOf(closestParentNode.tagName.toLocaleLowerCase()) !== -1))
|
|
204
216
|
|| (node.nodeName.toLowerCase() === 'table' && closestParentNode &&
|
|
205
217
|
CONSTANT.TABLE_BLOCK_TAGS.indexOf(closestParentNode.tagName.toLocaleLowerCase()) === -1))) {
|
|
206
|
-
|
|
218
|
+
if (isCollapsed) {
|
|
219
|
+
preNode = nodeCutter.SplitNode(range, closestParentNode, true);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
preNode = nodeCutter.SplitNode(range, closestParentNode, false);
|
|
223
|
+
}
|
|
207
224
|
sibNode = isNOU(preNode.previousSibling) ? preNode.parentNode.previousSibling : preNode.previousSibling;
|
|
208
225
|
if (nodes.length === 1) {
|
|
209
226
|
nodeSelection.setSelectionContents(docElement, preNode);
|
|
@@ -240,12 +257,17 @@ var InsertHtml = /** @class */ (function () {
|
|
|
240
257
|
preNode.parentNode.replaceChild(fragment, preNode);
|
|
241
258
|
}
|
|
242
259
|
else {
|
|
260
|
+
var startContainerParent = range.startContainer.parentNode;
|
|
261
|
+
// Get the index of the start container among its siblings
|
|
262
|
+
var startIndex = Array.prototype.indexOf.call(startContainerParent.childNodes, range.startContainer);
|
|
243
263
|
range.deleteContents();
|
|
264
|
+
range.setStart(startContainerParent, startIndex);
|
|
265
|
+
range.setEnd(startContainerParent, startIndex);
|
|
244
266
|
if (!isNOU(lasNode)) {
|
|
245
267
|
detach(lasNode);
|
|
246
268
|
}
|
|
247
269
|
// eslint-disable-next-line
|
|
248
|
-
!isNOU(sibNode) ? sibNode.parentNode.appendChild(fragment) :
|
|
270
|
+
!isNOU(sibNode) ? (sibNode.parentNode === editNode ? sibNode.appendChild(fragment) : sibNode.parentNode.appendChild(fragment)) : range.insertNode(fragment);
|
|
249
271
|
}
|
|
250
272
|
}
|
|
251
273
|
else {
|
|
@@ -285,6 +307,9 @@ var InsertHtml = /** @class */ (function () {
|
|
|
285
307
|
var paraElm = void 0;
|
|
286
308
|
var previousParent = void 0;
|
|
287
309
|
if (!this.contentsDeleted) {
|
|
310
|
+
if (!isCollapsed && range.startContainer.parentElement.textContent.length === 0 && range.startContainer.nodeName === 'BR' && range.startContainer.parentElement.nodeName === 'P') {
|
|
311
|
+
editNode.removeChild(range.startContainer.parentElement);
|
|
312
|
+
}
|
|
288
313
|
range.deleteContents();
|
|
289
314
|
}
|
|
290
315
|
while (node.firstChild) {
|
|
@@ -296,7 +321,7 @@ var InsertHtml = /** @class */ (function () {
|
|
|
296
321
|
(this.inlineNode.indexOf(node.firstChild.nodeName.toLocaleLowerCase()) >= 0 && isFirstTextNode)) {
|
|
297
322
|
lastSelectionNode = node.firstChild;
|
|
298
323
|
if (isNOU(node.previousElementSibling)) {
|
|
299
|
-
var firstParaElm = createElement('p');
|
|
324
|
+
var firstParaElm = enterAction === 'DIV' ? createElement('div') : createElement('p');
|
|
300
325
|
node.parentElement.insertBefore(firstParaElm, node);
|
|
301
326
|
}
|
|
302
327
|
if (node.previousElementSibling.nodeName === 'BR') {
|
|
@@ -311,7 +336,7 @@ var InsertHtml = /** @class */ (function () {
|
|
|
311
336
|
if (node.firstChild.nodeName === '#text' ||
|
|
312
337
|
(this.inlineNode.indexOf(node.firstChild.nodeName.toLocaleLowerCase()) >= 0)) {
|
|
313
338
|
if (!isPreviousInlineElem) {
|
|
314
|
-
paraElm = createElement('p');
|
|
339
|
+
paraElm = enterAction === 'DIV' ? createElement('div') : createElement('p');
|
|
315
340
|
paraElm.appendChild(node.firstChild);
|
|
316
341
|
fragment.appendChild(paraElm);
|
|
317
342
|
}
|
|
@@ -470,7 +495,15 @@ var InsertHtml = /** @class */ (function () {
|
|
|
470
495
|
};
|
|
471
496
|
InsertHtml.imageFocus = function (node, nodeSelection, docElement) {
|
|
472
497
|
var focusNode = document.createTextNode(' ');
|
|
473
|
-
node.parentNode
|
|
498
|
+
if (node.parentNode && node.parentNode.nodeName === 'A') {
|
|
499
|
+
var anchorTag = node.parentNode;
|
|
500
|
+
var parentNode = anchorTag.parentNode;
|
|
501
|
+
parentNode.insertBefore(focusNode, anchorTag.nextSibling);
|
|
502
|
+
parentNode.insertBefore(node, focusNode);
|
|
503
|
+
}
|
|
504
|
+
else {
|
|
505
|
+
node.parentNode.insertBefore(focusNode, node.nextSibling);
|
|
506
|
+
}
|
|
474
507
|
nodeSelection.setSelectionText(docElement, node.nextSibling, node.nextSibling, 0, 0);
|
|
475
508
|
};
|
|
476
509
|
// eslint-disable-next-line
|
|
@@ -525,6 +558,9 @@ var InsertHtml = /** @class */ (function () {
|
|
|
525
558
|
};
|
|
526
559
|
InsertHtml.closestEle = function (element, editNode) {
|
|
527
560
|
var el = element;
|
|
561
|
+
if (closest(el, 'li')) {
|
|
562
|
+
return closest(el, 'li');
|
|
563
|
+
}
|
|
528
564
|
while (el && el.nodeType === 1) {
|
|
529
565
|
if (el.parentNode === editNode ||
|
|
530
566
|
(!isNOU(el.parentNode.tagName) &&
|
|
@@ -535,11 +571,35 @@ var InsertHtml = /** @class */ (function () {
|
|
|
535
571
|
}
|
|
536
572
|
return null;
|
|
537
573
|
};
|
|
574
|
+
InsertHtml.insertTableInList = function (range, insertNode, parentNode, currentNode, nodeCutter) {
|
|
575
|
+
if (range.collapsed) {
|
|
576
|
+
var isStart = range.startOffset === 0;
|
|
577
|
+
var isEnd = range.startContainer.textContent.trimEnd().length === range.startOffset;
|
|
578
|
+
if (isStart || isEnd) {
|
|
579
|
+
if (isStart) {
|
|
580
|
+
InsertMethods.AppendBefore(insertNode, currentNode, false);
|
|
581
|
+
}
|
|
582
|
+
else {
|
|
583
|
+
InsertMethods.AppendBefore(insertNode, currentNode, true);
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
else {
|
|
587
|
+
var preNode = nodeCutter.SplitNode(range, parentNode, true);
|
|
588
|
+
var sibNode = preNode.previousSibling;
|
|
589
|
+
sibNode.appendChild(insertNode);
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
else {
|
|
593
|
+
range.deleteContents();
|
|
594
|
+
parentNode.appendChild(insertNode);
|
|
595
|
+
}
|
|
596
|
+
insertNode.classList.add('ignore-table');
|
|
597
|
+
};
|
|
538
598
|
/**
|
|
539
599
|
* Insert method
|
|
540
600
|
*
|
|
541
601
|
* @hidden
|
|
542
|
-
|
|
602
|
+
* @deprecated
|
|
543
603
|
*/
|
|
544
604
|
InsertHtml.inlineNode = ['a', 'abbr', 'acronym', 'audio', 'b', 'bdi', 'bdo', 'big', 'br', 'button',
|
|
545
605
|
'canvas', 'cite', 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'font', 'i', 'iframe', 'img', 'input',
|