@syncfusion/ej2-richtexteditor 25.2.3 → 25.2.4-621927
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 +2067 -2011
- 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 +575 -287
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +675 -383
- 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 +84 -84
- package/src/common/interface.d.ts +22 -8
- package/src/common/util.js +4 -1
- package/src/editor-manager/base/classes.d.ts +1 -1
- package/src/editor-manager/base/classes.js +1 -1
- package/src/editor-manager/base/editor-manager.d.ts +3 -3
- package/src/editor-manager/base/editor-manager.js +8 -6
- package/src/editor-manager/base/enum.d.ts +2 -2
- package/src/editor-manager/base/interface.d.ts +9 -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 +5 -2
- package/src/editor-manager/plugin/audio.d.ts +3 -3
- package/src/editor-manager/plugin/audio.js +3 -3
- 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 +54 -34
- package/src/editor-manager/plugin/dom-node.js +139 -36
- package/src/editor-manager/plugin/format-painter-actions.d.ts +1 -1
- package/src/editor-manager/plugin/format-painter-actions.js +1 -1
- package/src/editor-manager/plugin/formats.d.ts +2 -2
- package/src/editor-manager/plugin/formats.js +3 -3
- package/src/editor-manager/plugin/image.d.ts +3 -3
- package/src/editor-manager/plugin/image.js +3 -3
- package/src/editor-manager/plugin/indents.d.ts +2 -2
- package/src/editor-manager/plugin/indents.js +5 -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 +2 -2
- package/src/editor-manager/plugin/inserthtml.js +5 -2
- 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 +2 -2
- package/src/editor-manager/plugin/lists.d.ts +2 -3
- package/src/editor-manager/plugin/lists.js +57 -80
- package/src/editor-manager/plugin/ms-word-clean-up.d.ts +1 -1
- package/src/editor-manager/plugin/ms-word-clean-up.js +2 -2
- package/src/editor-manager/plugin/nodecutter.d.ts +6 -6
- package/src/editor-manager/plugin/nodecutter.js +6 -6
- package/src/editor-manager/plugin/selection-commands.d.ts +1 -1
- package/src/editor-manager/plugin/selection-commands.js +1 -1
- 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 -2
- package/src/editor-manager/plugin/table.js +2 -2
- package/src/editor-manager/plugin/toolbar-status.d.ts +2 -2
- package/src/editor-manager/plugin/toolbar-status.js +2 -2
- package/src/editor-manager/plugin/undo.d.ts +6 -6
- package/src/editor-manager/plugin/undo.js +6 -6
- 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 +9 -9
- package/src/rich-text-editor/actions/base-quick-toolbar.js +9 -9
- package/src/rich-text-editor/actions/base-toolbar.d.ts +3 -3
- package/src/rich-text-editor/actions/base-toolbar.js +3 -3
- package/src/rich-text-editor/actions/color-picker.d.ts +2 -2
- package/src/rich-text-editor/actions/color-picker.js +2 -2
- package/src/rich-text-editor/actions/count.d.ts +3 -3
- package/src/rich-text-editor/actions/count.js +3 -3
- package/src/rich-text-editor/actions/dropdown-buttons.d.ts +2 -2
- package/src/rich-text-editor/actions/dropdown-buttons.js +2 -2
- package/src/rich-text-editor/actions/emoji-picker.d.ts +1 -1
- package/src/rich-text-editor/actions/emoji-picker.js +1 -1
- package/src/rich-text-editor/actions/enter-key.d.ts +5 -0
- package/src/rich-text-editor/actions/enter-key.js +98 -13
- package/src/rich-text-editor/actions/full-screen.d.ts +3 -3
- package/src/rich-text-editor/actions/full-screen.js +3 -9
- package/src/rich-text-editor/actions/html-editor.d.ts +4 -3
- package/src/rich-text-editor/actions/html-editor.js +66 -13
- 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 +20 -20
- package/src/rich-text-editor/actions/markdown-editor.d.ts +2 -2
- package/src/rich-text-editor/actions/markdown-editor.js +2 -2
- package/src/rich-text-editor/actions/paste-clean-up.d.ts +2 -1
- package/src/rich-text-editor/actions/paste-clean-up.js +44 -7
- package/src/rich-text-editor/actions/quick-toolbar.d.ts +9 -9
- package/src/rich-text-editor/actions/quick-toolbar.js +9 -9
- package/src/rich-text-editor/actions/toolbar.d.ts +13 -13
- package/src/rich-text-editor/actions/toolbar.js +13 -13
- 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 +121 -121
- package/src/rich-text-editor/base/classes.js +121 -121
- package/src/rich-text-editor/base/constant.d.ts +158 -158
- package/src/rich-text-editor/base/constant.js +158 -158
- 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 +50 -50
- 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 +63 -61
- package/src/rich-text-editor/base/rich-text-editor.js +82 -67
- package/src/rich-text-editor/base/util.d.ts +1 -1
- package/src/rich-text-editor/base/util.js +1 -1
- package/src/rich-text-editor/formatter/formatter.d.ts +8 -8
- package/src/rich-text-editor/formatter/formatter.js +8 -8
- 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/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/toolbar-settings-model.d.ts +760 -760
- package/src/rich-text-editor/models/toolbar-settings.js +19 -19
- package/src/rich-text-editor/renderer/audio-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/audio-module.js +7 -2
- 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 +2 -2
- package/src/rich-text-editor/renderer/dialog-renderer.js +2 -2
- package/src/rich-text-editor/renderer/iframe-content-renderer.d.ts +4 -4
- package/src/rich-text-editor/renderer/iframe-content-renderer.js +17 -17
- package/src/rich-text-editor/renderer/image-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/image-module.js +10 -5
- package/src/rich-text-editor/renderer/link-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/link-module.js +1 -1
- 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 +1 -1
- package/src/rich-text-editor/renderer/table-module.js +3 -2
- package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +9 -9
- package/src/rich-text-editor/renderer/toolbar-renderer.js +16 -18
- package/src/rich-text-editor/renderer/video-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/video-module.js +7 -2
- package/src/rich-text-editor/renderer/view-source.d.ts +6 -6
- package/src/rich-text-editor/renderer/view-source.js +6 -6
- 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 +22 -22
- package/styles/_all.scss +1 -1
- package/styles/bootstrap-dark.css +702 -795
- package/styles/bootstrap-dark.scss +4 -1
- package/styles/bootstrap.css +686 -795
- package/styles/bootstrap.scss +4 -1
- package/styles/bootstrap4.css +689 -797
- package/styles/bootstrap4.scss +4 -1
- package/styles/bootstrap5-dark.css +713 -834
- package/styles/bootstrap5-dark.scss +4 -1
- package/styles/bootstrap5.css +712 -833
- package/styles/bootstrap5.scss +4 -1
- package/styles/fabric-dark.css +687 -791
- package/styles/fabric-dark.scss +4 -1
- package/styles/fabric.css +683 -791
- package/styles/fabric.scss +4 -1
- package/styles/fluent-dark.css +690 -814
- package/styles/fluent-dark.scss +4 -1
- package/styles/fluent.css +689 -813
- package/styles/fluent.scss +4 -1
- package/styles/fluent2.css +4219 -0
- package/styles/fluent2.scss +4 -0
- package/styles/highcontrast-light.css +658 -789
- package/styles/highcontrast-light.scss +4 -1
- package/styles/highcontrast.css +664 -787
- package/styles/highcontrast.scss +4 -1
- package/styles/material-dark.css +679 -792
- package/styles/material-dark.scss +4 -1
- package/styles/material.css +676 -794
- package/styles/material.scss +4 -1
- package/styles/material3-dark.css +715 -852
- package/styles/material3-dark.scss +4 -1
- package/styles/material3.css +715 -852
- package/styles/material3.scss +4 -1
- package/styles/rich-text-editor/_all.scss +2 -2
- package/styles/rich-text-editor/_bds-definition.scss +288 -285
- package/styles/rich-text-editor/_bigger.scss +610 -0
- package/styles/rich-text-editor/_bootstrap-dark-definition.scss +289 -287
- package/styles/rich-text-editor/_bootstrap-definition.scss +347 -343
- package/styles/rich-text-editor/_bootstrap4-definition.scss +474 -470
- package/styles/rich-text-editor/_bootstrap5-definition.scss +276 -272
- package/styles/rich-text-editor/_bootstrap5.3-definition.scss +276 -0
- package/styles/rich-text-editor/_fabric-dark-definition.scss +273 -269
- package/styles/rich-text-editor/_fabric-definition.scss +271 -267
- package/styles/rich-text-editor/_fluent-definition.scss +277 -273
- package/styles/rich-text-editor/_fluent2-definition.scss +285 -0
- package/styles/rich-text-editor/_fusionnew-definition.scss +274 -271
- package/styles/rich-text-editor/_highcontrast-definition.scss +272 -267
- package/styles/rich-text-editor/_highcontrast-light-definition.scss +271 -267
- package/styles/rich-text-editor/_layout.scss +2148 -2269
- package/styles/rich-text-editor/_material-dark-definition.scss +276 -272
- package/styles/rich-text-editor/_material-definition.scss +274 -270
- package/styles/rich-text-editor/_material3-definition.scss +276 -272
- package/styles/rich-text-editor/_tailwind-definition.scss +271 -267
- package/styles/rich-text-editor/_theme.scss +802 -927
- package/styles/rich-text-editor/bootstrap-dark.css +702 -795
- package/styles/rich-text-editor/bootstrap.css +686 -795
- package/styles/rich-text-editor/bootstrap4.css +689 -797
- package/styles/rich-text-editor/bootstrap5-dark.css +713 -834
- package/styles/rich-text-editor/bootstrap5.css +712 -833
- package/styles/rich-text-editor/fabric-dark.css +687 -791
- package/styles/rich-text-editor/fabric.css +683 -791
- package/styles/rich-text-editor/fluent-dark.css +690 -814
- package/styles/rich-text-editor/fluent.css +689 -813
- package/styles/rich-text-editor/fluent2.css +4219 -0
- package/styles/rich-text-editor/fluent2.scss +4 -0
- package/styles/rich-text-editor/highcontrast-light.css +658 -789
- package/styles/rich-text-editor/highcontrast.css +664 -787
- package/styles/rich-text-editor/icons/_bds.scss +372 -351
- package/styles/rich-text-editor/icons/_bootstrap-dark.scss +373 -352
- package/styles/rich-text-editor/icons/_bootstrap.scss +373 -352
- package/styles/rich-text-editor/icons/_bootstrap4.scss +373 -352
- package/styles/rich-text-editor/icons/_bootstrap5.3.scss +372 -0
- package/styles/rich-text-editor/icons/_bootstrap5.scss +372 -351
- package/styles/rich-text-editor/icons/_fabric-dark.scss +373 -352
- package/styles/rich-text-editor/icons/_fabric.scss +373 -352
- package/styles/rich-text-editor/icons/_fluent.scss +372 -351
- package/styles/rich-text-editor/icons/_fluent2.scss +369 -0
- package/styles/rich-text-editor/icons/_fusionnew.scss +357 -348
- package/styles/rich-text-editor/icons/_highcontrast-light.scss +361 -352
- package/styles/rich-text-editor/icons/_highcontrast.scss +361 -352
- package/styles/rich-text-editor/icons/_material-dark.scss +373 -352
- package/styles/rich-text-editor/icons/_material.scss +373 -352
- package/styles/rich-text-editor/icons/_material3.scss +372 -351
- package/styles/rich-text-editor/icons/_tailwind.scss +372 -351
- package/styles/rich-text-editor/material-dark.css +679 -792
- package/styles/rich-text-editor/material.css +676 -794
- package/styles/rich-text-editor/material3-dark.css +715 -852
- package/styles/rich-text-editor/material3-dark.scss +1 -1
- package/styles/rich-text-editor/material3.css +715 -852
- package/styles/rich-text-editor/material3.scss +1 -1
- package/styles/rich-text-editor/tailwind-dark.css +702 -822
- package/styles/rich-text-editor/tailwind.css +702 -822
- package/styles/tailwind-dark.css +702 -822
- package/styles/tailwind-dark.scss +4 -1
- package/styles/tailwind.css +702 -822
- package/styles/tailwind.scss +4 -1
- 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
|
@@ -778,18 +778,18 @@ const closeTooltip = 'closeTooltip';
|
|
|
778
778
|
* @hidden
|
|
779
779
|
* @deprecated
|
|
780
780
|
*/
|
|
781
|
-
const blockEmptyNodes = `address:empty, article:empty, aside:empty, blockquote:empty,
|
|
782
|
-
details:empty, dd:empty, div:empty, dl:empty, dt:empty, fieldset:empty, footer:empty,form:empty, h1:empty,
|
|
783
|
-
h2:empty, h3:empty, h4:empty, h5:empty, h6:empty, header:empty, hgroup:empty, li:empty, main:empty, nav:empty,
|
|
781
|
+
const blockEmptyNodes = `address:empty, article:empty, aside:empty, blockquote:empty,
|
|
782
|
+
details:empty, dd:empty, div:empty, dl:empty, dt:empty, fieldset:empty, footer:empty,form:empty, h1:empty,
|
|
783
|
+
h2:empty, h3:empty, h4:empty, h5:empty, h6:empty, header:empty, hgroup:empty, li:empty, main:empty, nav:empty,
|
|
784
784
|
noscript:empty, output:empty, p:empty, pre:empty, section:empty, td:empty, th:empty`;
|
|
785
785
|
/**
|
|
786
786
|
* @hidden
|
|
787
787
|
* @deprecated
|
|
788
788
|
*/
|
|
789
|
-
const inlineEmptyNodes = `a:empty, abbr:empty, acronym:empty, b:empty, bdi:empty, bdo:empty, big:empty, button:empty,
|
|
790
|
-
canvas:empty, cite:empty, code:empty, data:empty, datalist:empty, del:empty, dfn:empty, em:empty, font:empty, i:empty, iframe:empty,
|
|
791
|
-
ins:empty, kbd:empty, label:empty, map:empty, mark:empty, meter:empty, noscript:empty, object:empty, output:empty, picture:empty, progress:empty,
|
|
792
|
-
q:empty, ruby:empty, s:empty, samp:empty, script:empty, select:empty, slot:empty, small:empty, span:empty, strong:empty, strike:empty, sub:empty, sup:empty, svg:empty,
|
|
789
|
+
const inlineEmptyNodes = `a:empty, abbr:empty, acronym:empty, b:empty, bdi:empty, bdo:empty, big:empty, button:empty,
|
|
790
|
+
canvas:empty, cite:empty, code:empty, data:empty, datalist:empty, del:empty, dfn:empty, em:empty, font:empty, i:empty, iframe:empty,
|
|
791
|
+
ins:empty, kbd:empty, label:empty, map:empty, mark:empty, meter:empty, noscript:empty, object:empty, output:empty, picture:empty, progress:empty,
|
|
792
|
+
q:empty, ruby:empty, s:empty, samp:empty, script:empty, select:empty, slot:empty, small:empty, span:empty, strong:empty, strike:empty, sub:empty, sup:empty, svg:empty,
|
|
793
793
|
template:empty, textarea:empty, time:empty, u:empty, tt:empty, var:empty, wbr:empty`;
|
|
794
794
|
/**
|
|
795
795
|
* @hidden
|
|
@@ -4574,11 +4574,14 @@ function nestedListCleanUp(range) {
|
|
|
4574
4574
|
item.remove();
|
|
4575
4575
|
});
|
|
4576
4576
|
}
|
|
4577
|
+
else {
|
|
4578
|
+
break;
|
|
4579
|
+
}
|
|
4577
4580
|
}
|
|
4578
4581
|
let liElem = (range.startContainer.nodeName === "#text" ? range.startContainer.parentElement : range.startContainer).querySelectorAll("li");
|
|
4579
4582
|
if (liElem.length > 0) {
|
|
4580
4583
|
liElem.forEach((item) => {
|
|
4581
|
-
if (item.firstChild.nodeName === "OL" || item.firstChild.nodeName === "UL") {
|
|
4584
|
+
if (!isNullOrUndefined(item.firstChild) && (item.firstChild.nodeName === "OL" || item.firstChild.nodeName === "UL")) {
|
|
4582
4585
|
item.style.listStyleType = "none";
|
|
4583
4586
|
}
|
|
4584
4587
|
});
|
|
@@ -5449,8 +5452,6 @@ class ToolbarRenderer {
|
|
|
5449
5452
|
target: colorPicker.element.parentElement, cssClass: css,
|
|
5450
5453
|
enablePersistence: this.parent.enablePersistence, enableRtl: this.parent.enableRtl,
|
|
5451
5454
|
beforeOpen: (dropDownArgs) => {
|
|
5452
|
-
colorPicker.inline = true;
|
|
5453
|
-
colorPicker.dataBind();
|
|
5454
5455
|
if (proxy.parent.readonly || !proxy.parent.enabled) {
|
|
5455
5456
|
dropDownArgs.cancel = true;
|
|
5456
5457
|
return;
|
|
@@ -5588,14 +5589,18 @@ class ToolbarRenderer {
|
|
|
5588
5589
|
const colorPicker = new ColorPicker({
|
|
5589
5590
|
enablePersistence: this.parent.enablePersistence,
|
|
5590
5591
|
enableRtl: this.parent.enableRtl,
|
|
5591
|
-
inline:
|
|
5592
|
-
value:
|
|
5592
|
+
inline: true,
|
|
5593
|
+
value: null,
|
|
5594
|
+
cssClass: ((item === 'backgroundcolor') ? CLS_BACKGROUND_COLOR_PICKER : CLS_FONT_COLOR_PICKER) + ' ' + args.cssClass + ' ' + 'e-rte-picker-init',
|
|
5593
5595
|
created: () => {
|
|
5594
5596
|
const value = (item === 'backgroundcolor') ? proxy.parent.backgroundColor.default : proxy.parent.fontColor.default;
|
|
5595
|
-
colorPicker.
|
|
5597
|
+
colorPicker.cssClass = ((item === 'backgroundcolor') ? CLS_BACKGROUND_COLOR_PICKER : CLS_FONT_COLOR_PICKER) + ' ' + args.cssClass;
|
|
5598
|
+
colorPicker.value = value;
|
|
5596
5599
|
},
|
|
5597
5600
|
mode: ((item === 'backgroundcolor') ? proxy.parent.backgroundColor.mode : proxy.parent.fontColor.mode),
|
|
5598
5601
|
modeSwitcher: ((item === 'backgroundcolor') ? proxy.parent.backgroundColor.modeSwitcher : proxy.parent.fontColor.modeSwitcher),
|
|
5602
|
+
presetColors: (item === 'backgroundcolor') ? this.parent.backgroundColor.colorCode : this.parent.fontColor.colorCode,
|
|
5603
|
+
columns: (item === 'backgroundcolor') ? this.parent.backgroundColor.columns : this.parent.fontColor.columns,
|
|
5599
5604
|
beforeTileRender: (args) => {
|
|
5600
5605
|
args.element.classList.add(CLS_COLOR_PALETTE);
|
|
5601
5606
|
args.element.classList.add(CLS_CUSTOM_TILE);
|
|
@@ -5640,10 +5645,6 @@ class ToolbarRenderer {
|
|
|
5640
5645
|
}
|
|
5641
5646
|
});
|
|
5642
5647
|
colorPicker.isStringTemplate = true;
|
|
5643
|
-
colorPicker.columns = (item === 'backgroundcolor') ? this.parent.backgroundColor.columns : this.parent.fontColor.columns;
|
|
5644
|
-
colorPicker.presetColors = (item === 'backgroundcolor') ? this.parent.backgroundColor.colorCode :
|
|
5645
|
-
this.parent.fontColor.colorCode;
|
|
5646
|
-
colorPicker.cssClass = ((item === 'backgroundcolor') ? CLS_BACKGROUND_COLOR_PICKER : CLS_FONT_COLOR_PICKER) + ' ' + args.cssClass;
|
|
5647
5648
|
colorPicker.createElement = this.parent.createElement;
|
|
5648
5649
|
colorPicker.appendTo(document.getElementById(args.target));
|
|
5649
5650
|
return colorPicker;
|
|
@@ -7210,12 +7211,12 @@ class Toolbar$2 {
|
|
|
7210
7211
|
}
|
|
7211
7212
|
}
|
|
7212
7213
|
|
|
7213
|
-
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
7214
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7215
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7216
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7217
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7218
|
-
};
|
|
7214
|
+
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
7215
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7216
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7217
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7218
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7219
|
+
};
|
|
7219
7220
|
var KeyboardEvents_1;
|
|
7220
7221
|
const keyCode = {
|
|
7221
7222
|
'backspace': 8,
|
|
@@ -12250,7 +12251,7 @@ class DOMNode {
|
|
|
12250
12251
|
unWrap(element) {
|
|
12251
12252
|
const parent = element.parentNode;
|
|
12252
12253
|
let unWrapNode = [];
|
|
12253
|
-
while (element.firstChild) {
|
|
12254
|
+
while (element.firstChild && (element.previousSibling !== this.parent.querySelector('.e-mention-chip') || element.textContent !== ' ')) {
|
|
12254
12255
|
unWrapNode.push(element.firstChild);
|
|
12255
12256
|
parent.insertBefore(element.firstChild, element);
|
|
12256
12257
|
}
|
|
@@ -12600,6 +12601,109 @@ class DOMNode {
|
|
|
12600
12601
|
}
|
|
12601
12602
|
return null;
|
|
12602
12603
|
}
|
|
12604
|
+
/**
|
|
12605
|
+
* Method to wrap the inline and text node with block node.
|
|
12606
|
+
*
|
|
12607
|
+
* @param {HTMLElement} node - specifies the element sent to wrap the node around it with block nodes.
|
|
12608
|
+
* @param {string} wrapperElement - specifies which block nodes to wrap around.
|
|
12609
|
+
* @returns {HTMLElement} - returns the wrapped element.
|
|
12610
|
+
* @hidden
|
|
12611
|
+
* @deprecated
|
|
12612
|
+
*/
|
|
12613
|
+
gatherElementsAround(node, wrapperElement) {
|
|
12614
|
+
const newWrapElem = createElement(wrapperElement);
|
|
12615
|
+
// Insert the new div element before the current node.
|
|
12616
|
+
let currentNode = node.previousSibling;
|
|
12617
|
+
const currentNodeParent = node.parentElement;
|
|
12618
|
+
if (currentNodeParent.className === 'e-editor-select-start') {
|
|
12619
|
+
currentNodeParent.parentNode.insertBefore(newWrapElem, currentNodeParent);
|
|
12620
|
+
}
|
|
12621
|
+
else if (currentNodeParent) {
|
|
12622
|
+
currentNodeParent.insertBefore(newWrapElem, node);
|
|
12623
|
+
}
|
|
12624
|
+
let i = 0;
|
|
12625
|
+
while (currentNode !== null && currentNode.nodeName !== 'BR' &&
|
|
12626
|
+
!this.isBlockNode(currentNode)) {
|
|
12627
|
+
const prevSibling = currentNode.previousSibling;
|
|
12628
|
+
if (currentNode.nodeType === 3 || currentNode.nodeType === 1) {
|
|
12629
|
+
if (i === 0) {
|
|
12630
|
+
newWrapElem.appendChild(currentNode);
|
|
12631
|
+
}
|
|
12632
|
+
else {
|
|
12633
|
+
newWrapElem.insertBefore(currentNode, newWrapElem.firstChild);
|
|
12634
|
+
}
|
|
12635
|
+
}
|
|
12636
|
+
currentNode = prevSibling;
|
|
12637
|
+
i++;
|
|
12638
|
+
}
|
|
12639
|
+
// Add the current node to the new div
|
|
12640
|
+
newWrapElem.appendChild(node);
|
|
12641
|
+
// Gather text and inline elements after the currentNode
|
|
12642
|
+
currentNode = newWrapElem.nextSibling ? newWrapElem.nextSibling :
|
|
12643
|
+
newWrapElem.parentElement.nextSibling;
|
|
12644
|
+
while (currentNode !== null && currentNode.nodeName !== 'BR' &&
|
|
12645
|
+
!this.isBlockNode(currentNode)) {
|
|
12646
|
+
const nextSibling = currentNode.nextSibling ?
|
|
12647
|
+
currentNode.nextSibling : currentNode.parentElement.nextSibling;
|
|
12648
|
+
if (currentNode.nodeType === 3 || currentNode.nodeType === 1) {
|
|
12649
|
+
newWrapElem.appendChild(currentNode);
|
|
12650
|
+
}
|
|
12651
|
+
currentNode = nextSibling;
|
|
12652
|
+
}
|
|
12653
|
+
return newWrapElem;
|
|
12654
|
+
}
|
|
12655
|
+
/**
|
|
12656
|
+
* Method to convert all the inline nodes between the selection to block nodes.
|
|
12657
|
+
*
|
|
12658
|
+
* @param {Node[]} selectedNodes - specifies the nodes of the start and end selection.
|
|
12659
|
+
* @param {boolean} fromList - specifies if the method is called from list module.
|
|
12660
|
+
* @returns {Node[]} - returns the selected list of elements as block nodes.
|
|
12661
|
+
* @hidden
|
|
12662
|
+
* @deprecated
|
|
12663
|
+
*/
|
|
12664
|
+
convertToBlockNodes(selectedNodes, fromList) {
|
|
12665
|
+
if (selectedNodes.length > 1) {
|
|
12666
|
+
let i = 0;
|
|
12667
|
+
let currentSelectedNode = selectedNodes[0];
|
|
12668
|
+
while (!isNullOrUndefined(currentSelectedNode)) {
|
|
12669
|
+
if (currentSelectedNode.nodeName === 'BR') {
|
|
12670
|
+
const nextNode = currentSelectedNode.nextSibling;
|
|
12671
|
+
detach(currentSelectedNode);
|
|
12672
|
+
currentSelectedNode = nextNode;
|
|
12673
|
+
}
|
|
12674
|
+
if (!isNullOrUndefined(currentSelectedNode)) {
|
|
12675
|
+
if (fromList) {
|
|
12676
|
+
selectedNodes[i] = currentSelectedNode.nodeName === 'LI' || this.isBlockNode(currentSelectedNode) ?
|
|
12677
|
+
currentSelectedNode :
|
|
12678
|
+
this.gatherElementsAround(currentSelectedNode, (fromList ? 'p' : 'div'));
|
|
12679
|
+
}
|
|
12680
|
+
else {
|
|
12681
|
+
selectedNodes[i] = !this.isBlockNode(selectedNodes[i]) ?
|
|
12682
|
+
this.gatherElementsAround(currentSelectedNode, (fromList ? 'p' : 'div')) :
|
|
12683
|
+
selectedNodes[i];
|
|
12684
|
+
}
|
|
12685
|
+
const currentProcessNode = selectedNodes[i].nodeName === 'LI' ? selectedNodes[i].parentElement : selectedNodes[i];
|
|
12686
|
+
const currentElementCheckNode = currentProcessNode.nodeName === '#text' ? currentProcessNode.parentElement : currentProcessNode;
|
|
12687
|
+
currentSelectedNode = !isNullOrUndefined(currentElementCheckNode.querySelector('.e-editor-select-end')) ||
|
|
12688
|
+
!isNullOrUndefined(closest(currentSelectedNode, '.e-editor-select-end')) ?
|
|
12689
|
+
null : currentProcessNode.nextSibling;
|
|
12690
|
+
if (currentSelectedNode === null && !isNullOrUndefined(currentProcessNode.nextSibling) && currentProcessNode.nextSibling.nodeName === 'BR') {
|
|
12691
|
+
detach(currentProcessNode.nextSibling);
|
|
12692
|
+
}
|
|
12693
|
+
}
|
|
12694
|
+
i++;
|
|
12695
|
+
}
|
|
12696
|
+
}
|
|
12697
|
+
else {
|
|
12698
|
+
if (!this.isBlockNode(selectedNodes[0])) {
|
|
12699
|
+
selectedNodes[0] = this.gatherElementsAround(selectedNodes[0], (fromList ? 'p' : 'div'));
|
|
12700
|
+
if (!isNullOrUndefined(selectedNodes[0].nextSibling) && (selectedNodes[0].nextSibling.nodeName === 'BR')) {
|
|
12701
|
+
detach(selectedNodes[0].nextSibling);
|
|
12702
|
+
}
|
|
12703
|
+
}
|
|
12704
|
+
}
|
|
12705
|
+
return selectedNodes;
|
|
12706
|
+
}
|
|
12603
12707
|
/**
|
|
12604
12708
|
* blockNodes method
|
|
12605
12709
|
*
|
|
@@ -13107,7 +13211,7 @@ class Lists {
|
|
|
13107
13211
|
e.event.preventDefault();
|
|
13108
13212
|
}
|
|
13109
13213
|
}
|
|
13110
|
-
onKeyUp() {
|
|
13214
|
+
onKeyUp(e) {
|
|
13111
13215
|
if (!isNullOrUndefined(this.commonLIParent) && !isNullOrUndefined(this.commonLIParent.querySelector('.removeList'))) {
|
|
13112
13216
|
const currentLIElem = this.commonLIParent.querySelector('.removeList');
|
|
13113
13217
|
while (!isNullOrUndefined(currentLIElem.firstChild)) {
|
|
@@ -13115,6 +13219,14 @@ class Lists {
|
|
|
13115
13219
|
}
|
|
13116
13220
|
detach(currentLIElem);
|
|
13117
13221
|
}
|
|
13222
|
+
if (e.event.keyCode === 13) {
|
|
13223
|
+
const listElements = this.parent.editableElement.querySelectorAll('UL, OL');
|
|
13224
|
+
for (let i = 0; i < listElements.length; i++) {
|
|
13225
|
+
if (!isNullOrUndefined(listElements[i]) && !isNullOrUndefined(listElements[i].parentElement) && !isNullOrUndefined(listElements[i].previousElementSibling) && (listElements[i].parentElement.nodeName === 'UL' || listElements[i].parentElement.nodeName === 'OL')) {
|
|
13226
|
+
listElements[i].previousElementSibling.appendChild(listElements[i]);
|
|
13227
|
+
}
|
|
13228
|
+
}
|
|
13229
|
+
}
|
|
13118
13230
|
}
|
|
13119
13231
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
13120
13232
|
firstListBackSpace(range, _e) {
|
|
@@ -13356,6 +13468,8 @@ class Lists {
|
|
|
13356
13468
|
else {
|
|
13357
13469
|
if (prevSibling.tagName === 'LI') {
|
|
13358
13470
|
const nestedElement = createElement(elements[i].parentNode.tagName);
|
|
13471
|
+
nestedElement.style.listStyleType =
|
|
13472
|
+
elements[i].parentNode.style.listStyleType;
|
|
13359
13473
|
append([nestedElement], prevSibling);
|
|
13360
13474
|
append([elements[i]], nestedElement);
|
|
13361
13475
|
}
|
|
@@ -13405,39 +13519,7 @@ class Lists {
|
|
|
13405
13519
|
let listsNodes = this.domNode.blockNodes(true);
|
|
13406
13520
|
if (e.enterAction === 'BR') {
|
|
13407
13521
|
this.setSelectionBRConfig();
|
|
13408
|
-
|
|
13409
|
-
if (selectedNodes.length > 1) {
|
|
13410
|
-
let i = 0;
|
|
13411
|
-
let currentAlignmentNode = selectedNodes[0];
|
|
13412
|
-
while (!isNullOrUndefined(currentAlignmentNode)) {
|
|
13413
|
-
if (currentAlignmentNode.nodeName === 'BR') {
|
|
13414
|
-
const nextNode = currentAlignmentNode.nextSibling;
|
|
13415
|
-
detach(currentAlignmentNode);
|
|
13416
|
-
currentAlignmentNode = nextNode;
|
|
13417
|
-
}
|
|
13418
|
-
if (!isNullOrUndefined(currentAlignmentNode)) {
|
|
13419
|
-
selectedNodes[i] = currentAlignmentNode.nodeName === 'LI' || this.parent.domNode.isBlockNode(currentAlignmentNode) ?
|
|
13420
|
-
currentAlignmentNode : this.gatherElementsAround(currentAlignmentNode);
|
|
13421
|
-
const currentSelectNode = selectedNodes[i].nodeName === 'LI' ? selectedNodes[i].parentElement : selectedNodes[i];
|
|
13422
|
-
const currentElementCheckNode = currentAlignmentNode.nodeName === '#text' ? currentAlignmentNode.parentElement : currentAlignmentNode;
|
|
13423
|
-
currentAlignmentNode = !isNullOrUndefined(currentElementCheckNode.querySelector('.e-editor-select-end')) ||
|
|
13424
|
-
!isNullOrUndefined(closest(currentAlignmentNode, '.e-editor-select-end')) ?
|
|
13425
|
-
null : currentSelectNode.nextSibling;
|
|
13426
|
-
if (currentAlignmentNode === null && !isNullOrUndefined(currentSelectNode.nextSibling) && currentSelectNode.nextSibling.nodeName === 'BR') {
|
|
13427
|
-
detach(currentSelectNode.nextSibling);
|
|
13428
|
-
}
|
|
13429
|
-
}
|
|
13430
|
-
i++;
|
|
13431
|
-
}
|
|
13432
|
-
}
|
|
13433
|
-
else {
|
|
13434
|
-
if (!this.parent.domNode.isBlockNode(selectedNodes[0])) {
|
|
13435
|
-
selectedNodes[0] = this.gatherElementsAround(selectedNodes[0]);
|
|
13436
|
-
if (!isNullOrUndefined(selectedNodes[0].nextSibling) && (selectedNodes[0].nextSibling.nodeName === 'BR')) {
|
|
13437
|
-
detach(selectedNodes[0].nextSibling);
|
|
13438
|
-
}
|
|
13439
|
-
}
|
|
13440
|
-
}
|
|
13522
|
+
this.parent.domNode.convertToBlockNodes(this.parent.domNode.blockNodes(), true);
|
|
13441
13523
|
this.setSelectionBRConfig();
|
|
13442
13524
|
listsNodes = this.parent.domNode.blockNodes();
|
|
13443
13525
|
}
|
|
@@ -13494,7 +13576,7 @@ class Lists {
|
|
|
13494
13576
|
}
|
|
13495
13577
|
let elemAtt;
|
|
13496
13578
|
elements[i].style.removeProperty('margin-left');
|
|
13497
|
-
elemAtt = elements[i].tagName === 'IMG' ? '' : this.domNode.attributes(elements[i]);
|
|
13579
|
+
elemAtt = elements[i].tagName === 'IMG' || elements[i].classList.contains('e-editor-select-start') ? '' : this.domNode.attributes(elements[i]);
|
|
13498
13580
|
if (elements[i].getAttribute('contenteditable') === 'true'
|
|
13499
13581
|
&& elements[i].childNodes.length === 1 && elements[i].childNodes[0].nodeName === 'TABLE') {
|
|
13500
13582
|
const listEle = document.createElement(type);
|
|
@@ -13615,6 +13697,13 @@ class Lists {
|
|
|
13615
13697
|
for (let c = 0; c < liParents.length; c++) {
|
|
13616
13698
|
const node = liParents[c];
|
|
13617
13699
|
let toFindtopOlUl = true;
|
|
13700
|
+
let containsListElements = node;
|
|
13701
|
+
while (containsListElements.parentElement) {
|
|
13702
|
+
if (containsListElements.parentElement && containsListElements.parentElement.tagName !== 'LI' && containsListElements.parentElement.tagName !== 'OL' && containsListElements.parentElement.tagName !== 'UL') {
|
|
13703
|
+
break;
|
|
13704
|
+
}
|
|
13705
|
+
containsListElements = containsListElements.parentElement;
|
|
13706
|
+
}
|
|
13618
13707
|
if (toFindtopOlUl && (liParents[c].parentElement.parentElement.nodeName === 'OL' || liParents[c].parentElement.parentElement.nodeName === 'UL')) {
|
|
13619
13708
|
toFindtopOlUl = false;
|
|
13620
13709
|
const preElement = liParents[c].parentElement.parentElement;
|
|
@@ -13634,9 +13723,43 @@ class Lists {
|
|
|
13634
13723
|
node.previousElementSibling.lastChild.append(node);
|
|
13635
13724
|
}
|
|
13636
13725
|
}
|
|
13726
|
+
else if (this.domNode.isList(node.previousElementSibling) && containsListElements.contains(node.previousElementSibling) && ((node.tagName === 'OL' || node.tagName === 'UL') && (node.previousElementSibling.nodeName === 'OL' || node.previousElementSibling.nodeName === 'UL'))) {
|
|
13727
|
+
const contentNodes = this.domNode.contents(node);
|
|
13728
|
+
for (let f = 0; f < contentNodes.length; f++) {
|
|
13729
|
+
node.previousElementSibling.appendChild(contentNodes[f]);
|
|
13730
|
+
}
|
|
13731
|
+
node.parentNode.removeChild(node);
|
|
13732
|
+
}
|
|
13637
13733
|
}
|
|
13638
13734
|
if (firstNodeOL) {
|
|
13639
13735
|
firstNodeOL.style.listStyleType = listStyleType;
|
|
13736
|
+
const range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
|
|
13737
|
+
let listOlUlElements = [];
|
|
13738
|
+
if (range.commonAncestorContainer.nodeName === 'UL' || range.commonAncestorContainer.nodeName === 'OL') {
|
|
13739
|
+
if (range.commonAncestorContainer instanceof Element) {
|
|
13740
|
+
listOlUlElements.push(range.commonAncestorContainer);
|
|
13741
|
+
}
|
|
13742
|
+
listOlUlElements = listOlUlElements.concat(Array.from(range.commonAncestorContainer.querySelectorAll('ol, ul')));
|
|
13743
|
+
}
|
|
13744
|
+
else {
|
|
13745
|
+
listOlUlElements = Array.from(range.commonAncestorContainer.querySelectorAll('ol, ul'));
|
|
13746
|
+
}
|
|
13747
|
+
for (let k = 0; k < listOlUlElements.length; k++) {
|
|
13748
|
+
let listStyle;
|
|
13749
|
+
let listElements = listOlUlElements[k];
|
|
13750
|
+
while (listElements) {
|
|
13751
|
+
if (listElements.nodeName === 'OL' || listElements.nodeName === 'OL') {
|
|
13752
|
+
if (listElements.style.listStyleType !== '' && listElements.style.listStyleType !== 'none' && listElements.nodeName !== 'LI') {
|
|
13753
|
+
listStyle = listElements.style.listStyleType;
|
|
13754
|
+
}
|
|
13755
|
+
else if (!isNullOrUndefined(listStyle) && (listElements.style.listStyleType === '' || listElements.style.listStyleType === 'none') &&
|
|
13756
|
+
listElements.nodeName !== 'LI' && (listElements.nodeName === 'UL' || listElements.nodeName === 'OL')) {
|
|
13757
|
+
listElements.style.listStyleType = listStyle;
|
|
13758
|
+
}
|
|
13759
|
+
}
|
|
13760
|
+
listElements = listElements.querySelector('UL,OL');
|
|
13761
|
+
}
|
|
13762
|
+
}
|
|
13640
13763
|
}
|
|
13641
13764
|
}
|
|
13642
13765
|
findUnSelected(temp, elements) {
|
|
@@ -13739,7 +13862,7 @@ class Lists {
|
|
|
13739
13862
|
parentNode.removeAttribute("style");
|
|
13740
13863
|
}
|
|
13741
13864
|
}
|
|
13742
|
-
const wrapper = '<' +
|
|
13865
|
+
const wrapper = '<' + e.enterAction + wrapperclass + this.domNode.attributes(element) + '></' + e.enterAction + '>';
|
|
13743
13866
|
if (e.enterAction !== 'BR') {
|
|
13744
13867
|
this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));
|
|
13745
13868
|
}
|
|
@@ -13813,48 +13936,6 @@ class Lists {
|
|
|
13813
13936
|
closeTag(type) {
|
|
13814
13937
|
return this.domNode.parseHTMLFragment('<span class="e-rte-list-close-' + type.toLowerCase() + '"></span>');
|
|
13815
13938
|
}
|
|
13816
|
-
gatherElementsAround(node) {
|
|
13817
|
-
const pWrap = document.createElement('p');
|
|
13818
|
-
// Insert the new div before the current node
|
|
13819
|
-
let currentNode = node.previousSibling;
|
|
13820
|
-
const classNode = node.parentNode;
|
|
13821
|
-
if (classNode.className === 'e-editor-select-start') {
|
|
13822
|
-
node.parentNode.parentNode.insertBefore(pWrap, node.parentNode);
|
|
13823
|
-
}
|
|
13824
|
-
else if (node.parentNode) {
|
|
13825
|
-
node.parentNode.insertBefore(pWrap, node);
|
|
13826
|
-
}
|
|
13827
|
-
// Gather text and inline elements before the currentNode
|
|
13828
|
-
let i = 0;
|
|
13829
|
-
while (currentNode !== null && currentNode.nodeName !== 'BR' &&
|
|
13830
|
-
!this.parent.domNode.isBlockNode(currentNode)) {
|
|
13831
|
-
const prevSibling = currentNode.previousSibling;
|
|
13832
|
-
if (currentNode.nodeType === 3 || currentNode.nodeType === 1) {
|
|
13833
|
-
if (i === 0) {
|
|
13834
|
-
pWrap.appendChild(currentNode);
|
|
13835
|
-
}
|
|
13836
|
-
else {
|
|
13837
|
-
pWrap.insertBefore(currentNode, pWrap.firstChild);
|
|
13838
|
-
}
|
|
13839
|
-
}
|
|
13840
|
-
currentNode = prevSibling;
|
|
13841
|
-
i++;
|
|
13842
|
-
}
|
|
13843
|
-
// Add the current node to the new p
|
|
13844
|
-
pWrap.appendChild(node);
|
|
13845
|
-
// Gather text and inline elements after the currentNode
|
|
13846
|
-
currentNode = pWrap.nextSibling ? pWrap.nextSibling : pWrap.parentElement.nextSibling;
|
|
13847
|
-
while (currentNode !== null && currentNode.nodeName !== 'BR' &&
|
|
13848
|
-
!this.parent.domNode.isBlockNode(currentNode)) {
|
|
13849
|
-
const nextSibling = currentNode.nextSibling ?
|
|
13850
|
-
currentNode.nextSibling : currentNode.parentElement.nextSibling;
|
|
13851
|
-
if (currentNode.nodeType === 3 || currentNode.nodeType === 1) {
|
|
13852
|
-
pWrap.appendChild(currentNode);
|
|
13853
|
-
}
|
|
13854
|
-
currentNode = nextSibling;
|
|
13855
|
-
}
|
|
13856
|
-
return pWrap;
|
|
13857
|
-
}
|
|
13858
13939
|
}
|
|
13859
13940
|
|
|
13860
13941
|
/**
|
|
@@ -14189,8 +14270,8 @@ class Formats {
|
|
|
14189
14270
|
}
|
|
14190
14271
|
}
|
|
14191
14272
|
}
|
|
14192
|
-
if (e.enterAction !== 'BR' && !isNullOrUndefined(range.startContainer) && !isNullOrUndefined(range.startContainer.parentElement) && range.startContainer === range.endContainer && range.startContainer.nodeName === '#text' && range.startContainer.parentElement.classList.contains(
|
|
14193
|
-
|
|
14273
|
+
if (e.enterAction !== 'BR' && !isNullOrUndefined(range.startContainer) && !isNullOrUndefined(range.startContainer.parentElement) && range.startContainer === range.endContainer && range.startContainer.nodeName === '#text' && range.startContainer.parentElement.classList.contains('e-content') && range.startContainer.parentElement.isContentEditable) {
|
|
14274
|
+
const pTag = createElement(e.enterAction);
|
|
14194
14275
|
range.startContainer.parentElement.insertBefore(pTag, range.startContainer);
|
|
14195
14276
|
pTag.appendChild(range.startContainer);
|
|
14196
14277
|
this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, pTag, 1);
|
|
@@ -14607,6 +14688,9 @@ class InsertHtml {
|
|
|
14607
14688
|
this.insertTableInList(range, node, closestParentNode, nodes[0], nodeCutter);
|
|
14608
14689
|
return;
|
|
14609
14690
|
}
|
|
14691
|
+
if (isCursor && range.startContainer.textContent === '' && range.startContainer.nodeName !== 'BR' && enterAction !== 'BR' && node.nodeName !== '#text' && !isNullOrUndefined(node.children[0]) && !isNullOrUndefined(node.children[0].tagName) && node.children[0].tagName === 'IMG' && node.children.length === 1) {
|
|
14692
|
+
range.startContainer.innerHTML = '';
|
|
14693
|
+
}
|
|
14610
14694
|
if (isExternal || (!isNullOrUndefined(node) && !isNullOrUndefined(node.classList) &&
|
|
14611
14695
|
node.classList.contains('pasteContent'))) {
|
|
14612
14696
|
this.pasteInsertHTML(nodes, node, range, nodeSelection, nodeCutter, docElement, isCollapsed, closestParentNode, editNode, enterAction);
|
|
@@ -15530,7 +15614,10 @@ class Alignments {
|
|
|
15530
15614
|
let save = this.parent.nodeSelection.save(range, this.parent.currentDocument);
|
|
15531
15615
|
if (!isTableAlign) {
|
|
15532
15616
|
this.parent.domNode.setMarker(save);
|
|
15533
|
-
|
|
15617
|
+
let alignmentNodes = this.parent.domNode.blockNodes();
|
|
15618
|
+
if (e.enterAction === 'BR') {
|
|
15619
|
+
alignmentNodes = this.parent.domNode.convertToBlockNodes(alignmentNodes, false);
|
|
15620
|
+
}
|
|
15534
15621
|
for (let i = 0; i < alignmentNodes.length; i++) {
|
|
15535
15622
|
const parentNode = alignmentNodes[i];
|
|
15536
15623
|
setStyleAttribute(parentNode, { 'text-align': this.alignments[e.subCommand] });
|
|
@@ -15612,7 +15699,10 @@ class Indents {
|
|
|
15612
15699
|
const range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
|
|
15613
15700
|
let save = this.parent.nodeSelection.save(range, this.parent.currentDocument);
|
|
15614
15701
|
this.parent.domNode.setMarker(save);
|
|
15615
|
-
|
|
15702
|
+
let indentsNodes = this.parent.domNode.blockNodes();
|
|
15703
|
+
if (e.enterAction === 'BR') {
|
|
15704
|
+
indentsNodes = this.parent.domNode.convertToBlockNodes(indentsNodes, false);
|
|
15705
|
+
}
|
|
15616
15706
|
const parentNodes = indentsNodes.slice();
|
|
15617
15707
|
const listsNodes = [];
|
|
15618
15708
|
for (let i = 0; i < parentNodes.length; i++) {
|
|
@@ -19894,7 +19984,7 @@ class MsWordPaste {
|
|
|
19894
19984
|
!isNormalList) {
|
|
19895
19985
|
prevList = null;
|
|
19896
19986
|
}
|
|
19897
|
-
const pElement = createElement('p', { className: '
|
|
19987
|
+
const pElement = createElement('p', { className: 'MsoNoSpacing' });
|
|
19898
19988
|
pElement.innerHTML = collection[index].content.join(' ');
|
|
19899
19989
|
if ((collection[index].nestedLevel === 1) &&
|
|
19900
19990
|
(listCount === 0 || lfo !== collection[index].listFormatOverride) &&
|
|
@@ -20970,12 +21060,14 @@ class EditorManager {
|
|
|
20970
21060
|
case 'alignments':
|
|
20971
21061
|
this.observer.notify(ALIGNMENT_TYPE, {
|
|
20972
21062
|
subCommand: value, event: event, callBack: callBack,
|
|
20973
|
-
selector: selector,
|
|
20974
|
-
value: exeValue
|
|
21063
|
+
selector: selector, value: exeValue, enterAction: enterAction
|
|
20975
21064
|
});
|
|
20976
21065
|
break;
|
|
20977
21066
|
case 'indents':
|
|
20978
|
-
this.observer.notify(INDENT_TYPE, {
|
|
21067
|
+
this.observer.notify(INDENT_TYPE, {
|
|
21068
|
+
subCommand: value, event: event, callBack: callBack,
|
|
21069
|
+
selector: selector, enterAction: enterAction
|
|
21070
|
+
});
|
|
20979
21071
|
break;
|
|
20980
21072
|
case 'links':
|
|
20981
21073
|
this.observer.notify(LINK, { command: command, value: value, item: exeValue, event: event, callBack: callBack });
|
|
@@ -21304,116 +21396,116 @@ class ContentRender {
|
|
|
21304
21396
|
}
|
|
21305
21397
|
}
|
|
21306
21398
|
|
|
21307
|
-
const IFRAMEHEADER = `
|
|
21308
|
-
<!DOCTYPE html>
|
|
21309
|
-
<html>
|
|
21310
|
-
<head>
|
|
21311
|
-
<meta charset='utf-8' />
|
|
21312
|
-
<style>
|
|
21313
|
-
@charset "UTF-8";
|
|
21314
|
-
body {
|
|
21315
|
-
font-family: "Roboto", sans-serif;
|
|
21316
|
-
font-size: 14px;
|
|
21317
|
-
}
|
|
21318
|
-
html, body{height: 100%;margin: 0;}
|
|
21319
|
-
body.e-cursor{cursor:default}
|
|
21320
|
-
span.e-selected-node {background-color: #939393;color: white;}
|
|
21321
|
-
span.e-selected-node.e-highlight {background-color: #1d9dd8;}
|
|
21322
|
-
body{color:#333;word-wrap:break-word;padding: 8px;box-sizing: border-box;}
|
|
21323
|
-
.e-rte-image, .e-rte-video {border: 0;cursor: pointer;display:
|
|
21324
|
-
block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
|
|
21325
|
-
.e-rte-audio {border: 0;cursor: pointer;display:
|
|
21326
|
-
block;float: none;margin: 5px auto;max-width: 100%;position: relative;}
|
|
21327
|
-
.e-rte-image.e-imginline, .e-rte-audio.e-audio-inline, .e-rte-video.e-video-inline {display: inline-block;float: none;
|
|
21328
|
-
margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));padding: 1px;vertical-align: bottom;}
|
|
21329
|
-
.e-rte-image.e-imgcenter, .e-rte-video.e-video-center {cursor: pointer;display: block;float: none;margin: 5px auto;max-width: 100%;position: relative;}
|
|
21330
|
-
.e-rte-image.e-imgright, .e-rte-video.e-video-right { float: right; margin: 0 auto;margin-left: 5px;text-align: right;}
|
|
21331
|
-
.e-rte-image.e-imgleft, .e-rte-video.e-video-left {float: left;margin: 0 auto;margin-right: 5px;text-align: left;}
|
|
21332
|
-
.e-img-caption { display: inline-block; float: none; margin: 5px auto; max-width: 100%;position: relative;}
|
|
21333
|
-
.e-img-caption.e-caption-inline {display: inline-block;float: none;
|
|
21334
|
-
margin: 5px auto;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));
|
|
21335
|
-
position: relativetext-align: center;vertical-align: bottom;}
|
|
21336
|
-
.e-rte-img-caption.e-imgcenter {display: contents; margin-left: auto; margin-right: auto;}
|
|
21337
|
-
.e-rte-img-caption.e-imgright {display: contents; margin-left: auto; margin-right: 0;}
|
|
21338
|
-
.e-rte-img-caption.e-imgleft {display: contents;margin-left: 0;margin-right: auto;}
|
|
21339
|
-
.e-img-caption.e-rte-img-caption.e-imgbreak {display: contents;}
|
|
21340
|
-
.e-img-inner {box-sizing: border-box;display: block;font-size: 16px;font-weight: initial;
|
|
21341
|
-
margin: auto;opacity: .9;text-align: center;width: 100%;}
|
|
21342
|
-
.e-img-wrap {display: inline-block;margin: auto;padding: 0;text-align: center;width: 100%;}
|
|
21343
|
-
.e-imgleft, .e-video-left {float: left;margin: 0 5px 0 0;text-align: left;}
|
|
21344
|
-
.e-imgright, .e-video-right {float: right;margin: 0 0 0 5px;text-align: right;}
|
|
21345
|
-
.e-imgcenter, .e-video-center {cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
|
|
21346
|
-
.e-control img:not(.e-resize) {border: 2px solid transparent; z-index: 1000}
|
|
21347
|
-
.e-imginline , .e-audio-inline, .e-video-inline {display: inline-block;float: none;margin-left: 5px;margin-right: 5px;
|
|
21348
|
-
max-width: calc(100% - (2 * 5px));vertical-align: bottom;}
|
|
21349
|
-
.e-imgbreak, .e-audio-break, .e-video-break {border: 0;cursor: pointer;
|
|
21350
|
-
display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
|
|
21351
|
-
.e-rte-image.e-img-focus:not(.e-resize), .e-audio-focus:not(.e-resize), .e-video-focus:not(.e-resize) {border: solid 2px #4a90e2;}
|
|
21352
|
-
img.e-img-focus::selection, audio.e-audio-focus::selection, .e-video-focus::selection { background: transparent;color: transparent;}
|
|
21353
|
-
span.e-rte-imageboxmark, span.e-rte-videoboxmark { width: 10px; height: 10px; position: absolute; display: block;
|
|
21354
|
-
background: #4a90e2; border: 1px solid #fff; z-index: 1000;}
|
|
21355
|
-
.e-mob-rte.e-mob-span span.e-rte-imageboxmark, .e-mob-rte.e-mob-span span.e-rte-videoboxmark { background: #4a90e2; border: 1px solid #fff; }
|
|
21356
|
-
.e-mob-rte span.e-rte-imageboxmark, .e-mob-rte span.e-rte-videoboxmark { background: #fff; border: 1px solid #4a90e2;
|
|
21357
|
-
border-radius: 15px; height: 20px; width: 20px; }
|
|
21358
|
-
.e-mob-rte.e-mob-span span.e-rte-imageboxmark, .e-mob-rte.e-mob-span span.e-rte-videoboxmark { background: #4a90e2; border: 1px solid #fff; }
|
|
21359
|
-
.e-rte-content .e-content img.e-resize, .e-rte-content .e-content video.e-resize { z-index: 1000; }
|
|
21360
|
-
.e-img-caption .e-img-inner { outline: 0; }
|
|
21361
|
-
.e-rte-img-caption.e-imgleft .e-img-inner { float: left; text-align: left; }
|
|
21362
|
-
.e-rte-img-caption.e-imgright .e-img-inner { float: right; text-align: right; }
|
|
21363
|
-
.e-rte-img-caption.e-imgleft .e-img-wrap, .e-rte-img-caption.e-imgright .e-img-wrap { display: contents; }
|
|
21364
|
-
.e-img-caption a:focus-visible { outline: none; }
|
|
21365
|
-
.e-rte-img-caption .e-rte-image.e-imgright { margin-left: auto; margin-right: 0; }
|
|
21366
|
-
.e-rte-img-caption .e-rte-image.e-imgleft { margin: 0; }
|
|
21367
|
-
body{box-sizing: border-box;min-height: 100px;outline: 0 solid transparent;
|
|
21368
|
-
overflow-x: auto;padding: 16px;position: relative;text-align: inherit;z-index: 2;}
|
|
21369
|
-
p{margin: 0 0 10px;margin-bottom: 10px;}
|
|
21370
|
-
li{margin-bottom: 10px;}
|
|
21371
|
-
table{margin-bottom: 10px;}
|
|
21372
|
-
h1{font-size: 2.17em;font-weight: 400;line-height: 1;margin: 10px 0;}
|
|
21373
|
-
h2{font-size: 1.74em;font-weight: 400;margin: 10px 0;}
|
|
21374
|
-
h3{font-size: 1.31em;font-weight: 400;margin: 10px 0;}
|
|
21375
|
-
h4{font-size: 16px;font-weight: 400;line-height: 1.5;margin: 0;}
|
|
21376
|
-
h5{font-size: 00.8em;font-weight: 400;margin: 0;}
|
|
21377
|
-
h6{font-size: 00.65em;font-weight: 400;margin: 0;}
|
|
21378
|
-
blockquote{margin: 10px 0;margin-left: 0;padding-left: 5px;border-left: solid 2px #5c5c5c;}
|
|
21379
|
-
pre{background-color: inherit;border: 0;border-radius: 0;color: #333;
|
|
21380
|
-
font-size: inherit;line-height: inherit;margin: 0 0 10px;overflow: visible;padding: 0;
|
|
21381
|
-
white-space: pre-wrap;word-break: inherit;word-wrap: break-word;}
|
|
21382
|
-
strong, b{font-weight: 700;}
|
|
21383
|
-
a{text-decoration: none;user-select: auto;}
|
|
21384
|
-
a:hover{text-decoration: underline;};
|
|
21385
|
-
p:last-child, pre:last-child, blockquote:last-child{margin-bottom: 0;}
|
|
21386
|
-
h3+h4, h4+h5, h5+h6{margin-top: 00.6em;}
|
|
21387
|
-
ul:last-child{margin-bottom: 0;}
|
|
21388
|
-
table { border-collapse: collapse; empty-cells: show;}
|
|
21389
|
-
table td,table th {border: 1px solid #BDBDBD; height: 20px; padding: 2px 5px; vertical-align: middle;}
|
|
21390
|
-
table.e-alternate-border tbody tr:nth-child(2n) {background-color: #F5F5F5;}
|
|
21391
|
-
table th {background-color: #E0E0E0;}
|
|
21392
|
-
table.e-dashed-border td,table.e-dashed-border th { border: 1px dashed #BDBDBD}
|
|
21393
|
-
table .e-cell-select {border: 1px double #4a90e2;}
|
|
21394
|
-
span.e-table-box { cursor: nwse-resize; display: block; height: 10px; position: absolute; width: 10px; }
|
|
21395
|
-
span.e-table-box.e-rmob {height: 14px;width: 14px;}
|
|
21396
|
-
.e-row-resize, .e-column-resize { background-color: transparent; background-repeat: repeat;
|
|
21397
|
-
bottom: 0;cursor: col-resize;height: 1px;overflow: visible;position: absolute;width: 1px; }
|
|
21398
|
-
.e-row-resize { cursor: row-resize; height: 1px;}
|
|
21399
|
-
.e-table-rhelper { cursor: col-resize; opacity: .87;position: absolute;}
|
|
21400
|
-
.e-table-rhelper.e-column-helper { width: 1px; }
|
|
21401
|
-
.e-table-rhelper.e-row-helper {height: 1px;}
|
|
21402
|
-
.e-reicon::before { border-bottom: 6px solid transparent; border-right: 6px solid;
|
|
21403
|
-
border-top: 6px solid transparent; content: ''; display: block; height: 0;
|
|
21404
|
-
position: absolute; right: 4px; top: 4px; width: 20px; }
|
|
21405
|
-
.e-reicon::after { border-bottom: 6px solid transparent; border-left: 6px solid;
|
|
21406
|
-
border-top: 6px solid transparent; content: ''; display: block;
|
|
21407
|
-
height: 0; left: 4px; position: absolute; top: 4px; width: 20px; z-index: 3; }
|
|
21408
|
-
.e-row-helper.e-reicon::after { top: 10px; transform: rotate(90deg); }
|
|
21409
|
-
.e-row-helper.e-reicon::before { left: 4px; top: -20px; transform: rotate(90deg); }
|
|
21410
|
-
span.e-table-box { background-color: #ffffff; border: 1px solid #BDBDBD; }
|
|
21411
|
-
span.e-table-box.e-rbox-select { background-color: #BDBDBD; border: 1px solid #BDBDBD; }
|
|
21412
|
-
.e-table-rhelper { background-color: #4a90e2;}
|
|
21413
|
-
.e-rtl { direction: rtl; }
|
|
21414
|
-
.e-rte-placeholder::before { content: attr(placeholder); opacity: 0.54; overflow: hidden; padding-top: 16px; position: absolute; text-align: start; top: 0; z-index: 1; }
|
|
21415
|
-
li ol, li ul { margin-block-start: 10px;}
|
|
21416
|
-
</style>
|
|
21399
|
+
const IFRAMEHEADER = `
|
|
21400
|
+
<!DOCTYPE html>
|
|
21401
|
+
<html>
|
|
21402
|
+
<head>
|
|
21403
|
+
<meta charset='utf-8' />
|
|
21404
|
+
<style>
|
|
21405
|
+
@charset "UTF-8";
|
|
21406
|
+
body {
|
|
21407
|
+
font-family: "Roboto", sans-serif;
|
|
21408
|
+
font-size: 14px;
|
|
21409
|
+
}
|
|
21410
|
+
html, body{height: 100%;margin: 0;}
|
|
21411
|
+
body.e-cursor{cursor:default}
|
|
21412
|
+
span.e-selected-node {background-color: #939393;color: white;}
|
|
21413
|
+
span.e-selected-node.e-highlight {background-color: #1d9dd8;}
|
|
21414
|
+
body{color:#333;word-wrap:break-word;padding: 8px;box-sizing: border-box;}
|
|
21415
|
+
.e-rte-image, .e-rte-video {border: 0;cursor: pointer;display:
|
|
21416
|
+
block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
|
|
21417
|
+
.e-rte-audio {border: 0;cursor: pointer;display:
|
|
21418
|
+
block;float: none;margin: 5px auto;max-width: 100%;position: relative;}
|
|
21419
|
+
.e-rte-image.e-imginline, .e-rte-audio.e-audio-inline, .e-rte-video.e-video-inline {display: inline-block;float: none;
|
|
21420
|
+
margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));padding: 1px;vertical-align: bottom;}
|
|
21421
|
+
.e-rte-image.e-imgcenter, .e-rte-video.e-video-center {cursor: pointer;display: block;float: none;margin: 5px auto;max-width: 100%;position: relative;}
|
|
21422
|
+
.e-rte-image.e-imgright, .e-rte-video.e-video-right { float: right; margin: 0 auto;margin-left: 5px;text-align: right;}
|
|
21423
|
+
.e-rte-image.e-imgleft, .e-rte-video.e-video-left {float: left;margin: 0 auto;margin-right: 5px;text-align: left;}
|
|
21424
|
+
.e-img-caption { display: inline-block; float: none; margin: 5px auto; max-width: 100%;position: relative;}
|
|
21425
|
+
.e-img-caption.e-caption-inline {display: inline-block;float: none;
|
|
21426
|
+
margin: 5px auto;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));
|
|
21427
|
+
position: relativetext-align: center;vertical-align: bottom;}
|
|
21428
|
+
.e-rte-img-caption.e-imgcenter {display: contents; margin-left: auto; margin-right: auto;}
|
|
21429
|
+
.e-rte-img-caption.e-imgright {display: contents; margin-left: auto; margin-right: 0;}
|
|
21430
|
+
.e-rte-img-caption.e-imgleft {display: contents;margin-left: 0;margin-right: auto;}
|
|
21431
|
+
.e-img-caption.e-rte-img-caption.e-imgbreak {display: contents;}
|
|
21432
|
+
.e-img-inner {box-sizing: border-box;display: block;font-size: 16px;font-weight: initial;
|
|
21433
|
+
margin: auto;opacity: .9;text-align: center;width: 100%;}
|
|
21434
|
+
.e-img-wrap {display: inline-block;margin: auto;padding: 0;text-align: center;width: 100%;}
|
|
21435
|
+
.e-imgleft, .e-video-left {float: left;margin: 0 5px 0 0;text-align: left;}
|
|
21436
|
+
.e-imgright, .e-video-right {float: right;margin: 0 0 0 5px;text-align: right;}
|
|
21437
|
+
.e-imgcenter, .e-video-center {cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
|
|
21438
|
+
.e-control img:not(.e-resize) {border: 2px solid transparent; z-index: 1000}
|
|
21439
|
+
.e-imginline , .e-audio-inline, .e-video-inline {display: inline-block;float: none;margin-left: 5px;margin-right: 5px;
|
|
21440
|
+
max-width: calc(100% - (2 * 5px));vertical-align: bottom;}
|
|
21441
|
+
.e-imgbreak, .e-audio-break, .e-video-break {border: 0;cursor: pointer;
|
|
21442
|
+
display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
|
|
21443
|
+
.e-rte-image.e-img-focus:not(.e-resize), .e-audio-focus:not(.e-resize), .e-video-focus:not(.e-resize) {border: solid 2px #4a90e2;}
|
|
21444
|
+
img.e-img-focus::selection, audio.e-audio-focus::selection, .e-video-focus::selection { background: transparent;color: transparent;}
|
|
21445
|
+
span.e-rte-imageboxmark, span.e-rte-videoboxmark { width: 10px; height: 10px; position: absolute; display: block;
|
|
21446
|
+
background: #4a90e2; border: 1px solid #fff; z-index: 1000;}
|
|
21447
|
+
.e-mob-rte.e-mob-span span.e-rte-imageboxmark, .e-mob-rte.e-mob-span span.e-rte-videoboxmark { background: #4a90e2; border: 1px solid #fff; }
|
|
21448
|
+
.e-mob-rte span.e-rte-imageboxmark, .e-mob-rte span.e-rte-videoboxmark { background: #fff; border: 1px solid #4a90e2;
|
|
21449
|
+
border-radius: 15px; height: 20px; width: 20px; }
|
|
21450
|
+
.e-mob-rte.e-mob-span span.e-rte-imageboxmark, .e-mob-rte.e-mob-span span.e-rte-videoboxmark { background: #4a90e2; border: 1px solid #fff; }
|
|
21451
|
+
.e-rte-content .e-content img.e-resize, .e-rte-content .e-content video.e-resize { z-index: 1000; }
|
|
21452
|
+
.e-img-caption .e-img-inner { outline: 0; }
|
|
21453
|
+
.e-rte-img-caption.e-imgleft .e-img-inner { float: left; text-align: left; }
|
|
21454
|
+
.e-rte-img-caption.e-imgright .e-img-inner { float: right; text-align: right; }
|
|
21455
|
+
.e-rte-img-caption.e-imgleft .e-img-wrap, .e-rte-img-caption.e-imgright .e-img-wrap { display: contents; }
|
|
21456
|
+
.e-img-caption a:focus-visible { outline: none; }
|
|
21457
|
+
.e-rte-img-caption .e-rte-image.e-imgright { margin-left: auto; margin-right: 0; }
|
|
21458
|
+
.e-rte-img-caption .e-rte-image.e-imgleft { margin: 0; }
|
|
21459
|
+
body{box-sizing: border-box;min-height: 100px;outline: 0 solid transparent;
|
|
21460
|
+
overflow-x: auto;padding: 16px;position: relative;text-align: inherit;z-index: 2;}
|
|
21461
|
+
p{margin: 0 0 10px;margin-bottom: 10px;}
|
|
21462
|
+
li{margin-bottom: 10px;}
|
|
21463
|
+
table{margin-bottom: 10px;}
|
|
21464
|
+
h1{font-size: 2.17em;font-weight: 400;line-height: 1;margin: 10px 0;}
|
|
21465
|
+
h2{font-size: 1.74em;font-weight: 400;margin: 10px 0;}
|
|
21466
|
+
h3{font-size: 1.31em;font-weight: 400;margin: 10px 0;}
|
|
21467
|
+
h4{font-size: 16px;font-weight: 400;line-height: 1.5;margin: 0;}
|
|
21468
|
+
h5{font-size: 00.8em;font-weight: 400;margin: 0;}
|
|
21469
|
+
h6{font-size: 00.65em;font-weight: 400;margin: 0;}
|
|
21470
|
+
blockquote{margin: 10px 0;margin-left: 0;padding-left: 5px;border-left: solid 2px #5c5c5c;}
|
|
21471
|
+
pre{background-color: inherit;border: 0;border-radius: 0;color: #333;
|
|
21472
|
+
font-size: inherit;line-height: inherit;margin: 0 0 10px;overflow: visible;padding: 0;
|
|
21473
|
+
white-space: pre-wrap;word-break: inherit;word-wrap: break-word;}
|
|
21474
|
+
strong, b{font-weight: 700;}
|
|
21475
|
+
a{text-decoration: none;user-select: auto;}
|
|
21476
|
+
a:hover{text-decoration: underline;};
|
|
21477
|
+
p:last-child, pre:last-child, blockquote:last-child{margin-bottom: 0;}
|
|
21478
|
+
h3+h4, h4+h5, h5+h6{margin-top: 00.6em;}
|
|
21479
|
+
ul:last-child{margin-bottom: 0;}
|
|
21480
|
+
table { border-collapse: collapse; empty-cells: show;}
|
|
21481
|
+
table td,table th {border: 1px solid #BDBDBD; height: 20px; padding: 2px 5px; vertical-align: middle;}
|
|
21482
|
+
table.e-alternate-border tbody tr:nth-child(2n) {background-color: #F5F5F5;}
|
|
21483
|
+
table th {background-color: #E0E0E0;}
|
|
21484
|
+
table.e-dashed-border td,table.e-dashed-border th { border: 1px dashed #BDBDBD}
|
|
21485
|
+
table .e-cell-select {border: 1px double #4a90e2;}
|
|
21486
|
+
span.e-table-box { cursor: nwse-resize; display: block; height: 10px; position: absolute; width: 10px; }
|
|
21487
|
+
span.e-table-box.e-rmob {height: 14px;width: 14px;}
|
|
21488
|
+
.e-row-resize, .e-column-resize { background-color: transparent; background-repeat: repeat;
|
|
21489
|
+
bottom: 0;cursor: col-resize;height: 1px;overflow: visible;position: absolute;width: 1px; }
|
|
21490
|
+
.e-row-resize { cursor: row-resize; height: 1px;}
|
|
21491
|
+
.e-table-rhelper { cursor: col-resize; opacity: .87;position: absolute;}
|
|
21492
|
+
.e-table-rhelper.e-column-helper { width: 1px; }
|
|
21493
|
+
.e-table-rhelper.e-row-helper {height: 1px;}
|
|
21494
|
+
.e-reicon::before { border-bottom: 6px solid transparent; border-right: 6px solid;
|
|
21495
|
+
border-top: 6px solid transparent; content: ''; display: block; height: 0;
|
|
21496
|
+
position: absolute; right: 4px; top: 4px; width: 20px; }
|
|
21497
|
+
.e-reicon::after { border-bottom: 6px solid transparent; border-left: 6px solid;
|
|
21498
|
+
border-top: 6px solid transparent; content: ''; display: block;
|
|
21499
|
+
height: 0; left: 4px; position: absolute; top: 4px; width: 20px; z-index: 3; }
|
|
21500
|
+
.e-row-helper.e-reicon::after { top: 10px; transform: rotate(90deg); }
|
|
21501
|
+
.e-row-helper.e-reicon::before { left: 4px; top: -20px; transform: rotate(90deg); }
|
|
21502
|
+
span.e-table-box { background-color: #ffffff; border: 1px solid #BDBDBD; }
|
|
21503
|
+
span.e-table-box.e-rbox-select { background-color: #BDBDBD; border: 1px solid #BDBDBD; }
|
|
21504
|
+
.e-table-rhelper { background-color: #4a90e2;}
|
|
21505
|
+
.e-rtl { direction: rtl; }
|
|
21506
|
+
.e-rte-placeholder::before { content: attr(placeholder); opacity: 0.54; overflow: hidden; padding-top: 16px; position: absolute; text-align: start; top: 0; z-index: 1; }
|
|
21507
|
+
li ol, li ul { margin-block-start: 10px;}
|
|
21508
|
+
</style>
|
|
21417
21509
|
</head>`;
|
|
21418
21510
|
/**
|
|
21419
21511
|
* Content module is used to render Rich Text Editor content
|
|
@@ -21921,25 +22013,54 @@ class HtmlEditor {
|
|
|
21921
22013
|
this.deleteCleanup(e, currentRange);
|
|
21922
22014
|
}
|
|
21923
22015
|
if (args.keyCode === 9 && this.parent.enableTabKey) {
|
|
22016
|
+
this.parent.formatter.saveData(e);
|
|
21924
22017
|
if (!isNullOrUndefined(args.target) && isNullOrUndefined(closest(args.target, '.e-rte-toolbar'))) {
|
|
21925
22018
|
const range = this.nodeSelectionObj.getRange(this.contentRenderer.getDocument());
|
|
21926
22019
|
const parentNode = this.nodeSelectionObj.getParentNodeCollection(range);
|
|
21927
22020
|
if (!((parentNode[0].nodeName === 'LI' || closest(parentNode[0], 'li') ||
|
|
21928
|
-
closest(parentNode[0], 'table'))
|
|
22021
|
+
closest(parentNode[0], 'table')))) {
|
|
21929
22022
|
args.preventDefault();
|
|
21930
|
-
|
|
21931
|
-
|
|
21932
|
-
|
|
22023
|
+
const selection = this.contentRenderer.getDocument().getSelection().getRangeAt(0);
|
|
22024
|
+
let alignmentNodes = this.parent.formatter.editorManager.domNode.blockNodes();
|
|
22025
|
+
if (this.parent.enterKey === 'BR') {
|
|
22026
|
+
if (selection.startOffset !== selection.endOffset && selection.startOffset === 0) {
|
|
22027
|
+
let save = this.nodeSelectionObj.save(range, this.contentRenderer.getDocument());
|
|
22028
|
+
this.parent.formatter.editorManager.domNode.setMarker(save);
|
|
22029
|
+
alignmentNodes = this.parent.formatter.editorManager.domNode.blockNodes();
|
|
22030
|
+
this.parent.formatter.editorManager.domNode.convertToBlockNodes(alignmentNodes, false);
|
|
22031
|
+
this.marginTabAdd(args.shiftKey, alignmentNodes);
|
|
22032
|
+
save = this.parent.formatter.editorManager.domNode.saveMarker(save);
|
|
22033
|
+
save.restore();
|
|
22034
|
+
}
|
|
22035
|
+
else {
|
|
22036
|
+
InsertHtml.Insert(this.contentRenderer.getDocument(), ' ');
|
|
22037
|
+
this.rangeCollection.push(this.nodeSelectionObj.getRange(this.contentRenderer.getDocument()));
|
|
22038
|
+
}
|
|
21933
22039
|
}
|
|
21934
|
-
else
|
|
21935
|
-
|
|
21936
|
-
|
|
21937
|
-
|
|
21938
|
-
|
|
21939
|
-
|
|
22040
|
+
else {
|
|
22041
|
+
if (!args.shiftKey) {
|
|
22042
|
+
if (selection.startOffset !== selection.endOffset && selection.startOffset === 0) {
|
|
22043
|
+
this.marginTabAdd(args.shiftKey, alignmentNodes);
|
|
22044
|
+
}
|
|
22045
|
+
else {
|
|
22046
|
+
InsertHtml.Insert(this.contentRenderer.getDocument(), ' ');
|
|
22047
|
+
this.rangeCollection.push(this.nodeSelectionObj.getRange(this.contentRenderer.getDocument()));
|
|
22048
|
+
}
|
|
22049
|
+
}
|
|
22050
|
+
else if (this.rangeCollection.length > 0 &&
|
|
22051
|
+
this.rangeCollection[this.rangeCollection.length - 1].startContainer.textContent.length === 4) {
|
|
22052
|
+
const textCont = this.rangeCollection[this.rangeCollection.length - 1].startContainer;
|
|
22053
|
+
this.nodeSelectionObj.setSelectionText(this.contentRenderer.getDocument(), textCont, textCont, 0, textCont.textContent.length);
|
|
22054
|
+
InsertHtml.Insert(this.contentRenderer.getDocument(), document.createTextNode(''));
|
|
22055
|
+
this.rangeCollection.pop();
|
|
22056
|
+
}
|
|
22057
|
+
else {
|
|
22058
|
+
this.marginTabAdd(args.shiftKey, alignmentNodes);
|
|
22059
|
+
}
|
|
21940
22060
|
}
|
|
21941
22061
|
}
|
|
21942
22062
|
}
|
|
22063
|
+
this.parent.formatter.saveData(e);
|
|
21943
22064
|
}
|
|
21944
22065
|
if (e.args.action === 'space' ||
|
|
21945
22066
|
e.args.action === 'enter' ||
|
|
@@ -22601,6 +22722,30 @@ class HtmlEditor {
|
|
|
22601
22722
|
getSelectedHtml(e) {
|
|
22602
22723
|
e.callBack(this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument()).toString());
|
|
22603
22724
|
}
|
|
22725
|
+
marginTabAdd(val, alignmentNodes) {
|
|
22726
|
+
for (let index = 0; index < alignmentNodes.length; index++) {
|
|
22727
|
+
const element = alignmentNodes[index];
|
|
22728
|
+
if (element.closest('li')) {
|
|
22729
|
+
continue;
|
|
22730
|
+
}
|
|
22731
|
+
if (element.style.marginLeft) {
|
|
22732
|
+
let count$$1 = parseInt(element.style.marginLeft, 10);
|
|
22733
|
+
if (val) {
|
|
22734
|
+
count$$1 -= 20;
|
|
22735
|
+
}
|
|
22736
|
+
else {
|
|
22737
|
+
count$$1 += 20;
|
|
22738
|
+
}
|
|
22739
|
+
element.style.marginLeft = count$$1.toString() + 'px';
|
|
22740
|
+
if (element.style.marginLeft === '0px') {
|
|
22741
|
+
element.removeAttribute('style');
|
|
22742
|
+
}
|
|
22743
|
+
}
|
|
22744
|
+
else if (!val) {
|
|
22745
|
+
element.style.marginLeft = '20px';
|
|
22746
|
+
}
|
|
22747
|
+
}
|
|
22748
|
+
}
|
|
22604
22749
|
}
|
|
22605
22750
|
|
|
22606
22751
|
/**
|
|
@@ -23254,7 +23399,8 @@ class PasteCleanup {
|
|
|
23254
23399
|
clipBoardElem = this.allowedStyle(clipBoardElem);
|
|
23255
23400
|
}
|
|
23256
23401
|
this.saveSelection.restore();
|
|
23257
|
-
|
|
23402
|
+
const newText = clipBoardElem.innerHTML.split("&").join("&");
|
|
23403
|
+
clipBoardElem.innerHTML = this.sanitizeHelper(newText);
|
|
23258
23404
|
const allImg = clipBoardElem.querySelectorAll('img');
|
|
23259
23405
|
for (let i = 0; i < allImg.length; i++) {
|
|
23260
23406
|
if (!isNullOrUndefined(allImg[i].getAttribute('src'))) {
|
|
@@ -23309,6 +23455,28 @@ class PasteCleanup {
|
|
|
23309
23455
|
this.cropImageHandler(this.parent.inputElement);
|
|
23310
23456
|
}
|
|
23311
23457
|
}
|
|
23458
|
+
convertBlobToBase64(element) {
|
|
23459
|
+
const imgElem = element.querySelectorAll('img');
|
|
23460
|
+
for (let i = 0; i < imgElem.length; i++) {
|
|
23461
|
+
if (imgElem[i].getAttribute('src') &&
|
|
23462
|
+
imgElem[i].getAttribute('src').startsWith("blob")) {
|
|
23463
|
+
let blobImageUrl = imgElem[i].getAttribute('src');
|
|
23464
|
+
let img = new Image();
|
|
23465
|
+
const onImageLoadEvent = () => {
|
|
23466
|
+
let canvas = document.createElement('canvas');
|
|
23467
|
+
let ctx = canvas.getContext('2d');
|
|
23468
|
+
canvas.width = img.width;
|
|
23469
|
+
canvas.height = img.height;
|
|
23470
|
+
ctx.drawImage(img, 0, 0);
|
|
23471
|
+
let base64String = canvas.toDataURL('image/png');
|
|
23472
|
+
imgElem[i].src = base64String;
|
|
23473
|
+
img.removeEventListener('load', onImageLoadEvent);
|
|
23474
|
+
};
|
|
23475
|
+
img.src = blobImageUrl;
|
|
23476
|
+
img.addEventListener('load', onImageLoadEvent);
|
|
23477
|
+
}
|
|
23478
|
+
}
|
|
23479
|
+
}
|
|
23312
23480
|
cropImageHandler(element) {
|
|
23313
23481
|
const allImgElm = element.querySelectorAll('.e-img-cropped');
|
|
23314
23482
|
if (allImgElm.length > 0) {
|
|
@@ -23347,9 +23515,20 @@ class PasteCleanup {
|
|
|
23347
23515
|
}
|
|
23348
23516
|
}
|
|
23349
23517
|
else {
|
|
23350
|
-
this.
|
|
23351
|
-
|
|
23352
|
-
|
|
23518
|
+
if (!isNullOrUndefined(this.parent.insertImageSettings.saveUrl) && !isNullOrUndefined(this.parent.insertImageSettings.path) && !isNullOrUndefined(this.parent.inputElement.querySelectorAll("img")) && this.parent.inputElement.querySelectorAll("img")[0].src.startsWith("blob")) {
|
|
23519
|
+
this.convertBlobToBase64(this.parent.inputElement);
|
|
23520
|
+
setTimeout(() => {
|
|
23521
|
+
this.imgUploading(this.parent.inputElement);
|
|
23522
|
+
if (this.parent.iframeSettings.enable) {
|
|
23523
|
+
this.parent.updateValue();
|
|
23524
|
+
}
|
|
23525
|
+
}, 20);
|
|
23526
|
+
}
|
|
23527
|
+
else {
|
|
23528
|
+
this.imgUploading(this.parent.inputElement);
|
|
23529
|
+
if (this.parent.iframeSettings.enable) {
|
|
23530
|
+
this.parent.updateValue();
|
|
23531
|
+
}
|
|
23353
23532
|
}
|
|
23354
23533
|
}
|
|
23355
23534
|
}
|
|
@@ -24129,9 +24308,6 @@ class FullScreen {
|
|
|
24129
24308
|
&& !isNullOrUndefined(this.parent.quickToolbarModule)) {
|
|
24130
24309
|
this.parent.quickToolbarModule.hideQuickToolbars();
|
|
24131
24310
|
}
|
|
24132
|
-
if (this.parent.showTooltip && !isNullOrUndefined(document.querySelector('.e-tooltip-wrap'))) {
|
|
24133
|
-
this.parent.notify(destroyTooltip, { args: event });
|
|
24134
|
-
}
|
|
24135
24311
|
this.scrollableParent = getScrollableParent(this.parent.element);
|
|
24136
24312
|
if (!this.parent.element.classList.contains(CLS_FULL_SCREEN)) {
|
|
24137
24313
|
const evenArgs = {
|
|
@@ -24183,9 +24359,6 @@ class FullScreen {
|
|
|
24183
24359
|
&& !isNullOrUndefined(this.parent.quickToolbarModule)) {
|
|
24184
24360
|
this.parent.quickToolbarModule.hideQuickToolbars();
|
|
24185
24361
|
}
|
|
24186
|
-
if (this.parent.showTooltip && !isNullOrUndefined(document.querySelector('.e-tooltip-wrap'))) {
|
|
24187
|
-
this.parent.notify(destroyTooltip, { args: event });
|
|
24188
|
-
}
|
|
24189
24362
|
if (this.parent.element.classList.contains(CLS_FULL_SCREEN)) {
|
|
24190
24363
|
const evenArgs = {
|
|
24191
24364
|
cancel: false,
|
|
@@ -26586,13 +26759,13 @@ class Image$1 {
|
|
|
26586
26759
|
selectParentEle = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
|
|
26587
26760
|
if (!originalEvent.ctrlKey && originalEvent.key && (originalEvent.key.length === 1 || originalEvent.action === 'enter') &&
|
|
26588
26761
|
(!isNullOrUndefined(selectParentEle[0]) && selectParentEle[0].tagName === 'IMG') && selectParentEle[0].parentElement) {
|
|
26589
|
-
const prev = selectParentEle[0].parentElement.childNodes[0];
|
|
26590
26762
|
if (this.contentModule.getEditPanel().querySelector('.e-img-resize')) {
|
|
26591
26763
|
this.removeResizeEle();
|
|
26592
26764
|
}
|
|
26593
|
-
this.parent.formatter.editorManager.nodeSelection.setSelectionText(this.contentModule.getDocument(), prev, prev, prev.textContent.length, prev.textContent.length);
|
|
26594
26765
|
removeClass([selectParentEle[0]], 'e-img-focus');
|
|
26595
|
-
this.quickToolObj.imageQTBar
|
|
26766
|
+
if (this.quickToolObj && this.quickToolObj.imageQTBar) {
|
|
26767
|
+
this.quickToolObj.imageQTBar.hidePopup();
|
|
26768
|
+
}
|
|
26596
26769
|
}
|
|
26597
26770
|
}
|
|
26598
26771
|
if (originalEvent.ctrlKey && (originalEvent.keyCode === 89 || originalEvent.keyCode === 90)) {
|
|
@@ -27353,7 +27526,12 @@ class Image$1 {
|
|
|
27353
27526
|
animationSettings: { effect: 'None' },
|
|
27354
27527
|
close: (event) => {
|
|
27355
27528
|
if (this.isImgUploaded) {
|
|
27356
|
-
this.
|
|
27529
|
+
if (this.dialogObj.element.querySelector('.e-file-abort-btn')) {
|
|
27530
|
+
this.dialogObj.element.querySelector('.e-file-abort-btn').click();
|
|
27531
|
+
}
|
|
27532
|
+
else {
|
|
27533
|
+
this.uploadObj.remove();
|
|
27534
|
+
}
|
|
27357
27535
|
}
|
|
27358
27536
|
this.parent.isBlur = false;
|
|
27359
27537
|
if (event && !isNullOrUndefined(event.event) && event.event.returnValue) {
|
|
@@ -28860,7 +29038,12 @@ class Audio {
|
|
|
28860
29038
|
animationSettings: { effect: 'None' },
|
|
28861
29039
|
close: (event) => {
|
|
28862
29040
|
if (this.isAudioUploaded) {
|
|
28863
|
-
this.
|
|
29041
|
+
if (this.dialogObj.element.querySelector('.e-file-abort-btn')) {
|
|
29042
|
+
this.dialogObj.element.querySelector('.e-file-abort-btn').click();
|
|
29043
|
+
}
|
|
29044
|
+
else {
|
|
29045
|
+
this.uploadObj.remove();
|
|
29046
|
+
}
|
|
28864
29047
|
}
|
|
28865
29048
|
this.parent.isBlur = false;
|
|
28866
29049
|
if (event && !isNullOrUndefined(event.event) && event.event.returnValue) {
|
|
@@ -30211,7 +30394,12 @@ class Video {
|
|
|
30211
30394
|
animationSettings: { effect: 'None' },
|
|
30212
30395
|
close: (event) => {
|
|
30213
30396
|
if (this.isVideoUploaded) {
|
|
30214
|
-
this.
|
|
30397
|
+
if (this.dialogObj.element.querySelector('.e-file-abort-btn')) {
|
|
30398
|
+
this.dialogObj.element.querySelector('.e-file-abort-btn').click();
|
|
30399
|
+
}
|
|
30400
|
+
else {
|
|
30401
|
+
this.uploadObj.remove();
|
|
30402
|
+
}
|
|
30215
30403
|
}
|
|
30216
30404
|
this.parent.isBlur = false;
|
|
30217
30405
|
if (event && !isNullOrUndefined(event.event) && event.event.returnValue) {
|
|
@@ -32438,7 +32626,8 @@ class Table {
|
|
|
32438
32626
|
const argument = ((Browser.isDevice || (!isNullOrUndefined(args.args)
|
|
32439
32627
|
&& !isNullOrUndefined(args.args.originalEvent) &&
|
|
32440
32628
|
args.args.originalEvent.action === 'insert-table')
|
|
32441
|
-
|| proxy.parent.inlineMode.enable || !isNullOrUndefined(proxy.parent.quickToolbarSettings.text))
|
|
32629
|
+
|| proxy.parent.inlineMode.enable || ((!isNullOrUndefined(proxy.parent.quickToolbarSettings.text)) &&
|
|
32630
|
+
!(args instanceof PointerEvent))) ? args :
|
|
32442
32631
|
this);
|
|
32443
32632
|
proxy.tableInsert(proxy.rowTextBox.value, proxy.columnTextBox.value, e, argument);
|
|
32444
32633
|
}
|
|
@@ -32887,12 +33076,12 @@ const executeGroup = {
|
|
|
32887
33076
|
}
|
|
32888
33077
|
};
|
|
32889
33078
|
|
|
32890
|
-
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
32891
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
32892
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
32893
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
32894
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
32895
|
-
};
|
|
33079
|
+
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
33080
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
33081
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
33082
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
33083
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
33084
|
+
};
|
|
32896
33085
|
/**
|
|
32897
33086
|
* Configures the toolbar settings of the RichTextEditor.
|
|
32898
33087
|
*/
|
|
@@ -33282,12 +33471,12 @@ __decorate$2([
|
|
|
33282
33471
|
Property(bulletFormatList)
|
|
33283
33472
|
], BulletFormatList.prototype, "types", void 0);
|
|
33284
33473
|
|
|
33285
|
-
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
33286
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
33287
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
33288
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
33289
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
33290
|
-
};
|
|
33474
|
+
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
33475
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
33476
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
33477
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
33478
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
33479
|
+
};
|
|
33291
33480
|
/**
|
|
33292
33481
|
* Objects used for configuring the iframe resources properties.
|
|
33293
33482
|
*/
|
|
@@ -33314,12 +33503,12 @@ __decorate$3([
|
|
|
33314
33503
|
Complex({}, Resources)
|
|
33315
33504
|
], IFrameSettings.prototype, "resources", void 0);
|
|
33316
33505
|
|
|
33317
|
-
var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
33318
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
33319
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
33320
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
33321
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
33322
|
-
};
|
|
33506
|
+
var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
33507
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
33508
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
33509
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
33510
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
33511
|
+
};
|
|
33323
33512
|
/**
|
|
33324
33513
|
* Configures the inlineMode property of the RTE.
|
|
33325
33514
|
*/
|
|
@@ -33370,16 +33559,18 @@ class EnterKeyAction {
|
|
|
33370
33559
|
this.getRangeNode();
|
|
33371
33560
|
let isTableEnter = true;
|
|
33372
33561
|
this.formatTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote'];
|
|
33373
|
-
const
|
|
33374
|
-
|
|
33375
|
-
|
|
33376
|
-
|
|
33377
|
-
|
|
33378
|
-
|
|
33379
|
-
|
|
33380
|
-
if (
|
|
33381
|
-
this.
|
|
33382
|
-
|
|
33562
|
+
const tableImagCursor = this.processedTableImageCursor();
|
|
33563
|
+
if (tableImagCursor.start || tableImagCursor.end) {
|
|
33564
|
+
if (tableImagCursor.startName === 'TABLE' || tableImagCursor.endName === 'TABLE') { // Default browser action prevented and hanled manually.
|
|
33565
|
+
this.handleCursorAtTableSide(e, tableImagCursor.start, tableImagCursor.end);
|
|
33566
|
+
return;
|
|
33567
|
+
}
|
|
33568
|
+
}
|
|
33569
|
+
if (tableImagCursor.start || tableImagCursor.end || this.range.startContainer.nodeName === 'IMG') {
|
|
33570
|
+
if (this.parent.enterKey === 'BR' && (tableImagCursor.startName === 'IMG' || tableImagCursor.endName === 'IMG' || this.range.startContainer.nodeName === 'IMG')) { // Default browser action prevented and hanled manually.
|
|
33571
|
+
this.handleEnterKeyAtImageSide(e, tableImagCursor.start, tableImagCursor.end);
|
|
33572
|
+
return;
|
|
33573
|
+
}
|
|
33383
33574
|
}
|
|
33384
33575
|
if (!isNullOrUndefined(this.startNode.closest('TABLE')) && !isNullOrUndefined(this.endNode.closest('TABLE'))) {
|
|
33385
33576
|
isTableEnter = false;
|
|
@@ -33747,7 +33938,6 @@ class EnterKeyAction {
|
|
|
33747
33938
|
const outerBRElem = this.parent.createElement('br');
|
|
33748
33939
|
if (this.range.startOffset === 0 && this.range.endOffset === 0 &&
|
|
33749
33940
|
!isNullOrUndefined(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR' && currentParent.nodeName !== 'P' && currentParent.nodeName !== 'DIV') {
|
|
33750
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
33751
33941
|
newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, currentParent, false).cloneNode(true);
|
|
33752
33942
|
this.parent.formatter.editorManager.domNode.insertAfter(outerBRElem, currentParent);
|
|
33753
33943
|
this.insertFocusContent();
|
|
@@ -33777,7 +33967,7 @@ class EnterKeyAction {
|
|
|
33777
33967
|
}
|
|
33778
33968
|
e.args.preventDefault();
|
|
33779
33969
|
}
|
|
33780
|
-
this.
|
|
33970
|
+
this.triggerActionComplete(e, shiftKey);
|
|
33781
33971
|
}
|
|
33782
33972
|
});
|
|
33783
33973
|
}
|
|
@@ -33847,6 +34037,9 @@ class EnterKeyAction {
|
|
|
33847
34037
|
}
|
|
33848
34038
|
return insertElem;
|
|
33849
34039
|
}
|
|
34040
|
+
triggerActionComplete(e, shiftKey) {
|
|
34041
|
+
this.parent.trigger(actionComplete, { requestType: shiftKey ? 'ShiftEnterAction' : 'EnterAction', args: e.args });
|
|
34042
|
+
}
|
|
33850
34043
|
handleCursorAtTableSide(e, isStart, isEnd) {
|
|
33851
34044
|
if (this.parent.enterKey !== 'BR') {
|
|
33852
34045
|
const shiftKey = e.args.shiftKey;
|
|
@@ -33876,19 +34069,99 @@ class EnterKeyAction {
|
|
|
33876
34069
|
}
|
|
33877
34070
|
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), newElement, 0);
|
|
33878
34071
|
e.args.preventDefault();
|
|
33879
|
-
this.
|
|
34072
|
+
this.triggerActionComplete(e, shiftKey);
|
|
33880
34073
|
}
|
|
33881
34074
|
});
|
|
33882
34075
|
}
|
|
33883
34076
|
}
|
|
34077
|
+
handleEnterKeyAtImageSide(e, isStart, isEnd) {
|
|
34078
|
+
const actionBeginArgs = {
|
|
34079
|
+
cancel: false,
|
|
34080
|
+
name: actionBegin,
|
|
34081
|
+
requestType: e.args.shiftKey ? 'ShiftEnterAction' : 'EnterAction',
|
|
34082
|
+
originalEvent: e.args
|
|
34083
|
+
};
|
|
34084
|
+
let directRange = false;
|
|
34085
|
+
if (this.range.startContainer.nodeName === 'IMG' && this.range.startOffset === 0) {
|
|
34086
|
+
directRange = true;
|
|
34087
|
+
}
|
|
34088
|
+
this.parent.trigger(actionBegin, actionBeginArgs, (actionBeginArgs) => {
|
|
34089
|
+
if (!actionBeginArgs.cancel) {
|
|
34090
|
+
if (this.parent.enterKey === 'BR') {
|
|
34091
|
+
const newElement = this.parent.createElement('BR');
|
|
34092
|
+
let imageElement;
|
|
34093
|
+
if (directRange) {
|
|
34094
|
+
imageElement = this.range.startContainer;
|
|
34095
|
+
imageElement.parentElement.insertBefore(newElement, imageElement);
|
|
34096
|
+
this.parent.formatter.editorManager.nodeSelection.
|
|
34097
|
+
setCursorPoint(this.parent.contentModule.getDocument(), imageElement, 0);
|
|
34098
|
+
}
|
|
34099
|
+
if (isStart) {
|
|
34100
|
+
imageElement = this.range.startContainer.childNodes[this.range.startOffset];
|
|
34101
|
+
imageElement.parentElement.insertBefore(newElement, imageElement);
|
|
34102
|
+
this.parent.formatter.editorManager.nodeSelection.
|
|
34103
|
+
setCursorPoint(this.parent.contentModule.getDocument(), imageElement, 0);
|
|
34104
|
+
}
|
|
34105
|
+
if (isEnd) {
|
|
34106
|
+
imageElement = this.range.startContainer.childNodes[this.range.startOffset - 1];
|
|
34107
|
+
if (!isNullOrUndefined(imageElement.nextSibling)) {
|
|
34108
|
+
imageElement.parentElement.insertBefore(newElement, imageElement.nextSibling);
|
|
34109
|
+
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), newElement.nextSibling, 0);
|
|
34110
|
+
}
|
|
34111
|
+
else if (isNullOrUndefined(imageElement.nextSibling)) {
|
|
34112
|
+
imageElement.parentElement.appendChild(newElement);
|
|
34113
|
+
const brElement = this.parent.createElement('BR');
|
|
34114
|
+
imageElement.parentElement.appendChild(brElement);
|
|
34115
|
+
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), brElement, 0);
|
|
34116
|
+
}
|
|
34117
|
+
}
|
|
34118
|
+
e.args.preventDefault();
|
|
34119
|
+
this.triggerActionComplete(e, e.args.shiftKey);
|
|
34120
|
+
}
|
|
34121
|
+
}
|
|
34122
|
+
});
|
|
34123
|
+
}
|
|
34124
|
+
isTableOrImageStart() {
|
|
34125
|
+
const customHandlerElements = ['IMG', 'TABLE'];
|
|
34126
|
+
const startContainer = this.range.startContainer;
|
|
34127
|
+
const startOffset = this.range.startOffset;
|
|
34128
|
+
const isCursorAtStart = this.range.collapsed && (startContainer.nodeType === 1) &&
|
|
34129
|
+
startContainer.isContentEditable && startContainer.childNodes[startOffset] &&
|
|
34130
|
+
(customHandlerElements.indexOf(startContainer.childNodes[startOffset].nodeName) > -1);
|
|
34131
|
+
if (isCursorAtStart) {
|
|
34132
|
+
return { start: isCursorAtStart, startNodeName: startContainer.childNodes[startOffset].nodeName };
|
|
34133
|
+
}
|
|
34134
|
+
else {
|
|
34135
|
+
return { start: false, startNodeName: '' };
|
|
34136
|
+
}
|
|
34137
|
+
}
|
|
34138
|
+
isTableOrImageEnd() {
|
|
34139
|
+
const customHandlerElements = ['IMG', 'TABLE'];
|
|
34140
|
+
const startContainer = this.range.startContainer;
|
|
34141
|
+
const startOffset = this.range.startOffset;
|
|
34142
|
+
const isCursorAtEnd = this.range.collapsed && (startContainer.nodeType === 1) &&
|
|
34143
|
+
startContainer.isContentEditable && startContainer.childNodes[startOffset - 1] &&
|
|
34144
|
+
(customHandlerElements.indexOf(startContainer.childNodes[startOffset - 1].nodeName) > -1);
|
|
34145
|
+
if (isCursorAtEnd) {
|
|
34146
|
+
return { end: isCursorAtEnd, endNodeName: startContainer.childNodes[startOffset - 1].nodeName };
|
|
34147
|
+
}
|
|
34148
|
+
else {
|
|
34149
|
+
return { end: false, endNodeName: '' };
|
|
34150
|
+
}
|
|
34151
|
+
}
|
|
34152
|
+
processedTableImageCursor() {
|
|
34153
|
+
const { start, startNodeName } = this.isTableOrImageStart();
|
|
34154
|
+
const { end, endNodeName } = this.isTableOrImageEnd();
|
|
34155
|
+
return { start, startName: startNodeName, end, endName: endNodeName };
|
|
34156
|
+
}
|
|
33884
34157
|
}
|
|
33885
34158
|
|
|
33886
|
-
var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
33887
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
33888
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
33889
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
33890
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
33891
|
-
};
|
|
34159
|
+
var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
34160
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
34161
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
34162
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
34163
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
34164
|
+
};
|
|
33892
34165
|
/**
|
|
33893
34166
|
* Represents the Rich Text Editor component.
|
|
33894
34167
|
* ```html
|
|
@@ -34026,6 +34299,7 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
34026
34299
|
this.persistData();
|
|
34027
34300
|
setStyleAttribute(this.element, { 'width': formatUnit(this.width) });
|
|
34028
34301
|
attributes(this.element, { role: 'application', 'aria-label': 'Rich Text Editor' });
|
|
34302
|
+
this.beforeRenderClassValue = this.element.getAttribute('class');
|
|
34029
34303
|
}
|
|
34030
34304
|
persistData() {
|
|
34031
34305
|
if (this.enablePersistence && this.originalElement.tagName === 'TEXTAREA') {
|
|
@@ -34896,6 +35170,10 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
34896
35170
|
if (this.isDestroyed || !this.isRendered) {
|
|
34897
35171
|
return;
|
|
34898
35172
|
}
|
|
35173
|
+
this.element.className = this.beforeRenderClassValue;
|
|
35174
|
+
this.removeHtmlAttributes();
|
|
35175
|
+
this.removeAttributes();
|
|
35176
|
+
this.beforeRenderClassValue = null;
|
|
34899
35177
|
if (!isNullOrUndefined(this.timeInterval)) {
|
|
34900
35178
|
clearInterval(this.timeInterval);
|
|
34901
35179
|
this.timeInterval = null;
|
|
@@ -34963,8 +35241,6 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
34963
35241
|
}
|
|
34964
35242
|
}
|
|
34965
35243
|
}
|
|
34966
|
-
this.removeHtmlAttributes();
|
|
34967
|
-
this.removeAttributes();
|
|
34968
35244
|
super.destroy();
|
|
34969
35245
|
this.isRendered = false;
|
|
34970
35246
|
}
|
|
@@ -34995,6 +35271,7 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
34995
35271
|
this.element.removeAttribute('aria-disabled');
|
|
34996
35272
|
this.element.removeAttribute('role');
|
|
34997
35273
|
this.element.removeAttribute('tabindex');
|
|
35274
|
+
this.element.removeAttribute('aria-label');
|
|
34998
35275
|
}
|
|
34999
35276
|
destroyDependentModules() {
|
|
35000
35277
|
/* destroy dependent modules */
|
|
@@ -35248,7 +35525,7 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
35248
35525
|
}
|
|
35249
35526
|
}
|
|
35250
35527
|
updatePanelValue() {
|
|
35251
|
-
let value = this.value;
|
|
35528
|
+
let value = this.listOrderCorrection(this.value);
|
|
35252
35529
|
value = (this.enableHtmlEncode && this.value) ? decode(value) : value;
|
|
35253
35530
|
const getTextArea = this.element.querySelector('.' + CLS_RTE_SOURCE_CODE_TXTAREA);
|
|
35254
35531
|
if (value) {
|
|
@@ -35292,6 +35569,17 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
35292
35569
|
this.countModule.refresh();
|
|
35293
35570
|
}
|
|
35294
35571
|
}
|
|
35572
|
+
listOrderCorrection(value) {
|
|
35573
|
+
const valueElementWrapper = this.createElement('div');
|
|
35574
|
+
valueElementWrapper.innerHTML = value;
|
|
35575
|
+
const listElements = valueElementWrapper.querySelectorAll('UL, OL');
|
|
35576
|
+
for (let i = 0; i < listElements.length; i++) {
|
|
35577
|
+
if (!isNullOrUndefined(listElements[i]) && !isNullOrUndefined(listElements[i].parentElement) && !isNullOrUndefined(listElements[i].previousElementSibling) && (listElements[i].parentElement.nodeName === 'UL' || listElements[i].parentElement.nodeName === 'OL')) {
|
|
35578
|
+
listElements[i].previousElementSibling.appendChild(listElements[i]);
|
|
35579
|
+
}
|
|
35580
|
+
}
|
|
35581
|
+
return valueElementWrapper.innerHTML;
|
|
35582
|
+
}
|
|
35295
35583
|
setHeight(height) {
|
|
35296
35584
|
if (height !== 'auto') {
|
|
35297
35585
|
this.element.style.height = formatUnit(height);
|