@syncfusion/ej2-richtexteditor 23.2.7-52849 → 24.1.41-569421
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +260 -0
- package/CHANGELOG.md +203 -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 +9873 -7941
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +9967 -8034
- package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
- package/package.json +13 -13
- package/src/common/config.d.ts +7 -0
- package/src/common/config.js +12 -1
- package/src/common/constant.d.ts +6 -0
- package/src/common/constant.js +6 -0
- package/src/common/interface.d.ts +12 -0
- package/src/common/types.d.ts +6 -0
- package/src/common/util.d.ts +6 -0
- package/src/common/util.js +61 -20
- package/src/editor-manager/base/constant.d.ts +6 -0
- package/src/editor-manager/base/constant.js +6 -0
- package/src/editor-manager/base/editor-manager.d.ts +5 -0
- package/src/editor-manager/base/editor-manager.js +59 -0
- package/src/editor-manager/base/interface.d.ts +8 -0
- package/src/editor-manager/plugin/audio.js +13 -3
- package/src/editor-manager/plugin/dom-node.d.ts +5 -1
- package/src/editor-manager/plugin/dom-node.js +169 -28
- package/src/editor-manager/plugin/format-painter-actions.d.ts +1 -0
- package/src/editor-manager/plugin/format-painter-actions.js +19 -1
- package/src/editor-manager/plugin/formats.d.ts +1 -0
- package/src/editor-manager/plugin/formats.js +38 -3
- package/src/editor-manager/plugin/image.js +38 -15
- package/src/editor-manager/plugin/indents.js +1 -1
- package/src/editor-manager/plugin/inserthtml.d.ts +1 -0
- package/src/editor-manager/plugin/inserthtml.js +83 -20
- package/src/editor-manager/plugin/link.js +8 -3
- package/src/editor-manager/plugin/lists.js +159 -70
- package/src/editor-manager/plugin/ms-word-clean-up.d.ts +3 -0
- package/src/editor-manager/plugin/ms-word-clean-up.js +215 -85
- package/src/editor-manager/plugin/nodecutter.js +5 -2
- package/src/editor-manager/plugin/selection-commands.d.ts +2 -0
- package/src/editor-manager/plugin/selection-commands.js +248 -4
- package/src/editor-manager/plugin/table.d.ts +4 -1
- package/src/editor-manager/plugin/table.js +95 -49
- package/src/editor-manager/plugin/toolbar-status.d.ts +2 -2
- package/src/editor-manager/plugin/toolbar-status.js +20 -10
- package/src/editor-manager/plugin/undo.d.ts +1 -0
- package/src/editor-manager/plugin/undo.js +21 -1
- package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +4 -3
- package/src/rich-text-editor/actions/base-quick-toolbar.js +61 -14
- package/src/rich-text-editor/actions/base-toolbar.js +33 -34
- package/src/rich-text-editor/actions/color-picker.d.ts +1 -0
- package/src/rich-text-editor/actions/color-picker.js +13 -3
- package/src/rich-text-editor/actions/count.js +1 -1
- package/src/rich-text-editor/actions/dropdown-buttons.d.ts +1 -0
- package/src/rich-text-editor/actions/dropdown-buttons.js +11 -5
- package/src/rich-text-editor/actions/emoji-picker.js +16 -7
- package/src/rich-text-editor/actions/enter-key.js +10 -5
- package/src/rich-text-editor/actions/file-manager.js +1 -1
- package/src/rich-text-editor/actions/format-painter.js +5 -2
- package/src/rich-text-editor/actions/full-screen.js +5 -4
- package/src/rich-text-editor/actions/html-editor.d.ts +2 -0
- package/src/rich-text-editor/actions/html-editor.js +124 -17
- package/src/rich-text-editor/actions/keyboard.js +3 -1
- package/src/rich-text-editor/actions/markdown-editor.js +3 -1
- package/src/rich-text-editor/actions/paste-clean-up.d.ts +5 -0
- package/src/rich-text-editor/actions/paste-clean-up.js +156 -28
- package/src/rich-text-editor/actions/quick-toolbar.d.ts +8 -0
- package/src/rich-text-editor/actions/quick-toolbar.js +59 -12
- package/src/rich-text-editor/actions/resize.js +2 -1
- package/src/rich-text-editor/actions/toolbar-action.js +1 -1
- package/src/rich-text-editor/actions/toolbar.d.ts +3 -3
- package/src/rich-text-editor/actions/toolbar.js +35 -96
- package/src/rich-text-editor/base/classes.d.ts +5 -5
- package/src/rich-text-editor/base/classes.js +5 -5
- package/src/rich-text-editor/base/constant.d.ts +46 -1
- package/src/rich-text-editor/base/constant.js +215 -1
- package/src/rich-text-editor/base/interface.d.ts +47 -3
- package/src/rich-text-editor/base/rich-text-editor-model.d.ts +3 -3
- package/src/rich-text-editor/base/rich-text-editor.d.ts +16 -4
- package/src/rich-text-editor/base/rich-text-editor.js +184 -97
- package/src/rich-text-editor/base/util.js +22 -4
- package/src/rich-text-editor/formatter/formatter.js +16 -4
- package/src/rich-text-editor/models/default-locale.js +31 -25
- package/src/rich-text-editor/models/items.js +3 -3
- package/src/rich-text-editor/models/toolbar-settings-model.d.ts +1 -1
- package/src/rich-text-editor/models/toolbar-settings.d.ts +1 -1
- package/src/rich-text-editor/models/toolbar-settings.js +1 -1
- package/src/rich-text-editor/renderer/audio-module.d.ts +1 -0
- package/src/rich-text-editor/renderer/audio-module.js +22 -4
- package/src/rich-text-editor/renderer/dialog-renderer.d.ts +2 -0
- package/src/rich-text-editor/renderer/dialog-renderer.js +22 -2
- package/src/rich-text-editor/renderer/iframe-content-renderer.js +2 -1
- package/src/rich-text-editor/renderer/image-module.d.ts +9 -1
- package/src/rich-text-editor/renderer/image-module.js +248 -213
- package/src/rich-text-editor/renderer/link-module.js +53 -24
- package/src/rich-text-editor/renderer/table-module.d.ts +10 -1
- package/src/rich-text-editor/renderer/table-module.js +343 -168
- package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +3 -6
- package/src/rich-text-editor/renderer/toolbar-renderer.js +106 -101
- package/src/rich-text-editor/renderer/video-module.d.ts +3 -0
- package/src/rich-text-editor/renderer/video-module.js +82 -41
- package/src/rich-text-editor/renderer/view-source.d.ts +1 -0
- package/src/rich-text-editor/renderer/view-source.js +15 -5
- package/src/selection/selection.js +3 -0
- package/styles/bootstrap-dark.css +353 -103
- package/styles/bootstrap.css +357 -112
- package/styles/bootstrap4.css +338 -96
- package/styles/bootstrap5-dark.css +344 -97
- package/styles/bootstrap5.css +344 -97
- package/styles/fabric-dark.css +332 -90
- package/styles/fabric.css +333 -91
- package/styles/fluent-dark.css +360 -98
- package/styles/fluent.css +360 -98
- package/styles/highcontrast-light.css +332 -90
- package/styles/highcontrast.css +336 -91
- package/styles/material-dark.css +339 -92
- package/styles/material.css +339 -92
- package/styles/material3-dark.css +348 -100
- package/styles/material3.css +348 -100
- package/styles/rich-text-editor/_bds-definition.scss +279 -0
- package/styles/rich-text-editor/_bootstrap-dark-definition.scss +17 -13
- package/styles/rich-text-editor/_bootstrap-definition.scss +22 -19
- package/styles/rich-text-editor/_bootstrap4-definition.scss +11 -7
- package/styles/rich-text-editor/_bootstrap5-definition.scss +8 -4
- package/styles/rich-text-editor/_fabric-dark-definition.scss +6 -2
- package/styles/rich-text-editor/_fabric-definition.scss +7 -3
- package/styles/rich-text-editor/_fluent-definition.scss +14 -10
- package/styles/rich-text-editor/_fusionnew-definition.scss +7 -3
- package/styles/rich-text-editor/_highcontrast-definition.scss +7 -3
- package/styles/rich-text-editor/_highcontrast-light-definition.scss +6 -2
- package/styles/rich-text-editor/_layout.scss +211 -34
- package/styles/rich-text-editor/_material-dark-definition.scss +6 -2
- package/styles/rich-text-editor/_material-definition.scss +6 -2
- package/styles/rich-text-editor/_material3-definition.scss +16 -12
- package/styles/rich-text-editor/_tailwind-definition.scss +23 -19
- package/styles/rich-text-editor/_theme.scss +113 -24
- package/styles/rich-text-editor/bootstrap-dark.css +353 -103
- package/styles/rich-text-editor/bootstrap.css +357 -112
- package/styles/rich-text-editor/bootstrap4.css +338 -96
- package/styles/rich-text-editor/bootstrap5-dark.css +344 -97
- package/styles/rich-text-editor/bootstrap5.css +344 -97
- package/styles/rich-text-editor/fabric-dark.css +332 -90
- package/styles/rich-text-editor/fabric.css +333 -91
- package/styles/rich-text-editor/fluent-dark.css +360 -98
- package/styles/rich-text-editor/fluent.css +360 -98
- package/styles/rich-text-editor/highcontrast-light.css +332 -90
- package/styles/rich-text-editor/highcontrast.css +336 -91
- package/styles/rich-text-editor/icons/_bds.scss +348 -0
- package/styles/rich-text-editor/icons/_bootstrap-dark.scss +4 -4
- package/styles/rich-text-editor/icons/_bootstrap.scss +4 -4
- package/styles/rich-text-editor/icons/_bootstrap4.scss +4 -4
- package/styles/rich-text-editor/icons/_bootstrap5.scss +4 -4
- package/styles/rich-text-editor/icons/_fabric-dark.scss +4 -4
- package/styles/rich-text-editor/icons/_fabric.scss +4 -4
- package/styles/rich-text-editor/icons/_fluent.scss +4 -4
- package/styles/rich-text-editor/icons/_fusionnew.scss +3 -3
- package/styles/rich-text-editor/icons/_highcontrast-light.scss +4 -4
- package/styles/rich-text-editor/icons/_highcontrast.scss +4 -4
- package/styles/rich-text-editor/icons/_material-dark.scss +4 -4
- package/styles/rich-text-editor/icons/_material.scss +4 -4
- package/styles/rich-text-editor/icons/_material3.scss +4 -4
- package/styles/rich-text-editor/icons/_tailwind.scss +4 -4
- package/styles/rich-text-editor/material-dark.css +339 -92
- package/styles/rich-text-editor/material.css +339 -92
- package/styles/rich-text-editor/material3-dark.css +348 -100
- package/styles/rich-text-editor/material3.css +348 -100
- package/styles/rich-text-editor/tailwind-dark.css +383 -113
- package/styles/rich-text-editor/tailwind.css +383 -113
- package/styles/tailwind-dark.css +383 -113
- package/styles/tailwind.css +383 -113
- package/.github/PULL_REQUEST_TEMPLATE/Bug.md +0 -41
- package/.github/PULL_REQUEST_TEMPLATE/Feature.md +0 -27
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_from": "@syncfusion/ej2-richtexteditor@*",
|
|
3
|
-
"_id": "@syncfusion/ej2-richtexteditor@
|
|
3
|
+
"_id": "@syncfusion/ej2-richtexteditor@24.1.41",
|
|
4
4
|
"_inBundle": false,
|
|
5
|
-
"_integrity": "sha512-
|
|
5
|
+
"_integrity": "sha512-h4DVBcoJwsAW5vm0Y6Ffg3KcNNeCxkj2MwOW+z+Aa8puZZETLQitQl8yt76IFRoxTY/MCdkoTWVILD5mstwkFg==",
|
|
6
6
|
"_location": "/@syncfusion/ej2-richtexteditor",
|
|
7
7
|
"_phantomChildren": {},
|
|
8
8
|
"_requested": {
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
"/@syncfusion/ej2-react-richtexteditor",
|
|
26
26
|
"/@syncfusion/ej2-vue-richtexteditor"
|
|
27
27
|
],
|
|
28
|
-
"_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-
|
|
29
|
-
"_shasum": "
|
|
28
|
+
"_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-24.1.41.tgz",
|
|
29
|
+
"_shasum": "b0643450fa79cf814e9386718d1e011876c3946a",
|
|
30
30
|
"_spec": "@syncfusion/ej2-richtexteditor@*",
|
|
31
|
-
"_where": "/jenkins/workspace/elease-
|
|
31
|
+
"_where": "/jenkins/workspace/elease-automation_release_24.1.1/packages/included",
|
|
32
32
|
"author": {
|
|
33
33
|
"name": "Syncfusion Inc."
|
|
34
34
|
},
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
},
|
|
38
38
|
"bundleDependencies": false,
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@syncfusion/ej2-base": "
|
|
41
|
-
"@syncfusion/ej2-buttons": "
|
|
42
|
-
"@syncfusion/ej2-filemanager": "
|
|
43
|
-
"@syncfusion/ej2-inputs": "
|
|
44
|
-
"@syncfusion/ej2-navigations": "
|
|
45
|
-
"@syncfusion/ej2-popups": "
|
|
46
|
-
"@syncfusion/ej2-splitbuttons": "
|
|
40
|
+
"@syncfusion/ej2-base": "24.1.41",
|
|
41
|
+
"@syncfusion/ej2-buttons": "24.1.41",
|
|
42
|
+
"@syncfusion/ej2-filemanager": "24.1.41",
|
|
43
|
+
"@syncfusion/ej2-inputs": "24.1.41",
|
|
44
|
+
"@syncfusion/ej2-navigations": "24.1.41",
|
|
45
|
+
"@syncfusion/ej2-popups": "24.1.41",
|
|
46
|
+
"@syncfusion/ej2-splitbuttons": "24.1.41"
|
|
47
47
|
},
|
|
48
48
|
"deprecated": false,
|
|
49
49
|
"description": "Essential JS 2 RichTextEditor component",
|
|
@@ -69,6 +69,6 @@
|
|
|
69
69
|
"url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
|
|
70
70
|
},
|
|
71
71
|
"typings": "index.d.ts",
|
|
72
|
-
"version": "
|
|
72
|
+
"version": "24.1.41-569421",
|
|
73
73
|
"sideEffects": false
|
|
74
74
|
}
|
package/src/common/config.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IImageResizeFactor } from "./interface";
|
|
1
2
|
/**
|
|
2
3
|
* Default Markdown formats config for adapter
|
|
3
4
|
*/
|
|
@@ -46,3 +47,9 @@ export declare const listConversionFilters: {
|
|
|
46
47
|
* @hidden
|
|
47
48
|
*/
|
|
48
49
|
export declare const selfClosingTags: string[];
|
|
50
|
+
/**
|
|
51
|
+
* Resize factor for image.
|
|
52
|
+
* @hidden
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
export declare const imageResizeFactor: IImageResizeFactor;
|
package/src/common/config.js
CHANGED
|
@@ -41,7 +41,7 @@ export var htmlKeyConfig = {
|
|
|
41
41
|
'insert-link': 'ctrl+k',
|
|
42
42
|
'insert-image': 'ctrl+shift+i',
|
|
43
43
|
'insert-audio': 'ctrl+shift+a',
|
|
44
|
-
'insert-video': 'ctrl+
|
|
44
|
+
'insert-video': 'ctrl+alt+v',
|
|
45
45
|
'insert-table': 'ctrl+shift+e',
|
|
46
46
|
'undo': 'ctrl+z',
|
|
47
47
|
'redo': 'ctrl+y',
|
|
@@ -128,3 +128,14 @@ export var selfClosingTags = [
|
|
|
128
128
|
'BR',
|
|
129
129
|
'IMG'
|
|
130
130
|
];
|
|
131
|
+
/**
|
|
132
|
+
* Resize factor for image.
|
|
133
|
+
* @hidden
|
|
134
|
+
*
|
|
135
|
+
*/
|
|
136
|
+
export var imageResizeFactor = {
|
|
137
|
+
topLeft: [-1, -1],
|
|
138
|
+
topRight: [1, -1],
|
|
139
|
+
botRight: [1, 1],
|
|
140
|
+
botLeft: [-1, 1]
|
|
141
|
+
};
|
package/src/common/constant.d.ts
CHANGED
package/src/common/constant.js
CHANGED
|
@@ -77,3 +77,15 @@ export interface IToolbarStatus {
|
|
|
77
77
|
numberFormatList?: string | boolean;
|
|
78
78
|
bulletFormatList?: string | boolean;
|
|
79
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* @deprecated
|
|
82
|
+
* @private
|
|
83
|
+
*
|
|
84
|
+
*
|
|
85
|
+
* */
|
|
86
|
+
export interface IImageResizeFactor {
|
|
87
|
+
topLeft: [number, number];
|
|
88
|
+
topRight: [number, number];
|
|
89
|
+
botLeft: [number, number];
|
|
90
|
+
botRight: [number, number];
|
|
91
|
+
}
|
package/src/common/types.d.ts
CHANGED
|
@@ -18,3 +18,9 @@ export declare type EnterKey = 'P' | 'DIV' | 'BR';
|
|
|
18
18
|
* Defines tag to be used when shift + enter key is pressed.
|
|
19
19
|
*/
|
|
20
20
|
export declare type ShiftEnterKey = 'P' | 'DIV' | 'BR';
|
|
21
|
+
/**
|
|
22
|
+
* Defines the types of action to be used in the Rich Text Editor.
|
|
23
|
+
* @hidden
|
|
24
|
+
* @private
|
|
25
|
+
*/
|
|
26
|
+
export declare type ContentHeightSource = 'SourceCode' | 'Init' | 'Preview' | 'Maximize' | 'Minimize' | 'WindowResize' | 'Toolbar' | 'Resize' | 'Refresh';
|
package/src/common/util.d.ts
CHANGED
|
@@ -34,3 +34,9 @@ export declare function getDefaultHtmlTbStatus(): IToolbarStatus;
|
|
|
34
34
|
* @hidden
|
|
35
35
|
*/
|
|
36
36
|
export declare function getDefaultMDTbStatus(): IToolbarStatus;
|
|
37
|
+
/**
|
|
38
|
+
* @param {Range} range - specifies the range
|
|
39
|
+
* @returns {void}
|
|
40
|
+
* @hidden
|
|
41
|
+
*/
|
|
42
|
+
export declare function nestedListCleanUp(range: Range): void;
|
package/src/common/util.js
CHANGED
|
@@ -82,33 +82,47 @@ export function updateTextNode(value, enterAction) {
|
|
|
82
82
|
}
|
|
83
83
|
var tableElm = resultElm.querySelectorAll('table');
|
|
84
84
|
for (var i = 0; i < tableElm.length; i++) {
|
|
85
|
-
if (tableElm[i].
|
|
86
|
-
tableElm[i].
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (tdElm[j].style.borderLeft === 'none') {
|
|
91
|
-
tdElm[j].style.removeProperty('border-left');
|
|
92
|
-
}
|
|
93
|
-
if (tdElm[j].style.borderRight === 'none') {
|
|
94
|
-
tdElm[j].style.removeProperty('border-right');
|
|
95
|
-
}
|
|
96
|
-
if (tdElm[j].style.borderBottom === 'none') {
|
|
97
|
-
tdElm[j].style.removeProperty('border-bottom');
|
|
85
|
+
if (tableElm[i].classList.length > 0 && !tableElm[i].classList.contains('e-rte-table')) {
|
|
86
|
+
tableElm[i].classList.add('e-rte-paste-table');
|
|
87
|
+
if (tableElm[i].classList.contains('e-rte-paste-word-table')) {
|
|
88
|
+
tableElm[i].classList.remove('e-rte-paste-word-table');
|
|
89
|
+
continue; // Skiping the removal of the border if the source is from word.
|
|
98
90
|
}
|
|
99
|
-
if (
|
|
100
|
-
|
|
91
|
+
else if (tableElm[i].classList.contains('e-rte-paste-excel-table')) {
|
|
92
|
+
tableElm[i].classList.remove('e-rte-paste-excel-table');
|
|
93
|
+
if (tableElm[i].getAttribute('border') === '0') {
|
|
94
|
+
tableElm[i].removeAttribute('border');
|
|
95
|
+
}
|
|
96
|
+
var tdElm = tableElm[i].querySelectorAll('td');
|
|
97
|
+
for (var j = 0; j < tdElm.length; j++) {
|
|
98
|
+
if (tdElm[j].style.borderLeft === 'none') {
|
|
99
|
+
tdElm[j].style.removeProperty('border-left');
|
|
100
|
+
}
|
|
101
|
+
if (tdElm[j].style.borderRight === 'none') {
|
|
102
|
+
tdElm[j].style.removeProperty('border-right');
|
|
103
|
+
}
|
|
104
|
+
if (tdElm[j].style.borderBottom === 'none') {
|
|
105
|
+
tdElm[j].style.removeProperty('border-bottom');
|
|
106
|
+
}
|
|
107
|
+
if (tdElm[j].style.borderTop === 'none') {
|
|
108
|
+
tdElm[j].style.removeProperty('border-top');
|
|
109
|
+
}
|
|
110
|
+
if (tdElm[j].style.border === 'none') {
|
|
111
|
+
tdElm[j].style.removeProperty('border');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
101
114
|
}
|
|
102
|
-
if (
|
|
103
|
-
|
|
115
|
+
else if (tableElm[i].classList.contains('e-rte-paste-onenote-table')) {
|
|
116
|
+
tableElm[i].classList.remove('e-rte-paste-onenote-table');
|
|
117
|
+
continue;
|
|
104
118
|
}
|
|
105
119
|
}
|
|
106
|
-
if (!tableElm[i].classList.contains('e-rte-table')) {
|
|
107
|
-
tableElm[i].classList.add('e-rte-table');
|
|
108
|
-
}
|
|
109
120
|
}
|
|
110
121
|
var imageElm = resultElm.querySelectorAll('img');
|
|
111
122
|
for (var i = 0; i < imageElm.length; i++) {
|
|
123
|
+
if (imageElm[i].classList.contains('e-rte-image-unsupported')) {
|
|
124
|
+
continue; // Should not add the class if the image is Broken.
|
|
125
|
+
}
|
|
112
126
|
if (!imageElm[i].classList.contains('e-rte-image')) {
|
|
113
127
|
imageElm[i].classList.add('e-rte-image');
|
|
114
128
|
}
|
|
@@ -179,3 +193,30 @@ export function getDefaultMDTbStatus() {
|
|
|
179
193
|
formats: null
|
|
180
194
|
};
|
|
181
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* @param {Range} range - specifies the range
|
|
198
|
+
* @returns {void}
|
|
199
|
+
* @hidden
|
|
200
|
+
*/
|
|
201
|
+
export function nestedListCleanUp(range) {
|
|
202
|
+
if (range.startContainer.parentElement.closest('ol,ul') !== null && range.endContainer.parentElement.closest('ol,ul') !== null) {
|
|
203
|
+
range.extractContents();
|
|
204
|
+
while ((range.startContainer.nodeName === "#text" ? range.startContainer.parentElement : range.startContainer).querySelectorAll('li :empty').length > 0 ||
|
|
205
|
+
(range.startContainer.nodeName === "#text" ? range.startContainer.parentElement : range.startContainer).querySelectorAll('ol :empty').length > 0) {
|
|
206
|
+
var emptyLI = (range.startContainer.nodeName === "#text" ? range.startContainer.parentElement : range.startContainer).querySelectorAll('li :empty');
|
|
207
|
+
if (emptyLI.length > 0) {
|
|
208
|
+
emptyLI.forEach(function (item) {
|
|
209
|
+
item.remove();
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
var liElem = (range.startContainer.nodeName === "#text" ? range.startContainer.parentElement : range.startContainer).querySelectorAll("li");
|
|
214
|
+
if (liElem.length > 0) {
|
|
215
|
+
liElem.forEach(function (item) {
|
|
216
|
+
if (item.firstChild.nodeName === "OL" || item.firstChild.nodeName === "UL") {
|
|
217
|
+
item.style.listStyleType = "none";
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
@@ -87,3 +87,9 @@ export var CLEAR_TYPE = 'clear-type';
|
|
|
87
87
|
* @hidden
|
|
88
88
|
*/
|
|
89
89
|
export var SELF_CLOSING_TAGS = ['area', 'base', 'br', 'embed', 'hr', 'img', 'input', 'param', 'source', 'track', 'wbr', 'iframe', 'td', 'table'];
|
|
90
|
+
/**
|
|
91
|
+
* Source
|
|
92
|
+
*
|
|
93
|
+
* @hidden
|
|
94
|
+
*/
|
|
95
|
+
export var PASTE_SOURCE = ['word', 'excel', 'onenote'];
|
|
@@ -79,4 +79,9 @@ export declare class EditorManager {
|
|
|
79
79
|
* @deprecated
|
|
80
80
|
*/
|
|
81
81
|
execCommand<T>(command: ExecCommand, value: T, event?: Event, callBack?: Function, text?: string | Node, exeValue?: T, selector?: string, enterAction?: string): void;
|
|
82
|
+
private editorMouseDown;
|
|
83
|
+
private tripleClickSelection;
|
|
84
|
+
private getParentBlockNode;
|
|
85
|
+
private getLastTextNode;
|
|
86
|
+
private getFirstTextNode;
|
|
82
87
|
}
|
|
@@ -68,6 +68,7 @@ var EditorManager = /** @class */ (function () {
|
|
|
68
68
|
this.observer.on(EVENTS.MODEL_CHANGED, this.onPropertyChanged, this);
|
|
69
69
|
this.observer.on(EVENTS.MS_WORD_CLEANUP, this.onWordPaste, this);
|
|
70
70
|
this.observer.on(EVENTS.ON_BEGIN, this.onBegin, this);
|
|
71
|
+
this.observer.on(EVENTS.MOUSE_DOWN, this.editorMouseDown, this);
|
|
71
72
|
};
|
|
72
73
|
EditorManager.prototype.onWordPaste = function (e) {
|
|
73
74
|
this.observer.notify(EVENTS.MS_WORD_CLEANUP_PLUGIN, e);
|
|
@@ -211,6 +212,64 @@ var EditorManager = /** @class */ (function () {
|
|
|
211
212
|
event: event, callBack: callBack });
|
|
212
213
|
}
|
|
213
214
|
};
|
|
215
|
+
EditorManager.prototype.editorMouseDown = function (e) {
|
|
216
|
+
if (e.args.detail === 3) {
|
|
217
|
+
this.tripleClickSelection(e.args);
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
EditorManager.prototype.tripleClickSelection = function (e) {
|
|
221
|
+
var range = this.nodeSelection.getRange(this.currentDocument);
|
|
222
|
+
var selection = this.nodeSelection.get(this.currentDocument);
|
|
223
|
+
if (selection.rangeCount > 0 && selection.toString() !== '') {
|
|
224
|
+
var startBlockNode = this.getParentBlockNode(range.startContainer);
|
|
225
|
+
var endBlockNode = this.getParentBlockNode(range.endContainer);
|
|
226
|
+
if (startBlockNode && endBlockNode && startBlockNode === endBlockNode) {
|
|
227
|
+
var newRange = this.currentDocument.createRange();
|
|
228
|
+
var startTextNode = this.getFirstTextNode(startBlockNode);
|
|
229
|
+
var endTextNode = this.getLastTextNode(endBlockNode);
|
|
230
|
+
if (startTextNode && endTextNode) {
|
|
231
|
+
newRange.setStart(startTextNode, 0);
|
|
232
|
+
newRange.setEnd(endTextNode, endTextNode.textContent.length);
|
|
233
|
+
this.nodeSelection.setRange(this.currentDocument, newRange);
|
|
234
|
+
e.preventDefault();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
EditorManager.prototype.getParentBlockNode = function (node) {
|
|
240
|
+
var treeWalker = this.currentDocument.createTreeWalker(this.editableElement, // root
|
|
241
|
+
NodeFilter.SHOW_ELEMENT, // whatToShow
|
|
242
|
+
{
|
|
243
|
+
acceptNode: function (currentNode) {
|
|
244
|
+
// Check if the node is a block element
|
|
245
|
+
var displayStyle = window.getComputedStyle(currentNode).display;
|
|
246
|
+
if (displayStyle.indexOf('inline') < 0) {
|
|
247
|
+
return NodeFilter.FILTER_ACCEPT;
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
return NodeFilter.FILTER_SKIP;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
treeWalker.currentNode = node;
|
|
255
|
+
var blockParent = treeWalker.parentNode();
|
|
256
|
+
return blockParent;
|
|
257
|
+
};
|
|
258
|
+
EditorManager.prototype.getLastTextNode = function (node) {
|
|
259
|
+
var treeWalker = this.currentDocument.createTreeWalker(node, NodeFilter.SHOW_TEXT, null);
|
|
260
|
+
var lastTextNode = null;
|
|
261
|
+
var currentNode = treeWalker.nextNode();
|
|
262
|
+
while (currentNode) {
|
|
263
|
+
lastTextNode = currentNode;
|
|
264
|
+
currentNode = treeWalker.nextNode();
|
|
265
|
+
}
|
|
266
|
+
return lastTextNode;
|
|
267
|
+
};
|
|
268
|
+
EditorManager.prototype.getFirstTextNode = function (node) {
|
|
269
|
+
var treeWalker = this.currentDocument.createTreeWalker(node, NodeFilter.SHOW_TEXT, null);
|
|
270
|
+
var firstTextNode = treeWalker.nextNode();
|
|
271
|
+
return firstTextNode;
|
|
272
|
+
};
|
|
214
273
|
return EditorManager;
|
|
215
274
|
}());
|
|
216
275
|
export { EditorManager };
|
|
@@ -113,9 +113,19 @@ var AudioCommand = /** @class */ (function () {
|
|
|
113
113
|
if (!isNOU(e.item.url)) {
|
|
114
114
|
sourceElement.setAttribute('src', e.item.url);
|
|
115
115
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
var fileExtension = e.item.fileName ? e.item.fileName.split('.').pop().toLowerCase() :
|
|
117
|
+
e.item.url ? e.item.url.split('.').pop().toLowerCase() : '';
|
|
118
|
+
if (fileExtension === 'opus') {
|
|
119
|
+
sourceElement.type = 'audio/ogg';
|
|
120
|
+
}
|
|
121
|
+
else if (fileExtension === 'm4a') {
|
|
122
|
+
sourceElement.type = 'audio/mp4';
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
sourceElement.type = e.item.fileName && e.item.fileName.split('.').length > 0 ?
|
|
126
|
+
'audio/' + e.item.fileName.split('.')[e.item.fileName.split('.').length - 1] :
|
|
127
|
+
e.item.url && e.item.url.split('.').length > 0 ? 'audio/' + e.item.url.split('.')[e.item.url.split('.').length - 1] : '';
|
|
128
|
+
}
|
|
119
129
|
};
|
|
120
130
|
AudioCommand.prototype.callBack = function (e) {
|
|
121
131
|
if (e.callBack) {
|
|
@@ -317,10 +317,14 @@ export declare class DOMNode {
|
|
|
317
317
|
/**
|
|
318
318
|
* blockNodes method
|
|
319
319
|
*
|
|
320
|
+
* @param {boolean} action - Optional Boolean that specifies the action is whether performed.
|
|
320
321
|
* @returns {Node[]} - returns the node array values
|
|
321
322
|
* @hidden
|
|
322
323
|
* @deprecated
|
|
323
324
|
*/
|
|
324
|
-
blockNodes(): Node[];
|
|
325
|
+
blockNodes(action?: boolean): Node[];
|
|
325
326
|
private ignoreTableTag;
|
|
327
|
+
private getPreBlockNodeCollection;
|
|
328
|
+
private getClosestInlineParent;
|
|
329
|
+
private wrapWithBlockNode;
|
|
326
330
|
}
|