@sapui5/sap.ui.richtexteditor 1.99.1 → 1.102.0
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/package.json +1 -1
- package/src/sap/ui/richtexteditor/.library +1 -1
- package/src/sap/ui/richtexteditor/RTESplitButton.js +1 -1
- package/src/sap/ui/richtexteditor/RichTextEditor.js +143 -67
- package/src/sap/ui/richtexteditor/RichTextEditorRenderer.js +1 -2
- package/src/sap/ui/richtexteditor/ToolbarWrapper.js +508 -297
- package/src/sap/ui/richtexteditor/ToolbarWrapperRenderer.js +1 -2
- package/src/sap/ui/richtexteditor/library.js +59 -30
- package/src/sap/ui/richtexteditor/messagebundle_ru.properties +1 -1
- package/src/sap/ui/richtexteditor/themes/base/RichTextEditor.less +9 -48
- package/src/sap/ui/richtexteditor/themes/sap_belize/RichTextEditor.less +29 -0
- package/src/sap/ui/richtexteditor/themes/sap_belize/library.source.less +3 -1
- package/src/sap/ui/richtexteditor/themes/sap_belize_hcb/RichTextEditor.less +29 -0
- package/src/sap/ui/richtexteditor/themes/sap_belize_hcb/library.source.less +2 -0
- package/src/sap/ui/richtexteditor/themes/sap_belize_hcw/RichTextEditor.less +30 -0
- package/src/sap/ui/richtexteditor/themes/sap_belize_hcw/library.source.less +2 -0
- package/src/sap/ui/richtexteditor/themes/sap_fiori_3/RichTextEditor.less +4 -5
- package/src/sap/ui/richtexteditor/themes/sap_fiori_3_dark/RichTextEditor.less +4 -5
- package/src/sap/ui/richtexteditor/themes/sap_fiori_3_hcb/RichTextEditor.less +4 -5
- package/src/sap/ui/richtexteditor/themes/sap_fiori_3_hcw/RichTextEditor.less +4 -5
- package/src/sap/ui/richtexteditor/themes/sap_horizon/RichTextEditor.less +15 -30
- package/src/sap/ui/richtexteditor/themes/sap_horizon_dark/RichTextEditor.less +30 -0
- package/src/sap/ui/richtexteditor/themes/sap_horizon_dark/library.source.less +10 -0
- package/src/sap/ui/richtexteditor/themes/sap_horizon_hcb/RichTextEditor.less +15 -0
- package/src/sap/ui/richtexteditor/themes/sap_horizon_hcb/library.source.less +10 -0
- package/src/sap/ui/richtexteditor/themes/sap_horizon_hcw/RichTextEditor.less +15 -0
- package/src/sap/ui/richtexteditor/themes/sap_horizon_hcw/library.source.less +10 -0
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<vendor>SAP SE</vendor>
|
|
6
6
|
<copyright>SAPUI5
|
|
7
7
|
* (c) Copyright 2009-2022 SAP SE. All rights reserved.</copyright>
|
|
8
|
-
<version>1.
|
|
8
|
+
<version>1.102.0</version>
|
|
9
9
|
|
|
10
10
|
<documentation>A rich text editor (RTE) control. Requires installation of an additional rich text editor library.</documentation>
|
|
11
11
|
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* (c) Copyright 2009-2022 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
/*global Promise */
|
|
7
|
-
|
|
8
6
|
// Provides control sap.ui.richtexteditor.RichTextEditor.
|
|
9
7
|
sap.ui.define([
|
|
10
8
|
"sap/ui/thirdparty/jquery",
|
|
11
9
|
'sap/ui/core/Control',
|
|
10
|
+
'sap/ui/core/library',
|
|
11
|
+
'sap/ui/core/Locale',
|
|
12
12
|
'sap/ui/core/ResizeHandler',
|
|
13
13
|
'./library',
|
|
14
14
|
'./ToolbarWrapper',
|
|
@@ -23,6 +23,8 @@ sap.ui.define([
|
|
|
23
23
|
function(
|
|
24
24
|
jQuery,
|
|
25
25
|
Control,
|
|
26
|
+
coreLibrary,
|
|
27
|
+
Locale,
|
|
26
28
|
ResizeHandler,
|
|
27
29
|
library,
|
|
28
30
|
ToolbarWrapper,
|
|
@@ -33,6 +35,9 @@ sap.ui.define([
|
|
|
33
35
|
Core
|
|
34
36
|
) {
|
|
35
37
|
"use strict";
|
|
38
|
+
|
|
39
|
+
var TextDirection = coreLibrary.TextDirection;
|
|
40
|
+
|
|
36
41
|
/**
|
|
37
42
|
* Describes the internal status of the editor component used inside the RichTextEditor control.
|
|
38
43
|
*
|
|
@@ -102,6 +107,47 @@ sap.ui.define([
|
|
|
102
107
|
* <li>Use callbacks to the native third-party API with care, as there may be compatibility issues with later versions.</li>
|
|
103
108
|
* </ul>
|
|
104
109
|
*
|
|
110
|
+
* <h3>Custom toolbar - adding and removing buttons</h3>
|
|
111
|
+
* With version 1.102 it is possible to redefine the button groups configuration in order to show only particular set of buttons in the custom toolbar of the <code>RichTextEditor</code>.
|
|
112
|
+
* This is possible in few ways:
|
|
113
|
+
* <ul>
|
|
114
|
+
* <li>By providing the buttons group configurations as a whole by setting the <code>buttonGroups</code> property of the control.</li>
|
|
115
|
+
* <li>By providing individual button group configuration via <code>addButtonGroup</code> method.</li>
|
|
116
|
+
* </ul>
|
|
117
|
+
*
|
|
118
|
+
* Consider the following when choosing your approach:
|
|
119
|
+
* <ul>
|
|
120
|
+
* <li>Setting <code>buttonGroups</code> will override all current custom toolbar button group configurations. This method allows for total redefining of the custom toolbar groups.</li>
|
|
121
|
+
* <li>Using <code>addButtonGroups</code> will try to add non-existing group into the configuration array, however, if such group configuration exists already, a warning will be logged and the new configuration will not be added. In order to replace the existing configuration you will need to remove it first via <code>removeButtonGroup</code>.</li>
|
|
122
|
+
* </ul>
|
|
123
|
+
*
|
|
124
|
+
* Below is a list of supported groups and buttons, which can be specified in the configuration objects (format is <<group name>>: <<supported buttons>>):
|
|
125
|
+
* <ul>
|
|
126
|
+
* <li>font-style: bold, italic, underline, strikethrough</li>
|
|
127
|
+
* <li>font: fontselect, fontsizeselect, forecolor, backcolor</li>
|
|
128
|
+
* <li>clipboard: cut, copy, paste</li>
|
|
129
|
+
* <li>structure: bullist, numlist, outdent, indent</li>
|
|
130
|
+
* <li>undo: undo, redo</li>
|
|
131
|
+
* <li>insert: image, emoticons</li>
|
|
132
|
+
* <li>link: link, unlink</li>
|
|
133
|
+
* <li>text-align: alignleft, aligncenter, alignright, alignjustify</li>
|
|
134
|
+
* </ul>
|
|
135
|
+
* Additional supported groups, which can be added only after the editor is loaded (they can not be specified in the above mentioned configuration):
|
|
136
|
+
* <ul>
|
|
137
|
+
* <li>table: table</li>
|
|
138
|
+
* <li>styleselect: styleselect</li>
|
|
139
|
+
* <ul>
|
|
140
|
+
* <b>Note!</b> Adding configuration for "text-align" group with any buttons will still render a menu button with all available options inside. Removing/hiding the group can be achieved by invoking <code>removeButtonGroup</code> or <code>setShowGroupTextAlign(false)</code> depending on the desired result.
|
|
141
|
+
*
|
|
142
|
+
* <b>Note!</b> There is no synchronization between the <code>setShowGroup*</code> properties and the configuration object that the application can specifying via <code>buttonGroups</code> in the constructor or on a later stage. This means that in case new configuration is provided and for particular group the passed object contains property <code>visible: true</code>, this group property will be respected no matter if the <code>RichTextEditor</code>'s property for this particular group is set to <code>false</code>.
|
|
143
|
+
* Example:
|
|
144
|
+
* Providing the following object as group configuration:
|
|
145
|
+
* {
|
|
146
|
+
* name: "font"
|
|
147
|
+
* visible: true
|
|
148
|
+
* }
|
|
149
|
+
* Will make the "font" group visible, no matter that calling <code>RichTextEditor.getShowGroupFont()</code> returns <code>false</code>.
|
|
150
|
+
*
|
|
105
151
|
* @extends sap.ui.core.Control
|
|
106
152
|
*
|
|
107
153
|
* @author SAP SE
|
|
@@ -130,7 +176,7 @@ sap.ui.define([
|
|
|
130
176
|
/**
|
|
131
177
|
* The text direction
|
|
132
178
|
*/
|
|
133
|
-
textDirection: { type: "sap.ui.core.TextDirection", group: "Appearance", defaultValue:
|
|
179
|
+
textDirection: { type: "sap.ui.core.TextDirection", group: "Appearance", defaultValue: TextDirection.Inherit },
|
|
134
180
|
|
|
135
181
|
/**
|
|
136
182
|
* Width of RichTextEditor control in CSS units.
|
|
@@ -172,41 +218,49 @@ sap.ui.define([
|
|
|
172
218
|
|
|
173
219
|
/**
|
|
174
220
|
* Determines whether the toolbar button group containing commands like Bold, Italic, Underline and Strikethrough is available. Changing this after the initial rendering will result in some visible redrawing.
|
|
221
|
+
* Note: This property will not be synchronized with group configuration provided via the buttonGroups property or when groups are added on a later stage.
|
|
175
222
|
*/
|
|
176
223
|
showGroupFontStyle: { type: "boolean", group: "Misc", defaultValue: true },
|
|
177
224
|
|
|
178
225
|
/**
|
|
179
226
|
* Determines whether the toolbar button group containing text alignment commands is available. Changing this after the initial rendering will result in some visible redrawing.
|
|
227
|
+
* Note: This property will not be synchronized with group configuration provided via the buttonGroups property or when groups are added on a later stage.
|
|
180
228
|
*/
|
|
181
229
|
showGroupTextAlign: { type: "boolean", group: "Misc", defaultValue: true },
|
|
182
230
|
|
|
183
231
|
/**
|
|
184
232
|
* Determines whether the toolbar button group containing commands like Bullets and Indentation is available. Changing this after the initial rendering will result in some visible redrawing.
|
|
233
|
+
* Note: This property will not be synchronized with group configuration provided via the buttonGroups property or when groups are added on a later stage.
|
|
185
234
|
*/
|
|
186
235
|
showGroupStructure: { type: "boolean", group: "Misc", defaultValue: true },
|
|
187
236
|
|
|
188
237
|
/**
|
|
189
238
|
* Determines whether the toolbar button group containing commands like Font, Font Size and Colors is available. Changing this after the initial rendering will result in some visible redrawing.
|
|
239
|
+
* Note: This property will not be synchronized with group configuration provided via the buttonGroups property or when groups are added on a later stage.
|
|
190
240
|
*/
|
|
191
241
|
showGroupFont: { type: "boolean", group: "Misc", defaultValue: false },
|
|
192
242
|
|
|
193
243
|
/**
|
|
194
244
|
* Determines whether the toolbar button group containing commands like Cut, Copy and Paste is available. Changing this after the initial rendering will result in some visible redrawing.
|
|
245
|
+
* Note: This property will not be synchronized with group configuration provided via the buttonGroups property or when groups are added on a later stage.
|
|
195
246
|
*/
|
|
196
247
|
showGroupClipboard: { type: "boolean", group: "Misc", defaultValue: true },
|
|
197
248
|
|
|
198
249
|
/**
|
|
199
250
|
* Determines whether the toolbar button group containing commands like Insert Image and Insert Smiley is available. Changing this after the initial rendering will result in some visible redrawing.
|
|
251
|
+
* Note: This property will not be synchronized with group configuration provided via the buttonGroups property or when groups are added on a later stage.
|
|
200
252
|
*/
|
|
201
253
|
showGroupInsert: { type: "boolean", group: "Misc", defaultValue: false },
|
|
202
254
|
|
|
203
255
|
/**
|
|
204
256
|
* Determines whether the toolbar button group containing commands like Create Link and Remove Link is available. Changing this after the initial rendering will result in some visible redrawing.
|
|
257
|
+
* Note: This property will not be synchronized with group configuration provided via the buttonGroups property or when groups are added on a later stage.
|
|
205
258
|
*/
|
|
206
259
|
showGroupLink: { type: "boolean", group: "Misc", defaultValue: false },
|
|
207
260
|
|
|
208
261
|
/**
|
|
209
262
|
* Determines whether the toolbar button group containing commands like Undo and Redo is available. Changing this after the initial rendering will result in some visible redrawing.
|
|
263
|
+
* Note: This property will not be synchronized with group configuration provided via the buttonGroups property or when groups are added on a later stage.
|
|
210
264
|
*/
|
|
211
265
|
showGroupUndo: { type: "boolean", group: "Misc", defaultValue: false },
|
|
212
266
|
|
|
@@ -240,7 +294,7 @@ sap.ui.define([
|
|
|
240
294
|
|
|
241
295
|
/**
|
|
242
296
|
* An array of button configurations. These configurations contain the names of buttons as array in the property "buttons" and the name of the group in "name", they can also contain the "row" where the buttons should be placed, a "priority" and whether the buttons are "visible". See method addButtonGroup() for more details on the structure of the objects in this array.
|
|
243
|
-
* <b>Note:</b> <code>buttonGroups</code> is a feature from the native editor. Its supported scope with <code>customToolbar</code> is limited up to the grouping- the user could turn on/off a whole group, but
|
|
297
|
+
* <b>Note:</b> <code>buttonGroups</code> is a feature from the native editor. Its supported scope with <code>customToolbar</code> is limited up to the grouping- the user could turn on/off a whole group, but modifying buttons within a group is not possible. In order to achieve that functionality with <code>customToolbar</code>, the developer needs to turn the group off and instantiate their own <code>sap.m.Button</code>(s) with the desired functionality.
|
|
244
298
|
*/
|
|
245
299
|
buttonGroups: {type: "object[]", group: "Behavior", defaultValue: [] },
|
|
246
300
|
|
|
@@ -777,85 +831,100 @@ sap.ui.define([
|
|
|
777
831
|
|
|
778
832
|
/**
|
|
779
833
|
* Adds a button group to the editor.
|
|
834
|
+
* <b>Note</b>: Adding already existing group will not do anything. If a button group needs to be changed, it first needs to be removed and then added by providing its name or map object, containing its desired configuration.
|
|
780
835
|
*
|
|
781
|
-
* @param {object|string} [
|
|
782
|
-
* @param {string[]} [
|
|
783
|
-
* @param {string} [
|
|
784
|
-
* @param {boolean} [
|
|
785
|
-
* @param {int} [
|
|
786
|
-
* @param {int} [
|
|
787
|
-
* @param {int} [
|
|
836
|
+
* @param {object|string} [vGroup] Name/ID of a single button or object containing the group information
|
|
837
|
+
* @param {string[]} [vGroup.buttons] Array of name/IDs of the buttons in the group
|
|
838
|
+
* @param {string} [vGroup.name] Name/ID of the group.
|
|
839
|
+
* @param {boolean} [vGroup.visible=true] (optional) The priority of the button group. Lower priorities are added first.
|
|
840
|
+
* @param {int} [vGroup.row=0] (optional) Row number in which the button should be
|
|
841
|
+
* @param {int} [vGroup.priority=10] (optional) The priority of the button group. Lower priorities are added first.
|
|
842
|
+
* @param {int} [vGroup.customToolbarPriority] (optional) The priority of the button group in the custom toolbar. Each default group in the custom toolbar has a predefined <code>customToolbarPriority</code>. Lower priorities are added in first.
|
|
788
843
|
* @returns {object} Control instance (for method chaining)
|
|
789
844
|
* @public
|
|
790
845
|
*/
|
|
791
|
-
RichTextEditor.prototype.addButtonGroup = function (
|
|
846
|
+
RichTextEditor.prototype.addButtonGroup = function (vGroup) {
|
|
792
847
|
var aGroups = this.getProperty("buttonGroups").slice(),
|
|
793
|
-
oCustomToolbar = this.getAggregation("_toolbarWrapper")
|
|
794
|
-
|
|
848
|
+
oCustomToolbar = this.getAggregation("_toolbarWrapper");
|
|
849
|
+
|
|
850
|
+
if (!vGroup) {
|
|
851
|
+
return this;
|
|
852
|
+
}
|
|
795
853
|
|
|
796
854
|
// check if the group is already added
|
|
797
855
|
for (var i = 0; i < aGroups.length; ++i) {
|
|
798
|
-
if (
|
|
856
|
+
if (typeof vGroup === "string" && aGroups[i].name === vGroup || aGroups[i].name === vGroup.name) {
|
|
857
|
+
Log.warning("Trying to add already existing group: " + (typeof vGroup === "string" ? vGroup : vGroup.name) + ". Please remove the group first and then add it.", this);
|
|
799
858
|
return this;
|
|
800
859
|
}
|
|
801
860
|
}
|
|
802
861
|
|
|
803
|
-
//
|
|
804
|
-
if (typeof
|
|
805
|
-
|
|
806
|
-
|
|
862
|
+
// check for the mandatory parameters "vGroup.buttons" and "vGroup.name"
|
|
863
|
+
if (typeof vGroup === "object" && !(vGroup.name && Array.isArray(vGroup.buttons))) {
|
|
864
|
+
Log.error("The properties 'name' and 'buttons' are mandatory for the group configuration object. Please make sure they exist within the provided configuration.", this);
|
|
865
|
+
return this;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
// check buttons in the vGroup.buttons property
|
|
869
|
+
if (typeof vGroup === "object" && !(Array.isArray(vGroup.buttons) && vGroup.buttons.length)) {
|
|
870
|
+
Log.error("The 'buttons' array of the provided group configuration object cannot be empty.", this);
|
|
871
|
+
return this;
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
//if vGroup is string and the group name is known to the RTE control, internally we are creating a group object.
|
|
875
|
+
if (typeof vGroup === "string") {
|
|
876
|
+
switch (vGroup) {
|
|
807
877
|
case "formatselect":
|
|
808
|
-
|
|
809
|
-
mGroup = {
|
|
878
|
+
vGroup = {
|
|
810
879
|
name: "formatselect",
|
|
811
880
|
buttons: ["formatselect"]
|
|
812
881
|
};
|
|
813
882
|
break;
|
|
814
883
|
case "styleselect":
|
|
815
|
-
|
|
816
|
-
mGroup = {
|
|
884
|
+
vGroup = {
|
|
817
885
|
name: "styleselect",
|
|
818
886
|
buttons: ["styleselect"],
|
|
819
887
|
customToolbarPriority: 40
|
|
820
888
|
};
|
|
821
889
|
break;
|
|
822
890
|
case "table":
|
|
823
|
-
|
|
824
|
-
mGroup = {
|
|
891
|
+
vGroup = {
|
|
825
892
|
name: "table",
|
|
826
893
|
buttons: ["table"],
|
|
827
894
|
customToolbarPriority: 90
|
|
828
895
|
};
|
|
829
896
|
break;
|
|
830
897
|
default:
|
|
831
|
-
|
|
898
|
+
vGroup = {
|
|
832
899
|
name: this._createId("buttonGroup"),
|
|
833
|
-
buttons: [
|
|
900
|
+
buttons: [vGroup]
|
|
834
901
|
};
|
|
835
902
|
}
|
|
836
903
|
}
|
|
837
904
|
|
|
838
|
-
if
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
if (mGroup.priority === undefined) {
|
|
842
|
-
mGroup.priority = 10;
|
|
843
|
-
}
|
|
844
|
-
if (mGroup.row === undefined) {
|
|
845
|
-
mGroup.row = 0;
|
|
846
|
-
}
|
|
905
|
+
// Check if any optional configuration parameters are missing
|
|
906
|
+
// and if so - update the group object with their default values.
|
|
907
|
+
this._checkAndUpdateGroupInfo(vGroup);
|
|
847
908
|
|
|
848
909
|
var aButtonGroups = this.getButtonGroups();
|
|
849
|
-
aButtonGroups.push(
|
|
910
|
+
aButtonGroups.push(vGroup);
|
|
850
911
|
this.setProperty("buttonGroups", aButtonGroups);
|
|
851
912
|
|
|
852
913
|
if (oCustomToolbar) {
|
|
853
|
-
|
|
914
|
+
// Provide the new configuration of the group to the custom toolbar
|
|
915
|
+
oCustomToolbar.addButtonGroupToContent(vGroup);
|
|
854
916
|
}
|
|
855
917
|
|
|
856
918
|
return this;
|
|
857
919
|
};
|
|
858
920
|
|
|
921
|
+
/**
|
|
922
|
+
* Removes a button group from the editor.
|
|
923
|
+
*
|
|
924
|
+
* @param {string} [sGroupName] The name of the group to be removed.
|
|
925
|
+
* @returns {object} Control instance (for method chaining)
|
|
926
|
+
* @public
|
|
927
|
+
*/
|
|
859
928
|
RichTextEditor.prototype.removeButtonGroup = function(sGroupName) {
|
|
860
929
|
var aGroups = this.getProperty("buttonGroups").slice(0),
|
|
861
930
|
oCustomToolbar = this.getAggregation("_toolbarWrapper");
|
|
@@ -864,7 +933,6 @@ sap.ui.define([
|
|
|
864
933
|
if (aGroups[i].name === sGroupName) {
|
|
865
934
|
aGroups.splice(i, 1);
|
|
866
935
|
--i;
|
|
867
|
-
|
|
868
936
|
oCustomToolbar && oCustomToolbar.removeButtonGroup(sGroupName);
|
|
869
937
|
}
|
|
870
938
|
}
|
|
@@ -888,6 +956,10 @@ sap.ui.define([
|
|
|
888
956
|
return this;
|
|
889
957
|
}
|
|
890
958
|
|
|
959
|
+
// There are some optional parameters in the groups config, which need to be checked and if not provided
|
|
960
|
+
// set a default values
|
|
961
|
+
aGroups.forEach(this._checkAndUpdateGroupInfo);
|
|
962
|
+
|
|
891
963
|
this.setProperty("buttonGroups", aGroups);
|
|
892
964
|
|
|
893
965
|
oCustomToolbar = this.getAggregation("_toolbarWrapper");
|
|
@@ -900,6 +972,29 @@ sap.ui.define([
|
|
|
900
972
|
|
|
901
973
|
};
|
|
902
974
|
|
|
975
|
+
/**
|
|
976
|
+
* Checks the group object for optional parameters and adds them with their default values in case they are missing
|
|
977
|
+
* The properties that this method checks for are (default values are in brackets):
|
|
978
|
+
* - visible (true)
|
|
979
|
+
* - priority (10)
|
|
980
|
+
* - row (0)
|
|
981
|
+
*
|
|
982
|
+
* @param {object} oGroup The group object that needs to be checked and modified if needed.
|
|
983
|
+
*/
|
|
984
|
+
RichTextEditor.prototype._checkAndUpdateGroupInfo = function (oGroup) {
|
|
985
|
+
// As those are optional parameters we are adding default values
|
|
986
|
+
// in case the application developers have not done so.
|
|
987
|
+
if (oGroup.visible === undefined) {
|
|
988
|
+
oGroup.visible = true;
|
|
989
|
+
}
|
|
990
|
+
if (oGroup.priority === undefined) {
|
|
991
|
+
oGroup.priority = 10;
|
|
992
|
+
}
|
|
993
|
+
if (oGroup.row === undefined) {
|
|
994
|
+
oGroup.row = 0;
|
|
995
|
+
}
|
|
996
|
+
};
|
|
997
|
+
|
|
903
998
|
/**
|
|
904
999
|
* Sets the plugins to the editor.
|
|
905
1000
|
*
|
|
@@ -932,7 +1027,7 @@ sap.ui.define([
|
|
|
932
1027
|
/**
|
|
933
1028
|
* Make the button group with the given name (in)visible (if used before initialization of the editor)
|
|
934
1029
|
*
|
|
935
|
-
* @param {string} [sGroupName] Name of the group of buttons to be
|
|
1030
|
+
* @param {string} [sGroupName] Name of the group of buttons to be changed
|
|
936
1031
|
* @param {boolean} [bVisible=false] Whether or not this group should be visible
|
|
937
1032
|
* @returns {object} Control instance (for method chaining)
|
|
938
1033
|
* @private
|
|
@@ -1022,13 +1117,6 @@ sap.ui.define([
|
|
|
1022
1117
|
buttons: [
|
|
1023
1118
|
"bullist", "numlist", "outdent", "indent"
|
|
1024
1119
|
]
|
|
1025
|
-
}, {
|
|
1026
|
-
name: "e-mail",
|
|
1027
|
-
visible: false,
|
|
1028
|
-
row: 1,
|
|
1029
|
-
priority: 30,
|
|
1030
|
-
customToolbarPriority: 10,
|
|
1031
|
-
buttons: []
|
|
1032
1120
|
}, {
|
|
1033
1121
|
name: "undo",
|
|
1034
1122
|
visible: false,
|
|
@@ -1056,9 +1144,7 @@ sap.ui.define([
|
|
|
1056
1144
|
buttons: [
|
|
1057
1145
|
"link", "unlink"
|
|
1058
1146
|
]
|
|
1059
|
-
}
|
|
1060
|
-
|
|
1061
|
-
this.addButtonGroup({
|
|
1147
|
+
}, {
|
|
1062
1148
|
// Text Align group
|
|
1063
1149
|
name: "text-align",
|
|
1064
1150
|
visible: true,
|
|
@@ -1068,7 +1154,7 @@ sap.ui.define([
|
|
|
1068
1154
|
buttons: [
|
|
1069
1155
|
"alignleft", "aligncenter", "alignright", "alignjustify"
|
|
1070
1156
|
]
|
|
1071
|
-
});
|
|
1157
|
+
}]);
|
|
1072
1158
|
};
|
|
1073
1159
|
|
|
1074
1160
|
// the following functions shall not work after the first rendering
|
|
@@ -1228,19 +1314,6 @@ sap.ui.define([
|
|
|
1228
1314
|
return aPluginNames.join(",");
|
|
1229
1315
|
};
|
|
1230
1316
|
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
/**
|
|
1234
|
-
* Checks whether TinyMCE has rendered its HTML
|
|
1235
|
-
*
|
|
1236
|
-
* @returns {boolean} Whether TinyMCE is rendered inside the page
|
|
1237
|
-
* @private
|
|
1238
|
-
*/
|
|
1239
|
-
RichTextEditor.prototype.tinyMCEReady = function() {
|
|
1240
|
-
var iframe = (this._iframeId ? window.document.getElementById(this._iframeId) : null);
|
|
1241
|
-
return !!iframe;
|
|
1242
|
-
};
|
|
1243
|
-
|
|
1244
1317
|
/**
|
|
1245
1318
|
* Event handler being called when the text in the editor has changed
|
|
1246
1319
|
*
|
|
@@ -1335,7 +1408,7 @@ sap.ui.define([
|
|
|
1335
1408
|
/**
|
|
1336
1409
|
* Determines if a new TinyMCE instance should be loaded.
|
|
1337
1410
|
* @private
|
|
1338
|
-
* @returns {boolean}
|
|
1411
|
+
* @returns {boolean} Whether tinyMCE should be loaded.
|
|
1339
1412
|
*/
|
|
1340
1413
|
RichTextEditor.prototype._shouldLoadTinyMCE = function () {
|
|
1341
1414
|
var sEditorType = this.getEditorType();
|
|
@@ -1480,6 +1553,7 @@ sap.ui.define([
|
|
|
1480
1553
|
* @private
|
|
1481
1554
|
*/
|
|
1482
1555
|
RichTextEditor.prototype.setValueTinyMCE = function(sValue) {
|
|
1556
|
+
|
|
1483
1557
|
switch (this._tinyMCEStatus) {
|
|
1484
1558
|
case EditorStatus.Initial:
|
|
1485
1559
|
case EditorStatus.Initializing:
|
|
@@ -1629,6 +1703,8 @@ sap.ui.define([
|
|
|
1629
1703
|
oToolbarDOM.setAttribute("aria-roledescription", oResourceBundle.getText("CUSTOM_TOOLBAR_ARIA_ROLEDESCRIPTION"));
|
|
1630
1704
|
}
|
|
1631
1705
|
|
|
1706
|
+
this._oEditor.getContainer().classList.add("sapUiRteEditorContainer");
|
|
1707
|
+
|
|
1632
1708
|
// TODO: make sure ready is fired if no reinitializations are pending
|
|
1633
1709
|
this.fireReadyTinyMCE();
|
|
1634
1710
|
};
|
|
@@ -1696,7 +1772,7 @@ sap.ui.define([
|
|
|
1696
1772
|
/**
|
|
1697
1773
|
* Helper function for evaluating the textDirection of the tinyMCE's content config
|
|
1698
1774
|
*
|
|
1699
|
-
* @returns {
|
|
1775
|
+
* @returns {string} Text direction
|
|
1700
1776
|
* @private
|
|
1701
1777
|
*/
|
|
1702
1778
|
RichTextEditor.prototype._getTextDirection = function() {
|
|
@@ -1779,7 +1855,7 @@ sap.ui.define([
|
|
|
1779
1855
|
* @returns {string} The language to be used for TinyMCE
|
|
1780
1856
|
*/
|
|
1781
1857
|
RichTextEditor.prototype._getLanguageTinyMCE = function() {
|
|
1782
|
-
var oLocale = new
|
|
1858
|
+
var oLocale = new Locale(Core.getConfiguration().getLanguage()),
|
|
1783
1859
|
sLanguage = oLocale.getLanguage(),
|
|
1784
1860
|
sRegion = oLocale.getRegion(),
|
|
1785
1861
|
bIsTinyMCE5 = this.getEditorType() === RichTextEditor.EDITORTYPE_TINYMCE5,
|