@bobfrankston/rmfmail 1.0.655 → 1.0.657
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/bin/build-tinymce.js +42 -0
- package/bin/mailx.js +54 -23
- package/bin/mailx.js.map +1 -1
- package/bin/mailx.ts +45 -20
- package/client/compose/editor.js +7 -1
- package/client/compose/editor.js.map +1 -1
- package/client/compose/editor.ts +7 -1
- package/client/lib/rmf-tiny.js +21 -3
- package/client/lib/tinymce/CHANGELOG.md +3991 -0
- package/client/lib/tinymce/README.md +77 -0
- package/client/lib/tinymce/bower.json +27 -0
- package/client/lib/tinymce/composer.json +52 -0
- package/client/lib/tinymce/icons/default/icons.js +270 -0
- package/client/lib/tinymce/icons/default/icons.min.js +1 -0
- package/client/lib/tinymce/icons/default/index.js +7 -0
- package/client/lib/tinymce/license.md +9 -0
- package/client/lib/tinymce/models/dom/index.js +7 -0
- package/client/lib/tinymce/models/dom/model.js +8994 -0
- package/client/lib/tinymce/models/dom/model.min.js +1 -0
- package/client/lib/tinymce/notices.txt +21 -0
- package/client/lib/tinymce/package.json +32 -0
- package/client/lib/tinymce/plugins/accordion/index.js +7 -0
- package/client/lib/tinymce/plugins/accordion/plugin.js +1373 -0
- package/client/lib/tinymce/plugins/accordion/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/advlist/index.js +7 -0
- package/client/lib/tinymce/plugins/advlist/plugin.js +473 -0
- package/client/lib/tinymce/plugins/advlist/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/anchor/index.js +7 -0
- package/client/lib/tinymce/plugins/anchor/plugin.js +237 -0
- package/client/lib/tinymce/plugins/anchor/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/autolink/index.js +7 -0
- package/client/lib/tinymce/plugins/autolink/plugin.js +315 -0
- package/client/lib/tinymce/plugins/autolink/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/autoresize/index.js +7 -0
- package/client/lib/tinymce/plugins/autoresize/plugin.js +221 -0
- package/client/lib/tinymce/plugins/autoresize/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/autosave/index.js +7 -0
- package/client/lib/tinymce/plugins/autosave/plugin.js +249 -0
- package/client/lib/tinymce/plugins/autosave/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/charmap/index.js +7 -0
- package/client/lib/tinymce/plugins/charmap/plugin.js +997 -0
- package/client/lib/tinymce/plugins/charmap/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/code/index.js +7 -0
- package/client/lib/tinymce/plugins/code/plugin.js +98 -0
- package/client/lib/tinymce/plugins/code/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/codesample/index.js +7 -0
- package/client/lib/tinymce/plugins/codesample/plugin.js +3655 -0
- package/client/lib/tinymce/plugins/codesample/plugin.min.js +9 -0
- package/client/lib/tinymce/plugins/directionality/index.js +7 -0
- package/client/lib/tinymce/plugins/directionality/plugin.js +670 -0
- package/client/lib/tinymce/plugins/directionality/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/emoticons/index.js +7 -0
- package/client/lib/tinymce/plugins/emoticons/js/emojiimages.js +1 -0
- package/client/lib/tinymce/plugins/emoticons/js/emojiimages.min.js +1 -0
- package/client/lib/tinymce/plugins/emoticons/js/emojis.js +1 -0
- package/client/lib/tinymce/plugins/emoticons/js/emojis.min.js +1 -0
- package/client/lib/tinymce/plugins/emoticons/plugin.js +809 -0
- package/client/lib/tinymce/plugins/emoticons/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/fullscreen/index.js +7 -0
- package/client/lib/tinymce/plugins/fullscreen/plugin.js +1607 -0
- package/client/lib/tinymce/plugins/fullscreen/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/help/index.js +7 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/ar.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/bg-BG.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/ca.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/cs.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/da.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/de.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/el.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/en.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/es.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/eu.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/fa.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/fi.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/fr-FR.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/he-IL.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/he_IL.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/hi.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/hr.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/hu-HU.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/id.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/it.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/ja.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/kk.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/ko-KR.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/ms.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/nb-NO.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/nl.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/pl.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/pt-BR.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/pt-PT.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/ro.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/ru.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/sk.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/sl-SI.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/sv-SE.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/th-TH.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/th_TH.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/tr.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/uk.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/vi.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/zh-CN.js +87 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/zh-TW.js +93 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +87 -0
- package/client/lib/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +93 -0
- package/client/lib/tinymce/plugins/help/plugin.js +827 -0
- package/client/lib/tinymce/plugins/help/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/image/index.js +7 -0
- package/client/lib/tinymce/plugins/image/plugin.js +1692 -0
- package/client/lib/tinymce/plugins/image/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/importcss/index.js +7 -0
- package/client/lib/tinymce/plugins/importcss/plugin.js +401 -0
- package/client/lib/tinymce/plugins/importcss/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/insertdatetime/index.js +7 -0
- package/client/lib/tinymce/plugins/insertdatetime/plugin.js +187 -0
- package/client/lib/tinymce/plugins/insertdatetime/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/link/index.js +7 -0
- package/client/lib/tinymce/plugins/link/plugin.js +1711 -0
- package/client/lib/tinymce/plugins/link/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/lists/index.js +7 -0
- package/client/lib/tinymce/plugins/lists/plugin.js +602 -0
- package/client/lib/tinymce/plugins/lists/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/media/index.js +7 -0
- package/client/lib/tinymce/plugins/media/plugin.js +1442 -0
- package/client/lib/tinymce/plugins/media/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/nonbreaking/index.js +7 -0
- package/client/lib/tinymce/plugins/nonbreaking/plugin.js +128 -0
- package/client/lib/tinymce/plugins/nonbreaking/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/pagebreak/index.js +7 -0
- package/client/lib/tinymce/plugins/pagebreak/plugin.js +123 -0
- package/client/lib/tinymce/plugins/pagebreak/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/preview/index.js +7 -0
- package/client/lib/tinymce/plugins/preview/plugin.js +878 -0
- package/client/lib/tinymce/plugins/preview/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/quickbars/index.js +7 -0
- package/client/lib/tinymce/plugins/quickbars/plugin.js +654 -0
- package/client/lib/tinymce/plugins/quickbars/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/save/index.js +7 -0
- package/client/lib/tinymce/plugins/save/plugin.js +136 -0
- package/client/lib/tinymce/plugins/save/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/searchreplace/index.js +7 -0
- package/client/lib/tinymce/plugins/searchreplace/plugin.js +1367 -0
- package/client/lib/tinymce/plugins/searchreplace/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/table/index.js +7 -0
- package/client/lib/tinymce/plugins/table/plugin.js +4011 -0
- package/client/lib/tinymce/plugins/table/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/visualblocks/index.js +7 -0
- package/client/lib/tinymce/plugins/visualblocks/plugin.js +106 -0
- package/client/lib/tinymce/plugins/visualblocks/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/visualchars/index.js +7 -0
- package/client/lib/tinymce/plugins/visualchars/plugin.js +808 -0
- package/client/lib/tinymce/plugins/visualchars/plugin.min.js +1 -0
- package/client/lib/tinymce/plugins/wordcount/index.js +7 -0
- package/client/lib/tinymce/plugins/wordcount/plugin.js +586 -0
- package/client/lib/tinymce/plugins/wordcount/plugin.min.js +1 -0
- package/client/lib/tinymce/skins/content/dark/content.css +75 -0
- package/client/lib/tinymce/skins/content/dark/content.js +10 -0
- package/client/lib/tinymce/skins/content/dark/content.min.css +10 -0
- package/client/lib/tinymce/skins/content/dark/content.min.ts +3 -0
- package/client/lib/tinymce/skins/content/dark/content.ts +3 -0
- package/client/lib/tinymce/skins/content/default/content.css +70 -0
- package/client/lib/tinymce/skins/content/default/content.js +10 -0
- package/client/lib/tinymce/skins/content/default/content.min.css +10 -0
- package/client/lib/tinymce/skins/content/default/content.min.ts +3 -0
- package/client/lib/tinymce/skins/content/default/content.ts +3 -0
- package/client/lib/tinymce/skins/content/document/content.css +75 -0
- package/client/lib/tinymce/skins/content/document/content.js +10 -0
- package/client/lib/tinymce/skins/content/document/content.min.css +10 -0
- package/client/lib/tinymce/skins/content/document/content.min.ts +3 -0
- package/client/lib/tinymce/skins/content/document/content.ts +3 -0
- package/client/lib/tinymce/skins/content/tinymce-5/content.css +70 -0
- package/client/lib/tinymce/skins/content/tinymce-5/content.js +10 -0
- package/client/lib/tinymce/skins/content/tinymce-5/content.min.css +10 -0
- package/client/lib/tinymce/skins/content/tinymce-5/content.min.ts +3 -0
- package/client/lib/tinymce/skins/content/tinymce-5/content.ts +3 -0
- package/client/lib/tinymce/skins/content/tinymce-5-dark/content.css +75 -0
- package/client/lib/tinymce/skins/content/tinymce-5-dark/content.js +10 -0
- package/client/lib/tinymce/skins/content/tinymce-5-dark/content.min.css +10 -0
- package/client/lib/tinymce/skins/content/tinymce-5-dark/content.min.ts +3 -0
- package/client/lib/tinymce/skins/content/tinymce-5-dark/content.ts +3 -0
- package/client/lib/tinymce/skins/content/writer/content.css +71 -0
- package/client/lib/tinymce/skins/content/writer/content.js +10 -0
- package/client/lib/tinymce/skins/content/writer/content.min.css +10 -0
- package/client/lib/tinymce/skins/content/writer/content.min.ts +3 -0
- package/client/lib/tinymce/skins/content/writer/content.ts +3 -0
- package/client/lib/tinymce/skins/ui/oxide/content.css +1322 -0
- package/client/lib/tinymce/skins/ui/oxide/content.inline.css +1316 -0
- package/client/lib/tinymce/skins/ui/oxide/content.inline.js +10 -0
- package/client/lib/tinymce/skins/ui/oxide/content.inline.min.css +10 -0
- package/client/lib/tinymce/skins/ui/oxide/content.inline.min.ts +136 -0
- package/client/lib/tinymce/skins/ui/oxide/content.inline.ts +136 -0
- package/client/lib/tinymce/skins/ui/oxide/content.js +10 -0
- package/client/lib/tinymce/skins/ui/oxide/content.min.css +10 -0
- package/client/lib/tinymce/skins/ui/oxide/content.min.ts +136 -0
- package/client/lib/tinymce/skins/ui/oxide/content.ts +136 -0
- package/client/lib/tinymce/skins/ui/oxide/skin.css +7109 -0
- package/client/lib/tinymce/skins/ui/oxide/skin.js +1 -0
- package/client/lib/tinymce/skins/ui/oxide/skin.min.css +1 -0
- package/client/lib/tinymce/skins/ui/oxide/skin.min.ts +637 -0
- package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.css +30 -0
- package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.js +1 -0
- package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
- package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.min.ts +9 -0
- package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.ts +9 -0
- package/client/lib/tinymce/skins/ui/oxide/skin.ts +637 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/content.css +1310 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.css +1316 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.js +10 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.min.css +10 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.min.ts +136 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.ts +136 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/content.js +10 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/content.min.css +10 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/content.min.ts +136 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/content.ts +136 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.css +7112 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.js +1 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.min.ts +637 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +30 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +1 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.ts +9 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.ts +9 -0
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.ts +637 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/content.css +1322 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.css +1316 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.js +10 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.min.css +10 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.min.ts +136 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.ts +136 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/content.js +10 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/content.min.css +10 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/content.min.ts +136 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/content.ts +136 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.css +7228 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.js +1 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.min.ts +638 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.css +30 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +1 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.ts +9 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.ts +9 -0
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.ts +638 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.css +1310 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.css +1316 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.js +10 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +10 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.ts +136 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.ts +136 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.js +10 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.min.css +10 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.min.ts +136 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.ts +136 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.css +7228 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.ts +638 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css +30 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +1 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.ts +9 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.ts +9 -0
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.ts +638 -0
- package/client/lib/tinymce/themes/silver/index.js +7 -0
- package/client/lib/tinymce/themes/silver/theme.js +34829 -0
- package/client/lib/tinymce/themes/silver/theme.min.js +1 -0
- package/client/lib/tinymce/tinymce.js +41682 -0
- package/client/lib/tinymce/tinymce.min.js +10 -0
- package/package.json +5 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(r=o=e,(a=String).prototype.isPrototypeOf(r)||o.constructor?.name===a.name)?"string":t;var r,o,a})(t)===e,r=t("string"),o=t("object"),a=t("array"),s=e=>!(e=>null==e)(e),i=e=>"function"==typeof e;class n{tag;value;static singletonNone=new n(!1);constructor(e,t){this.tag=e,this.value=t}static some(e){return new n(!0,e)}static none(){return n.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?n.some(e(this.value)):n.none()}bind(e){return this.tag?e(this.value):n.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:n.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(e??"Called getOrDie on None")}static from(e){return s(e)?n.some(e):n.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}Array.prototype.slice;const c=Array.prototype.push,l=(e,t)=>{for(let r=0,o=e.length;r<o;r++)t(e[r],r)},m=e=>{const t=[];for(let r=0,o=e.length;r<o;++r){if(!a(e[r]))throw new Error("Arr.flatten item "+r+" was not an array, input: "+e);c.apply(t,e[r])}return t};i(Array.from)&&Array.from;const u=Object.keys,d=Object.hasOwnProperty,h=(e,t)=>p(e,t)?n.from(e[t]):n.none(),p=(e,t)=>d.call(e,t),g=(e,t)=>((e,t)=>""===t||e.length>=t.length&&e.substr(0,0+t.length)===t)(e,t),b=e=>t=>t.options.get(e),w=b("audio_template_callback"),f=b("video_template_callback"),y=b("iframe_template_callback"),v=b("media_live_embeds"),x=b("media_filter_html"),_=b("media_url_resolver"),k=b("media_alt_source"),j=b("media_poster"),A=b("media_dimensions");var O=tinymce.util.Tools.resolve("tinymce.util.Tools"),S=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),$=tinymce.util.Tools.resolve("tinymce.html.DomParser");const C=S.DOM,T=e=>e.replace(/px$/,""),z=e=>{const t=e.attr("style"),r=t?C.parseStyle(t):{};return{type:"ephox-embed-iri",source:e.attr("data-ephox-embed-iri"),altsource:"",poster:"",width:h(r,"max-width").map(T).getOr(""),height:h(r,"max-height").map(T).getOr("")}},D=(e,t)=>{let r={};for(let o=$({validate:!1,forced_root_block:!1},t).parse(e);o;o=o.walk())if(1===o.type){const e=o.name;if(o.attr("data-ephox-embed-iri")){r=z(o);break}r.source||"param"!==e||(r.source=o.attr("movie")),"iframe"!==e&&"object"!==e&&"embed"!==e&&"video"!==e&&"audio"!==e||(r.type||(r.type=e),r=O.extend(o.attributes.map,r)),"source"===e&&(r.source?r.altsource||(r.altsource=o.attr("src")):r.source=o.attr("src")),"img"!==e||r.poster||(r.poster=o.attr("src"))}return r.source=r.source||r.src||"",r.altsource=r.altsource||"",r.poster=r.poster||"",r},F=e=>{const t=e.toLowerCase().split(".").pop()??"";return h({mp3:"audio/mpeg",m4a:"audio/x-m4a",wav:"audio/wav",mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",swf:"application/x-shockwave-flash"},t).getOr("")};var M=tinymce.util.Tools.resolve("tinymce.html.Node"),N=tinymce.util.Tools.resolve("tinymce.html.Serializer");const P=(e,t={})=>$({forced_root_block:!1,validate:!1,allow_conditional_comments:!0,...t},e),R=S.DOM,E=e=>/^[0-9.]+$/.test(e)?e+"px":e,U=(e,t)=>{const r=t.attr("style"),o=r?R.parseStyle(r):{};s(e.width)&&(o["max-width"]=E(e.width)),s(e.height)&&(o["max-height"]=E(e.height)),t.attr("style",R.serializeStyle(o))},L=["source","altsource"],I=(e,t,r,o)=>{let a=0,s=0;const i=P(o);i.addNodeFilter("source",e=>a=e.length);const n=i.parse(e);for(let e=n;e;e=e.walk())if(1===e.type){const o=e.name;if(e.attr("data-ephox-embed-iri")){U(t,e);break}switch(o){case"video":case"object":case"embed":case"img":case"iframe":void 0!==t.height&&void 0!==t.width&&(e.attr("width",t.width),e.attr("height",t.height))}if(r)switch(o){case"video":e.attr("poster",t.poster),e.attr("src",null);for(let r=a;r<2;r++)if(t[L[r]]){const o=new M("source",1);o.attr("src",t[L[r]]),o.attr("type",t[L[r]+"mime"]||null),e.append(o)}break;case"iframe":e.attr("src",t.source);break;case"object":const r=e.getAll("img").length>0;if(t.poster&&!r){e.attr("src",t.poster);const r=new M("img",1);r.attr("src",t.poster),r.attr("width",t.width),r.attr("height",t.height),e.append(r)}break;case"source":if(s<2&&(e.attr("src",t[L[s]]),e.attr("type",t[L[s]+"mime"]||null),!t[L[s]])){e.remove();continue}s++;break;case"img":t.poster||e.remove()}}return N({},o).serialize(n)},B=[{regex:/youtu\.be\/([\w\-_\?&=.]+)/i,type:"iframe",w:560,h:314,url:"www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i,type:"iframe",w:560,h:314,url:"www.youtube.com/embed/$2?$4",allowFullscreen:!0},{regex:/youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i,type:"iframe",w:560,h:314,url:"www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/vimeo\.com\/([0-9]+)\?h=(\w+)/,type:"iframe",w:425,h:350,url:"player.vimeo.com/video/$1?h=$2&title=0&byline=0&portrait=0&color=8dc7dc",allowFullscreen:!0},{regex:/vimeo\.com\/(.*)\/([0-9]+)\?h=(\w+)/,type:"iframe",w:425,h:350,url:"player.vimeo.com/video/$2?h=$3&title=0&byline=0",allowFullscreen:!0},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc",allowFullscreen:!0},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"player.vimeo.com/video/$2?title=0&byline=0",allowFullscreen:!0},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'maps.google.com/maps/ms?msid=$2&output=embed"',allowFullscreen:!1},{regex:/dailymotion\.com\/video\/([^_]+)/,type:"iframe",w:480,h:270,url:"www.dailymotion.com/embed/video/$1",allowFullscreen:!0},{regex:/dai\.ly\/([^_]+)/,type:"iframe",w:480,h:270,url:"www.dailymotion.com/embed/video/$1",allowFullscreen:!0}],G=(e,t)=>{const r=(e=>{const t=e.match(/^(https?:\/\/|www\.)(.+)$/i);return t&&t.length>1?"www."===t[1]?"https://":t[1]:"https://"})(t),o=e.regex.exec(t);let a=r+e.url;if(s(o))for(let e=0;e<o.length;e++)a=a.replace("$"+e,()=>o[e]?o[e]:"");return a.replace(/\?$/,"")},W=e=>{const t=B.filter(t=>t.regex.test(e));return t.length>0?O.extend({},t[0],{url:G(t[0],e)}):null},q=(e,t)=>{const r=O.extend({},t);if(!r.source&&(O.extend(r,D(r.embed??"",e.schema)),!r.source))return"";r.altsource||(r.altsource=""),r.poster||(r.poster=""),r.source=e.convertURL(r.source,"source"),r.altsource=e.convertURL(r.altsource,"source"),r.sourcemime=F(r.source),r.altsourcemime=F(r.altsource),r.poster=e.convertURL(r.poster,"poster");const o=W(r.source);if(o&&(r.source=o.url,r.type=o.type,r.allowfullscreen=o.allowFullscreen,r.width=r.width||String(o.w),r.height=r.height||String(o.h)),r.embed)return I(r.embed,r,!0,e.schema);{const t=w(e),o=f(e),a=y(e);return r.width=r.width||"300",r.height=r.height||"150",O.each(r,(t,o)=>{r[o]=e.dom.encode(""+t)}),"iframe"===r.type?((e,t)=>{if(t)return t(e);{const t=e.allowfullscreen?' allowFullscreen="1"':"";return'<iframe src="'+e.source+'" width="'+e.width+'" height="'+e.height+'"'+t+"></iframe>"}})(r,a):"application/x-shockwave-flash"===r.sourcemime?(e=>{let t='<object data="'+e.source+'" width="'+e.width+'" height="'+e.height+'" type="application/x-shockwave-flash">';return e.poster&&(t+='<img src="'+e.poster+'" width="'+e.width+'" height="'+e.height+'" />'),t+="</object>",t})(r):-1!==r.sourcemime.indexOf("audio")?((e,t)=>t?t(e):'<audio controls="controls" src="'+e.source+'">'+(e.altsource?'\n<source src="'+e.altsource+'"'+(e.altsourcemime?' type="'+e.altsourcemime+'"':"")+" />\n":"")+"</audio>")(r,t):((e,t)=>t?t(e):'<video width="'+e.width+'" height="'+e.height+'"'+(e.poster?' poster="'+e.poster+'"':"")+' controls="controls">\n<source src="'+e.source+'"'+(e.sourcemime?' type="'+e.sourcemime+'"':"")+" />\n"+(e.altsource?'<source src="'+e.altsource+'"'+(e.altsourcemime?' type="'+e.altsourcemime+'"':"")+" />\n":"")+"</video>")(r,o)}},H=e=>e.hasAttribute("data-mce-object")||e.hasAttribute("data-ephox-embed-iri"),J={},K=e=>t=>q(e,t),Q=(e,t)=>{const r=_(e);return r?((e,t,r)=>new Promise((o,a)=>{const s=r=>(r.html&&(J[e.source]=r),o({url:e.source,html:r.html?r.html:t(e)}));J[e.source]?s(J[e.source]):r({url:e.source}).then(s).catch(a)}))(t,K(e),r):((e,t)=>Promise.resolve({html:t(e),url:e.source}))(t,K(e))},V=(e,t)=>{const r={};return h(e,"dimensions").each(e=>{l(["width","height"],o=>{h(t,o).orThunk(()=>h(e,o)).each(e=>r[o]=e)})}),r},X=(e,t)=>{const r=t&&"dimensions"!==t?((e,t)=>h(t,e).bind(e=>h(e,"meta")))(t,e).getOr({}):{},a=((e,t,r)=>a=>{const s=()=>h(e,a),i=()=>h(t,a),c=e=>h(e,"value").bind(e=>e.length>0?n.some(e):n.none());return{[a]:(a===r?s().bind(e=>o(e)?c(e).orThunk(i):i().orThunk(()=>n.from(e))):i().orThunk(()=>s().bind(e=>o(e)?c(e):n.from(e)))).getOr("")}})(e,r,t);return{...a("source"),...a("altsource"),...a("poster"),...a("embed"),...V(e,r)}},Y=e=>{const t={...e,source:{value:h(e,"source").getOr("")},altsource:{value:h(e,"altsource").getOr("")},poster:{value:h(e,"poster").getOr("")}};return l(["width","height"],r=>{h(e,r).each(e=>{const o=t.dimensions||{};o[r]=e,t.dimensions=o})}),t},Z=e=>t=>{const r=t&&t.msg?"Media embed handler error: "+t.msg:"Media embed handler threw unknown error.";e.notificationManager.open({type:"error",text:r})},ee=(e,t)=>o=>{if(r(o.url)&&o.url.trim().length>0){const r=o.html,a={...D(r,t.schema),source:o.url,embed:r};e.setData(Y(a))}},te=(e,t)=>{const r=e.dom.select("*[data-mce-object]");e.insertContent(t),((e,t)=>{const r=e.dom.select("*[data-mce-object]");for(let e=0;e<t.length;e++)for(let o=r.length-1;o>=0;o--)t[e]===r[o]&&r.splice(o,1);e.selection.select(r[0])})(e,r),e.nodeChanged()},re=(e,t)=>s(t)&&"ephox-embed-iri"===t&&s(W(e)),oe=(e,t)=>((e,t)=>e.width!==t.width||e.height!==t.height)(e,t)&&re(t.source,e.type),ae=e=>{const t=(e=>{const t=e.selection.getNode(),r=H(t)?e.serializer.serialize(t,{selection:!0}):"",o=D(r,e.schema),a=(()=>{if(re(o.source,o.type)){const r=e.dom.getRect(t);return{width:r.w.toString().replace(/px$/,""),height:r.h.toString().replace(/px$/,"")}}return{}})();return{embed:r,...o,...a}})(e),r=(e=>{let t=e;return{get:()=>t,set:e=>{t=e}}})(t),o=Y(t),a=A(e)?[{type:"sizeinput",name:"dimensions",label:"Constrain proportions",constrain:!0}]:[],s={title:"General",name:"general",items:m([[{name:"source",type:"urlinput",filetype:"media",label:"Source",picker_text:"Browse files"}],a])},i=[];k(e)&&i.push({name:"altsource",type:"urlinput",filetype:"media",label:"Alternative source URL"}),j(e)&&i.push({name:"poster",type:"urlinput",filetype:"image",label:"Media poster (Image URL)"});const n={title:"Advanced",name:"advanced",items:i},c=[s,{title:"Embed",items:[{type:"textarea",name:"embed",label:"Paste your embed code below:"}]}];i.length>0&&c.push(n);const l={type:"tabpanel",tabs:c},u=e.windowManager.open({title:"Insert/Edit Media",size:"normal",body:l,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:t=>{const o=X(t.getData());((e,t,r)=>{var o;t.embed=oe(e,t)&&A(r)?q(r,{...t,embed:""}):I(t.embed??"",t,!1,r.schema),t.embed&&(e.source===t.source||(o=t.source,p(J,o)))?te(r,t.embed):Q(r,t).then(e=>{te(r,e.html)}).catch(Z(r))})(r.get(),o,e),t.close()},onChange:(t,o)=>{switch(o.name){case"source":((t,r)=>{const o=X(r.getData(),"source");t.source!==o.source&&(ee(u,e)({url:o.source,html:""}),Q(e,o).then(ee(u,e)).catch(Z(e)))})(r.get(),t);break;case"embed":(t=>{const r=X(t.getData()),o=D(r.embed??"",e.schema);t.setData(Y(o))})(t);break;case"dimensions":case"altsource":case"poster":((t,r,o)=>{const a=X(t.getData(),r),s=oe(o,a)&&A(e)?{...a,embed:""}:a,i=q(e,s);t.setData(Y({...s,embed:i}))})(t,o.name,r.get())}r.set(X(t.getData()))},initialData:o})};var se=tinymce.util.Tools.resolve("tinymce.Env");const ie=e=>{const t=e.name;return"iframe"===t||"video"===t||"audio"===t},ne=(e,t,r,o=null)=>{const a=e.attr(r);return s(a)?a:p(t,r)?null:o},ce=(e,t,r)=>{const o="img"===t.name||"video"===e.name,a=o?"300":null,s="audio"===e.name?"30":"150",i=o?s:null;t.attr({width:ne(e,r,"width",a),height:ne(e,r,"height",i)})},le=(e,t)=>{const r=t.name,o=new M("img",1);return ue(e,t,o),ce(t,o,{}),o.attr({style:t.attr("style"),src:se.transparentSrc,"data-mce-object":r,class:"mce-object mce-object-"+r}),o},me=(e,t)=>{const r=t.name,o=new M("span",1);o.attr({contentEditable:"false",style:t.attr("style"),"data-mce-object":r,class:"mce-preview-object mce-object-"+r}),ue(e,t,o);const a=e.dom.parseStyle(t.attr("style")??""),i=new M(r,1);if(ce(t,i,a),i.attr({src:t.attr("src"),style:t.attr("style"),class:t.attr("class")}),"iframe"===r)i.attr({allowfullscreen:t.attr("allowfullscreen"),frameborder:"0",sandbox:t.attr("sandbox"),referrerpolicy:t.attr("referrerpolicy")});else{l(["controls","crossorigin","currentTime","loop","muted","poster","preload"],e=>{i.attr(e,t.attr(e))});const a=o.attr("data-mce-html");s(a)&&((e,t,r,o)=>{const a=P(e.schema).parse(o,{context:t});for(;a.firstChild;)r.append(a.firstChild)})(e,r,i,unescape(a))}const n=new M("span",1);return n.attr("class","mce-shim"),o.append(i),o.append(n),o},ue=(e,t,r)=>{const o=t.attributes??[];let a=o.length;for(;a--;){const t=o[a].name;let s=o[a].value;"width"===t||"height"===t||"style"===t||g(t,"data-mce-")||("data"!==t&&"src"!==t||(s=e.convertURL(s,t)),r.attr("data-mce-p-"+t,s))}const s=N({inner:!0},e.schema),i=new M("div",1);l(t.children(),e=>i.append(e));const n=s.serialize(i);n&&(r.attr("data-mce-html",escape(n)),r.empty())},de=e=>{const t=e.attr("class");return r(t)&&/\btiny-pageembed\b/.test(t)},he=e=>{let t=e;for(;t=t.parent;)if(t.attr("data-ephox-embed-iri")||de(t))return!0;return!1},pe=(e,t,r)=>{const o=(0,e.options.get)("xss_sanitization"),a=x(e);return P(e.schema,{sanitize:o,validate:a}).parse(r,{context:t})},ge=e=>t=>{const r=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",r),r(),()=>{e.off("NodeChange",r)}};e.add("media",e=>((e=>{const t=e.options.register;t("audio_template_callback",{processor:"function"}),t("video_template_callback",{processor:"function"}),t("iframe_template_callback",{processor:"function"}),t("media_live_embeds",{processor:"boolean",default:!0}),t("media_filter_html",{processor:"boolean",default:!0}),t("media_url_resolver",{processor:"function"}),t("media_alt_source",{processor:"boolean",default:!0}),t("media_poster",{processor:"boolean",default:!0}),t("media_dimensions",{processor:"boolean",default:!0})})(e),(e=>{e.addCommand("mceMedia",()=>{ae(e)})})(e),(e=>{const t=()=>e.execCommand("mceMedia");e.ui.registry.addToggleButton("media",{tooltip:"Insert/edit media",icon:"embed",onAction:t,onSetup:t=>{const r=e.selection;t.setActive(H(r.getNode()));const o=r.selectorChangedWithUnbind("img[data-mce-object],span[data-mce-object],div[data-ephox-embed-iri]",t.setActive).unbind,a=ge(e)(t);return()=>{o(),a()}}}),e.ui.registry.addMenuItem("media",{icon:"embed",text:"Media...",onAction:t,onSetup:ge(e)})})(e),(e=>{e.on("ResolveName",e=>{let t;1===e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)})})(e),(e=>{e.on("PreInit",()=>{const{schema:t,serializer:r,parser:o}=e,a=t.getBoolAttrs();l("webkitallowfullscreen mozallowfullscreen".split(" "),e=>{a[e]={}}),((e,t)=>{const r=u(e);for(let o=0,a=r.length;o<a;o++){const a=r[o];t(e[a],a)}})({embed:["wmode"]},(e,r)=>{const o=t.getElementRule(r);o&&l(e,e=>{o.attributes[e]={},o.attributesOrder.push(e)})}),o.addNodeFilter("iframe,video,audio,object,embed",(e=>t=>{let r,o=t.length;for(;o--;)r=t[o],r.parent&&(r.parent.attr("data-mce-object")||(ie(r)&&v(e)?he(r)||r.replace(me(e,r)):he(r)||r.replace(le(e,r))))})(e)),r.addAttributeFilter("data-mce-object",(t,r)=>{let o=t.length;for(;o--;){const a=t[o];if(!a.parent)continue;const s=a.attr(r),i=new M(s,1);if("audio"!==s){const e=a.attr("class");e&&-1!==e.indexOf("mce-preview-object")&&a.firstChild?i.attr({width:a.firstChild.attr("width"),height:a.firstChild.attr("height")}):i.attr({width:a.attr("width"),height:a.attr("height")})}i.attr({style:a.attr("style")});const n=a.attributes??[];let c=n.length;for(;c--;){const e=n[c].name;0===e.indexOf("data-mce-p-")&&i.attr(e.substr(11),n[c].value)}const m=a.attr("data-mce-html");if(m){const t=pe(e,s,unescape(m));l(t.children(),e=>i.append(e))}a.replace(i)}})}),e.on("SetContent",()=>{const t=e.dom;l(t.select("span.mce-preview-object"),e=>{0===t.select("span.mce-shim",e).length&&t.add(e,"span",{class:"mce-shim"})})})})(e),(e=>{e.on("mousedown",t=>{const r=e.dom.getParent(t.target,".mce-preview-object");r&&"2"===e.dom.getAttrib(r,"data-mce-selected")&&t.stopImmediatePropagation()}),e.on("click keyup touchend",()=>{const t=e.selection.getNode();t&&e.dom.hasClass(t,"mce-preview-object")&&e.dom.getAttrib(t,"data-mce-selected")&&t.setAttribute("data-mce-selected","2")}),e.on("ObjectResized",t=>{const r=t.target;if(r.getAttribute("data-mce-object")){let o=r.getAttribute("data-mce-html");o&&(o=unescape(o),r.setAttribute("data-mce-html",escape(I(o,{width:String(t.width),height:String(t.height)},!1,e.schema))))}})})(e),(e=>({showDialog:()=>{ae(e)}}))(e)))}();
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TinyMCE version 8.5.0 (2026-04-29)
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
(function () {
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
|
9
|
+
|
|
10
|
+
/* eslint-disable @typescript-eslint/no-wrapper-object-types */
|
|
11
|
+
const isSimpleType = (type) => (value) => typeof value === type;
|
|
12
|
+
const isBoolean = isSimpleType('boolean');
|
|
13
|
+
const isNumber = isSimpleType('number');
|
|
14
|
+
|
|
15
|
+
const option = (name) => (editor) => editor.options.get(name);
|
|
16
|
+
const register$2 = (editor) => {
|
|
17
|
+
const registerOption = editor.options.register;
|
|
18
|
+
registerOption('nonbreaking_force_tab', {
|
|
19
|
+
processor: (value) => {
|
|
20
|
+
if (isBoolean(value)) {
|
|
21
|
+
return { value: value ? 3 : 0, valid: true };
|
|
22
|
+
}
|
|
23
|
+
else if (isNumber(value)) {
|
|
24
|
+
return { value, valid: true };
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return { valid: false, message: 'Must be a boolean or number.' };
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
default: false
|
|
31
|
+
});
|
|
32
|
+
registerOption('nonbreaking_wrap', {
|
|
33
|
+
processor: 'boolean',
|
|
34
|
+
default: true
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
const getKeyboardSpaces = option('nonbreaking_force_tab');
|
|
38
|
+
const wrapNbsps = option('nonbreaking_wrap');
|
|
39
|
+
|
|
40
|
+
const stringRepeat = (string, repeats) => {
|
|
41
|
+
let str = '';
|
|
42
|
+
for (let index = 0; index < repeats; index++) {
|
|
43
|
+
str += string;
|
|
44
|
+
}
|
|
45
|
+
return str;
|
|
46
|
+
};
|
|
47
|
+
const isVisualCharsEnabled = (editor) => editor.plugins.visualchars ? editor.plugins.visualchars.isEnabled() : false;
|
|
48
|
+
const insertNbsp = (editor, times) => {
|
|
49
|
+
const classes = () => isVisualCharsEnabled(editor) ? 'mce-nbsp-wrap mce-nbsp' : 'mce-nbsp-wrap';
|
|
50
|
+
const nbspSpan = () => `<span class="${classes()}" contenteditable="false">${stringRepeat(' ', times)}</span>`;
|
|
51
|
+
const shouldWrap = wrapNbsps(editor);
|
|
52
|
+
const html = shouldWrap || editor.plugins.visualchars ? nbspSpan() : stringRepeat(' ', times);
|
|
53
|
+
editor.undoManager.transact(() => editor.insertContent(html));
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const register$1 = (editor) => {
|
|
57
|
+
editor.addCommand('mceNonBreaking', () => {
|
|
58
|
+
insertNbsp(editor, 1);
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
var global = tinymce.util.Tools.resolve('tinymce.util.VK');
|
|
63
|
+
|
|
64
|
+
const setup = (editor) => {
|
|
65
|
+
const spaces = getKeyboardSpaces(editor);
|
|
66
|
+
if (spaces > 0) {
|
|
67
|
+
editor.on('keydown', (e) => {
|
|
68
|
+
if (e.keyCode === global.TAB && !e.isDefaultPrevented()) {
|
|
69
|
+
if (e.shiftKey) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
e.preventDefault();
|
|
73
|
+
e.stopImmediatePropagation();
|
|
74
|
+
insertNbsp(editor, spaces);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const onSetupEditable = (editor) => (api) => {
|
|
81
|
+
const nodeChanged = () => {
|
|
82
|
+
api.setEnabled(editor.selection.isEditable());
|
|
83
|
+
};
|
|
84
|
+
editor.on('NodeChange', nodeChanged);
|
|
85
|
+
nodeChanged();
|
|
86
|
+
return () => {
|
|
87
|
+
editor.off('NodeChange', nodeChanged);
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
const register = (editor) => {
|
|
91
|
+
const onAction = () => editor.execCommand('mceNonBreaking');
|
|
92
|
+
editor.ui.registry.addButton('nonbreaking', {
|
|
93
|
+
icon: 'non-breaking',
|
|
94
|
+
tooltip: 'Nonbreaking space',
|
|
95
|
+
onAction,
|
|
96
|
+
onSetup: onSetupEditable(editor)
|
|
97
|
+
});
|
|
98
|
+
editor.ui.registry.addMenuItem('nonbreaking', {
|
|
99
|
+
icon: 'non-breaking',
|
|
100
|
+
text: 'Nonbreaking space',
|
|
101
|
+
onAction,
|
|
102
|
+
onSetup: onSetupEditable(editor)
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* This class contains all core logic for the nonbreaking plugin.
|
|
108
|
+
*
|
|
109
|
+
* @class tinymce.nonbreaking.Plugin
|
|
110
|
+
* @private
|
|
111
|
+
*/
|
|
112
|
+
var Plugin = () => {
|
|
113
|
+
global$1.add('nonbreaking', (editor) => {
|
|
114
|
+
register$2(editor);
|
|
115
|
+
register$1(editor);
|
|
116
|
+
register(editor);
|
|
117
|
+
setup(editor);
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
Plugin();
|
|
122
|
+
/** *****
|
|
123
|
+
* DO NOT EXPORT ANYTHING
|
|
124
|
+
*
|
|
125
|
+
* IF YOU DO ROLLUP WILL LEAVE A GLOBAL ON THE PAGE
|
|
126
|
+
*******/
|
|
127
|
+
|
|
128
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=n=>e=>typeof e===n,o=e("boolean"),a=e("number"),t=n=>e=>e.options.get(n),i=t("nonbreaking_force_tab"),s=t("nonbreaking_wrap"),r=(n,e)=>{let o="";for(let a=0;a<e;a++)o+=n;return o},c=(n,e)=>{const o=s(n)||n.plugins.visualchars?`<span class="${(n=>!!n.plugins.visualchars&&n.plugins.visualchars.isEnabled())(n)?"mce-nbsp-wrap mce-nbsp":"mce-nbsp-wrap"}" contenteditable="false">${r(" ",e)}</span>`:r(" ",e);n.undoManager.transact(()=>n.insertContent(o))};var l=tinymce.util.Tools.resolve("tinymce.util.VK");const u=n=>e=>{const o=()=>{e.setEnabled(n.selection.isEditable())};return n.on("NodeChange",o),o(),()=>{n.off("NodeChange",o)}};n.add("nonbreaking",n=>{(n=>{const e=n.options.register;e("nonbreaking_force_tab",{processor:n=>o(n)?{value:n?3:0,valid:!0}:a(n)?{value:n,valid:!0}:{valid:!1,message:"Must be a boolean or number."},default:!1}),e("nonbreaking_wrap",{processor:"boolean",default:!0})})(n),(n=>{n.addCommand("mceNonBreaking",()=>{c(n,1)})})(n),(n=>{const e=()=>n.execCommand("mceNonBreaking");n.ui.registry.addButton("nonbreaking",{icon:"non-breaking",tooltip:"Nonbreaking space",onAction:e,onSetup:u(n)}),n.ui.registry.addMenuItem("nonbreaking",{icon:"non-breaking",text:"Nonbreaking space",onAction:e,onSetup:u(n)})})(n),(n=>{const e=i(n);e>0&&n.on("keydown",o=>{if(o.keyCode===l.TAB&&!o.isDefaultPrevented()){if(o.shiftKey)return;o.preventDefault(),o.stopImmediatePropagation(),c(n,e)}})})(n)})}();
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TinyMCE version 8.5.0 (2026-04-29)
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
(function () {
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
|
9
|
+
|
|
10
|
+
var global = tinymce.util.Tools.resolve('tinymce.Env');
|
|
11
|
+
|
|
12
|
+
const option = (name) => (editor) => editor.options.get(name);
|
|
13
|
+
const register$2 = (editor) => {
|
|
14
|
+
const registerOption = editor.options.register;
|
|
15
|
+
registerOption('pagebreak_separator', {
|
|
16
|
+
processor: 'string',
|
|
17
|
+
default: '<!-- pagebreak -->'
|
|
18
|
+
});
|
|
19
|
+
registerOption('pagebreak_split_block', {
|
|
20
|
+
processor: 'boolean',
|
|
21
|
+
default: false
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const getSeparatorHtml = option('pagebreak_separator');
|
|
25
|
+
const shouldSplitBlock = option('pagebreak_split_block');
|
|
26
|
+
|
|
27
|
+
const pageBreakClass = 'mce-pagebreak';
|
|
28
|
+
const getPlaceholderHtml = (shouldSplitBlock) => {
|
|
29
|
+
const html = `<img src="${global.transparentSrc}" class="${pageBreakClass}" data-mce-resize="false" data-mce-placeholder />`;
|
|
30
|
+
return shouldSplitBlock ? `<p>${html}</p>` : html;
|
|
31
|
+
};
|
|
32
|
+
const setup$1 = (editor) => {
|
|
33
|
+
const separatorHtml = getSeparatorHtml(editor);
|
|
34
|
+
const shouldSplitBlock$1 = () => shouldSplitBlock(editor);
|
|
35
|
+
const pageBreakSeparatorRegExp = new RegExp(separatorHtml.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, (a) => {
|
|
36
|
+
return '\\' + a;
|
|
37
|
+
}), 'gi');
|
|
38
|
+
editor.on('BeforeSetContent', (e) => {
|
|
39
|
+
e.content = e.content.replace(pageBreakSeparatorRegExp, getPlaceholderHtml(shouldSplitBlock$1()));
|
|
40
|
+
});
|
|
41
|
+
editor.on('PreInit', () => {
|
|
42
|
+
editor.serializer.addNodeFilter('img', (nodes) => {
|
|
43
|
+
let i = nodes.length, node, className;
|
|
44
|
+
while (i--) {
|
|
45
|
+
node = nodes[i];
|
|
46
|
+
className = node.attr('class');
|
|
47
|
+
if (className && className.indexOf(pageBreakClass) !== -1) {
|
|
48
|
+
// Replace parent block node if pagebreak_split_block is enabled
|
|
49
|
+
const parentNode = node.parent;
|
|
50
|
+
if (parentNode && editor.schema.getBlockElements()[parentNode.name] && shouldSplitBlock$1()) {
|
|
51
|
+
parentNode.type = 3;
|
|
52
|
+
parentNode.value = separatorHtml;
|
|
53
|
+
parentNode.raw = true;
|
|
54
|
+
node.remove();
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
node.type = 3;
|
|
58
|
+
node.value = separatorHtml;
|
|
59
|
+
node.raw = true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const register$1 = (editor) => {
|
|
67
|
+
editor.addCommand('mcePageBreak', () => {
|
|
68
|
+
editor.insertContent(getPlaceholderHtml(shouldSplitBlock(editor)));
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const setup = (editor) => {
|
|
73
|
+
editor.on('ResolveName', (e) => {
|
|
74
|
+
if (e.target.nodeName === 'IMG' && editor.dom.hasClass(e.target, pageBreakClass)) {
|
|
75
|
+
e.name = 'pagebreak';
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const onSetupEditable = (editor) => (api) => {
|
|
81
|
+
const nodeChanged = () => {
|
|
82
|
+
api.setEnabled(editor.selection.isEditable());
|
|
83
|
+
};
|
|
84
|
+
editor.on('NodeChange', nodeChanged);
|
|
85
|
+
nodeChanged();
|
|
86
|
+
return () => {
|
|
87
|
+
editor.off('NodeChange', nodeChanged);
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
const register = (editor) => {
|
|
91
|
+
const onAction = () => editor.execCommand('mcePageBreak');
|
|
92
|
+
editor.ui.registry.addButton('pagebreak', {
|
|
93
|
+
icon: 'page-break',
|
|
94
|
+
tooltip: 'Page break',
|
|
95
|
+
onAction,
|
|
96
|
+
onSetup: onSetupEditable(editor)
|
|
97
|
+
});
|
|
98
|
+
editor.ui.registry.addMenuItem('pagebreak', {
|
|
99
|
+
text: 'Page break',
|
|
100
|
+
icon: 'page-break',
|
|
101
|
+
onAction,
|
|
102
|
+
onSetup: onSetupEditable(editor)
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
var Plugin = () => {
|
|
107
|
+
global$1.add('pagebreak', (editor) => {
|
|
108
|
+
register$2(editor);
|
|
109
|
+
register$1(editor);
|
|
110
|
+
register(editor);
|
|
111
|
+
setup$1(editor);
|
|
112
|
+
setup(editor);
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
Plugin();
|
|
117
|
+
/** *****
|
|
118
|
+
* DO NOT EXPORT ANYTHING
|
|
119
|
+
*
|
|
120
|
+
* IF YOU DO ROLLUP WILL LEAVE A GLOBAL ON THE PAGE
|
|
121
|
+
*******/
|
|
122
|
+
|
|
123
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=tinymce.util.Tools.resolve("tinymce.Env");const t=e=>a=>a.options.get(e),n=t("pagebreak_separator"),o=t("pagebreak_split_block"),r="mce-pagebreak",s=e=>{const t=`<img src="${a.transparentSrc}" class="${r}" data-mce-resize="false" data-mce-placeholder />`;return e?`<p>${t}</p>`:t},c=e=>a=>{const t=()=>{a.setEnabled(e.selection.isEditable())};return e.on("NodeChange",t),t(),()=>{e.off("NodeChange",t)}};e.add("pagebreak",e=>{(e=>{const a=e.options.register;a("pagebreak_separator",{processor:"string",default:"\x3c!-- pagebreak --\x3e"}),a("pagebreak_split_block",{processor:"boolean",default:!1})})(e),(e=>{e.addCommand("mcePageBreak",()=>{e.insertContent(s(o(e)))})})(e),(e=>{const a=()=>e.execCommand("mcePageBreak");e.ui.registry.addButton("pagebreak",{icon:"page-break",tooltip:"Page break",onAction:a,onSetup:c(e)}),e.ui.registry.addMenuItem("pagebreak",{text:"Page break",icon:"page-break",onAction:a,onSetup:c(e)})})(e),(e=>{const a=n(e),t=()=>o(e),c=new RegExp(a.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,e=>"\\"+e),"gi");e.on("BeforeSetContent",e=>{e.content=e.content.replace(c,s(t()))}),e.on("PreInit",()=>{e.serializer.addNodeFilter("img",n=>{let o,s,c=n.length;for(;c--;)if(o=n[c],s=o.attr("class"),s&&-1!==s.indexOf(r)){const n=o.parent;if(n&&e.schema.getBlockElements()[n.name]&&t()){n.type=3,n.value=a,n.raw=!0,o.remove();continue}o.type=3,o.value=a,o.raw=!0}})})})(e),(e=>{e.on("ResolveName",a=>{"IMG"===a.target.nodeName&&e.dom.hasClass(a.target,r)&&(a.name="pagebreak")})})(e)})}();
|