@syncfusion/ej2-richtexteditor 29.2.4-771571 → 29.2.4-803054
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/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 +140 -18
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +162 -35
- package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
- package/package.json +1 -1
- package/src/editor-manager/plugin/clearformat.js +53 -22
- package/src/rich-text-editor/actions/enter-key.js +25 -9
- package/src/rich-text-editor/actions/paste-clean-up.d.ts +4 -0
- package/src/rich-text-editor/actions/paste-clean-up.js +79 -2
- package/src/rich-text-editor/base/rich-text-editor.js +4 -3
- package/src/rich-text-editor/models/toolbar-settings-model.d.ts +7 -0
- package/src/rich-text-editor/models/toolbar-settings.d.ts +6 -0
- package/src/rich-text-editor/models/toolbar-settings.js +3 -0
- package/styles/_all.bds.scss +1 -0
- package/styles/_all.bootstrap-dark.scss +1 -0
- package/styles/_all.bootstrap.scss +1 -0
- package/styles/_all.bootstrap4.scss +1 -0
- package/styles/_all.bootstrap5-dark.scss +1 -0
- package/styles/_all.bootstrap5.3.scss +1 -0
- package/styles/_all.bootstrap5.scss +1 -0
- package/styles/_all.fabric-dark.scss +1 -0
- package/styles/_all.fabric.scss +1 -0
- package/styles/_all.fluent-dark.scss +1 -0
- package/styles/_all.fluent.scss +1 -0
- package/styles/_all.fluent2.scss +1 -0
- package/styles/_all.highcontrast-light.scss +1 -0
- package/styles/_all.highcontrast.scss +1 -0
- package/styles/_all.material-dark.scss +1 -0
- package/styles/_all.material.scss +1 -0
- package/styles/_all.material3-dark.scss +1 -0
- package/styles/_all.material3.scss +1 -0
- package/styles/_all.scss +1 -1
- package/styles/_all.tailwind-dark.scss +1 -0
- package/styles/_all.tailwind.scss +1 -0
- package/styles/_all.tailwind3.scss +1 -0
- package/styles/bds-lite.css +239 -89
- package/styles/bds-lite.scss +3 -4
- package/styles/bds.css +347 -98
- package/styles/bds.scss +4 -5
- package/styles/bootstrap-dark-lite.css +206 -86
- package/styles/bootstrap-dark-lite.scss +3 -4
- package/styles/bootstrap-dark.css +299 -95
- package/styles/bootstrap-dark.scss +4 -5
- package/styles/bootstrap-lite.css +384 -86
- package/styles/bootstrap-lite.scss +3 -4
- package/styles/bootstrap.css +566 -95
- package/styles/bootstrap.scss +4 -5
- package/styles/bootstrap4-lite.css +565 -93
- package/styles/bootstrap4-lite.scss +3 -4
- package/styles/bootstrap4.css +850 -115
- package/styles/bootstrap4.scss +4 -5
- package/styles/bootstrap5-dark-lite.css +193 -87
- package/styles/bootstrap5-dark-lite.scss +3 -4
- package/styles/bootstrap5-dark.css +279 -96
- package/styles/bootstrap5-dark.scss +4 -5
- package/styles/bootstrap5-lite.css +187 -87
- package/styles/bootstrap5-lite.scss +4 -4
- package/styles/bootstrap5.3-lite.css +456 -108
- package/styles/bootstrap5.3-lite.scss +4 -4
- package/styles/bootstrap5.3.css +627 -118
- package/styles/bootstrap5.3.scss +5 -5
- package/styles/bootstrap5.css +273 -96
- package/styles/bootstrap5.scss +5 -5
- package/styles/fabric-dark-lite.css +193 -87
- package/styles/fabric-dark-lite.scss +4 -4
- package/styles/fabric-dark.css +279 -96
- package/styles/fabric-dark.scss +5 -5
- package/styles/fabric-lite.css +193 -87
- package/styles/fabric-lite.scss +4 -4
- package/styles/fabric.css +279 -96
- package/styles/fabric.scss +5 -5
- package/styles/fluent-dark-lite.css +195 -98
- package/styles/fluent-dark-lite.scss +4 -4
- package/styles/fluent-dark.css +281 -107
- package/styles/fluent-dark.scss +5 -5
- package/styles/fluent-lite.css +195 -89
- package/styles/fluent-lite.scss +4 -4
- package/styles/fluent.css +281 -98
- package/styles/fluent.scss +5 -5
- package/styles/fluent2-lite.css +519 -114
- package/styles/fluent2-lite.scss +4 -4
- package/styles/fluent2.css +703 -126
- package/styles/fluent2.scss +5 -5
- package/styles/highcontrast-light-lite.css +193 -87
- package/styles/highcontrast-light-lite.scss +4 -4
- package/styles/highcontrast-light.css +279 -96
- package/styles/highcontrast-light.scss +5 -5
- package/styles/highcontrast-lite.css +193 -87
- package/styles/highcontrast-lite.scss +4 -4
- package/styles/highcontrast.css +279 -96
- package/styles/highcontrast.scss +5 -5
- package/styles/material-dark-lite.css +192 -86
- package/styles/material-dark-lite.scss +4 -4
- package/styles/material-dark.css +278 -95
- package/styles/material-dark.scss +5 -5
- package/styles/material-lite.css +192 -86
- package/styles/material-lite.scss +3 -4
- package/styles/material.css +278 -95
- package/styles/material.scss +4 -5
- package/styles/material3-dark-lite.css +539 -105
- package/styles/material3-dark-lite.scss +4 -4
- package/styles/material3-dark.css +723 -130
- package/styles/material3-dark.scss +5 -7
- package/styles/material3-lite.css +459 -105
- package/styles/material3-lite.scss +4 -4
- package/styles/material3.css +645 -130
- package/styles/material3.scss +5 -7
- package/styles/rich-text-editor/_all.bds.scss +2 -0
- package/styles/rich-text-editor/_all.bootstrap-dark.scss +2 -0
- package/styles/rich-text-editor/_all.bootstrap.scss +2 -0
- package/styles/rich-text-editor/_all.bootstrap4.scss +2 -0
- package/styles/rich-text-editor/_all.bootstrap5-dark.scss +2 -0
- package/styles/rich-text-editor/_all.bootstrap5.3.scss +2 -0
- package/styles/rich-text-editor/_all.bootstrap5.scss +2 -0
- package/styles/rich-text-editor/_all.fabric-dark.scss +2 -0
- package/styles/rich-text-editor/_all.fabric.scss +2 -0
- package/styles/rich-text-editor/_all.fluent-dark.scss +2 -0
- package/styles/rich-text-editor/_all.fluent.scss +2 -0
- package/styles/rich-text-editor/_all.fluent2.scss +2 -0
- package/styles/rich-text-editor/_all.highcontrast-light.scss +2 -0
- package/styles/rich-text-editor/_all.highcontrast.scss +2 -0
- package/styles/rich-text-editor/_all.material-dark.scss +2 -0
- package/styles/rich-text-editor/_all.material.scss +2 -0
- package/styles/rich-text-editor/_all.material3-dark.scss +2 -0
- package/styles/rich-text-editor/_all.material3.scss +2 -0
- package/styles/rich-text-editor/_all.scss +2 -2
- package/styles/rich-text-editor/_all.tailwind-dark.scss +2 -0
- package/styles/rich-text-editor/_all.tailwind.scss +2 -0
- package/styles/rich-text-editor/_all.tailwind3.scss +2 -0
- package/styles/rich-text-editor/_bds-definition.scss +468 -27
- package/styles/rich-text-editor/_bigger.bds.scss +3 -0
- package/styles/rich-text-editor/_bigger.bootstrap-dark.scss +3 -0
- package/styles/rich-text-editor/_bigger.bootstrap.scss +3 -0
- package/styles/rich-text-editor/_bigger.bootstrap4.scss +3 -0
- package/styles/rich-text-editor/_bigger.bootstrap5-dark.scss +3 -0
- package/styles/rich-text-editor/_bigger.bootstrap5.3.scss +3 -0
- package/styles/rich-text-editor/_bigger.bootstrap5.scss +3 -0
- package/styles/rich-text-editor/_bigger.fabric-dark.scss +3 -0
- package/styles/rich-text-editor/_bigger.fabric.scss +3 -0
- package/styles/rich-text-editor/_bigger.fluent-dark.scss +3 -0
- package/styles/rich-text-editor/_bigger.fluent.scss +3 -0
- package/styles/rich-text-editor/_bigger.fluent2.scss +3 -0
- package/styles/rich-text-editor/_bigger.highcontrast-light.scss +3 -0
- package/styles/rich-text-editor/_bigger.highcontrast.scss +3 -0
- package/styles/rich-text-editor/_bigger.material-dark.scss +3 -0
- package/styles/rich-text-editor/_bigger.material.scss +3 -0
- package/styles/rich-text-editor/_bigger.material3-dark.scss +3 -0
- package/styles/rich-text-editor/_bigger.material3.scss +3 -0
- package/styles/rich-text-editor/_bigger.scss +152 -57
- package/styles/rich-text-editor/_bigger.tailwind-dark.scss +3 -0
- package/styles/rich-text-editor/_bigger.tailwind.scss +3 -0
- package/styles/rich-text-editor/_bigger.tailwind3.scss +3 -0
- package/styles/rich-text-editor/_bootstrap-dark-definition.scss +467 -26
- package/styles/rich-text-editor/_bootstrap-definition.scss +467 -26
- package/styles/rich-text-editor/_bootstrap4-definition.scss +473 -33
- package/styles/rich-text-editor/_bootstrap5-dark-definition.scss +709 -1
- package/styles/rich-text-editor/_bootstrap5-definition.scss +467 -27
- package/styles/rich-text-editor/_bootstrap5.3-definition.scss +469 -29
- package/styles/rich-text-editor/_fabric-dark-definition.scss +467 -27
- package/styles/rich-text-editor/_fabric-definition.scss +466 -27
- package/styles/rich-text-editor/_fluent-dark-definition.scss +710 -1
- package/styles/rich-text-editor/_fluent-definition.scss +470 -27
- package/styles/rich-text-editor/_fluent2-definition.scss +478 -33
- package/styles/rich-text-editor/_fusionnew-definition.scss +464 -26
- package/styles/rich-text-editor/_highcontrast-definition.scss +466 -26
- package/styles/rich-text-editor/_highcontrast-light-definition.scss +466 -26
- package/styles/rich-text-editor/_layout.bds.scss +3 -0
- package/styles/rich-text-editor/_layout.bootstrap-dark.scss +3 -0
- package/styles/rich-text-editor/_layout.bootstrap.scss +3 -0
- package/styles/rich-text-editor/_layout.bootstrap4.scss +3 -0
- package/styles/rich-text-editor/_layout.bootstrap5-dark.scss +3 -0
- package/styles/rich-text-editor/_layout.bootstrap5.3.scss +3 -0
- package/styles/rich-text-editor/_layout.bootstrap5.scss +3 -0
- package/styles/rich-text-editor/_layout.fabric-dark.scss +3 -0
- package/styles/rich-text-editor/_layout.fabric.scss +3 -0
- package/styles/rich-text-editor/_layout.fluent-dark.scss +3 -0
- package/styles/rich-text-editor/_layout.fluent.scss +3 -0
- package/styles/rich-text-editor/_layout.fluent2.scss +3 -0
- package/styles/rich-text-editor/_layout.highcontrast-light.scss +3 -0
- package/styles/rich-text-editor/_layout.highcontrast.scss +3 -0
- package/styles/rich-text-editor/_layout.material-dark.scss +3 -0
- package/styles/rich-text-editor/_layout.material.scss +3 -0
- package/styles/rich-text-editor/_layout.material3-dark.scss +3 -0
- package/styles/rich-text-editor/_layout.material3.scss +3 -0
- package/styles/rich-text-editor/_layout.scss +448 -353
- package/styles/rich-text-editor/_layout.tailwind-dark.scss +3 -0
- package/styles/rich-text-editor/_layout.tailwind.scss +3 -0
- package/styles/rich-text-editor/_layout.tailwind3.scss +3 -0
- package/styles/rich-text-editor/_material-dark-definition.scss +466 -28
- package/styles/rich-text-editor/_material-definition.scss +466 -26
- package/styles/rich-text-editor/_material3-dark-definition.scss +714 -1
- package/styles/rich-text-editor/_material3-definition.scss +473 -30
- package/styles/rich-text-editor/_tailwind-dark-definition.scss +706 -1
- package/styles/rich-text-editor/_tailwind-definition.scss +468 -28
- package/styles/rich-text-editor/_tailwind3-definition.scss +474 -34
- package/styles/rich-text-editor/_theme-variables.bds.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.bootstrap-dark.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.bootstrap.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.bootstrap4.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.bootstrap5-dark.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.bootstrap5.3.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.bootstrap5.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.fabric-dark.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.fabric.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.fluent-dark.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.fluent.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.fluent2.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.highcontrast-light.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.highcontrast.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.material-dark.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.material.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.material3-dark.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.material3.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.tailwind-dark.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.tailwind.scss +1 -0
- package/styles/rich-text-editor/_theme-variables.tailwind3.scss +1 -0
- package/styles/rich-text-editor/_theme.bds.scss +4 -0
- package/styles/rich-text-editor/_theme.bootstrap-dark.scss +4 -0
- package/styles/rich-text-editor/_theme.bootstrap.scss +4 -0
- package/styles/rich-text-editor/_theme.bootstrap4.scss +4 -0
- package/styles/rich-text-editor/_theme.bootstrap5-dark.scss +4 -0
- package/styles/rich-text-editor/_theme.bootstrap5.3.scss +4 -0
- package/styles/rich-text-editor/_theme.bootstrap5.scss +4 -0
- package/styles/rich-text-editor/_theme.fabric-dark.scss +4 -0
- package/styles/rich-text-editor/_theme.fabric.scss +4 -0
- package/styles/rich-text-editor/_theme.fluent-dark.scss +4 -0
- package/styles/rich-text-editor/_theme.fluent.scss +4 -0
- package/styles/rich-text-editor/_theme.fluent2.scss +4 -0
- package/styles/rich-text-editor/_theme.highcontrast-light.scss +4 -0
- package/styles/rich-text-editor/_theme.highcontrast.scss +4 -0
- package/styles/rich-text-editor/_theme.material-dark.scss +4 -0
- package/styles/rich-text-editor/_theme.material.scss +4 -0
- package/styles/rich-text-editor/_theme.material3-dark.scss +4 -0
- package/styles/rich-text-editor/_theme.material3.scss +4 -0
- package/styles/rich-text-editor/_theme.scss +65 -36
- package/styles/rich-text-editor/_theme.tailwind-dark.scss +4 -0
- package/styles/rich-text-editor/_theme.tailwind.scss +4 -0
- package/styles/rich-text-editor/_theme.tailwind3.scss +4 -0
- package/styles/rich-text-editor/bds.css +347 -98
- package/styles/rich-text-editor/bds.scss +5 -5
- package/styles/rich-text-editor/bootstrap-dark.css +299 -95
- package/styles/rich-text-editor/bootstrap-dark.scss +5 -5
- package/styles/rich-text-editor/bootstrap.css +566 -95
- package/styles/rich-text-editor/bootstrap.scss +5 -5
- package/styles/rich-text-editor/bootstrap4.css +850 -115
- package/styles/rich-text-editor/bootstrap4.scss +5 -5
- package/styles/rich-text-editor/bootstrap5-dark.css +279 -96
- package/styles/rich-text-editor/bootstrap5-dark.scss +5 -5
- package/styles/rich-text-editor/bootstrap5.3.css +627 -118
- package/styles/rich-text-editor/bootstrap5.3.scss +5 -5
- package/styles/rich-text-editor/bootstrap5.css +273 -96
- package/styles/rich-text-editor/bootstrap5.scss +5 -5
- package/styles/rich-text-editor/fabric-dark.css +279 -96
- package/styles/rich-text-editor/fabric-dark.scss +5 -5
- package/styles/rich-text-editor/fabric.css +279 -96
- package/styles/rich-text-editor/fabric.scss +5 -5
- package/styles/rich-text-editor/fluent-dark.css +281 -107
- package/styles/rich-text-editor/fluent-dark.scss +5 -5
- package/styles/rich-text-editor/fluent.css +281 -98
- package/styles/rich-text-editor/fluent.scss +5 -5
- package/styles/rich-text-editor/fluent2.css +703 -126
- package/styles/rich-text-editor/fluent2.scss +5 -5
- package/styles/rich-text-editor/highcontrast-light.css +279 -96
- package/styles/rich-text-editor/highcontrast-light.scss +5 -5
- package/styles/rich-text-editor/highcontrast.css +279 -96
- package/styles/rich-text-editor/highcontrast.scss +5 -5
- package/styles/rich-text-editor/icons/_bds.scss +7 -0
- package/styles/rich-text-editor/icons/_bootstrap-dark.scss +7 -0
- package/styles/rich-text-editor/icons/_bootstrap.scss +7 -0
- package/styles/rich-text-editor/icons/_bootstrap4.scss +7 -0
- package/styles/rich-text-editor/icons/_bootstrap5-dark.scss +1 -1
- package/styles/rich-text-editor/icons/_bootstrap5.3.scss +7 -0
- package/styles/rich-text-editor/icons/_bootstrap5.scss +7 -0
- package/styles/rich-text-editor/icons/_fabric-dark.scss +7 -0
- package/styles/rich-text-editor/icons/_fabric.scss +7 -0
- package/styles/rich-text-editor/icons/_fluent-dark.scss +1 -1
- package/styles/rich-text-editor/icons/_fluent.scss +6 -0
- package/styles/rich-text-editor/icons/_fluent2.scss +7 -0
- package/styles/rich-text-editor/icons/_fusionnew.scss +7 -0
- package/styles/rich-text-editor/icons/_highcontrast-light.scss +7 -0
- package/styles/rich-text-editor/icons/_highcontrast.scss +7 -0
- package/styles/rich-text-editor/icons/_material-dark.scss +7 -0
- package/styles/rich-text-editor/icons/_material.scss +7 -0
- package/styles/rich-text-editor/icons/_material3-dark.scss +1 -1
- package/styles/rich-text-editor/icons/_material3.scss +7 -0
- package/styles/rich-text-editor/icons/_tailwind-dark.scss +1 -1
- package/styles/rich-text-editor/icons/_tailwind.scss +7 -0
- package/styles/rich-text-editor/icons/_tailwind3.scss +7 -0
- package/styles/rich-text-editor/material-dark.css +278 -95
- package/styles/rich-text-editor/material-dark.scss +5 -5
- package/styles/rich-text-editor/material.css +278 -95
- package/styles/rich-text-editor/material.scss +5 -5
- package/styles/rich-text-editor/material3-dark.css +723 -130
- package/styles/rich-text-editor/material3-dark.scss +5 -6
- package/styles/rich-text-editor/material3.css +645 -130
- package/styles/rich-text-editor/material3.scss +5 -6
- package/styles/rich-text-editor/tailwind-dark.css +282 -99
- package/styles/rich-text-editor/tailwind-dark.scss +5 -5
- package/styles/rich-text-editor/tailwind.css +282 -99
- package/styles/rich-text-editor/tailwind.scss +5 -5
- package/styles/rich-text-editor/tailwind3.css +593 -115
- package/styles/rich-text-editor/tailwind3.scss +5 -5
- package/styles/tailwind-dark-lite.css +196 -90
- package/styles/tailwind-dark-lite.scss +4 -4
- package/styles/tailwind-dark.css +282 -99
- package/styles/tailwind-dark.scss +5 -5
- package/styles/tailwind-lite.css +196 -90
- package/styles/tailwind-lite.scss +4 -4
- package/styles/tailwind.css +282 -99
- package/styles/tailwind.scss +5 -5
- package/styles/tailwind3-lite.css +430 -104
- package/styles/tailwind3-lite.scss +4 -4
- package/styles/tailwind3.css +593 -115
- package/styles/tailwind3.scss +5 -5
|
@@ -14232,9 +14232,36 @@ class ClearFormat {
|
|
|
14232
14232
|
&& this.IGNORE_PARENT_TAGS.indexOf(parentNodes[index1].childNodes[0].nodeName.toLocaleLowerCase()) > -1)
|
|
14233
14233
|
&& !(parentNodes[index1].childNodes.length === 1
|
|
14234
14234
|
&& parentNodes[index1].childNodes[0].nodeName.toLocaleLowerCase() === 'p')) {
|
|
14235
|
-
|
|
14235
|
+
const target = parentNodes[index1];
|
|
14236
|
+
if (['TABLE', 'TD', 'TH', 'TBODY', 'TR'].indexOf(target.nodeName) !== -1) {
|
|
14237
|
+
if (target.hasAttribute('style')) {
|
|
14238
|
+
target.removeAttribute('style'); // Remove style if present
|
|
14239
|
+
}
|
|
14240
|
+
if (target.hasAttribute('class')) {
|
|
14241
|
+
const allowedClasses = new Set(['e-rte-table', 'e-rte-paste-table', 'e-rte-custom-table']);
|
|
14242
|
+
const filteredClasses = target.className
|
|
14243
|
+
.split(/\s+/)
|
|
14244
|
+
.filter((cls) => allowedClasses.has(cls));
|
|
14245
|
+
if (filteredClasses.length > 0) {
|
|
14246
|
+
target.className = filteredClasses.join(' ');
|
|
14247
|
+
}
|
|
14248
|
+
else {
|
|
14249
|
+
target.removeAttribute('class');
|
|
14250
|
+
}
|
|
14251
|
+
}
|
|
14252
|
+
}
|
|
14253
|
+
else {
|
|
14254
|
+
InsertMethods.Wrap(parentNodes[index1], docElement.createElement(this.defaultTag));
|
|
14255
|
+
}
|
|
14256
|
+
}
|
|
14257
|
+
let childNodes = [];
|
|
14258
|
+
if (parentNodes[index1].nodeName === 'TABLE' || parentNodes[index1].nodeName === 'TD' || parentNodes[index1].nodeName === 'TH' ||
|
|
14259
|
+
parentNodes[index1].nodeName === 'TBODY' || parentNodes[index1].nodeName === 'TR') {
|
|
14260
|
+
childNodes = Array.from(parentNodes[index1].childNodes);
|
|
14261
|
+
}
|
|
14262
|
+
else {
|
|
14263
|
+
childNodes = InsertMethods.unwrap(parentNodes[index1]);
|
|
14236
14264
|
}
|
|
14237
|
-
const childNodes = InsertMethods.unwrap(parentNodes[index1]);
|
|
14238
14265
|
if (childNodes.length === 1
|
|
14239
14266
|
&& childNodes[0].parentNode.nodeName.toLocaleLowerCase() === 'p') {
|
|
14240
14267
|
InsertMethods.Wrap(parentNodes[index1], docElement.createElement(this.defaultTag));
|
|
@@ -14304,10 +14331,10 @@ class ClearFormat {
|
|
|
14304
14331
|
ClearFormat.BLOCK_TAGS = ['address', 'article', 'aside', 'blockquote',
|
|
14305
14332
|
'details', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer',
|
|
14306
14333
|
'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'li', 'main', 'nav',
|
|
14307
|
-
'noscript', 'ol', 'p', 'pre', 'section', 'ul'];
|
|
14308
|
-
ClearFormat.NONVALID_PARENT_TAGS = ['thead', '
|
|
14334
|
+
'noscript', 'ol', 'p', 'pre', 'section', 'ul', 'table', 'td', 'th', 'tbody', 'tr'];
|
|
14335
|
+
ClearFormat.NONVALID_PARENT_TAGS = ['thead', 'ul', 'ol', 'tfoot'];
|
|
14309
14336
|
ClearFormat.IGNORE_PARENT_TAGS = ['ul', 'ol', 'table'];
|
|
14310
|
-
ClearFormat.NONVALID_TAGS = ['thead', '
|
|
14337
|
+
ClearFormat.NONVALID_TAGS = ['thead', 'figcaption', 'tr', 'tfoot', 'figcaption', 'li'];
|
|
14311
14338
|
ClearFormat.defaultTag = 'p';
|
|
14312
14339
|
|
|
14313
14340
|
/**
|
|
@@ -28337,6 +28364,9 @@ __decorate$1([
|
|
|
28337
28364
|
__decorate$1([
|
|
28338
28365
|
Property(false)
|
|
28339
28366
|
], ImageSettings.prototype, "resizeByPercent", void 0);
|
|
28367
|
+
__decorate$1([
|
|
28368
|
+
Property(false)
|
|
28369
|
+
], ImageSettings.prototype, "uploadRemoteURLs", void 0);
|
|
28340
28370
|
/**
|
|
28341
28371
|
* Configures the audio settings of the RichTextEditor.
|
|
28342
28372
|
*/
|
|
@@ -29239,7 +29269,7 @@ class EnterKeyAction {
|
|
|
29239
29269
|
}
|
|
29240
29270
|
}
|
|
29241
29271
|
else if (nearBlockNode !== this.parent.inputElement && nearBlockNode.textContent.length === 0 && !(!isNullOrUndefined(nearBlockNode.childNodes[0]) && nearBlockNode.childNodes[0].nodeName === 'IMG' ||
|
|
29242
|
-
(nearBlockNode.querySelectorAll('video').length > 0) || (nearBlockNode.querySelectorAll('audio').length > 0) || (nearBlockNode.querySelectorAll('img').length > 0))) {
|
|
29272
|
+
(nearBlockNode.querySelectorAll('video').length > 0) || (nearBlockNode.querySelectorAll('.e-video-wrap').length > 0) || (nearBlockNode.querySelectorAll('audio').length > 0) || (nearBlockNode.querySelectorAll('img').length > 0))) {
|
|
29243
29273
|
if (!isNullOrUndefined(nearBlockNode.children[0]) && nearBlockNode.children[0].tagName !== 'BR') {
|
|
29244
29274
|
const newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, nearBlockNode, false).cloneNode(true);
|
|
29245
29275
|
this.parent.formatter.editorManager.domNode.insertAfter(newElem, nearBlockNode);
|
|
@@ -29255,7 +29285,7 @@ class EnterKeyAction {
|
|
|
29255
29285
|
else if (this.range.startContainer === this.range.endContainer && this.range.startContainer.nodeType !== Node.TEXT_NODE && ((this.range.startContainer.nodeName === 'IMG' || this.range.startContainer.querySelector('img')) ||
|
|
29256
29286
|
(this.range.startContainer.nodeName === 'SPAN' && (this.range.startContainer.classList.contains('e-video-wrap') ||
|
|
29257
29287
|
this.range.startContainer.classList.contains('e-audio-wrap'))))) {
|
|
29258
|
-
if (nearBlockNode.textContent.trim().length > 0) {
|
|
29288
|
+
if (nearBlockNode.textContent.trim().length > 0 && !(nearBlockNode.querySelector('iframe') && nearBlockNode.textContent === '​')) {
|
|
29259
29289
|
const newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, nearBlockNode, true);
|
|
29260
29290
|
const audioVideoElem = !isNullOrUndefined(newElem.previousSibling.querySelector('.e-video-wrap')) ?
|
|
29261
29291
|
newElem.previousSibling.querySelector('.e-video-wrap') : newElem.previousSibling.querySelector('.e-audio-wrap');
|
|
@@ -29278,20 +29308,32 @@ class EnterKeyAction {
|
|
|
29278
29308
|
}
|
|
29279
29309
|
detach(audioVideoElem);
|
|
29280
29310
|
}
|
|
29311
|
+
else if (!isNullOrUndefined(newElem) && !newElem.hasChildNodes()) {
|
|
29312
|
+
const brElm = this.parent.createElement('br');
|
|
29313
|
+
newElem.appendChild(brElm);
|
|
29314
|
+
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), newElem, 0);
|
|
29315
|
+
}
|
|
29281
29316
|
}
|
|
29282
29317
|
else {
|
|
29283
29318
|
const newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, nearBlockNode, true);
|
|
29284
29319
|
let focusElem = newElem.hasChildNodes() ? newElem.previousSibling : newElem;
|
|
29285
29320
|
const imageElem = !isNullOrUndefined(newElem.querySelector('img')) ?
|
|
29286
29321
|
newElem.querySelector('img') : null;
|
|
29322
|
+
const videoElem = !isNullOrUndefined(newElem.querySelector('.e-video-wrap')) ?
|
|
29323
|
+
newElem.querySelector('.e-video-wrap') : null;
|
|
29287
29324
|
const insertElem = this.createInsertElement(shiftKey);
|
|
29288
|
-
if (!isNullOrUndefined(imageElem)) {
|
|
29325
|
+
if (!isNullOrUndefined(imageElem) || !isNullOrUndefined(videoElem)) {
|
|
29289
29326
|
if (isFocusedFirst) {
|
|
29290
29327
|
newElem.parentElement.insertBefore(insertElem, newElem);
|
|
29291
29328
|
focusElem = newElem.previousSibling;
|
|
29292
29329
|
}
|
|
29293
29330
|
else {
|
|
29294
29331
|
this.parent.formatter.editorManager.domNode.insertAfter(insertElem, newElem);
|
|
29332
|
+
const isVideoInfocusElem = videoElem && focusElem.nodeType === Node.ELEMENT_NODE && focusElem.children.length === 1 && focusElem.lastChild.classList.contains('e-video-wrap');
|
|
29333
|
+
if (!isNullOrUndefined(focusElem) && focusElem !== newElem && newElem.previousSibling === focusElem &&
|
|
29334
|
+
isVideoInfocusElem) {
|
|
29335
|
+
detach(focusElem);
|
|
29336
|
+
}
|
|
29295
29337
|
focusElem = newElem.nextSibling;
|
|
29296
29338
|
}
|
|
29297
29339
|
}
|
|
@@ -29425,11 +29467,12 @@ class EnterKeyAction {
|
|
|
29425
29467
|
const isImageElement = (this.range.startContainer.nodeName === 'IMG' || (this.range.startContainer.childNodes.length > 0
|
|
29426
29468
|
&& !isNullOrUndefined(this.range.startContainer.childNodes[this.range.startOffset]) && this.range.startContainer.childNodes[this.range.startOffset].nodeName === 'IMG') || (this.range.startContainer.nodeType === 1 &&
|
|
29427
29469
|
this.range.startContainer.querySelector('img') !== null));
|
|
29470
|
+
const isImageWithWhiteSpace = this.range.startContainer.nodeName === '#text' && this.range.startContainer.textContent.trim() === '' && this.range.startContainer.textContent.length === 1 && this.range.startContainer.previousSibling && this.range.startContainer.previousSibling.nodeName === 'IMG';
|
|
29428
29471
|
if (currentParent !== this.parent.inputElement &&
|
|
29429
29472
|
this.parent.formatter.editorManager.domNode.isBlockNode(currentParent) &&
|
|
29430
29473
|
this.range.startOffset === this.range.endOffset &&
|
|
29431
29474
|
(this.range.startOffset === isLastNodeLength ||
|
|
29432
|
-
(currentParent.textContent.trim().length === 0 && isImageElement))) {
|
|
29475
|
+
(currentParent.textContent.trim().length === 0 && (isImageElement || isImageWithWhiteSpace)))) {
|
|
29433
29476
|
const focusBRElem = this.parent.createElement('br');
|
|
29434
29477
|
if (this.range.startOffset === 0 && this.range.startContainer.nodeName === 'TABLE') {
|
|
29435
29478
|
this.range.startContainer.parentElement.insertBefore(focusBRElem, this.range.startContainer);
|
|
@@ -29446,11 +29489,17 @@ class EnterKeyAction {
|
|
|
29446
29489
|
else {
|
|
29447
29490
|
const lineBreakBRElem = this.parent.createElement('br');
|
|
29448
29491
|
const parentElement = this.range.startContainer.parentElement;
|
|
29492
|
+
const startContainer = this.range.startContainer;
|
|
29493
|
+
const isImageInBlock = isImageElement && startContainer.nodeName !== 'IMG' && startContainer.childNodes[this.range.startOffset - 1] &&
|
|
29494
|
+
startContainer.childNodes[this.range.startOffset - 1].nodeName === 'IMG';
|
|
29449
29495
|
let anchorElement;
|
|
29450
29496
|
if (parentElement && parentElement.nodeName === 'A' &&
|
|
29451
29497
|
parentElement.textContent.length === this.range.startOffset) {
|
|
29452
29498
|
anchorElement = parentElement;
|
|
29453
29499
|
}
|
|
29500
|
+
else if (isImageInBlock) {
|
|
29501
|
+
anchorElement = startContainer.childNodes[this.range.startOffset - 1];
|
|
29502
|
+
}
|
|
29454
29503
|
else if (parentElement) {
|
|
29455
29504
|
const closestAnchor = parentElement.closest('a');
|
|
29456
29505
|
anchorElement = closestAnchor ? closestAnchor : this.range.startContainer;
|
|
@@ -29471,7 +29520,7 @@ class EnterKeyAction {
|
|
|
29471
29520
|
if (currentParent.textContent.trim().length === 0 || (currentParent.textContent.trim().length === 1 &&
|
|
29472
29521
|
currentParent.textContent.charCodeAt(0) === 8203)) {
|
|
29473
29522
|
if ((currentParent.childElementCount > 0 && currentParent.lastElementChild.nodeName === 'IMG') || (currentParent.lastElementChild && currentParent.lastElementChild.nodeName === 'BR') || !isNullOrUndefined(currentParent.firstElementChild) &&
|
|
29474
|
-
(currentParent.querySelector('.e-video-wrap') || currentParent.querySelector('.e-audio-wrap'))) {
|
|
29523
|
+
(currentParent.querySelector('.e-video-wrap') || currentParent.classList.contains('e-video-wrap') || currentParent.querySelector('.e-audio-wrap') || currentParent.classList.contains('e-audio-wrap'))) {
|
|
29475
29524
|
this.insertBRElement();
|
|
29476
29525
|
}
|
|
29477
29526
|
else {
|
|
@@ -29572,9 +29621,6 @@ class EnterKeyAction {
|
|
|
29572
29621
|
}
|
|
29573
29622
|
else if (this.startNode.tagName === 'SPAN' && (this.startNode.classList.contains('e-video-wrap') || this.startNode.classList.contains('e-audio-wrap'))) {
|
|
29574
29623
|
this.startNode.parentElement.insertBefore(brElm, this.startNode);
|
|
29575
|
-
const nearBlockNode = this.parent.formatter.editorManager.domNode.blockParentNode(this.startNode);
|
|
29576
|
-
const newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, nearBlockNode, true);
|
|
29577
|
-
detach(newElem.previousSibling.childNodes[1]);
|
|
29578
29624
|
isEmptyBrInserted = true;
|
|
29579
29625
|
}
|
|
29580
29626
|
else if (this.startNode.nodeType === Node.ELEMENT_NODE && this.startNode.childElementCount > 0 && this.startNode.lastElementChild.nodeName === 'IMG') {
|
|
@@ -29587,7 +29633,7 @@ class EnterKeyAction {
|
|
|
29587
29633
|
isEmptyBrInserted = true;
|
|
29588
29634
|
}
|
|
29589
29635
|
}
|
|
29590
|
-
const isBRNextElement = ((!isNullOrUndefined(brElm.nextSibling) && (brElm.nextSibling.textContent.length > 0 || brElm.nextSibling.nodeName !== '#text' && brElm.nextSibling.querySelectorAll('audio,video,table,img').length > 0)) || (!isNullOrUndefined(brElm.nextElementSibling) && brElm.nextElementSibling.tagName === 'BR') || this.range.startContainer.nodeName === 'BR');
|
|
29636
|
+
const isBRNextElement = ((!isNullOrUndefined(brElm.nextSibling) && (brElm.nextSibling.textContent.length > 0 || brElm.nextSibling.nodeName !== '#text' && (brElm.nextSibling.querySelectorAll('audio,video,table,img').length > 0 || brElm.nextSibling.querySelectorAll('.e-video-wrap').length > 0))) || (!isNullOrUndefined(brElm.nextElementSibling) && brElm.nextElementSibling.tagName === 'BR') || this.range.startContainer.nodeName === 'BR');
|
|
29591
29637
|
const isMediaElement = !isNullOrUndefined(brElm.nextSibling) && (!isNullOrUndefined(brElm.nextSibling.classList) && (brElm.nextSibling.classList.contains('e-video-wrap') || brElm.nextSibling.classList.contains('e-audio-wrap')));
|
|
29592
29638
|
if (isBRNextElement && (isEmptyBrInserted || (!isNullOrUndefined(brElm.nextSibling) && brElm.nextSibling.nodeName === '#text' && brElm.nextSibling.textContent.trim().length === 0 && !isNullOrUndefined(brElm.nextSibling.nextSibling) && brElm.nextSibling.nextSibling.textContent.trim().length > 0))) {
|
|
29593
29639
|
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), !isNullOrUndefined(brElm.nextSibling) && isFocusTextNode &&
|
|
@@ -30691,12 +30737,13 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
30691
30737
|
if (!isNullOrUndefined(this.placeholder)) {
|
|
30692
30738
|
this.setPlaceHolder();
|
|
30693
30739
|
}
|
|
30694
|
-
if (!isNullOrUndefined(e) && !isNullOrUndefined(e.code) && (e.code === 'Backspace' || e.code === 'Delete')) {
|
|
30740
|
+
if (!isNullOrUndefined(e) && !isNullOrUndefined(e.code) && (e.code === 'Backspace' || e.code === 'Delete' || e.code === 'KeyX')) {
|
|
30695
30741
|
const range = this.contentModule.getDocument().getSelection().getRangeAt(0);
|
|
30696
30742
|
const div = document.createElement('div');
|
|
30697
30743
|
div.appendChild(range.cloneContents());
|
|
30698
30744
|
const selectedHTML = div.innerHTML;
|
|
30699
|
-
if (selectedHTML === this.inputElement.innerHTML
|
|
30745
|
+
if (selectedHTML === this.inputElement.innerHTML || (range.commonAncestorContainer === this.inputElement &&
|
|
30746
|
+
selectedHTML === this.inputElement.textContent.trim())) {
|
|
30700
30747
|
this.isCopyAll = true;
|
|
30701
30748
|
}
|
|
30702
30749
|
}
|
|
@@ -30708,7 +30755,7 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
30708
30755
|
keyUp(e) {
|
|
30709
30756
|
if (this.editorMode === 'HTML') {
|
|
30710
30757
|
const range = this.getRange();
|
|
30711
|
-
if (!isNullOrUndefined(e) && !isNullOrUndefined(e.code) && (e.code === 'Backspace' || e.code === 'Delete')) {
|
|
30758
|
+
if (!isNullOrUndefined(e) && !isNullOrUndefined(e.code) && (e.code === 'Backspace' || e.code === 'Delete' || e.code === 'KeyX')) {
|
|
30712
30759
|
// To prevent the reformatting the content removed browser behavior.
|
|
30713
30760
|
const currentRange = this.getRange();
|
|
30714
30761
|
const selection = this.iframeSettings.enable ? this.contentModule.getPanel().ownerDocument.getSelection() :
|
|
@@ -40546,7 +40593,12 @@ class PasteCleanup {
|
|
|
40546
40593
|
}
|
|
40547
40594
|
if (e.args && value !== null && this.parent.editorMode === 'HTML') {
|
|
40548
40595
|
let file;
|
|
40549
|
-
|
|
40596
|
+
const files = e.args.clipboardData.files;
|
|
40597
|
+
const elm = createElement('p');
|
|
40598
|
+
elm.innerHTML = value;
|
|
40599
|
+
const source = this.findSource(elm);
|
|
40600
|
+
const extractedSRC = this.parent.insertImageSettings.uploadRemoteURLs ? this.extractImageSrcDOM(value) : null;
|
|
40601
|
+
if (value.length === 0 || (!isNullOrUndefined(files) && files.length > 0 && source === 'html')) {
|
|
40550
40602
|
const htmlRegex = new RegExp(/<\/[a-z][\s\S]*>/i);
|
|
40551
40603
|
value = e.args.clipboardData.getData('text/plain');
|
|
40552
40604
|
this.parent.trigger(beforePasteCleanup, { value: value });
|
|
@@ -40589,6 +40641,14 @@ class PasteCleanup {
|
|
|
40589
40641
|
value = divElement.innerHTML;
|
|
40590
40642
|
}
|
|
40591
40643
|
}
|
|
40644
|
+
else if (Array.isArray(extractedSRC) && extractedSRC.length &&
|
|
40645
|
+
this.parent.insertImageSettings.saveUrl && this.parent.insertImageSettings.path) {
|
|
40646
|
+
this.parent.trigger(beforePasteCleanup, { value: value });
|
|
40647
|
+
for (let i = 0; i < extractedSRC.length; i++) {
|
|
40648
|
+
const src = extractedSRC[i];
|
|
40649
|
+
this.fetchImageWithMetadata(src);
|
|
40650
|
+
}
|
|
40651
|
+
}
|
|
40592
40652
|
else if (value.length > 0) {
|
|
40593
40653
|
this.parent.trigger(beforePasteCleanup, { value: value });
|
|
40594
40654
|
this.parent.formatter.editorManager.observer.notify(MS_WORD_CLEANUP, {
|
|
@@ -40645,6 +40705,68 @@ class PasteCleanup {
|
|
|
40645
40705
|
}
|
|
40646
40706
|
}
|
|
40647
40707
|
}
|
|
40708
|
+
findSource(element) {
|
|
40709
|
+
const metaNodes = element.querySelectorAll('meta');
|
|
40710
|
+
for (let i = 0; i < metaNodes.length; i++) {
|
|
40711
|
+
const metaNode = metaNodes[i];
|
|
40712
|
+
const content = metaNode.getAttribute('content');
|
|
40713
|
+
const name = metaNode.getAttribute('name');
|
|
40714
|
+
if (name && name.toLowerCase().indexOf('generator') >= 0 && content && content.toLowerCase().indexOf('microsoft') >= 0) {
|
|
40715
|
+
for (let j = 0; j < PASTE_SOURCE.length; j++) {
|
|
40716
|
+
if (content.toLowerCase().indexOf(PASTE_SOURCE[j]) >= 0) {
|
|
40717
|
+
return PASTE_SOURCE[j];
|
|
40718
|
+
}
|
|
40719
|
+
}
|
|
40720
|
+
}
|
|
40721
|
+
}
|
|
40722
|
+
return 'html';
|
|
40723
|
+
}
|
|
40724
|
+
extractImageSrcDOM(value) {
|
|
40725
|
+
if (!value || typeof value !== 'string') {
|
|
40726
|
+
return null;
|
|
40727
|
+
}
|
|
40728
|
+
const parser = new DOMParser();
|
|
40729
|
+
const doc = parser.parseFromString(value, 'text/html');
|
|
40730
|
+
const images = doc.querySelectorAll('img');
|
|
40731
|
+
if (images.length === 0) {
|
|
40732
|
+
return null;
|
|
40733
|
+
}
|
|
40734
|
+
const srcs = Array.from(images)
|
|
40735
|
+
.map((img) => img.getAttribute('src') || img.src || '')
|
|
40736
|
+
.map((src) => src.trim())
|
|
40737
|
+
.filter((src) => !!src)
|
|
40738
|
+
// Exclude base64/data URLs, blob URLs, and anything containing "id="
|
|
40739
|
+
.filter((src) => {
|
|
40740
|
+
const s = src.toLowerCase();
|
|
40741
|
+
return !s.startsWith('data:') && !s.includes('base64') && !s.startsWith('blob:') && !s.includes('id=');
|
|
40742
|
+
});
|
|
40743
|
+
return srcs.length ? srcs : null;
|
|
40744
|
+
}
|
|
40745
|
+
fetchImageWithMetadata(url) {
|
|
40746
|
+
fetch(url)
|
|
40747
|
+
.then((response) => {
|
|
40748
|
+
if (!response.ok) {
|
|
40749
|
+
console.warn(`Fetch status ${response.status} for: ${url}`);
|
|
40750
|
+
return null;
|
|
40751
|
+
}
|
|
40752
|
+
return response.blob();
|
|
40753
|
+
})
|
|
40754
|
+
.then((blob) => {
|
|
40755
|
+
if (blob) {
|
|
40756
|
+
const filename = this.getFilenameFromUrl(url) || 'downloaded-image.jpg';
|
|
40757
|
+
const mimeType = blob.type || 'image/jpeg';
|
|
40758
|
+
const file = new File([blob], filename, { type: mimeType });
|
|
40759
|
+
const imageElement = this.parent.inputElement.querySelector(`img[src="${url}"]`);
|
|
40760
|
+
this.uploadMethod(file, imageElement);
|
|
40761
|
+
}
|
|
40762
|
+
});
|
|
40763
|
+
}
|
|
40764
|
+
// Helper method to extract filename from URL
|
|
40765
|
+
getFilenameFromUrl(url) {
|
|
40766
|
+
const pathname = new URL(url).pathname;
|
|
40767
|
+
const filename = pathname.substring(pathname.lastIndexOf('/') + 1);
|
|
40768
|
+
return filename || 'image.jpg';
|
|
40769
|
+
}
|
|
40648
40770
|
splitBreakLine(value) {
|
|
40649
40771
|
const enterSplitText = value.split('\r\n\r\n');
|
|
40650
40772
|
let finalText = '';
|