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