@syncfusion/ej2-richtexteditor 20.4.52 → 21.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -2
- package/dist/ej2-richtexteditor.min.js +2 -2
- package/dist/ej2-richtexteditor.umd.min.js +2 -2
- package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es2015.js +1623 -639
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +1638 -646
- package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
- package/dist/global/ej2-richtexteditor.min.js +2 -2
- package/dist/global/ej2-richtexteditor.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +13 -13
- package/src/common/config.js +3 -1
- package/src/common/constant.d.ts +6 -0
- package/src/common/constant.js +6 -0
- package/src/common/util.d.ts +2 -1
- package/src/common/util.js +15 -6
- package/src/editor-manager/base/editor-manager.d.ts +2 -0
- package/src/editor-manager/base/editor-manager.js +6 -1
- package/src/editor-manager/base/enum.d.ts +14 -0
- package/src/editor-manager/base/interface.d.ts +34 -0
- package/src/editor-manager/plugin/clearformat.js +13 -4
- package/src/editor-manager/plugin/format-painter-actions.d.ts +63 -0
- package/src/editor-manager/plugin/format-painter-actions.js +474 -0
- package/src/editor-manager/plugin/image.js +0 -1
- package/src/editor-manager/plugin/inserthtml-exec.js +1 -1
- package/src/editor-manager/plugin/inserthtml.d.ts +1 -1
- package/src/editor-manager/plugin/inserthtml.js +18 -10
- package/src/editor-manager/plugin/isformatted.js +1 -0
- package/src/editor-manager/plugin/link.js +0 -1
- package/src/editor-manager/plugin/lists.js +1 -1
- package/src/editor-manager/plugin/ms-word-clean-up.js +57 -19
- package/src/editor-manager/plugin/selection-commands.d.ts +4 -1
- package/src/editor-manager/plugin/selection-commands.js +70 -9
- package/src/editor-manager/plugin/video.js +2 -0
- package/src/editor-manager/plugin.d.ts +1 -0
- package/src/editor-manager/plugin.js +1 -0
- package/src/global.js +1 -1
- package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +1 -0
- package/src/rich-text-editor/actions/base-quick-toolbar.js +21 -1
- package/src/rich-text-editor/actions/base-toolbar.js +33 -10
- package/src/rich-text-editor/actions/enter-key.js +23 -16
- package/src/rich-text-editor/actions/format-painter.d.ts +24 -0
- package/src/rich-text-editor/actions/format-painter.js +142 -0
- package/src/rich-text-editor/actions/full-screen.js +0 -1
- package/src/rich-text-editor/actions/html-editor.d.ts +1 -0
- package/src/rich-text-editor/actions/html-editor.js +117 -97
- package/src/rich-text-editor/actions/paste-clean-up.js +2 -2
- package/src/rich-text-editor/actions/quick-toolbar.js +8 -1
- package/src/rich-text-editor/actions/toolbar.js +10 -0
- package/src/rich-text-editor/actions.d.ts +1 -0
- package/src/rich-text-editor/actions.js +1 -0
- package/src/rich-text-editor/base/constant.d.ts +10 -0
- package/src/rich-text-editor/base/constant.js +10 -0
- package/src/rich-text-editor/base/enum.d.ts +4 -0
- package/src/rich-text-editor/base/interface.d.ts +30 -3
- package/src/rich-text-editor/base/interface.js +12 -0
- package/src/rich-text-editor/base/rich-text-editor-model.d.ts +30 -4
- package/src/rich-text-editor/base/rich-text-editor.d.ts +35 -5
- package/src/rich-text-editor/base/rich-text-editor.js +46 -10
- package/src/rich-text-editor/base/util.js +2 -0
- package/src/rich-text-editor/formatter/formatter.js +22 -13
- package/src/rich-text-editor/formatter/html-formatter.d.ts +5 -3
- package/src/rich-text-editor/formatter/html-formatter.js +7 -5
- package/src/rich-text-editor/models/default-locale.js +4 -2
- package/src/rich-text-editor/models/items.d.ts +3 -0
- package/src/rich-text-editor/models/items.js +32 -0
- package/src/rich-text-editor/models/toolbar-settings-model.d.ts +29 -1
- package/src/rich-text-editor/models/toolbar-settings.d.ts +24 -1
- package/src/rich-text-editor/models/toolbar-settings.js +20 -0
- package/src/rich-text-editor/renderer/audio-module.js +6 -3
- package/src/rich-text-editor/renderer/image-module.js +11 -6
- package/src/rich-text-editor/renderer/link-module.js +2 -1
- package/src/rich-text-editor/renderer/table-module.js +18 -6
- package/src/rich-text-editor/renderer/toolbar-renderer.js +10 -1
- package/src/rich-text-editor/renderer/video-module.js +8 -5
- package/src/rich-text-editor/renderer/view-source.js +1 -1
- package/styles/bootstrap-dark.css +31 -1
- package/styles/bootstrap.css +31 -1
- package/styles/bootstrap4.css +31 -1
- package/styles/bootstrap5-dark.css +32 -2
- package/styles/bootstrap5.css +32 -2
- package/styles/fabric-dark.css +31 -1
- package/styles/fabric.css +31 -1
- package/styles/fluent-dark.css +34 -4
- package/styles/fluent.css +34 -4
- package/styles/highcontrast-light.css +31 -1
- package/styles/highcontrast.css +31 -1
- package/styles/material-dark.css +31 -1
- package/styles/material.css +31 -1
- package/styles/rich-text-editor/_bootstrap-dark-definition.scss +25 -1
- package/styles/rich-text-editor/_bootstrap-definition.scss +25 -1
- package/styles/rich-text-editor/_bootstrap4-definition.scss +25 -1
- package/styles/rich-text-editor/_bootstrap5-definition.scss +28 -5
- package/styles/rich-text-editor/_fabric-dark-definition.scss +25 -1
- package/styles/rich-text-editor/_fabric-definition.scss +25 -1
- package/styles/rich-text-editor/_fluent-definition.scss +30 -7
- package/styles/rich-text-editor/_fusionnew-definition.scss +26 -3
- package/styles/rich-text-editor/_highcontrast-definition.scss +25 -1
- package/styles/rich-text-editor/_highcontrast-light-definition.scss +25 -1
- package/styles/rich-text-editor/_layout.scss +47 -15
- package/styles/rich-text-editor/_material-dark-definition.scss +26 -1
- package/styles/rich-text-editor/_material-definition.scss +25 -1
- package/styles/rich-text-editor/_tailwind-definition.scss +28 -5
- package/styles/rich-text-editor/_theme.scss +54 -6
- package/styles/rich-text-editor/bootstrap-dark.css +31 -1
- package/styles/rich-text-editor/bootstrap.css +31 -1
- package/styles/rich-text-editor/bootstrap4.css +31 -1
- package/styles/rich-text-editor/bootstrap5-dark.css +32 -2
- package/styles/rich-text-editor/bootstrap5.css +32 -2
- package/styles/rich-text-editor/fabric-dark.css +31 -1
- package/styles/rich-text-editor/fabric.css +31 -1
- package/styles/rich-text-editor/fluent-dark.css +34 -4
- package/styles/rich-text-editor/fluent.css +34 -4
- package/styles/rich-text-editor/highcontrast-light.css +31 -1
- package/styles/rich-text-editor/highcontrast.css +31 -1
- package/styles/rich-text-editor/icons/_bootstrap-dark.scss +8 -0
- package/styles/rich-text-editor/icons/_bootstrap.scss +8 -0
- package/styles/rich-text-editor/icons/_bootstrap4.scss +8 -0
- package/styles/rich-text-editor/icons/_bootstrap5.scss +8 -0
- package/styles/rich-text-editor/icons/_fabric-dark.scss +8 -0
- package/styles/rich-text-editor/icons/_fabric.scss +8 -0
- package/styles/rich-text-editor/icons/_fluent.scss +8 -0
- package/styles/rich-text-editor/icons/_fusionnew.scss +8 -0
- package/styles/rich-text-editor/icons/_highcontrast-light.scss +8 -0
- package/styles/rich-text-editor/icons/_highcontrast.scss +8 -0
- package/styles/rich-text-editor/icons/_material-dark.scss +8 -0
- package/styles/rich-text-editor/icons/_material.scss +8 -0
- package/styles/rich-text-editor/icons/_material3.scss +8 -0
- package/styles/rich-text-editor/icons/_tailwind.scss +8 -0
- package/styles/rich-text-editor/material-dark.css +31 -1
- package/styles/rich-text-editor/material.css +31 -1
- package/styles/rich-text-editor/tailwind-dark.css +31 -1
- package/styles/rich-text-editor/tailwind.css +31 -1
- package/styles/tailwind-dark.css +31 -1
- package/styles/tailwind.css +31 -1
- package/GitLeaksReport.json +0 -1
- package/gitleaks-ci/gitleaks +0 -0
- package/gitleaks-ci.tar.gz +0 -0
- package/styles/rich-text-editor/_material3-definition.scss +0 -196
package/dist/global/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version :
|
|
3
|
+
* version : 21.1.35
|
|
4
4
|
* Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
|
|
5
5
|
* Use of this code is subject to the terms of our license.
|
|
6
6
|
* A copy of the current license can be obtained at any time by e-mailing
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_from": "@syncfusion/ej2-richtexteditor@*",
|
|
3
|
-
"_id": "@syncfusion/ej2-richtexteditor@20.
|
|
3
|
+
"_id": "@syncfusion/ej2-richtexteditor@20.13.3",
|
|
4
4
|
"_inBundle": false,
|
|
5
|
-
"_integrity": "sha512-
|
|
5
|
+
"_integrity": "sha512-4jdrmREjDgPKwiANKnB0xje6CtxhXFDBUoNaNL39VS/LTNTc6Vp7eYY6MmUAkkfulvnK99kdaSHCXLbh9hui5g==",
|
|
6
6
|
"_location": "/@syncfusion/ej2-richtexteditor",
|
|
7
7
|
"_phantomChildren": {},
|
|
8
8
|
"_requested": {
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
"/@syncfusion/ej2-react-richtexteditor",
|
|
27
27
|
"/@syncfusion/ej2-vue-richtexteditor"
|
|
28
28
|
],
|
|
29
|
-
"_resolved": "https://nexus.syncfusion.com/repository/ej2-
|
|
30
|
-
"_shasum": "
|
|
29
|
+
"_resolved": "https://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-20.13.3.tgz",
|
|
30
|
+
"_shasum": "00117dbb8de0202c6f23ca3a4d58f3578b21234c",
|
|
31
31
|
"_spec": "@syncfusion/ej2-richtexteditor@*",
|
|
32
|
-
"_where": "/jenkins/workspace/
|
|
32
|
+
"_where": "/jenkins/workspace/elease-automation_release_21.1.1/packages/included",
|
|
33
33
|
"author": {
|
|
34
34
|
"name": "Syncfusion Inc."
|
|
35
35
|
},
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
},
|
|
39
39
|
"bundleDependencies": false,
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@syncfusion/ej2-base": "~
|
|
42
|
-
"@syncfusion/ej2-buttons": "~
|
|
43
|
-
"@syncfusion/ej2-filemanager": "~
|
|
44
|
-
"@syncfusion/ej2-inputs": "~
|
|
45
|
-
"@syncfusion/ej2-navigations": "~
|
|
46
|
-
"@syncfusion/ej2-popups": "~
|
|
47
|
-
"@syncfusion/ej2-splitbuttons": "~
|
|
41
|
+
"@syncfusion/ej2-base": "~21.1.35",
|
|
42
|
+
"@syncfusion/ej2-buttons": "~21.1.35",
|
|
43
|
+
"@syncfusion/ej2-filemanager": "~21.1.35",
|
|
44
|
+
"@syncfusion/ej2-inputs": "~21.1.35",
|
|
45
|
+
"@syncfusion/ej2-navigations": "~21.1.35",
|
|
46
|
+
"@syncfusion/ej2-popups": "~21.1.35",
|
|
47
|
+
"@syncfusion/ej2-splitbuttons": "~21.1.35"
|
|
48
48
|
},
|
|
49
49
|
"deprecated": false,
|
|
50
50
|
"description": "Essential JS 2 RichTextEditor component",
|
|
@@ -70,6 +70,6 @@
|
|
|
70
70
|
"url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
|
|
71
71
|
},
|
|
72
72
|
"typings": "index.d.ts",
|
|
73
|
-
"version": "
|
|
73
|
+
"version": "21.1.35",
|
|
74
74
|
"sideEffects": false
|
|
75
75
|
}
|
package/src/common/config.js
CHANGED
package/src/common/constant.d.ts
CHANGED
package/src/common/constant.js
CHANGED
package/src/common/util.d.ts
CHANGED
|
@@ -13,10 +13,11 @@ export declare function isIDevice(): boolean;
|
|
|
13
13
|
export declare function setEditFrameFocus(editableElement: Element, selector: string): void;
|
|
14
14
|
/**
|
|
15
15
|
* @param {string} value - specifies the string value
|
|
16
|
+
* @param {string} enterAction - specifies the enter key action API
|
|
16
17
|
* @returns {void}
|
|
17
18
|
* @hidden
|
|
18
19
|
*/
|
|
19
|
-
export declare function updateTextNode(value: string): string;
|
|
20
|
+
export declare function updateTextNode(value: string, enterAction?: string): string;
|
|
20
21
|
/**
|
|
21
22
|
* @param {Node} startChildNodes - specifies the node
|
|
22
23
|
* @returns {void}
|
package/src/common/util.js
CHANGED
|
@@ -34,10 +34,11 @@ export function setEditFrameFocus(editableElement, selector) {
|
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* @param {string} value - specifies the string value
|
|
37
|
+
* @param {string} enterAction - specifies the enter key action API
|
|
37
38
|
* @returns {void}
|
|
38
39
|
* @hidden
|
|
39
40
|
*/
|
|
40
|
-
export function updateTextNode(value) {
|
|
41
|
+
export function updateTextNode(value, enterAction) {
|
|
41
42
|
var tempNode = document.createElement('div');
|
|
42
43
|
tempNode.innerHTML = value;
|
|
43
44
|
tempNode.setAttribute('class', 'tempDiv');
|
|
@@ -52,15 +53,23 @@ export function updateTextNode(value) {
|
|
|
52
53
|
(tempNode.firstChild.textContent.indexOf('\n') < 0 || tempNode.firstChild.textContent.trim() !== '')) ||
|
|
53
54
|
inlineNode.indexOf(tempNode.firstChild.nodeName.toLocaleLowerCase()) >= 0) {
|
|
54
55
|
if (!isPreviousInlineElem) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
if (enterAction === 'BR') {
|
|
57
|
+
resultElm.appendChild(tempNode.firstChild);
|
|
58
|
+
previousParent = resultElm;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
paraElm = createElement('p');
|
|
62
|
+
resultElm.appendChild(paraElm);
|
|
63
|
+
paraElm.appendChild(tempNode.firstChild);
|
|
64
|
+
previousParent = paraElm;
|
|
65
|
+
isPreviousInlineElem = true;
|
|
66
|
+
}
|
|
58
67
|
}
|
|
59
68
|
else {
|
|
60
69
|
previousParent.appendChild(tempNode.firstChild);
|
|
70
|
+
previousParent = paraElm;
|
|
71
|
+
isPreviousInlineElem = true;
|
|
61
72
|
}
|
|
62
|
-
previousParent = paraElm;
|
|
63
|
-
isPreviousInlineElem = true;
|
|
64
73
|
}
|
|
65
74
|
else if (tempNode.firstChild.nodeName === '#text' && (tempNode.firstChild.textContent === '\n' ||
|
|
66
75
|
(tempNode.firstChild.textContent.indexOf('\n') >= 0 && tempNode.firstChild.textContent.trim() === ''))) {
|
|
@@ -19,6 +19,7 @@ import { UndoRedoManager } from './../plugin/undo';
|
|
|
19
19
|
import { MsWordPaste } from '../plugin/ms-word-clean-up';
|
|
20
20
|
import { InsertTextExec } from '../plugin/insert-text';
|
|
21
21
|
import { NodeCutter } from '../plugin/nodecutter';
|
|
22
|
+
import { FormatPainterActions } from '../plugin/format-painter-actions';
|
|
22
23
|
/**
|
|
23
24
|
* EditorManager internal component
|
|
24
25
|
*
|
|
@@ -46,6 +47,7 @@ export declare class EditorManager {
|
|
|
46
47
|
clearObj: ClearFormatExec;
|
|
47
48
|
undoRedoManager: UndoRedoManager;
|
|
48
49
|
msWordPaste: MsWordPaste;
|
|
50
|
+
formatPaintetrObj: FormatPainterActions;
|
|
49
51
|
editableElement: Element;
|
|
50
52
|
/**
|
|
51
53
|
* Constructor for creating the component
|
|
@@ -19,6 +19,7 @@ import { MsWordPaste } from '../plugin/ms-word-clean-up';
|
|
|
19
19
|
import * as EVENTS from './../../common/constant';
|
|
20
20
|
import { InsertTextExec } from '../plugin/insert-text';
|
|
21
21
|
import { NodeCutter } from '../plugin/nodecutter';
|
|
22
|
+
import { FormatPainterActions } from '../plugin/format-painter-actions';
|
|
22
23
|
/**
|
|
23
24
|
* EditorManager internal component
|
|
24
25
|
*
|
|
@@ -55,6 +56,7 @@ var EditorManager = /** @class */ (function () {
|
|
|
55
56
|
this.tableObj = new TableCommand(this);
|
|
56
57
|
this.undoRedoManager = new UndoRedoManager(this, options.options);
|
|
57
58
|
this.msWordPaste = new MsWordPaste(this);
|
|
59
|
+
this.formatPaintetrObj = new FormatPainterActions(this, options.formatPainterSettings);
|
|
58
60
|
this.wireEvents();
|
|
59
61
|
}
|
|
60
62
|
EditorManager.prototype.wireEvents = function () {
|
|
@@ -188,7 +190,7 @@ var EditorManager = /** @class */ (function () {
|
|
|
188
190
|
this.observer.notify(CONSTANT.SELECTION_TYPE, { subCommand: value, event: event, callBack: callBack, value: text, selector: selector, enterAction: enterAction });
|
|
189
191
|
break;
|
|
190
192
|
case 'inserthtml':
|
|
191
|
-
this.observer.notify(CONSTANT.INSERTHTML_TYPE, { subCommand: value, callBack: callBack, value: text });
|
|
193
|
+
this.observer.notify(CONSTANT.INSERTHTML_TYPE, { subCommand: value, callBack: callBack, value: text, enterAction: enterAction });
|
|
192
194
|
break;
|
|
193
195
|
case 'inserttext':
|
|
194
196
|
this.observer.notify(CONSTANT.INSERT_TEXT_TYPE, { subCommand: value, callBack: callBack, value: text });
|
|
@@ -199,6 +201,9 @@ var EditorManager = /** @class */ (function () {
|
|
|
199
201
|
case 'actions':
|
|
200
202
|
this.observer.notify(EVENTS.ACTION, { subCommand: value, event: event, callBack: callBack, selector: selector });
|
|
201
203
|
break;
|
|
204
|
+
case 'formatpainter':
|
|
205
|
+
this.observer.notify(EVENTS.FORMAT_PAINTER_ACTIONS, { item: exeValue, subCommand: value, event: event, callBack: callBack });
|
|
206
|
+
break;
|
|
202
207
|
}
|
|
203
208
|
};
|
|
204
209
|
return EditorManager;
|
|
@@ -1,3 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Enum values for EditorManager
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
|
|
7
|
+
* @hidden
|
|
8
|
+
* Defines the context or contexts in which styles will be copied.
|
|
9
|
+
*/
|
|
10
|
+
export declare type IFormatPainterContext = 'Text' | 'List' | 'Table';
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
|
|
14
|
+
* @hidden
|
|
15
|
+
* Defines the action values for format painter.
|
|
16
|
+
*/
|
|
17
|
+
export declare type IFormatPainterActionValue = 'format-copy' | 'format-paste' | 'escape';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NodeSelection } from './../../selection/index';
|
|
2
2
|
import { KeyboardEventArgs } from '@syncfusion/ej2-base';
|
|
3
3
|
import { IHtmlFormatterCallBack, IAdvanceListItem } from '../../common/interface';
|
|
4
|
+
import { IFormatPainterActionValue, IFormatPainterContext } from './enum';
|
|
4
5
|
/**
|
|
5
6
|
* Specifies Command models interfaces.
|
|
6
7
|
*
|
|
@@ -19,6 +20,7 @@ export interface ICommandModel {
|
|
|
19
20
|
options?: {
|
|
20
21
|
[key: string]: number;
|
|
21
22
|
};
|
|
23
|
+
formatPainterSettings?: IFormatPainterSettings;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* Specifies IHtmlSubCommands interfaces.
|
|
@@ -157,3 +159,35 @@ export interface IHtmlKeyboardEvent {
|
|
|
157
159
|
*/
|
|
158
160
|
enterAction?: string;
|
|
159
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
*
|
|
164
|
+
|
|
165
|
+
* @hidden
|
|
166
|
+
*
|
|
167
|
+
*/
|
|
168
|
+
export interface IFormatPainterSettings {
|
|
169
|
+
allowedContext?: IFormatPainterContext[];
|
|
170
|
+
allowedFormats?: string;
|
|
171
|
+
deniedFormats?: string;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
*
|
|
175
|
+
|
|
176
|
+
* @hidden
|
|
177
|
+
*
|
|
178
|
+
*/
|
|
179
|
+
export interface IFormatPainterActionArgs {
|
|
180
|
+
name: string;
|
|
181
|
+
event: MouseEvent | KeyboardEvent;
|
|
182
|
+
item: IFormatPainterAction;
|
|
183
|
+
subCommand: string;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
*
|
|
187
|
+
|
|
188
|
+
* @hidden
|
|
189
|
+
*
|
|
190
|
+
*/
|
|
191
|
+
export interface IFormatPainterAction {
|
|
192
|
+
formatPainterAction: IFormatPainterActionValue;
|
|
193
|
+
}
|
|
@@ -28,12 +28,18 @@ var ClearFormat = /** @class */ (function () {
|
|
|
28
28
|
var nodeSelection = new NodeSelection();
|
|
29
29
|
var nodeCutter = new NodeCutter();
|
|
30
30
|
var range = nodeSelection.getRange(docElement);
|
|
31
|
-
var
|
|
32
|
-
|
|
31
|
+
var nodes = range.collapsed ? nodeSelection.getSelectionNodeCollection(range) :
|
|
32
|
+
nodeSelection.getSelectionNodeCollectionBr(range);
|
|
33
33
|
var save = nodeSelection.save(range, docElement);
|
|
34
|
+
var cursorRange = false;
|
|
35
|
+
if (range.collapsed) {
|
|
36
|
+
cursorRange = true;
|
|
37
|
+
range = nodeCutter.GetCursorRange(docElement, range, nodes[0]);
|
|
38
|
+
}
|
|
39
|
+
var isCollapsed = range.collapsed;
|
|
34
40
|
if (!isCollapsed) {
|
|
35
41
|
var preNode = void 0;
|
|
36
|
-
if (nodes[0].nodeName === 'BR' && closest(nodes[0], 'table')) {
|
|
42
|
+
if (nodes.length > 0 && nodes[0].nodeName === 'BR' && closest(nodes[0], 'table')) {
|
|
37
43
|
preNode = nodeCutter.GetSpliceNode(range, closest(nodes[0], 'table'));
|
|
38
44
|
}
|
|
39
45
|
else {
|
|
@@ -43,7 +49,7 @@ var ClearFormat = /** @class */ (function () {
|
|
|
43
49
|
nodeSelection.setSelectionContents(docElement, preNode);
|
|
44
50
|
range = nodeSelection.getRange(docElement);
|
|
45
51
|
}
|
|
46
|
-
else {
|
|
52
|
+
else if (nodes.length > 1) {
|
|
47
53
|
var i = 1;
|
|
48
54
|
var lastText = nodes[nodes.length - i];
|
|
49
55
|
while (nodes.length <= i && nodes[nodes.length - i].nodeName === 'BR') {
|
|
@@ -68,6 +74,9 @@ var ClearFormat = /** @class */ (function () {
|
|
|
68
74
|
}
|
|
69
75
|
this.reSelection(docElement, save, exactNodes);
|
|
70
76
|
}
|
|
77
|
+
if (cursorRange) {
|
|
78
|
+
nodeSelection.setCursorPoint(docElement, range.endContainer, range.endOffset);
|
|
79
|
+
}
|
|
71
80
|
};
|
|
72
81
|
ClearFormat.reSelection = function (docElement, save, exactNodes) {
|
|
73
82
|
var selectionNodes = save.getInsertNodes(exactNodes);
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { IFormatPainterSettings } from '../base';
|
|
2
|
+
import { EditorManager } from '../base';
|
|
3
|
+
export declare class FormatPainterActions {
|
|
4
|
+
private parent;
|
|
5
|
+
private copyCollection;
|
|
6
|
+
private deniedFormatsCollection;
|
|
7
|
+
private newElem;
|
|
8
|
+
private newElemLastChild;
|
|
9
|
+
private settings;
|
|
10
|
+
constructor(parent?: EditorManager, options?: IFormatPainterSettings);
|
|
11
|
+
private addEventListener;
|
|
12
|
+
private actionHandler;
|
|
13
|
+
private generateElement;
|
|
14
|
+
private pasteAction;
|
|
15
|
+
private removeDeniedFormats;
|
|
16
|
+
private copyAction;
|
|
17
|
+
private getRangeParentElem;
|
|
18
|
+
private getNearestBlockParentElement;
|
|
19
|
+
private isBlockElement;
|
|
20
|
+
private escapeAction;
|
|
21
|
+
private paintPlainTextFormat;
|
|
22
|
+
private validateELementTag;
|
|
23
|
+
private findCurrentContext;
|
|
24
|
+
private insertFormatNode;
|
|
25
|
+
private insertBlockNode;
|
|
26
|
+
private cleanEmptyLists;
|
|
27
|
+
private setDeniedFormats;
|
|
28
|
+
private makeDeniedFormatsCollection;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @hidden
|
|
32
|
+
*/
|
|
33
|
+
export interface FormatPainterCollection {
|
|
34
|
+
attrs: Attr[];
|
|
35
|
+
className: string;
|
|
36
|
+
styles: CSSPropCollection[];
|
|
37
|
+
tagName: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @hidden
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
export interface FormatPainterValue {
|
|
44
|
+
element: HTMLElement;
|
|
45
|
+
lastChild: HTMLElement;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @hidden
|
|
49
|
+
*/
|
|
50
|
+
export interface DeniedFormatsCollection {
|
|
51
|
+
tag: string;
|
|
52
|
+
styles: string[];
|
|
53
|
+
attributes: string[];
|
|
54
|
+
classes: string[];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @hidden
|
|
58
|
+
*/
|
|
59
|
+
export interface CSSPropCollection {
|
|
60
|
+
property: string;
|
|
61
|
+
value: string;
|
|
62
|
+
priority: string;
|
|
63
|
+
}
|