json-object-editor 0.10.312 → 0.10.400
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/CHANGELOG.md +8 -0
- package/best-practices.md +0 -0
- package/css/joe-styles.css +59 -1
- package/css/joe.css +59 -1
- package/js/JsonObjectEditor.jquery.craydent.js +231 -39
- package/js/joe-full.js +562 -50
- package/js/joe.js +231 -39
- package/js/plugins/48_tinymce.min.js +11 -0
- package/js/plugins/tinymce/CHANGELOG.md +3738 -0
- package/js/plugins/tinymce/icons/default/icons.min.js +1 -0
- package/js/plugins/tinymce/js/tinymce/icons/default/icons.min.js +1 -0
- package/js/plugins/tinymce/js/tinymce/langs/README.md +3 -0
- package/js/plugins/tinymce/js/tinymce/license.md +6 -0
- package/js/plugins/tinymce/js/tinymce/models/dom/model.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/accordion/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/advlist/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/anchor/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/autolink/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/autoresize/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/autosave/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/charmap/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/code/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/codesample/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/directionality/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/emoticons/js/emojiimages.js +1 -0
- package/js/plugins/tinymce/js/tinymce/plugins/emoticons/js/emojiimages.min.js +3 -0
- package/js/plugins/tinymce/js/tinymce/plugins/emoticons/js/emojis.js +1 -0
- package/js/plugins/tinymce/js/tinymce/plugins/emoticons/js/emojis.min.js +2 -0
- package/js/plugins/tinymce/js/tinymce/plugins/emoticons/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/fullscreen/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ar.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ca.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/cs.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/da.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/de.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/el.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/en.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/es.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/eu.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/fa.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/fi.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/he_IL.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/hi.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/hr.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/id.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/it.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ja.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/kk.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ms.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/nl.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/pl.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ro.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/ru.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/sk.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/th_TH.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/tr.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/uk.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/vi.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +87 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +93 -0
- package/js/plugins/tinymce/js/tinymce/plugins/help/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/image/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/importcss/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/insertdatetime/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/link/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/lists/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/media/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/nonbreaking/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/pagebreak/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/preview/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/quickbars/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/save/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/searchreplace/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/table/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/visualblocks/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/visualchars/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/plugins/wordcount/plugin.min.js +4 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/dark/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/dark/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/default/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/default/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/document/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/document/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/tinymce-5/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/tinymce-5/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/tinymce-5-dark/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/tinymce-5-dark/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/writer/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/content/writer/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/content.inline.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/skin.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/skin.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/content.inline.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/skin.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/content.inline.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/skin.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/content.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/js/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/js/tinymce/themes/silver/theme.min.js +332 -0
- package/js/plugins/tinymce/js/tinymce/tinymce.d.ts +3350 -0
- package/js/plugins/tinymce/js/tinymce/tinymce.min.js +331 -0
- package/js/plugins/tinymce/langs/README.md +3 -0
- package/js/plugins/tinymce/license.md +6 -0
- package/js/plugins/tinymce/models/dom/model.min.js +4 -0
- package/js/plugins/tinymce/plugins/accordion/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/advlist/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/anchor/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/autolink/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/autoresize/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/autosave/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/charmap/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/code/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/codesample/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/directionality/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/emoticons/js/emojiimages.js +1 -0
- package/js/plugins/tinymce/plugins/emoticons/js/emojiimages.min.js +3 -0
- package/js/plugins/tinymce/plugins/emoticons/js/emojis.js +1 -0
- package/js/plugins/tinymce/plugins/emoticons/js/emojis.min.js +2 -0
- package/js/plugins/tinymce/plugins/emoticons/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/fullscreen/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ar.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ca.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/cs.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/da.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/de.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/el.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/en.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/es.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/eu.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/fa.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/fi.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/he_IL.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/hi.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/hr.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/id.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/it.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ja.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/kk.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ms.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/nl.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/pl.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ro.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/ru.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/sk.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/th_TH.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/tr.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/uk.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/vi.js +93 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +87 -0
- package/js/plugins/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +93 -0
- package/js/plugins/tinymce/plugins/help/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/image/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/importcss/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/insertdatetime/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/link/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/lists/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/media/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/nonbreaking/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/pagebreak/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/preview/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/quickbars/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/save/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/searchreplace/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/table/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/visualblocks/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/visualchars/plugin.min.js +4 -0
- package/js/plugins/tinymce/plugins/wordcount/plugin.min.js +4 -0
- package/js/plugins/tinymce/skins/content/dark/content.js +1 -0
- package/js/plugins/tinymce/skins/content/dark/content.min.css +1 -0
- package/js/plugins/tinymce/skins/content/default/content.js +1 -0
- package/js/plugins/tinymce/skins/content/default/content.min.css +1 -0
- package/js/plugins/tinymce/skins/content/document/content.js +1 -0
- package/js/plugins/tinymce/skins/content/document/content.min.css +1 -0
- package/js/plugins/tinymce/skins/content/tinymce-5/content.js +1 -0
- package/js/plugins/tinymce/skins/content/tinymce-5/content.min.css +1 -0
- package/js/plugins/tinymce/skins/content/tinymce-5-dark/content.js +1 -0
- package/js/plugins/tinymce/skins/content/tinymce-5-dark/content.min.css +1 -0
- package/js/plugins/tinymce/skins/content/writer/content.js +1 -0
- package/js/plugins/tinymce/skins/content/writer/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/content.inline.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/content.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/skin.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/skin.min.css +23 -0
- package/js/plugins/tinymce/skins/ui/oxide/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/content.inline.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/content.inline.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/content.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/skin.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/skin.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide - Copy/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/content.inline.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/content.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/skin.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/content.inline.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/content.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/skin.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/content.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +1 -0
- package/js/plugins/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
- package/js/plugins/tinymce/themes/silver/theme.min.js +332 -0
- package/js/plugins/tinymce/tinymce.d.ts +3350 -0
- package/js/plugins/tinymce/tinymce.min.js +331 -0
- package/js/plugins/tinymce.min.js +331 -11
- package/package.json +1 -1
- package/server/modules/Storage.js +58 -1
- package/server/schemas/status.js +3 -1
package/js/joe.js
CHANGED
|
@@ -482,6 +482,7 @@ function JsonObjectEditor(specs){
|
|
|
482
482
|
respond_timeout = setTimeout(self.respond,200);
|
|
483
483
|
}
|
|
484
484
|
});
|
|
485
|
+
self.initButtons();
|
|
485
486
|
initialized = true;
|
|
486
487
|
self.respond();
|
|
487
488
|
endLogGroup();
|
|
@@ -489,7 +490,38 @@ function JsonObjectEditor(specs){
|
|
|
489
490
|
|
|
490
491
|
callback && callback();
|
|
491
492
|
};
|
|
493
|
+
this.initButtons = function(){
|
|
494
|
+
// 🧩 Joe Button Universal Click Handler
|
|
495
|
+
$(document).on('click', 'joe-button', function(e) {
|
|
496
|
+
e.preventDefault();
|
|
492
497
|
|
|
498
|
+
var $btn = $(this);
|
|
499
|
+
var actionName = $btn.attr('action');
|
|
500
|
+
|
|
501
|
+
if (!actionName) {
|
|
502
|
+
console.warn('No action defined for joe-button');
|
|
503
|
+
return;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
var currentObject = _joe.current ? _joe.current.object : null;
|
|
507
|
+
var currentSchema = _joe.current && _joe.current.schema;
|
|
508
|
+
var currentSchemaMethods = currentSchema ? currentSchema.methods : null;
|
|
509
|
+
|
|
510
|
+
// Priority 1: Backend async
|
|
511
|
+
if (JOE.async && typeof JOE.async[actionName] === 'function') {
|
|
512
|
+
JOE.async[actionName](currentObject, e);
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
// Priority 2: Schema-defined client methods
|
|
517
|
+
if (currentSchemaMethods && typeof currentSchemaMethods[actionName] === 'function') {
|
|
518
|
+
currentSchemaMethods[actionName](currentObject, e);
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
console.warn('No method found for joe-button action:', actionName);
|
|
523
|
+
});
|
|
524
|
+
}
|
|
493
525
|
this.resizeOk = function(){
|
|
494
526
|
if(!$c.isMobile()){
|
|
495
527
|
return true;
|
|
@@ -3375,7 +3407,9 @@ this.renderHTMLContent = function(specs){
|
|
|
3375
3407
|
case 'color':
|
|
3376
3408
|
html+= self.renderColorField(prop);
|
|
3377
3409
|
break;
|
|
3378
|
-
|
|
3410
|
+
case 'button':
|
|
3411
|
+
html += self.renderButtonField(prop);
|
|
3412
|
+
break;
|
|
3379
3413
|
case 'group':
|
|
3380
3414
|
html+= self.renderCheckboxGroupField(prop);
|
|
3381
3415
|
break;
|
|
@@ -5571,53 +5605,110 @@ this.renderHTMLContent = function(specs){
|
|
|
5571
5605
|
var tinyconfig = {};
|
|
5572
5606
|
this.renderTinyMCEField = function(prop){
|
|
5573
5607
|
/*|{
|
|
5574
|
-
tags:'render,field,wysiwyg'
|
|
5608
|
+
tags:'render,field,wysiwyg,tinyMCE',
|
|
5575
5609
|
}|*/
|
|
5576
|
-
|
|
5577
|
-
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5610
|
+
const locked = self.propAsFuncOrValue(prop.locked) ? 'disabled' : '';
|
|
5611
|
+
const heightStyle = (prop.height) ? `style="height:${prop.height};"` : '';
|
|
5612
|
+
const editor_id = cuid();
|
|
5613
|
+
|
|
5614
|
+
const html =
|
|
5615
|
+
`<div class="joe-tinymce-holder joe-texteditor-field joe-field wysiwyg-field"
|
|
5616
|
+
data-texteditor_id="${editor_id}"
|
|
5617
|
+
data-ftype="tinymce"
|
|
5618
|
+
data-name="${prop.name}">
|
|
5619
|
+
<textarea id="${editor_id}" class="joe-tinymce" ${locked} ${heightStyle}>${prop.value || ''}</textarea>
|
|
5620
|
+
</div>`;
|
|
5621
|
+
|
|
5584
5622
|
return html;
|
|
5585
5623
|
};
|
|
5586
5624
|
|
|
5587
5625
|
this.readyTinyMCEs = function() {
|
|
5588
5626
|
tinymce.init({
|
|
5589
5627
|
selector: ".joe-tinymce",
|
|
5590
|
-
|
|
5591
|
-
|
|
5592
|
-
|
|
5593
|
-
|
|
5594
|
-
|
|
5595
|
-
|
|
5596
|
-
|
|
5597
|
-
|
|
5598
|
-
|
|
5599
|
-
|
|
5600
|
-
|
|
5601
|
-
|
|
5602
|
-
|
|
5603
|
-
|
|
5604
|
-
|
|
5605
|
-
|
|
5606
|
-
|
|
5607
|
-
|
|
5608
|
-
|
|
5609
|
-
|
|
5610
|
-
|
|
5611
|
-
|
|
5628
|
+
base_url: '/JsonObjectEditor/js/plugins/tinymce',
|
|
5629
|
+
suffix: '.min',
|
|
5630
|
+
license_key: 'gpl',
|
|
5631
|
+
browser_spellcheck: true,
|
|
5632
|
+
contextmenu: false,
|
|
5633
|
+
content_style: `
|
|
5634
|
+
body {
|
|
5635
|
+
font-size: 16px;
|
|
5636
|
+
line-height: 21px;
|
|
5637
|
+
}
|
|
5638
|
+
`,
|
|
5639
|
+
plugins: ['table', 'wordcount', 'link', 'image', 'code', 'searchreplace', 'autoresize', 'fullscreen', 'lists'],
|
|
5640
|
+
|
|
5641
|
+
toolbar: 'fullscreen | undo redo | h1 h2 h3 h4 h5 |bold italic removeformat | bullist numlist outdent indent | code',
|
|
5642
|
+
|
|
5643
|
+
// Local TinyMCE asset paths
|
|
5644
|
+
skin_url: '/JsonObjectEditor/js/plugins/tinymce/skins/ui/oxide/',
|
|
5645
|
+
content_css:'/JsonObjectEditor/js/plugins/tinymce/skins/content/default/content.css',
|
|
5646
|
+
theme_url: '/JsonObjectEditor/js/plugins/tinymce/themes/silver/theme.min.js',
|
|
5647
|
+
icons_url: '/JsonObjectEditor/js/plugins/tinymce/icons/default/icons.min.js',
|
|
5648
|
+
|
|
5649
|
+
// Optional: hook into instance ready for dynamic height
|
|
5650
|
+
init_instance_callback: function(editor) {
|
|
5651
|
+
const textarea = editor.targetElm;
|
|
5652
|
+
const fieldContainer = textarea.closest('.wysiwyg-field');
|
|
5653
|
+
if (fieldContainer) {
|
|
5654
|
+
const fieldName = fieldContainer.getAttribute('data-name');
|
|
5655
|
+
const field = self.getField(fieldName);
|
|
5656
|
+
if (field && field.height) {
|
|
5657
|
+
const iframe = editor.getContainer().querySelector('iframe');
|
|
5658
|
+
if (iframe) {
|
|
5659
|
+
iframe.style.height = `${field.height}px`;
|
|
5660
|
+
}
|
|
5661
|
+
}
|
|
5662
|
+
}
|
|
5612
5663
|
}
|
|
5613
|
-
|
|
5614
|
-
});
|
|
5664
|
+
});
|
|
5615
5665
|
|
|
5616
5666
|
};
|
|
5667
|
+
this.cleanTinyMCEs = function(html) {
|
|
5668
|
+
const temp = document.createElement('div');
|
|
5669
|
+
temp.innerHTML = html;
|
|
5670
|
+
|
|
5671
|
+
// Loop through all elements
|
|
5672
|
+
temp.querySelectorAll('*').forEach(el => {
|
|
5673
|
+
// Remove all data-* attributes
|
|
5674
|
+
[...el.attributes].forEach(attr => {
|
|
5675
|
+
if (attr.name.startsWith('data-')) {
|
|
5676
|
+
el.removeAttribute(attr.name);
|
|
5677
|
+
}
|
|
5678
|
+
|
|
5679
|
+
// Optionally clean up some noisy inline styles
|
|
5680
|
+
if (attr.name === 'style') {
|
|
5681
|
+
const styleVal = attr.value.toLowerCase();
|
|
5682
|
+
if (
|
|
5683
|
+
styleVal.includes('font-weight: 400') ||
|
|
5684
|
+
styleVal.includes('font-family') ||
|
|
5685
|
+
styleVal.includes('white-space:pre') ||
|
|
5686
|
+
styleVal.includes('line-height') ||
|
|
5687
|
+
styleVal.includes('margin') ||
|
|
5688
|
+
styleVal.includes('orphans') || // lol
|
|
5689
|
+
styleVal.includes('widows')
|
|
5690
|
+
) {
|
|
5691
|
+
el.removeAttribute('style');
|
|
5692
|
+
}
|
|
5693
|
+
}
|
|
5694
|
+
});
|
|
5695
|
+
|
|
5696
|
+
// Clean up empty span tags (common from Google Docs)
|
|
5697
|
+
if (
|
|
5698
|
+
el.tagName === 'SPAN' &&
|
|
5699
|
+
el.attributes.length === 0 &&
|
|
5700
|
+
el.textContent.trim() === ''
|
|
5701
|
+
) {
|
|
5702
|
+
el.remove();
|
|
5703
|
+
}
|
|
5704
|
+
});
|
|
5705
|
+
|
|
5706
|
+
return temp.innerHTML;
|
|
5707
|
+
}
|
|
5617
5708
|
self.texteditors = [];
|
|
5618
5709
|
|
|
5619
5710
|
this.readyTextEditors = this.readyTinyMCEs;
|
|
5620
|
-
encapsulateFieldType('wysiwyg',self.renderTinyMCEField,{ready:self.readyTextEditors});
|
|
5711
|
+
encapsulateFieldType('wysiwyg',self.renderTinyMCEField,{ready:self.readyTextEditors,clean:this.cleanTinyMCEs});
|
|
5621
5712
|
|
|
5622
5713
|
/*----------------------------->
|
|
5623
5714
|
Y | Object Field
|
|
@@ -5669,7 +5760,59 @@ Y | Object Field
|
|
|
5669
5760
|
var html= 'passthrough';
|
|
5670
5761
|
return html;
|
|
5671
5762
|
};
|
|
5763
|
+
/*----------------------------->
|
|
5764
|
+
BTN | BTN Field
|
|
5765
|
+
<-----------------------------*/
|
|
5766
|
+
this.renderButtonField = function(prop) {
|
|
5767
|
+
/*|{
|
|
5768
|
+
tags:'render,field,button',
|
|
5769
|
+
specs:'display,method,color,schema,svg,bgcolor'
|
|
5770
|
+
}|*/
|
|
5771
|
+
var itemObj = self.current.object || {}; // support field functions needing context
|
|
5772
|
+
|
|
5773
|
+
var display = self.propAsFuncOrValue(prop.display, itemObj);
|
|
5774
|
+
var method = self.propAsFuncOrValue(prop.method, itemObj);
|
|
5775
|
+
var color = self.propAsFuncOrValue(prop.color, itemObj);
|
|
5776
|
+
var schema = self.propAsFuncOrValue(prop.schema, itemObj);
|
|
5777
|
+
var svgOverride = self.propAsFuncOrValue(prop.svg, itemObj);
|
|
5778
|
+
var title = self.propAsFuncOrValue(prop.title, itemObj);
|
|
5779
|
+
var bgcolor = self.propAsFuncOrValue(prop.bgcolor, itemObj);
|
|
5780
|
+
var cssclass = self.propAsFuncOrValue(prop.cssclass, itemObj)||' joe-nofloat';
|
|
5781
|
+
var svgMarkup = '';
|
|
5782
|
+
|
|
5783
|
+
// 1. Try to pull menuicon from schema if schema is provided
|
|
5784
|
+
if (schema && _joe && _joe.Schemas && _joe.Schemas[schema] && _joe.Schemas[schema].menuicon) {
|
|
5785
|
+
svgMarkup = _joe.Schemas[schema].menuicon;
|
|
5786
|
+
}
|
|
5787
|
+
|
|
5788
|
+
// 2. Direct SVG overrides schema icon if provided
|
|
5789
|
+
if (svgOverride) {
|
|
5790
|
+
svgMarkup = '<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">' + svgOverride + '</svg>';
|
|
5791
|
+
}
|
|
5672
5792
|
|
|
5793
|
+
// 3. Build the button
|
|
5794
|
+
var styleAttr = bgcolor ? 'style="background-color: ' + bgcolor + ';"' : '';
|
|
5795
|
+
|
|
5796
|
+
var html = '<joe-button class="joe-button joe-field '+cssclass
|
|
5797
|
+
+ (color ? ' joe-' + color + '-button' : '')
|
|
5798
|
+
+ '" name="' + (prop.name || '') + '" '
|
|
5799
|
+
+ (schema ? 'schema="' + schema + '" ' : '')
|
|
5800
|
+
+ (method ? 'action="' + method + '" ' : '')
|
|
5801
|
+
+ (color ? 'color="' + color + '" ' : '')
|
|
5802
|
+
+ (title ? 'title="' + title + '" ' : '')
|
|
5803
|
+
+ styleAttr + ' '
|
|
5804
|
+
+ 'data-btnid="' + (prop.name || '') + '">';
|
|
5805
|
+
|
|
5806
|
+
if (svgMarkup) {
|
|
5807
|
+
html += svgMarkup + ' ';
|
|
5808
|
+
}
|
|
5809
|
+
|
|
5810
|
+
html += (display || "Button") + '</joe-button>';
|
|
5811
|
+
|
|
5812
|
+
return html;
|
|
5813
|
+
};
|
|
5814
|
+
|
|
5815
|
+
encapsulateFieldType('button', self.renderButtonField);
|
|
5673
5816
|
/*----------------------------->
|
|
5674
5817
|
27 | Comments
|
|
5675
5818
|
<-----------------------------*/
|
|
@@ -7881,6 +8024,9 @@ Field Rendering Helpers
|
|
|
7881
8024
|
//var parentFind = $('.joe-overlay.active');
|
|
7882
8025
|
|
|
7883
8026
|
parentFind.find('.joe-field').each(function(){
|
|
8027
|
+
if (this.nodeName.toLowerCase() === 'joe-button') {
|
|
8028
|
+
return true; // Skip buttons, they are action elements only
|
|
8029
|
+
}
|
|
7884
8030
|
if($(this).parents('.objectList-field,.objectlist-field').length){
|
|
7885
8031
|
return true;
|
|
7886
8032
|
}
|
|
@@ -7918,7 +8064,7 @@ Field Rendering Helpers
|
|
|
7918
8064
|
case 'text':
|
|
7919
8065
|
default:
|
|
7920
8066
|
|
|
7921
|
-
prop =
|
|
8067
|
+
prop = this.getAttribute('data-name') || this.getAttribute('name')
|
|
7922
8068
|
if(prop && prop != 'undefined') {//make sure it's suppoesed to be a prop field
|
|
7923
8069
|
switch ($(this).data('ftype')) {
|
|
7924
8070
|
case 'passthrough':
|
|
@@ -7937,8 +8083,13 @@ Field Rendering Helpers
|
|
|
7937
8083
|
object[prop] =(editor)? editor.getData():self.current.object[prop];
|
|
7938
8084
|
break;
|
|
7939
8085
|
case 'tinymce':
|
|
7940
|
-
var editor = tinymce.editors.where({id:$(this).data('texteditor_id')})[0]||false;
|
|
7941
|
-
object[prop] =(editor)? editor.getContent():self.current.object[prop];
|
|
8086
|
+
// var editor = tinymce.editors.where({id:$(this).data('texteditor_id')})[0]||false;
|
|
8087
|
+
// object[prop] =(editor)? editor.getContent():self.current.object[prop];
|
|
8088
|
+
// break;
|
|
8089
|
+
var editorId = this.getAttribute('data-texteditor_id');
|
|
8090
|
+
var editor = window.tinymce?.get(editorId);
|
|
8091
|
+
object[prop] = (editor) ? editor.getContent() : self.current.object[prop];
|
|
8092
|
+
object[prop] = self.cleanTinyMCEs(object[prop]);
|
|
7942
8093
|
break;
|
|
7943
8094
|
|
|
7944
8095
|
case 'multisorter':
|
|
@@ -8068,7 +8219,48 @@ Field Rendering Helpers
|
|
|
8068
8219
|
return constructed;
|
|
8069
8220
|
//return object;
|
|
8070
8221
|
};
|
|
8071
|
-
|
|
8222
|
+
this.Object.getFromServer = function(id, specs, callback) {
|
|
8223
|
+
/*|{
|
|
8224
|
+
featured:true,
|
|
8225
|
+
tags:'load','get'
|
|
8226
|
+
description:'retrieves a fresh object from server and updates Joe current object'
|
|
8227
|
+
}|*/
|
|
8228
|
+
var specs = specs || {};
|
|
8229
|
+
var schemaName = specs.schema || _joe.current.schemaName || (_joe.current.schema && _joe.current.schema.__schemaname);
|
|
8230
|
+
var goto = (specs.goto === false)?false: true;
|
|
8231
|
+
if (!schemaName || !id) {
|
|
8232
|
+
console.warn('Cannot fetch object: missing schema or ID.');
|
|
8233
|
+
if (callback) callback(false);
|
|
8234
|
+
return;
|
|
8235
|
+
}
|
|
8236
|
+
|
|
8237
|
+
var url = '/API/object/' + schemaName + '/_id/' + id;
|
|
8238
|
+
|
|
8239
|
+
$.get(url, function(data) {
|
|
8240
|
+
if (!data || !data._id) {
|
|
8241
|
+
console.warn('No object returned from server.');
|
|
8242
|
+
if (callback) callback(false);
|
|
8243
|
+
return;
|
|
8244
|
+
}
|
|
8245
|
+
var toUpdate = _joe.search(id)[0] || false;
|
|
8246
|
+
if (toUpdate) {
|
|
8247
|
+
$.extend(true, toUpdate, data);
|
|
8248
|
+
}
|
|
8249
|
+
if(goto){
|
|
8250
|
+
if(_joe.current.object && _joe.current.object._id == data._id){
|
|
8251
|
+
//already on the same object
|
|
8252
|
+
_joe.current.object = data; // 🛠️ Fresh object loaded
|
|
8253
|
+
|
|
8254
|
+
}
|
|
8255
|
+
var specs = $.extend({},_joe.current.specs||{},{schema:schemaName,force:true}); // 🛠️ Use current view specs if available
|
|
8256
|
+
_joe.show(data, specs); // 🖌️ Full repaint using Joe system
|
|
8257
|
+
}
|
|
8258
|
+
if (callback) callback(true, data);
|
|
8259
|
+
}).fail(function(err) {
|
|
8260
|
+
console.error('Error fetching object from server:', err);
|
|
8261
|
+
if (callback) callback(false);
|
|
8262
|
+
});
|
|
8263
|
+
};
|
|
8072
8264
|
/*-------------------------------------------------------------------->
|
|
8073
8265
|
EXPORT DATA
|
|
8074
8266
|
<--------------------------------------------------------------------*/
|