@syncfusion/ej2-richtexteditor 28.1.36 → 28.1.38-680214
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/README.md +1 -1
- package/dist/ej2-richtexteditor.min.js +1 -1
- package/dist/ej2-richtexteditor.umd.min.js +1 -1
- package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es2015.js +221 -167
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +221 -167
- package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
- package/dist/global/ej2-richtexteditor.min.js +1 -1
- package/dist/global/ej2-richtexteditor.min.js.map +1 -1
- package/package.json +59 -82
- package/src/common/interface.d.ts +8 -8
- package/src/common/util.d.ts +1 -2
- package/src/common/util.js +49 -95
- 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 +3 -3
- package/src/editor-manager/base/enum.d.ts +2 -2
- package/src/editor-manager/base/interface.d.ts +17 -9
- package/src/editor-manager/base/types.d.ts +1 -1
- package/src/editor-manager/plugin/alignments.d.ts +2 -2
- package/src/editor-manager/plugin/alignments.js +2 -2
- package/src/editor-manager/plugin/audio.d.ts +3 -3
- package/src/editor-manager/plugin/audio.js +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 +36 -36
- package/src/editor-manager/plugin/dom-node.js +36 -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 +2 -2
- 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 +2 -2
- package/src/editor-manager/plugin/insert-methods.d.ts +4 -4
- package/src/editor-manager/plugin/insert-methods.js +4 -4
- package/src/editor-manager/plugin/insert-text.d.ts +2 -2
- package/src/editor-manager/plugin/insert-text.js +2 -2
- package/src/editor-manager/plugin/inserthtml-exec.d.ts +2 -2
- package/src/editor-manager/plugin/inserthtml-exec.js +2 -2
- package/src/editor-manager/plugin/inserthtml.d.ts +2 -2
- package/src/editor-manager/plugin/inserthtml.js +5 -5
- package/src/editor-manager/plugin/isformatted.d.ts +9 -9
- package/src/editor-manager/plugin/isformatted.js +9 -9
- 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 +3 -2
- package/src/editor-manager/plugin/lists.js +15 -3
- package/src/editor-manager/plugin/ms-word-clean-up.d.ts +1 -1
- package/src/editor-manager/plugin/ms-word-clean-up.js +1 -1
- 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 +2 -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.js +37 -5
- package/src/rich-text-editor/actions/full-screen.d.ts +3 -3
- package/src/rich-text-editor/actions/full-screen.js +3 -3
- package/src/rich-text-editor/actions/html-editor.d.ts +3 -3
- package/src/rich-text-editor/actions/html-editor.js +28 -6
- package/src/rich-text-editor/actions/keyboard.d.ts +1 -1
- package/src/rich-text-editor/actions/keyboard.js +1 -1
- 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 +1 -1
- package/src/rich-text-editor/actions/paste-clean-up.js +27 -11
- 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/resize.d.ts +2 -0
- package/src/rich-text-editor/actions/resize.js +14 -2
- 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 +125 -125
- package/src/rich-text-editor/base/classes.js +125 -125
- 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 +51 -51
- package/src/rich-text-editor/base/interface.js +1 -1
- package/src/rich-text-editor/base/rich-text-editor-model.d.ts +1 -1
- package/src/rich-text-editor/base/rich-text-editor.d.ts +62 -62
- package/src/rich-text-editor/base/rich-text-editor.js +34 -35
- 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 +9 -9
- package/src/rich-text-editor/formatter/html-formatter.d.ts +2 -2
- package/src/rich-text-editor/formatter/html-formatter.js +2 -2
- package/src/rich-text-editor/formatter/markdown-formatter.d.ts +2 -2
- package/src/rich-text-editor/formatter/markdown-formatter.js +2 -2
- package/src/rich-text-editor/renderer/audio-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/audio-module.js +1 -1
- package/src/rich-text-editor/renderer/content-renderer.d.ts +6 -6
- package/src/rich-text-editor/renderer/content-renderer.js +6 -6
- package/src/rich-text-editor/renderer/dialog-renderer.d.ts +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 +4 -4
- package/src/rich-text-editor/renderer/image-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/image-module.js +1 -1
- package/src/rich-text-editor/renderer/link-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/link-module.js +3 -3
- 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 +3 -2
- package/src/rich-text-editor/renderer/table-module.js +44 -41
- package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +9 -9
- package/src/rich-text-editor/renderer/toolbar-renderer.js +16 -13
- package/src/rich-text-editor/renderer/video-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/video-module.js +1 -1
- package/src/rich-text-editor/renderer/view-source.d.ts +5 -5
- package/src/rich-text-editor/renderer/view-source.js +5 -5
- 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/bootstrap5.3-lite.css +5 -0
- package/styles/bootstrap5.3.css +5 -0
- package/styles/material3-dark.scss +1 -1
- package/styles/material3.scss +1 -1
- package/styles/rich-text-editor/_layout.scss +1 -1
- package/styles/rich-text-editor/_theme.scss +1 -1
- package/styles/rich-text-editor/bootstrap5.3.css +5 -0
- package/styles/rich-text-editor/material3-dark.scss +1 -1
- package/styles/rich-text-editor/material3.scss +1 -1
- package/styles/rich-text-editor/tailwind3.css +5 -0
- package/styles/tailwind3-lite.css +5 -0
- package/styles/tailwind3.css +5 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isNullOrUndefined, Browser, addClass, removeClass, selectAll as selectAll$1, createElement, detach, SanitizeHtmlHelper, extend, EventHandler, closest, getInstance, formatUnit, select, Ajax, Base, Property, Event as Event$1, NotifyPropertyChanges, ChildProperty, KeyboardEvents as KeyboardEvents$1, setStyleAttribute, getUniqueID, append, debounce, Observer, prepend, attributes,
|
|
1
|
+
import { isNullOrUndefined, Browser, addClass, removeClass, selectAll as selectAll$1, createElement, detach, SanitizeHtmlHelper, extend, EventHandler, closest, getInstance, formatUnit, select, Ajax, Base, Property, Event as Event$1, NotifyPropertyChanges, getComponent, ChildProperty, KeyboardEvents as KeyboardEvents$1, setStyleAttribute, getUniqueID, append, debounce, Observer, prepend, attributes, getEnumValue, Complex, Component, print, L10n, compile, Touch } from '@syncfusion/ej2-base';
|
|
2
2
|
import { Toolbar as Toolbar$1 } from '@syncfusion/ej2-navigations';
|
|
3
3
|
import { DropDownButton } from '@syncfusion/ej2-splitbuttons';
|
|
4
4
|
import { Tooltip, Popup, Dialog, isCollide, getScrollableParent } from '@syncfusion/ej2-popups';
|
|
@@ -4793,11 +4793,6 @@ class NodeSelection {
|
|
|
4793
4793
|
/**
|
|
4794
4794
|
* Defines common util methods used by Rich Text Editor.
|
|
4795
4795
|
*/
|
|
4796
|
-
const inlineNode$1 = ['a', 'abbr', 'acronym', 'audio', 'b', 'bdi', 'bdo', 'big', 'br', 'button',
|
|
4797
|
-
'canvas', 'cite', 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'font', 'i', 'iframe', 'img', 'input',
|
|
4798
|
-
'ins', 'kbd', 'label', 'map', 'mark', 'meter', 'noscript', 'object', 'output', 'picture', 'progress',
|
|
4799
|
-
'q', 'ruby', 's', 'samp', 'script', 'select', 'slot', 'small', 'span', 'strong', 'strike', 'sub', 'sup', 'svg',
|
|
4800
|
-
'template', 'textarea', 'time', 'u', 'tt', 'var', 'video', 'wbr'];
|
|
4801
4796
|
/**
|
|
4802
4797
|
* @returns {void}
|
|
4803
4798
|
* @hidden
|
|
@@ -4825,109 +4820,68 @@ function setEditFrameFocus(editableElement, selector) {
|
|
|
4825
4820
|
}
|
|
4826
4821
|
/**
|
|
4827
4822
|
* @param {string} value - specifies the string value
|
|
4828
|
-
* @param {string} enterAction - specifies the enter key action API
|
|
4829
4823
|
* @returns {void}
|
|
4830
4824
|
* @hidden
|
|
4831
4825
|
*/
|
|
4832
|
-
function updateTextNode$1(value
|
|
4833
|
-
const tempNode = document.createElement('div');
|
|
4834
|
-
tempNode.innerHTML = value;
|
|
4835
|
-
tempNode.setAttribute('class', 'tempDiv');
|
|
4826
|
+
function updateTextNode$1(value) {
|
|
4836
4827
|
const resultElm = document.createElement('div');
|
|
4837
|
-
|
|
4838
|
-
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
|
|
4842
|
-
|
|
4843
|
-
if (
|
|
4844
|
-
|
|
4845
|
-
|
|
4846
|
-
if (!isPreviousInlineElem) {
|
|
4847
|
-
if (enterAction === 'BR') {
|
|
4848
|
-
resultElm.appendChild(tempNode.firstChild);
|
|
4849
|
-
previousParent = resultElm;
|
|
4850
|
-
}
|
|
4851
|
-
else {
|
|
4852
|
-
paraElm = createElement('p');
|
|
4853
|
-
resultElm.appendChild(paraElm);
|
|
4854
|
-
paraElm.appendChild(tempNode.firstChild);
|
|
4855
|
-
previousParent = paraElm;
|
|
4856
|
-
isPreviousInlineElem = true;
|
|
4857
|
-
}
|
|
4858
|
-
}
|
|
4859
|
-
else {
|
|
4860
|
-
previousParent.appendChild(tempNode.firstChild);
|
|
4861
|
-
previousParent = paraElm;
|
|
4862
|
-
isPreviousInlineElem = true;
|
|
4863
|
-
}
|
|
4828
|
+
resultElm.innerHTML = value;
|
|
4829
|
+
const tableElm = resultElm.querySelectorAll('table');
|
|
4830
|
+
for (let i = 0; i < tableElm.length; i++) {
|
|
4831
|
+
if (tableElm[i].classList.length > 0 &&
|
|
4832
|
+
!tableElm[i].classList.contains('e-rte-table') && !tableElm[i].classList.contains('e-rte-custom-table')) {
|
|
4833
|
+
tableElm[i].classList.add('e-rte-paste-table');
|
|
4834
|
+
if (tableElm[i].classList.contains('e-rte-paste-word-table')) {
|
|
4835
|
+
tableElm[i].classList.remove('e-rte-paste-word-table');
|
|
4836
|
+
continue; // Skiping the removal of the border if the source is from word.
|
|
4864
4837
|
}
|
|
4865
|
-
else if (
|
|
4866
|
-
|
|
4867
|
-
|
|
4868
|
-
|
|
4869
|
-
else {
|
|
4870
|
-
resultElm.appendChild(tempNode.firstChild);
|
|
4871
|
-
isPreviousInlineElem = false;
|
|
4872
|
-
}
|
|
4873
|
-
}
|
|
4874
|
-
const tableElm = resultElm.querySelectorAll('table');
|
|
4875
|
-
for (let i = 0; i < tableElm.length; i++) {
|
|
4876
|
-
if (tableElm[i].classList.length > 0 &&
|
|
4877
|
-
!tableElm[i].classList.contains('e-rte-table') && !tableElm[i].classList.contains('e-rte-custom-table')) {
|
|
4878
|
-
tableElm[i].classList.add('e-rte-paste-table');
|
|
4879
|
-
if (tableElm[i].classList.contains('e-rte-paste-word-table')) {
|
|
4880
|
-
tableElm[i].classList.remove('e-rte-paste-word-table');
|
|
4881
|
-
continue; // Skiping the removal of the border if the source is from word.
|
|
4838
|
+
else if (tableElm[i].classList.contains('e-rte-paste-excel-table')) {
|
|
4839
|
+
tableElm[i].classList.remove('e-rte-paste-excel-table');
|
|
4840
|
+
if (tableElm[i].getAttribute('border') === '0') {
|
|
4841
|
+
tableElm[i].removeAttribute('border');
|
|
4882
4842
|
}
|
|
4883
|
-
|
|
4884
|
-
|
|
4885
|
-
if (
|
|
4886
|
-
|
|
4843
|
+
const tdElm = tableElm[i].querySelectorAll('td');
|
|
4844
|
+
for (let j = 0; j < tdElm.length; j++) {
|
|
4845
|
+
if (tdElm[j].style.borderLeft === 'none') {
|
|
4846
|
+
tdElm[j].style.removeProperty('border-left');
|
|
4887
4847
|
}
|
|
4888
|
-
|
|
4889
|
-
|
|
4890
|
-
|
|
4891
|
-
|
|
4892
|
-
|
|
4893
|
-
|
|
4894
|
-
|
|
4895
|
-
|
|
4896
|
-
|
|
4897
|
-
|
|
4898
|
-
|
|
4899
|
-
if (tdElm[j].style.borderTop === 'none') {
|
|
4900
|
-
tdElm[j].style.removeProperty('border-top');
|
|
4901
|
-
}
|
|
4902
|
-
if (tdElm[j].style.border === 'none') {
|
|
4903
|
-
tdElm[j].style.removeProperty('border');
|
|
4904
|
-
}
|
|
4848
|
+
if (tdElm[j].style.borderRight === 'none') {
|
|
4849
|
+
tdElm[j].style.removeProperty('border-right');
|
|
4850
|
+
}
|
|
4851
|
+
if (tdElm[j].style.borderBottom === 'none') {
|
|
4852
|
+
tdElm[j].style.removeProperty('border-bottom');
|
|
4853
|
+
}
|
|
4854
|
+
if (tdElm[j].style.borderTop === 'none') {
|
|
4855
|
+
tdElm[j].style.removeProperty('border-top');
|
|
4856
|
+
}
|
|
4857
|
+
if (tdElm[j].style.border === 'none') {
|
|
4858
|
+
tdElm[j].style.removeProperty('border');
|
|
4905
4859
|
}
|
|
4906
|
-
}
|
|
4907
|
-
else if (tableElm[i].classList.contains('e-rte-paste-onenote-table')) {
|
|
4908
|
-
tableElm[i].classList.remove('e-rte-paste-onenote-table');
|
|
4909
|
-
continue;
|
|
4910
|
-
}
|
|
4911
|
-
else if (tableElm[i].classList.contains('e-rte-paste-html-table')) {
|
|
4912
|
-
tableElm[i].classList.remove('e-rte-paste-html-table');
|
|
4913
|
-
continue;
|
|
4914
4860
|
}
|
|
4915
4861
|
}
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
if (imageElm[i].classList.contains('e-rte-image-unsupported')) {
|
|
4920
|
-
continue; // Should not add the class if the image is Broken.
|
|
4921
|
-
}
|
|
4922
|
-
if (!imageElm[i].classList.contains('e-rte-image')) {
|
|
4923
|
-
imageElm[i].classList.add('e-rte-image');
|
|
4862
|
+
else if (tableElm[i].classList.contains('e-rte-paste-onenote-table')) {
|
|
4863
|
+
tableElm[i].classList.remove('e-rte-paste-onenote-table');
|
|
4864
|
+
continue;
|
|
4924
4865
|
}
|
|
4925
|
-
if (
|
|
4926
|
-
|
|
4927
|
-
|
|
4866
|
+
else if (tableElm[i].classList.contains('e-rte-paste-html-table')) {
|
|
4867
|
+
tableElm[i].classList.remove('e-rte-paste-html-table');
|
|
4868
|
+
continue;
|
|
4928
4869
|
}
|
|
4929
4870
|
}
|
|
4930
4871
|
}
|
|
4872
|
+
const imageElm = resultElm.querySelectorAll('img');
|
|
4873
|
+
for (let i = 0; i < imageElm.length; i++) {
|
|
4874
|
+
if (imageElm[i].classList.contains('e-rte-image-unsupported')) {
|
|
4875
|
+
continue; // Should not add the class if the image is Broken.
|
|
4876
|
+
}
|
|
4877
|
+
if (!imageElm[i].classList.contains('e-rte-image')) {
|
|
4878
|
+
imageElm[i].classList.add('e-rte-image');
|
|
4879
|
+
}
|
|
4880
|
+
if (!(imageElm[i].classList.contains('e-imginline') ||
|
|
4881
|
+
imageElm[i].classList.contains('e-imgbreak'))) {
|
|
4882
|
+
imageElm[i].classList.add('e-imginline');
|
|
4883
|
+
}
|
|
4884
|
+
}
|
|
4931
4885
|
return resultElm.innerHTML;
|
|
4932
4886
|
}
|
|
4933
4887
|
/**
|
|
@@ -6143,7 +6097,6 @@ class ToolbarRenderer {
|
|
|
6143
6097
|
let proxy = this;
|
|
6144
6098
|
let value;
|
|
6145
6099
|
const colorPicker = new ColorPicker({
|
|
6146
|
-
enablePersistence: this.parent.enablePersistence,
|
|
6147
6100
|
enableRtl: this.parent.enableRtl,
|
|
6148
6101
|
inline: true,
|
|
6149
6102
|
value: null,
|
|
@@ -6179,17 +6132,21 @@ class ToolbarRenderer {
|
|
|
6179
6132
|
value: colorpickerValue
|
|
6180
6133
|
};
|
|
6181
6134
|
proxy.parent.notify(selectionRestore, {});
|
|
6182
|
-
proxy.currentElement
|
|
6135
|
+
if (proxy.currentElement) {
|
|
6136
|
+
proxy.currentElement.querySelector('.' + CLS_RTE_ELEMENTS).style.borderBottomColor = colorpickerValue;
|
|
6137
|
+
}
|
|
6183
6138
|
const range = proxy.parent.formatter.editorManager.nodeSelection.getRange(proxy.parent.contentModule.getDocument());
|
|
6184
6139
|
const closestElement = closest(range.startContainer.parentNode, 'table');
|
|
6185
6140
|
if ((range.startContainer.nodeName === 'TD' || range.startContainer.nodeName === 'TH' || range.startContainer.nodeName === 'BODY' ||
|
|
6186
|
-
closest(range.startContainer.parentNode, 'td,th')) && range.collapsed && args.subCommand === 'BackgroundColor' && (closest(closestElement, '.' + CLS_RTE) || proxy.parent.iframeSettings.enable)) {
|
|
6141
|
+
(range.startContainer.parentNode && closest(range.startContainer.parentNode, 'td,th'))) && range.collapsed && args.subCommand === 'BackgroundColor' && (closestElement && closest(closestElement, '.' + CLS_RTE) || proxy.parent.iframeSettings.enable)) {
|
|
6187
6142
|
proxy.parent.notify(tableColorPickerChanged, colorPickerArgs);
|
|
6188
6143
|
}
|
|
6189
6144
|
else {
|
|
6190
6145
|
proxy.parent.notify(colorPickerChanged, colorPickerArgs);
|
|
6191
6146
|
}
|
|
6192
|
-
proxy.currentDropdown
|
|
6147
|
+
if (proxy.currentDropdown) {
|
|
6148
|
+
proxy.currentDropdown.toggle();
|
|
6149
|
+
}
|
|
6193
6150
|
},
|
|
6194
6151
|
beforeModeSwitch: (args) => {
|
|
6195
6152
|
value = colorPicker.value;
|
|
@@ -6650,10 +6607,10 @@ class Link {
|
|
|
6650
6607
|
}
|
|
6651
6608
|
if (!this.selfLink.isUrl(linkUrl)) {
|
|
6652
6609
|
if (this.selfLink.parent.editorMode === 'Markdown') {
|
|
6653
|
-
linkText = (linkText !== '') ? linkText : '';
|
|
6610
|
+
linkText = (linkText.trim() !== '') ? linkText : '';
|
|
6654
6611
|
}
|
|
6655
6612
|
else {
|
|
6656
|
-
linkText = (linkText === '') ? linkUrl : linkText;
|
|
6613
|
+
linkText = (linkText.trim() === '') ? linkUrl : linkText;
|
|
6657
6614
|
}
|
|
6658
6615
|
if (!this.selfLink.parent.enableAutoUrl) {
|
|
6659
6616
|
linkUrl = linkUrl.indexOf('http') > -1 ? linkUrl : 'http://' + linkUrl;
|
|
@@ -12484,7 +12441,6 @@ class Table {
|
|
|
12484
12441
|
this.parent.on(tableToolbarAction, this.onToolbarAction, this);
|
|
12485
12442
|
this.parent.on(dropDownSelect, this.dropdownSelect, this);
|
|
12486
12443
|
this.parent.on(keyDown, this.keyDown, this);
|
|
12487
|
-
this.parent.on(keyUp, this.keyUp, this);
|
|
12488
12444
|
this.parent.on(tableModulekeyUp, this.tableModulekeyUp, this);
|
|
12489
12445
|
this.parent.on(bindCssClass, this.setCssClass, this);
|
|
12490
12446
|
this.parent.on(destroy, this.destroy, this);
|
|
@@ -12505,7 +12461,6 @@ class Table {
|
|
|
12505
12461
|
this.parent.off(mouseDown, this.cellSelect);
|
|
12506
12462
|
this.parent.off(tableColorPickerChanged, this.setBGColor);
|
|
12507
12463
|
this.parent.off(keyDown, this.keyDown);
|
|
12508
|
-
this.parent.off(keyUp, this.keyUp);
|
|
12509
12464
|
this.parent.off(tableModulekeyUp, this.tableModulekeyUp);
|
|
12510
12465
|
this.parent.off(bindCssClass, this.setCssClass);
|
|
12511
12466
|
this.parent.off(destroy, this.destroy);
|
|
@@ -12602,20 +12557,6 @@ class Table {
|
|
|
12602
12557
|
this.parent.formatter.process(this.parent, e, e, { selection: selectCell, subCommand: e.item.subCommand });
|
|
12603
12558
|
this.hideTableQuickToolbar();
|
|
12604
12559
|
}
|
|
12605
|
-
keyUp(e) {
|
|
12606
|
-
const target = e.args.target;
|
|
12607
|
-
if (e.args.key.toLocaleLowerCase() === 'escape' && target && target.classList && (this.popupObj && !closest(target, '[id=' + '\'' + this.popupObj.element.id + '\'' + ']')) && this.popupObj) {
|
|
12608
|
-
let createTableToolbarBtn = this.popupObj.relateTo;
|
|
12609
|
-
if (createTableToolbarBtn.nodeName !== 'BUTTON') {
|
|
12610
|
-
createTableToolbarBtn = createTableToolbarBtn.querySelector('span.e-create-table');
|
|
12611
|
-
createTableToolbarBtn = createTableToolbarBtn.parentElement;
|
|
12612
|
-
}
|
|
12613
|
-
this.popupObj.hide();
|
|
12614
|
-
if (createTableToolbarBtn) {
|
|
12615
|
-
createTableToolbarBtn.focus();
|
|
12616
|
-
}
|
|
12617
|
-
}
|
|
12618
|
-
}
|
|
12619
12560
|
keyDown(e) {
|
|
12620
12561
|
const event = e.args;
|
|
12621
12562
|
// eslint-disable-next-line
|
|
@@ -14187,6 +14128,8 @@ class Table {
|
|
|
14187
14128
|
const header = '1X1';
|
|
14188
14129
|
const insertbtn = this.l10n.getConstant('inserttablebtn');
|
|
14189
14130
|
this.dlgDiv = this.parent.createElement('div', { className: 'e-rte-table-popup' + this.parent.getCssClass(true), id: this.rteID + '_table' });
|
|
14131
|
+
this.createTablePopupBoundFn = this.createTablePopupKeyDown.bind(this);
|
|
14132
|
+
this.dlgDiv.addEventListener('keydown', this.createTablePopupBoundFn);
|
|
14190
14133
|
this.tblHeader = this.parent.createElement('div', { className: 'e-rte-popup-header' + this.parent.getCssClass(true) });
|
|
14191
14134
|
this.tblHeader.innerHTML = header;
|
|
14192
14135
|
this.dlgDiv.appendChild(this.tblHeader);
|
|
@@ -14224,6 +14167,7 @@ class Table {
|
|
|
14224
14167
|
// eslint-disable-next-line
|
|
14225
14168
|
close: (event) => {
|
|
14226
14169
|
EventHandler.remove(btnEle, 'click', this.insertTableDialog);
|
|
14170
|
+
this.dlgDiv.removeEventListener('keydown', this.createTablePopupBoundFn);
|
|
14227
14171
|
detach(btnEle);
|
|
14228
14172
|
if (this.createTableButton && !this.createTableButton.isDestroyed) {
|
|
14229
14173
|
this.createTableButton.destroy();
|
|
@@ -14477,34 +14421,40 @@ class Table {
|
|
|
14477
14421
|
// eslint-disable-next-line
|
|
14478
14422
|
applyProperties(args, e) {
|
|
14479
14423
|
const dialogEle = this.editdlgObj.element;
|
|
14480
|
-
|
|
14481
|
-
|
|
14482
|
-
|
|
14483
|
-
|
|
14484
|
-
|
|
14485
|
-
|
|
14486
|
-
|
|
14487
|
-
if (
|
|
14488
|
-
|
|
14489
|
-
|
|
14424
|
+
if (dialogEle && args && args.selectNode.length > 0 && args.selectNode[0]) {
|
|
14425
|
+
const selectedElement = (args.selectNode[0] && args.selectNode[0].nodeType === 3 ?
|
|
14426
|
+
args.selectNode[0].parentNode : args.selectNode[0]);
|
|
14427
|
+
const table = selectedElement ? closest(selectedElement, 'table') : null;
|
|
14428
|
+
if (table) {
|
|
14429
|
+
table.style.width = dialogEle.querySelector('.e-table-width') ? dialogEle.querySelector('.e-table-width').value + 'px'
|
|
14430
|
+
: table.style.width;
|
|
14431
|
+
if (dialogEle.querySelector('.e-cell-padding') && dialogEle.querySelector('.e-cell-padding').value !== '') {
|
|
14432
|
+
const tdElm = table.querySelectorAll('td');
|
|
14433
|
+
for (let i = 0; i < tdElm.length; i++) {
|
|
14434
|
+
let padVal = '';
|
|
14435
|
+
if (tdElm[i].style.padding === '') {
|
|
14436
|
+
padVal = tdElm[i].getAttribute('style') + ' padding:' +
|
|
14437
|
+
dialogEle.querySelector('.e-cell-padding').value + 'px;';
|
|
14438
|
+
}
|
|
14439
|
+
else {
|
|
14440
|
+
tdElm[i].style.padding = dialogEle.querySelector('.e-cell-padding').value + 'px';
|
|
14441
|
+
padVal = tdElm[i].getAttribute('style');
|
|
14442
|
+
}
|
|
14443
|
+
tdElm[i].setAttribute('style', padVal);
|
|
14444
|
+
}
|
|
14445
|
+
}
|
|
14446
|
+
table.cellSpacing = dialogEle.querySelector('.e-cell-spacing') ? dialogEle.querySelector('.e-cell-spacing').value
|
|
14447
|
+
: table.cellSpacing;
|
|
14448
|
+
if (!isNullOrUndefined(table.cellSpacing) && table.cellSpacing !== '0') {
|
|
14449
|
+
addClass([table], CLS_TABLE_BORDER);
|
|
14490
14450
|
}
|
|
14491
14451
|
else {
|
|
14492
|
-
|
|
14493
|
-
padVal = tdElm[i].getAttribute('style');
|
|
14452
|
+
removeClassWithAttr([table], CLS_TABLE_BORDER);
|
|
14494
14453
|
}
|
|
14495
|
-
|
|
14454
|
+
this.parent.formatter.saveData();
|
|
14455
|
+
this.editdlgObj.hide({ returnValue: true });
|
|
14496
14456
|
}
|
|
14497
14457
|
}
|
|
14498
|
-
table.cellSpacing = dialogEle.querySelector('.e-cell-spacing') ? dialogEle.querySelector('.e-cell-spacing').value
|
|
14499
|
-
: table.cellSpacing;
|
|
14500
|
-
if (!isNullOrUndefined(table.cellSpacing) && table.cellSpacing !== '0') {
|
|
14501
|
-
addClass([table], CLS_TABLE_BORDER);
|
|
14502
|
-
}
|
|
14503
|
-
else {
|
|
14504
|
-
removeClassWithAttr([table], CLS_TABLE_BORDER);
|
|
14505
|
-
}
|
|
14506
|
-
this.parent.formatter.saveData();
|
|
14507
|
-
this.editdlgObj.hide({ returnValue: true });
|
|
14508
14458
|
}
|
|
14509
14459
|
tableDlgContent(e) {
|
|
14510
14460
|
const selectNode = e.selectParent[0];
|
|
@@ -14599,6 +14549,7 @@ class Table {
|
|
|
14599
14549
|
this.createTableButton.destroy();
|
|
14600
14550
|
this.createTableButton = null;
|
|
14601
14551
|
}
|
|
14552
|
+
this.createTablePopupBoundFn = null;
|
|
14602
14553
|
this.isDestroyed = true;
|
|
14603
14554
|
}
|
|
14604
14555
|
/**
|
|
@@ -14624,6 +14575,15 @@ class Table {
|
|
|
14624
14575
|
'px; left:' + (tablePosition.left + parseInt(getComputedStyle(this.curTable).width, 10) - 4) + 'px;';
|
|
14625
14576
|
}
|
|
14626
14577
|
}
|
|
14578
|
+
createTablePopupKeyDown(e) {
|
|
14579
|
+
if (e.key === 'Escape') {
|
|
14580
|
+
const popupRootElem = e.target.closest('.e-rte-table-popup');
|
|
14581
|
+
const popup = getComponent(popupRootElem, 'popup');
|
|
14582
|
+
const tableToolbarButton = popup.relateTo;
|
|
14583
|
+
popup.hide();
|
|
14584
|
+
tableToolbarButton.focus({ preventScroll: true });
|
|
14585
|
+
}
|
|
14586
|
+
}
|
|
14627
14587
|
}
|
|
14628
14588
|
|
|
14629
14589
|
/**
|
|
@@ -19400,7 +19360,7 @@ class Formatter {
|
|
|
19400
19360
|
}
|
|
19401
19361
|
}
|
|
19402
19362
|
const command = actionBeginArgs.item.subCommand.toLocaleLowerCase();
|
|
19403
|
-
if (command === 'image') {
|
|
19363
|
+
if (command === 'image' || command === 'file' || command === 'replace') {
|
|
19404
19364
|
value = actionBeginArgs.itemCollection;
|
|
19405
19365
|
}
|
|
19406
19366
|
if (command === 'paste' || command === 'cut' || command === 'copy') {
|
|
@@ -22293,7 +22253,7 @@ class InsertHtml {
|
|
|
22293
22253
|
nodeSelection.setSelectionText(docElement, lastSelectionNode, lastSelectionNode, 0, 0);
|
|
22294
22254
|
}
|
|
22295
22255
|
else {
|
|
22296
|
-
this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode
|
|
22256
|
+
this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode);
|
|
22297
22257
|
}
|
|
22298
22258
|
this.alignCheck(editNode);
|
|
22299
22259
|
this.listCleanUp(nodeSelection, docElement);
|
|
@@ -22553,9 +22513,9 @@ class InsertHtml {
|
|
|
22553
22513
|
}
|
|
22554
22514
|
}
|
|
22555
22515
|
}
|
|
22556
|
-
static cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode
|
|
22516
|
+
static cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode) {
|
|
22557
22517
|
lastSelectionNode.classList.add('lastNode');
|
|
22558
|
-
editNode.innerHTML = updateTextNode$1(editNode.innerHTML
|
|
22518
|
+
editNode.innerHTML = updateTextNode$1(editNode.innerHTML);
|
|
22559
22519
|
lastSelectionNode = editNode.querySelector('.lastNode');
|
|
22560
22520
|
if (!isNullOrUndefined(lastSelectionNode)) {
|
|
22561
22521
|
this.placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode);
|
|
@@ -24034,6 +23994,17 @@ class Lists {
|
|
|
24034
23994
|
}
|
|
24035
23995
|
return false;
|
|
24036
23996
|
}
|
|
23997
|
+
createAutoList(enterKey, shiftEnterKey) {
|
|
23998
|
+
const autoListRules = {
|
|
23999
|
+
BR: { BR: true, P: true, DIV: true },
|
|
24000
|
+
P: { BR: false, P: true, DIV: true },
|
|
24001
|
+
DIV: { BR: false, P: true, DIV: true }
|
|
24002
|
+
};
|
|
24003
|
+
if (autoListRules[enterKey] && autoListRules[enterKey][shiftEnterKey] !== undefined) {
|
|
24004
|
+
return autoListRules[enterKey][shiftEnterKey];
|
|
24005
|
+
}
|
|
24006
|
+
return false;
|
|
24007
|
+
}
|
|
24037
24008
|
spaceList(e) {
|
|
24038
24009
|
const range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
|
|
24039
24010
|
this.saveSelection = this.parent.nodeSelection.save(range, this.parent.currentDocument);
|
|
@@ -24049,7 +24020,8 @@ class Lists {
|
|
|
24049
24020
|
const startElementOLTest = this.testCurrentList(range);
|
|
24050
24021
|
const preElementOLTest = this.testList(preElement);
|
|
24051
24022
|
const nextElementOLTest = this.testList(nextElement);
|
|
24052
|
-
|
|
24023
|
+
const nextElementBRTest = range.startContainer.previousElementSibling && range.startContainer.previousElementSibling.tagName === 'BR';
|
|
24024
|
+
if (!preElementOLTest && !nextElementOLTest && preElemULStart !== '*' && nextElemULStart !== '*' && (this.createAutoList(e.enterKey, e.shiftEnterKey) || !nextElementBRTest)) {
|
|
24053
24025
|
const brElement = createElement('br');
|
|
24054
24026
|
if (startElementOLTest) {
|
|
24055
24027
|
range.startContainer.textContent = range.startContainer.textContent.slice(range.startOffset, range.startContainer.textContent.length);
|
|
@@ -28587,6 +28559,7 @@ class SelectionCommands {
|
|
|
28587
28559
|
}
|
|
28588
28560
|
else {
|
|
28589
28561
|
InsertMethods.unwrap(cursorFormat);
|
|
28562
|
+
domSelection.setCursorPoint(docElement, cursorNode, 0);
|
|
28590
28563
|
}
|
|
28591
28564
|
}
|
|
28592
28565
|
else {
|
|
@@ -32696,7 +32669,7 @@ class HtmlEditor {
|
|
|
32696
32669
|
onSelectionRestore(e) {
|
|
32697
32670
|
this.parent.isBlur = false;
|
|
32698
32671
|
this.contentRenderer.getEditPanel().focus({ preventScroll: true });
|
|
32699
|
-
if (isNullOrUndefined(e.items) || e.items) {
|
|
32672
|
+
if ((isNullOrUndefined(e.items) || e.items) && (!isNullOrUndefined(this.saveSelection))) {
|
|
32700
32673
|
this.saveSelection.restore();
|
|
32701
32674
|
}
|
|
32702
32675
|
}
|
|
@@ -32996,7 +32969,9 @@ class HtmlEditor {
|
|
|
32996
32969
|
const eventArgs = {
|
|
32997
32970
|
callBack: null,
|
|
32998
32971
|
event: e.args,
|
|
32999
|
-
name: 'keydown-handler'
|
|
32972
|
+
name: 'keydown-handler',
|
|
32973
|
+
enterKey: this.parent.enterKey,
|
|
32974
|
+
shiftEnterKey: this.parent.shiftEnterKey
|
|
33000
32975
|
};
|
|
33001
32976
|
const actionBeginArgs = {
|
|
33002
32977
|
cancel: false,
|
|
@@ -33132,6 +33107,26 @@ class HtmlEditor {
|
|
|
33132
33107
|
if (isNullOrUndefined(this.oldRangeElement)) {
|
|
33133
33108
|
return;
|
|
33134
33109
|
}
|
|
33110
|
+
else if (findBlockElement[0].previousSibling) {
|
|
33111
|
+
const prevSibling = findBlockElement[0].previousSibling;
|
|
33112
|
+
const currentElement = findBlockElement[0];
|
|
33113
|
+
if (prevSibling.textContent.trim()) {
|
|
33114
|
+
if (prevSibling.lastChild.nodeName === 'BR') {
|
|
33115
|
+
prevSibling.removeChild(prevSibling.lastChild);
|
|
33116
|
+
}
|
|
33117
|
+
const cursorpointer = prevSibling.lastChild.textContent.length;
|
|
33118
|
+
const lastChild = prevSibling.lastChild;
|
|
33119
|
+
const childNodes = Array.from(currentElement.childNodes);
|
|
33120
|
+
for (let i = 0; i < childNodes.length; i++) {
|
|
33121
|
+
prevSibling.appendChild(childNodes[i].cloneNode(true));
|
|
33122
|
+
}
|
|
33123
|
+
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), lastChild, cursorpointer);
|
|
33124
|
+
currentElement.parentNode.removeChild(currentElement);
|
|
33125
|
+
}
|
|
33126
|
+
else {
|
|
33127
|
+
prevSibling.parentNode.removeChild(prevSibling);
|
|
33128
|
+
}
|
|
33129
|
+
}
|
|
33135
33130
|
else {
|
|
33136
33131
|
if (this.oldRangeElement.tagName === 'OL' || this.oldRangeElement.tagName === 'UL') {
|
|
33137
33132
|
this.oldRangeElement = this.oldRangeElement.lastElementChild.lastElementChild
|
|
@@ -33154,7 +33149,7 @@ class HtmlEditor {
|
|
|
33154
33149
|
let checkParent = false;
|
|
33155
33150
|
if (this.oldRangeElement && this.oldRangeElement.nodeName !== '#text' && this.oldRangeElement.querySelectorAll('BR').length === 1) {
|
|
33156
33151
|
const brElement = this.oldRangeElement.querySelector('BR');
|
|
33157
|
-
if (brElement) {
|
|
33152
|
+
if (brElement && isNullOrUndefined(brElement.nextSibling)) {
|
|
33158
33153
|
const brParentElement = brElement.parentNode;
|
|
33159
33154
|
const currentState = this.oldRangeElement.innerHTML;
|
|
33160
33155
|
this.parent.formatter.saveData(currentState);
|
|
@@ -33911,6 +33906,7 @@ class PasteCleanup {
|
|
|
33911
33906
|
const isValueNotEmpty = tempDivElem.textContent !== '' || !isNullOrUndefined(tempDivElem.querySelector('img')) ||
|
|
33912
33907
|
!isNullOrUndefined(tempDivElem.querySelector('table'));
|
|
33913
33908
|
const imgElements = tempDivElem.querySelectorAll('img');
|
|
33909
|
+
const base = this.parent.contentModule.getDocument().location.origin;
|
|
33914
33910
|
imgElements.forEach((imgElement) => {
|
|
33915
33911
|
let imageFileFormat;
|
|
33916
33912
|
const imgElementSrc = imgElement.getAttribute('src');
|
|
@@ -33919,7 +33915,9 @@ class PasteCleanup {
|
|
|
33919
33915
|
imageFileFormat = imgElementSrc.split(';')[0].split('/')[1];
|
|
33920
33916
|
}
|
|
33921
33917
|
else {
|
|
33922
|
-
|
|
33918
|
+
const parsedUrl = imgElementSrc.indexOf('http') > -1 ? new URL(imgElementSrc) : new URL(imgElementSrc, base);
|
|
33919
|
+
const path = parsedUrl.pathname;
|
|
33920
|
+
imageFileFormat = path.split('.').pop().toLowerCase();
|
|
33923
33921
|
}
|
|
33924
33922
|
if (!isNullOrUndefined(imageFileFormat) &&
|
|
33925
33923
|
allowedTypes.every((type) => imageFileFormat !== type.substring(1).toLowerCase()) &&
|
|
@@ -34177,7 +34175,11 @@ class PasteCleanup {
|
|
|
34177
34175
|
this.parent.inputElement.contentEditable = 'true';
|
|
34178
34176
|
detach(imgElem);
|
|
34179
34177
|
if (popupObj) {
|
|
34180
|
-
|
|
34178
|
+
this.parent.isBlur = false;
|
|
34179
|
+
popupObj.destroy();
|
|
34180
|
+
if (!isNullOrUndefined(popupObj.element)) {
|
|
34181
|
+
detach(popupObj.element);
|
|
34182
|
+
}
|
|
34181
34183
|
}
|
|
34182
34184
|
this.parent.trigger(imageUploadFailed, e);
|
|
34183
34185
|
if (uploadObj && document.body.contains(uploadObj.element)) {
|
|
@@ -34193,7 +34195,7 @@ class PasteCleanup {
|
|
|
34193
34195
|
this.parent.trigger(imageUploadSuccess, e, (e) => {
|
|
34194
34196
|
if (!isNullOrUndefined(this.parent.insertImageSettings.path)) {
|
|
34195
34197
|
const url = this.parent.insertImageSettings.path + e.file.name;
|
|
34196
|
-
if (!this.parent.inputElement.contains(imgElem)) {
|
|
34198
|
+
if (!this.parent.inputElement.contains(imgElem) && imgElem.id) {
|
|
34197
34199
|
const imgHtmlElems = this.parent.inputElement.querySelectorAll('#' + imgElem.id);
|
|
34198
34200
|
for (let i = 0; i < imgHtmlElems.length; i++) {
|
|
34199
34201
|
const imgHtmlElem = imgHtmlElems[i];
|
|
@@ -34218,13 +34220,22 @@ class PasteCleanup {
|
|
|
34218
34220
|
});
|
|
34219
34221
|
}
|
|
34220
34222
|
this.popupCloseTime = setTimeout(() => {
|
|
34221
|
-
popupObj
|
|
34222
|
-
|
|
34223
|
-
|
|
34224
|
-
|
|
34225
|
-
|
|
34226
|
-
|
|
34227
|
-
|
|
34223
|
+
if (popupObj) {
|
|
34224
|
+
this.parent.isBlur = false;
|
|
34225
|
+
popupObj.destroy();
|
|
34226
|
+
if (!isNullOrUndefined(popupObj.element)) {
|
|
34227
|
+
detach(popupObj.element);
|
|
34228
|
+
}
|
|
34229
|
+
}
|
|
34230
|
+
if (!this.parent.inputElement.contains(imgElem) && (imgElem.id || imgElem.alt)) {
|
|
34231
|
+
const selector = imgElem.id ? `#${imgElem.id}` : `[alt="${imgElem.alt}"]`;
|
|
34232
|
+
if (selector) {
|
|
34233
|
+
const imgHtmlElems = this.parent.inputElement.querySelectorAll(selector);
|
|
34234
|
+
for (let i = 0; i < imgHtmlElems.length; i++) {
|
|
34235
|
+
const imgHtmlElem = imgHtmlElems[i];
|
|
34236
|
+
if (imgHtmlElem && imgHtmlElem.style && imgHtmlElem.style.opacity === '0.5') {
|
|
34237
|
+
imgHtmlElem.style.opacity = '1';
|
|
34238
|
+
}
|
|
34228
34239
|
}
|
|
34229
34240
|
}
|
|
34230
34241
|
}
|
|
@@ -35021,13 +35032,24 @@ class Resize {
|
|
|
35021
35032
|
this.iframeElement = this.parent.contentModule.getDocument().querySelectorAll('iframe');
|
|
35022
35033
|
if (!isNullOrUndefined(this.iframeElement)) {
|
|
35023
35034
|
this.iframeElement.forEach((iframe) => {
|
|
35024
|
-
EventHandler.add(iframe
|
|
35035
|
+
EventHandler.add(iframe, 'load', this.onIFrameLoad, this);
|
|
35025
35036
|
});
|
|
35026
35037
|
}
|
|
35027
35038
|
this.touchStartEvent = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';
|
|
35028
35039
|
EventHandler.add(this.resizer, 'mousedown', this.resizeStart, this);
|
|
35029
35040
|
EventHandler.add(this.resizer, this.touchStartEvent, this.resizeStart, this);
|
|
35030
35041
|
}
|
|
35042
|
+
onIFrameLoad(e) {
|
|
35043
|
+
const iframe = e.target;
|
|
35044
|
+
if (iframe.nodeName === 'IFRAME' && iframe.contentDocument) {
|
|
35045
|
+
EventHandler.add(iframe.contentDocument, 'mouseup', this.stopResize, this);
|
|
35046
|
+
}
|
|
35047
|
+
}
|
|
35048
|
+
removeMouseUpEventListener(iframe) {
|
|
35049
|
+
if (iframe.contentDocument) {
|
|
35050
|
+
EventHandler.remove(iframe.contentDocument, 'mouseup', this.stopResize);
|
|
35051
|
+
}
|
|
35052
|
+
}
|
|
35031
35053
|
resizeStart(e) {
|
|
35032
35054
|
this.isResizing = false;
|
|
35033
35055
|
if (e.cancelable) {
|
|
@@ -35131,7 +35153,8 @@ class Resize {
|
|
|
35131
35153
|
}
|
|
35132
35154
|
if (!isNullOrUndefined(this.iframeElement)) {
|
|
35133
35155
|
this.iframeElement.forEach((iframe) => {
|
|
35134
|
-
|
|
35156
|
+
this.removeMouseUpEventListener(iframe);
|
|
35157
|
+
EventHandler.remove(iframe, 'load', this.onIFrameLoad);
|
|
35135
35158
|
});
|
|
35136
35159
|
}
|
|
35137
35160
|
if (this.resizer) {
|
|
@@ -37712,7 +37735,7 @@ class EnterKeyAction {
|
|
|
37712
37735
|
if ((this.parent.enterKey === 'P' && !shiftKey) || (this.parent.enterKey === 'DIV' && !shiftKey) ||
|
|
37713
37736
|
(this.parent.shiftEnterKey === 'P' && shiftKey) ||
|
|
37714
37737
|
(this.parent.shiftEnterKey === 'DIV' && shiftKey)) {
|
|
37715
|
-
if ((this.range.startOffset === 1 && this.parent.inputElement.childNodes.length === 1 && this.parent.inputElement.childNodes[0].nodeName === 'TABLE')
|
|
37738
|
+
if ((this.range.startOffset === 1 && this.parent.inputElement.childNodes.length === 1 && this.parent.inputElement.childNodes[0].nodeName === 'TABLE')) {
|
|
37716
37739
|
const newElem = this.createInsertElement(shiftKey);
|
|
37717
37740
|
newElem.appendChild(this.parent.createElement('BR'));
|
|
37718
37741
|
this.parent.inputElement.appendChild(newElem);
|
|
@@ -37754,7 +37777,8 @@ class EnterKeyAction {
|
|
|
37754
37777
|
&& isSplitTextEmpty && !isPreWrapApplied && !isTextWrapApplied;
|
|
37755
37778
|
const isCursorAtStartPreWrapWithContent = lastCharBeforeCursor === 32
|
|
37756
37779
|
&& (isPreWrapApplied || isTextWrapApplied) && isSplitTextEmpty && hasContentAfterCursor;
|
|
37757
|
-
if (isCursorAtStartNonPreWrap || isCursorAtStartPreWrapWithContent)
|
|
37780
|
+
if ((isCursorAtStartNonPreWrap || isCursorAtStartPreWrapWithContent) &&
|
|
37781
|
+
!this.range.startContainer.previousSibling) {
|
|
37758
37782
|
isFocusedFirst = true;
|
|
37759
37783
|
}
|
|
37760
37784
|
}
|
|
@@ -37763,15 +37787,16 @@ class EnterKeyAction {
|
|
|
37763
37787
|
}
|
|
37764
37788
|
this.removeBRElement(nearBlockNode);
|
|
37765
37789
|
const fireFoxEnterAtMiddle = Browser.userAgent.indexOf('Firefox') !== -1 && this.range.startOffset === 0 && this.range.startContainer === this.range.endContainer &&
|
|
37766
|
-
this.range.startContainer.nodeName === '#text' && !this.parent.formatter.editorManager.domNode.isBlockNode(this.range.startContainer.previousSibling) &&
|
|
37790
|
+
this.range.startContainer.nodeName === '#text' && !isNullOrUndefined(this.range.startContainer.previousSibling) && !this.parent.formatter.editorManager.domNode.isBlockNode(this.range.startContainer.previousSibling) &&
|
|
37767
37791
|
this.range.startContainer.parentElement === this.range.startContainer.previousSibling.parentElement;
|
|
37768
37792
|
const preventZeroWithSpace = ((this.range.startContainer.nodeName === '#text' && this.range.startContainer.textContent.includes('\u200B') &&
|
|
37769
37793
|
this.range.startContainer.textContent.trim() === '\u200B') ||
|
|
37770
37794
|
(this.range.startContainer.nodeName === '#text' && !isNullOrUndefined(this.range.startContainer.textContent[this.range.startOffset]) &&
|
|
37771
37795
|
this.range.startContainer.textContent[this.range.startOffset].includes('\u200B') && this.range.startContainer.textContent[this.range.startOffset] === '\u200B' &&
|
|
37772
37796
|
this.parent.inputElement.textContent[0] !== '\u200B'));
|
|
37797
|
+
const preventEnterkeyShiftKey = (this.range.startContainer.nodeName === '#text' || this.range.startContainer.nodeName === 'BR') && (this.range.startOffset === 0 && this.range.endOffset === 0) && this.range.startContainer.parentElement === this.parent.inputElement && this.parent.enterKey === 'BR' && shiftKey;
|
|
37773
37798
|
// eslint-disable-next-line max-len
|
|
37774
|
-
if (!preventZeroWithSpace && !fireFoxEnterAtMiddle && ((this.range.startOffset === 0 && this.range.endOffset === 0) || isFocusedFirst) &&
|
|
37799
|
+
if (!preventEnterkeyShiftKey && !preventZeroWithSpace && !fireFoxEnterAtMiddle && ((this.range.startOffset === 0 && this.range.endOffset === 0) || isFocusedFirst) &&
|
|
37775
37800
|
!(!isNullOrUndefined(this.range.startContainer.previousSibling) &&
|
|
37776
37801
|
(this.range.startContainer.previousSibling.nodeName === 'IMG' || this.range.startContainer.previousSibling.nodeName === 'BR'))) {
|
|
37777
37802
|
let isNearBlockLengthZero;
|
|
@@ -37836,7 +37861,7 @@ class EnterKeyAction {
|
|
|
37836
37861
|
}
|
|
37837
37862
|
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), insertElem.nextElementSibling, 0);
|
|
37838
37863
|
}
|
|
37839
|
-
else if (nearBlockNode.textContent.length === 0 && !(!isNullOrUndefined(nearBlockNode.childNodes[0]) && nearBlockNode.childNodes[0].nodeName === 'IMG' ||
|
|
37864
|
+
else if (nearBlockNode !== this.parent.inputElement && nearBlockNode.textContent.length === 0 && !(!isNullOrUndefined(nearBlockNode.childNodes[0]) && nearBlockNode.childNodes[0].nodeName === 'IMG' ||
|
|
37840
37865
|
(nearBlockNode.querySelectorAll('video').length > 0) || (nearBlockNode.querySelectorAll('audio').length > 0) || (nearBlockNode.querySelectorAll('img').length > 0))) {
|
|
37841
37866
|
if (!isNullOrUndefined(nearBlockNode.children[0]) && nearBlockNode.children[0].tagName !== 'BR') {
|
|
37842
37867
|
const newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, nearBlockNode, false).cloneNode(true);
|
|
@@ -37892,6 +37917,36 @@ class EnterKeyAction {
|
|
|
37892
37917
|
this.parent.videoModule.hideVideoQuickToolbar();
|
|
37893
37918
|
}
|
|
37894
37919
|
}
|
|
37920
|
+
else if (this.parent.enterKey === 'BR' && shiftKey && this.range.startContainer.nodeType === Node.TEXT_NODE && this.range.startContainer.parentElement && this.range.startContainer.parentElement === this.parent.inputElement) {
|
|
37921
|
+
const range = this.range;
|
|
37922
|
+
const startContainer = range.startContainer;
|
|
37923
|
+
const startOffset = range.startOffset;
|
|
37924
|
+
const newElement = this.parent.createElement(this.parent.shiftEnterKey);
|
|
37925
|
+
if (startContainer.nodeType === Node.TEXT_NODE && range.endOffset !== 0 && range.startOffset !== 0) {
|
|
37926
|
+
const textNode = startContainer;
|
|
37927
|
+
if (startOffset < textNode.length) {
|
|
37928
|
+
const newTextNode = textNode.splitText(startOffset);
|
|
37929
|
+
newElement.appendChild(newTextNode);
|
|
37930
|
+
}
|
|
37931
|
+
else {
|
|
37932
|
+
newElement.innerHTML = '<br>';
|
|
37933
|
+
}
|
|
37934
|
+
textNode.parentNode.insertBefore(newElement, textNode.nextSibling);
|
|
37935
|
+
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), newElement, 0);
|
|
37936
|
+
}
|
|
37937
|
+
else if (startOffset === 0 && range.endOffset === 0) {
|
|
37938
|
+
newElement.innerHTML = '<br>';
|
|
37939
|
+
if (range.endOffset === startContainer.textContent.length) {
|
|
37940
|
+
const brElement = this.parent.createElement('br');
|
|
37941
|
+
startContainer.parentNode.insertBefore(brElement, startContainer);
|
|
37942
|
+
}
|
|
37943
|
+
startContainer.parentNode.insertBefore(newElement, startContainer);
|
|
37944
|
+
const cursorTarget = (range.endOffset === startContainer.textContent.length)
|
|
37945
|
+
? newElement : newElement.nextSibling;
|
|
37946
|
+
startContainer.parentNode.insertBefore(newElement, startContainer);
|
|
37947
|
+
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), cursorTarget, 0);
|
|
37948
|
+
}
|
|
37949
|
+
}
|
|
37895
37950
|
else {
|
|
37896
37951
|
const newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, nearBlockNode, true);
|
|
37897
37952
|
if (!isNullOrUndefined(newElem.childNodes[0]) && newElem.childNodes[0].nodeName === '#text' &&
|
|
@@ -39754,7 +39809,7 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
39754
39809
|
this.placeHolderWrapper.innerHTML = this.placeholder;
|
|
39755
39810
|
if (this.inputElement.textContent.length === 0 && this.inputElement.childNodes.length < 2 && !isNullOrUndefined(this.inputElement.firstChild) && (this.inputElement.firstChild.nodeName === 'BR' ||
|
|
39756
39811
|
((this.inputElement.firstChild.nodeName === 'P' || this.inputElement.firstChild.nodeName === 'DIV') && !isNullOrUndefined(this.inputElement.firstChild.firstChild) &&
|
|
39757
|
-
this.inputElement.firstChild.firstChild.nodeName === 'BR'))) {
|
|
39812
|
+
this.inputElement.firstChild.childNodes.length < 2 && this.inputElement.firstChild.firstChild.nodeName === 'BR'))) {
|
|
39758
39813
|
this.placeHolderWrapper.classList.add('enabled');
|
|
39759
39814
|
}
|
|
39760
39815
|
else {
|
|
@@ -40488,7 +40543,6 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
40488
40543
|
const value = this.getUpdatedValue();
|
|
40489
40544
|
this.setProperties({ value: value });
|
|
40490
40545
|
this.valueContainer.value = this.value;
|
|
40491
|
-
this.notify(toolbarRefresh, { args: e, documentNode: document });
|
|
40492
40546
|
this.isValueChangeBlurhandler = true;
|
|
40493
40547
|
this.invokeChangeEvent();
|
|
40494
40548
|
this.isFocusOut = true;
|