@syncfusion/ej2-richtexteditor 24.1.41 → 24.1.43-569781
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +259 -259
- package/CHANGELOG.md +1927 -1775
- package/README.md +76 -76
- package/dist/ej2-richtexteditor.umd.min.js +1 -10
- package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es2015.js +2601 -1077
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +2706 -1181
- package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
- package/helpers/e2e/index.js +3 -3
- package/helpers/e2e/rte-helper.js +13 -13
- package/license +9 -9
- package/package.json +74 -74
- package/src/common/config.d.ts +7 -0
- package/src/common/config.js +11 -0
- package/src/common/constant.d.ts +6 -0
- package/src/common/constant.js +6 -0
- package/src/common/interface.d.ts +19 -7
- 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/classes.d.ts +1 -1
- package/src/editor-manager/base/classes.js +1 -1
- 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 +8 -3
- package/src/editor-manager/base/editor-manager.js +62 -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 +39 -35
- package/src/editor-manager/plugin/dom-node.js +203 -49
- package/src/editor-manager/plugin/format-painter-actions.d.ts +2 -1
- package/src/editor-manager/plugin/format-painter-actions.js +20 -2
- package/src/editor-manager/plugin/formats.d.ts +3 -2
- package/src/editor-manager/plugin/formats.js +40 -5
- package/src/editor-manager/plugin/image.d.ts +3 -3
- package/src/editor-manager/plugin/image.js +15 -19
- 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 +3 -2
- package/src/editor-manager/plugin/inserthtml.js +64 -7
- package/src/editor-manager/plugin/isformatted.d.ts +8 -8
- package/src/editor-manager/plugin/isformatted.js +8 -8
- package/src/editor-manager/plugin/link.d.ts +2 -2
- package/src/editor-manager/plugin/link.js +6 -3
- package/src/editor-manager/plugin/lists.d.ts +2 -2
- package/src/editor-manager/plugin/lists.js +123 -67
- package/src/editor-manager/plugin/ms-word-clean-up.d.ts +4 -1
- package/src/editor-manager/plugin/ms-word-clean-up.js +213 -86
- package/src/editor-manager/plugin/nodecutter.d.ts +6 -6
- package/src/editor-manager/plugin/nodecutter.js +8 -8
- package/src/editor-manager/plugin/selection-commands.d.ts +2 -1
- package/src/editor-manager/plugin/selection-commands.js +127 -4
- 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 -3
- package/src/editor-manager/plugin/table.js +35 -32
- package/src/editor-manager/plugin/toolbar-status.d.ts +4 -4
- package/src/editor-manager/plugin/toolbar-status.js +22 -12
- package/src/editor-manager/plugin/undo.d.ts +7 -6
- package/src/editor-manager/plugin/undo.js +27 -7
- 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 +12 -12
- package/src/rich-text-editor/actions/base-quick-toolbar.js +57 -20
- package/src/rich-text-editor/actions/base-toolbar.d.ts +3 -3
- package/src/rich-text-editor/actions/base-toolbar.js +35 -37
- package/src/rich-text-editor/actions/color-picker.d.ts +3 -2
- package/src/rich-text-editor/actions/color-picker.js +12 -2
- package/src/rich-text-editor/actions/count.d.ts +3 -3
- package/src/rich-text-editor/actions/count.js +4 -4
- package/src/rich-text-editor/actions/dropdown-buttons.d.ts +2 -2
- package/src/rich-text-editor/actions/dropdown-buttons.js +23 -4
- package/src/rich-text-editor/actions/emoji-picker.d.ts +1 -1
- package/src/rich-text-editor/actions/emoji-picker.js +4 -4
- package/src/rich-text-editor/actions/enter-key.js +4 -3
- package/src/rich-text-editor/actions/full-screen.d.ts +3 -3
- package/src/rich-text-editor/actions/full-screen.js +6 -5
- package/src/rich-text-editor/actions/html-editor.d.ts +5 -5
- package/src/rich-text-editor/actions/html-editor.js +129 -45
- package/src/rich-text-editor/actions/keyboard-model.d.ts +16 -16
- package/src/rich-text-editor/actions/keyboard.d.ts +1 -1
- package/src/rich-text-editor/actions/keyboard.js +23 -21
- package/src/rich-text-editor/actions/markdown-editor.d.ts +2 -2
- package/src/rich-text-editor/actions/markdown-editor.js +5 -3
- package/src/rich-text-editor/actions/paste-clean-up.d.ts +4 -1
- package/src/rich-text-editor/actions/paste-clean-up.js +87 -12
- package/src/rich-text-editor/actions/quick-toolbar.d.ts +16 -9
- package/src/rich-text-editor/actions/quick-toolbar.js +33 -18
- 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 +15 -16
- package/src/rich-text-editor/actions/toolbar.js +31 -100
- package/src/rich-text-editor/actions/xhtml-validation.d.ts +1 -1
- package/src/rich-text-editor/actions/xhtml-validation.js +1 -1
- package/src/rich-text-editor/base/classes.d.ts +121 -126
- package/src/rich-text-editor/base/classes.js +121 -126
- package/src/rich-text-editor/base/constant.d.ts +190 -150
- package/src/rich-text-editor/base/constant.js +359 -150
- 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 +87 -53
- package/src/rich-text-editor/base/interface.js +1 -1
- package/src/rich-text-editor/base/rich-text-editor-model.d.ts +891 -891
- package/src/rich-text-editor/base/rich-text-editor.d.ts +68 -65
- package/src/rich-text-editor/base/rich-text-editor.js +232 -199
- package/src/rich-text-editor/base/util.d.ts +5 -1
- package/src/rich-text-editor/base/util.js +47 -4
- package/src/rich-text-editor/formatter/formatter.d.ts +8 -8
- package/src/rich-text-editor/formatter/formatter.js +23 -12
- package/src/rich-text-editor/formatter/html-formatter.d.ts +2 -2
- package/src/rich-text-editor/formatter/html-formatter.js +15 -15
- package/src/rich-text-editor/formatter/markdown-formatter.d.ts +2 -2
- package/src/rich-text-editor/formatter/markdown-formatter.js +15 -15
- package/src/rich-text-editor/models/default-locale.js +30 -26
- package/src/rich-text-editor/models/iframe-settings-model.d.ts +26 -26
- package/src/rich-text-editor/models/iframe-settings.js +19 -19
- package/src/rich-text-editor/models/inline-mode-model.d.ts +11 -11
- package/src/rich-text-editor/models/inline-mode.js +19 -19
- package/src/rich-text-editor/models/items.js +2 -2
- package/src/rich-text-editor/models/toolbar-settings-model.d.ts +760 -760
- package/src/rich-text-editor/models/toolbar-settings.d.ts +1 -1
- package/src/rich-text-editor/models/toolbar-settings.js +20 -20
- package/src/rich-text-editor/renderer/audio-module.d.ts +2 -1
- package/src/rich-text-editor/renderer/audio-module.js +14 -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 +4 -2
- package/src/rich-text-editor/renderer/dialog-renderer.js +14 -3
- package/src/rich-text-editor/renderer/iframe-content-renderer.d.ts +4 -4
- package/src/rich-text-editor/renderer/iframe-content-renderer.js +19 -18
- package/src/rich-text-editor/renderer/image-module.d.ts +10 -2
- package/src/rich-text-editor/renderer/image-module.js +200 -168
- package/src/rich-text-editor/renderer/link-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/link-module.js +11 -2
- 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 +9 -2
- package/src/rich-text-editor/renderer/table-module.js +289 -137
- package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +13 -9
- package/src/rich-text-editor/renderer/toolbar-renderer.js +103 -24
- package/src/rich-text-editor/renderer/video-module.d.ts +4 -1
- package/src/rich-text-editor/renderer/video-module.js +62 -35
- package/src/rich-text-editor/renderer/view-source.d.ts +7 -6
- package/src/rich-text-editor/renderer/view-source.js +18 -10
- 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 +25 -22
- package/styles/_all.scss +1 -1
- package/styles/bootstrap-dark.css +153 -49
- package/styles/bootstrap.css +158 -57
- package/styles/bootstrap4.css +145 -45
- package/styles/bootstrap5-dark.css +150 -45
- package/styles/bootstrap5.css +150 -45
- package/styles/fabric-dark.css +139 -39
- package/styles/fabric.css +140 -40
- package/styles/fluent-dark.css +147 -41
- package/styles/fluent.css +147 -41
- package/styles/highcontrast-light.css +139 -39
- package/styles/highcontrast.css +143 -40
- package/styles/material-dark.css +143 -39
- package/styles/material.css +143 -39
- package/styles/material3-dark.css +155 -49
- package/styles/material3-dark.scss +1 -1
- package/styles/material3.css +155 -49
- package/styles/material3.scss +1 -1
- package/styles/rich-text-editor/_all.scss +2 -2
- package/styles/rich-text-editor/_bds-definition.scss +279 -0
- package/styles/rich-text-editor/_bootstrap-dark-definition.scss +281 -277
- package/styles/rich-text-editor/_bootstrap-definition.scss +337 -334
- package/styles/rich-text-editor/_bootstrap4-definition.scss +464 -460
- package/styles/rich-text-editor/_bootstrap5-definition.scss +266 -262
- package/styles/rich-text-editor/_fabric-dark-definition.scss +263 -259
- package/styles/rich-text-editor/_fabric-definition.scss +261 -257
- package/styles/rich-text-editor/_fluent-definition.scss +267 -263
- package/styles/rich-text-editor/_fusionnew-definition.scss +265 -261
- package/styles/rich-text-editor/_highcontrast-definition.scss +261 -257
- package/styles/rich-text-editor/_highcontrast-light-definition.scss +261 -257
- package/styles/rich-text-editor/_layout.scss +2249 -2147
- package/styles/rich-text-editor/_material-dark-definition.scss +266 -262
- package/styles/rich-text-editor/_material-definition.scss +264 -260
- package/styles/rich-text-editor/_material3-definition.scss +266 -262
- package/styles/rich-text-editor/_tailwind-definition.scss +261 -257
- package/styles/rich-text-editor/_theme.scss +906 -837
- package/styles/rich-text-editor/bootstrap-dark.css +153 -49
- package/styles/rich-text-editor/bootstrap.css +158 -57
- package/styles/rich-text-editor/bootstrap4.css +145 -45
- package/styles/rich-text-editor/bootstrap5-dark.css +150 -45
- package/styles/rich-text-editor/bootstrap5.css +150 -45
- package/styles/rich-text-editor/fabric-dark.css +139 -39
- package/styles/rich-text-editor/fabric.css +140 -40
- package/styles/rich-text-editor/fluent-dark.css +147 -41
- package/styles/rich-text-editor/fluent.css +147 -41
- package/styles/rich-text-editor/highcontrast-light.css +139 -39
- package/styles/rich-text-editor/highcontrast.css +143 -40
- package/styles/rich-text-editor/icons/_bds.scss +348 -0
- package/styles/rich-text-editor/icons/_bootstrap-dark.scss +349 -349
- package/styles/rich-text-editor/icons/_bootstrap.scss +349 -349
- package/styles/rich-text-editor/icons/_bootstrap4.scss +349 -349
- package/styles/rich-text-editor/icons/_bootstrap5.scss +348 -348
- package/styles/rich-text-editor/icons/_fabric-dark.scss +349 -349
- package/styles/rich-text-editor/icons/_fabric.scss +349 -349
- package/styles/rich-text-editor/icons/_fluent.scss +348 -348
- package/styles/rich-text-editor/icons/_fusionnew.scss +348 -348
- package/styles/rich-text-editor/icons/_highcontrast-light.scss +349 -349
- package/styles/rich-text-editor/icons/_highcontrast.scss +349 -349
- package/styles/rich-text-editor/icons/_material-dark.scss +349 -349
- package/styles/rich-text-editor/icons/_material.scss +349 -349
- package/styles/rich-text-editor/icons/_material3.scss +348 -348
- package/styles/rich-text-editor/icons/_tailwind.scss +348 -348
- package/styles/rich-text-editor/material-dark.css +143 -39
- package/styles/rich-text-editor/material.css +143 -39
- package/styles/rich-text-editor/material3-dark.css +155 -49
- package/styles/rich-text-editor/material3-dark.scss +1 -1
- package/styles/rich-text-editor/material3.css +155 -49
- package/styles/rich-text-editor/material3.scss +1 -1
- package/styles/rich-text-editor/tailwind-dark.css +194 -66
- package/styles/rich-text-editor/tailwind.css +194 -66
- package/styles/tailwind-dark.css +194 -66
- package/styles/tailwind.css +194 -66
- package/.github/PULL_REQUEST_TEMPLATE/Bug.md +0 -41
- package/.github/PULL_REQUEST_TEMPLATE/Feature.md +0 -27
- package/dist/ej2-richtexteditor.min.js +0 -10
- package/dist/global/ej2-richtexteditor.min.js +0 -11
- package/dist/global/ej2-richtexteditor.min.js.map +0 -1
- package/dist/global/index.d.ts +0 -14
- package/tslint.json +0 -111
|
@@ -22,7 +22,7 @@ var Count = /** @class */ (function () {
|
|
|
22
22
|
*
|
|
23
23
|
* @returns {void}
|
|
24
24
|
* @hidden
|
|
25
|
-
|
|
25
|
+
* @deprecated
|
|
26
26
|
*/
|
|
27
27
|
Count.prototype.renderCount = function () {
|
|
28
28
|
this.initializeInstance();
|
|
@@ -35,7 +35,7 @@ var Count = /** @class */ (function () {
|
|
|
35
35
|
};
|
|
36
36
|
Count.prototype.appendCount = function () {
|
|
37
37
|
var htmlText = this.parent.editorMode === 'Markdown' ? this.editPanel.value :
|
|
38
|
-
this.
|
|
38
|
+
(this.parent.getText().replace(/(\r\n|\n|\r|\t)/gm, ''));
|
|
39
39
|
if (this.parent.editorMode !== 'Markdown' && htmlText.indexOf('\u200B') !== -1) {
|
|
40
40
|
this.htmlLength = htmlText.replace(/\u200B/g, '').length;
|
|
41
41
|
}
|
|
@@ -63,7 +63,7 @@ var Count = /** @class */ (function () {
|
|
|
63
63
|
/**
|
|
64
64
|
* @returns {void}
|
|
65
65
|
* @hidden
|
|
66
|
-
|
|
66
|
+
* @deprecated
|
|
67
67
|
*/
|
|
68
68
|
Count.prototype.refresh = function () {
|
|
69
69
|
if (!isNullOrUndefined(this.editPanel)) {
|
|
@@ -79,7 +79,7 @@ var Count = /** @class */ (function () {
|
|
|
79
79
|
* @function destroy
|
|
80
80
|
* @returns {void}
|
|
81
81
|
* @hidden
|
|
82
|
-
|
|
82
|
+
* @deprecated
|
|
83
83
|
*/
|
|
84
84
|
Count.prototype.destroy = function () {
|
|
85
85
|
if (this.element && !isNullOrUndefined(this.parent.element.querySelector('.' + CLS_COUNT))) {
|
|
@@ -36,7 +36,7 @@ export declare class DropDownButtons {
|
|
|
36
36
|
* @param {IDropDownRenderArgs} args - specifies the arguments
|
|
37
37
|
* @returns {void}
|
|
38
38
|
* @hidden
|
|
39
|
-
|
|
39
|
+
* @deprecated
|
|
40
40
|
*/
|
|
41
41
|
renderDropDowns(args: IDropDownRenderArgs): void;
|
|
42
42
|
private getUpdateItems;
|
|
@@ -55,7 +55,7 @@ export declare class DropDownButtons {
|
|
|
55
55
|
*
|
|
56
56
|
* @returns {void}
|
|
57
57
|
* @hidden
|
|
58
|
-
|
|
58
|
+
* @deprecated
|
|
59
59
|
*/
|
|
60
60
|
destroyDropDowns(): void;
|
|
61
61
|
private setRtl;
|
|
@@ -3,7 +3,8 @@ import { RenderType } from '../base/enum';
|
|
|
3
3
|
import { getIndex } from '../base/util';
|
|
4
4
|
import * as events from '../base/constant';
|
|
5
5
|
import * as classes from '../base/classes';
|
|
6
|
-
import { getDropDownValue, getFormattedFontSize, getTooltipText } from '../base/util';
|
|
6
|
+
import { getDropDownValue, getFormattedFontSize, getTooltipText, getTooltipTextDropdownItems, getQuickToolbarTooltipText } from '../base/util';
|
|
7
|
+
import { fontNameLocale, formatsLocale, numberFormatListLocale, bulletFormatListLocale } from '../models/default-locale';
|
|
7
8
|
import * as model from '../models/items';
|
|
8
9
|
import { dispatchEvent } from '../base/util';
|
|
9
10
|
/**
|
|
@@ -24,10 +25,28 @@ var DropDownButtons = /** @class */ (function () {
|
|
|
24
25
|
if (item.cssClass) {
|
|
25
26
|
addClass([args.element], item.cssClass);
|
|
26
27
|
}
|
|
28
|
+
if (item.command === 'Images' || item.command === 'Videos' || item.command === 'Audios' || item.command === 'Table') {
|
|
29
|
+
args.element.setAttribute('title', getQuickToolbarTooltipText(item.text) !== '' ? getQuickToolbarTooltipText(item.text) : item.text);
|
|
30
|
+
}
|
|
27
31
|
if (item.command === 'Alignments' || item.subCommand === 'JustifyLeft'
|
|
28
32
|
|| item.subCommand === 'JustifyRight' || item.subCommand === 'JustifyCenter') {
|
|
29
33
|
args.element.setAttribute('title', getTooltipText(item.subCommand.toLocaleLowerCase(), this.locator));
|
|
30
34
|
}
|
|
35
|
+
if (item.command === 'Formats') {
|
|
36
|
+
args.element.setAttribute('title', getTooltipTextDropdownItems(item.subCommand.toLocaleLowerCase(), this.locator, formatsLocale));
|
|
37
|
+
}
|
|
38
|
+
if (item.command === 'Font') {
|
|
39
|
+
args.element.setAttribute('title', getTooltipTextDropdownItems(item.text.toLocaleLowerCase(), this.locator, fontNameLocale) !== '' ? getTooltipTextDropdownItems(item.text.toLocaleLowerCase(), this.locator, fontNameLocale) : item.text);
|
|
40
|
+
}
|
|
41
|
+
if (item.subCommand === 'BulletFormatList') {
|
|
42
|
+
args.element.setAttribute('title', getTooltipTextDropdownItems(item.text.toLocaleLowerCase(), this.locator, bulletFormatListLocale) !== '' ? getTooltipTextDropdownItems(item.text.toLocaleLowerCase(), this.locator, bulletFormatListLocale) : item.text);
|
|
43
|
+
}
|
|
44
|
+
if (item.subCommand === 'NumberFormatList') {
|
|
45
|
+
args.element.setAttribute('title', (getTooltipTextDropdownItems(item.text.toLocaleLowerCase(), this.locator, numberFormatListLocale)) !== '' ? getTooltipTextDropdownItems(item.text.toLocaleLowerCase(), this.locator, numberFormatListLocale) : item.text);
|
|
46
|
+
}
|
|
47
|
+
if (item.subCommand === 'FontSize') {
|
|
48
|
+
args.element.setAttribute('title', getTooltipTextDropdownItems(item.value.toLocaleLowerCase(), null, null, this.parent));
|
|
49
|
+
}
|
|
31
50
|
};
|
|
32
51
|
DropDownButtons.prototype.dropdownContent = function (width, type, content) {
|
|
33
52
|
return ('<span style="display: inline-flex;' + 'width:' + ((type === 'quick') ? 'auto' : width) + '" >' +
|
|
@@ -39,7 +58,7 @@ var DropDownButtons = /** @class */ (function () {
|
|
|
39
58
|
* @param {IDropDownRenderArgs} args - specifies the arguments
|
|
40
59
|
* @returns {void}
|
|
41
60
|
* @hidden
|
|
42
|
-
|
|
61
|
+
* @deprecated
|
|
43
62
|
*/
|
|
44
63
|
DropDownButtons.prototype.renderDropDowns = function (args) {
|
|
45
64
|
var _this = this;
|
|
@@ -134,7 +153,7 @@ var DropDownButtons = /** @class */ (function () {
|
|
|
134
153
|
if (isNullOrUndefined(targetElement) || targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {
|
|
135
154
|
return;
|
|
136
155
|
}
|
|
137
|
-
var fontsize = _this.parent.fontSize.items.slice();
|
|
156
|
+
var fontsize = !isNullOrUndefined(_this.fontSizeDropDown) && !isNullOrUndefined(_this.fontSizeDropDown.items) && _this.fontSizeDropDown.items.length > 0 ? _this.fontSizeDropDown.items : JSON.parse(JSON.stringify(_this.parent.fontSize.items.slice()));
|
|
138
157
|
fontsize.forEach(function (item) {
|
|
139
158
|
Object.defineProperties(item, {
|
|
140
159
|
command: { value: 'Font', enumerable: true }, subCommand: { value: 'FontSize', enumerable: true }
|
|
@@ -406,7 +425,7 @@ var DropDownButtons = /** @class */ (function () {
|
|
|
406
425
|
*
|
|
407
426
|
* @returns {void}
|
|
408
427
|
* @hidden
|
|
409
|
-
|
|
428
|
+
* @deprecated
|
|
410
429
|
*/
|
|
411
430
|
DropDownButtons.prototype.destroyDropDowns = function () {
|
|
412
431
|
if (this.formatDropDown) {
|
|
@@ -19,7 +19,7 @@ var EmojiPicker = /** @class */ (function () {
|
|
|
19
19
|
* @function destroy
|
|
20
20
|
* @returns {void}
|
|
21
21
|
* @hidden
|
|
22
|
-
|
|
22
|
+
* @deprecated
|
|
23
23
|
*/
|
|
24
24
|
EmojiPicker.prototype.destroy = function () {
|
|
25
25
|
this.removeEventListener();
|
|
@@ -61,10 +61,10 @@ var EmojiPicker = /** @class */ (function () {
|
|
|
61
61
|
}
|
|
62
62
|
this.popDiv = this.parent.createElement('div', { className: 'e-rte-emojipicker-popup', id: this.parent.getID() + '_emojiPicker' });
|
|
63
63
|
if (!isNOU(this.parent.getToolbar()) && !this.parent.inlineMode.enable) {
|
|
64
|
-
this.parent.getToolbar().appendChild(this.popDiv);
|
|
64
|
+
this.parent.getToolbar().parentElement.appendChild(this.popDiv);
|
|
65
65
|
}
|
|
66
66
|
else if (this.parent.inlineMode.enable) {
|
|
67
|
-
this.parent.
|
|
67
|
+
this.parent.element.appendChild(this.popDiv);
|
|
68
68
|
}
|
|
69
69
|
EventHandler.add(this.popDiv, 'keydown', this.onKeyDown, this);
|
|
70
70
|
EventHandler.add(this.popDiv, 'keyup', this.searchFilter, this);
|
|
@@ -643,7 +643,7 @@ var EmojiPicker = /** @class */ (function () {
|
|
|
643
643
|
noEmojiObj.style.margin = '55px';
|
|
644
644
|
emojipickerAll.appendChild(noEmojiObj);
|
|
645
645
|
}
|
|
646
|
-
else if (!noEMoji && this.parent.element.querySelector('.e-rte-emojiSearch-noEmoji') || (inputValue === '' && value === ':')) {
|
|
646
|
+
else if (!noEMoji && this.parent.element.querySelector('.e-rte-emojiSearch-noEmoji') || (inputValue === '' && value === ':') || (inputValue === '' && this.parent.element.querySelector('.e-rte-emojiSearch-noEmoji'))) {
|
|
647
647
|
emojipickerAll.removeChild(this.parent.element.querySelector('.e-rte-emojiSearch-noEmoji'));
|
|
648
648
|
}
|
|
649
649
|
emojipickerAll.appendChild(emojiBtnDiv);
|
|
@@ -50,7 +50,8 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
50
50
|
isTableEnter = blockElement.tagName === 'TD' || blockElement.tagName === 'TBODY' ? false : true;
|
|
51
51
|
}
|
|
52
52
|
if (e.args.which === 13 && !e.args.ctrlKey && (!Browser.isDevice ? e.args.code === 'Enter' : e.args.key === 'Enter')) {
|
|
53
|
-
if (isNOU(this.startNode.closest('LI, UL, OL')) && isNOU(this.endNode.closest('LI, UL, OL')) &&
|
|
53
|
+
if (isNOU(this.startNode.closest('LI, UL, OL')) && isNOU(this.endNode.closest('LI, UL, OL')) &&
|
|
54
|
+
isNOU(this.startNode.closest('.e-img-inner')) && isTableEnter &&
|
|
54
55
|
isNOU(this.startNode.closest('PRE')) && isNOU(this.endNode.closest('PRE'))) {
|
|
55
56
|
var shiftKey_1 = e.args.shiftKey;
|
|
56
57
|
var actionBeginArgs = {
|
|
@@ -485,10 +486,10 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
485
486
|
}
|
|
486
487
|
var previousBlockNode = this.parent.formatter.editorManager.domNode.blockNodes()[0].previousSibling;
|
|
487
488
|
var nextBlockNode = this.parent.formatter.editorManager.domNode.blockNodes()[0].nextSibling;
|
|
488
|
-
if (!isNOU(previousBlockNode) && previousBlockNode.hasAttribute('style')) {
|
|
489
|
+
if (!isNOU(previousBlockNode) && previousBlockNode.nodeName !== '#text' && previousBlockNode.hasAttribute('style') && previousBlockNode.nodeName !== 'TABLE') {
|
|
489
490
|
insertElem.setAttribute('style', previousBlockNode.getAttribute('style'));
|
|
490
491
|
}
|
|
491
|
-
if (isNOU(previousBlockNode) && !isNOU(nextBlockNode) && nextBlockNode.hasAttribute('style')) {
|
|
492
|
+
if (isNOU(previousBlockNode) && !isNOU(nextBlockNode) && nextBlockNode.nodeName !== '#text' && nextBlockNode.hasAttribute('style') && nextBlockNode.nodeName !== 'TABLE') {
|
|
492
493
|
insertElem.setAttribute('style', nextBlockNode.getAttribute('style'));
|
|
493
494
|
}
|
|
494
495
|
return insertElem;
|
|
@@ -13,7 +13,7 @@ export declare class FullScreen {
|
|
|
13
13
|
* @param {MouseEvent} event - specifies the mouse event
|
|
14
14
|
* @returns {void}
|
|
15
15
|
* @hidden
|
|
16
|
-
|
|
16
|
+
* @deprecated
|
|
17
17
|
*/
|
|
18
18
|
showFullScreen(event?: MouseEvent | KeyboardEventArgs): void;
|
|
19
19
|
/**
|
|
@@ -22,7 +22,7 @@ export declare class FullScreen {
|
|
|
22
22
|
* @param {MouseEvent} event - specifies the mouse event
|
|
23
23
|
* @returns {void}
|
|
24
24
|
* @hidden
|
|
25
|
-
|
|
25
|
+
* @deprecated
|
|
26
26
|
*/
|
|
27
27
|
hideFullScreen(event?: MouseEvent | KeyboardEventArgs): void;
|
|
28
28
|
private toggleParentOverflow;
|
|
@@ -34,7 +34,7 @@ export declare class FullScreen {
|
|
|
34
34
|
*
|
|
35
35
|
* @returns {void}
|
|
36
36
|
* @hidden
|
|
37
|
-
|
|
37
|
+
* @deprecated
|
|
38
38
|
*/
|
|
39
39
|
destroy(): void;
|
|
40
40
|
private moduleDestroy;
|
|
@@ -17,7 +17,7 @@ var FullScreen = /** @class */ (function () {
|
|
|
17
17
|
* @param {MouseEvent} event - specifies the mouse event
|
|
18
18
|
* @returns {void}
|
|
19
19
|
* @hidden
|
|
20
|
-
|
|
20
|
+
* @deprecated
|
|
21
21
|
*/
|
|
22
22
|
FullScreen.prototype.showFullScreen = function (event) {
|
|
23
23
|
var _this = this;
|
|
@@ -46,7 +46,7 @@ var FullScreen = /** @class */ (function () {
|
|
|
46
46
|
_this.parent.element.classList.add(classes.CLS_FULL_SCREEN);
|
|
47
47
|
_this.toggleParentOverflow(true);
|
|
48
48
|
var isExpand = _this.parent.element.querySelectorAll('.e-toolbar-extended.e-popup-open').length > 0 ? true : false;
|
|
49
|
-
_this.parent.setContentHeight(
|
|
49
|
+
_this.parent.setContentHeight('Maximize', isExpand);
|
|
50
50
|
if (_this.parent.toolbarModule) {
|
|
51
51
|
if (!_this.parent.getBaseToolbarObject().toolbarObj.items[0].properties) {
|
|
52
52
|
_this.parent.getBaseToolbarObject().toolbarObj.removeItems(0);
|
|
@@ -72,7 +72,7 @@ var FullScreen = /** @class */ (function () {
|
|
|
72
72
|
* @param {MouseEvent} event - specifies the mouse event
|
|
73
73
|
* @returns {void}
|
|
74
74
|
* @hidden
|
|
75
|
-
|
|
75
|
+
* @deprecated
|
|
76
76
|
*/
|
|
77
77
|
FullScreen.prototype.hideFullScreen = function (event) {
|
|
78
78
|
var _this = this;
|
|
@@ -98,7 +98,7 @@ var FullScreen = /** @class */ (function () {
|
|
|
98
98
|
removeClass([elem[i]], ['e-rte-overflow']);
|
|
99
99
|
}
|
|
100
100
|
var isExpand = _this.parent.element.querySelectorAll('.e-toolbar-extended.e-popup-open').length > 0 ? true : false;
|
|
101
|
-
_this.parent.setContentHeight(
|
|
101
|
+
_this.parent.setContentHeight('Minimize', isExpand);
|
|
102
102
|
if (_this.parent.toolbarModule) {
|
|
103
103
|
if (!_this.parent.getBaseToolbarObject().toolbarObj.items[0].properties) {
|
|
104
104
|
_this.parent.getBaseToolbarObject().toolbarObj.removeItems(0);
|
|
@@ -112,6 +112,7 @@ var FullScreen = /** @class */ (function () {
|
|
|
112
112
|
_this.parent.toolbarModule.addFixedTBarClass();
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
+
_this.parent.refreshUI();
|
|
115
116
|
_this.parent.trigger(events.actionComplete, { requestType: 'Minimize', targetItem: 'Minimize', args: event });
|
|
116
117
|
}
|
|
117
118
|
});
|
|
@@ -161,7 +162,7 @@ var FullScreen = /** @class */ (function () {
|
|
|
161
162
|
*
|
|
162
163
|
* @returns {void}
|
|
163
164
|
* @hidden
|
|
164
|
-
|
|
165
|
+
* @deprecated
|
|
165
166
|
*/
|
|
166
167
|
FullScreen.prototype.destroy = function () {
|
|
167
168
|
if (isNOU(this.parent)) {
|
|
@@ -22,7 +22,6 @@ export declare class HtmlEditor {
|
|
|
22
22
|
private saveSelection;
|
|
23
23
|
xhtmlValidation: XhtmlValidation;
|
|
24
24
|
private clickTimeout;
|
|
25
|
-
private tooltipTargetEle;
|
|
26
25
|
constructor(parent?: IRichTextEditor, serviceLocator?: ServiceLocator);
|
|
27
26
|
/**
|
|
28
27
|
* Destroys the Markdown.
|
|
@@ -30,14 +29,14 @@ export declare class HtmlEditor {
|
|
|
30
29
|
* @function destroy
|
|
31
30
|
* @returns {void}
|
|
32
31
|
* @hidden
|
|
33
|
-
|
|
32
|
+
* @deprecated
|
|
34
33
|
*/
|
|
35
34
|
destroy(): void;
|
|
36
35
|
/**
|
|
37
36
|
* @param {string} value - specifies the string value
|
|
38
37
|
* @returns {void}
|
|
39
38
|
* @hidden
|
|
40
|
-
|
|
39
|
+
* @deprecated
|
|
41
40
|
*/
|
|
42
41
|
sanitizeHelper(value: string): string;
|
|
43
42
|
private addEventListener;
|
|
@@ -45,6 +44,8 @@ export declare class HtmlEditor {
|
|
|
45
44
|
private onSelectionSave;
|
|
46
45
|
private onSelectionRestore;
|
|
47
46
|
private isTableClassAdded;
|
|
47
|
+
private onHandleFontsizeChange;
|
|
48
|
+
private convertFontSize;
|
|
48
49
|
private onKeyUp;
|
|
49
50
|
private onKeyDown;
|
|
50
51
|
private isOrderedList;
|
|
@@ -57,7 +58,6 @@ export declare class HtmlEditor {
|
|
|
57
58
|
private getRangeLiNode;
|
|
58
59
|
private onPaste;
|
|
59
60
|
private spaceLink;
|
|
60
|
-
private mouseOutHandler;
|
|
61
61
|
private onToolbarClick;
|
|
62
62
|
private renderColorPicker;
|
|
63
63
|
private instantiateRenderer;
|
|
@@ -69,7 +69,7 @@ export declare class HtmlEditor {
|
|
|
69
69
|
* @param {RichTextEditorModel} e - specifies the editor model
|
|
70
70
|
* @returns {void}
|
|
71
71
|
* @hidden
|
|
72
|
-
|
|
72
|
+
* @deprecated
|
|
73
73
|
*/
|
|
74
74
|
protected onPropertyChanged(e: {
|
|
75
75
|
[key: string]: RichTextEditorModel;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as events from '../base/constant';
|
|
2
|
-
import { isNullOrUndefined, closest, attributes, removeClass, addClass, Browser, detach
|
|
2
|
+
import { isNullOrUndefined, closest, attributes, removeClass, addClass, Browser, detach } from '@syncfusion/ej2-base';
|
|
3
3
|
import { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';
|
|
4
4
|
import { HTMLFormatter } from '../formatter/html-formatter';
|
|
5
5
|
import { RenderType } from '../base/enum';
|
|
@@ -14,6 +14,7 @@ import { getTextNodesUnder, sanitizeHelper, getDefaultValue } from '../base/util
|
|
|
14
14
|
import { isIDevice } from '../../common/util';
|
|
15
15
|
import { XhtmlValidation } from './xhtml-validation';
|
|
16
16
|
import { ON_BEGIN } from './../../common/constant';
|
|
17
|
+
import * as CONSTANT from '../base/constant';
|
|
17
18
|
/**
|
|
18
19
|
* `HtmlEditor` module is used to HTML editor
|
|
19
20
|
*/
|
|
@@ -33,7 +34,7 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
33
34
|
* @function destroy
|
|
34
35
|
* @returns {void}
|
|
35
36
|
* @hidden
|
|
36
|
-
|
|
37
|
+
* @deprecated
|
|
37
38
|
*/
|
|
38
39
|
HtmlEditor.prototype.destroy = function () {
|
|
39
40
|
this.removeEventListener();
|
|
@@ -42,7 +43,7 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
42
43
|
* @param {string} value - specifies the string value
|
|
43
44
|
* @returns {void}
|
|
44
45
|
* @hidden
|
|
45
|
-
|
|
46
|
+
* @deprecated
|
|
46
47
|
*/
|
|
47
48
|
HtmlEditor.prototype.sanitizeHelper = function (value) {
|
|
48
49
|
value = sanitizeHelper(value, this.parent);
|
|
@@ -70,6 +71,7 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
70
71
|
this.parent.on(events.readOnlyMode, this.updateReadOnly, this);
|
|
71
72
|
this.parent.on(events.paste, this.onPaste, this);
|
|
72
73
|
this.parent.on(events.tableclass, this.isTableClassAdded, this);
|
|
74
|
+
this.parent.on(events.onHandleFontsizeChange, this.onHandleFontsizeChange, this);
|
|
73
75
|
};
|
|
74
76
|
HtmlEditor.prototype.updateReadOnly = function () {
|
|
75
77
|
if (this.parent.readonly) {
|
|
@@ -88,7 +90,9 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
88
90
|
};
|
|
89
91
|
HtmlEditor.prototype.onSelectionRestore = function (e) {
|
|
90
92
|
this.parent.isBlur = false;
|
|
91
|
-
this.
|
|
93
|
+
if (isNOU(this.saveSelection) || isNOU(closest(this.saveSelection.range.startContainer.parentElement, ".e-img-caption")) ? true : !(closest(this.saveSelection.range.startContainer.parentElement, ".e-img-caption").getAttribute("contenteditable") == "false")) {
|
|
94
|
+
this.contentRenderer.getEditPanel().focus();
|
|
95
|
+
}
|
|
92
96
|
if (isNullOrUndefined(e.items) || e.items) {
|
|
93
97
|
this.saveSelection.restore();
|
|
94
98
|
}
|
|
@@ -96,11 +100,91 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
96
100
|
HtmlEditor.prototype.isTableClassAdded = function () {
|
|
97
101
|
var tableElement = this.parent.inputElement.querySelectorAll('table');
|
|
98
102
|
for (var i = 0; i < tableElement.length; i++) {
|
|
99
|
-
if (!tableElement[i].classList.contains('e-rte-table')) {
|
|
103
|
+
if (!tableElement[i].classList.contains('e-rte-table') && !tableElement[i].classList.contains('e-rte-paste-table')) {
|
|
100
104
|
tableElement[i].classList.add('e-rte-table');
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
107
|
};
|
|
108
|
+
HtmlEditor.prototype.onHandleFontsizeChange = function (e) {
|
|
109
|
+
var keyboardArgs = e.args;
|
|
110
|
+
var args = { name: 'dropDownSelect' };
|
|
111
|
+
args.item = {
|
|
112
|
+
command: 'Font',
|
|
113
|
+
subCommand: 'FontSize'
|
|
114
|
+
};
|
|
115
|
+
var items = this.parent.fontSize.items;
|
|
116
|
+
var activeElem;
|
|
117
|
+
if (this.parent.toolbarModule && this.parent.toolbarModule.dropDownModule &&
|
|
118
|
+
this.parent.toolbarModule.dropDownModule.fontSizeDropDown && !isNOU(this.parent.toolbarModule.dropDownModule.fontSizeDropDown.activeElem[0].textContent) && this.parent.toolbarModule.dropDownModule.fontSizeDropDown.activeElem[0].textContent !== '') {
|
|
119
|
+
activeElem = this.parent.toolbarModule.dropDownModule.fontSizeDropDown.activeElem[0].textContent;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
var fontSizeValue = void 0;
|
|
123
|
+
var selection = this.parent.contentModule.getDocument().getSelection();
|
|
124
|
+
if (selection && selection.focusNode && selection.focusNode.parentElement) {
|
|
125
|
+
fontSizeValue = document.defaultView.getComputedStyle(selection.focusNode.parentElement, null).getPropertyValue('font-size');
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
fontSizeValue = this.parent.fontSize.width;
|
|
129
|
+
}
|
|
130
|
+
fontSizeValue = isNOU(fontSizeValue) ? this.parent.fontSize.width : fontSizeValue;
|
|
131
|
+
var actualTxtFontValues = fontSizeValue.match(/^([\d.]+)(\D+)$/);
|
|
132
|
+
var size_1 = parseInt(actualTxtFontValues[1], 10);
|
|
133
|
+
var unit = actualTxtFontValues[2];
|
|
134
|
+
var defaultFontValues = items[0].value.match(/^([\d.]+)(\D+)$/);
|
|
135
|
+
if (defaultFontValues[2] === unit) {
|
|
136
|
+
var index = items.findIndex(function (_a) {
|
|
137
|
+
var value = _a.value;
|
|
138
|
+
return parseInt(value, 10) >= size_1;
|
|
139
|
+
});
|
|
140
|
+
activeElem = items[index].text;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
var convertedSize_1 = this.convertFontSize(size_1, unit, defaultFontValues[2]);
|
|
144
|
+
var index = items.findIndex(function (_a) {
|
|
145
|
+
var value = _a.value;
|
|
146
|
+
return parseInt(value, 10) >= convertedSize_1;
|
|
147
|
+
});
|
|
148
|
+
activeElem = items[index].text;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
var fontIndex = items.findIndex(function (size) { return size.text === activeElem; });
|
|
152
|
+
if (keyboardArgs.action === 'increase-fontsize' && fontIndex !== -1) {
|
|
153
|
+
if (fontIndex >= items.length - 1) {
|
|
154
|
+
var fontValues = items[fontIndex].value.match(/^([\d.]+)(\D+)$/);
|
|
155
|
+
if (fontValues) {
|
|
156
|
+
var size = parseInt(fontValues[1], 10);
|
|
157
|
+
var unit = fontValues[2];
|
|
158
|
+
var roundedSize = size % 10 === 0 ? Math.ceil((size + 1) / 10) * 10 : Math.ceil(size / 10) * 10;
|
|
159
|
+
args.item.value = roundedSize.toLocaleString() + unit;
|
|
160
|
+
args.item.text = roundedSize.toLocaleString() + ' ' + unit;
|
|
161
|
+
}
|
|
162
|
+
this.parent.fontSize.items.push(args.item);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
args.item.value = items[fontIndex + 1].value;
|
|
166
|
+
args.item.text = items[fontIndex + 1].text;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else if (keyboardArgs.action === 'decrease-fontsize' && fontIndex !== -1 && fontIndex > 0) {
|
|
170
|
+
args.item.value = items[fontIndex - 1].value;
|
|
171
|
+
args.item.text = items[fontIndex - 1].text;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
if (fontIndex >= 0 && fontIndex < items.length && items[fontIndex]) {
|
|
175
|
+
args.item.value = items[fontIndex].value;
|
|
176
|
+
args.item.text = items[fontIndex].text;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
this.parent.formatter.process(this.parent, args, keyboardArgs);
|
|
180
|
+
};
|
|
181
|
+
HtmlEditor.prototype.convertFontSize = function (value, originalUnit, targetUnit) {
|
|
182
|
+
if (CONSTANT.supportedUnits.indexOf(originalUnit) !== -1 || CONSTANT.supportedUnits.indexOf(targetUnit) !== -1) {
|
|
183
|
+
originalUnit = 'px';
|
|
184
|
+
}
|
|
185
|
+
var convertedValue = value * CONSTANT.conversionFactors[originalUnit][targetUnit];
|
|
186
|
+
return convertedValue;
|
|
187
|
+
};
|
|
104
188
|
HtmlEditor.prototype.onKeyUp = function (e) {
|
|
105
189
|
var args = e.args;
|
|
106
190
|
var restrictKeys = [8, 9, 13, 16, 17, 18, 20, 27, 37, 38, 39, 40, 44, 45, 46, 91,
|
|
@@ -108,9 +192,12 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
108
192
|
var range = this.parent.getRange();
|
|
109
193
|
// eslint-disable-next-line
|
|
110
194
|
var regEx = new RegExp(String.fromCharCode(8203), 'g');
|
|
195
|
+
var isEmptyNode = range.startContainer === range.endContainer && range.startOffset === range.endOffset &&
|
|
196
|
+
range.startOffset === 1 && range.startContainer.textContent.length === 1 && range.startContainer.textContent.charCodeAt(0) == 8203 &&
|
|
197
|
+
range.startContainer.textContent.replace(regEx, '').length === 0;
|
|
111
198
|
var pointer;
|
|
112
199
|
var isRootParent = false;
|
|
113
|
-
if (restrictKeys.indexOf(args.keyCode) < 0 && !args.shiftKey && !args.ctrlKey && !args.altKey) {
|
|
200
|
+
if (restrictKeys.indexOf(args.keyCode) < 0 && !args.shiftKey && !args.ctrlKey && !args.altKey && !isEmptyNode) {
|
|
114
201
|
pointer = range.startOffset;
|
|
115
202
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
116
203
|
range.startContainer.nodeName === '#text' ? range.startContainer.parentElement !== this.parent.inputElement ? range.startContainer.parentElement.classList.add('currentStartMark')
|
|
@@ -222,7 +309,7 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
222
309
|
e.args.keyCode === 13) {
|
|
223
310
|
this.spaceLink(e.args);
|
|
224
311
|
if (this.parent.editorMode === 'HTML' && !this.parent.readonly) {
|
|
225
|
-
var currentLength = this.parent.getText().trim().replace(/(\r\n|\n|\r)/gm, '').replace(/\u200B/g, '').length;
|
|
312
|
+
var currentLength = this.parent.getText().trim().replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, '').length;
|
|
226
313
|
var selectionLength = this.parent.getSelection().length;
|
|
227
314
|
var totalLength = (currentLength - selectionLength) + 1;
|
|
228
315
|
if (!(this.parent.maxLength === -1 || totalLength <= this.parent.maxLength) &&
|
|
@@ -233,8 +320,13 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
233
320
|
else {
|
|
234
321
|
this.parent.notify(events.enterHandler, { args: e.args });
|
|
235
322
|
var newRange = this.parent.getRange();
|
|
236
|
-
if (!
|
|
237
|
-
newRange.startContainer.
|
|
323
|
+
if (!isNullOrUndefined(newRange.startContainer) && this.parent.height !== 'auto' && newRange.startContainer.nodeName !== '#text'
|
|
324
|
+
&& !this.parent.iframeSettings.enable && newRange.startContainer.getBoundingClientRect().bottom > this.parent.element.getBoundingClientRect().bottom) {
|
|
325
|
+
this.parent.element.querySelector('.e-rte-content').scrollTop += newRange.startContainer.getBoundingClientRect().bottom - this.parent.element.getBoundingClientRect().bottom;
|
|
326
|
+
}
|
|
327
|
+
else if (!isNullOrUndefined(newRange.startContainer) && this.parent.height === 'auto' && newRange.startContainer.nodeName !== '#text'
|
|
328
|
+
&& !this.parent.iframeSettings.enable && window.innerHeight < newRange.startContainer.getBoundingClientRect().top) {
|
|
329
|
+
newRange.startContainer.scrollIntoView({ block: 'end', inline: 'nearest' });
|
|
238
330
|
}
|
|
239
331
|
}
|
|
240
332
|
}
|
|
@@ -316,11 +408,13 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
316
408
|
currentRange.startContainer.previousSibling.nodeName === 'SPAN') {
|
|
317
409
|
isPreviousNotContentEditable = currentRange.startContainer.previousSibling.contentEditable === 'false' ? false : true;
|
|
318
410
|
}
|
|
411
|
+
var checkNode = currentRange.startContainer.nodeName === '#text' ? currentRange.startContainer.parentElement : currentRange.startContainer;
|
|
412
|
+
var isSelectedPositionNotStart = closest(currentRange.startContainer.nodeName === '#text' ? currentRange.startContainer.parentElement : currentRange.startContainer, 'li') ?
|
|
413
|
+
checkNode.nodeName !== 'li' && isNOU(checkNode.previousSibling) : true;
|
|
319
414
|
if (e.args.code === 'Backspace' && e.args.keyCode === 8 && currentRange.startOffset === 0 &&
|
|
320
415
|
currentRange.endOffset === 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.textContent.length > 0 &&
|
|
321
416
|
currentRange.startContainer.parentElement.tagName !== 'TD' && currentRange.startContainer.parentElement.tagName !== 'TH' &&
|
|
322
|
-
isPreviousNotContentEditable) {
|
|
323
|
-
var checkNode = currentRange.startContainer.nodeName === '#text' ? currentRange.startContainer.parentElement : currentRange.startContainer;
|
|
417
|
+
isPreviousNotContentEditable && isSelectedPositionNotStart) {
|
|
324
418
|
if ((!this.parent.formatter.editorManager.domNode.isBlockNode(checkNode) &&
|
|
325
419
|
!isNOU(checkNode.previousSibling) && checkNode.previousSibling.nodeName === 'BR') ||
|
|
326
420
|
(!isNOU(currentRange.startContainer.previousSibling) && currentRange.startContainer.previousSibling.nodeName === 'BR')) {
|
|
@@ -331,8 +425,9 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
331
425
|
var liElement = this.getRangeLiNode(currentRange.startContainer);
|
|
332
426
|
if (liElement.previousElementSibling && liElement.previousElementSibling.childElementCount > 0) {
|
|
333
427
|
this.oldRangeElement = liElement.previousElementSibling.lastElementChild.nodeName === 'BR' ?
|
|
334
|
-
liElement.previousElementSibling : liElement.previousElementSibling.
|
|
335
|
-
if (!
|
|
428
|
+
liElement.previousElementSibling : liElement.previousElementSibling.lastChild;
|
|
429
|
+
if (!isNOU(liElement.lastElementChild) && liElement.lastElementChild.nodeName !== 'BR' &&
|
|
430
|
+
isNOU(liElement.lastElementChild.previousSibling) && liElement.lastChild.nodeName !== "#text") {
|
|
336
431
|
this.rangeElement = liElement.lastElementChild;
|
|
337
432
|
isLiElement = true;
|
|
338
433
|
}
|
|
@@ -342,13 +437,13 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
342
437
|
}
|
|
343
438
|
}
|
|
344
439
|
else if (this.rangeElement === this.parent.inputElement || this.rangeElement.tagName === 'TABLE' ||
|
|
345
|
-
(!
|
|
440
|
+
(!isNOU(this.rangeElement.previousElementSibling) && this.rangeElement.previousElementSibling.tagName === 'TABLE')) {
|
|
346
441
|
return;
|
|
347
442
|
}
|
|
348
443
|
else {
|
|
349
444
|
this.oldRangeElement = this.rangeElement.previousElementSibling;
|
|
350
445
|
}
|
|
351
|
-
if (
|
|
446
|
+
if (isNOU(this.oldRangeElement)) {
|
|
352
447
|
return;
|
|
353
448
|
}
|
|
354
449
|
else {
|
|
@@ -357,7 +452,7 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
357
452
|
? this.oldRangeElement.lastElementChild.lastElementChild :
|
|
358
453
|
this.oldRangeElement.lastElementChild;
|
|
359
454
|
}
|
|
360
|
-
var lastNode = this.oldRangeElement.lastChild;
|
|
455
|
+
var lastNode = this.oldRangeElement.lastChild ? this.oldRangeElement.lastChild : this.oldRangeElement;
|
|
361
456
|
while (lastNode.nodeType !== 3 && lastNode.nodeName !== '#text' &&
|
|
362
457
|
lastNode.nodeName !== 'BR') {
|
|
363
458
|
lastNode = lastNode.lastChild;
|
|
@@ -365,12 +460,17 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
365
460
|
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(),
|
|
366
461
|
// eslint-disable-next-line
|
|
367
462
|
lastNode, lastNode.textContent.length);
|
|
368
|
-
if (this.oldRangeElement.querySelectorAll('BR').length === 1) {
|
|
463
|
+
if (this.oldRangeElement.nodeName !== '#text' && this.oldRangeElement.querySelectorAll('BR').length === 1) {
|
|
369
464
|
detach(this.oldRangeElement.querySelector('BR'));
|
|
370
465
|
}
|
|
371
|
-
if (!
|
|
466
|
+
if (!isNOU(this.rangeElement) && this.oldRangeElement !== this.rangeElement) {
|
|
372
467
|
while (this.rangeElement.firstChild) {
|
|
373
|
-
this.oldRangeElement.
|
|
468
|
+
if (this.oldRangeElement.nodeName === '#text') {
|
|
469
|
+
this.oldRangeElement.parentElement.appendChild(this.rangeElement.childNodes[0]);
|
|
470
|
+
}
|
|
471
|
+
else {
|
|
472
|
+
this.oldRangeElement.appendChild(this.rangeElement.childNodes[0]);
|
|
473
|
+
}
|
|
374
474
|
}
|
|
375
475
|
// eslint-disable-next-line
|
|
376
476
|
!isLiElement ? detach(this.rangeElement) : detach(this.rangeElement.parentElement);
|
|
@@ -384,7 +484,7 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
384
484
|
var liElement;
|
|
385
485
|
var rootElement;
|
|
386
486
|
if (e.args.code === 'Delete' && e.args.keyCode === 46 &&
|
|
387
|
-
this.parent.contentModule.getText().trim().replace(/(\r\n|\n|\r)/gm, '').replace(/\u200B/g, '').length !== 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.parentElement.tagName !== 'TD' &&
|
|
487
|
+
this.parent.contentModule.getText().trim().replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, '').length !== 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.parentElement.tagName !== 'TD' &&
|
|
388
488
|
currentRange.startContainer.parentElement.tagName !== 'TH') {
|
|
389
489
|
this.deleteRangeElement = rootElement = this.getRootBlockNode(currentRange.startContainer);
|
|
390
490
|
if (this.deleteRangeElement.tagName === 'OL' || this.deleteRangeElement.tagName === 'UL') {
|
|
@@ -407,7 +507,11 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
407
507
|
(!isNullOrUndefined(this.deleteRangeElement.nextElementSibling) && this.deleteRangeElement.nextElementSibling.tagName === 'TABLE'))) {
|
|
408
508
|
return;
|
|
409
509
|
}
|
|
410
|
-
|
|
510
|
+
var isImgWithEmptyBlockNode = false;
|
|
511
|
+
if (this.deleteRangeElement.querySelectorAll('img').length > 0 && this.deleteRangeElement.textContent.trim() === '') {
|
|
512
|
+
isImgWithEmptyBlockNode = true;
|
|
513
|
+
}
|
|
514
|
+
if (this.getCaretIndex(currentRange, this.deleteRangeElement) === this.deleteRangeElement.textContent.length && !isImgWithEmptyBlockNode) {
|
|
411
515
|
if (!isNullOrUndefined(liElement)) {
|
|
412
516
|
if (isLiElement || !isNullOrUndefined(liElement.nextElementSibling)) {
|
|
413
517
|
this.deleteOldRangeElement = this.getRangeElement(liElement.nextElementSibling);
|
|
@@ -554,7 +658,7 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
554
658
|
for (var j = 0; j < splitTextContent.length; j++) {
|
|
555
659
|
if (splitTextContent[j].match(httpRegex) || splitTextContent[j].match(wwwRegex)) {
|
|
556
660
|
resultSplitContent += '<a class="e-rte-anchor" href="' + splitTextContent[j] +
|
|
557
|
-
'" title="' + splitTextContent[j] + '"target="_blank">' + splitTextContent[j] + ' </a>';
|
|
661
|
+
'" title="' + splitTextContent[j] + '" target="_blank"' + ' aria-label="' + this.parent.serviceLocator.getService('rteLocale').getConstant("linkAriaLabel") + '">' + splitTextContent[j] + ' </a>';
|
|
558
662
|
}
|
|
559
663
|
else {
|
|
560
664
|
resultSplitContent += splitTextContent[j] + ' ';
|
|
@@ -599,19 +703,6 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
599
703
|
}, e, value);
|
|
600
704
|
}
|
|
601
705
|
};
|
|
602
|
-
HtmlEditor.prototype.mouseOutHandler = function () {
|
|
603
|
-
if (!isNOU(this.tooltipTargetEle)) {
|
|
604
|
-
this.tooltipTargetEle.setAttribute('title', this.tooltipTargetEle.getAttribute('data-title'));
|
|
605
|
-
}
|
|
606
|
-
else {
|
|
607
|
-
var currentDocument = this.parent.iframeSettings.enable ? this.parent.contentModule.getPanel().ownerDocument :
|
|
608
|
-
this.parent.contentModule.getDocument();
|
|
609
|
-
this.tooltipTargetEle = currentDocument.querySelector('[data-title]');
|
|
610
|
-
this.tooltipTargetEle.setAttribute('title', this.tooltipTargetEle.getAttribute('data-title'));
|
|
611
|
-
}
|
|
612
|
-
this.tooltipTargetEle.removeAttribute('data-title');
|
|
613
|
-
EventHandler.remove(this.tooltipTargetEle, 'mouseout', this.mouseOutHandler);
|
|
614
|
-
};
|
|
615
706
|
HtmlEditor.prototype.onToolbarClick = function (args) {
|
|
616
707
|
var _this = this;
|
|
617
708
|
var save;
|
|
@@ -619,15 +710,8 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
619
710
|
var selectParentEle;
|
|
620
711
|
var item = args.item;
|
|
621
712
|
var closestElement = closest(args.originalEvent.target, '.e-rte-quick-popup');
|
|
622
|
-
var
|
|
623
|
-
|
|
624
|
-
this.tooltipTargetEle = closest(args.originalEvent.target, '[data-tooltip-id]');
|
|
625
|
-
if (!isNOU(this.tooltipTargetEle) && this.parent.showTooltip && !isNOU(currentDocument.querySelector('.e-tooltip-wrap'))) {
|
|
626
|
-
this.parent.notify(events.destroyTooltip, { args: event });
|
|
627
|
-
this.tooltipTargetEle.setAttribute('data-title', this.tooltipTargetEle.getAttribute('title'));
|
|
628
|
-
this.tooltipTargetEle.removeAttribute('title');
|
|
629
|
-
EventHandler.add(this.tooltipTargetEle, 'mouseout', this.mouseOutHandler, this);
|
|
630
|
-
}
|
|
713
|
+
var target = args.originalEvent.target;
|
|
714
|
+
this.parent.notify(events.closeTooltip, { target: target });
|
|
631
715
|
if (item.command !== 'FormatPainter') {
|
|
632
716
|
if (closestElement && !closestElement.classList.contains('e-rte-inline-popup') && !closestElement.classList.contains('e-rte-text-popup')) {
|
|
633
717
|
if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||
|
|
@@ -827,7 +911,7 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
827
911
|
* @param {RichTextEditorModel} e - specifies the editor model
|
|
828
912
|
* @returns {void}
|
|
829
913
|
* @hidden
|
|
830
|
-
|
|
914
|
+
* @deprecated
|
|
831
915
|
*/
|
|
832
916
|
HtmlEditor.prototype.onPropertyChanged = function (e) {
|
|
833
917
|
// On property code change here
|