@syncfusion/ej2-richtexteditor 24.1.43 → 24.1.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +1 -1
- 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 +26 -9
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +26 -9
- 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 +12 -12
- package/src/editor-manager/plugin/link.js +3 -0
- package/src/editor-manager/plugin/nodecutter.js +1 -1
- package/src/editor-manager/plugin/selection-commands.js +1 -2
- package/src/editor-manager/plugin/toolbar-status.js +3 -1
- package/src/rich-text-editor/actions/html-editor.js +2 -2
- package/src/rich-text-editor/actions/paste-clean-up.js +1 -1
- package/src/rich-text-editor/actions/toolbar.js +1 -1
- package/src/rich-text-editor/base/interface.d.ts +1 -0
- package/src/rich-text-editor/base/rich-text-editor.d.ts +1 -0
- package/src/rich-text-editor/base/rich-text-editor.js +14 -0
- package/src/rich-text-editor/renderer/toolbar-renderer.js +1 -1
|
@@ -3574,7 +3574,7 @@ class ToolbarRenderer {
|
|
|
3574
3574
|
}
|
|
3575
3575
|
}
|
|
3576
3576
|
//Formats preselect
|
|
3577
|
-
if (args.items[0].command === 'Formats') {
|
|
3577
|
+
if (args.items[0].command === 'Formats' || args.items[0].command === 'Font') {
|
|
3578
3578
|
for (let index = 0; index < args.element.childNodes.length; index++) {
|
|
3579
3579
|
const divNode = this.parent.createElement('div');
|
|
3580
3580
|
divNode.innerHTML = dropDown.content.trim();
|
|
@@ -4872,7 +4872,7 @@ class Toolbar$2 {
|
|
|
4872
4872
|
return;
|
|
4873
4873
|
}
|
|
4874
4874
|
else {
|
|
4875
|
-
if (
|
|
4875
|
+
if (!this.parent.inlineMode.enable) {
|
|
4876
4876
|
this.tbWrapper = this.parent.createElement('div', {
|
|
4877
4877
|
id: this.parent.getID() + '_toolbar_wrapper',
|
|
4878
4878
|
innerHTML: this.tbElement.outerHTML,
|
|
@@ -12738,7 +12738,7 @@ class NodeCutter {
|
|
|
12738
12738
|
if ((indexes.indexOf(range.startOffset) >= 0)
|
|
12739
12739
|
|| ((indexes.indexOf(range.startOffset - 1) >= 0) && (range.startOffset !== 1
|
|
12740
12740
|
|| (range.startOffset === 1 && new RegExp('\\s').test(str[0])))
|
|
12741
|
-
|| (((indexes[indexes.length - 1] - 1) === range.startOffset) && !new RegExp('\\s').test(str[0])))) {
|
|
12741
|
+
|| (((indexes[indexes.length - 1] - 1) === range.startOffset) && range.endOffset !== (str.length - 1) && !new RegExp('\\s').test(str[0])))) {
|
|
12742
12742
|
cursorRange = range;
|
|
12743
12743
|
this.position = 1;
|
|
12744
12744
|
}
|
|
@@ -13917,6 +13917,9 @@ class LinkCommand {
|
|
|
13917
13917
|
if (!isNullOrUndefined(e.item.target)) {
|
|
13918
13918
|
anchorEle.setAttribute('target', e.item.target);
|
|
13919
13919
|
}
|
|
13920
|
+
if (!isNullOrUndefined(e.item.ariaLabel)) {
|
|
13921
|
+
anchorEle.setAttribute('aria-label', e.item.ariaLabel);
|
|
13922
|
+
}
|
|
13920
13923
|
return anchorEle;
|
|
13921
13924
|
}
|
|
13922
13925
|
getSelectionNodes(nodeCollection) {
|
|
@@ -16372,8 +16375,7 @@ class SelectionCommands {
|
|
|
16372
16375
|
cursorNodes[0].firstElementChild.tagName.toLowerCase() === 'br')) {
|
|
16373
16376
|
cursorNodes[0].innerHTML = '';
|
|
16374
16377
|
}
|
|
16375
|
-
if (cursorNodes.length === 1 && range.startOffset === 0 && (cursorNodes[0].nodeName === 'BR' ||
|
|
16376
|
-
cursorNodes[0].nextSibling.nodeName === 'BR')) {
|
|
16378
|
+
if (cursorNodes.length === 1 && range.startOffset === 0 && (cursorNodes[0].nodeName === 'BR' || (isNullOrUndefined(cursorNodes[0].nextSibling) ? false : cursorNodes[0].nextSibling.nodeName === 'BR'))) {
|
|
16377
16379
|
detach(cursorNodes[0].nodeName === '#text' ? cursorNodes[0].nextSibling : cursorNodes[0]);
|
|
16378
16380
|
}
|
|
16379
16381
|
cursorNode = this.getInsertNode(docElement, range, format, value).firstChild;
|
|
@@ -18800,7 +18802,8 @@ class ToolbarStatus {
|
|
|
18800
18802
|
// eslint-disable-next-line
|
|
18801
18803
|
const pattern = new RegExp(name, 'i');
|
|
18802
18804
|
if ((value.replace(/"/g, '').replace(/ /g, '').toLowerCase() === name.replace(/"/g, '').replace(/ /g, '').toLowerCase()) ||
|
|
18803
|
-
(value.split(',')[0] && value.split(',')[0].
|
|
18805
|
+
(value.split(',')[0] && !isNullOrUndefined(value.split(',')[0].trim().match(pattern)) &&
|
|
18806
|
+
value.split(',')[0].trim() === value.split(',')[0].trim().match(pattern)[0])) {
|
|
18804
18807
|
index = pos;
|
|
18805
18808
|
}
|
|
18806
18809
|
}) && (index !== null)))) {
|
|
@@ -20518,7 +20521,7 @@ class HtmlEditor {
|
|
|
20518
20521
|
else {
|
|
20519
20522
|
this.parent.notify(enterHandler, { args: e.args });
|
|
20520
20523
|
const newRange = this.parent.getRange();
|
|
20521
|
-
if (!isNullOrUndefined(newRange.startContainer) && newRange.startContainer === this.parent.inputElement.lastChild && newRange.startContainer.nodeName !== '#text') {
|
|
20524
|
+
if (!isNullOrUndefined(newRange.startContainer) && newRange.startContainer === this.parent.inputElement.lastChild && newRange.startContainer.nodeName !== '#text' && this.parent.height !== 'auto') {
|
|
20522
20525
|
newRange.startContainer.scrollIntoView({ block: "end", inline: "nearest" });
|
|
20523
20526
|
}
|
|
20524
20527
|
}
|
|
@@ -20839,7 +20842,7 @@ class HtmlEditor {
|
|
|
20839
20842
|
for (let j = 0; j < splitTextContent.length; j++) {
|
|
20840
20843
|
if (splitTextContent[j].match(httpRegex) || splitTextContent[j].match(wwwRegex)) {
|
|
20841
20844
|
resultSplitContent += '<a class="e-rte-anchor" href="' + splitTextContent[j] +
|
|
20842
|
-
'" title="' + splitTextContent[j] + '"target="_blank">' + splitTextContent[j] + ' </a>';
|
|
20845
|
+
'" title="' + splitTextContent[j] + '" target="_blank"' + ' aria-label="' + this.parent.serviceLocator.getService('rteLocale').getConstant("linkAriaLabel") + '">' + splitTextContent[j] + ' </a>';
|
|
20843
20846
|
}
|
|
20844
20847
|
else {
|
|
20845
20848
|
resultSplitContent += splitTextContent[j] + ' ';
|
|
@@ -21838,7 +21841,7 @@ class PasteCleanup {
|
|
|
21838
21841
|
}
|
|
21839
21842
|
}
|
|
21840
21843
|
this.parent.trigger(afterPasteCleanup, { value: clipBoardElem.innerHTML, filesData: filesData }, (updatedArgs) => { value = updatedArgs.value; });
|
|
21841
|
-
clipBoardElem.innerHTML = value;
|
|
21844
|
+
clipBoardElem.innerHTML = this.parent.addAnchorAriaLabel(value);
|
|
21842
21845
|
clipBoardElem = this.addTableClass(clipBoardElem);
|
|
21843
21846
|
this.parent.formatter.editorManager.execCommand('inserthtml', 'pasteCleanup', args, (returnArgs) => {
|
|
21844
21847
|
extend(args, { elements: returnArgs.elements, imageElements: returnArgs.imgElem }, true);
|
|
@@ -32548,6 +32551,7 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
32548
32551
|
* @deprecated
|
|
32549
32552
|
*/
|
|
32550
32553
|
render() {
|
|
32554
|
+
this.value = (!(this.editorMode === 'Markdown') && !isNullOrUndefined(this.value)) ? this.addAnchorAriaLabel(this.value) : this.value;
|
|
32551
32555
|
if (this.value && !this.valueTemplate) {
|
|
32552
32556
|
this.setProperties({ value: this.serializeValue(this.value) }, true);
|
|
32553
32557
|
}
|
|
@@ -34221,6 +34225,17 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
34221
34225
|
const value = this.removeResizeElement(args.value);
|
|
34222
34226
|
args.callBack(value);
|
|
34223
34227
|
}
|
|
34228
|
+
addAnchorAriaLabel(value) {
|
|
34229
|
+
let valueElementWrapper = document.createElement("div");
|
|
34230
|
+
valueElementWrapper.innerHTML = value;
|
|
34231
|
+
let item = valueElementWrapper.querySelectorAll("a");
|
|
34232
|
+
if (item.length > 0) {
|
|
34233
|
+
for (let i = 0; i < item.length; i++) {
|
|
34234
|
+
(item[i].hasAttribute("target") && item[i].getAttribute("target") === '_blank') ? item[i].setAttribute("aria-label", this.serviceLocator.getService('rteLocale').getConstant("linkAriaLabel")) : item[i];
|
|
34235
|
+
}
|
|
34236
|
+
}
|
|
34237
|
+
return valueElementWrapper.innerHTML;
|
|
34238
|
+
}
|
|
34224
34239
|
removeResizeElement(value) {
|
|
34225
34240
|
let valueElementWrapper = document.createElement("div");
|
|
34226
34241
|
valueElementWrapper.innerHTML = value;
|
|
@@ -34480,6 +34495,7 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
34480
34495
|
}
|
|
34481
34496
|
EventHandler.add(this.inputElement, 'keyup', this.keyUp, this);
|
|
34482
34497
|
EventHandler.add(this.inputElement, 'paste', this.onPaste, this);
|
|
34498
|
+
EventHandler.add(this.inputElement, 'content-changed', this.contentChanged, this);
|
|
34483
34499
|
EventHandler.add(this.inputElement, Browser.touchEndEvent, debounce(this.mouseUp, 30), this);
|
|
34484
34500
|
EventHandler.add(this.inputElement, Browser.touchStartEvent, this.mouseDownHandler, this);
|
|
34485
34501
|
this.wireContextEvent();
|
|
@@ -34542,6 +34558,7 @@ let RichTextEditor = class RichTextEditor extends Component {
|
|
|
34542
34558
|
}
|
|
34543
34559
|
EventHandler.remove(this.inputElement, 'keyup', this.keyUp);
|
|
34544
34560
|
EventHandler.remove(this.inputElement, 'paste', this.onPaste);
|
|
34561
|
+
EventHandler.remove(this.inputElement, 'content-changed', this.contentChanged);
|
|
34545
34562
|
EventHandler.remove(this.inputElement, Browser.touchEndEvent, debounce(this.mouseUp, 30));
|
|
34546
34563
|
EventHandler.remove(this.inputElement, Browser.touchStartEvent, this.mouseDownHandler);
|
|
34547
34564
|
this.unWireContextEvent();
|