@syncfusion/ej2-richtexteditor 20.3.61 → 20.4.40
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 +16 -1
- package/CHANGELOG.md +4 -32
- package/README.md +53 -45
- 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 +332 -187
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +320 -174
- 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 +16 -16
- package/src/editor-manager/plugin/clearformat.js +2 -1
- package/src/editor-manager/plugin/dom-node.js +1 -1
- package/src/editor-manager/plugin/formats.js +1 -0
- package/src/editor-manager/plugin/image.js +1 -0
- package/src/editor-manager/plugin/link.js +3 -1
- package/src/editor-manager/plugin/lists.js +15 -7
- package/src/editor-manager/plugin/ms-word-clean-up.js +6 -2
- package/src/editor-manager/plugin/selection-commands.js +8 -41
- package/src/editor-manager/plugin/table.js +6 -0
- package/src/editor-manager/plugin/toolbar-status.js +3 -0
- package/src/editor-manager/plugin/video.js +2 -2
- package/src/markdown-parser/plugin/clearformat.js +9 -7
- package/src/markdown-parser/plugin/formats.js +6 -5
- package/src/markdown-parser/plugin/lists.js +5 -0
- package/src/markdown-parser/plugin/markdown-selection.js +3 -0
- package/src/markdown-parser/plugin/md-selection-formats.js +13 -10
- package/src/rich-text-editor/actions/enter-key.js +66 -15
- package/src/rich-text-editor/actions/file-manager.js +1 -0
- package/src/rich-text-editor/actions/full-screen.js +1 -0
- package/src/rich-text-editor/actions/html-attributes.js +8 -8
- package/src/rich-text-editor/actions/html-editor.js +18 -6
- package/src/rich-text-editor/actions/keyboard.js +4 -4
- package/src/rich-text-editor/actions/markdown-toolbar-status.js +2 -1
- package/src/rich-text-editor/actions/paste-clean-up.js +2 -1
- package/src/rich-text-editor/actions/toolbar.js +6 -1
- package/src/rich-text-editor/base/constant.d.ts +8 -8
- package/src/rich-text-editor/base/constant.js +8 -8
- package/src/rich-text-editor/base/rich-text-editor.d.ts +2 -0
- package/src/rich-text-editor/base/rich-text-editor.js +43 -10
- package/src/rich-text-editor/base/util.js +9 -9
- package/src/rich-text-editor/renderer/audio-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/audio-module.js +7 -5
- package/src/rich-text-editor/renderer/image-module.js +10 -6
- package/src/rich-text-editor/renderer/link-module.js +5 -4
- package/src/rich-text-editor/renderer/table-module.js +19 -5
- package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +1 -0
- package/src/rich-text-editor/renderer/toolbar-renderer.js +1 -0
- package/src/rich-text-editor/renderer/video-module.d.ts +1 -1
- package/src/rich-text-editor/renderer/video-module.js +13 -4
- package/src/rich-text-editor/services/renderer-factory.js +4 -4
- package/src/rich-text-editor/services/service-locator.js +4 -4
- package/src/selection/selection.js +2 -0
- package/styles/bootstrap-dark.css +12 -5
- package/styles/bootstrap.css +12 -5
- package/styles/bootstrap4.css +12 -5
- package/styles/bootstrap5-dark.css +12 -5
- package/styles/bootstrap5.css +12 -5
- package/styles/fabric-dark.css +12 -5
- package/styles/fabric.css +12 -5
- package/styles/fluent-dark.css +12 -5
- package/styles/fluent.css +12 -5
- package/styles/highcontrast-light.css +12 -5
- package/styles/highcontrast.css +12 -5
- package/styles/material-dark.css +12 -5
- package/styles/material.css +12 -5
- package/styles/rich-text-editor/_bootstrap-dark-definition.scss +1 -0
- package/styles/rich-text-editor/_bootstrap-definition.scss +1 -0
- package/styles/rich-text-editor/_bootstrap4-definition.scss +1 -0
- package/styles/rich-text-editor/_bootstrap5-definition.scss +1 -0
- package/styles/rich-text-editor/_fabric-dark-definition.scss +1 -0
- package/styles/rich-text-editor/_fabric-definition.scss +1 -0
- package/styles/rich-text-editor/_fluent-definition.scss +1 -0
- package/styles/rich-text-editor/_fusionnew-definition.scss +1 -0
- package/styles/rich-text-editor/_highcontrast-definition.scss +1 -0
- package/styles/rich-text-editor/_highcontrast-light-definition.scss +1 -0
- package/styles/rich-text-editor/_material-dark-definition.scss +1 -0
- package/styles/rich-text-editor/_material-definition.scss +1 -0
- package/styles/rich-text-editor/_material3-definition.scss +1 -0
- package/styles/rich-text-editor/_tailwind-definition.scss +1 -0
- package/styles/rich-text-editor/_theme.scss +11 -6
- package/styles/rich-text-editor/bootstrap-dark.css +12 -5
- package/styles/rich-text-editor/bootstrap.css +12 -5
- package/styles/rich-text-editor/bootstrap4.css +12 -5
- package/styles/rich-text-editor/bootstrap5-dark.css +12 -5
- package/styles/rich-text-editor/bootstrap5.css +12 -5
- package/styles/rich-text-editor/fabric-dark.css +12 -5
- package/styles/rich-text-editor/fabric.css +12 -5
- package/styles/rich-text-editor/fluent-dark.css +12 -5
- package/styles/rich-text-editor/fluent.css +12 -5
- package/styles/rich-text-editor/highcontrast-light.css +12 -5
- package/styles/rich-text-editor/highcontrast.css +12 -5
- package/styles/rich-text-editor/material-dark.css +12 -5
- package/styles/rich-text-editor/material.css +12 -5
- package/styles/rich-text-editor/tailwind-dark.css +12 -5
- package/styles/rich-text-editor/tailwind.css +12 -5
- package/styles/tailwind-dark.css +12 -5
- package/styles/tailwind.css +12 -5
|
@@ -41,8 +41,8 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
41
41
|
var curElement = this.startNode;
|
|
42
42
|
var blockElement = curElement;
|
|
43
43
|
while (!this.parent.formatter.editorManager.domNode.isBlockNode(curElement)) {
|
|
44
|
-
blockElement = curElement;
|
|
45
44
|
curElement = curElement.parentElement;
|
|
45
|
+
blockElement = curElement;
|
|
46
46
|
}
|
|
47
47
|
isTableEnter = blockElement.tagName === 'TD' || blockElement.tagName === 'TBODY' ? false : true;
|
|
48
48
|
}
|
|
@@ -59,7 +59,10 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
59
59
|
this.parent.trigger(events.actionBegin, actionBeginArgs, function (actionBeginArgs) {
|
|
60
60
|
if (!actionBeginArgs.cancel) {
|
|
61
61
|
if (!(_this.range.startOffset === _this.range.endOffset && _this.range.startContainer === _this.range.endContainer)) {
|
|
62
|
-
_this.range.
|
|
62
|
+
if (!(_this.range.startContainer.nodeName === 'SPAN' && (_this.range.startContainer.classList.contains('e-video-wrap') ||
|
|
63
|
+
_this.range.startContainer.classList.contains('e-audio-wrap')))) {
|
|
64
|
+
_this.range.deleteContents();
|
|
65
|
+
}
|
|
63
66
|
if (_this.range.startContainer.nodeName === '#text' && _this.range.startContainer.textContent.length === 0 &&
|
|
64
67
|
_this.range.startContainer.parentElement !== _this.parent.inputElement) {
|
|
65
68
|
if (_this.parent.enterKey === 'BR') {
|
|
@@ -88,8 +91,8 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
88
91
|
while (!isNOU(currentFocusElem) && currentFocusElem.nodeName !== '#text' && currentFocusElem.nodeName !== 'BR') {
|
|
89
92
|
currentFocusElem = currentFocusElem.lastChild;
|
|
90
93
|
}
|
|
91
|
-
if (currentFocusElem.nodeName
|
|
92
|
-
currentFocusElem.parentElement.nodeName
|
|
94
|
+
if (currentFocusElem.nodeName !== 'BR' && currentFocusElem.parentElement.textContent.length === 0 && currentFocusElem.parentElement.innerHTML.length === 0 &&
|
|
95
|
+
currentFocusElem.parentElement.nodeName !== 'BR') {
|
|
93
96
|
currentFocusElem.parentElement.appendChild(_this.parent.createElement('BR'));
|
|
94
97
|
}
|
|
95
98
|
_this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), currentFocusElem.nodeName === 'BR' ? currentFocusElem : currentFocusElem.parentElement, currentFocusElem.parentElement.textContent.length >= 0 || currentFocusElem.nodeName === 'BR' ? 0 : 1);
|
|
@@ -141,13 +144,14 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
141
144
|
else {
|
|
142
145
|
nearBlockNode = _this.parent.formatter.editorManager.domNode.blockParentNode(_this.startNode);
|
|
143
146
|
}
|
|
144
|
-
var
|
|
147
|
+
var isMediaNode = false; // To check the image audio and video node cases
|
|
145
148
|
var isFocusedFirst = false;
|
|
146
149
|
if (_this.range.startOffset !== 0 && _this.range.endOffset !== 0 &&
|
|
147
150
|
_this.range.startContainer === _this.range.endContainer && !(!isNOU(nearBlockNode.childNodes[0])
|
|
148
|
-
&& nearBlockNode.childNodes[0].nodeName === 'IMG')) {
|
|
151
|
+
&& nearBlockNode.childNodes[0].nodeName === 'IMG' && nearBlockNode.querySelectorAll('img,audio,video').length > 0)) {
|
|
149
152
|
var startNodeText = _this.range.startContainer.textContent;
|
|
150
153
|
var splitFirstText = startNodeText.substring(0, _this.range.startOffset);
|
|
154
|
+
// eslint-disable-next-line max-len
|
|
151
155
|
if (splitFirstText.charCodeAt(_this.range.startOffset - 1) !== 160 && splitFirstText.trim().length === 0) {
|
|
152
156
|
isFocusedFirst = true;
|
|
153
157
|
}
|
|
@@ -159,26 +163,29 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
159
163
|
var fireFoxEnterAtMiddle = Browser.userAgent.indexOf('Firefox') !== -1 && _this.range.startOffset === 0 && _this.range.startContainer === _this.range.endContainer &&
|
|
160
164
|
_this.range.startContainer.nodeName === '#text' && !_this.parent.formatter.editorManager.domNode.isBlockNode(_this.range.startContainer.previousSibling) &&
|
|
161
165
|
_this.range.startContainer.parentElement === _this.range.startContainer.previousSibling.parentElement;
|
|
166
|
+
// eslint-disable-next-line max-len
|
|
162
167
|
if (!fireFoxEnterAtMiddle && ((_this.range.startOffset === 0 && _this.range.endOffset === 0) || isFocusedFirst) &&
|
|
163
168
|
!(!isNOU(_this.range.startContainer.previousSibling) &&
|
|
164
169
|
(_this.range.startContainer.previousSibling.nodeName === 'IMG' || _this.range.startContainer.previousSibling.nodeName === 'BR'))) {
|
|
165
170
|
var isNearBlockLengthZero = void 0;
|
|
166
171
|
var newElem = void 0;
|
|
167
|
-
if (_this.range.startContainer.
|
|
172
|
+
if (!isNOU(_this.range.startContainer.childNodes) && _this.range.startContainer.textContent.length === 0 &&
|
|
173
|
+
(_this.range.startContainer.querySelectorAll('img,audio,video').length > 0 ||
|
|
174
|
+
_this.range.startContainer.nodeName === 'IMG' || _this.range.startContainer.nodeName === 'TABLE')) {
|
|
168
175
|
newElem = _this.createInsertElement(shiftKey_1);
|
|
169
|
-
|
|
176
|
+
isMediaNode = true;
|
|
170
177
|
isNearBlockLengthZero = false;
|
|
171
178
|
}
|
|
172
179
|
else {
|
|
173
180
|
if ((nearBlockNode.textContent.trim().length !== 0 ||
|
|
174
181
|
nearBlockNode.childNodes[0].nodeName === 'IMG' ||
|
|
175
|
-
(nearBlockNode.textContent.trim() === '' && nearBlockNode.querySelectorAll('img').length > 0))) {
|
|
176
|
-
if ((_this.range.startOffset === _this.range.endOffset && _this.range.startOffset
|
|
182
|
+
(nearBlockNode.textContent.trim() === '' && nearBlockNode.querySelectorAll('img,audio,video').length > 0))) {
|
|
183
|
+
if ((_this.range.startOffset === _this.range.endOffset && _this.range.startOffset !== 0)) {
|
|
177
184
|
newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, false).cloneNode(true);
|
|
178
185
|
}
|
|
179
186
|
else {
|
|
180
187
|
newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, true).cloneNode(true);
|
|
181
|
-
|
|
188
|
+
isMediaNode = true;
|
|
182
189
|
}
|
|
183
190
|
isNearBlockLengthZero = false;
|
|
184
191
|
}
|
|
@@ -201,7 +208,7 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
201
208
|
if (!isNearBlockLengthZero) {
|
|
202
209
|
var currentFocusElem = insertElem;
|
|
203
210
|
var finalFocusElem = void 0;
|
|
204
|
-
if (_this.range.startOffset === _this.range.endOffset && _this.range.startOffset
|
|
211
|
+
if (_this.range.startOffset === _this.range.endOffset && _this.range.startOffset !== 0) {
|
|
205
212
|
while (!isNOU(currentFocusElem) && currentFocusElem.nodeName !== '#text' &&
|
|
206
213
|
currentFocusElem.nodeName !== 'BR') {
|
|
207
214
|
finalFocusElem = currentFocusElem;
|
|
@@ -212,7 +219,7 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
212
219
|
finalFocusElem = currentFocusElem;
|
|
213
220
|
}
|
|
214
221
|
finalFocusElem.innerHTML = '<br>';
|
|
215
|
-
if (!
|
|
222
|
+
if (!isMediaNode) {
|
|
216
223
|
detach(nearBlockNode);
|
|
217
224
|
}
|
|
218
225
|
}
|
|
@@ -231,6 +238,48 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
231
238
|
_this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), insertElem, 0);
|
|
232
239
|
}
|
|
233
240
|
}
|
|
241
|
+
else if (_this.range.startContainer === _this.range.endContainer && _this.range.startContainer.nodeName === 'SPAN' &&
|
|
242
|
+
(_this.range.startContainer.classList.contains('e-video-wrap') ||
|
|
243
|
+
_this.range.startContainer.classList.contains('e-audio-wrap'))) {
|
|
244
|
+
if (nearBlockNode.textContent.trim().length > 0) {
|
|
245
|
+
var newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, true);
|
|
246
|
+
var audioVideoElem = !isNOU(newElem.previousSibling.querySelector('.e-video-wrap')) ?
|
|
247
|
+
newElem.previousSibling.querySelector('.e-video-wrap') : newElem.previousSibling.querySelector('.e-audio-wrap');
|
|
248
|
+
var isBRInserted = false;
|
|
249
|
+
var lastNode = audioVideoElem.previousSibling;
|
|
250
|
+
while (!isNOU(lastNode) && lastNode.nodeName !== '#text') {
|
|
251
|
+
lastNode = lastNode.lastChild;
|
|
252
|
+
}
|
|
253
|
+
if (isNOU(lastNode)) {
|
|
254
|
+
var brElm = _this.parent.createElement('br');
|
|
255
|
+
audioVideoElem.parentElement.appendChild(brElm);
|
|
256
|
+
isBRInserted = true;
|
|
257
|
+
}
|
|
258
|
+
if (isBRInserted) {
|
|
259
|
+
_this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), audioVideoElem.parentElement, 0);
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
_this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), lastNode, lastNode.textContent.length);
|
|
263
|
+
}
|
|
264
|
+
detach(audioVideoElem);
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
var newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, true);
|
|
268
|
+
var focusElem = newElem.previousSibling;
|
|
269
|
+
while (!isNOU(focusElem.firstChild)) {
|
|
270
|
+
detach(focusElem.firstChild);
|
|
271
|
+
}
|
|
272
|
+
var brElm = _this.parent.createElement('br');
|
|
273
|
+
focusElem.appendChild(brElm);
|
|
274
|
+
_this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), focusElem, 0);
|
|
275
|
+
}
|
|
276
|
+
if (!isNOU(_this.parent.audioModule)) {
|
|
277
|
+
_this.parent.audioModule.hideAudioQuickToolbar();
|
|
278
|
+
}
|
|
279
|
+
if (!isNOU(_this.parent.videoModule)) {
|
|
280
|
+
_this.parent.videoModule.hideVideoQuickToolbar();
|
|
281
|
+
}
|
|
282
|
+
}
|
|
234
283
|
else {
|
|
235
284
|
var newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, true);
|
|
236
285
|
if (!isNOU(newElem.childNodes[0]) && newElem.childNodes[0].nodeName === '#text' &&
|
|
@@ -246,7 +295,7 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
246
295
|
_this.startNode = startParentElem;
|
|
247
296
|
}
|
|
248
297
|
else {
|
|
249
|
-
if (_this.startNode.nodeName
|
|
298
|
+
if (_this.startNode.nodeName !== 'BR') {
|
|
250
299
|
_this.startNode.appendChild(brElm);
|
|
251
300
|
}
|
|
252
301
|
}
|
|
@@ -330,6 +379,7 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
330
379
|
var outerBRElem = _this.parent.createElement('br');
|
|
331
380
|
if (_this.range.startOffset === 0 && _this.range.endOffset === 0 &&
|
|
332
381
|
!isNOU(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR') {
|
|
382
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
333
383
|
newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, currentParent, false).cloneNode(true);
|
|
334
384
|
_this.parent.formatter.editorManager.domNode.insertAfter(outerBRElem, currentParent);
|
|
335
385
|
_this.insertFocusContent();
|
|
@@ -338,6 +388,7 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
338
388
|
currentFocusElem = currentFocusElem.lastChild;
|
|
339
389
|
}
|
|
340
390
|
_this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), currentFocusElem, 0);
|
|
391
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
341
392
|
isEmptyBrInserted = true;
|
|
342
393
|
}
|
|
343
394
|
else {
|
|
@@ -367,7 +418,7 @@ var EnterKeyAction = /** @class */ (function () {
|
|
|
367
418
|
EnterKeyAction.prototype.insertBRElement = function () {
|
|
368
419
|
var isEmptyBrInserted = false;
|
|
369
420
|
var isFocusTextNode = true;
|
|
370
|
-
if (this.range.endContainer.textContent.length
|
|
421
|
+
if (this.range.endContainer.textContent.length === 0 && this.range.startContainer.nodeName === 'BR') {
|
|
371
422
|
isFocusTextNode = false;
|
|
372
423
|
}
|
|
373
424
|
var brElm = this.parent.createElement('br');
|
|
@@ -80,6 +80,7 @@ var FileManager = /** @class */ (function () {
|
|
|
80
80
|
this.dialogObj.show(Browser.isDevice ? true : false);
|
|
81
81
|
this.setCssClass({ cssClass: this.parent.cssClass });
|
|
82
82
|
};
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/tslint/config
|
|
83
84
|
FileManager.prototype.setCssClass = function (e) {
|
|
84
85
|
if (this.dialogObj && e.cssClass) {
|
|
85
86
|
if (isNullOrUndefined(e.oldCssClass)) {
|
|
@@ -106,6 +106,7 @@ var FullScreen = /** @class */ (function () {
|
|
|
106
106
|
_this.parent.toolbarModule.addFixedTBarClass();
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
+
_this.parent.refreshUI();
|
|
109
110
|
_this.parent.trigger(events.actionComplete, { requestType: 'Minimize', targetItem: 'Minimize', args: event });
|
|
110
111
|
}
|
|
111
112
|
});
|
|
@@ -19,33 +19,33 @@ export function setAttributes(htmlAttributes, rte, isFrame, initial) {
|
|
|
19
19
|
for (var _i = 0, _a = Object.keys(htmlAttributes); _i < _a.length; _i++) {
|
|
20
20
|
var htmlAttr = _a[_i];
|
|
21
21
|
if (htmlAttr === 'class') {
|
|
22
|
-
target.classList.add(htmlAttributes[htmlAttr]);
|
|
22
|
+
target.classList.add(htmlAttributes["" + htmlAttr]);
|
|
23
23
|
}
|
|
24
|
-
else if (htmlAttr === 'disabled' && htmlAttributes[htmlAttr] === 'disabled') {
|
|
24
|
+
else if (htmlAttr === 'disabled' && htmlAttributes["" + htmlAttr] === 'disabled') {
|
|
25
25
|
rte.enabled = false;
|
|
26
26
|
rte.setEnable();
|
|
27
27
|
}
|
|
28
|
-
else if (htmlAttr === 'readonly' && htmlAttributes[htmlAttr] === 'readonly') {
|
|
28
|
+
else if (htmlAttr === 'readonly' && htmlAttributes["" + htmlAttr] === 'readonly') {
|
|
29
29
|
rte.readonly = true;
|
|
30
30
|
rte.setReadOnly(initial);
|
|
31
31
|
}
|
|
32
32
|
else if (htmlAttr === 'style') {
|
|
33
|
-
target.setAttribute('style', htmlAttributes[htmlAttr]);
|
|
33
|
+
target.setAttribute('style', htmlAttributes["" + htmlAttr]);
|
|
34
34
|
}
|
|
35
35
|
else if (htmlAttr === 'tabindex') {
|
|
36
|
-
rte.inputElement.setAttribute('tabindex', htmlAttributes[htmlAttr]);
|
|
36
|
+
rte.inputElement.setAttribute('tabindex', htmlAttributes["" + htmlAttr]);
|
|
37
37
|
}
|
|
38
38
|
else if (htmlAttr === 'placeholder') {
|
|
39
|
-
rte.placeholder = htmlAttributes[htmlAttr];
|
|
39
|
+
rte.placeholder = htmlAttributes["" + htmlAttr];
|
|
40
40
|
rte.setPlaceHolder();
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
43
43
|
var validateAttr = ['name', 'required'];
|
|
44
44
|
if (validateAttr.indexOf(htmlAttr) > -1) {
|
|
45
|
-
rte.valueContainer.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);
|
|
45
|
+
rte.valueContainer.setAttribute(htmlAttr, htmlAttributes["" + htmlAttr]);
|
|
46
46
|
}
|
|
47
47
|
else {
|
|
48
|
-
target.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);
|
|
48
|
+
target.setAttribute(htmlAttr, htmlAttributes["" + htmlAttr]);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -106,10 +106,12 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
106
106
|
var restrictKeys = [8, 9, 13, 16, 17, 18, 20, 27, 37, 38, 39, 40, 44, 45, 46, 91,
|
|
107
107
|
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123];
|
|
108
108
|
var range = this.parent.getRange();
|
|
109
|
+
// eslint-disable-next-line
|
|
109
110
|
var regEx = new RegExp(String.fromCharCode(8203), 'g');
|
|
110
111
|
var pointer;
|
|
111
112
|
if (restrictKeys.indexOf(args.keyCode) < 0 && !args.shiftKey && !args.ctrlKey && !args.altKey) {
|
|
112
113
|
pointer = range.startOffset;
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
113
115
|
range.startContainer.nodeName === '#text' ? range.startContainer.parentElement.classList.add('currentStartMark') : range.startContainer.classList.add('currentStartMark');
|
|
114
116
|
if (range.startContainer.textContent.charCodeAt(0) === 8203) {
|
|
115
117
|
pointer = range.startOffset === 0 ? range.startOffset : range.startOffset - 1;
|
|
@@ -118,22 +120,32 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
118
120
|
}
|
|
119
121
|
var previousLength = this.parent.inputElement.innerHTML.length;
|
|
120
122
|
var currentLength = this.parent.inputElement.innerHTML.replace(regEx, '').length;
|
|
123
|
+
var focusNode = range.startContainer;
|
|
121
124
|
if (previousLength > currentLength) {
|
|
122
125
|
var currentChild = this.parent.inputElement.firstChild;
|
|
123
126
|
while (!isNOU(currentChild) && currentChild.textContent.replace(regEx, '').trim().length > 0) {
|
|
124
127
|
currentChild.innerHTML = currentChild.innerHTML.replace(regEx, '');
|
|
125
128
|
currentChild = currentChild.nextElementSibling;
|
|
126
129
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
for (var i = 0; i <
|
|
130
|
-
if (
|
|
131
|
-
detach(
|
|
130
|
+
var currentChildNode = this.parent.inputElement.querySelector('.currentStartMark').childNodes;
|
|
131
|
+
if (currentChildNode.length > 1) {
|
|
132
|
+
for (var i = 0; i < currentChildNode.length; i++) {
|
|
133
|
+
if (currentChildNode[i].nodeName === '#text' && currentChildNode[i].textContent.length === 0) {
|
|
134
|
+
detach(currentChildNode[i]);
|
|
132
135
|
i--;
|
|
133
136
|
}
|
|
137
|
+
if (focusNode.textContent.replace(regEx, '') === currentChildNode[i].textContent) {
|
|
138
|
+
pointer = focusNode.textContent.length > 1 ? focusNode.textContent.length - 1 : focusNode.textContent.length;
|
|
139
|
+
focusNode = currentChildNode[i];
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else if (currentChildNode.length === 1) {
|
|
144
|
+
if (focusNode.textContent.replace(regEx, '') === currentChildNode[0].textContent) {
|
|
145
|
+
focusNode = currentChildNode[0];
|
|
134
146
|
}
|
|
135
147
|
}
|
|
136
|
-
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(),
|
|
148
|
+
this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), focusNode, pointer);
|
|
137
149
|
}
|
|
138
150
|
var currentElem = this.parent.inputElement.querySelector('.currentStartMark');
|
|
139
151
|
if (!isNOU(currentElem)) {
|
|
@@ -113,7 +113,7 @@ var KeyboardEvents = /** @class */ (function (_super) {
|
|
|
113
113
|
var keys = Object.keys(_this.keyConfigs);
|
|
114
114
|
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
115
115
|
var key = keys_1[_i];
|
|
116
|
-
var configCollection = _this.keyConfigs[key].split(',');
|
|
116
|
+
var configCollection = _this.keyConfigs["" + key].split(',');
|
|
117
117
|
for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {
|
|
118
118
|
var rconfig = configCollection_1[_a];
|
|
119
119
|
var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());
|
|
@@ -187,7 +187,7 @@ var KeyboardEvents = /** @class */ (function (_super) {
|
|
|
187
187
|
*/
|
|
188
188
|
KeyboardEvents.getKeyConfigData = function (config) {
|
|
189
189
|
if (config in this.configCache) {
|
|
190
|
-
return this.configCache[config];
|
|
190
|
+
return this.configCache["" + config];
|
|
191
191
|
}
|
|
192
192
|
var keys = config.toLowerCase().split('+');
|
|
193
193
|
var keyData = {
|
|
@@ -202,12 +202,12 @@ var KeyboardEvents = /** @class */ (function (_super) {
|
|
|
202
202
|
else {
|
|
203
203
|
keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);
|
|
204
204
|
}
|
|
205
|
-
KeyboardEvents_1.configCache[config] = keyData;
|
|
205
|
+
KeyboardEvents_1.configCache["" + config] = keyData;
|
|
206
206
|
return keyData;
|
|
207
207
|
};
|
|
208
208
|
// Return the keycode value as string
|
|
209
209
|
KeyboardEvents.getKeyCode = function (keyVal) {
|
|
210
|
-
return keyCode[keyVal] || keyVal.toUpperCase().charCodeAt(0);
|
|
210
|
+
return keyCode["" + keyVal] || keyVal.toUpperCase().charCodeAt(0);
|
|
211
211
|
};
|
|
212
212
|
var KeyboardEvents_1;
|
|
213
213
|
KeyboardEvents.configCache = {};
|
|
@@ -58,7 +58,7 @@ var MarkdownToolbarStatus = /** @class */ (function () {
|
|
|
58
58
|
}
|
|
59
59
|
else {
|
|
60
60
|
for (var i = 0; i < lines.length; i++) {
|
|
61
|
-
if (!this.selection.isStartWith(lines[i].text, this.parent.formatter.listTags[type])) {
|
|
61
|
+
if (!this.selection.isStartWith(lines[i].text, this.parent.formatter.listTags["" + type])) {
|
|
62
62
|
isApply = false;
|
|
63
63
|
break;
|
|
64
64
|
}
|
|
@@ -118,6 +118,7 @@ var MarkdownToolbarStatus = /** @class */ (function () {
|
|
|
118
118
|
return text.search('\\' + cmd + '') !== -1;
|
|
119
119
|
};
|
|
120
120
|
MarkdownToolbarStatus.prototype.multiCharRegx = function (cmd) {
|
|
121
|
+
// eslint-disable-next-line
|
|
121
122
|
return new RegExp('(\\' + cmd + ')', 'g');
|
|
122
123
|
};
|
|
123
124
|
return MarkdownToolbarStatus;
|
|
@@ -569,6 +569,7 @@ var PasteCleanup = /** @class */ (function () {
|
|
|
569
569
|
}
|
|
570
570
|
}
|
|
571
571
|
};
|
|
572
|
+
// eslint-disable-next-line @typescript-eslint/tslint/config
|
|
572
573
|
PasteCleanup.prototype.setCssClass = function (e) {
|
|
573
574
|
if (this.popupObj && e.cssClass) {
|
|
574
575
|
if (isNullOrUndefined(e.oldCssClass)) {
|
|
@@ -820,7 +821,7 @@ var PasteCleanup = /** @class */ (function () {
|
|
|
820
821
|
var groupingTags = deniedTags.slice();
|
|
821
822
|
var keys = Object.keys(pasteCleanupGroupingTags);
|
|
822
823
|
var values = keys.map(function (key) {
|
|
823
|
-
return pasteCleanupGroupingTags[key];
|
|
824
|
+
return pasteCleanupGroupingTags["" + key];
|
|
824
825
|
});
|
|
825
826
|
var addTags = [];
|
|
826
827
|
for (var i = 0; i < groupingTags.length; i++) {
|
|
@@ -4,7 +4,7 @@ import { setStyleAttribute, extend } from '@syncfusion/ej2-base';
|
|
|
4
4
|
import * as events from '../base/constant';
|
|
5
5
|
import * as classes from '../base/classes';
|
|
6
6
|
import { RenderType, ToolbarType } from '../base/enum';
|
|
7
|
-
import { setToolbarStatus, updateUndoRedoStatus, getTBarItemsIndex, getCollection, toObjectLowerCase, isIDevice } from '../base/util';
|
|
7
|
+
import { setToolbarStatus, updateUndoRedoStatus, getTBarItemsIndex, getCollection, toObjectLowerCase, isIDevice, getTooltipText } from '../base/util';
|
|
8
8
|
import { updateDropDownFontFormatLocale } from '../base/util';
|
|
9
9
|
import * as model from '../models/items';
|
|
10
10
|
import { ToolbarRenderer } from '../renderer/toolbar-renderer';
|
|
@@ -134,6 +134,7 @@ var Toolbar = /** @class */ (function () {
|
|
|
134
134
|
this.isTransformChild = false;
|
|
135
135
|
var transformElements = selectAll('[style*="transform"]', document);
|
|
136
136
|
for (var i = 0; i < transformElements.length; i++) {
|
|
137
|
+
// eslint-disable-next-line max-len
|
|
137
138
|
if (!isNullOrUndefined(transformElements[i].contains) && transformElements[i].contains(this.parent.element)) {
|
|
138
139
|
this.isTransformChild = true;
|
|
139
140
|
break;
|
|
@@ -305,6 +306,9 @@ var Toolbar = /** @class */ (function () {
|
|
|
305
306
|
*/
|
|
306
307
|
Toolbar.prototype.updateItem = function (args) {
|
|
307
308
|
var item = this.tools[args.updateItem.toLocaleLowerCase()];
|
|
309
|
+
if (this.parent.locale !== 'en-US') {
|
|
310
|
+
item.tooltip = getTooltipText(args.updateItem.toLocaleLowerCase(), this.locator);
|
|
311
|
+
}
|
|
308
312
|
var trgItem = this.tools[args.targetItem.toLocaleLowerCase()];
|
|
309
313
|
var index = getTBarItemsIndex(getCollection(trgItem.subCommand), args.baseToolbar.toolbarObj.items)[0];
|
|
310
314
|
if (!isNOU(index)) {
|
|
@@ -632,6 +636,7 @@ var Toolbar = /** @class */ (function () {
|
|
|
632
636
|
this.parent.off(events.toolbarClick, this.toolbarClickHandler);
|
|
633
637
|
}
|
|
634
638
|
};
|
|
639
|
+
// eslint-disable-next-line @typescript-eslint/tslint/config
|
|
635
640
|
Toolbar.prototype.setCssClass = function (e) {
|
|
636
641
|
if (this.toolbarObj && e.cssClass) {
|
|
637
642
|
if (isNullOrUndefined(e.oldCssClass)) {
|
|
@@ -572,24 +572,24 @@ export declare const imageRemoving: string;
|
|
|
572
572
|
*/
|
|
573
573
|
export declare const fileSelected: string;
|
|
574
574
|
/**
|
|
575
|
-
|
|
575
|
+
* @hidden
|
|
576
576
|
|
|
577
|
-
|
|
577
|
+
*/
|
|
578
578
|
export declare const fileUploading: string;
|
|
579
579
|
/**
|
|
580
|
-
|
|
580
|
+
* @hidden
|
|
581
581
|
|
|
582
|
-
|
|
582
|
+
*/
|
|
583
583
|
export declare const fileUploadSuccess: string;
|
|
584
584
|
/**
|
|
585
|
-
|
|
585
|
+
* @hidden
|
|
586
586
|
|
|
587
|
-
|
|
587
|
+
*/
|
|
588
588
|
export declare const fileUploadFailed: string;
|
|
589
589
|
/**
|
|
590
|
-
|
|
590
|
+
* @hidden
|
|
591
591
|
|
|
592
|
-
|
|
592
|
+
*/
|
|
593
593
|
export declare const fileRemoving: string;
|
|
594
594
|
/**
|
|
595
595
|
* @hidden
|
|
@@ -572,24 +572,24 @@ export var imageRemoving = 'imageRemoving';
|
|
|
572
572
|
*/
|
|
573
573
|
export var fileSelected = 'fileSelected';
|
|
574
574
|
/**
|
|
575
|
-
|
|
575
|
+
* @hidden
|
|
576
576
|
|
|
577
|
-
|
|
577
|
+
*/
|
|
578
578
|
export var fileUploading = 'fileUploading';
|
|
579
579
|
/**
|
|
580
|
-
|
|
580
|
+
* @hidden
|
|
581
581
|
|
|
582
|
-
|
|
582
|
+
*/
|
|
583
583
|
export var fileUploadSuccess = 'fileUploadSuccess';
|
|
584
584
|
/**
|
|
585
|
-
|
|
585
|
+
* @hidden
|
|
586
586
|
|
|
587
|
-
|
|
587
|
+
*/
|
|
588
588
|
export var fileUploadFailed = 'fileUploadFailed';
|
|
589
589
|
/**
|
|
590
|
-
|
|
590
|
+
* @hidden
|
|
591
591
|
|
|
592
|
-
|
|
592
|
+
*/
|
|
593
593
|
export var fileRemoving = 'fileRemoving';
|
|
594
594
|
/**
|
|
595
595
|
* @hidden
|
|
@@ -55,6 +55,7 @@ export declare class RichTextEditor extends Component<HTMLElement> implements IN
|
|
|
55
55
|
private defaultResetValue;
|
|
56
56
|
private isResizeInitialized;
|
|
57
57
|
private isValueChangeBlurhandler;
|
|
58
|
+
private displayTempElem;
|
|
58
59
|
/**
|
|
59
60
|
* @hidden
|
|
60
61
|
|
|
@@ -1404,6 +1405,7 @@ export declare class RichTextEditor extends Component<HTMLElement> implements IN
|
|
|
1404
1405
|
private createScriptElement;
|
|
1405
1406
|
private createStyleElement;
|
|
1406
1407
|
private setValue;
|
|
1408
|
+
renderTemplates(callBack: any): void;
|
|
1407
1409
|
private updateResizeFlag;
|
|
1408
1410
|
/**
|
|
1409
1411
|
* Image max width calculation method
|