@sapui5/sap.ui.richtexteditor 1.96.25 → 1.96.26

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 (628) hide show
  1. package/package.json +1 -1
  2. package/src/sap/ui/richtexteditor/.library +15 -6
  3. package/src/sap/ui/richtexteditor/RTESplitButton.js +1 -1
  4. package/src/sap/ui/richtexteditor/RichTextEditor.js +365 -229
  5. package/src/sap/ui/richtexteditor/RichTextEditorRenderer.js +14 -5
  6. package/src/sap/ui/richtexteditor/ToolbarWrapper.js +563 -316
  7. package/src/sap/ui/richtexteditor/ToolbarWrapperRenderer.js +3 -4
  8. package/src/sap/ui/richtexteditor/js/tiny_mce5/icons/default/icons.js +11 -1
  9. package/src/sap/ui/richtexteditor/js/tiny_mce5/icons/default/icons.min.js +1 -1
  10. package/src/sap/ui/richtexteditor/js/tiny_mce5/jquery.tinymce.min.js +88 -0
  11. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/ar.js +1 -420
  12. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/bg_BG.js +1 -419
  13. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/bn_BD.js +21 -179
  14. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/ca.js +1 -419
  15. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/cs.js +1 -419
  16. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/cs_CZ.js +221 -19
  17. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/cy.js +61 -18
  18. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/da.js +1 -419
  19. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/de.js +1 -419
  20. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/el.js +1 -261
  21. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/es.js +1 -419
  22. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/es_419.js +462 -0
  23. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/es_MX.js +1 -419
  24. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/et.js +21 -179
  25. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/eu.js +1 -419
  26. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/fa.js +1 -419
  27. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/fa_IR.js +69 -197
  28. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/fi.js +1 -419
  29. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/fr_FR.js +1 -419
  30. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/gl.js +20 -155
  31. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/he_IL.js +1 -420
  32. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/hr.js +1 -418
  33. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/hu_HU.js +1 -419
  34. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/id.js +1 -419
  35. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/it.js +1 -419
  36. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/ja.js +1 -419
  37. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/kk.js +1 -418
  38. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/ko_KR.js +1 -419
  39. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/lt.js +21 -179
  40. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/nb_NO.js +1 -419
  41. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/nl.js +1 -419
  42. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/nl_BE.js +445 -0
  43. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/pl.js +1 -419
  44. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/pt_BR.js +1 -419
  45. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/pt_PT.js +1 -419
  46. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/ro.js +1 -418
  47. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/ru.js +1 -419
  48. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/ru_RU.js +445 -0
  49. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/sk.js +1 -418
  50. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/sl.js +59 -14
  51. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/sl_SI.js +1 -388
  52. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/sq.js +219 -0
  53. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/sv_SE.js +1 -419
  54. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/ta.js +60 -17
  55. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/ta_IN.js +60 -17
  56. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/th_TH.js +1 -419
  57. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/tr.js +1 -419
  58. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/tr_TR.js +81 -8
  59. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/ug.js +221 -19
  60. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/uk.js +1 -419
  61. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/zh_CN.js +1 -419
  62. package/src/sap/ui/richtexteditor/js/tiny_mce5/langs/zh_TW.js +1 -419
  63. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advcode/changelog.txt +8 -0
  64. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advcode/codemirror.min.css +1 -1
  65. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advcode/codemirror.min.js +4023 -4246
  66. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advcode/customeditor.js +5 -5
  67. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advcode/customeditor.min.js +5 -5
  68. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advcode/plugin.js +5 -5
  69. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advcode/plugin.min.js +5 -5
  70. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advcode/readme.txt +1 -1
  71. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advcode/version.txt +1 -1
  72. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advlist/plugin.js +33 -48
  73. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/advlist/plugin.min.js +4 -2
  74. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/anchor/plugin.js +10 -8
  75. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/anchor/plugin.min.js +4 -2
  76. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/autolink/plugin.js +60 -30
  77. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/autolink/plugin.min.js +4 -2
  78. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/autoresize/plugin.js +27 -12
  79. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/autoresize/plugin.min.js +4 -2
  80. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/autosave/plugin.js +12 -12
  81. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/autosave/plugin.min.js +4 -2
  82. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/bbcode/plugin.js +8 -6
  83. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/bbcode/plugin.min.js +4 -2
  84. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/charmap/plugin.js +59 -67
  85. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/charmap/plugin.min.js +4 -2
  86. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/code/plugin.js +11 -10
  87. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/code/plugin.min.js +4 -2
  88. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/codesample/plugin.js +1934 -1310
  89. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/codesample/plugin.min.js +4 -2
  90. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/colorpicker/plugin.js +3 -2
  91. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/colorpicker/plugin.min.js +4 -2
  92. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/contextmenu/plugin.js +3 -2
  93. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/contextmenu/plugin.min.js +4 -2
  94. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/directionality/plugin.js +200 -59
  95. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/directionality/plugin.min.js +4 -2
  96. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/emoticons/js/emojiimages.js +9424 -0
  97. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/emoticons/js/emojiimages.min.js +3 -0
  98. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/emoticons/js/emojis.js +1914 -1506
  99. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/emoticons/js/emojis.min.js +2 -2
  100. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/emoticons/plugin.js +255 -181
  101. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/emoticons/plugin.min.js +4 -2
  102. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/fullpage/plugin.js +51 -49
  103. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/fullpage/plugin.min.js +4 -2
  104. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/fullscreen/plugin.js +542 -163
  105. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/fullscreen/plugin.min.js +4 -2
  106. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/help/plugin.js +113 -105
  107. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/help/plugin.min.js +4 -2
  108. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/hr/plugin.js +11 -10
  109. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/hr/plugin.min.js +4 -2
  110. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/image/plugin.js +187 -170
  111. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/image/plugin.min.js +4 -2
  112. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/imagetools/plugin.js +625 -433
  113. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/imagetools/plugin.min.js +4 -2
  114. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/importcss/plugin.js +54 -53
  115. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/importcss/plugin.min.js +4 -2
  116. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/insertdatetime/plugin.js +24 -17
  117. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/insertdatetime/plugin.min.js +4 -2
  118. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/legacyoutput/plugin.js +10 -8
  119. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/legacyoutput/plugin.min.js +4 -2
  120. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/link/plugin.js +145 -131
  121. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/link/plugin.min.js +4 -2
  122. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/lists/plugin.js +440 -270
  123. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/lists/plugin.min.js +4 -2
  124. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/media/plugin.js +232 -186
  125. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/media/plugin.min.js +4 -2
  126. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/nonbreaking/plugin.js +15 -14
  127. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/nonbreaking/plugin.min.js +4 -2
  128. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/noneditable/plugin.js +8 -6
  129. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/noneditable/plugin.min.js +4 -2
  130. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/pagebreak/plugin.js +29 -30
  131. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/pagebreak/plugin.min.js +4 -2
  132. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/paste/plugin.js +388 -290
  133. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/paste/plugin.min.js +4 -2
  134. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/CHANGELOG.md +345 -0
  135. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/js/wordimport.js +1826 -1696
  136. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/ar.js +12 -9
  137. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/bg_BG.js +4 -4
  138. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/ca.js +10 -7
  139. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/cs.js +12 -9
  140. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/da.js +11 -8
  141. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/de.js +10 -7
  142. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/el.js +12 -9
  143. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/es.js +10 -7
  144. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/eu.js +4 -4
  145. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/fa.js +12 -9
  146. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/fi.js +12 -9
  147. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/fr_FR.js +11 -8
  148. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/he_IL.js +12 -9
  149. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/hr.js +11 -8
  150. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/hu_HU.js +12 -9
  151. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/id.js +4 -4
  152. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/it.js +10 -7
  153. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/ja.js +12 -9
  154. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/kk.js +12 -9
  155. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/ko_KR.js +12 -9
  156. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/nb_NO.js +11 -8
  157. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/nl.js +8 -5
  158. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/pl.js +10 -7
  159. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/pt_BR.js +11 -8
  160. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/pt_PT.js +11 -8
  161. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/ro.js +12 -9
  162. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/ru.js +12 -9
  163. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/sk.js +12 -9
  164. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/sl_SI.js +11 -8
  165. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/sv_SE.js +10 -7
  166. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/th_TH.js +12 -9
  167. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/tr.js +11 -8
  168. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/uk.js +12 -9
  169. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/zh_CN.js +13 -10
  170. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/langs/zh_TW.js +13 -10
  171. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/plugin.js +5 -5
  172. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/plugin.min.js +5 -5
  173. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/readme.txt +1 -1
  174. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/powerpaste/version.txt +1 -1
  175. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/preview/plugin.js +18 -17
  176. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/preview/plugin.min.js +4 -2
  177. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/print/plugin.js +15 -14
  178. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/print/plugin.min.js +4 -2
  179. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/quickbars/plugin.js +76 -85
  180. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/quickbars/plugin.min.js +4 -2
  181. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/save/plugin.js +11 -8
  182. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/save/plugin.min.js +4 -2
  183. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/searchreplace/plugin.js +108 -103
  184. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/searchreplace/plugin.min.js +4 -2
  185. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/spellchecker/plugin.js +54 -59
  186. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/spellchecker/plugin.min.js +4 -2
  187. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/tabfocus/plugin.js +31 -28
  188. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/tabfocus/plugin.min.js +4 -2
  189. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/table/plugin.js +4394 -3142
  190. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/table/plugin.min.js +4 -2
  191. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/template/plugin.js +89 -73
  192. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/template/plugin.min.js +4 -2
  193. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/textcolor/plugin.js +3 -2
  194. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/textcolor/plugin.min.js +4 -2
  195. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/textpattern/plugin.js +111 -122
  196. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/textpattern/plugin.min.js +4 -2
  197. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/toc/plugin.js +33 -29
  198. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/toc/plugin.min.js +4 -2
  199. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/visualblocks/plugin.js +12 -11
  200. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/visualblocks/plugin.min.js +4 -2
  201. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/visualchars/plugin.js +89 -101
  202. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/visualchars/plugin.min.js +4 -2
  203. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/wordcount/plugin.js +69 -58
  204. package/src/sap/ui/richtexteditor/js/tiny_mce5/plugins/wordcount/plugin.min.js +4 -2
  205. package/src/sap/ui/richtexteditor/js/tiny_mce5/readme.txt +1 -1
  206. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/content.css +10 -6
  207. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/content.inline.css +10 -6
  208. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/content.inline.min.css +1 -1
  209. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/content.inline.min.css.map +1 -1
  210. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/content.min.css +1 -1
  211. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/content.min.css.map +1 -1
  212. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/skin.css +104 -29
  213. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/skin.min.css +1 -1
  214. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/skin.min.css.map +1 -1
  215. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/skin.shadowdom.css +37 -0
  216. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/skin.shadowdom.min.css +8 -0
  217. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide/skin.shadowdom.min.css.map +1 -0
  218. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/content.css +9 -5
  219. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/content.inline.css +10 -6
  220. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/content.inline.min.css +1 -1
  221. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/content.inline.min.css.map +1 -1
  222. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/content.min.css +1 -1
  223. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/content.min.css.map +1 -1
  224. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/skin.css +104 -29
  225. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/skin.min.css +1 -1
  226. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/skin.min.css.map +1 -1
  227. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/skin.shadowdom.css +37 -0
  228. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/skin.shadowdom.min.css +8 -0
  229. package/src/sap/ui/richtexteditor/js/tiny_mce5/skins/ui/oxide-dark/skin.shadowdom.min.css.map +1 -0
  230. package/src/sap/ui/richtexteditor/js/tiny_mce5/themes/mobile/theme.js +2890 -3335
  231. package/src/sap/ui/richtexteditor/js/tiny_mce5/themes/mobile/theme.min.js +4 -2
  232. package/src/sap/ui/richtexteditor/js/tiny_mce5/themes/silver/theme.js +15720 -15353
  233. package/src/sap/ui/richtexteditor/js/tiny_mce5/themes/silver/theme.min.js +4 -2
  234. package/src/sap/ui/richtexteditor/js/tiny_mce5/tinymce.d.ts +768 -552
  235. package/src/sap/ui/richtexteditor/js/tiny_mce5/tinymce.js +6762 -6159
  236. package/src/sap/ui/richtexteditor/js/tiny_mce5/tinymce.min.js +4 -2
  237. package/src/sap/ui/richtexteditor/js/tiny_mce5/version.txt +1 -1
  238. package/src/sap/ui/richtexteditor/js/tiny_mce6/icons/default/icons.js +197 -0
  239. package/src/sap/ui/richtexteditor/js/tiny_mce6/icons/default/icons.min.js +7 -0
  240. package/src/sap/ui/richtexteditor/js/tiny_mce6/icons/default/index.js +13 -0
  241. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ar.js +7 -0
  242. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/bg_BG.js +7 -0
  243. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ca.js +7 -0
  244. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/cs.js +7 -0
  245. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/cy.js +1 -0
  246. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/da.js +7 -0
  247. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/de.js +7 -0
  248. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/dv.js +1 -0
  249. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/el.js +7 -0
  250. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/en_GB.js +261 -0
  251. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/es.js +7 -0
  252. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/es_MX.js +1 -0
  253. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/et.js +1 -0
  254. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/eu.js +7 -0
  255. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/fa.js +7 -0
  256. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/fi.js +7 -0
  257. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/fr_FR.js +7 -0
  258. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/he_IL.js +7 -0
  259. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/hi.js +7 -0
  260. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/hr.js +7 -0
  261. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/hu_HU.js +7 -0
  262. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/id.js +7 -0
  263. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/it.js +7 -0
  264. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ja.js +7 -0
  265. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/kk.js +7 -0
  266. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ko_KR.js +7 -0
  267. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/lt.js +1 -0
  268. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/lv.js +1 -0
  269. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ms.js +7 -0
  270. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/nb_NO.js +7 -0
  271. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/nl.js +7 -0
  272. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/pl.js +7 -0
  273. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/pt_BR.js +7 -0
  274. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/pt_PT.js +7 -0
  275. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ro.js +7 -0
  276. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ru.js +7 -0
  277. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/sk.js +7 -0
  278. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/sl_SI.js +7 -0
  279. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/sr.js +1 -0
  280. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/sv_SE.js +7 -0
  281. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/th_TH.js +7 -0
  282. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/tr.js +7 -0
  283. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/uk.js +7 -0
  284. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/vi.js +7 -0
  285. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/zh_CN.js +7 -0
  286. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/zh_TW.js +7 -0
  287. package/src/sap/ui/richtexteditor/js/tiny_mce6/license.txt +5 -0
  288. package/src/sap/ui/richtexteditor/js/tiny_mce6/models/dom/index.js +13 -0
  289. package/src/sap/ui/richtexteditor/js/tiny_mce6/models/dom/model.js +8045 -0
  290. package/src/sap/ui/richtexteditor/js/tiny_mce6/models/dom/model.min.js +9 -0
  291. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/accordion/index.js +13 -0
  292. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/accordion/plugin.js +1038 -0
  293. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/accordion/plugin.min.js +9 -0
  294. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/CHANGELOG.md +110 -0
  295. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/codemirror.min.css +13 -0
  296. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/codemirror.min.js +13 -0
  297. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/customeditor.js +10 -0
  298. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/customeditor.min.js +10 -0
  299. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ar.js +15 -0
  300. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/bg_BG.js +15 -0
  301. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ca.js +15 -0
  302. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/cs.js +15 -0
  303. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/da.js +15 -0
  304. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/de.js +15 -0
  305. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/el.js +15 -0
  306. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/es.js +15 -0
  307. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/eu.js +15 -0
  308. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/fa.js +15 -0
  309. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/fi.js +15 -0
  310. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/fr_FR.js +15 -0
  311. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/he_IL.js +15 -0
  312. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/hi.js +15 -0
  313. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/hr.js +15 -0
  314. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/hu_HU.js +15 -0
  315. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/id.js +15 -0
  316. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/it.js +15 -0
  317. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ja.js +15 -0
  318. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/kk.js +15 -0
  319. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ko_KR.js +15 -0
  320. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ms.js +15 -0
  321. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/nb_NO.js +15 -0
  322. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/nl.js +15 -0
  323. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/pl.js +15 -0
  324. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/pt_BR.js +15 -0
  325. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/pt_PT.js +15 -0
  326. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ro.js +15 -0
  327. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ru.js +15 -0
  328. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/sk.js +15 -0
  329. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/sl_SI.js +15 -0
  330. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/sv_SE.js +15 -0
  331. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/th_TH.js +15 -0
  332. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/tr.js +15 -0
  333. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/uk.js +15 -0
  334. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/vi.js +15 -0
  335. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/zh_CN.js +15 -0
  336. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/zh_TW.js +15 -0
  337. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/license.txt +5 -0
  338. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/plugin.js +10 -0
  339. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/plugin.min.js +10 -0
  340. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/readme.txt +10 -0
  341. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/version.txt +1 -0
  342. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advlist/index.js +13 -0
  343. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advlist/plugin.js +264 -0
  344. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advlist/plugin.min.js +9 -0
  345. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/anchor/index.js +13 -0
  346. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/anchor/plugin.js +219 -0
  347. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/anchor/plugin.min.js +9 -0
  348. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autolink/index.js +13 -0
  349. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autolink/plugin.js +233 -0
  350. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autolink/plugin.min.js +9 -0
  351. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autoresize/index.js +13 -0
  352. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autoresize/plugin.js +197 -0
  353. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autoresize/plugin.min.js +9 -0
  354. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autosave/index.js +13 -0
  355. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autosave/plugin.js +238 -0
  356. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autosave/plugin.min.js +9 -0
  357. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/charmap/index.js +13 -0
  358. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/charmap/plugin.js +1663 -0
  359. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/charmap/plugin.min.js +9 -0
  360. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/code/index.js +13 -0
  361. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/code/plugin.js +90 -0
  362. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/code/plugin.min.js +9 -0
  363. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/codesample/index.js +13 -0
  364. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/codesample/plugin.js +2468 -0
  365. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/codesample/plugin.min.js +9 -0
  366. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/directionality/index.js +13 -0
  367. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/directionality/plugin.js +400 -0
  368. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/directionality/plugin.min.js +9 -0
  369. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/index.js +13 -0
  370. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/js/emojiimages.js +7 -0
  371. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/js/emojiimages.min.js +9 -0
  372. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/js/emojis.js +7 -0
  373. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/js/emojis.min.js +8 -0
  374. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/plugin.js +600 -0
  375. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/plugin.min.js +9 -0
  376. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/fullscreen/index.js +13 -0
  377. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/fullscreen/plugin.js +1201 -0
  378. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/fullscreen/plugin.min.js +9 -0
  379. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/index.js +13 -0
  380. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ar.js +96 -0
  381. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/bg_BG.js +96 -0
  382. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ca.js +96 -0
  383. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/cs.js +96 -0
  384. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/da.js +96 -0
  385. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/de.js +96 -0
  386. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/el.js +96 -0
  387. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/en.js +96 -0
  388. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/es.js +96 -0
  389. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/eu.js +96 -0
  390. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/fa.js +96 -0
  391. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/fi.js +96 -0
  392. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/fr_FR.js +96 -0
  393. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/he_IL.js +96 -0
  394. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/hi.js +96 -0
  395. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/hr.js +96 -0
  396. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/hu_HU.js +96 -0
  397. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/id.js +96 -0
  398. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/it.js +96 -0
  399. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ja.js +96 -0
  400. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/kk.js +96 -0
  401. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ko_KR.js +96 -0
  402. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ms.js +96 -0
  403. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/nb_NO.js +96 -0
  404. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/nl.js +96 -0
  405. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/pl.js +96 -0
  406. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/pt_BR.js +96 -0
  407. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/pt_PT.js +96 -0
  408. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ro.js +96 -0
  409. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ru.js +96 -0
  410. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/sk.js +96 -0
  411. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/sl_SI.js +96 -0
  412. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/sv_SE.js +96 -0
  413. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/th_TH.js +96 -0
  414. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/tr.js +96 -0
  415. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/uk.js +96 -0
  416. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/vi.js +96 -0
  417. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/zh_CN.js +90 -0
  418. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/zh_TW.js +96 -0
  419. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/plugin.js +898 -0
  420. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/plugin.min.js +9 -0
  421. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/image/index.js +13 -0
  422. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/image/plugin.js +1509 -0
  423. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/image/plugin.min.js +9 -0
  424. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/importcss/index.js +13 -0
  425. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/importcss/plugin.js +349 -0
  426. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/importcss/plugin.min.js +9 -0
  427. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/insertdatetime/index.js +13 -0
  428. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/insertdatetime/plugin.js +192 -0
  429. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/insertdatetime/plugin.min.js +9 -0
  430. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/link/index.js +13 -0
  431. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/link/plugin.js +1246 -0
  432. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/link/plugin.min.js +9 -0
  433. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/lists/index.js +13 -0
  434. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/lists/plugin.js +1953 -0
  435. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/lists/plugin.min.js +9 -0
  436. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/media/index.js +13 -0
  437. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/media/plugin.js +1240 -0
  438. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/media/plugin.min.js +9 -0
  439. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/nonbreaking/index.js +13 -0
  440. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/nonbreaking/plugin.js +128 -0
  441. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/nonbreaking/plugin.min.js +9 -0
  442. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/pagebreak/index.js +13 -0
  443. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/pagebreak/plugin.js +122 -0
  444. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/pagebreak/plugin.min.js +9 -0
  445. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/CHANGELOG.md +402 -0
  446. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/js/wordimport.js +3498 -0
  447. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ar.js +20 -0
  448. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/bg_BG.js +20 -0
  449. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ca.js +20 -0
  450. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/cs.js +20 -0
  451. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/da.js +20 -0
  452. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/de.js +20 -0
  453. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/el.js +20 -0
  454. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/es.js +20 -0
  455. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/eu.js +20 -0
  456. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/fa.js +20 -0
  457. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/fi.js +20 -0
  458. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/fr_FR.js +20 -0
  459. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/he_IL.js +20 -0
  460. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/hi.js +20 -0
  461. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/hr.js +20 -0
  462. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/hu_HU.js +20 -0
  463. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/id.js +20 -0
  464. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/it.js +20 -0
  465. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ja.js +20 -0
  466. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/kk.js +20 -0
  467. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ko_KR.js +20 -0
  468. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ms.js +20 -0
  469. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/nb_NO.js +20 -0
  470. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/nl.js +20 -0
  471. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/pl.js +20 -0
  472. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/pt_BR.js +20 -0
  473. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/pt_PT.js +20 -0
  474. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ro.js +20 -0
  475. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ru.js +20 -0
  476. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/sk.js +20 -0
  477. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/sl_SI.js +20 -0
  478. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/sv_SE.js +20 -0
  479. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/th_TH.js +20 -0
  480. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/tr.js +20 -0
  481. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/uk.js +20 -0
  482. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/vi.js +20 -0
  483. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/zh_CN.js +20 -0
  484. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/zh_TW.js +20 -0
  485. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/license.txt +5 -0
  486. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/plugin.js +10 -0
  487. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/plugin.min.js +10 -0
  488. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/readme.txt +10 -0
  489. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/version.txt +1 -0
  490. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/preview/index.js +13 -0
  491. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/preview/plugin.js +102 -0
  492. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/preview/plugin.min.js +9 -0
  493. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/quickbars/index.js +13 -0
  494. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/quickbars/plugin.js +443 -0
  495. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/quickbars/plugin.min.js +9 -0
  496. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/save/index.js +13 -0
  497. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/save/plugin.js +123 -0
  498. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/save/plugin.min.js +9 -0
  499. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/searchreplace/index.js +13 -0
  500. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/searchreplace/plugin.js +1098 -0
  501. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/searchreplace/plugin.min.js +9 -0
  502. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/table/index.js +13 -0
  503. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/table/plugin.js +3467 -0
  504. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/table/plugin.min.js +9 -0
  505. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/template/index.js +13 -0
  506. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/template/plugin.js +572 -0
  507. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/template/plugin.min.js +9 -0
  508. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualblocks/index.js +13 -0
  509. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualblocks/plugin.js +103 -0
  510. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualblocks/plugin.min.js +9 -0
  511. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualchars/index.js +13 -0
  512. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualchars/plugin.js +565 -0
  513. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualchars/plugin.min.js +9 -0
  514. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/wordcount/index.js +13 -0
  515. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/wordcount/plugin.js +410 -0
  516. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/wordcount/plugin.min.js +9 -0
  517. package/src/sap/ui/richtexteditor/js/tiny_mce6/readme.txt +12 -0
  518. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/dark/content.css +72 -0
  519. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/dark/content.min.css +7 -0
  520. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/default/content.css +67 -0
  521. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/default/content.min.css +7 -0
  522. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/document/content.css +72 -0
  523. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/document/content.min.css +7 -0
  524. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/tinymce-5/content.css +67 -0
  525. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/tinymce-5/content.min.css +7 -0
  526. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/tinymce-5-dark/content.css +72 -0
  527. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/tinymce-5-dark/content.min.css +7 -0
  528. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/writer/content.css +68 -0
  529. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/writer/content.min.css +7 -0
  530. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/content.css +791 -0
  531. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/content.inline.css +785 -0
  532. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/content.inline.min.css +7 -0
  533. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/content.min.css +7 -0
  534. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/skin.css +3694 -0
  535. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/skin.min.css +7 -0
  536. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/skin.shadowdom.css +36 -0
  537. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/skin.shadowdom.min.css +7 -0
  538. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/content.css +772 -0
  539. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/content.inline.css +785 -0
  540. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/content.inline.min.css +7 -0
  541. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/content.min.css +7 -0
  542. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/skin.css +3697 -0
  543. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/skin.min.css +7 -0
  544. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/skin.shadowdom.css +36 -0
  545. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/skin.shadowdom.min.css +7 -0
  546. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/content.css +791 -0
  547. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/content.inline.css +785 -0
  548. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/content.inline.min.css +7 -0
  549. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/content.min.css +7 -0
  550. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/skin.css +3788 -0
  551. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/skin.min.css +7 -0
  552. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/skin.shadowdom.css +36 -0
  553. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/skin.shadowdom.min.css +7 -0
  554. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/content.css +772 -0
  555. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/content.inline.css +785 -0
  556. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/content.inline.min.css +7 -0
  557. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/content.min.css +7 -0
  558. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/skin.css +3788 -0
  559. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/skin.min.css +7 -0
  560. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/skin.shadowdom.css +36 -0
  561. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +7 -0
  562. package/src/sap/ui/richtexteditor/js/tiny_mce6/themes/silver/index.js +13 -0
  563. package/src/sap/ui/richtexteditor/js/tiny_mce6/themes/silver/theme.js +30172 -0
  564. package/src/sap/ui/richtexteditor/js/tiny_mce6/themes/silver/theme.min.js +9 -0
  565. package/src/sap/ui/richtexteditor/js/tiny_mce6/tinymce.d.ts +3206 -0
  566. package/src/sap/ui/richtexteditor/js/tiny_mce6/tinymce.js +31303 -0
  567. package/src/sap/ui/richtexteditor/js/tiny_mce6/tinymce.min.js +9 -0
  568. package/src/sap/ui/richtexteditor/js/tiny_mce6/version.txt +1 -0
  569. package/src/sap/ui/richtexteditor/library.js +64 -27
  570. package/src/sap/ui/richtexteditor/messagebundle_ar.properties +54 -0
  571. package/src/sap/ui/richtexteditor/messagebundle_bg.properties +54 -0
  572. package/src/sap/ui/richtexteditor/messagebundle_ca.properties +54 -0
  573. package/src/sap/ui/richtexteditor/messagebundle_cnr.properties +105 -0
  574. package/src/sap/ui/richtexteditor/messagebundle_cs.properties +54 -0
  575. package/src/sap/ui/richtexteditor/messagebundle_cy.properties +54 -0
  576. package/src/sap/ui/richtexteditor/messagebundle_da.properties +54 -0
  577. package/src/sap/ui/richtexteditor/messagebundle_de.properties +54 -0
  578. package/src/sap/ui/richtexteditor/messagebundle_el.properties +54 -0
  579. package/src/sap/ui/richtexteditor/messagebundle_en_GB.properties +54 -0
  580. package/src/sap/ui/richtexteditor/messagebundle_en_US_saprigi.properties +106 -52
  581. package/src/sap/ui/richtexteditor/messagebundle_es.properties +54 -0
  582. package/src/sap/ui/richtexteditor/messagebundle_es_MX.properties +54 -0
  583. package/src/sap/ui/richtexteditor/messagebundle_et.properties +54 -0
  584. package/src/sap/ui/richtexteditor/messagebundle_fi.properties +54 -0
  585. package/src/sap/ui/richtexteditor/messagebundle_fr.properties +54 -0
  586. package/src/sap/ui/richtexteditor/messagebundle_fr_CA.properties +54 -0
  587. package/src/sap/ui/richtexteditor/messagebundle_hi.properties +54 -0
  588. package/src/sap/ui/richtexteditor/messagebundle_hr.properties +54 -0
  589. package/src/sap/ui/richtexteditor/messagebundle_hu.properties +54 -0
  590. package/src/sap/ui/richtexteditor/messagebundle_id.properties +54 -0
  591. package/src/sap/ui/richtexteditor/messagebundle_it.properties +54 -0
  592. package/src/sap/ui/richtexteditor/messagebundle_iw.properties +54 -0
  593. package/src/sap/ui/richtexteditor/messagebundle_ja.properties +54 -0
  594. package/src/sap/ui/richtexteditor/messagebundle_kk.properties +54 -0
  595. package/src/sap/ui/richtexteditor/messagebundle_ko.properties +54 -0
  596. package/src/sap/ui/richtexteditor/messagebundle_lt.properties +54 -0
  597. package/src/sap/ui/richtexteditor/messagebundle_lv.properties +54 -0
  598. package/src/sap/ui/richtexteditor/messagebundle_ms.properties +54 -0
  599. package/src/sap/ui/richtexteditor/messagebundle_nl.properties +54 -0
  600. package/src/sap/ui/richtexteditor/messagebundle_no.properties +54 -0
  601. package/src/sap/ui/richtexteditor/messagebundle_pl.properties +54 -0
  602. package/src/sap/ui/richtexteditor/messagebundle_pt.properties +54 -0
  603. package/src/sap/ui/richtexteditor/messagebundle_pt_PT.properties +54 -0
  604. package/src/sap/ui/richtexteditor/messagebundle_ro.properties +54 -0
  605. package/src/sap/ui/richtexteditor/messagebundle_ru.properties +54 -0
  606. package/src/sap/ui/richtexteditor/messagebundle_sh.properties +54 -0
  607. package/src/sap/ui/richtexteditor/messagebundle_sk.properties +54 -0
  608. package/src/sap/ui/richtexteditor/messagebundle_sl.properties +54 -0
  609. package/src/sap/ui/richtexteditor/messagebundle_sr.properties +54 -0
  610. package/src/sap/ui/richtexteditor/messagebundle_sv.properties +54 -0
  611. package/src/sap/ui/richtexteditor/messagebundle_th.properties +54 -0
  612. package/src/sap/ui/richtexteditor/messagebundle_tr.properties +54 -0
  613. package/src/sap/ui/richtexteditor/messagebundle_uk.properties +54 -0
  614. package/src/sap/ui/richtexteditor/messagebundle_vi.properties +54 -0
  615. package/src/sap/ui/richtexteditor/messagebundle_zh_CN.properties +54 -0
  616. package/src/sap/ui/richtexteditor/messagebundle_zh_TW.properties +54 -0
  617. package/src/sap/ui/richtexteditor/themes/base/RichTextEditor.less +25 -84
  618. package/src/sap/ui/richtexteditor/themes/sap_belize/RichTextEditor.less +33 -0
  619. package/src/sap/ui/richtexteditor/themes/sap_belize/library.source.less +3 -1
  620. package/src/sap/ui/richtexteditor/themes/sap_belize_hcb/RichTextEditor.less +29 -0
  621. package/src/sap/ui/richtexteditor/themes/sap_belize_hcb/library.source.less +2 -0
  622. package/src/sap/ui/richtexteditor/themes/sap_belize_hcw/RichTextEditor.less +30 -0
  623. package/src/sap/ui/richtexteditor/themes/sap_belize_hcw/library.source.less +2 -0
  624. package/src/sap/ui/richtexteditor/themes/sap_fiori_3/RichTextEditor.less +4 -5
  625. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_dark/RichTextEditor.less +4 -5
  626. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_hcb/RichTextEditor.less +4 -5
  627. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_hcw/RichTextEditor.less +4 -5
  628. package/src/sap/ui/richtexteditor/themes/sap_horizon/RichTextEditor.less +15 -30
@@ -8,6 +8,7 @@ sap.ui.define([
8
8
  "sap/ui/thirdparty/jquery",
9
9
  'sap/ui/core/Control',
10
10
  './library',
11
+ "sap/m/library",
11
12
  'sap/ui/core/IconPool',
12
13
  'sap/ui/core/Item',
13
14
  'sap/ui/core/Core',
@@ -16,9 +17,24 @@ sap.ui.define([
16
17
  "sap/base/Log",
17
18
  "./ToolbarWrapperRenderer" // Control renderer
18
19
  ],
19
- function(jQuery, Control, library, IconPool, Item, Core, RTESplitButton, URLListValidator, Log) {
20
+ function(
21
+ jQuery,
22
+ Control,
23
+ library,
24
+ mLibrary,
25
+ IconPool,
26
+ Item,
27
+ Core,
28
+ RTESplitButton,
29
+ URLListValidator,
30
+ Log
31
+ ) {
20
32
  "use strict";
21
33
 
34
+ var ButtonGroups = library.ButtonGroups,
35
+ EditorCommands = library.EditorCommands,
36
+ ButtonsToCommandsMap = library.ButtonsToCommandsMap,
37
+ ButtonType = mLibrary.ButtonType;
22
38
 
23
39
  /**
24
40
  * Constructor for a new RichTextEditor's Custom Toolbar.
@@ -35,7 +51,6 @@ sap.ui.define([
35
51
  * @constructor
36
52
  * @private
37
53
  * @alias sap.ui.richtexteditor.ToolbarWrapper
38
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
39
54
  * @since 1.48
40
55
  */
41
56
  var ToolbarWrapper = Control.extend("sap.ui.richtexteditor.ToolbarWrapper", /** @lends sap.ui.richtexteditor.ToolbarWrapper.prototype */ {
@@ -85,8 +100,8 @@ sap.ui.define([
85
100
  this._helper = library.RichTextEditorHelper;
86
101
  this._oResourceBundle = Core.getLibraryResourceBundle("sap.ui.richtexteditor");
87
102
  this._oAccessibilityTexts = {};
88
- this._sTextColor = library.EditorCommands.TextColor.defaultValue;
89
- this._sBackgroundColor = library.EditorCommands.BackgroundColor.defaultValue;
103
+ this._sTextColor = EditorCommands.TextColor.defaultValue;
104
+ this._sBackgroundColor = EditorCommands.BackgroundColor.defaultValue;
90
105
  };
91
106
 
92
107
  ToolbarWrapper.prototype.onBeforeRendering = function () {
@@ -95,10 +110,10 @@ sap.ui.define([
95
110
  oEditor = this.getEditor();
96
111
 
97
112
  if (oEditor) {
98
- oToolbar.setEnabled(oEditor.getEditable());
113
+ oToolbar && oToolbar.setEnabled(oEditor.getEditable());
99
114
  }
100
115
 
101
- oToolbar.addStyleClass("sapUiRTECustomToolbar");
116
+ oToolbar && oToolbar.addStyleClass("sapUiRTECustomToolbar");
102
117
  this.setAggregation("_toolbar", oToolbar);
103
118
 
104
119
  this.setAggregation("_customInsertImageDialog",
@@ -116,12 +131,12 @@ sap.ui.define([
116
131
 
117
132
  ToolbarWrapper.prototype.onAfterRendering = function () {
118
133
  var oEditor = this.getEditor();
119
- // create an array of deep copies with the initia setupof the button groups
134
+ // create an array of deep copies with the initial setup of the button groups
120
135
  this._initialButtonGroupsState = oEditor && oEditor.getButtonGroups().map(function(oObject){
121
136
  return jQuery.extend(true, {}, oObject);
122
137
  });
123
138
 
124
- this._syncPopoverOpeningArrows();
139
+ this._modifyPopoverOpeningArrowHandlers(true);
125
140
  this._syncColors("TextColor", this._sTextColor);
126
141
  this._syncColors("BackgroundColor", this._sBackgroundColor);
127
142
  };
@@ -134,25 +149,78 @@ sap.ui.define([
134
149
 
135
150
  this._customButtons = null;
136
151
  this._oAccessibilityTexts = null;
152
+ this._helper = null;
153
+ this._oResourceBundle = null;
154
+ this._sTextColor = null;
155
+ this._sBackgroundColor = null;
137
156
  };
138
157
 
139
158
  /**
140
- * Helper function for synchronising the arrow button of the color selection SplitButtons
159
+ * Helper function for attaching / detaching the synchronization handlers of the color selection SplitButton arrow buttons
141
160
  * The arrow button should be displayed as active, while the corresponding color popover is open
142
161
  *
162
+ * @param {boolean} bAttach Will attach the handlers if true
143
163
  * @private
144
164
  */
145
- ToolbarWrapper.prototype._syncPopoverOpeningArrows = function () {
146
- var aFontButtons = this._findGroupedControls("font"),
147
- oTextColorArrowButton = aFontButtons[2] && aFontButtons[2]._getArrowButton(),
148
- oBackgroundColorArrowButton = aFontButtons[3] && aFontButtons[3]._getArrowButton();
165
+ ToolbarWrapper.prototype._modifyPopoverOpeningArrowHandlers = function (bAttach) {
166
+ var oTextColorButton = this._findButtonById("TextColor"),
167
+ oTextColorArrowButton = oTextColorButton && oTextColorButton._getArrowButton(),
168
+ oBackgroundColorButton = this._findButtonById("BackgroundColor"),
169
+ oBackgroundColorArrowButton = oBackgroundColorButton && oBackgroundColorButton._getArrowButton();
170
+
171
+ // Attaching handlers
172
+ // As this method is called each time after rendering, we need to ensure that we attach
173
+ // the necessary handlers only once. That is why two properties were introduced:
174
+ // _bTextColorSyncHandlersAttached
175
+ // _bBackgroundColorSyncHandlersAttached
176
+ if (bAttach && oTextColorArrowButton && !this._bTextColorSyncHandlersAttached) {
177
+ this.getAggregation("_customTextColorDialog")._ensurePopover()
178
+ .attachAfterOpen(oTextColorArrowButton, this._customColorDialogAfterOpen, this)
179
+ .attachAfterClose(oTextColorArrowButton, this._customColorDialogAfterClose, this);
180
+ this._bTextColorSyncHandlersAttached = true;
181
+ }
182
+ if (bAttach && oBackgroundColorArrowButton && !this._bBackgroundColorSyncHandlersAttached) {
183
+ this.getAggregation("_customBackgroundColorDialog")._ensurePopover()
184
+ .attachAfterOpen(oBackgroundColorArrowButton, this._customColorDialogAfterOpen, this)
185
+ .attachAfterClose(oBackgroundColorArrowButton, this._customColorDialogAfterClose, this);
186
+ this._bBackgroundColorSyncHandlersAttached = true;
187
+ }
188
+
189
+ // Detaching handlers
190
+ if (!bAttach && oTextColorArrowButton && this._bTextColorSyncHandlersAttached) {
191
+ this.getAggregation("_customTextColorDialog")._ensurePopover()
192
+ .detachAfterOpen(this._customColorDialogAfterOpen, this)
193
+ .detachAfterClose(this._customColorDialogAfterClose, this);
194
+ this._bTextColorSyncHandlersAttached = null;
195
+ }
196
+ if (!bAttach && oBackgroundColorArrowButton && this._bBackgroundColorSyncHandlersAttached) {
197
+ this.getAggregation("_customBackgroundColorDialog")._ensurePopover()
198
+ .detachAfterOpen(this._customColorDialogAfterOpen, this)
199
+ .detachAfterClose(this._customColorDialogAfterClose, this);
200
+ this._bBackgroundColorSyncHandlersAttached = null;
201
+ }
202
+ };
203
+
204
+ /**
205
+ * Synchronization handler called after opening of the text / background color picker dialog
206
+ *
207
+ * @param {object} oEvent The event object
208
+ * @param {object} oButton The color button
209
+ * @private
210
+ */
211
+ ToolbarWrapper.prototype._customColorDialogAfterOpen = function (oEvent, oButton) {
212
+ oButton && oButton._activeButton();
213
+ };
149
214
 
150
- this.getAggregation("_customTextColorDialog")._ensurePopover()
151
- .attachAfterOpen(function () { oTextColorArrowButton._activeButton();})
152
- .attachAfterClose(function () { oTextColorArrowButton._inactiveButton();});
153
- this.getAggregation("_customBackgroundColorDialog")._ensurePopover()
154
- .attachAfterOpen(function () { oBackgroundColorArrowButton._activeButton();})
155
- .attachAfterClose(function () { oBackgroundColorArrowButton._inactiveButton();});
215
+ /**
216
+ * Synchronization handler called after closing of the text / background color picker dialog
217
+ *
218
+ * @param {object} oEvent The event object
219
+ * @param {object} oButton The color button
220
+ * @private
221
+ */
222
+ ToolbarWrapper.prototype._customColorDialogAfterClose = function (oEvent, oButton) {
223
+ oButton && oButton._inactiveButton();
156
224
  };
157
225
 
158
226
  /**
@@ -197,16 +265,27 @@ sap.ui.define([
197
265
  * @public
198
266
  */
199
267
  ToolbarWrapper.prototype.modifyRTEToolbarConfig = function (oConfig) {
200
- var oToolbar = this;
268
+ var that = this;
201
269
 
202
270
  // Remove the native toolbar. From now on the sap.ui.richtexteditor.ToolbarWrapper will be used
203
271
  oConfig.toolbar = false;
204
272
 
205
273
  oConfig.setup = function (editor) {
274
+ editor.on('PreInit', function () {
275
+ editor.addShortcut('alt+f10', 'Focus the first element in the toolbar.',
276
+ function () {
277
+ var oFirstVisibleElement = that.getAggregation("_toolbar").getAggregation("content").filter(function(oControl) {
278
+ return oControl.getVisible();
279
+ })[0];
280
+
281
+ oFirstVisibleElement && oFirstVisibleElement.focus();
282
+ }
283
+ );
284
+ });
206
285
 
207
286
  // Sync sap.ui.richtexteditor.ToolbarWrapper buttons with the editor
208
287
  editor.on('NodeChange', function () {
209
- oToolbar._syncToolbarStates(this);
288
+ that._syncToolbarStates(this);
210
289
  });
211
290
  };
212
291
 
@@ -236,20 +315,20 @@ sap.ui.define([
236
315
  * @private
237
316
  */
238
317
  ToolbarWrapper.prototype._syncColors = function (sCommand, sColor) {
239
- var aControls = this._findGroupedControls("font"),
240
- oTextButtonIcon;
318
+ var oColorButton = this._findButtonById(sCommand),
319
+ oColorButtonIcon;
241
320
 
242
321
  if (!sColor) {
243
322
  return;
244
323
  }
245
- switch (sCommand) {
246
- case "TextColor":
247
- aControls[2] && aControls[2].setIconColor(sColor);
248
- break;
249
- case "BackgroundColor":
250
- oTextButtonIcon = aControls[3] && aControls[3]._getTextButton().getDomRef("img");
251
- oTextButtonIcon && Core.byId(oTextButtonIcon.id).setColor(sColor);
252
- break;
324
+
325
+ if (sCommand === "TextColor") {
326
+ oColorButton && oColorButton.setIconColor(sColor);
327
+ }
328
+
329
+ if (sCommand === "BackgroundColor") {
330
+ oColorButtonIcon = oColorButton && oColorButton._getTextButton().getDomRef("img");
331
+ oColorButtonIcon && Core.byId(oColorButtonIcon.id).setColor(sColor);
253
332
  }
254
333
  };
255
334
  /**
@@ -259,7 +338,6 @@ sap.ui.define([
259
338
  */
260
339
  ToolbarWrapper.prototype._syncToolbarStates = function (oNativeEditor) {
261
340
  var oEditorCommand, oControl, sEditorCommand,
262
- oEditorCommands = library.EditorCommands,
263
341
  oFormatter = oNativeEditor.formatter,
264
342
  oResourceBundle = this._oResourceBundle,
265
343
  _syncTextAlign = function (oTextAlignCommand, oEditorFormatter, oControl) {
@@ -343,12 +421,12 @@ sap.ui.define([
343
421
  }
344
422
  };
345
423
 
346
- for (sEditorCommand in oEditorCommands) {
347
- if (!oEditorCommands.hasOwnProperty(sEditorCommand)) {
424
+ for (sEditorCommand in EditorCommands) {
425
+ if (!EditorCommands.hasOwnProperty(sEditorCommand)) {
348
426
  continue;
349
427
  }
350
428
 
351
- oEditorCommand = oEditorCommands[sEditorCommand];
429
+ oEditorCommand = EditorCommands[sEditorCommand];
352
430
  // TODO: Probably there's a better way to handle this
353
431
  oControl = Core.byId(this._getId(sEditorCommand));
354
432
 
@@ -402,11 +480,9 @@ sap.ui.define([
402
480
  * @private
403
481
  */
404
482
  ToolbarWrapper.prototype._createButtonConfig = function (sCommand) {
405
- var oEditorCommands = library.EditorCommands,
406
- oCommand = oEditorCommands[sCommand],
483
+ var oCommand = EditorCommands[sCommand],
407
484
  oRTE = this.getEditor();
408
485
 
409
-
410
486
  return {
411
487
  id: this._getId(sCommand),
412
488
  icon: IconPool.getIconURI(oCommand.icon),
@@ -431,17 +507,16 @@ sap.ui.define([
431
507
  */
432
508
  ToolbarWrapper.prototype._createMenuButtonItems = function (sCommand) {
433
509
  var oEditorHelper = this._helper,
434
- oEditorCommands = library.EditorCommands,
435
510
  aItems = [],
436
511
  sItemText,
437
512
  oCommand;
438
513
 
439
- for (var sEditorCommand in oEditorCommands[sCommand]) {
514
+ for (var sEditorCommand in EditorCommands[sCommand]) {
440
515
  if (sEditorCommand === 'bundleKey') {
441
516
  continue;
442
517
  }
443
518
 
444
- oCommand = oEditorCommands[sCommand][sEditorCommand];
519
+ oCommand = EditorCommands[sCommand][sEditorCommand];
445
520
  sItemText = this._oResourceBundle.getText(oCommand.bundleKey) || oCommand.text;
446
521
  aItems.push(oEditorHelper.createMenuItem(this._getId(sCommand + sEditorCommand), sItemText, IconPool.getIconURI(oCommand.icon)));
447
522
  }
@@ -457,7 +532,7 @@ sap.ui.define([
457
532
  * @private
458
533
  */
459
534
  ToolbarWrapper.prototype._findTextAlignCommandByIcon = function (sIconUri) {
460
- var oEditorCommands = library.EditorCommands['TextAlign'],
535
+ var oEditorCommands = EditorCommands['TextAlign'],
461
536
  sCommandIconUri, sCommand;
462
537
 
463
538
  Object.keys(oEditorCommands)
@@ -479,8 +554,7 @@ sap.ui.define([
479
554
  * @private
480
555
  */
481
556
  ToolbarWrapper.prototype._createFontStyleSelectItems = function () {
482
- var oEditorCommands = library.EditorCommands,
483
- oFontFamilies = oEditorCommands["FontFamily"],
557
+ var oFontFamilies = EditorCommands["FontFamily"],
484
558
  aItems = [],
485
559
  oItem;
486
560
 
@@ -504,8 +578,7 @@ sap.ui.define([
504
578
  * @private
505
579
  */
506
580
  ToolbarWrapper.prototype._getFontStyleCommand = function (sItemText) {
507
- var oEditorCommands = library.EditorCommands,
508
- oFontFamilies = oEditorCommands["FontFamily"];
581
+ var oFontFamilies = EditorCommands["FontFamily"];
509
582
 
510
583
  for (var sFontStyle in oFontFamilies) {
511
584
  if (oFontFamilies.hasOwnProperty(sFontStyle) && oFontFamilies[sFontStyle].text === sItemText) {
@@ -522,8 +595,7 @@ sap.ui.define([
522
595
  * @private
523
596
  */
524
597
  ToolbarWrapper.prototype._getFormatBlockCommand = function (sItemText) {
525
- var oEditorCommands = library.EditorCommands,
526
- oFormat = oEditorCommands["FormatBlock"];
598
+ var oFormat = EditorCommands["FormatBlock"];
527
599
 
528
600
  for (var sFormat in oFormat) {
529
601
  if (oFormat.hasOwnProperty(sFormat) && this._oResourceBundle.getText(oFormat[sFormat].bundleKey) === sItemText) {
@@ -541,10 +613,9 @@ sap.ui.define([
541
613
  ToolbarWrapper.prototype._createFontSizeSelectItems = function () {
542
614
  var aItems = [],
543
615
  number = 1, //TinyMCE command values for font sizes have a value from 1 to 7
544
- oItem,
545
- oEditorCommands = library.EditorCommands;
616
+ oItem;
546
617
 
547
- oEditorCommands["FontSize"].forEach(function (item) {
618
+ EditorCommands["FontSize"].forEach(function (item) {
548
619
  oItem = {
549
620
  id: this._getId("FontSize" + number),
550
621
  text: item + " pt"
@@ -562,8 +633,7 @@ sap.ui.define([
562
633
  * @private
563
634
  */
564
635
  ToolbarWrapper.prototype._createFormatBlockItems = function () {
565
- var oEditorCommands = library.EditorCommands,
566
- oFormatBlock = oEditorCommands["FormatBlock"],
636
+ var oFormatBlock = EditorCommands["FormatBlock"],
567
637
  aItems = [],
568
638
  oItem;
569
639
 
@@ -588,9 +658,9 @@ sap.ui.define([
588
658
  */
589
659
  ToolbarWrapper.prototype._getColor = function (sCommand) {
590
660
  var oRTE = this.getEditor(),
591
- oCommandStyle = library.EditorCommands[sCommand].style,
592
- oNode = oRTE.getNativeApi().selection.getNode(),
593
- aNodes = oRTE.getNativeApi().dom.getParents(oNode),
661
+ oCommandStyle = EditorCommands[sCommand].style,
662
+ oNode = oRTE && oRTE.getNativeApi().selection.getNode(),
663
+ aNodes = oRTE && oRTE.getNativeApi().dom.getParents(oNode),
594
664
  i, aCurrentNode, sColor;
595
665
 
596
666
  for (i = 0; i < aNodes.length; i++) {
@@ -603,7 +673,7 @@ sap.ui.define([
603
673
  }
604
674
 
605
675
  // If there is no color style found, return the default color
606
- return library.EditorCommands[sCommand].defaultValue;
676
+ return EditorCommands[sCommand].defaultValue;
607
677
  };
608
678
 
609
679
 
@@ -612,32 +682,30 @@ sap.ui.define([
612
682
  *
613
683
  * @private
614
684
  * @param {string} [sCommand] Editor Command
615
- * @returns {object} The configuration object for the toolbar SplitButton which opens a command specific popover
685
+ * @returns {object|null} The configuration object for the toolbar SplitButton which opens a command specific popover or null
616
686
  */
617
687
  ToolbarWrapper.prototype._createSplitButtonForDialog = function (sCommand) {
618
- var oCommand = library.EditorCommands[sCommand],
619
- oToolbar = this,
688
+ var oCommand = EditorCommands[sCommand],
689
+ that = this,
620
690
  oDialog, oResultConfig;
621
691
 
622
692
  if (!oCommand) {
623
- return;
693
+ return null;
624
694
  }
625
695
 
626
696
  oResultConfig = {
627
697
  id: this._getId(sCommand),
628
698
  tooltip: this._oResourceBundle.getText(oCommand.bundleKey),
629
699
  press: function () {
630
- switch (sCommand) {
631
- case "TextColor":
632
- oToolbar._applyColor(sCommand, oCommand.command, oToolbar._sTextColor);
633
- break;
634
- case "BackgroundColor":
635
- oToolbar._applyColor(sCommand, oCommand.command, oToolbar._sBackgroundColor);
636
- break;
700
+ if (sCommand === "TextColor") {
701
+ that._applyColor(sCommand, oCommand.command, that._sTextColor);
702
+ }
703
+ if (sCommand === "BackgroundColor") {
704
+ that._applyColor(sCommand, oCommand.command, that._sBackgroundColor);
637
705
  }
638
706
  },
639
707
  arrowPress: function () {
640
- oDialog = oToolbar.getAggregation("_custom" + sCommand + "Dialog");
708
+ oDialog = that.getAggregation("_custom" + sCommand + "Dialog");
641
709
 
642
710
  this._getArrowButton()._activeButton();
643
711
  if (!oDialog) {
@@ -657,19 +725,19 @@ sap.ui.define([
657
725
 
658
726
 
659
727
  /**
660
- * Helper function for creating Button Control configuration for opening dialogs
728
+ * Helper function for creating Button Control configuration for opening dialogs.
661
729
  *
662
730
  * @private
663
731
  * @param {string} [sCommand] Editor Command
664
- * @returns {object} The configuration object for the toolbar button which opens a command specific dialog
732
+ * @returns {object|null} The configuration object for the toolbar button which opens a command specific dialog or null.
665
733
  */
666
734
  ToolbarWrapper.prototype._createButtonForDialog = function (sCommand) {
667
- var oCommand = library.EditorCommands[sCommand],
668
- oToolbar = this,
735
+ var oCommand = EditorCommands[sCommand],
736
+ that = this,
669
737
  oDialog;
670
738
 
671
739
  if (!oCommand) {
672
- return;
740
+ return null;
673
741
  }
674
742
 
675
743
  return {
@@ -678,7 +746,7 @@ sap.ui.define([
678
746
  tooltip: this._oResourceBundle.getText(oCommand.bundleKey),
679
747
  text: this._oResourceBundle.getText(oCommand.bundleKey),
680
748
  press: function () {
681
- oDialog = oToolbar.getAggregation("_custom" + sCommand + "Dialog");
749
+ oDialog = that.getAggregation("_custom" + sCommand + "Dialog");
682
750
 
683
751
  if (!oDialog) {
684
752
  return;
@@ -687,13 +755,16 @@ sap.ui.define([
687
755
  switch (sCommand) {
688
756
  case "InsertImage":
689
757
  this.setPressed(true);
690
- oToolbar._syncImageDialogData(oDialog);
758
+ that._syncImageDialogData(oDialog);
691
759
  break;
692
760
  case "InsertLink":
693
- oToolbar._syncLinkDialogData(oDialog);
761
+ that._syncLinkDialogData(oDialog);
694
762
  break;
695
763
  case "InsertTable":
696
- oToolbar._resetDialogContent(oDialog);
764
+ that._resetDialogContent(oDialog);
765
+ break;
766
+ default:
767
+ break;
697
768
  }
698
769
  oDialog.open();
699
770
  }
@@ -840,25 +911,22 @@ sap.ui.define([
840
911
  * @private
841
912
  */
842
913
  ToolbarWrapper.prototype._createColorPalettePopoverConfig = function(sType) {
843
- var oCommand = library.EditorCommands[sType],
914
+ var oCommand = EditorCommands[sType],
844
915
  sColor = oCommand.defaultValue,
845
- oToolbar = this;
916
+ that = this;
846
917
 
847
918
  return {
848
919
  defaultColor: sColor,
849
920
  colorSelect: function (oEvent) {
850
921
  var sColor = oEvent.getParameters().value;
851
- oToolbar._applyColor(sType, oCommand.command, sColor, oEvent.getParameter("defaultAction"));
852
-
853
- switch (sType) {
854
- case "TextColor":
855
- oToolbar._sTextColor = sColor;
856
- oToolbar._syncColors("TextColor", sColor);
857
- break;
858
- case "BackgroundColor":
859
- oToolbar._sBackgroundColor = sColor;
860
- oToolbar._syncColors("BackgroundColor", sColor);
861
- break;
922
+ that._applyColor(sType, oCommand.command, sColor, oEvent.getParameter("defaultAction"));
923
+ if (sType === "TextColor") {
924
+ that._sTextColor = sColor;
925
+ that._syncColors("TextColor", sColor);
926
+ }
927
+ if (sType === "BackgroundColor") {
928
+ that._sBackgroundColor = sColor;
929
+ that._syncColors("BackgroundColor", sColor);
862
930
  }
863
931
  }
864
932
  };
@@ -894,7 +962,7 @@ sap.ui.define([
894
962
  */
895
963
  ToolbarWrapper.prototype._createInsertImageConfig = function() {
896
964
  var iRationCoeff,
897
- oTitleBundleText = this._oResourceBundle.getText(sap.ui.richtexteditor.EditorCommands["InsertImage"].bundleKey),
965
+ oTitleBundleText = this._oResourceBundle.getText(EditorCommands["InsertImage"].bundleKey),
898
966
  oURLInput = this._helper.createInput(),
899
967
  oURLLabel = this._helper.createLabel({
900
968
  text: this._oResourceBundle.getText("INSERT_IMAGE_URL"),
@@ -906,7 +974,8 @@ sap.ui.define([
906
974
  labelFor: oTextInput
907
975
  }),
908
976
  oDimensionsLabel = this._helper.createLabel({
909
- text: this._oResourceBundle.getText("INSERT_CONTENT_DIMENSIONS")
977
+ text: this._oResourceBundle.getText("INSERT_CONTENT_DIMENSIONS"),
978
+ labelFor: oDimensionWidthInput
910
979
  }),
911
980
  oDimensionWidthInput = this._helper.createInput({
912
981
  width: '8rem',
@@ -950,7 +1019,7 @@ sap.ui.define([
950
1019
  }),
951
1020
  oRTE = this.getEditor(),
952
1021
  fnCalculateRatio = function(bCheckHeight, bCheckWidth) {
953
- var oSelection = oRTE.getNativeApi().selection,
1022
+ var oSelection = oRTE && oRTE.getNativeApi().selection,
954
1023
  oSelectionNode = oSelection && oSelection.getNode(),
955
1024
  fWidthInputValue = parseFloat(oDimensionWidthInput.getValue()),
956
1025
  fHeightInputValue = parseFloat(oDimensionHeightInput.getValue()),
@@ -978,23 +1047,22 @@ sap.ui.define([
978
1047
  oDimensionHeightInput.setValue(fWidthInputValue / iRationCoeff);
979
1048
  }
980
1049
  },
981
- oToolbar = this,
1050
+ that = this,
982
1051
  aButtons = [];
983
1052
 
984
- oDimensionsLabel.setLabelFor(oDimensionWidthInput);
985
-
986
1053
  aButtons.push(this._helper.createButton({
987
1054
  id: this._getId("InsertImageButton"),
1055
+ type: ButtonType.Emphasized,
988
1056
  text: this._oResourceBundle.getText("DIALOG_OK_BUTTON"),
989
1057
  press: function () {
990
1058
  oRTE.getNativeApi()
991
- .insertContent(oToolbar._generateImageHTML(oURLInput.getValue(),
1059
+ .insertContent(that._generateImageHTML(oURLInput.getValue(),
992
1060
  oTextInput.getValue(),
993
1061
  oDimensionHeightInput.getValue(),
994
1062
  oDimensionWidthInput.getValue(),
995
1063
  oRatioCheckBox.getSelected()));
996
- oToolbar.getAggregation("_customInsertImageDialog").close();
997
- oToolbar._syncToolbarStates(oRTE.getNativeApi());
1064
+ that.getAggregation("_customInsertImageDialog").close();
1065
+ that._syncToolbarStates(oRTE.getNativeApi());
998
1066
  }
999
1067
  }));
1000
1068
 
@@ -1002,8 +1070,8 @@ sap.ui.define([
1002
1070
  id: this._getId("CancelInsertImageButton"),
1003
1071
  text: this._oResourceBundle.getText("DIALOG_CANCEL_BUTTON"),
1004
1072
  press: function () {
1005
- oToolbar.getAggregation("_customInsertImageDialog").close();
1006
- oToolbar._syncToolbarStates(oRTE.getNativeApi());
1073
+ that.getAggregation("_customInsertImageDialog").close();
1074
+ that._syncToolbarStates(oRTE.getNativeApi());
1007
1075
  }
1008
1076
  }));
1009
1077
 
@@ -1050,10 +1118,9 @@ sap.ui.define([
1050
1118
  * Helper function for generating link HTML content
1051
1119
  *
1052
1120
  * @param {string} [sURL] The URL of the HTML link tag
1053
- * @param {string} [sText] The text of the HTML link tag
1054
1121
  * @param {string} [sTitle] The title of the HTML link tag
1055
1122
  * @param {boolean} [bTarget] True if the provided link should be opened in a new window
1056
- * @returns {string} String representing HTML tag with the provided parameters
1123
+ * @param {string} [sText] The text of the HTML link tag
1057
1124
  * @private
1058
1125
  */
1059
1126
  ToolbarWrapper.prototype._generateLinkHTML = function (sURL, sTitle, bTarget, sText) {
@@ -1128,7 +1195,7 @@ sap.ui.define([
1128
1195
  * @private
1129
1196
  */
1130
1197
  ToolbarWrapper.prototype._createInsertLinkConfig = function() {
1131
- var oTitleBundleText = this._oResourceBundle.getText(sap.ui.richtexteditor.EditorCommands["InsertLink"].bundleKey),
1198
+ var oTitleBundleText = this._oResourceBundle.getText(EditorCommands["InsertLink"].bundleKey),
1132
1199
  oURLInput = this._helper.createInput(),
1133
1200
  oURLLabel = this._helper.createLabel({
1134
1201
  text: this._oResourceBundle.getText("INSERT_LINK_URL"),
@@ -1168,20 +1235,21 @@ sap.ui.define([
1168
1235
  oTargetSelect]
1169
1236
  }),
1170
1237
  oRTE = this.getEditor(),
1171
- oToolbar = this,
1238
+ that = this,
1172
1239
  aButtons = [];
1173
1240
 
1174
1241
  aButtons.push(this._helper.createButton({
1175
1242
  id: this._getId("InsertLinkButton"),
1243
+ type: ButtonType.Emphasized,
1176
1244
  text: this._oResourceBundle.getText("DIALOG_OK_BUTTON"),
1177
1245
  press: function () {
1178
1246
  var bTarget = (oTargetSelect.getSelectedItem() === oTargetSelect.getItems()[1]);
1179
- oToolbar._generateLinkHTML(oURLInput.getValue(),
1247
+ that._generateLinkHTML(oURLInput.getValue(),
1180
1248
  oTitleInput.getValue(),
1181
1249
  bTarget,
1182
1250
  oTextInput.getValue());
1183
- oToolbar.getAggregation("_customInsertLinkDialog").close();
1184
- oToolbar._syncToolbarStates(oRTE.getNativeApi());
1251
+ that.getAggregation("_customInsertLinkDialog").close();
1252
+ that._syncToolbarStates(oRTE.getNativeApi());
1185
1253
  }
1186
1254
  }));
1187
1255
 
@@ -1189,8 +1257,8 @@ sap.ui.define([
1189
1257
  id: this._getId("CancelInsertLinkButton"),
1190
1258
  text: this._oResourceBundle.getText("DIALOG_CANCEL_BUTTON"),
1191
1259
  press: function () {
1192
- oToolbar.getAggregation("_customInsertLinkDialog").close();
1193
- oToolbar._syncToolbarStates(oRTE.getNativeApi());
1260
+ that.getAggregation("_customInsertLinkDialog").close();
1261
+ that._syncToolbarStates(oRTE.getNativeApi());
1194
1262
  }
1195
1263
  }));
1196
1264
 
@@ -1217,7 +1285,7 @@ sap.ui.define([
1217
1285
  * @private
1218
1286
  */
1219
1287
  ToolbarWrapper.prototype._createInsertTableConfig = function() {
1220
- var oTitleBundleText = this._oResourceBundle.getText(sap.ui.richtexteditor.EditorCommands["InsertTable"].bundleKey),
1288
+ var oTitleBundleText = this._oResourceBundle.getText(EditorCommands["InsertTable"].bundleKey),
1221
1289
  oRowsInput = this._helper.createStepInput({
1222
1290
  value: 2,
1223
1291
  min: 0,
@@ -1265,21 +1333,31 @@ sap.ui.define([
1265
1333
  oDimensionWidthInput]
1266
1334
  }),
1267
1335
  oRTE = this.getEditor(),
1268
- oToolbar = this,
1336
+ that = this,
1269
1337
  aButtons = [];
1270
1338
 
1271
1339
  aButtons.push(this._helper.createButton({
1272
1340
  id: this._getId("InsertTableButton"),
1273
1341
  text: this._oResourceBundle.getText("DIALOG_OK_BUTTON"),
1274
1342
  press: function () {
1275
- var tableElm = oRTE.getNativeApi().plugins.table
1276
- .insertTable(oColsInput.getValue(), oRowsInput.getValue()),
1277
- dom = oRTE.getNativeApi().dom;
1343
+ var oDomRef = oRTE.getNativeApi().dom;
1344
+ var oNativeAPI = oRTE.getNativeApi();
1345
+ var oTableElm;
1346
+
1347
+ if (oRTE.getEditorType() === library.EditorType.TinyMCE6) {
1348
+ oNativeAPI.execCommand('mceInsertTable', false, { rows: oRowsInput.getValue(), columns: oColsInput.getValue() });
1349
+
1350
+ oTableElm = oDomRef.getParents(oNativeAPI.selection.getNode()).find(function (element) {
1351
+ return element.tagName.toLowerCase() === "table";
1352
+ });
1353
+ } else {
1354
+ oTableElm = oNativeAPI.plugins.table.insertTable(oColsInput.getValue(), oRowsInput.getValue());
1355
+ }
1278
1356
 
1279
- dom.setStyle(tableElm, 'width', oDimensionWidthInput.getValue() + "px");
1280
- dom.setStyle(tableElm, 'height', oDimensionHeightInput.getValue() + "px");
1357
+ oDomRef.setStyle(oTableElm, 'width', oDimensionWidthInput.getValue() + "px");
1358
+ oDomRef.setStyle(oTableElm, 'height', oDimensionHeightInput.getValue() + "px");
1281
1359
 
1282
- oToolbar.getAggregation("_customInsertTableDialog").close();
1360
+ that.getAggregation("_customInsertTableDialog").close();
1283
1361
  }
1284
1362
  }));
1285
1363
 
@@ -1287,7 +1365,7 @@ sap.ui.define([
1287
1365
  id: this._getId("CancelInsertTableButton"),
1288
1366
  text: this._oResourceBundle.getText("DIALOG_CANCEL_BUTTON"),
1289
1367
  press: function () {
1290
- oToolbar.getAggregation("_customInsertTableDialog").close();
1368
+ that.getAggregation("_customInsertTableDialog").close();
1291
1369
  }
1292
1370
  }));
1293
1371
 
@@ -1316,8 +1394,7 @@ sap.ui.define([
1316
1394
  ToolbarWrapper.prototype._createCustomToolbar = function () {
1317
1395
  var oEditorHelper = this._helper,
1318
1396
  aContent = [],
1319
- oButtonGroups = library.ButtonGroups,
1320
- aGroupNames = Object.keys(oButtonGroups),
1397
+ aGroupNames = Object.keys(ButtonGroups),
1321
1398
  aGroups = [],
1322
1399
  aGroupObjects = this.getEditor() ? this.getEditor().getButtonGroups() : [];
1323
1400
 
@@ -1334,7 +1411,7 @@ sap.ui.define([
1334
1411
  aGroups = this._sortToolbarContent(aGroups);
1335
1412
 
1336
1413
  aGroups.forEach(function(oGroup){
1337
- aContent = aContent.concat(this.addButtonGroup(oGroup.name));
1414
+ aContent = aContent.concat(this._createButtonGroup(oGroup));
1338
1415
  }.bind(this));
1339
1416
 
1340
1417
  return oEditorHelper.createOverflowToolbar(this._getId(), aContent);
@@ -1374,195 +1451,331 @@ sap.ui.define([
1374
1451
  };
1375
1452
 
1376
1453
  /**
1377
- * Adds a Button Group to the Custom Toolbar
1454
+ * Maps the native TinyMCE style button names to ones supported by the toolbar wrapper.
1378
1455
  *
1379
- * @param {string} [sGroupName] Group name
1456
+ * @param {string} sGroupName Name of the group
1457
+ * @param {string[]} aNativeButtons Array of native TinyMCE style button names.
1458
+ * @returns {string[]} Array of supported button names (commands).
1459
+ * @private
1460
+ */
1461
+ ToolbarWrapper.prototype._mapNativeButtonsToCommands = function (sGroupName, aNativeButtons) {
1462
+ var oRTE = this.getEditor();
1463
+ var aCommandsToCreate = [];
1464
+ var aSupportedButtonGroup = ButtonGroups[sGroupName];
1465
+
1466
+ if (!Array.isArray(aSupportedButtonGroup) || aNativeButtons && !aNativeButtons.length) {
1467
+ return [];
1468
+ }
1469
+
1470
+ // There are some special groups which do not map 1 to 1 with the native button types
1471
+ // Those groups require some special attention as they might render all buttons as single menu one
1472
+ // or create select type controls.
1473
+ switch (sGroupName) {
1474
+ case "text-align":
1475
+ aCommandsToCreate.push("TextAlign");
1476
+ break;
1477
+ case "formatselect":
1478
+ case "blocks":
1479
+ case "styleselect":
1480
+ case "styles":
1481
+ aCommandsToCreate.push("FormatBlock");
1482
+ break;
1483
+ case "insert":
1484
+ aCommandsToCreate.push("InsertImage");
1485
+ break;
1486
+ default:
1487
+ // Check the provided buttons in the group against the supported ones for this particular group from the library.
1488
+ aNativeButtons.forEach(function (sNativeButtonName) {
1489
+ var sCustomCommandName = ButtonsToCommandsMap[sNativeButtonName];
1490
+
1491
+ if (aSupportedButtonGroup.indexOf(sCustomCommandName) > -1) {
1492
+ // The button is supported in the custom toolbar and can be added
1493
+ aCommandsToCreate.push(sCustomCommandName);
1494
+ } else {
1495
+ // For unsupported buttons - log warning and do not do anything
1496
+ Log.warning("Unsupported button for the custom toolbar found: " + sNativeButtonName + ", for group: " + sGroupName + ".", oRTE);
1497
+ }
1498
+ });
1499
+ break;
1500
+ }
1501
+
1502
+ return aCommandsToCreate;
1503
+ };
1504
+
1505
+ ToolbarWrapper.prototype._createFontToolbarContent = function (aButtonsToCreate, bVisible) {
1506
+ // All buttons in this group should be handled case by case as they are not of the same type.
1507
+ var aToolbarContent = [];
1508
+ var oAccessibilityKeys = library.Accessibility;
1509
+ var oRTE = this.getEditor();
1510
+ var that = this;
1511
+
1512
+ // --- Font Family ---
1513
+ if (aButtonsToCreate.indexOf("FontFamily") !== -1) {
1514
+ var oInvisibleTextFontFamily = this._helper.createInvisibleText({
1515
+ text: this._oResourceBundle.getText(oAccessibilityKeys["FontFamily"])
1516
+ }).toStatic();
1517
+ this._registerAssociatedInvisibleTexts("font", oInvisibleTextFontFamily.getId());
1518
+
1519
+ aToolbarContent.push(
1520
+ this._helper.createSelect({
1521
+ id: this._getId("FontFamily"),
1522
+ ariaLabelledBy: oInvisibleTextFontFamily,
1523
+ selectedItemId: this._getId("FontFamilyVerdana"),
1524
+ items: this._createFontStyleSelectItems(),
1525
+ change: function (oEvent) {
1526
+ var oItem;
1527
+
1528
+ if (oRTE) {
1529
+ oItem = oEvent.getSource().getSelectedItem();
1530
+ oRTE.getNativeApi().execCommand('FontName', false, that._getFontStyleCommand(oItem.getText()));
1531
+ } else {
1532
+ Log.warning("Cannot execute native command: " + 'FontName');
1533
+ }
1534
+ }
1535
+ }).setVisible(bVisible)
1536
+ );
1537
+ }
1538
+
1539
+ // --- Font Size ---
1540
+ if (aButtonsToCreate.indexOf("FontSize") !== -1) {
1541
+ var oInvisibleTextFontSize = this._helper.createInvisibleText({
1542
+ text: this._oResourceBundle.getText(oAccessibilityKeys["FontSize"])
1543
+ }).toStatic();
1544
+ this._registerAssociatedInvisibleTexts("font", oInvisibleTextFontSize.getId());
1545
+
1546
+ aToolbarContent.push(
1547
+ this._helper.createSelect({
1548
+ id: this._getId("FontSize"),
1549
+ ariaLabelledBy: oInvisibleTextFontSize,
1550
+ selectedItemId: this._getId("FontSize2"),
1551
+ items: this._createFontSizeSelectItems(),
1552
+ change: function (oEvent) {
1553
+ var oItem;
1554
+
1555
+ if (oRTE) {
1556
+ oItem = oEvent.getSource().getSelectedItem();
1557
+ oRTE.getNativeApi().execCommand('FontSize', false, oItem.getText().replace(/\s/g, ""));
1558
+ } else {
1559
+ Log.warning("Cannot execute native command: " + 'FontSize');
1560
+ }
1561
+ }
1562
+ }).setVisible(bVisible)
1563
+ );
1564
+ }
1565
+
1566
+ // --- Font Color ---
1567
+ if (aButtonsToCreate.indexOf("TextColor") !== -1) {
1568
+ var oInvisibleTextFontColor = this._helper.createInvisibleText({
1569
+ text: this._oResourceBundle.getText(oAccessibilityKeys["FontColor"])
1570
+ }).toStatic();
1571
+
1572
+ var oRTESplitButton = new RTESplitButton(this._createSplitButtonForDialog("TextColor")).setVisible(bVisible);
1573
+ oRTESplitButton._getTextButton().addAriaLabelledBy(oInvisibleTextFontColor);
1574
+
1575
+ aToolbarContent.push(oRTESplitButton);
1576
+ }
1577
+
1578
+ // --- Background Color ---
1579
+ if (aButtonsToCreate.indexOf("BackgroundColor") !== -1) {
1580
+ var oInvisibleTextBackgroundColor = this._helper.createInvisibleText({
1581
+ text: this._oResourceBundle.getText(oAccessibilityKeys["BackgroundColor"])
1582
+ }).toStatic();
1583
+
1584
+ var oBackgroundColorButton = this._helper.createSplitButton(this._createSplitButtonForDialog("BackgroundColor")).setVisible(bVisible);
1585
+ oBackgroundColorButton._getTextButton().addAriaLabelledBy(oInvisibleTextBackgroundColor);
1586
+ aToolbarContent.push(oBackgroundColorButton);
1587
+ }
1588
+
1589
+ return aToolbarContent;
1590
+ };
1591
+
1592
+ ToolbarWrapper.prototype._createTextAlignToolbarContent = function (bVisible) {
1593
+ var oRTE = this.getEditor();
1594
+ var bGroupVisible = oRTE ? oRTE.getShowGroupFontStyle() || bVisible : false;
1595
+ var that = this;
1596
+ var bTextAlignLRight = oRTE._getTextDirection() === "rtl";
1597
+ var iDefaultItemIndex = bTextAlignLRight ? 2 : 0;
1598
+ var aMenuItems = this._createMenuButtonItems("TextAlign");
1599
+
1600
+ return [
1601
+ this._helper.createMenuButton(
1602
+ this._getId("TextAlign"),
1603
+ aMenuItems,
1604
+ function (oEvent) {
1605
+ var oSelectedItem, oEditor, oSelectedItemIcon;
1606
+
1607
+ if (oRTE) {
1608
+ oSelectedItem = oEvent.getParameter("item");
1609
+ oEditor = oRTE.getNativeApi();
1610
+ oSelectedItemIcon = oSelectedItem.getIcon();
1611
+ if (oSelectedItemIcon === this.getParent().getIcon()) {
1612
+ var sTextAlign = bTextAlignLRight ? "JustifyRight" : "JustifyLeft";
1613
+ // Text Align commands in TinyMCE have a toggle behavior when you set a
1614
+ // certain command twice the default command (text-align-left) will be applied
1615
+ oEditor.execCommand(sTextAlign);
1616
+ } else {
1617
+ oEditor.execCommand('Justify' + that._findTextAlignCommandByIcon(oSelectedItemIcon));
1618
+ }
1619
+ } else {
1620
+ Log.warning("Cannot execute native command: " + 'Justify');
1621
+ }
1622
+ },
1623
+ aMenuItems[iDefaultItemIndex].getIcon(),
1624
+ this._oResourceBundle.getText(EditorCommands["TextAlign"].bundleKey)
1625
+ ).setVisible(bGroupVisible)
1626
+ ];
1627
+ };
1628
+
1629
+ ToolbarWrapper.prototype._createFormatSelectToolbarContent = function (bVisible) {
1630
+ var oRTE = this.getEditor();
1631
+ var oAccessibilityKeys = library.Accessibility;
1632
+ var oInvisibleTextFormatBlock = this._helper.createInvisibleText({
1633
+ text: this._oResourceBundle.getText(oAccessibilityKeys["FormatBlock"])
1634
+ }).toStatic();
1635
+
1636
+ this._registerAssociatedInvisibleTexts("formatselect", oInvisibleTextFormatBlock.getId());
1637
+
1638
+ return [
1639
+ this._helper.createSelect({
1640
+ id: this._getId("FormatBlock"),
1641
+ ariaLabelledBy: oInvisibleTextFormatBlock,
1642
+ items: this._createFormatBlockItems(),
1643
+ change: function (oEvent) {
1644
+ var oSelectedItem;
1645
+ if (oRTE) {
1646
+ oSelectedItem = oEvent.getSource().getSelectedItem();
1647
+ if (oSelectedItem) {
1648
+ var currentFormatterCommand = oRTE.getAggregation("_toolbarWrapper")._getFormatBlockCommand(oSelectedItem.getText());
1649
+ oRTE.getNativeApi().execCommand('FormatBlock', false, currentFormatterCommand);
1650
+ }
1651
+ } else {
1652
+ Log.warning("Cannot execute native command: " + 'FormatBlock');
1653
+ }
1654
+ }
1655
+ }).setVisible(bVisible)
1656
+ ];
1657
+ };
1658
+
1659
+ ToolbarWrapper.prototype._createFontStyleToolbarContent = function (aButtonsToCreate, bVisible) {
1660
+ var aToolbarContent = [];
1661
+
1662
+ aButtonsToCreate.forEach(function (oCommand) {
1663
+ aToolbarContent.push(this._helper.createOverflowToolbarToggleButton(this._createButtonConfig(oCommand)).setVisible(bVisible));
1664
+ }, this);
1665
+
1666
+ return aToolbarContent;
1667
+ };
1668
+
1669
+ ToolbarWrapper.prototype._createInsertToolbarContent = function (bVisible) {
1670
+ return [this._helper.createOverflowToolbarToggleButton(this._createButtonForDialog("InsertImage")).setVisible(bVisible)];
1671
+ };
1672
+
1673
+ ToolbarWrapper.prototype._createLinkToolbarContent = function (aButtonsToCreate, bVisible) {
1674
+ var aToolbarContent = [];
1675
+
1676
+ // All buttons in this group should be handled case by case as they are not of the same type.
1677
+ if (aButtonsToCreate.indexOf("InsertLink") !== -1) {
1678
+ aToolbarContent.push(this._helper.createOverflowToolbarToggleButton(this._createButtonForDialog("InsertLink")).setVisible(bVisible));
1679
+ }
1680
+ if (aButtonsToCreate.indexOf("Unlink") !== -1) {
1681
+ aToolbarContent.push(this._helper.createOverflowToolbarButton(this._createButtonConfig("Unlink")).setVisible(bVisible));
1682
+ }
1683
+
1684
+ return aToolbarContent;
1685
+ };
1686
+
1687
+ ToolbarWrapper.prototype._createStructureToolbarContent = function (aButtonsToCreate, bVisible) {
1688
+ var aToolbarContent = [];
1689
+
1690
+ aButtonsToCreate.forEach(function (oCommand) {
1691
+ aToolbarContent.push(this._helper.createOverflowToolbarButton(this._createButtonConfig(oCommand)).setVisible(bVisible));
1692
+ }, this);
1693
+
1694
+ return aToolbarContent;
1695
+ };
1696
+
1697
+ ToolbarWrapper.prototype._createClipboardToolbarContent = function (aButtonsToCreate, bVisible) {
1698
+ var aToolbarContent = [];
1699
+
1700
+ aButtonsToCreate.forEach(function (oCommand) {
1701
+ aToolbarContent.push(this._helper.createOverflowToolbarButton(this._createButtonConfig(oCommand)).setVisible(bVisible));
1702
+ }, this);
1703
+
1704
+ return aToolbarContent;
1705
+ };
1706
+
1707
+ ToolbarWrapper.prototype._createUndoToolbarContent = function (aButtonsToCreate, bVisible) {
1708
+ var aToolbarContent = [];
1709
+
1710
+ aButtonsToCreate.forEach(function (oCommand) {
1711
+ aToolbarContent.push(this._helper.createOverflowToolbarButton(this._createButtonConfig(oCommand)).setVisible(bVisible));
1712
+ }, this);
1713
+
1714
+ return aToolbarContent;
1715
+ };
1716
+
1717
+ /**
1718
+ * Creates a Button Group for the Custom Toolbar
1719
+ *
1720
+ * @param {string} [mGroup] Object map containing group information.
1721
+ * @param {string[]} [mGroup.buttons] Array of name/IDs of the buttons in the group
1722
+ * @param {string} [mGroup.name] Name/ID of the group.
1723
+ * @param {boolean} [mGroup.visible=true] (optional) The priority of the button group. Lower priorities are added first.
1724
+ * @param {int} [mGroup.row=0] (optional) Row number in which the button should be
1725
+ * @param {int} [mGroup.priority=10] (optional) The priority of the button group. Lower priorities are added first.
1726
+ * @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.
1380
1727
  * @returns {Array} An array containing the buttons in the group that should be added to the Custom Toolbar's content
1381
- * @public
1728
+ * @private
1382
1729
  */
1383
- ToolbarWrapper.prototype.addButtonGroup = function (sGroupName) {
1730
+ ToolbarWrapper.prototype._createButtonGroup = function (mGroup) {
1384
1731
  var oRTE = this.getEditor(),
1385
1732
  oEditorHelper = this._helper,
1386
1733
  aContent = [],
1387
- oButtonGroups = library.ButtonGroups,
1388
- oCommands = library.EditorCommands,
1389
- oAccessibilityKeys = library.Accessibility,
1390
- bVisibleGroupClipboard,
1391
- bVisibleGroupStructure,
1392
- bVisibleGroupFont,
1393
- bVisibleGroupFontStyle,
1394
- bVisibleGroupUndo,
1395
- bVisibleGroupTextAlign,
1396
- bVisibleGroupFormatBlock,
1397
- bVisibleGroupLink,
1398
- bVisibleGroupInsert,
1399
- oToolbar = this;
1734
+ aToolbarButtonsToCreate = [];
1400
1735
 
1736
+ if (!oRTE) {
1737
+ return [];
1738
+ }
1401
1739
 
1402
- switch (sGroupName) {
1403
- case "font-style":
1404
- bVisibleGroupFontStyle = oRTE ? oRTE.getShowGroupFontStyle() : false;
1740
+ // Map native tinyMCE style button names (e.g. "bold", "forecolor") to supported by the custom toolbar button commands (e.g. "Bold", "TextColor").
1741
+ // If the group does not have "buttons" property, the default configuration for this particular group will be used.
1742
+ aToolbarButtonsToCreate = this._mapNativeButtonsToCommands(mGroup.name, mGroup.buttons);
1405
1743
 
1406
- oButtonGroups["font-style"].forEach(function (oCommand) {
1407
- aContent.push(oEditorHelper.createOverflowToolbarToggleButton(this._createButtonConfig(oCommand)).setVisible(bVisibleGroupFontStyle));
1408
- }, this);
1744
+ switch (mGroup.name) {
1745
+ case "font-style":
1746
+ aContent = this._createFontStyleToolbarContent(aToolbarButtonsToCreate, mGroup.visible);
1409
1747
  break;
1410
1748
  case "font":
1411
- bVisibleGroupFont = oRTE ? oRTE.getShowGroupFont() : false;
1412
-
1413
- var oInvisibleTextFontFamily = oEditorHelper.createInvisibleText({
1414
- text: this._oResourceBundle.getText(oAccessibilityKeys["FontFamily"])
1415
- }).toStatic(),
1416
- oInvisibleTextFontSize = oEditorHelper.createInvisibleText({
1417
- text: this._oResourceBundle.getText(oAccessibilityKeys["FontSize"])
1418
- }).toStatic(),
1419
- oInvisibleTextFontColor = oEditorHelper.createInvisibleText({
1420
- text: this._oResourceBundle.getText(oAccessibilityKeys["FontColor"])
1421
- }).toStatic(),
1422
- oInvisibleTextBackgroundColor = oEditorHelper.createInvisibleText({
1423
- text: this._oResourceBundle.getText(oAccessibilityKeys["BackgroundColor"])
1424
- }).toStatic();
1425
- this._registerAssociatedInvisibleTexts("font", oInvisibleTextFontFamily.getId());
1426
- this._registerAssociatedInvisibleTexts("font", oInvisibleTextFontSize.getId());
1427
-
1428
- aContent.push(
1429
- oEditorHelper.createSelect({
1430
- id: this._getId("FontFamily"),
1431
- ariaLabelledBy: oInvisibleTextFontFamily,
1432
- selectedItemId: this._getId("FontFamilyVerdana"),
1433
- items: this._createFontStyleSelectItems(),
1434
- change: function (oEvent) {
1435
- var oItem;
1436
-
1437
- if (oRTE) {
1438
- oItem = oEvent.getSource().getSelectedItem();
1439
- oRTE.getNativeApi().execCommand('FontName', false, this._getFontStyleCommand(oItem.getText()));
1440
- } else {
1441
- Log.warning("Cannot execute native command: " + 'FontName');
1442
- }
1443
- }.bind(this)
1444
- }).setVisible(bVisibleGroupFont)
1445
- );
1446
-
1447
- aContent.push(
1448
- oEditorHelper.createSelect({
1449
- id: this._getId("FontSize"),
1450
- ariaLabelledBy: oInvisibleTextFontSize,
1451
- selectedItemId: this._getId("FontSize2"),
1452
- items: this._createFontSizeSelectItems(),
1453
- change: function (oEvent) {
1454
- var oItem;
1455
-
1456
- if (oRTE) {
1457
- oItem = oEvent.getSource().getSelectedItem();
1458
- oRTE.getNativeApi().execCommand('FontSize', false, oItem.getText().replace(/\s/g, ""));
1459
- } else {
1460
- Log.warning("Cannot execute native command: " + 'FontSize');
1461
- }
1462
- }
1463
- }).setVisible(bVisibleGroupFont)
1464
- );
1465
- var oRTESplitButton = new RTESplitButton(this._createSplitButtonForDialog("TextColor")).setVisible(bVisibleGroupFont),
1466
- oBackgroundColorButton = oEditorHelper.createSplitButton(this._createSplitButtonForDialog("BackgroundColor")).setVisible(bVisibleGroupFont);
1467
-
1468
- oRTESplitButton._getTextButton().addAriaLabelledBy(oInvisibleTextFontColor);
1469
- aContent.push(oRTESplitButton);
1470
-
1471
- oBackgroundColorButton._getTextButton().addAriaLabelledBy(oInvisibleTextBackgroundColor);
1472
- aContent.push(oBackgroundColorButton);
1749
+ aContent = this._createFontToolbarContent(aToolbarButtonsToCreate, mGroup.visible);
1473
1750
  break;
1474
1751
  case "text-align":
1475
- bVisibleGroupTextAlign = oRTE ? oRTE.getShowGroupTextAlign() : false;
1476
- var bTextAlignLRight = oRTE._getTextDirection() === "rtl";
1477
- var iDefaultItemIndex = bTextAlignLRight ? 2 : 0;
1478
- var aMenuItems = this._createMenuButtonItems("TextAlign");
1479
- aContent.push(
1480
- oEditorHelper.createMenuButton(
1481
- this._getId("TextAlign"),
1482
- aMenuItems,
1483
- function (oEvent) {
1484
- var oSelectedItem, oEditor, oSelectedItemIcon;
1485
-
1486
- if (oRTE) {
1487
- oSelectedItem = oEvent.getParameter("item");
1488
- oEditor = oRTE.getNativeApi();
1489
- oSelectedItemIcon = oSelectedItem.getIcon();
1490
- if (oSelectedItemIcon === this.getParent().getIcon()) {
1491
- var sTextAlign = bTextAlignLRight ? "JustifyRight" : "JustifyLeft";
1492
- // Text Align commands in TinyMCE have a toggle behavior when you set a
1493
- // certain command twice the default command (text-align-left) will be applied
1494
- oEditor.execCommand(sTextAlign);
1495
- } else {
1496
- oEditor.execCommand('Justify' + oToolbar._findTextAlignCommandByIcon(oSelectedItemIcon));
1497
- }
1498
- } else {
1499
- Log.warning("Cannot execute native command: " + 'Justify');
1500
- }
1501
- },
1502
- aMenuItems[iDefaultItemIndex].getIcon(),
1503
- this._oResourceBundle.getText(oCommands["TextAlign"].bundleKey)
1504
- ).setVisible(bVisibleGroupTextAlign)
1505
- );
1752
+ aContent = this._createTextAlignToolbarContent(mGroup.visible);
1506
1753
  break;
1754
+ case "styleselect":
1755
+ case "styles":
1756
+ case "blocks":
1507
1757
  case "formatselect":
1508
- bVisibleGroupFormatBlock = oRTE ? (this._isButtonGroupAdded("styleselect") || this._isButtonGroupAdded("formatselect")) : false;
1509
-
1510
- if (bVisibleGroupFormatBlock) {
1511
- var oInvisibleTextFormatBlock = oEditorHelper.createInvisibleText({
1512
- text: this._oResourceBundle.getText(oAccessibilityKeys["FormatBlock"])
1513
- }).toStatic();
1514
- this._registerAssociatedInvisibleTexts("formatselect", oInvisibleTextFormatBlock.getId());
1515
- aContent.push(
1516
- oEditorHelper.createSelect({
1517
- id: this._getId("FormatBlock"),
1518
- ariaLabelledBy: oInvisibleTextFormatBlock,
1519
- items: this._createFormatBlockItems(),
1520
- change: function (oEvent) {
1521
- var oSelectedItem;
1522
- if (oRTE) {
1523
- oSelectedItem = oEvent.getSource().getSelectedItem();
1524
- if (oSelectedItem) {
1525
- var currentFormatterCommand = oRTE.getAggregation("_toolbarWrapper")._getFormatBlockCommand(oSelectedItem.getText());
1526
- oRTE.getNativeApi().execCommand('FormatBlock', false, currentFormatterCommand);
1527
- }
1528
- } else {
1529
- Log.warning("Cannot execute native command: " + 'FormatBlock');
1530
- }
1531
- }
1532
- }).setVisible(bVisibleGroupFormatBlock)
1533
- );
1534
- }
1758
+ aContent = this._createFormatSelectToolbarContent(this._isButtonGroupAdded("styleselect") || this._isButtonGroupAdded("styles") || this._isButtonGroupAdded("blocks") || this._isButtonGroupAdded("formatselect"));
1535
1759
  break;
1536
1760
  case "structure":
1537
- bVisibleGroupStructure = oRTE ? oRTE.getShowGroupStructure() : false;
1538
- oButtonGroups["structure"].forEach(function (oCommand) {
1539
- aContent.push(oEditorHelper.createOverflowToolbarButton(this._createButtonConfig(oCommand)).setVisible(bVisibleGroupStructure));
1540
- }, this);
1761
+ aContent = this._createStructureToolbarContent(aToolbarButtonsToCreate, mGroup.visible);
1541
1762
  break;
1542
1763
  case "clipboard":
1543
- bVisibleGroupClipboard = oRTE ? oRTE.getShowGroupClipboard() : false;
1544
- oButtonGroups["clipboard"].forEach(function (oCommand) {
1545
- aContent.push(oEditorHelper.createOverflowToolbarButton(this._createButtonConfig(oCommand)).setVisible(bVisibleGroupClipboard));
1546
- }, this);
1764
+ aContent = this._createClipboardToolbarContent(aToolbarButtonsToCreate, mGroup.visible);
1547
1765
  break;
1548
1766
  case "undo":
1549
- bVisibleGroupUndo = oRTE ? oRTE.getShowGroupUndo() : false;
1550
- oButtonGroups["undo"].forEach(function (oCommand) {
1551
- aContent.push(oEditorHelper.createOverflowToolbarButton(this._createButtonConfig(oCommand)).setVisible(bVisibleGroupUndo));
1552
- }, this);
1767
+ aContent = this._createUndoToolbarContent(aToolbarButtonsToCreate, mGroup.visible);
1553
1768
  break;
1554
1769
  case "insert":
1555
- bVisibleGroupInsert = oRTE ? oRTE.getShowGroupInsert() : false;
1556
- aContent.push(oEditorHelper.createOverflowToolbarToggleButton(this._createButtonForDialog("InsertImage")).setVisible(bVisibleGroupInsert));
1770
+ aContent = this._createInsertToolbarContent(mGroup.visible);
1557
1771
  break;
1558
1772
  case "link":
1559
- bVisibleGroupLink = oRTE ? oRTE.getShowGroupLink() : false;
1560
- aContent.push(oEditorHelper.createOverflowToolbarToggleButton(this._createButtonForDialog("InsertLink")).setVisible(bVisibleGroupLink));
1561
- aContent.push(oEditorHelper.createOverflowToolbarButton(this._createButtonConfig("Unlink")).setVisible(bVisibleGroupLink));
1773
+ aContent = this._createLinkToolbarContent(aToolbarButtonsToCreate, mGroup.visible);
1562
1774
  break;
1563
1775
  case "table":
1564
- aContent.push(oEditorHelper.createOverflowToolbarButton(this._createButtonForDialog("InsertTable")));
1776
+ aContent.push(oEditorHelper.createOverflowToolbarButton(this._createButtonForDialog("InsertTable")).setVisible(mGroup.visible));
1565
1777
  break;
1778
+ default: break;
1566
1779
  }
1567
1780
 
1568
1781
  return aContent;
@@ -1572,36 +1785,28 @@ sap.ui.define([
1572
1785
  * Adds a Button Group to an existing Toolbar
1573
1786
  *
1574
1787
  * @param {map} [mGroup] Group object
1575
- * @param {boolean} [bFullGroup] If false, the group is generated from a group name
1576
1788
  * @returns {object} this for method chaining
1577
1789
  * @public
1578
1790
  */
1579
- ToolbarWrapper.prototype.addButtonGroupToContent = function (mGroup, bFullGroup) {
1791
+ ToolbarWrapper.prototype.addButtonGroupToContent = function (mGroup) {
1580
1792
  var sGroupName;
1581
1793
  // if the group is generated add it to the button groups object
1582
1794
  // as a custom group (if it contains supported group buttons - ex."table")
1583
- if (!bFullGroup && mGroup.buttons[0] === "table") {
1584
- sGroupName = mGroup.buttons[0];
1585
- sap.ui.richtexteditor.ButtonGroups.custom[mGroup.name] = {
1586
- name: mGroup.buttons[0],
1587
- controls: ["InsertTable"]
1588
- };
1589
- }
1590
1795
 
1591
1796
  // if the group is supported (ex. "table") add it to the button groups object
1592
- if (bFullGroup && mGroup.name === "table") {
1797
+ if (mGroup.name === "table") {
1593
1798
  sGroupName = mGroup.name;
1594
- sap.ui.richtexteditor.ButtonGroups[mGroup.name] = ["InsertTable"];
1799
+ ButtonGroups[mGroup.name] = ["InsertTable"];
1595
1800
  }
1596
1801
 
1597
1802
  // if the group is supported (ex. "formatselect") add it to the button groups object
1598
- if (bFullGroup && (mGroup.name === "formatselect" || mGroup.name === "styleselect")) {
1803
+ if (mGroup.name === "formatselect" || mGroup.name === "styleselect" || mGroup.name === "styles" || mGroup.name === "blocks") {
1599
1804
  sGroupName = "formatselect";
1600
- sap.ui.richtexteditor.ButtonGroups[mGroup.name] = ["FormatBlock"];
1805
+ ButtonGroups[mGroup.name] = ["FormatBlock"];
1601
1806
  }
1602
1807
 
1603
1808
  // if not supported return and do not add content
1604
- if (!sap.ui.richtexteditor.ButtonGroups[mGroup.name] && !sap.ui.richtexteditor.ButtonGroups.custom[mGroup.name]) {
1809
+ if (!ButtonGroups[mGroup.name] && !ButtonGroups.custom[mGroup.name]) {
1605
1810
  return this;
1606
1811
  }
1607
1812
 
@@ -1612,7 +1817,7 @@ sap.ui.define([
1612
1817
  }
1613
1818
 
1614
1819
  var oToolbar = this.getAggregation("_toolbar"),
1615
- aContent = this.addButtonGroup(sGroupName),
1820
+ aContent = this._createButtonGroup(mGroup),
1616
1821
  iContentSize = aContent.length,
1617
1822
  i, iStartIndex;
1618
1823
 
@@ -1639,27 +1844,41 @@ sap.ui.define([
1639
1844
  /**
1640
1845
  * Helper function for finding the correct position of a group according to its customToolbarPriority
1641
1846
  *
1642
- * @param {Array} [mGroup] Group Object
1643
- * @returns {Number} The index where the first element of the group should be added
1847
+ * @param {object} mGroup Group Object
1848
+ * @param {string} [mGroup.name] Name of the group
1849
+ * @param {int} [mGroup.customToolbarPriority] Predefined group priority
1850
+ * @returns {int} The index where the first element of the group should be added
1644
1851
  * @private
1645
1852
  */
1646
1853
  ToolbarWrapper.prototype._findGroupPriorityPosition = function (mGroup) {
1647
1854
  var aGroups = this.getEditor().getButtonGroups(),
1648
- aCustomToolbarGroups = library.ButtonGroups,
1649
1855
  iStartIndex = 0;
1650
1856
 
1651
1857
  // place groups without predefined customToolbarPriority at the end
1652
- if (!jQuery.isNumeric(mGroup.customToolbarPriority)) {
1858
+ if (typeof mGroup.customToolbarPriority !== "number") {
1653
1859
  mGroup.customToolbarPriority = this._getLastGroupPriority(aGroups) + 10;
1654
1860
  }
1655
1861
 
1656
1862
  // sort groups according to customToolbarPriority
1657
1863
  aGroups = this._sortToolbarContent(aGroups);
1658
1864
 
1659
- aGroups.forEach(function (oGroup) {
1660
- if (oGroup.customToolbarPriority < mGroup.customToolbarPriority && oGroup.name !== mGroup.name) {
1865
+ aGroups
1866
+ // Map all groups to supported buttons that can be created in the custom toolbar
1867
+ // based on the current group configuration
1868
+ .map(function (oGroup) {
1869
+ // We need new object that maps buttons to commands, as they do not map directly and some of the configurations
1870
+ // may have many buttons, which is then translated to single control in the custom toolbar.
1871
+ return {
1872
+ name: oGroup.name,
1873
+ iButtonsCount: this._mapNativeButtonsToCommands(oGroup.name, oGroup.buttons).length,
1874
+ customToolbarPriority: oGroup.customToolbarPriority
1875
+ };
1876
+ }.bind(this))
1877
+ // Find the correct starting index for this group, based on the customToolbarPriority group property
1878
+ .forEach(function (oMappedGroup) {
1879
+ if (oMappedGroup.customToolbarPriority < mGroup.customToolbarPriority && oMappedGroup.name !== mGroup.name) {
1661
1880
  // if the group exist for the customToolbar, add its button count to the startIndex
1662
- iStartIndex += aCustomToolbarGroups[oGroup.name] ? aCustomToolbarGroups[oGroup.name].length : 0;
1881
+ iStartIndex += ButtonGroups[oMappedGroup.name] ? oMappedGroup.iButtonsCount : 0;
1663
1882
  }
1664
1883
  });
1665
1884
 
@@ -1669,8 +1888,8 @@ sap.ui.define([
1669
1888
  /**
1670
1889
  * Helper function for finding the priority of the last group in the toolbar
1671
1890
  *
1672
- * @param {Array} [oGroups] Group name
1673
- * @returns {Number} The priority of the last group in the toolbar
1891
+ * @param {Array} [aGroups] Group name
1892
+ * @returns {number} The priority of the last group in the toolbar
1674
1893
  * @private
1675
1894
  */
1676
1895
  ToolbarWrapper.prototype._getLastGroupPriority = function (aGroups) {
@@ -1690,6 +1909,11 @@ sap.ui.define([
1690
1909
  ToolbarWrapper.prototype.removeButtonGroup = function (sGroupName) {
1691
1910
  var aObjects = this._findGroupedControls(sGroupName);
1692
1911
 
1912
+ // Detach handlers from color picker dialogs if the font group is removed
1913
+ if (sGroupName === "font") {
1914
+ this._modifyPopoverOpeningArrowHandlers(false);
1915
+ }
1916
+
1693
1917
  // destroys associated InvisibleTexts for the group
1694
1918
  this._destroyAssociatedInvisibleTexts(sGroupName);
1695
1919
 
@@ -1817,18 +2041,17 @@ sap.ui.define([
1817
2041
  * @private
1818
2042
  */
1819
2043
  ToolbarWrapper.prototype._findGroupedControls = function (sGroupName) {
1820
- var oButtonGroups = library.ButtonGroups,
1821
- oToolbar = this.getAggregation("_toolbar"),
2044
+ var oToolbar = this.getAggregation("_toolbar"),
1822
2045
  aControls = [];
1823
2046
 
1824
2047
  if (!oToolbar) {
1825
2048
  return [];
1826
2049
  }
1827
2050
 
1828
- if (oButtonGroups[sGroupName]) {
1829
- aControls = oButtonGroups[sGroupName];
1830
- } else if (oButtonGroups.custom[sGroupName]) {
1831
- aControls = oButtonGroups.custom[sGroupName].controls;
2051
+ if (ButtonGroups[sGroupName]) {
2052
+ aControls = ButtonGroups[sGroupName];
2053
+ } else if (ButtonGroups.custom[sGroupName]) {
2054
+ aControls = ButtonGroups.custom[sGroupName].controls;
1832
2055
  }
1833
2056
 
1834
2057
  var aIds = aControls.map(function (sName) {
@@ -1855,8 +2078,13 @@ sap.ui.define([
1855
2078
  * @public
1856
2079
  */
1857
2080
  ToolbarWrapper.prototype.modifyToolbarContent = function (sModifier) {
1858
- var vResult,
1859
- args = Array.prototype.slice.call(arguments);
2081
+ var vResult;
2082
+ var args = Array.prototype.slice.call(arguments);
2083
+ var oToolbar = this.getAggregation("_toolbar");
2084
+
2085
+ if (!oToolbar) {
2086
+ return null;
2087
+ }
1860
2088
 
1861
2089
  args.shift();
1862
2090
 
@@ -1888,6 +2116,9 @@ sap.ui.define([
1888
2116
  case "remove":
1889
2117
  vResult = this._proxyToolbarRemove.apply(this, args);
1890
2118
  break;
2119
+
2120
+ default:
2121
+ break;
1891
2122
  }
1892
2123
 
1893
2124
  return vResult;
@@ -2015,6 +2246,8 @@ sap.ui.define([
2015
2246
  case "number":
2016
2247
  sId = this._customButtons[vItem];
2017
2248
  break;
2249
+ default:
2250
+ break;
2018
2251
  }
2019
2252
 
2020
2253
  vResult = oToolbar.removeContent(sId);
@@ -2026,5 +2259,19 @@ sap.ui.define([
2026
2259
  return vResult;
2027
2260
  };
2028
2261
 
2262
+ /**
2263
+ * Helper function for finding controls in the Toolbar by their corresponding names.
2264
+ *
2265
+ * @param {string} sButtonName Custom toolbar button name (Bold, TextAlign, Italic, TextColor, etc...)
2266
+ * @returns {sap.ui.core.Control|null} The control with the corresponding name or null.
2267
+ */
2268
+ ToolbarWrapper.prototype._findButtonById = function (sButtonName) {
2269
+ var oRTE = this.getEditor();
2270
+ if (!oRTE) {
2271
+ return null;
2272
+ }
2273
+ return Core.byId(oRTE.getId() + this.getId() + "-" + sButtonName);
2274
+ };
2275
+
2029
2276
  return ToolbarWrapper;
2030
2277
  });