@sapui5/sap.ui.richtexteditor 1.84.40 → 1.84.42

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 (430) hide show
  1. package/package.json +1 -1
  2. package/src/sap/ui/richtexteditor/.library +27 -4
  3. package/src/sap/ui/richtexteditor/RTESplitButton.js +3 -3
  4. package/src/sap/ui/richtexteditor/RTESplitButtonRenderer.js +8 -4
  5. package/src/sap/ui/richtexteditor/RichTextEditor.js +551 -401
  6. package/src/sap/ui/richtexteditor/RichTextEditorRenderer.js +15 -7
  7. package/src/sap/ui/richtexteditor/ToolbarWrapper.js +570 -307
  8. package/src/sap/ui/richtexteditor/ToolbarWrapperRenderer.js +4 -5
  9. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/a11ychecker/plugin.js +1 -1
  10. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/a11ychecker/plugin.min.js +1 -1
  11. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/help/plugin.min.js +1 -1
  12. package/src/sap/ui/richtexteditor/js/tiny_mce6/icons/default/icons.js +197 -0
  13. package/src/sap/ui/richtexteditor/js/tiny_mce6/icons/default/icons.min.js +7 -0
  14. package/src/sap/ui/richtexteditor/js/tiny_mce6/icons/default/index.js +13 -0
  15. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ar.js +7 -0
  16. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/bg_BG.js +7 -0
  17. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ca.js +7 -0
  18. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/cs.js +7 -0
  19. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/cy.js +1 -0
  20. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/da.js +7 -0
  21. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/de.js +7 -0
  22. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/dv.js +1 -0
  23. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/el.js +7 -0
  24. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/en_GB.js +261 -0
  25. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/es.js +7 -0
  26. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/es_MX.js +1 -0
  27. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/et.js +1 -0
  28. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/eu.js +7 -0
  29. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/fa.js +7 -0
  30. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/fi.js +7 -0
  31. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/fr_FR.js +7 -0
  32. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/he_IL.js +7 -0
  33. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/hi.js +7 -0
  34. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/hr.js +7 -0
  35. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/hu_HU.js +7 -0
  36. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/id.js +7 -0
  37. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/it.js +7 -0
  38. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ja.js +7 -0
  39. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/kk.js +7 -0
  40. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ko_KR.js +7 -0
  41. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/lt.js +1 -0
  42. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/lv.js +1 -0
  43. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ms.js +7 -0
  44. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/nb_NO.js +7 -0
  45. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/nl.js +7 -0
  46. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/pl.js +7 -0
  47. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/pt_BR.js +7 -0
  48. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/pt_PT.js +7 -0
  49. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ro.js +7 -0
  50. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/ru.js +7 -0
  51. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/sk.js +7 -0
  52. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/sl_SI.js +7 -0
  53. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/sr.js +1 -0
  54. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/sv_SE.js +7 -0
  55. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/th_TH.js +7 -0
  56. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/tr.js +7 -0
  57. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/uk.js +7 -0
  58. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/vi.js +7 -0
  59. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/zh_CN.js +7 -0
  60. package/src/sap/ui/richtexteditor/js/tiny_mce6/langs/zh_TW.js +7 -0
  61. package/src/sap/ui/richtexteditor/js/tiny_mce6/license.txt +5 -0
  62. package/src/sap/ui/richtexteditor/js/tiny_mce6/models/dom/index.js +13 -0
  63. package/src/sap/ui/richtexteditor/js/tiny_mce6/models/dom/model.js +8045 -0
  64. package/src/sap/ui/richtexteditor/js/tiny_mce6/models/dom/model.min.js +9 -0
  65. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/accordion/index.js +13 -0
  66. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/accordion/plugin.js +1038 -0
  67. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/accordion/plugin.min.js +9 -0
  68. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/CHANGELOG.md +110 -0
  69. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/codemirror.min.css +13 -0
  70. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/codemirror.min.js +13 -0
  71. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/customeditor.js +10 -0
  72. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/customeditor.min.js +10 -0
  73. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ar.js +15 -0
  74. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/bg_BG.js +15 -0
  75. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ca.js +15 -0
  76. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/cs.js +15 -0
  77. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/da.js +15 -0
  78. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/de.js +15 -0
  79. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/el.js +15 -0
  80. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/es.js +15 -0
  81. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/eu.js +15 -0
  82. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/fa.js +15 -0
  83. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/fi.js +15 -0
  84. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/fr_FR.js +15 -0
  85. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/he_IL.js +15 -0
  86. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/hi.js +15 -0
  87. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/hr.js +15 -0
  88. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/hu_HU.js +15 -0
  89. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/id.js +15 -0
  90. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/it.js +15 -0
  91. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ja.js +15 -0
  92. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/kk.js +15 -0
  93. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ko_KR.js +15 -0
  94. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ms.js +15 -0
  95. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/nb_NO.js +15 -0
  96. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/nl.js +15 -0
  97. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/pl.js +15 -0
  98. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/pt_BR.js +15 -0
  99. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/pt_PT.js +15 -0
  100. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ro.js +15 -0
  101. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/ru.js +15 -0
  102. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/sk.js +15 -0
  103. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/sl_SI.js +15 -0
  104. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/sv_SE.js +15 -0
  105. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/th_TH.js +15 -0
  106. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/tr.js +15 -0
  107. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/uk.js +15 -0
  108. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/vi.js +15 -0
  109. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/zh_CN.js +15 -0
  110. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/langs/zh_TW.js +15 -0
  111. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/license.txt +5 -0
  112. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/plugin.js +10 -0
  113. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/plugin.min.js +10 -0
  114. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/readme.txt +10 -0
  115. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advcode/version.txt +1 -0
  116. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advlist/index.js +13 -0
  117. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advlist/plugin.js +264 -0
  118. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/advlist/plugin.min.js +9 -0
  119. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/anchor/index.js +13 -0
  120. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/anchor/plugin.js +219 -0
  121. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/anchor/plugin.min.js +9 -0
  122. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autolink/index.js +13 -0
  123. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autolink/plugin.js +233 -0
  124. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autolink/plugin.min.js +9 -0
  125. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autoresize/index.js +13 -0
  126. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autoresize/plugin.js +197 -0
  127. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autoresize/plugin.min.js +9 -0
  128. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autosave/index.js +13 -0
  129. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autosave/plugin.js +238 -0
  130. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/autosave/plugin.min.js +9 -0
  131. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/charmap/index.js +13 -0
  132. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/charmap/plugin.js +1663 -0
  133. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/charmap/plugin.min.js +9 -0
  134. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/code/index.js +13 -0
  135. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/code/plugin.js +90 -0
  136. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/code/plugin.min.js +9 -0
  137. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/codesample/index.js +13 -0
  138. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/codesample/plugin.js +2468 -0
  139. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/codesample/plugin.min.js +9 -0
  140. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/directionality/index.js +13 -0
  141. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/directionality/plugin.js +400 -0
  142. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/directionality/plugin.min.js +9 -0
  143. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/index.js +13 -0
  144. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/js/emojiimages.js +7 -0
  145. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/js/emojiimages.min.js +9 -0
  146. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/js/emojis.js +7 -0
  147. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/js/emojis.min.js +8 -0
  148. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/plugin.js +600 -0
  149. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/emoticons/plugin.min.js +9 -0
  150. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/fullscreen/index.js +13 -0
  151. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/fullscreen/plugin.js +1201 -0
  152. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/fullscreen/plugin.min.js +9 -0
  153. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/index.js +13 -0
  154. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ar.js +96 -0
  155. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/bg_BG.js +96 -0
  156. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ca.js +96 -0
  157. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/cs.js +96 -0
  158. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/da.js +96 -0
  159. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/de.js +96 -0
  160. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/el.js +96 -0
  161. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/en.js +96 -0
  162. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/es.js +96 -0
  163. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/eu.js +96 -0
  164. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/fa.js +96 -0
  165. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/fi.js +96 -0
  166. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/fr_FR.js +96 -0
  167. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/he_IL.js +96 -0
  168. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/hi.js +96 -0
  169. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/hr.js +96 -0
  170. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/hu_HU.js +96 -0
  171. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/id.js +96 -0
  172. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/it.js +96 -0
  173. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ja.js +96 -0
  174. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/kk.js +96 -0
  175. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ko_KR.js +96 -0
  176. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ms.js +96 -0
  177. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/nb_NO.js +96 -0
  178. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/nl.js +96 -0
  179. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/pl.js +96 -0
  180. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/pt_BR.js +96 -0
  181. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/pt_PT.js +96 -0
  182. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ro.js +96 -0
  183. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/ru.js +96 -0
  184. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/sk.js +96 -0
  185. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/sl_SI.js +96 -0
  186. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/sv_SE.js +96 -0
  187. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/th_TH.js +96 -0
  188. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/tr.js +96 -0
  189. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/uk.js +96 -0
  190. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/vi.js +96 -0
  191. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/zh_CN.js +90 -0
  192. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/js/i18n/keynav/zh_TW.js +96 -0
  193. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/plugin.js +898 -0
  194. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/help/plugin.min.js +9 -0
  195. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/image/index.js +13 -0
  196. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/image/plugin.js +1509 -0
  197. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/image/plugin.min.js +9 -0
  198. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/importcss/index.js +13 -0
  199. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/importcss/plugin.js +349 -0
  200. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/importcss/plugin.min.js +9 -0
  201. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/insertdatetime/index.js +13 -0
  202. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/insertdatetime/plugin.js +192 -0
  203. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/insertdatetime/plugin.min.js +9 -0
  204. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/link/index.js +13 -0
  205. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/link/plugin.js +1246 -0
  206. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/link/plugin.min.js +9 -0
  207. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/lists/index.js +13 -0
  208. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/lists/plugin.js +1953 -0
  209. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/lists/plugin.min.js +9 -0
  210. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/media/index.js +13 -0
  211. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/media/plugin.js +1240 -0
  212. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/media/plugin.min.js +9 -0
  213. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/nonbreaking/index.js +13 -0
  214. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/nonbreaking/plugin.js +128 -0
  215. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/nonbreaking/plugin.min.js +9 -0
  216. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/pagebreak/index.js +13 -0
  217. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/pagebreak/plugin.js +122 -0
  218. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/pagebreak/plugin.min.js +9 -0
  219. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/CHANGELOG.md +402 -0
  220. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/js/wordimport.js +3498 -0
  221. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ar.js +20 -0
  222. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/bg_BG.js +20 -0
  223. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ca.js +20 -0
  224. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/cs.js +20 -0
  225. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/da.js +20 -0
  226. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/de.js +20 -0
  227. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/el.js +20 -0
  228. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/es.js +20 -0
  229. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/eu.js +20 -0
  230. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/fa.js +20 -0
  231. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/fi.js +20 -0
  232. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/fr_FR.js +20 -0
  233. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/he_IL.js +20 -0
  234. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/hi.js +20 -0
  235. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/hr.js +20 -0
  236. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/hu_HU.js +20 -0
  237. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/id.js +20 -0
  238. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/it.js +20 -0
  239. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ja.js +20 -0
  240. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/kk.js +20 -0
  241. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ko_KR.js +20 -0
  242. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ms.js +20 -0
  243. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/nb_NO.js +20 -0
  244. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/nl.js +20 -0
  245. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/pl.js +20 -0
  246. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/pt_BR.js +20 -0
  247. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/pt_PT.js +20 -0
  248. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ro.js +20 -0
  249. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/ru.js +20 -0
  250. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/sk.js +20 -0
  251. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/sl_SI.js +20 -0
  252. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/sv_SE.js +20 -0
  253. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/th_TH.js +20 -0
  254. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/tr.js +20 -0
  255. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/uk.js +20 -0
  256. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/vi.js +20 -0
  257. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/zh_CN.js +20 -0
  258. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/langs/zh_TW.js +20 -0
  259. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/license.txt +5 -0
  260. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/plugin.js +10 -0
  261. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/plugin.min.js +10 -0
  262. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/readme.txt +10 -0
  263. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/powerpaste/version.txt +1 -0
  264. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/preview/index.js +13 -0
  265. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/preview/plugin.js +102 -0
  266. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/preview/plugin.min.js +9 -0
  267. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/quickbars/index.js +13 -0
  268. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/quickbars/plugin.js +443 -0
  269. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/quickbars/plugin.min.js +9 -0
  270. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/save/index.js +13 -0
  271. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/save/plugin.js +123 -0
  272. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/save/plugin.min.js +9 -0
  273. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/searchreplace/index.js +13 -0
  274. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/searchreplace/plugin.js +1098 -0
  275. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/searchreplace/plugin.min.js +9 -0
  276. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/table/index.js +13 -0
  277. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/table/plugin.js +3467 -0
  278. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/table/plugin.min.js +9 -0
  279. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/template/index.js +13 -0
  280. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/template/plugin.js +572 -0
  281. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/template/plugin.min.js +9 -0
  282. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualblocks/index.js +13 -0
  283. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualblocks/plugin.js +103 -0
  284. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualblocks/plugin.min.js +9 -0
  285. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualchars/index.js +13 -0
  286. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualchars/plugin.js +565 -0
  287. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/visualchars/plugin.min.js +9 -0
  288. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/wordcount/index.js +13 -0
  289. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/wordcount/plugin.js +410 -0
  290. package/src/sap/ui/richtexteditor/js/tiny_mce6/plugins/wordcount/plugin.min.js +9 -0
  291. package/src/sap/ui/richtexteditor/js/tiny_mce6/readme.txt +12 -0
  292. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/dark/content.css +72 -0
  293. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/dark/content.min.css +7 -0
  294. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/default/content.css +67 -0
  295. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/default/content.min.css +7 -0
  296. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/document/content.css +72 -0
  297. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/document/content.min.css +7 -0
  298. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/tinymce-5/content.css +67 -0
  299. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/tinymce-5/content.min.css +7 -0
  300. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/tinymce-5-dark/content.css +72 -0
  301. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/tinymce-5-dark/content.min.css +7 -0
  302. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/writer/content.css +68 -0
  303. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/content/writer/content.min.css +7 -0
  304. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/content.css +791 -0
  305. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/content.inline.css +785 -0
  306. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/content.inline.min.css +7 -0
  307. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/content.min.css +7 -0
  308. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/skin.css +3694 -0
  309. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/skin.min.css +7 -0
  310. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/skin.shadowdom.css +36 -0
  311. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide/skin.shadowdom.min.css +7 -0
  312. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/content.css +772 -0
  313. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/content.inline.css +785 -0
  314. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/content.inline.min.css +7 -0
  315. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/content.min.css +7 -0
  316. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/skin.css +3697 -0
  317. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/skin.min.css +7 -0
  318. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/skin.shadowdom.css +36 -0
  319. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/oxide-dark/skin.shadowdom.min.css +7 -0
  320. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/content.css +791 -0
  321. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/content.inline.css +785 -0
  322. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/content.inline.min.css +7 -0
  323. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/content.min.css +7 -0
  324. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/skin.css +3788 -0
  325. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/skin.min.css +7 -0
  326. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/skin.shadowdom.css +36 -0
  327. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5/skin.shadowdom.min.css +7 -0
  328. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/content.css +772 -0
  329. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/content.inline.css +785 -0
  330. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/content.inline.min.css +7 -0
  331. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/content.min.css +7 -0
  332. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/skin.css +3788 -0
  333. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/skin.min.css +7 -0
  334. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/skin.shadowdom.css +36 -0
  335. package/src/sap/ui/richtexteditor/js/tiny_mce6/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +7 -0
  336. package/src/sap/ui/richtexteditor/js/tiny_mce6/themes/silver/index.js +13 -0
  337. package/src/sap/ui/richtexteditor/js/tiny_mce6/themes/silver/theme.js +30172 -0
  338. package/src/sap/ui/richtexteditor/js/tiny_mce6/themes/silver/theme.min.js +9 -0
  339. package/src/sap/ui/richtexteditor/js/tiny_mce6/tinymce.d.ts +3206 -0
  340. package/src/sap/ui/richtexteditor/js/tiny_mce6/tinymce.js +31303 -0
  341. package/src/sap/ui/richtexteditor/js/tiny_mce6/tinymce.min.js +9 -0
  342. package/src/sap/ui/richtexteditor/js/tiny_mce6/version.txt +1 -0
  343. package/src/sap/ui/richtexteditor/library.js +72 -33
  344. package/src/sap/ui/richtexteditor/messagebundle.properties +8 -2
  345. package/src/sap/ui/richtexteditor/messagebundle_ar.properties +60 -2
  346. package/src/sap/ui/richtexteditor/messagebundle_bg.properties +60 -2
  347. package/src/sap/ui/richtexteditor/messagebundle_ca.properties +60 -2
  348. package/src/sap/ui/richtexteditor/messagebundle_cs.properties +60 -2
  349. package/src/sap/ui/richtexteditor/messagebundle_cy.properties +60 -2
  350. package/src/sap/ui/richtexteditor/messagebundle_da.properties +60 -2
  351. package/src/sap/ui/richtexteditor/messagebundle_de.properties +60 -2
  352. package/src/sap/ui/richtexteditor/messagebundle_el.properties +60 -2
  353. package/src/sap/ui/richtexteditor/messagebundle_en.properties +60 -2
  354. package/src/sap/ui/richtexteditor/messagebundle_en_GB.properties +60 -2
  355. package/src/sap/ui/richtexteditor/messagebundle_en_US_sappsd.properties +6 -2
  356. package/src/sap/ui/richtexteditor/messagebundle_en_US_saprigi.properties +105 -0
  357. package/src/sap/ui/richtexteditor/messagebundle_en_US_saptrc.properties +6 -2
  358. package/src/sap/ui/richtexteditor/messagebundle_es.properties +60 -2
  359. package/src/sap/ui/richtexteditor/messagebundle_es_MX.properties +60 -2
  360. package/src/sap/ui/richtexteditor/messagebundle_et.properties +60 -2
  361. package/src/sap/ui/richtexteditor/messagebundle_fi.properties +60 -2
  362. package/src/sap/ui/richtexteditor/messagebundle_fr.properties +60 -2
  363. package/src/sap/ui/richtexteditor/messagebundle_fr_CA.properties +60 -2
  364. package/src/sap/ui/richtexteditor/messagebundle_hi.properties +60 -2
  365. package/src/sap/ui/richtexteditor/messagebundle_hr.properties +60 -2
  366. package/src/sap/ui/richtexteditor/messagebundle_hu.properties +60 -2
  367. package/src/sap/ui/richtexteditor/messagebundle_id.properties +60 -2
  368. package/src/sap/ui/richtexteditor/messagebundle_it.properties +60 -2
  369. package/src/sap/ui/richtexteditor/messagebundle_iw.properties +60 -2
  370. package/src/sap/ui/richtexteditor/messagebundle_ja.properties +60 -2
  371. package/src/sap/ui/richtexteditor/messagebundle_kk.properties +60 -2
  372. package/src/sap/ui/richtexteditor/messagebundle_ko.properties +60 -2
  373. package/src/sap/ui/richtexteditor/messagebundle_lt.properties +60 -2
  374. package/src/sap/ui/richtexteditor/messagebundle_lv.properties +60 -2
  375. package/src/sap/ui/richtexteditor/messagebundle_ms.properties +60 -2
  376. package/src/sap/ui/richtexteditor/messagebundle_nl.properties +60 -2
  377. package/src/sap/ui/richtexteditor/messagebundle_no.properties +60 -2
  378. package/src/sap/ui/richtexteditor/messagebundle_pl.properties +60 -2
  379. package/src/sap/ui/richtexteditor/messagebundle_pt.properties +60 -2
  380. package/src/sap/ui/richtexteditor/messagebundle_pt_PT.properties +60 -2
  381. package/src/sap/ui/richtexteditor/messagebundle_ro.properties +60 -2
  382. package/src/sap/ui/richtexteditor/messagebundle_ru.properties +60 -2
  383. package/src/sap/ui/richtexteditor/messagebundle_sh.properties +60 -2
  384. package/src/sap/ui/richtexteditor/messagebundle_sk.properties +60 -2
  385. package/src/sap/ui/richtexteditor/messagebundle_sl.properties +60 -2
  386. package/src/sap/ui/richtexteditor/messagebundle_sr.properties +60 -2
  387. package/src/sap/ui/richtexteditor/messagebundle_sv.properties +60 -2
  388. package/src/sap/ui/richtexteditor/messagebundle_th.properties +60 -2
  389. package/src/sap/ui/richtexteditor/messagebundle_tr.properties +60 -2
  390. package/src/sap/ui/richtexteditor/messagebundle_uk.properties +60 -2
  391. package/src/sap/ui/richtexteditor/messagebundle_vi.properties +60 -2
  392. package/src/sap/ui/richtexteditor/messagebundle_zh_CN.properties +60 -2
  393. package/src/sap/ui/richtexteditor/messagebundle_zh_TW.properties +60 -2
  394. package/src/sap/ui/richtexteditor/themes/base/RichTextEditor.less +25 -84
  395. package/src/sap/ui/richtexteditor/themes/base/library.source.less +1 -1
  396. package/src/sap/ui/richtexteditor/themes/sap_belize/RichTextEditor.less +33 -0
  397. package/src/sap/ui/richtexteditor/themes/sap_belize/library.source.less +4 -2
  398. package/src/sap/ui/richtexteditor/themes/sap_belize_hcb/RichTextEditor.less +29 -0
  399. package/src/sap/ui/richtexteditor/themes/sap_belize_hcb/library.source.less +3 -1
  400. package/src/sap/ui/richtexteditor/themes/sap_belize_hcw/RichTextEditor.less +30 -0
  401. package/src/sap/ui/richtexteditor/themes/sap_belize_hcw/library.source.less +3 -1
  402. package/src/sap/ui/richtexteditor/themes/sap_belize_plus/library.source.less +1 -1
  403. package/src/sap/ui/richtexteditor/themes/sap_bluecrystal/library.source.less +1 -1
  404. package/src/sap/ui/richtexteditor/themes/sap_fiori_3/RichTextEditor.less +4 -5
  405. package/src/sap/ui/richtexteditor/themes/sap_fiori_3/library.source.less +1 -1
  406. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_dark/RichTextEditor.less +4 -5
  407. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_dark/library.source.less +1 -1
  408. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_hcb/RichTextEditor.less +4 -5
  409. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_hcb/library.source.less +1 -1
  410. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_hcw/RichTextEditor.less +4 -5
  411. package/src/sap/ui/richtexteditor/themes/sap_fiori_3_hcw/library.source.less +1 -1
  412. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/css/dialog.css +0 -118
  413. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/img/buttons.png +0 -0
  414. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/img/icons.gif +0 -0
  415. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/img/items.gif +0 -0
  416. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/img/menu_arrow.gif +0 -0
  417. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/img/menu_check.gif +0 -0
  418. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/img/progress.gif +0 -0
  419. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/img/tabs.gif +0 -0
  420. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/plugin.js +0 -314
  421. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/plugin.min.js +0 -1
  422. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/tiny_mce_popup.js +0 -534
  423. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/utils/editable_selects.js +0 -64
  424. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/utils/form_utils.js +0 -214
  425. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/utils/mctabs.js +0 -160
  426. package/src/sap/ui/richtexteditor/js/tiny_mce4/plugins/compat3x/utils/validate.js +0 -259
  427. package/src/sap/ui/richtexteditor/themes/base/icons.gif +0 -0
  428. package/src/sap/ui/richtexteditor/themes/base/icons.png +0 -0
  429. package/src/sap/ui/richtexteditor/themes/sap_hcb/RichTextEditor.less +0 -108
  430. package/src/sap/ui/richtexteditor/themes/sap_hcb/library.source.less +0 -9
@@ -0,0 +1,1240 @@
1
+ /*!
2
+ * TinyMCE
3
+ *
4
+ * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc.
5
+ * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/
6
+ *
7
+ * Version: 6.5.1
8
+ */
9
+
10
+ (function () {
11
+ 'use strict';
12
+
13
+ var global$6 = tinymce.util.Tools.resolve('tinymce.PluginManager');
14
+
15
+ const hasProto = (v, constructor, predicate) => {
16
+ var _a;
17
+ if (predicate(v, constructor.prototype)) {
18
+ return true;
19
+ } else {
20
+ return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
21
+ }
22
+ };
23
+ const typeOf = x => {
24
+ const t = typeof x;
25
+ if (x === null) {
26
+ return 'null';
27
+ } else if (t === 'object' && Array.isArray(x)) {
28
+ return 'array';
29
+ } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {
30
+ return 'string';
31
+ } else {
32
+ return t;
33
+ }
34
+ };
35
+ const isType = type => value => typeOf(value) === type;
36
+ const isString = isType('string');
37
+ const isObject = isType('object');
38
+ const isArray = isType('array');
39
+ const isNullable = a => a === null || a === undefined;
40
+ const isNonNullable = a => !isNullable(a);
41
+
42
+ class Optional {
43
+ constructor(tag, value) {
44
+ this.tag = tag;
45
+ this.value = value;
46
+ }
47
+ static some(value) {
48
+ return new Optional(true, value);
49
+ }
50
+ static none() {
51
+ return Optional.singletonNone;
52
+ }
53
+ fold(onNone, onSome) {
54
+ if (this.tag) {
55
+ return onSome(this.value);
56
+ } else {
57
+ return onNone();
58
+ }
59
+ }
60
+ isSome() {
61
+ return this.tag;
62
+ }
63
+ isNone() {
64
+ return !this.tag;
65
+ }
66
+ map(mapper) {
67
+ if (this.tag) {
68
+ return Optional.some(mapper(this.value));
69
+ } else {
70
+ return Optional.none();
71
+ }
72
+ }
73
+ bind(binder) {
74
+ if (this.tag) {
75
+ return binder(this.value);
76
+ } else {
77
+ return Optional.none();
78
+ }
79
+ }
80
+ exists(predicate) {
81
+ return this.tag && predicate(this.value);
82
+ }
83
+ forall(predicate) {
84
+ return !this.tag || predicate(this.value);
85
+ }
86
+ filter(predicate) {
87
+ if (!this.tag || predicate(this.value)) {
88
+ return this;
89
+ } else {
90
+ return Optional.none();
91
+ }
92
+ }
93
+ getOr(replacement) {
94
+ return this.tag ? this.value : replacement;
95
+ }
96
+ or(replacement) {
97
+ return this.tag ? this : replacement;
98
+ }
99
+ getOrThunk(thunk) {
100
+ return this.tag ? this.value : thunk();
101
+ }
102
+ orThunk(thunk) {
103
+ return this.tag ? this : thunk();
104
+ }
105
+ getOrDie(message) {
106
+ if (!this.tag) {
107
+ throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
108
+ } else {
109
+ return this.value;
110
+ }
111
+ }
112
+ static from(value) {
113
+ return isNonNullable(value) ? Optional.some(value) : Optional.none();
114
+ }
115
+ getOrNull() {
116
+ return this.tag ? this.value : null;
117
+ }
118
+ getOrUndefined() {
119
+ return this.value;
120
+ }
121
+ each(worker) {
122
+ if (this.tag) {
123
+ worker(this.value);
124
+ }
125
+ }
126
+ toArray() {
127
+ return this.tag ? [this.value] : [];
128
+ }
129
+ toString() {
130
+ return this.tag ? `some(${ this.value })` : 'none()';
131
+ }
132
+ }
133
+ Optional.singletonNone = new Optional(false);
134
+
135
+ const nativePush = Array.prototype.push;
136
+ const each$1 = (xs, f) => {
137
+ for (let i = 0, len = xs.length; i < len; i++) {
138
+ const x = xs[i];
139
+ f(x, i);
140
+ }
141
+ };
142
+ const flatten = xs => {
143
+ const r = [];
144
+ for (let i = 0, len = xs.length; i < len; ++i) {
145
+ if (!isArray(xs[i])) {
146
+ throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
147
+ }
148
+ nativePush.apply(r, xs[i]);
149
+ }
150
+ return r;
151
+ };
152
+
153
+ const Cell = initial => {
154
+ let value = initial;
155
+ const get = () => {
156
+ return value;
157
+ };
158
+ const set = v => {
159
+ value = v;
160
+ };
161
+ return {
162
+ get,
163
+ set
164
+ };
165
+ };
166
+
167
+ const keys = Object.keys;
168
+ const hasOwnProperty = Object.hasOwnProperty;
169
+ const each = (obj, f) => {
170
+ const props = keys(obj);
171
+ for (let k = 0, len = props.length; k < len; k++) {
172
+ const i = props[k];
173
+ const x = obj[i];
174
+ f(x, i);
175
+ }
176
+ };
177
+ const get$1 = (obj, key) => {
178
+ return has(obj, key) ? Optional.from(obj[key]) : Optional.none();
179
+ };
180
+ const has = (obj, key) => hasOwnProperty.call(obj, key);
181
+
182
+ const option = name => editor => editor.options.get(name);
183
+ const register$2 = editor => {
184
+ const registerOption = editor.options.register;
185
+ registerOption('audio_template_callback', { processor: 'function' });
186
+ registerOption('video_template_callback', { processor: 'function' });
187
+ registerOption('iframe_template_callback', { processor: 'function' });
188
+ registerOption('media_live_embeds', {
189
+ processor: 'boolean',
190
+ default: true
191
+ });
192
+ registerOption('media_filter_html', {
193
+ processor: 'boolean',
194
+ default: true
195
+ });
196
+ registerOption('media_url_resolver', { processor: 'function' });
197
+ registerOption('media_alt_source', {
198
+ processor: 'boolean',
199
+ default: true
200
+ });
201
+ registerOption('media_poster', {
202
+ processor: 'boolean',
203
+ default: true
204
+ });
205
+ registerOption('media_dimensions', {
206
+ processor: 'boolean',
207
+ default: true
208
+ });
209
+ };
210
+ const getAudioTemplateCallback = option('audio_template_callback');
211
+ const getVideoTemplateCallback = option('video_template_callback');
212
+ const getIframeTemplateCallback = option('iframe_template_callback');
213
+ const hasLiveEmbeds = option('media_live_embeds');
214
+ const shouldFilterHtml = option('media_filter_html');
215
+ const getUrlResolver = option('media_url_resolver');
216
+ const hasAltSource = option('media_alt_source');
217
+ const hasPoster = option('media_poster');
218
+ const hasDimensions = option('media_dimensions');
219
+
220
+ var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');
221
+
222
+ var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
223
+
224
+ var global$3 = tinymce.util.Tools.resolve('tinymce.html.DomParser');
225
+
226
+ const DOM$1 = global$4.DOM;
227
+ const trimPx = value => value.replace(/px$/, '');
228
+ const getEphoxEmbedData = node => {
229
+ const style = node.attr('style');
230
+ const styles = style ? DOM$1.parseStyle(style) : {};
231
+ return {
232
+ type: 'ephox-embed-iri',
233
+ source: node.attr('data-ephox-embed-iri'),
234
+ altsource: '',
235
+ poster: '',
236
+ width: get$1(styles, 'max-width').map(trimPx).getOr(''),
237
+ height: get$1(styles, 'max-height').map(trimPx).getOr('')
238
+ };
239
+ };
240
+ const htmlToData = (html, schema) => {
241
+ let data = {};
242
+ const parser = global$3({
243
+ validate: false,
244
+ forced_root_block: false
245
+ }, schema);
246
+ const rootNode = parser.parse(html);
247
+ for (let node = rootNode; node; node = node.walk()) {
248
+ if (node.type === 1) {
249
+ const name = node.name;
250
+ if (node.attr('data-ephox-embed-iri')) {
251
+ data = getEphoxEmbedData(node);
252
+ break;
253
+ } else {
254
+ if (!data.source && name === 'param') {
255
+ data.source = node.attr('movie');
256
+ }
257
+ if (name === 'iframe' || name === 'object' || name === 'embed' || name === 'video' || name === 'audio') {
258
+ if (!data.type) {
259
+ data.type = name;
260
+ }
261
+ data = global$5.extend(node.attributes.map, data);
262
+ }
263
+ if (name === 'script') {
264
+ data = {
265
+ type: 'script',
266
+ source: node.attr('src')
267
+ };
268
+ }
269
+ if (name === 'source') {
270
+ if (!data.source) {
271
+ data.source = node.attr('src');
272
+ } else if (!data.altsource) {
273
+ data.altsource = node.attr('src');
274
+ }
275
+ }
276
+ if (name === 'img' && !data.poster) {
277
+ data.poster = node.attr('src');
278
+ }
279
+ }
280
+ }
281
+ }
282
+ data.source = data.source || data.src || '';
283
+ data.altsource = data.altsource || '';
284
+ data.poster = data.poster || '';
285
+ return data;
286
+ };
287
+
288
+ const guess = url => {
289
+ var _a;
290
+ const mimes = {
291
+ mp3: 'audio/mpeg',
292
+ m4a: 'audio/x-m4a',
293
+ wav: 'audio/wav',
294
+ mp4: 'video/mp4',
295
+ webm: 'video/webm',
296
+ ogg: 'video/ogg',
297
+ swf: 'application/x-shockwave-flash'
298
+ };
299
+ const fileEnd = (_a = url.toLowerCase().split('.').pop()) !== null && _a !== void 0 ? _a : '';
300
+ return get$1(mimes, fileEnd).getOr('');
301
+ };
302
+
303
+ var global$2 = tinymce.util.Tools.resolve('tinymce.html.Node');
304
+
305
+ var global$1 = tinymce.util.Tools.resolve('tinymce.html.Serializer');
306
+
307
+ const Parser = (schema, settings = {}) => global$3({
308
+ forced_root_block: false,
309
+ validate: false,
310
+ allow_conditional_comments: true,
311
+ ...settings
312
+ }, schema);
313
+
314
+ const DOM = global$4.DOM;
315
+ const addPx = value => /^[0-9.]+$/.test(value) ? value + 'px' : value;
316
+ const updateEphoxEmbed = (data, node) => {
317
+ const style = node.attr('style');
318
+ const styleMap = style ? DOM.parseStyle(style) : {};
319
+ if (isNonNullable(data.width)) {
320
+ styleMap['max-width'] = addPx(data.width);
321
+ }
322
+ if (isNonNullable(data.height)) {
323
+ styleMap['max-height'] = addPx(data.height);
324
+ }
325
+ node.attr('style', DOM.serializeStyle(styleMap));
326
+ };
327
+ const sources = [
328
+ 'source',
329
+ 'altsource'
330
+ ];
331
+ const updateHtml = (html, data, updateAll, schema) => {
332
+ let numSources = 0;
333
+ let sourceCount = 0;
334
+ const parser = Parser(schema);
335
+ parser.addNodeFilter('source', nodes => numSources = nodes.length);
336
+ const rootNode = parser.parse(html);
337
+ for (let node = rootNode; node; node = node.walk()) {
338
+ if (node.type === 1) {
339
+ const name = node.name;
340
+ if (node.attr('data-ephox-embed-iri')) {
341
+ updateEphoxEmbed(data, node);
342
+ break;
343
+ } else {
344
+ switch (name) {
345
+ case 'video':
346
+ case 'object':
347
+ case 'embed':
348
+ case 'img':
349
+ case 'iframe':
350
+ if (data.height !== undefined && data.width !== undefined) {
351
+ node.attr('width', data.width);
352
+ node.attr('height', data.height);
353
+ }
354
+ break;
355
+ }
356
+ if (updateAll) {
357
+ switch (name) {
358
+ case 'video':
359
+ node.attr('poster', data.poster);
360
+ node.attr('src', null);
361
+ for (let index = numSources; index < 2; index++) {
362
+ if (data[sources[index]]) {
363
+ const source = new global$2('source', 1);
364
+ source.attr('src', data[sources[index]]);
365
+ source.attr('type', data[sources[index] + 'mime'] || null);
366
+ node.append(source);
367
+ }
368
+ }
369
+ break;
370
+ case 'iframe':
371
+ node.attr('src', data.source);
372
+ break;
373
+ case 'object':
374
+ const hasImage = node.getAll('img').length > 0;
375
+ if (data.poster && !hasImage) {
376
+ node.attr('src', data.poster);
377
+ const img = new global$2('img', 1);
378
+ img.attr('src', data.poster);
379
+ img.attr('width', data.width);
380
+ img.attr('height', data.height);
381
+ node.append(img);
382
+ }
383
+ break;
384
+ case 'source':
385
+ if (sourceCount < 2) {
386
+ node.attr('src', data[sources[sourceCount]]);
387
+ node.attr('type', data[sources[sourceCount] + 'mime'] || null);
388
+ if (!data[sources[sourceCount]]) {
389
+ node.remove();
390
+ continue;
391
+ }
392
+ }
393
+ sourceCount++;
394
+ break;
395
+ case 'img':
396
+ if (!data.poster) {
397
+ node.remove();
398
+ }
399
+ break;
400
+ }
401
+ }
402
+ }
403
+ }
404
+ }
405
+ return global$1({}, schema).serialize(rootNode);
406
+ };
407
+
408
+ const urlPatterns = [
409
+ {
410
+ regex: /youtu\.be\/([\w\-_\?&=.]+)/i,
411
+ type: 'iframe',
412
+ w: 560,
413
+ h: 314,
414
+ url: 'www.youtube.com/embed/$1',
415
+ allowFullscreen: true
416
+ },
417
+ {
418
+ regex: /youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i,
419
+ type: 'iframe',
420
+ w: 560,
421
+ h: 314,
422
+ url: 'www.youtube.com/embed/$2?$4',
423
+ allowFullscreen: true
424
+ },
425
+ {
426
+ regex: /youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i,
427
+ type: 'iframe',
428
+ w: 560,
429
+ h: 314,
430
+ url: 'www.youtube.com/embed/$1',
431
+ allowFullscreen: true
432
+ },
433
+ {
434
+ regex: /vimeo\.com\/([0-9]+)\?h=(\w+)/,
435
+ type: 'iframe',
436
+ w: 425,
437
+ h: 350,
438
+ url: 'player.vimeo.com/video/$1?h=$2&title=0&byline=0&portrait=0&color=8dc7dc',
439
+ allowFullscreen: true
440
+ },
441
+ {
442
+ regex: /vimeo\.com\/(.*)\/([0-9]+)\?h=(\w+)/,
443
+ type: 'iframe',
444
+ w: 425,
445
+ h: 350,
446
+ url: 'player.vimeo.com/video/$2?h=$3&title=0&amp;byline=0',
447
+ allowFullscreen: true
448
+ },
449
+ {
450
+ regex: /vimeo\.com\/([0-9]+)/,
451
+ type: 'iframe',
452
+ w: 425,
453
+ h: 350,
454
+ url: 'player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc',
455
+ allowFullscreen: true
456
+ },
457
+ {
458
+ regex: /vimeo\.com\/(.*)\/([0-9]+)/,
459
+ type: 'iframe',
460
+ w: 425,
461
+ h: 350,
462
+ url: 'player.vimeo.com/video/$2?title=0&amp;byline=0',
463
+ allowFullscreen: true
464
+ },
465
+ {
466
+ regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,
467
+ type: 'iframe',
468
+ w: 425,
469
+ h: 350,
470
+ url: 'maps.google.com/maps/ms?msid=$2&output=embed"',
471
+ allowFullscreen: false
472
+ },
473
+ {
474
+ regex: /dailymotion\.com\/video\/([^_]+)/,
475
+ type: 'iframe',
476
+ w: 480,
477
+ h: 270,
478
+ url: 'www.dailymotion.com/embed/video/$1',
479
+ allowFullscreen: true
480
+ },
481
+ {
482
+ regex: /dai\.ly\/([^_]+)/,
483
+ type: 'iframe',
484
+ w: 480,
485
+ h: 270,
486
+ url: 'www.dailymotion.com/embed/video/$1',
487
+ allowFullscreen: true
488
+ }
489
+ ];
490
+ const getProtocol = url => {
491
+ const protocolMatches = url.match(/^(https?:\/\/|www\.)(.+)$/i);
492
+ if (protocolMatches && protocolMatches.length > 1) {
493
+ return protocolMatches[1] === 'www.' ? 'https://' : protocolMatches[1];
494
+ } else {
495
+ return 'https://';
496
+ }
497
+ };
498
+ const getUrl = (pattern, url) => {
499
+ const protocol = getProtocol(url);
500
+ const match = pattern.regex.exec(url);
501
+ let newUrl = protocol + pattern.url;
502
+ if (isNonNullable(match)) {
503
+ for (let i = 0; i < match.length; i++) {
504
+ newUrl = newUrl.replace('$' + i, () => match[i] ? match[i] : '');
505
+ }
506
+ }
507
+ return newUrl.replace(/\?$/, '');
508
+ };
509
+ const matchPattern = url => {
510
+ const patterns = urlPatterns.filter(pattern => pattern.regex.test(url));
511
+ if (patterns.length > 0) {
512
+ return global$5.extend({}, patterns[0], { url: getUrl(patterns[0], url) });
513
+ } else {
514
+ return null;
515
+ }
516
+ };
517
+
518
+ const getIframeHtml = (data, iframeTemplateCallback) => {
519
+ if (iframeTemplateCallback) {
520
+ return iframeTemplateCallback(data);
521
+ } else {
522
+ const allowFullscreen = data.allowfullscreen ? ' allowFullscreen="1"' : '';
523
+ return '<iframe src="' + data.source + '" width="' + data.width + '" height="' + data.height + '"' + allowFullscreen + '></iframe>';
524
+ }
525
+ };
526
+ const getFlashHtml = data => {
527
+ let html = '<object data="' + data.source + '" width="' + data.width + '" height="' + data.height + '" type="application/x-shockwave-flash">';
528
+ if (data.poster) {
529
+ html += '<img src="' + data.poster + '" width="' + data.width + '" height="' + data.height + '" />';
530
+ }
531
+ html += '</object>';
532
+ return html;
533
+ };
534
+ const getAudioHtml = (data, audioTemplateCallback) => {
535
+ if (audioTemplateCallback) {
536
+ return audioTemplateCallback(data);
537
+ } else {
538
+ return '<audio controls="controls" src="' + data.source + '">' + (data.altsource ? '\n<source src="' + data.altsource + '"' + (data.altsourcemime ? ' type="' + data.altsourcemime + '"' : '') + ' />\n' : '') + '</audio>';
539
+ }
540
+ };
541
+ const getVideoHtml = (data, videoTemplateCallback) => {
542
+ if (videoTemplateCallback) {
543
+ return videoTemplateCallback(data);
544
+ } else {
545
+ return '<video width="' + data.width + '" height="' + data.height + '"' + (data.poster ? ' poster="' + data.poster + '"' : '') + ' controls="controls">\n' + '<source src="' + data.source + '"' + (data.sourcemime ? ' type="' + data.sourcemime + '"' : '') + ' />\n' + (data.altsource ? '<source src="' + data.altsource + '"' + (data.altsourcemime ? ' type="' + data.altsourcemime + '"' : '') + ' />\n' : '') + '</video>';
546
+ }
547
+ };
548
+ const getScriptHtml = data => {
549
+ return '<script src="' + data.source + '"></script>';
550
+ };
551
+ const dataToHtml = (editor, dataIn) => {
552
+ var _a;
553
+ const data = global$5.extend({}, dataIn);
554
+ if (!data.source) {
555
+ global$5.extend(data, htmlToData((_a = data.embed) !== null && _a !== void 0 ? _a : '', editor.schema));
556
+ if (!data.source) {
557
+ return '';
558
+ }
559
+ }
560
+ if (!data.altsource) {
561
+ data.altsource = '';
562
+ }
563
+ if (!data.poster) {
564
+ data.poster = '';
565
+ }
566
+ data.source = editor.convertURL(data.source, 'source');
567
+ data.altsource = editor.convertURL(data.altsource, 'source');
568
+ data.sourcemime = guess(data.source);
569
+ data.altsourcemime = guess(data.altsource);
570
+ data.poster = editor.convertURL(data.poster, 'poster');
571
+ const pattern = matchPattern(data.source);
572
+ if (pattern) {
573
+ data.source = pattern.url;
574
+ data.type = pattern.type;
575
+ data.allowfullscreen = pattern.allowFullscreen;
576
+ data.width = data.width || String(pattern.w);
577
+ data.height = data.height || String(pattern.h);
578
+ }
579
+ if (data.embed) {
580
+ return updateHtml(data.embed, data, true, editor.schema);
581
+ } else {
582
+ const audioTemplateCallback = getAudioTemplateCallback(editor);
583
+ const videoTemplateCallback = getVideoTemplateCallback(editor);
584
+ const iframeTemplateCallback = getIframeTemplateCallback(editor);
585
+ data.width = data.width || '300';
586
+ data.height = data.height || '150';
587
+ global$5.each(data, (value, key) => {
588
+ data[key] = editor.dom.encode('' + value);
589
+ });
590
+ if (data.type === 'iframe') {
591
+ return getIframeHtml(data, iframeTemplateCallback);
592
+ } else if (data.sourcemime === 'application/x-shockwave-flash') {
593
+ return getFlashHtml(data);
594
+ } else if (data.sourcemime.indexOf('audio') !== -1) {
595
+ return getAudioHtml(data, audioTemplateCallback);
596
+ } else if (data.type === 'script') {
597
+ return getScriptHtml(data);
598
+ } else {
599
+ return getVideoHtml(data, videoTemplateCallback);
600
+ }
601
+ }
602
+ };
603
+
604
+ const isMediaElement = element => element.hasAttribute('data-mce-object') || element.hasAttribute('data-ephox-embed-iri');
605
+ const setup$2 = editor => {
606
+ editor.on('click keyup touchend', () => {
607
+ const selectedNode = editor.selection.getNode();
608
+ if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) {
609
+ if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) {
610
+ selectedNode.setAttribute('data-mce-selected', '2');
611
+ }
612
+ }
613
+ });
614
+ editor.on('ObjectSelected', e => {
615
+ const objectType = e.target.getAttribute('data-mce-object');
616
+ if (objectType === 'script') {
617
+ e.preventDefault();
618
+ }
619
+ });
620
+ editor.on('ObjectResized', e => {
621
+ const target = e.target;
622
+ if (target.getAttribute('data-mce-object')) {
623
+ let html = target.getAttribute('data-mce-html');
624
+ if (html) {
625
+ html = unescape(html);
626
+ target.setAttribute('data-mce-html', escape(updateHtml(html, {
627
+ width: String(e.width),
628
+ height: String(e.height)
629
+ }, false, editor.schema)));
630
+ }
631
+ }
632
+ });
633
+ };
634
+
635
+ const cache = {};
636
+ const embedPromise = (data, dataToHtml, handler) => {
637
+ return new Promise((res, rej) => {
638
+ const wrappedResolve = response => {
639
+ if (response.html) {
640
+ cache[data.source] = response;
641
+ }
642
+ return res({
643
+ url: data.source,
644
+ html: response.html ? response.html : dataToHtml(data)
645
+ });
646
+ };
647
+ if (cache[data.source]) {
648
+ wrappedResolve(cache[data.source]);
649
+ } else {
650
+ handler({ url: data.source }, wrappedResolve, rej);
651
+ }
652
+ });
653
+ };
654
+ const defaultPromise = (data, dataToHtml) => Promise.resolve({
655
+ html: dataToHtml(data),
656
+ url: data.source
657
+ });
658
+ const loadedData = editor => data => dataToHtml(editor, data);
659
+ const getEmbedHtml = (editor, data) => {
660
+ const embedHandler = getUrlResolver(editor);
661
+ return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor));
662
+ };
663
+ const isCached = url => has(cache, url);
664
+
665
+ const extractMeta = (sourceInput, data) => get$1(data, sourceInput).bind(mainData => get$1(mainData, 'meta'));
666
+ const getValue = (data, metaData, sourceInput) => prop => {
667
+ const getFromData = () => get$1(data, prop);
668
+ const getFromMetaData = () => get$1(metaData, prop);
669
+ const getNonEmptyValue = c => get$1(c, 'value').bind(v => v.length > 0 ? Optional.some(v) : Optional.none());
670
+ const getFromValueFirst = () => getFromData().bind(child => isObject(child) ? getNonEmptyValue(child).orThunk(getFromMetaData) : getFromMetaData().orThunk(() => Optional.from(child)));
671
+ const getFromMetaFirst = () => getFromMetaData().orThunk(() => getFromData().bind(child => isObject(child) ? getNonEmptyValue(child) : Optional.from(child)));
672
+ return { [prop]: (prop === sourceInput ? getFromValueFirst() : getFromMetaFirst()).getOr('') };
673
+ };
674
+ const getDimensions = (data, metaData) => {
675
+ const dimensions = {};
676
+ get$1(data, 'dimensions').each(dims => {
677
+ each$1([
678
+ 'width',
679
+ 'height'
680
+ ], prop => {
681
+ get$1(metaData, prop).orThunk(() => get$1(dims, prop)).each(value => dimensions[prop] = value);
682
+ });
683
+ });
684
+ return dimensions;
685
+ };
686
+ const unwrap = (data, sourceInput) => {
687
+ const metaData = sourceInput && sourceInput !== 'dimensions' ? extractMeta(sourceInput, data).getOr({}) : {};
688
+ const get = getValue(data, metaData, sourceInput);
689
+ return {
690
+ ...get('source'),
691
+ ...get('altsource'),
692
+ ...get('poster'),
693
+ ...get('embed'),
694
+ ...getDimensions(data, metaData)
695
+ };
696
+ };
697
+ const wrap = data => {
698
+ const wrapped = {
699
+ ...data,
700
+ source: { value: get$1(data, 'source').getOr('') },
701
+ altsource: { value: get$1(data, 'altsource').getOr('') },
702
+ poster: { value: get$1(data, 'poster').getOr('') }
703
+ };
704
+ each$1([
705
+ 'width',
706
+ 'height'
707
+ ], prop => {
708
+ get$1(data, prop).each(value => {
709
+ const dimensions = wrapped.dimensions || {};
710
+ dimensions[prop] = value;
711
+ wrapped.dimensions = dimensions;
712
+ });
713
+ });
714
+ return wrapped;
715
+ };
716
+ const handleError = editor => error => {
717
+ const errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.';
718
+ editor.notificationManager.open({
719
+ type: 'error',
720
+ text: errorMessage
721
+ });
722
+ };
723
+ const getEditorData = editor => {
724
+ const element = editor.selection.getNode();
725
+ const snippet = isMediaElement(element) ? editor.serializer.serialize(element, { selection: true }) : '';
726
+ const data = htmlToData(snippet, editor.schema);
727
+ const getDimensionsOfElement = () => {
728
+ if (isEmbedIframe(data.source, data.type)) {
729
+ const rect = editor.dom.getRect(element);
730
+ return {
731
+ width: rect.w.toString().replace(/px$/, ''),
732
+ height: rect.h.toString().replace(/px$/, '')
733
+ };
734
+ } else {
735
+ return {};
736
+ }
737
+ };
738
+ const dimensions = getDimensionsOfElement();
739
+ return {
740
+ embed: snippet,
741
+ ...data,
742
+ ...dimensions
743
+ };
744
+ };
745
+ const addEmbedHtml = (api, editor) => response => {
746
+ if (isString(response.url) && response.url.trim().length > 0) {
747
+ const html = response.html;
748
+ const snippetData = htmlToData(html, editor.schema);
749
+ const nuData = {
750
+ ...snippetData,
751
+ source: response.url,
752
+ embed: html
753
+ };
754
+ api.setData(wrap(nuData));
755
+ }
756
+ };
757
+ const selectPlaceholder = (editor, beforeObjects) => {
758
+ const afterObjects = editor.dom.select('*[data-mce-object]');
759
+ for (let i = 0; i < beforeObjects.length; i++) {
760
+ for (let y = afterObjects.length - 1; y >= 0; y--) {
761
+ if (beforeObjects[i] === afterObjects[y]) {
762
+ afterObjects.splice(y, 1);
763
+ }
764
+ }
765
+ }
766
+ editor.selection.select(afterObjects[0]);
767
+ };
768
+ const handleInsert = (editor, html) => {
769
+ const beforeObjects = editor.dom.select('*[data-mce-object]');
770
+ editor.insertContent(html);
771
+ selectPlaceholder(editor, beforeObjects);
772
+ editor.nodeChanged();
773
+ };
774
+ const isEmbedIframe = (url, mediaDataType) => isNonNullable(mediaDataType) && mediaDataType === 'ephox-embed-iri' && isNonNullable(matchPattern(url));
775
+ const shouldInsertAsNewIframe = (prevData, newData) => {
776
+ const hasDimensionsChanged = (prevData, newData) => prevData.width !== newData.width || prevData.height !== newData.height;
777
+ return hasDimensionsChanged(prevData, newData) && isEmbedIframe(newData.source, prevData.type);
778
+ };
779
+ const submitForm = (prevData, newData, editor) => {
780
+ var _a;
781
+ newData.embed = shouldInsertAsNewIframe(prevData, newData) && hasDimensions(editor) ? dataToHtml(editor, {
782
+ ...newData,
783
+ embed: ''
784
+ }) : updateHtml((_a = newData.embed) !== null && _a !== void 0 ? _a : '', newData, false, editor.schema);
785
+ if (newData.embed && (prevData.source === newData.source || isCached(newData.source))) {
786
+ handleInsert(editor, newData.embed);
787
+ } else {
788
+ getEmbedHtml(editor, newData).then(response => {
789
+ handleInsert(editor, response.html);
790
+ }).catch(handleError(editor));
791
+ }
792
+ };
793
+ const showDialog = editor => {
794
+ const editorData = getEditorData(editor);
795
+ const currentData = Cell(editorData);
796
+ const initialData = wrap(editorData);
797
+ const handleSource = (prevData, api) => {
798
+ const serviceData = unwrap(api.getData(), 'source');
799
+ if (prevData.source !== serviceData.source) {
800
+ addEmbedHtml(win, editor)({
801
+ url: serviceData.source,
802
+ html: ''
803
+ });
804
+ getEmbedHtml(editor, serviceData).then(addEmbedHtml(win, editor)).catch(handleError(editor));
805
+ }
806
+ };
807
+ const handleEmbed = api => {
808
+ var _a;
809
+ const data = unwrap(api.getData());
810
+ const dataFromEmbed = htmlToData((_a = data.embed) !== null && _a !== void 0 ? _a : '', editor.schema);
811
+ api.setData(wrap(dataFromEmbed));
812
+ };
813
+ const handleUpdate = (api, sourceInput, prevData) => {
814
+ const dialogData = unwrap(api.getData(), sourceInput);
815
+ const data = shouldInsertAsNewIframe(prevData, dialogData) && hasDimensions(editor) ? {
816
+ ...dialogData,
817
+ embed: ''
818
+ } : dialogData;
819
+ const embed = dataToHtml(editor, data);
820
+ api.setData(wrap({
821
+ ...data,
822
+ embed
823
+ }));
824
+ };
825
+ const mediaInput = [{
826
+ name: 'source',
827
+ type: 'urlinput',
828
+ filetype: 'media',
829
+ label: 'Source'
830
+ }];
831
+ const sizeInput = !hasDimensions(editor) ? [] : [{
832
+ type: 'sizeinput',
833
+ name: 'dimensions',
834
+ label: 'Constrain proportions',
835
+ constrain: true
836
+ }];
837
+ const generalTab = {
838
+ title: 'General',
839
+ name: 'general',
840
+ items: flatten([
841
+ mediaInput,
842
+ sizeInput
843
+ ])
844
+ };
845
+ const embedTextarea = {
846
+ type: 'textarea',
847
+ name: 'embed',
848
+ label: 'Paste your embed code below:'
849
+ };
850
+ const embedTab = {
851
+ title: 'Embed',
852
+ items: [embedTextarea]
853
+ };
854
+ const advancedFormItems = [];
855
+ if (hasAltSource(editor)) {
856
+ advancedFormItems.push({
857
+ name: 'altsource',
858
+ type: 'urlinput',
859
+ filetype: 'media',
860
+ label: 'Alternative source URL'
861
+ });
862
+ }
863
+ if (hasPoster(editor)) {
864
+ advancedFormItems.push({
865
+ name: 'poster',
866
+ type: 'urlinput',
867
+ filetype: 'image',
868
+ label: 'Media poster (Image URL)'
869
+ });
870
+ }
871
+ const advancedTab = {
872
+ title: 'Advanced',
873
+ name: 'advanced',
874
+ items: advancedFormItems
875
+ };
876
+ const tabs = [
877
+ generalTab,
878
+ embedTab
879
+ ];
880
+ if (advancedFormItems.length > 0) {
881
+ tabs.push(advancedTab);
882
+ }
883
+ const body = {
884
+ type: 'tabpanel',
885
+ tabs
886
+ };
887
+ const win = editor.windowManager.open({
888
+ title: 'Insert/Edit Media',
889
+ size: 'normal',
890
+ body,
891
+ buttons: [
892
+ {
893
+ type: 'cancel',
894
+ name: 'cancel',
895
+ text: 'Cancel'
896
+ },
897
+ {
898
+ type: 'submit',
899
+ name: 'save',
900
+ text: 'Save',
901
+ primary: true
902
+ }
903
+ ],
904
+ onSubmit: api => {
905
+ const serviceData = unwrap(api.getData());
906
+ submitForm(currentData.get(), serviceData, editor);
907
+ api.close();
908
+ },
909
+ onChange: (api, detail) => {
910
+ switch (detail.name) {
911
+ case 'source':
912
+ handleSource(currentData.get(), api);
913
+ break;
914
+ case 'embed':
915
+ handleEmbed(api);
916
+ break;
917
+ case 'dimensions':
918
+ case 'altsource':
919
+ case 'poster':
920
+ handleUpdate(api, detail.name, currentData.get());
921
+ break;
922
+ }
923
+ currentData.set(unwrap(api.getData()));
924
+ },
925
+ initialData
926
+ });
927
+ };
928
+
929
+ const get = editor => {
930
+ const showDialog$1 = () => {
931
+ showDialog(editor);
932
+ };
933
+ return { showDialog: showDialog$1 };
934
+ };
935
+
936
+ const register$1 = editor => {
937
+ const showDialog$1 = () => {
938
+ showDialog(editor);
939
+ };
940
+ editor.addCommand('mceMedia', showDialog$1);
941
+ };
942
+
943
+ const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;
944
+ const startsWith = (str, prefix) => {
945
+ return checkRange(str, prefix, 0);
946
+ };
947
+
948
+ var global = tinymce.util.Tools.resolve('tinymce.Env');
949
+
950
+ const isLiveEmbedNode = node => {
951
+ const name = node.name;
952
+ return name === 'iframe' || name === 'video' || name === 'audio';
953
+ };
954
+ const getDimension = (node, styles, dimension, defaultValue = null) => {
955
+ const value = node.attr(dimension);
956
+ if (isNonNullable(value)) {
957
+ return value;
958
+ } else if (!has(styles, dimension)) {
959
+ return defaultValue;
960
+ } else {
961
+ return null;
962
+ }
963
+ };
964
+ const setDimensions = (node, previewNode, styles) => {
965
+ const useDefaults = previewNode.name === 'img' || node.name === 'video';
966
+ const defaultWidth = useDefaults ? '300' : null;
967
+ const fallbackHeight = node.name === 'audio' ? '30' : '150';
968
+ const defaultHeight = useDefaults ? fallbackHeight : null;
969
+ previewNode.attr({
970
+ width: getDimension(node, styles, 'width', defaultWidth),
971
+ height: getDimension(node, styles, 'height', defaultHeight)
972
+ });
973
+ };
974
+ const appendNodeContent = (editor, nodeName, previewNode, html) => {
975
+ const newNode = Parser(editor.schema).parse(html, { context: nodeName });
976
+ while (newNode.firstChild) {
977
+ previewNode.append(newNode.firstChild);
978
+ }
979
+ };
980
+ const createPlaceholderNode = (editor, node) => {
981
+ const name = node.name;
982
+ const placeHolder = new global$2('img', 1);
983
+ retainAttributesAndInnerHtml(editor, node, placeHolder);
984
+ setDimensions(node, placeHolder, {});
985
+ placeHolder.attr({
986
+ 'style': node.attr('style'),
987
+ 'src': global.transparentSrc,
988
+ 'data-mce-object': name,
989
+ 'class': 'mce-object mce-object-' + name
990
+ });
991
+ return placeHolder;
992
+ };
993
+ const createPreviewNode = (editor, node) => {
994
+ var _a;
995
+ const name = node.name;
996
+ const previewWrapper = new global$2('span', 1);
997
+ previewWrapper.attr({
998
+ 'contentEditable': 'false',
999
+ 'style': node.attr('style'),
1000
+ 'data-mce-object': name,
1001
+ 'class': 'mce-preview-object mce-object-' + name
1002
+ });
1003
+ retainAttributesAndInnerHtml(editor, node, previewWrapper);
1004
+ const styles = editor.dom.parseStyle((_a = node.attr('style')) !== null && _a !== void 0 ? _a : '');
1005
+ const previewNode = new global$2(name, 1);
1006
+ setDimensions(node, previewNode, styles);
1007
+ previewNode.attr({
1008
+ src: node.attr('src'),
1009
+ style: node.attr('style'),
1010
+ class: node.attr('class')
1011
+ });
1012
+ if (name === 'iframe') {
1013
+ previewNode.attr({
1014
+ allowfullscreen: node.attr('allowfullscreen'),
1015
+ frameborder: '0'
1016
+ });
1017
+ } else {
1018
+ const attrs = [
1019
+ 'controls',
1020
+ 'crossorigin',
1021
+ 'currentTime',
1022
+ 'loop',
1023
+ 'muted',
1024
+ 'poster',
1025
+ 'preload'
1026
+ ];
1027
+ each$1(attrs, attrName => {
1028
+ previewNode.attr(attrName, node.attr(attrName));
1029
+ });
1030
+ const sanitizedHtml = previewWrapper.attr('data-mce-html');
1031
+ if (isNonNullable(sanitizedHtml)) {
1032
+ appendNodeContent(editor, name, previewNode, unescape(sanitizedHtml));
1033
+ }
1034
+ }
1035
+ const shimNode = new global$2('span', 1);
1036
+ shimNode.attr('class', 'mce-shim');
1037
+ previewWrapper.append(previewNode);
1038
+ previewWrapper.append(shimNode);
1039
+ return previewWrapper;
1040
+ };
1041
+ const retainAttributesAndInnerHtml = (editor, sourceNode, targetNode) => {
1042
+ var _a;
1043
+ const attribs = (_a = sourceNode.attributes) !== null && _a !== void 0 ? _a : [];
1044
+ let ai = attribs.length;
1045
+ while (ai--) {
1046
+ const attrName = attribs[ai].name;
1047
+ let attrValue = attribs[ai].value;
1048
+ if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style' && !startsWith(attrName, 'data-mce-')) {
1049
+ if (attrName === 'data' || attrName === 'src') {
1050
+ attrValue = editor.convertURL(attrValue, attrName);
1051
+ }
1052
+ targetNode.attr('data-mce-p-' + attrName, attrValue);
1053
+ }
1054
+ }
1055
+ const serializer = global$1({ inner: true }, editor.schema);
1056
+ const tempNode = new global$2('div', 1);
1057
+ each$1(sourceNode.children(), child => tempNode.append(child));
1058
+ const innerHtml = serializer.serialize(tempNode);
1059
+ if (innerHtml) {
1060
+ targetNode.attr('data-mce-html', escape(innerHtml));
1061
+ targetNode.empty();
1062
+ }
1063
+ };
1064
+ const isPageEmbedWrapper = node => {
1065
+ const nodeClass = node.attr('class');
1066
+ return isString(nodeClass) && /\btiny-pageembed\b/.test(nodeClass);
1067
+ };
1068
+ const isWithinEmbedWrapper = node => {
1069
+ let tempNode = node;
1070
+ while (tempNode = tempNode.parent) {
1071
+ if (tempNode.attr('data-ephox-embed-iri') || isPageEmbedWrapper(tempNode)) {
1072
+ return true;
1073
+ }
1074
+ }
1075
+ return false;
1076
+ };
1077
+ const placeHolderConverter = editor => nodes => {
1078
+ let i = nodes.length;
1079
+ let node;
1080
+ while (i--) {
1081
+ node = nodes[i];
1082
+ if (!node.parent) {
1083
+ continue;
1084
+ }
1085
+ if (node.parent.attr('data-mce-object')) {
1086
+ continue;
1087
+ }
1088
+ if (isLiveEmbedNode(node) && hasLiveEmbeds(editor)) {
1089
+ if (!isWithinEmbedWrapper(node)) {
1090
+ node.replace(createPreviewNode(editor, node));
1091
+ }
1092
+ } else {
1093
+ if (!isWithinEmbedWrapper(node)) {
1094
+ node.replace(createPlaceholderNode(editor, node));
1095
+ }
1096
+ }
1097
+ }
1098
+ };
1099
+
1100
+ const parseAndSanitize = (editor, context, html) => {
1101
+ const getEditorOption = editor.options.get;
1102
+ const sanitize = getEditorOption('xss_sanitization');
1103
+ const validate = shouldFilterHtml(editor);
1104
+ return Parser(editor.schema, {
1105
+ sanitize,
1106
+ validate
1107
+ }).parse(html, { context });
1108
+ };
1109
+
1110
+ const setup$1 = editor => {
1111
+ editor.on('PreInit', () => {
1112
+ const {schema, serializer, parser} = editor;
1113
+ const boolAttrs = schema.getBoolAttrs();
1114
+ each$1('webkitallowfullscreen mozallowfullscreen'.split(' '), name => {
1115
+ boolAttrs[name] = {};
1116
+ });
1117
+ each({ embed: ['wmode'] }, (attrs, name) => {
1118
+ const rule = schema.getElementRule(name);
1119
+ if (rule) {
1120
+ each$1(attrs, attr => {
1121
+ rule.attributes[attr] = {};
1122
+ rule.attributesOrder.push(attr);
1123
+ });
1124
+ }
1125
+ });
1126
+ parser.addNodeFilter('iframe,video,audio,object,embed,script', placeHolderConverter(editor));
1127
+ serializer.addAttributeFilter('data-mce-object', (nodes, name) => {
1128
+ var _a;
1129
+ let i = nodes.length;
1130
+ while (i--) {
1131
+ const node = nodes[i];
1132
+ if (!node.parent) {
1133
+ continue;
1134
+ }
1135
+ const realElmName = node.attr(name);
1136
+ const realElm = new global$2(realElmName, 1);
1137
+ if (realElmName !== 'audio' && realElmName !== 'script') {
1138
+ const className = node.attr('class');
1139
+ if (className && className.indexOf('mce-preview-object') !== -1 && node.firstChild) {
1140
+ realElm.attr({
1141
+ width: node.firstChild.attr('width'),
1142
+ height: node.firstChild.attr('height')
1143
+ });
1144
+ } else {
1145
+ realElm.attr({
1146
+ width: node.attr('width'),
1147
+ height: node.attr('height')
1148
+ });
1149
+ }
1150
+ }
1151
+ realElm.attr({ style: node.attr('style') });
1152
+ const attribs = (_a = node.attributes) !== null && _a !== void 0 ? _a : [];
1153
+ let ai = attribs.length;
1154
+ while (ai--) {
1155
+ const attrName = attribs[ai].name;
1156
+ if (attrName.indexOf('data-mce-p-') === 0) {
1157
+ realElm.attr(attrName.substr(11), attribs[ai].value);
1158
+ }
1159
+ }
1160
+ if (realElmName === 'script') {
1161
+ realElm.attr('type', 'text/javascript');
1162
+ }
1163
+ const innerHtml = node.attr('data-mce-html');
1164
+ if (innerHtml) {
1165
+ const fragment = parseAndSanitize(editor, realElmName, unescape(innerHtml));
1166
+ each$1(fragment.children(), child => realElm.append(child));
1167
+ }
1168
+ node.replace(realElm);
1169
+ }
1170
+ });
1171
+ });
1172
+ editor.on('SetContent', () => {
1173
+ const dom = editor.dom;
1174
+ each$1(dom.select('span.mce-preview-object'), elm => {
1175
+ if (dom.select('span.mce-shim', elm).length === 0) {
1176
+ dom.add(elm, 'span', { class: 'mce-shim' });
1177
+ }
1178
+ });
1179
+ });
1180
+ };
1181
+
1182
+ const setup = editor => {
1183
+ editor.on('ResolveName', e => {
1184
+ let name;
1185
+ if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) {
1186
+ e.name = name;
1187
+ }
1188
+ });
1189
+ };
1190
+
1191
+ const onSetupEditable = editor => api => {
1192
+ const nodeChanged = () => {
1193
+ api.setEnabled(editor.selection.isEditable());
1194
+ };
1195
+ editor.on('NodeChange', nodeChanged);
1196
+ nodeChanged();
1197
+ return () => {
1198
+ editor.off('NodeChange', nodeChanged);
1199
+ };
1200
+ };
1201
+ const register = editor => {
1202
+ const onAction = () => editor.execCommand('mceMedia');
1203
+ editor.ui.registry.addToggleButton('media', {
1204
+ tooltip: 'Insert/edit media',
1205
+ icon: 'embed',
1206
+ onAction,
1207
+ onSetup: buttonApi => {
1208
+ const selection = editor.selection;
1209
+ buttonApi.setActive(isMediaElement(selection.getNode()));
1210
+ const unbindSelectorChanged = selection.selectorChangedWithUnbind('img[data-mce-object],span[data-mce-object],div[data-ephox-embed-iri]', buttonApi.setActive).unbind;
1211
+ const unbindEditable = onSetupEditable(editor)(buttonApi);
1212
+ return () => {
1213
+ unbindSelectorChanged();
1214
+ unbindEditable();
1215
+ };
1216
+ }
1217
+ });
1218
+ editor.ui.registry.addMenuItem('media', {
1219
+ icon: 'embed',
1220
+ text: 'Media...',
1221
+ onAction,
1222
+ onSetup: onSetupEditable(editor)
1223
+ });
1224
+ };
1225
+
1226
+ var Plugin = () => {
1227
+ global$6.add('media', editor => {
1228
+ register$2(editor);
1229
+ register$1(editor);
1230
+ register(editor);
1231
+ setup(editor);
1232
+ setup$1(editor);
1233
+ setup$2(editor);
1234
+ return get(editor);
1235
+ });
1236
+ };
1237
+
1238
+ Plugin();
1239
+
1240
+ })();