@syncfusion/ej2-richtexteditor 20.4.53 → 21.1.37
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 +16 -2
- package/dist/ej2-richtexteditor.min.js +2 -2
- package/dist/ej2-richtexteditor.umd.min.js +2 -2
- package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es2015.js +1479 -576
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +1516 -605
- package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
- package/dist/global/ej2-richtexteditor.min.js +2 -2
- package/dist/global/ej2-richtexteditor.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +13 -13
- package/src/common/config.js +3 -1
- package/src/common/constant.d.ts +6 -0
- package/src/common/constant.js +6 -0
- package/src/common/util.d.ts +1 -0
- package/src/common/util.js +1 -0
- package/src/editor-manager/base/editor-manager.d.ts +2 -0
- package/src/editor-manager/base/editor-manager.js +5 -0
- package/src/editor-manager/base/enum.d.ts +14 -0
- package/src/editor-manager/base/interface.d.ts +34 -0
- package/src/editor-manager/plugin/clearformat.js +13 -4
- package/src/editor-manager/plugin/format-painter-actions.d.ts +63 -0
- package/src/editor-manager/plugin/format-painter-actions.js +474 -0
- package/src/editor-manager/plugin/image.js +0 -1
- package/src/editor-manager/plugin/inserthtml.js +4 -2
- package/src/editor-manager/plugin/isformatted.js +1 -0
- package/src/editor-manager/plugin/link.js +0 -1
- package/src/editor-manager/plugin/lists.js +1 -1
- package/src/editor-manager/plugin/ms-word-clean-up.js +4 -4
- package/src/editor-manager/plugin/selection-commands.d.ts +4 -1
- package/src/editor-manager/plugin/selection-commands.js +70 -9
- package/src/editor-manager/plugin/video.js +2 -0
- package/src/editor-manager/plugin.d.ts +1 -0
- package/src/editor-manager/plugin.js +1 -0
- package/src/global.js +1 -1
- package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +1 -0
- package/src/rich-text-editor/actions/base-quick-toolbar.js +21 -1
- package/src/rich-text-editor/actions/base-toolbar.js +33 -10
- package/src/rich-text-editor/actions/enter-key.js +5 -10
- package/src/rich-text-editor/actions/format-painter.d.ts +24 -0
- package/src/rich-text-editor/actions/format-painter.js +142 -0
- package/src/rich-text-editor/actions/full-screen.js +0 -1
- package/src/rich-text-editor/actions/html-editor.d.ts +1 -0
- package/src/rich-text-editor/actions/html-editor.js +117 -97
- package/src/rich-text-editor/actions/toolbar.js +5 -0
- package/src/rich-text-editor/actions.d.ts +1 -0
- package/src/rich-text-editor/actions.js +1 -0
- package/src/rich-text-editor/base/constant.d.ts +10 -0
- package/src/rich-text-editor/base/constant.js +10 -0
- package/src/rich-text-editor/base/enum.d.ts +4 -0
- package/src/rich-text-editor/base/interface.d.ts +30 -3
- package/src/rich-text-editor/base/interface.js +12 -0
- package/src/rich-text-editor/base/rich-text-editor-model.d.ts +30 -4
- package/src/rich-text-editor/base/rich-text-editor.d.ts +35 -5
- package/src/rich-text-editor/base/rich-text-editor.js +40 -9
- package/src/rich-text-editor/base/util.js +2 -0
- package/src/rich-text-editor/formatter/formatter.js +22 -13
- package/src/rich-text-editor/formatter/html-formatter.d.ts +5 -3
- package/src/rich-text-editor/formatter/html-formatter.js +7 -5
- package/src/rich-text-editor/models/default-locale.js +4 -2
- package/src/rich-text-editor/models/items.d.ts +3 -0
- package/src/rich-text-editor/models/items.js +32 -0
- package/src/rich-text-editor/models/toolbar-settings-model.d.ts +29 -1
- package/src/rich-text-editor/models/toolbar-settings.d.ts +24 -1
- package/src/rich-text-editor/models/toolbar-settings.js +20 -0
- package/src/rich-text-editor/renderer/audio-module.js +6 -3
- package/src/rich-text-editor/renderer/image-module.js +11 -6
- package/src/rich-text-editor/renderer/link-module.js +2 -1
- package/src/rich-text-editor/renderer/table-module.js +18 -6
- package/src/rich-text-editor/renderer/toolbar-renderer.js +10 -1
- package/src/rich-text-editor/renderer/video-module.js +8 -5
- package/src/rich-text-editor/renderer/view-source.js +1 -1
- package/styles/bootstrap-dark.css +31 -1
- package/styles/bootstrap.css +31 -1
- package/styles/bootstrap4.css +31 -1
- package/styles/bootstrap5-dark.css +32 -2
- package/styles/bootstrap5.css +32 -2
- package/styles/fabric-dark.css +31 -1
- package/styles/fabric.css +31 -1
- package/styles/fluent-dark.css +34 -4
- package/styles/fluent.css +34 -4
- package/styles/highcontrast-light.css +31 -1
- package/styles/highcontrast.css +31 -1
- package/styles/material-dark.css +31 -1
- package/styles/material.css +31 -1
- package/styles/rich-text-editor/_bootstrap-dark-definition.scss +25 -1
- package/styles/rich-text-editor/_bootstrap-definition.scss +25 -1
- package/styles/rich-text-editor/_bootstrap4-definition.scss +25 -1
- package/styles/rich-text-editor/_bootstrap5-definition.scss +28 -5
- package/styles/rich-text-editor/_fabric-dark-definition.scss +25 -1
- package/styles/rich-text-editor/_fabric-definition.scss +25 -1
- package/styles/rich-text-editor/_fluent-definition.scss +30 -7
- package/styles/rich-text-editor/_fusionnew-definition.scss +26 -3
- package/styles/rich-text-editor/_highcontrast-definition.scss +25 -1
- package/styles/rich-text-editor/_highcontrast-light-definition.scss +25 -1
- package/styles/rich-text-editor/_layout.scss +47 -15
- package/styles/rich-text-editor/_material-dark-definition.scss +26 -1
- package/styles/rich-text-editor/_material-definition.scss +25 -1
- package/styles/rich-text-editor/_tailwind-definition.scss +28 -5
- package/styles/rich-text-editor/_theme.scss +54 -6
- package/styles/rich-text-editor/bootstrap-dark.css +31 -1
- package/styles/rich-text-editor/bootstrap.css +31 -1
- package/styles/rich-text-editor/bootstrap4.css +31 -1
- package/styles/rich-text-editor/bootstrap5-dark.css +32 -2
- package/styles/rich-text-editor/bootstrap5.css +32 -2
- package/styles/rich-text-editor/fabric-dark.css +31 -1
- package/styles/rich-text-editor/fabric.css +31 -1
- package/styles/rich-text-editor/fluent-dark.css +34 -4
- package/styles/rich-text-editor/fluent.css +34 -4
- package/styles/rich-text-editor/highcontrast-light.css +31 -1
- package/styles/rich-text-editor/highcontrast.css +31 -1
- package/styles/rich-text-editor/icons/_bootstrap-dark.scss +8 -0
- package/styles/rich-text-editor/icons/_bootstrap.scss +8 -0
- package/styles/rich-text-editor/icons/_bootstrap4.scss +8 -0
- package/styles/rich-text-editor/icons/_bootstrap5.scss +8 -0
- package/styles/rich-text-editor/icons/_fabric-dark.scss +8 -0
- package/styles/rich-text-editor/icons/_fabric.scss +8 -0
- package/styles/rich-text-editor/icons/_fluent.scss +8 -0
- package/styles/rich-text-editor/icons/_fusionnew.scss +8 -0
- package/styles/rich-text-editor/icons/_highcontrast-light.scss +8 -0
- package/styles/rich-text-editor/icons/_highcontrast.scss +8 -0
- package/styles/rich-text-editor/icons/_material-dark.scss +8 -0
- package/styles/rich-text-editor/icons/_material.scss +8 -0
- package/styles/rich-text-editor/icons/_material3.scss +8 -0
- package/styles/rich-text-editor/icons/_tailwind.scss +8 -0
- package/styles/rich-text-editor/material-dark.css +31 -1
- package/styles/rich-text-editor/material.css +31 -1
- package/styles/rich-text-editor/tailwind-dark.css +31 -1
- package/styles/rich-text-editor/tailwind.css +31 -1
- package/styles/tailwind-dark.css +31 -1
- package/styles/tailwind.css +31 -1
- package/styles/rich-text-editor/_material3-definition.scss +0 -196
|
@@ -561,117 +561,136 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
561
561
|
}
|
|
562
562
|
};
|
|
563
563
|
HtmlEditor.prototype.onToolbarClick = function (args) {
|
|
564
|
+
var _this = this;
|
|
564
565
|
var save;
|
|
565
566
|
var selectNodeEle;
|
|
566
567
|
var selectParentEle;
|
|
567
568
|
var item = args.item;
|
|
568
569
|
var closestElement = closest(args.originalEvent.target, '.e-rte-quick-popup');
|
|
569
|
-
if (
|
|
570
|
-
if (
|
|
571
|
-
item.subCommand === '
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
selectNodeEle = this.nodeSelectionObj.getNodeCollection(range);
|
|
578
|
-
selectParentEle = this.nodeSelectionObj.getParentNodeCollection(range);
|
|
579
|
-
}
|
|
580
|
-
if (item.command === 'Images') {
|
|
581
|
-
this.parent.notify(events.imageToolbarAction, {
|
|
582
|
-
member: 'image', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
583
|
-
});
|
|
584
|
-
}
|
|
585
|
-
if (item.command === 'Audios') {
|
|
586
|
-
this.parent.notify(events.audioToolbarAction, {
|
|
587
|
-
member: 'audio', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
588
|
-
});
|
|
589
|
-
}
|
|
590
|
-
if (item.command === 'Videos') {
|
|
591
|
-
this.parent.notify(events.videoToolbarAction, {
|
|
592
|
-
member: 'video', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
593
|
-
});
|
|
594
|
-
}
|
|
595
|
-
if (item.command === 'Links') {
|
|
596
|
-
this.parent.notify(events.linkToolbarAction, {
|
|
597
|
-
member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
598
|
-
});
|
|
599
|
-
}
|
|
600
|
-
if (item.command === 'Table') {
|
|
601
|
-
this.parent.notify(events.tableToolbarAction, {
|
|
602
|
-
member: 'table', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
603
|
-
});
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
else {
|
|
607
|
-
var linkDialog = document.getElementById(this.parent.getID() + '_rtelink');
|
|
608
|
-
var imageDialog = document.getElementById(this.parent.getID() + '_image');
|
|
609
|
-
if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||
|
|
610
|
-
item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor')) {
|
|
611
|
-
var range = this.nodeSelectionObj.getRange(this.parent.contentModule.getDocument());
|
|
612
|
-
if (isNullOrUndefined(linkDialog) && isNullOrUndefined(imageDialog)) {
|
|
570
|
+
if (item.command !== 'FormatPainter') {
|
|
571
|
+
if (closestElement && !closestElement.classList.contains('e-rte-inline-popup')) {
|
|
572
|
+
if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||
|
|
573
|
+
item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor')) {
|
|
574
|
+
if (isIDevice() && item.command === 'Images') {
|
|
575
|
+
this.nodeSelectionObj.restore();
|
|
576
|
+
}
|
|
577
|
+
var range = this.nodeSelectionObj.getRange(this.parent.contentModule.getDocument());
|
|
613
578
|
save = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());
|
|
579
|
+
selectNodeEle = this.nodeSelectionObj.getNodeCollection(range);
|
|
580
|
+
selectParentEle = this.nodeSelectionObj.getParentNodeCollection(range);
|
|
614
581
|
}
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
}
|
|
618
|
-
switch (item.subCommand) {
|
|
619
|
-
case 'Maximize':
|
|
620
|
-
this.parent.notify(events.enableFullScreen, { args: args });
|
|
621
|
-
break;
|
|
622
|
-
case 'Minimize':
|
|
623
|
-
this.parent.notify(events.disableFullScreen, { args: args });
|
|
624
|
-
break;
|
|
625
|
-
case 'CreateLink':
|
|
626
|
-
this.parent.notify(events.insertLink, {
|
|
627
|
-
member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
628
|
-
});
|
|
629
|
-
break;
|
|
630
|
-
case 'RemoveLink':
|
|
631
|
-
this.parent.notify(events.unLink, {
|
|
632
|
-
member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
633
|
-
});
|
|
634
|
-
break;
|
|
635
|
-
case 'Print':
|
|
636
|
-
this.parent.print();
|
|
637
|
-
break;
|
|
638
|
-
case 'Image':
|
|
639
|
-
this.parent.notify(events.insertImage, {
|
|
582
|
+
if (item.command === 'Images') {
|
|
583
|
+
this.parent.notify(events.imageToolbarAction, {
|
|
640
584
|
member: 'image', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
641
585
|
});
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
this.parent.notify(events.
|
|
586
|
+
}
|
|
587
|
+
if (item.command === 'Audios') {
|
|
588
|
+
this.parent.notify(events.audioToolbarAction, {
|
|
645
589
|
member: 'audio', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
646
590
|
});
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
this.parent.notify(events.
|
|
591
|
+
}
|
|
592
|
+
if (item.command === 'Videos') {
|
|
593
|
+
this.parent.notify(events.videoToolbarAction, {
|
|
650
594
|
member: 'video', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
651
595
|
});
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
this.parent.notify(events.
|
|
655
|
-
member: '
|
|
596
|
+
}
|
|
597
|
+
if (item.command === 'Links') {
|
|
598
|
+
this.parent.notify(events.linkToolbarAction, {
|
|
599
|
+
member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
600
|
+
});
|
|
601
|
+
}
|
|
602
|
+
if (item.command === 'Table') {
|
|
603
|
+
this.parent.notify(events.tableToolbarAction, {
|
|
604
|
+
member: 'table', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
656
605
|
});
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
this.
|
|
669
|
-
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
else {
|
|
609
|
+
var linkDialog = document.getElementById(this.parent.getID() + '_rtelink');
|
|
610
|
+
var imageDialog = document.getElementById(this.parent.getID() + '_image');
|
|
611
|
+
if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||
|
|
612
|
+
item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor')) {
|
|
613
|
+
var range = this.nodeSelectionObj.getRange(this.parent.contentModule.getDocument());
|
|
614
|
+
if (isNullOrUndefined(linkDialog) && isNullOrUndefined(imageDialog)) {
|
|
615
|
+
save = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());
|
|
616
|
+
}
|
|
617
|
+
selectNodeEle = this.nodeSelectionObj.getNodeCollection(range);
|
|
618
|
+
selectParentEle = this.nodeSelectionObj.getParentNodeCollection(range);
|
|
619
|
+
}
|
|
620
|
+
switch (item.subCommand) {
|
|
621
|
+
case 'Maximize':
|
|
622
|
+
this.parent.notify(events.enableFullScreen, { args: args });
|
|
623
|
+
break;
|
|
624
|
+
case 'Minimize':
|
|
625
|
+
this.parent.notify(events.disableFullScreen, { args: args });
|
|
626
|
+
break;
|
|
627
|
+
case 'CreateLink':
|
|
628
|
+
this.parent.notify(events.insertLink, {
|
|
629
|
+
member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
630
|
+
});
|
|
631
|
+
break;
|
|
632
|
+
case 'RemoveLink':
|
|
633
|
+
this.parent.notify(events.unLink, {
|
|
634
|
+
member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
635
|
+
});
|
|
636
|
+
break;
|
|
637
|
+
case 'Print':
|
|
638
|
+
this.parent.print();
|
|
639
|
+
break;
|
|
640
|
+
case 'Image':
|
|
641
|
+
this.parent.notify(events.insertImage, {
|
|
642
|
+
member: 'image', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
643
|
+
});
|
|
644
|
+
break;
|
|
645
|
+
case 'Audio':
|
|
646
|
+
this.parent.notify(events.insertAudio, {
|
|
647
|
+
member: 'audio', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
648
|
+
});
|
|
649
|
+
break;
|
|
650
|
+
case 'Video':
|
|
651
|
+
this.parent.notify(events.insertVideo, {
|
|
652
|
+
member: 'video', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
653
|
+
});
|
|
654
|
+
break;
|
|
655
|
+
case 'CreateTable':
|
|
656
|
+
this.parent.notify(events.createTable, {
|
|
657
|
+
member: 'table', args: args, selection: save
|
|
658
|
+
});
|
|
659
|
+
break;
|
|
660
|
+
case 'SourceCode':
|
|
661
|
+
this.parent.notify(events.sourceCode, { member: 'viewSource', args: args });
|
|
662
|
+
break;
|
|
663
|
+
case 'Preview':
|
|
664
|
+
this.parent.notify(events.updateSource, { member: 'updateSource', args: args });
|
|
665
|
+
break;
|
|
666
|
+
case 'FontColor':
|
|
667
|
+
case 'BackgroundColor':
|
|
668
|
+
break;
|
|
669
|
+
case 'File':
|
|
670
|
+
this.parent.notify(events.renderFileManager, {
|
|
671
|
+
member: 'fileManager', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
|
|
672
|
+
});
|
|
673
|
+
break;
|
|
674
|
+
default:
|
|
675
|
+
this.parent.formatter.process(this.parent, args, args.originalEvent, null);
|
|
676
|
+
break;
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
else {
|
|
681
|
+
if (args.originalEvent.detail === 1) {
|
|
682
|
+
clearTimeout(this.clickTimeout);
|
|
683
|
+
this.clickTimeout = setTimeout(function () {
|
|
684
|
+
_this.parent.notify(events.formatPainterClick, {
|
|
685
|
+
member: 'formatPainter', args: args
|
|
670
686
|
});
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
687
|
+
}, 200);
|
|
688
|
+
}
|
|
689
|
+
else {
|
|
690
|
+
clearTimeout(this.clickTimeout);
|
|
691
|
+
this.parent.notify(events.formatPainterDoubleClick, {
|
|
692
|
+
member: 'formatPainter', args: args
|
|
693
|
+
});
|
|
675
694
|
}
|
|
676
695
|
}
|
|
677
696
|
};
|
|
@@ -714,7 +733,8 @@ var HtmlEditor = /** @class */ (function () {
|
|
|
714
733
|
var formatterClass = new HTMLFormatter({
|
|
715
734
|
currentDocument: this.contentRenderer.getDocument(),
|
|
716
735
|
element: editElement,
|
|
717
|
-
options: option
|
|
736
|
+
options: option,
|
|
737
|
+
formatPainterSettings: this.parent.formatPainterSettings
|
|
718
738
|
});
|
|
719
739
|
this.parent.setProperties({ formatter: formatterClass }, true);
|
|
720
740
|
}
|
|
@@ -318,6 +318,7 @@ var Toolbar = /** @class */ (function () {
|
|
|
318
318
|
args.baseToolbar.toolbarObj.items[index].tooltipText = item.tooltip;
|
|
319
319
|
args.baseToolbar.toolbarObj.items[index].subCommand = item.subCommand;
|
|
320
320
|
args.baseToolbar.toolbarObj.dataBind();
|
|
321
|
+
args.baseToolbar.toolbarObj.refreshOverflow();
|
|
321
322
|
}
|
|
322
323
|
else {
|
|
323
324
|
this.addTBarItem(args, 0);
|
|
@@ -458,7 +459,11 @@ var Toolbar = /** @class */ (function () {
|
|
|
458
459
|
|
|
459
460
|
*/
|
|
460
461
|
Toolbar.prototype.refreshToolbarOverflow = function () {
|
|
462
|
+
this.parent.element.classList.remove(classes.CLS_RTL);
|
|
461
463
|
this.baseToolbar.toolbarObj.refreshOverflow();
|
|
464
|
+
if (this.parent.enableRtl) {
|
|
465
|
+
this.parent.element.classList.add(classes.CLS_RTL);
|
|
466
|
+
}
|
|
462
467
|
};
|
|
463
468
|
Toolbar.prototype.isToolbarDestroyed = function () {
|
|
464
469
|
return this.baseToolbar.toolbarObj && !this.baseToolbar.toolbarObj.isDestroyed;
|
|
@@ -714,6 +714,16 @@ export declare const bindCssClass: string;
|
|
|
714
714
|
/**
|
|
715
715
|
* @hidden
|
|
716
716
|
|
|
717
|
+
*/
|
|
718
|
+
export declare const formatPainterClick: string;
|
|
719
|
+
/**
|
|
720
|
+
* @hidden
|
|
721
|
+
|
|
722
|
+
*/
|
|
723
|
+
export declare const formatPainterDoubleClick: string;
|
|
724
|
+
/**
|
|
725
|
+
* @hidden
|
|
726
|
+
|
|
717
727
|
*/
|
|
718
728
|
export declare const blockEmptyNodes: string;
|
|
719
729
|
/**
|
|
@@ -714,6 +714,16 @@ export var bindCssClass = 'closeTableDialog';
|
|
|
714
714
|
/**
|
|
715
715
|
* @hidden
|
|
716
716
|
|
|
717
|
+
*/
|
|
718
|
+
export var formatPainterClick = 'formatPainterClick';
|
|
719
|
+
/**
|
|
720
|
+
* @hidden
|
|
721
|
+
|
|
722
|
+
*/
|
|
723
|
+
export var formatPainterDoubleClick = 'formatPainterDoubleClick';
|
|
724
|
+
/**
|
|
725
|
+
* @hidden
|
|
726
|
+
|
|
717
727
|
*/
|
|
718
728
|
export var blockEmptyNodes = "address:empty, article:empty, aside:empty, blockquote:empty,\n details:empty, dd:empty, div:empty, dl:empty, dt:empty, fieldset:empty, footer:empty,form:empty, h1:empty,\n h2:empty, h3:empty, h4:empty, h5:empty, h6:empty, header:empty, hgroup:empty, li:empty, main:empty, nav:empty,\n noscript:empty, output:empty, p:empty, pre:empty, section:empty, td:empty, th:empty";
|
|
719
729
|
/**
|
|
@@ -60,3 +60,7 @@ export declare enum DialogType {
|
|
|
60
60
|
* Defines types to be used to configure the toolbar items.
|
|
61
61
|
*/
|
|
62
62
|
export declare type ToolbarItems = 'alignments' | 'justifyLeft' | 'justifyCenter' | 'justifyRight' | 'justifyFull' | 'fontName' | 'fontSize' | 'fontColor' | 'backgroundColor' | 'bold' | 'italic' | 'underline' | 'strikeThrough' | 'clearFormat' | 'clearAll' | 'cut' | 'copy' | 'paste' | 'unorderedList' | 'orderedList' | 'indent' | 'outdent' | 'undo' | 'redo' | 'superScript' | 'subScript' | 'createLink' | 'openLink' | 'editLink' | 'image' | 'createTable' | 'removeTable' | 'replace' | 'align' | 'caption' | 'remove' | 'openImageLink' | 'editImageLink' | 'removeImageLink' | 'insertLink' | 'display' | 'altText' | 'dimension' | 'fullScreen' | 'maximize' | 'minimize' | 'lowerCase' | 'upperCase' | 'print' | 'formats' | 'sourceCode' | 'preview' | 'viewSide' | 'insertCode' | 'tableHeader' | 'tableRemove' | 'tableRows' | 'tableColumns' | 'tableCellBackground' | 'tableCellHorizontalAlign' | 'tableCellVerticalAlign' | 'tableEditProperties' | 'styles' | 'removeLink' | 'merge';
|
|
63
|
+
/**
|
|
64
|
+
* Defines the context or contexts in which styles will be copied
|
|
65
|
+
*/
|
|
66
|
+
export declare type FormatPainterContext = 'Text' | 'List' | 'Table';
|
|
@@ -10,7 +10,7 @@ import { BaseQuickToolbar } from '../actions/base-quick-toolbar';
|
|
|
10
10
|
import { NodeSelection } from '../../selection/selection';
|
|
11
11
|
import { EditorMode, EnterKey, ShiftEnterKey } from './../../common/types';
|
|
12
12
|
import { MarkdownSelection } from './../../markdown-parser/plugin/markdown-selection';
|
|
13
|
-
import { ToolbarSettingsModel, IFrameSettingsModel, ImageSettingsModel, AudioSettingsModel, VideoSettingsModel, TableSettingsModel } from '../models/models';
|
|
13
|
+
import { ToolbarSettingsModel, IFrameSettingsModel, ImageSettingsModel, AudioSettingsModel, VideoSettingsModel, TableSettingsModel, FormatPainterSettingsModel } from '../models/models';
|
|
14
14
|
import { QuickToolbarSettingsModel, InlineModeModel, PasteCleanupSettingsModel, FileManagerSettingsModel } from '../models/models';
|
|
15
15
|
import { Count } from '../actions/count';
|
|
16
16
|
import { ColorPicker, ColorPickerEventArgs, ColorPickerModel, FileInfo } from '@syncfusion/ej2-inputs';
|
|
@@ -36,6 +36,7 @@ import { Resize } from '../actions/resize';
|
|
|
36
36
|
import { FileManager } from '../actions/file-manager';
|
|
37
37
|
import { NodeCutter, DOMNode } from '../../editor-manager';
|
|
38
38
|
import { EnterKeyAction } from '../actions/enter-key';
|
|
39
|
+
import { FormatPainter } from '../actions/format-painter';
|
|
39
40
|
/**
|
|
40
41
|
* Specifies Rich Text Editor interfaces.
|
|
41
42
|
*
|
|
@@ -82,6 +83,17 @@ export interface IRichTextEditor extends Component<HTMLElement> {
|
|
|
82
83
|
fileManagerSettings: FileManagerSettingsModel;
|
|
83
84
|
tableSettings: TableSettingsModel;
|
|
84
85
|
pasteCleanupSettings: PasteCleanupSettingsModel;
|
|
86
|
+
/**
|
|
87
|
+
* Configure the format painter settings of the RTE.
|
|
88
|
+
*
|
|
89
|
+
* @default
|
|
90
|
+
* {
|
|
91
|
+
* allowedContext: ['Text', 'List', 'Table'],
|
|
92
|
+
* allowedFormats: 'b; em; font; sub; sup; kbd; i; s; u; code; strong; span; p; div; h1; h2; h3; h4; h5; h6; blockquote; table; thead; tbody; tr; td; th; ol; ul; li; pre;',
|
|
93
|
+
* deniedFormats: null
|
|
94
|
+
* }
|
|
95
|
+
*/
|
|
96
|
+
formatPainterSettings: FormatPainterSettingsModel;
|
|
85
97
|
floatingToolbarOffset?: number;
|
|
86
98
|
showCharCount?: boolean;
|
|
87
99
|
enableTabKey?: boolean;
|
|
@@ -98,6 +110,7 @@ export interface IRichTextEditor extends Component<HTMLElement> {
|
|
|
98
110
|
format?: IFormatProperties;
|
|
99
111
|
value?: string;
|
|
100
112
|
saveInterval?: number;
|
|
113
|
+
showTooltip?: boolean;
|
|
101
114
|
isBlur?: boolean;
|
|
102
115
|
isRTE?: boolean;
|
|
103
116
|
contentModule?: IRenderer;
|
|
@@ -130,6 +143,7 @@ export interface IRichTextEditor extends Component<HTMLElement> {
|
|
|
130
143
|
markdownEditorModule: MarkdownEditor;
|
|
131
144
|
htmlEditorModule: HtmlEditor;
|
|
132
145
|
countModule?: Count;
|
|
146
|
+
formatPainterModule?: FormatPainter;
|
|
133
147
|
serviceLocator?: ServiceLocator;
|
|
134
148
|
setEnable?(): void;
|
|
135
149
|
setReadOnly?(isInit?: boolean): void;
|
|
@@ -178,6 +192,7 @@ export interface IRichTextEditor extends Component<HTMLElement> {
|
|
|
178
192
|
getInsertVidMaxWidth?(): string | number;
|
|
179
193
|
getSelection(): string;
|
|
180
194
|
currentTarget: HTMLElement;
|
|
195
|
+
focusIn(): void;
|
|
181
196
|
}
|
|
182
197
|
/**
|
|
183
198
|
|
|
@@ -237,6 +252,7 @@ export interface NotifyArgs {
|
|
|
237
252
|
insertElement?: Element;
|
|
238
253
|
touchData?: ITouchData;
|
|
239
254
|
allowedStylePropertiesArray?: string[];
|
|
255
|
+
formatPainterSettings?: FormatPainterSettingsModel;
|
|
240
256
|
}
|
|
241
257
|
/**
|
|
242
258
|
* Provides information about the current and previous cssClass property .
|
|
@@ -475,6 +491,16 @@ export interface ITableCommandsArgs {
|
|
|
475
491
|
/** Defines the instance of the current selection */
|
|
476
492
|
selection?: NodeSelection;
|
|
477
493
|
}
|
|
494
|
+
/**
|
|
495
|
+
|
|
496
|
+
*/
|
|
497
|
+
export interface IFormatPainterArgs {
|
|
498
|
+
/**
|
|
499
|
+
* Defines the action to be performed.
|
|
500
|
+
* Allowed values are 'format-copy', 'format-paste', 'escape'.
|
|
501
|
+
*/
|
|
502
|
+
formatPainterAction: string;
|
|
503
|
+
}
|
|
478
504
|
/**
|
|
479
505
|
|
|
480
506
|
*/
|
|
@@ -496,7 +522,7 @@ export interface ITableArgs {
|
|
|
496
522
|
*/
|
|
497
523
|
export interface ITableNotifyArgs {
|
|
498
524
|
module?: string;
|
|
499
|
-
args?: ClickEventArgs | MouseEvent | KeyboardEventArgs;
|
|
525
|
+
args?: ClickEventArgs | MouseEvent | KeyboardEventArgs | TouchEvent;
|
|
500
526
|
selection?: NodeSelection;
|
|
501
527
|
selectNode?: Node[];
|
|
502
528
|
selectParent?: Node[];
|
|
@@ -843,6 +869,7 @@ export interface IHtmlFormatterModel {
|
|
|
843
869
|
options?: {
|
|
844
870
|
[key: string]: number;
|
|
845
871
|
};
|
|
872
|
+
formatPainterSettings?: FormatPainterSettingsModel;
|
|
846
873
|
}
|
|
847
874
|
/**
|
|
848
875
|
|
|
@@ -1275,7 +1302,7 @@ export declare const executeGroup: {
|
|
|
1275
1302
|
/**
|
|
1276
1303
|
* Defines types to be used as CommandName.
|
|
1277
1304
|
*/
|
|
1278
|
-
export declare type CommandName = 'bold' | 'italic' | 'underline' | 'strikeThrough' | 'superscript' | 'subscript' | 'uppercase' | 'lowercase' | 'fontColor' | 'fontName' | 'fontSize' | 'backColor' | 'justifyCenter' | 'justifyFull' | 'justifyLeft' | 'justifyRight' | 'undo' | 'createLink' | 'formatBlock' | 'heading' | 'indent' | 'insertHTML' | 'insertOrderedList' | 'insertUnorderedList' | 'insertParagraph' | 'outdent' | 'redo' | 'removeFormat' | 'insertText' | 'insertImage' | 'insertAudio' | 'insertVideo' | 'insertHorizontalRule' | 'insertBrOnReturn' | 'insertCode' | 'insertTable' | 'editImage' | 'editLink';
|
|
1305
|
+
export declare type CommandName = 'bold' | 'italic' | 'underline' | 'strikeThrough' | 'superscript' | 'subscript' | 'uppercase' | 'lowercase' | 'fontColor' | 'fontName' | 'fontSize' | 'backColor' | 'justifyCenter' | 'justifyFull' | 'justifyLeft' | 'justifyRight' | 'undo' | 'createLink' | 'formatBlock' | 'heading' | 'indent' | 'insertHTML' | 'insertOrderedList' | 'insertUnorderedList' | 'insertParagraph' | 'outdent' | 'redo' | 'removeFormat' | 'insertText' | 'insertImage' | 'insertAudio' | 'insertVideo' | 'insertHorizontalRule' | 'insertBrOnReturn' | 'insertCode' | 'insertTable' | 'editImage' | 'editLink' | 'applyFormatPainter' | 'copyFormatPainter' | 'escapeFormatPainter';
|
|
1279
1306
|
/**
|
|
1280
1307
|
* @hidden
|
|
1281
1308
|
|
|
@@ -173,5 +173,17 @@ export var executeGroup = {
|
|
|
173
173
|
'removeFormat': {
|
|
174
174
|
command: 'Clear',
|
|
175
175
|
subCommand: 'ClearFormat'
|
|
176
|
+
},
|
|
177
|
+
'copyFormatPainter': {
|
|
178
|
+
command: 'FormatPainter',
|
|
179
|
+
value: 'format-copy'
|
|
180
|
+
},
|
|
181
|
+
'applyFormatPainter': {
|
|
182
|
+
command: 'FormatPainter',
|
|
183
|
+
value: 'format-paste'
|
|
184
|
+
},
|
|
185
|
+
'escapeFormatPainter': {
|
|
186
|
+
command: 'FormatPainter',
|
|
187
|
+
value: 'escape'
|
|
176
188
|
}
|
|
177
189
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ModuleDeclaration, EventHandler, Complex, Browser, EmitType, addClass, select, detach } from '@syncfusion/ej2-base';import { Property, NotifyPropertyChanges, INotifyPropertyChanged, formatUnit, L10n, closest } from '@syncfusion/ej2-base';import { setStyleAttribute, Event, removeClass, print as printWindow, attributes } from '@syncfusion/ej2-base';import { isNullOrUndefined as isNOU, compile, append, extend, debounce } from '@syncfusion/ej2-base';import { Touch as EJ2Touch, TapEventArgs } from '@syncfusion/ej2-base';import { getScrollableParent, BeforeOpenEventArgs, BeforeCloseEventArgs } from '@syncfusion/ej2-popups';import * as events from '../base/constant';import * as classes from '../base/classes';import { Render } from '../renderer/render';import { ViewSource } from '../renderer/view-source';import { IRenderer, IFormatter, PrintEventArgs, ActionCompleteEventArgs, ActionBeginEventArgs, ImageDropEventArgs } from './interface';import { IExecutionGroup, executeGroup, CommandName, ResizeArgs, StatusArgs, ToolbarStatusEventArgs } from './interface';import { BeforeQuickToolbarOpenArgs, ChangeEventArgs, AfterImageDeleteEventArgs, AfterMediaDeleteEventArgs, PasteCleanupArgs } from './interface';import { ILinkCommandsArgs, IImageCommandsArgs, IAudioCommandsArgs, IVideoCommandsArgs, BeforeSanitizeHtmlArgs, ITableCommandsArgs, ExecuteCommandOption } from './interface';import { ServiceLocator } from '../services/service-locator';import { RendererFactory } from '../services/renderer-factory';import { RenderType, ToolbarType, DialogType } from './enum';import { EditorMode, ShiftEnterKey, EnterKey } from './../../common/types';import { Toolbar } from '../actions/toolbar';import { ExecCommandCallBack } from '../actions/execute-command-callback';import { KeyboardEvents, KeyboardEventArgs } from '../actions/keyboard';import { FontFamilyModel, FontSizeModel, FontColorModel, FormatModel, BackgroundColorModel, NumberFormatListModel, BulletFormatListModel } from '../models/models';import { ToolbarSettingsModel, IFrameSettingsModel, ImageSettingsModel, AudioSettingsModel, VideoSettingsModel, TableSettingsModel } from '../models/models';import { QuickToolbarSettingsModel, InlineModeModel, PasteCleanupSettingsModel, FileManagerSettingsModel } from '../models/models';import { ToolbarSettings, ImageSettings, AudioSettings, VideoSettings, QuickToolbarSettings, FontFamily, FontSize, Format, NumberFormatList, BulletFormatList } from '../models/toolbar-settings';import { FileManagerSettings } from '../models/toolbar-settings';import { TableSettings, PasteCleanupSettings } from '../models/toolbar-settings';import { FontColor, BackgroundColor } from '../models/toolbar-settings';import { IFrameSettings } from '../models/iframe-settings';import { InlineMode } from '../models/inline-mode';import { Link } from '../renderer/link-module';import { Image } from '../renderer/image-module';import { Audio } from '../renderer/audio-module';import { Video } from '../renderer/video-module';import { Table } from '../renderer/table-module';import { Count } from '../actions/count';import { HtmlEditor } from '../actions/html-editor';import { MarkdownEditor } from '../actions/markdown-editor';import { defaultLocale } from '../models/default-locale';import { setAttributes } from '../actions/html-attributes';import { BaseToolbar } from '../actions/base-toolbar';import { QuickToolbar } from '../actions/quick-toolbar';import { FullScreen } from '../actions/full-screen';import { PasteCleanup } from '../actions/paste-clean-up';import { EnterKeyAction } from '../actions/enter-key';import * as CONSTANT from '../../common/constant';import { IHtmlKeyboardEvent } from '../../editor-manager/base/interface';import { dispatchEvent, getEditValue, isIDevice, decode, isEditableValueEmpty, getDefaultValue } from '../base/util';import { DialogRenderer } from '../renderer/dialog-renderer';import { SelectedEventArgs, RemovingEventArgs, UploadingEventArgs, BeforeUploadEventArgs } from '@syncfusion/ej2-inputs';import { Resize } from '../actions/resize';import { FileManager } from '../actions/file-manager';import { EditorManager } from '../../editor-manager';
|
|
1
|
+
import { Component, ModuleDeclaration, EventHandler, Complex, Browser, EmitType, addClass, select, detach } from '@syncfusion/ej2-base';import { Property, NotifyPropertyChanges, INotifyPropertyChanged, formatUnit, L10n, closest } from '@syncfusion/ej2-base';import { setStyleAttribute, Event, removeClass, print as printWindow, attributes } from '@syncfusion/ej2-base';import { isNullOrUndefined as isNOU, compile, append, extend, debounce } from '@syncfusion/ej2-base';import { Touch as EJ2Touch, TapEventArgs } from '@syncfusion/ej2-base';import { getScrollableParent, BeforeOpenEventArgs, BeforeCloseEventArgs } from '@syncfusion/ej2-popups';import * as events from '../base/constant';import * as classes from '../base/classes';import { Render } from '../renderer/render';import { ViewSource } from '../renderer/view-source';import { IRenderer, IFormatter, PrintEventArgs, ActionCompleteEventArgs, ActionBeginEventArgs, ImageDropEventArgs, IFormatPainterArgs } from './interface';import { IExecutionGroup, executeGroup, CommandName, ResizeArgs, StatusArgs, ToolbarStatusEventArgs } from './interface';import { BeforeQuickToolbarOpenArgs, ChangeEventArgs, AfterImageDeleteEventArgs, AfterMediaDeleteEventArgs, PasteCleanupArgs } from './interface';import { ILinkCommandsArgs, IImageCommandsArgs, IAudioCommandsArgs, IVideoCommandsArgs, BeforeSanitizeHtmlArgs, ITableCommandsArgs, ExecuteCommandOption } from './interface';import { ServiceLocator } from '../services/service-locator';import { RendererFactory } from '../services/renderer-factory';import { RenderType, ToolbarType, DialogType } from './enum';import { EditorMode, ShiftEnterKey, EnterKey } from './../../common/types';import { Toolbar } from '../actions/toolbar';import { ExecCommandCallBack } from '../actions/execute-command-callback';import { KeyboardEvents, KeyboardEventArgs } from '../actions/keyboard';import { FontFamilyModel, FontSizeModel, FontColorModel, FormatModel, BackgroundColorModel, NumberFormatListModel, BulletFormatListModel } from '../models/models';import { ToolbarSettingsModel, IFrameSettingsModel, ImageSettingsModel, AudioSettingsModel, VideoSettingsModel, TableSettingsModel } from '../models/models';import { QuickToolbarSettingsModel, InlineModeModel, PasteCleanupSettingsModel, FileManagerSettingsModel , FormatPainterSettingsModel} from '../models/models';import { ToolbarSettings, ImageSettings, AudioSettings, VideoSettings, QuickToolbarSettings, FontFamily, FontSize, Format, NumberFormatList, BulletFormatList, FormatPainterSettings } from '../models/toolbar-settings';import { FileManagerSettings } from '../models/toolbar-settings';import { TableSettings, PasteCleanupSettings } from '../models/toolbar-settings';import { FontColor, BackgroundColor } from '../models/toolbar-settings';import { IFrameSettings } from '../models/iframe-settings';import { InlineMode } from '../models/inline-mode';import { Link } from '../renderer/link-module';import { Image } from '../renderer/image-module';import { Audio } from '../renderer/audio-module';import { Video } from '../renderer/video-module';import { Table } from '../renderer/table-module';import { Count } from '../actions/count';import { HtmlEditor } from '../actions/html-editor';import { MarkdownEditor } from '../actions/markdown-editor';import { defaultLocale } from '../models/default-locale';import { setAttributes } from '../actions/html-attributes';import { BaseToolbar } from '../actions/base-toolbar';import { QuickToolbar } from '../actions/quick-toolbar';import { FullScreen } from '../actions/full-screen';import { PasteCleanup } from '../actions/paste-clean-up';import { EnterKeyAction } from '../actions/enter-key';import * as CONSTANT from '../../common/constant';import { IHtmlKeyboardEvent } from '../../editor-manager/base/interface';import { dispatchEvent, getEditValue, isIDevice, decode, isEditableValueEmpty, getDefaultValue } from '../base/util';import { DialogRenderer } from '../renderer/dialog-renderer';import { SelectedEventArgs, RemovingEventArgs, UploadingEventArgs, BeforeUploadEventArgs } from '@syncfusion/ej2-inputs';import { Resize } from '../actions/resize';import { FileManager } from '../actions/file-manager';import { EditorManager } from '../../editor-manager';import { FormatPainter } from '../actions/format-painter';
|
|
2
2
|
import {ComponentModel} from '@syncfusion/ej2-base';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -92,13 +92,32 @@ export interface RichTextEditorModel extends ComponentModel{
|
|
|
92
92
|
*/
|
|
93
93
|
pasteCleanupSettings?: PasteCleanupSettingsModel;
|
|
94
94
|
|
|
95
|
+
/**
|
|
96
|
+
* Specifies the format painter options in Rich Text Editor with the following properties.
|
|
97
|
+
* * allowedContext - Sets the context or contexts in which styles will be copied.
|
|
98
|
+
* * allowedFormats - Sets the tag name selectors for elements from which the formats can be copied.
|
|
99
|
+
* * deniedFormats - Sets the selectors for elements from which formats cannot be copied.
|
|
100
|
+
*
|
|
101
|
+
* {% codeBlock src='rich-text-editor/format-painter-settings/index.md' %}{% endcodeBlock %}
|
|
102
|
+
*
|
|
103
|
+
* @default
|
|
104
|
+
* {
|
|
105
|
+
* allowedContext: ['Text', 'List', 'Table'],
|
|
106
|
+
* allowedFormats: 'b; em; font; sub; sup; kbd; i; s; u; code; strong; span; p; div; h1; h2; h3; h4; h5; h6; blockquote; table; thead; tbody; tr; td; th; ol; ul; li; pre;',
|
|
107
|
+
* deniedFormats: null
|
|
108
|
+
* }
|
|
109
|
+
* @aspignore
|
|
110
|
+
* @private
|
|
111
|
+
*/
|
|
112
|
+
formatPainterSettings?: FormatPainterSettingsModel
|
|
113
|
+
|
|
95
114
|
/**
|
|
96
115
|
* Specifies the items to be rendered in an iframe mode, and it has the following properties.
|
|
97
116
|
* * enable - Set Boolean value to enable, the editors content is placed in an iframe and isolated from the rest of the page.
|
|
98
117
|
* * attributes - Custom style to be used inside the iframe to display content. This style is added to the iframe body.
|
|
99
118
|
* * resources - we can add both styles and scripts to the iframe.
|
|
100
|
-
* 1. styles[] - An array of CSS style files to inject inside the iframe to display content
|
|
101
|
-
* 2. scripts[] - An array of JS script files to inject inside the iframe
|
|
119
|
+
* 1. styles[] - An array of CSS style files to inject inside the iframe to display content
|
|
120
|
+
* 2. scripts[] - An array of JS script files to inject inside the iframe
|
|
102
121
|
*
|
|
103
122
|
* {% codeBlock src='rich-text-editor/iframe-settings/index.md' %}{% endcodeBlock %}
|
|
104
123
|
*
|
|
@@ -287,6 +306,13 @@ export interface RichTextEditorModel extends ComponentModel{
|
|
|
287
306
|
*/
|
|
288
307
|
enablePersistence?: boolean;
|
|
289
308
|
|
|
309
|
+
/**
|
|
310
|
+
* Specify the value whether tooltip will be displayed for the Rich Text Editor toolbar.
|
|
311
|
+
*
|
|
312
|
+
* @default false.
|
|
313
|
+
*/
|
|
314
|
+
showTooltip?: boolean;
|
|
315
|
+
|
|
290
316
|
/**
|
|
291
317
|
* Enables or disables the resizing option in the editor.
|
|
292
318
|
* If enabled, the Rich Text Editor can be resized by dragging the resize icon in the bottom right corner.
|
|
@@ -948,7 +974,7 @@ export interface RichTextEditorModel extends ComponentModel{
|
|
|
948
974
|
*
|
|
949
975
|
* @event 'afterPasteCleanup'
|
|
950
976
|
*/
|
|
951
|
-
afterPasteCleanup?: EmitType<
|
|
977
|
+
afterPasteCleanup?: EmitType<object>;
|
|
952
978
|
|
|
953
979
|
/**
|
|
954
980
|
* Triggers before drop the image.
|
|
@@ -15,7 +15,7 @@ import { Toolbar } from '../actions/toolbar';
|
|
|
15
15
|
import { KeyboardEvents } from '../actions/keyboard';
|
|
16
16
|
import { FontFamilyModel, FontSizeModel, FontColorModel, FormatModel, BackgroundColorModel, NumberFormatListModel, BulletFormatListModel } from '../models/models';
|
|
17
17
|
import { ToolbarSettingsModel, IFrameSettingsModel, ImageSettingsModel, AudioSettingsModel, VideoSettingsModel, TableSettingsModel } from '../models/models';
|
|
18
|
-
import { QuickToolbarSettingsModel, InlineModeModel, PasteCleanupSettingsModel, FileManagerSettingsModel } from '../models/models';
|
|
18
|
+
import { QuickToolbarSettingsModel, InlineModeModel, PasteCleanupSettingsModel, FileManagerSettingsModel, FormatPainterSettingsModel } from '../models/models';
|
|
19
19
|
import { Link } from '../renderer/link-module';
|
|
20
20
|
import { Image } from '../renderer/image-module';
|
|
21
21
|
import { Audio } from '../renderer/audio-module';
|
|
@@ -32,6 +32,7 @@ import { EnterKeyAction } from '../actions/enter-key';
|
|
|
32
32
|
import { SelectedEventArgs, RemovingEventArgs, UploadingEventArgs, BeforeUploadEventArgs } from '@syncfusion/ej2-inputs';
|
|
33
33
|
import { Resize } from '../actions/resize';
|
|
34
34
|
import { FileManager } from '../actions/file-manager';
|
|
35
|
+
import { FormatPainter } from '../actions/format-painter';
|
|
35
36
|
/**
|
|
36
37
|
* Represents the Rich Text Editor component.
|
|
37
38
|
* ```html
|
|
@@ -178,6 +179,11 @@ export declare class RichTextEditor extends Component<HTMLElement> implements IN
|
|
|
178
179
|
|
|
179
180
|
*/
|
|
180
181
|
fileManagerModule: FileManager;
|
|
182
|
+
/**
|
|
183
|
+
* @hidden
|
|
184
|
+
|
|
185
|
+
*/
|
|
186
|
+
formatPainterModule: FormatPainter;
|
|
181
187
|
needsID: boolean;
|
|
182
188
|
/**
|
|
183
189
|
* Specifies the group of items aligned horizontally in the toolbar as well as defined the toolbar rendering type.
|
|
@@ -262,13 +268,31 @@ export declare class RichTextEditor extends Component<HTMLElement> implements IN
|
|
|
262
268
|
* }
|
|
263
269
|
*/
|
|
264
270
|
pasteCleanupSettings: PasteCleanupSettingsModel;
|
|
271
|
+
/**
|
|
272
|
+
* Specifies the format painter options in Rich Text Editor with the following properties.
|
|
273
|
+
* * allowedContext - Sets the context or contexts in which styles will be copied.
|
|
274
|
+
* * allowedFormats - Sets the tag name selectors for elements from which the formats can be copied.
|
|
275
|
+
* * deniedFormats - Sets the selectors for elements from which formats cannot be copied.
|
|
276
|
+
*
|
|
277
|
+
* {% codeBlock src='rich-text-editor/format-painter-settings/index.md' %}{% endcodeBlock %}
|
|
278
|
+
*
|
|
279
|
+
* @default
|
|
280
|
+
* {
|
|
281
|
+
* allowedContext: ['Text', 'List', 'Table'],
|
|
282
|
+
* allowedFormats: 'b; em; font; sub; sup; kbd; i; s; u; code; strong; span; p; div; h1; h2; h3; h4; h5; h6; blockquote; table; thead; tbody; tr; td; th; ol; ul; li; pre;',
|
|
283
|
+
* deniedFormats: null
|
|
284
|
+
* }
|
|
285
|
+
* @aspignore
|
|
286
|
+
* @private
|
|
287
|
+
*/
|
|
288
|
+
formatPainterSettings: FormatPainterSettingsModel;
|
|
265
289
|
/**
|
|
266
290
|
* Specifies the items to be rendered in an iframe mode, and it has the following properties.
|
|
267
291
|
* * enable - Set Boolean value to enable, the editors content is placed in an iframe and isolated from the rest of the page.
|
|
268
292
|
* * attributes - Custom style to be used inside the iframe to display content. This style is added to the iframe body.
|
|
269
293
|
* * resources - we can add both styles and scripts to the iframe.
|
|
270
|
-
* 1. styles[] - An array of CSS style files to inject inside the iframe to display content
|
|
271
|
-
* 2. scripts[] - An array of JS script files to inject inside the iframe
|
|
294
|
+
* 1. styles[] - An array of CSS style files to inject inside the iframe to display content
|
|
295
|
+
* 2. scripts[] - An array of JS script files to inject inside the iframe
|
|
272
296
|
*
|
|
273
297
|
* {% codeBlock src='rich-text-editor/iframe-settings/index.md' %}{% endcodeBlock %}
|
|
274
298
|
*
|
|
@@ -447,6 +471,12 @@ export declare class RichTextEditor extends Component<HTMLElement> implements IN
|
|
|
447
471
|
* @default false.
|
|
448
472
|
*/
|
|
449
473
|
enablePersistence: boolean;
|
|
474
|
+
/**
|
|
475
|
+
* Specify the value whether tooltip will be displayed for the Rich Text Editor toolbar.
|
|
476
|
+
*
|
|
477
|
+
* @default false.
|
|
478
|
+
*/
|
|
479
|
+
showTooltip: boolean;
|
|
450
480
|
/**
|
|
451
481
|
* Enables or disables the resizing option in the editor.
|
|
452
482
|
* If enabled, the Rich Text Editor can be resized by dragging the resize icon in the bottom right corner.
|
|
@@ -1044,7 +1074,7 @@ export declare class RichTextEditor extends Component<HTMLElement> implements IN
|
|
|
1044
1074
|
*
|
|
1045
1075
|
* @event 'afterPasteCleanup'
|
|
1046
1076
|
*/
|
|
1047
|
-
afterPasteCleanup: EmitType<
|
|
1077
|
+
afterPasteCleanup: EmitType<object>;
|
|
1048
1078
|
/**
|
|
1049
1079
|
* Triggers before drop the image.
|
|
1050
1080
|
*
|
|
@@ -1151,7 +1181,7 @@ export declare class RichTextEditor extends Component<HTMLElement> implements IN
|
|
|
1151
1181
|
* @param {ExecuteCommandOption} option - specifies the command option
|
|
1152
1182
|
* @public
|
|
1153
1183
|
*/
|
|
1154
|
-
executeCommand(commandName: CommandName, value?: string | HTMLElement | ILinkCommandsArgs | IImageCommandsArgs | ITableCommandsArgs, option?: ExecuteCommandOption): void;
|
|
1184
|
+
executeCommand(commandName: CommandName, value?: string | HTMLElement | ILinkCommandsArgs | IImageCommandsArgs | ITableCommandsArgs | FormatPainterSettingsModel, option?: ExecuteCommandOption): void;
|
|
1155
1185
|
private htmlPurifier;
|
|
1156
1186
|
private encode;
|
|
1157
1187
|
/**
|