@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.
Files changed (27) hide show
  1. package/package.json +1 -1
  2. package/src/sap/ui/richtexteditor/.library +1 -1
  3. package/src/sap/ui/richtexteditor/RTESplitButton.js +1 -1
  4. package/src/sap/ui/richtexteditor/RichTextEditor.js +143 -67
  5. package/src/sap/ui/richtexteditor/RichTextEditorRenderer.js +1 -2
  6. package/src/sap/ui/richtexteditor/ToolbarWrapper.js +508 -297
  7. package/src/sap/ui/richtexteditor/ToolbarWrapperRenderer.js +1 -2
  8. package/src/sap/ui/richtexteditor/library.js +59 -30
  9. package/src/sap/ui/richtexteditor/messagebundle_ru.properties +1 -1
  10. package/src/sap/ui/richtexteditor/themes/base/RichTextEditor.less +9 -48
  11. package/src/sap/ui/richtexteditor/themes/sap_belize/RichTextEditor.less +29 -0
  12. package/src/sap/ui/richtexteditor/themes/sap_belize/library.source.less +3 -1
  13. package/src/sap/ui/richtexteditor/themes/sap_belize_hcb/RichTextEditor.less +29 -0
  14. package/src/sap/ui/richtexteditor/themes/sap_belize_hcb/library.source.less +2 -0
  15. package/src/sap/ui/richtexteditor/themes/sap_belize_hcw/RichTextEditor.less +30 -0
  16. package/src/sap/ui/richtexteditor/themes/sap_belize_hcw/library.source.less +2 -0
  17. package/src/sap/ui/richtexteditor/themes/sap_fiori_3/RichTextEditor.less +4 -5
  18. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_dark/RichTextEditor.less +4 -5
  19. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_hcb/RichTextEditor.less +4 -5
  20. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_hcw/RichTextEditor.less +4 -5
  21. package/src/sap/ui/richtexteditor/themes/sap_horizon/RichTextEditor.less +15 -30
  22. package/src/sap/ui/richtexteditor/themes/sap_horizon_dark/RichTextEditor.less +30 -0
  23. package/src/sap/ui/richtexteditor/themes/sap_horizon_dark/library.source.less +10 -0
  24. package/src/sap/ui/richtexteditor/themes/sap_horizon_hcb/RichTextEditor.less +15 -0
  25. package/src/sap/ui/richtexteditor/themes/sap_horizon_hcb/library.source.less +10 -0
  26. package/src/sap/ui/richtexteditor/themes/sap_horizon_hcw/RichTextEditor.less +15 -0
  27. package/src/sap/ui/richtexteditor/themes/sap_horizon_hcw/library.source.less +10 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.ui.richtexteditor",
3
- "version": "1.99.1",
3
+ "version": "1.102.0",
4
4
  "description": "SAPUI5 Library sap.ui.richtexteditor",
5
5
  "homepage": "https://sap.github.io/ui5-tooling/pages/SAPUI5/",
6
6
  "author": "SAP SE (https://www.sap.com)",
@@ -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.99.1</version>
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
 
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @alias sap.ui.richtexteditor.RTESplitButton
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.99.1
27
+ * @version 1.102.0
28
28
  */
29
29
  var RTESplitButton = SplitButton.extend("sap.ui.richtexteditor.RTESplitButton", {
30
30
  metadata: {
@@ -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: sap.ui.core.TextDirection.Inherit },
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 modifiyng 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.
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} [mGroup] Name/ID of a single button or object containing the group information
782
- * @param {string[]} [mGroup.buttons] Array of name/IDs of the buttons in the group
783
- * @param {string} [mGroup.name] Name/ID of the group.
784
- * @param {boolean} [mGroup.visible=true] (optional) The priority of the button group. Lower priorities are added first.
785
- * @param {int} [mGroup.row=0] (optional) Row number in which the button should be
786
- * @param {int} [mGroup.priority=10] (optional) The priority of the button group. Lower priorities are added first.
787
- * @param {int} [mGroup.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.
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 (mGroup) {
846
+ RichTextEditor.prototype.addButtonGroup = function (vGroup) {
792
847
  var aGroups = this.getProperty("buttonGroups").slice(),
793
- oCustomToolbar = this.getAggregation("_toolbarWrapper"),
794
- bFullGroup = true;
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 (mGroup === "string" && aGroups[i].name === mGroup || aGroups[i].name === mGroup.name) {
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
- //if mGroup is string internally we are creating a group object.
804
- if (typeof mGroup === "string") {
805
- bFullGroup = false;
806
- switch (mGroup) {
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
- bFullGroup = true;
809
- mGroup = {
878
+ vGroup = {
810
879
  name: "formatselect",
811
880
  buttons: ["formatselect"]
812
881
  };
813
882
  break;
814
883
  case "styleselect":
815
- bFullGroup = true;
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
- bFullGroup = true;
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
- mGroup = {
898
+ vGroup = {
832
899
  name: this._createId("buttonGroup"),
833
- buttons: [mGroup]
900
+ buttons: [vGroup]
834
901
  };
835
902
  }
836
903
  }
837
904
 
838
- if (mGroup.visible === undefined) {
839
- mGroup.visible = true;
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(mGroup);
910
+ aButtonGroups.push(vGroup);
850
911
  this.setProperty("buttonGroups", aButtonGroups);
851
912
 
852
913
  if (oCustomToolbar) {
853
- oCustomToolbar.addButtonGroupToContent(mGroup, bFullGroup);
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 chenged
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 {sString} Text direction
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 sap.ui.core.Locale(Core.getConfiguration().getLanguage()),
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,
@@ -10,8 +10,7 @@ sap.ui.define(['sap/ui/core/Core'],
10
10
 
11
11
  /**
12
12
  * RichTextEditorRenderer
13
- * @class
14
- * @static
13
+ * @namespace
15
14
  * @author Malte Wedel, Andreas Kunz
16
15
  */
17
16
  var RichTextEditorRenderer = {