jodit 3.18.8 → 3.19.2
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/README.md +29 -2
- package/build/jodit.es2018.en.css +125 -124
- package/build/jodit.es2018.en.js +28267 -23413
- package/build/plugins/{speech/speech-recognize → speech-recognize}/speech-recognize.es2018.en.css +1 -1
- package/build/plugins/{speech/speech-recognize/speech-recognize.js → speech-recognize/speech-recognize.es2018.en.js} +139 -128
- package/package.json +22 -22
- package/src/config.ts +75 -0
- package/src/core/constants.ts +3 -0
- package/src/core/dom/dom.ts +34 -0
- package/src/core/helpers/helpers.test.js +31 -25
- package/src/core/helpers/string/i18n.ts +4 -6
- package/src/core/helpers/utils/align.ts +83 -0
- package/src/core/helpers/utils/default-language.ts +1 -1
- package/src/core/helpers/utils/index.ts +11 -9
- package/src/core/helpers/utils/mark-deprecated.ts +1 -1
- package/src/core/helpers/utils/parse-query.ts +1 -1
- package/src/{plugins/print/helpers.ts → core/helpers/utils/print.ts} +6 -2
- package/src/core/helpers/utils/utils.ts +19 -1
- package/src/core/plugin/plugin-system.ts +23 -7
- package/src/core/request/ajax.ts +9 -3
- package/src/core/ui/icon.ts +11 -3
- package/src/index.ts +2 -8
- package/src/langs/ar.js +0 -4
- package/src/langs/cs_cz.js +0 -4
- package/src/langs/de.js +0 -4
- package/src/langs/es.js +0 -4
- package/src/langs/fa.js +0 -4
- package/src/langs/fr.js +0 -4
- package/src/langs/he.js +0 -4
- package/src/langs/hu.js +0 -4
- package/src/langs/id.js +0 -4
- package/src/langs/index.ts +24 -25
- package/src/langs/it.js +0 -4
- package/src/langs/ja.js +0 -4
- package/src/langs/ko.js +0 -4
- package/src/langs/nl.js +0 -4
- package/src/langs/pl.js +0 -4
- package/src/langs/pt_br.js +0 -4
- package/src/langs/ru.js +0 -4
- package/src/langs/tr.js +0 -4
- package/src/langs/zh_cn.js +0 -4
- package/src/langs/zh_tw.js +0 -4
- package/src/modules/dialog/dialog.test.js +2 -0
- package/src/modules/file-browser/config.ts +3 -2
- package/src/modules/file-browser/file-browser.ts +2 -7
- package/src/modules/image-editor/config.ts +6 -0
- package/src/{styles → modules/image-editor}/icons/crop.svg +0 -0
- package/src/{styles → modules/image-editor}/icons/resize.svg +0 -0
- package/src/modules/table/table.test.js +0 -906
- package/src/modules/widget/color-picker/color-picker.ts +2 -0
- package/src/{styles/icons → modules/widget/color-picker}/palette.svg +0 -0
- package/src/modules/widget/file-selector/file-selector.ts +1 -1
- package/src/{styles/icons → plugins/about}/about.svg +0 -0
- package/src/plugins/about/about.ts +6 -1
- package/src/plugins/add-new-line/add-new-line.test.js +219 -0
- package/src/plugins/add-new-line/add-new-line.ts +3 -0
- package/src/plugins/add-new-line/config.ts +3 -0
- package/src/{styles/icons → plugins/add-new-line}/enter.svg +0 -0
- package/src/plugins/{keyboard/backspace → backspace}/backspace.test.js +0 -0
- package/src/plugins/{keyboard/backspace → backspace}/backspace.ts +10 -9
- package/src/plugins/{keyboard/backspace → backspace}/cases/check-join-neighbors.ts +7 -4
- package/src/plugins/{keyboard/backspace → backspace}/cases/check-join-two-lists.ts +6 -2
- package/src/plugins/{keyboard/backspace → backspace}/cases/check-not-collapsed.ts +4 -0
- package/src/plugins/{keyboard/backspace → backspace}/cases/check-remove-char.ts +7 -2
- package/src/plugins/{keyboard/backspace → backspace}/cases/check-remove-content-not-editable.ts +5 -0
- package/src/plugins/{keyboard/backspace → backspace}/cases/check-remove-empty-neighbor.ts +6 -3
- package/src/plugins/{keyboard/backspace → backspace}/cases/check-remove-empty-parent.ts +11 -3
- package/src/plugins/{keyboard/backspace → backspace}/cases/check-remove-unbreakable-element.ts +7 -2
- package/src/plugins/{keyboard/backspace → backspace}/cases/check-table-cell.ts +5 -1
- package/src/plugins/{keyboard/backspace → backspace}/cases/check-unwrap-first-list-item.ts +5 -1
- package/src/plugins/{keyboard/backspace → backspace}/cases/index.ts +4 -0
- package/src/plugins/{keyboard/backspace → backspace}/config.ts +0 -0
- package/src/plugins/{keyboard → backspace}/helpers.ts +1 -36
- package/src/plugins/{keyboard/backspace → backspace}/interface.d.ts +0 -0
- package/src/plugins/bold/bold.ts +11 -0
- package/src/{styles → plugins/bold}/icons/bold.svg +0 -0
- package/src/{styles → plugins/bold}/icons/italic.svg +0 -0
- package/src/{styles → plugins/bold}/icons/strikethrough.svg +0 -0
- package/src/{styles → plugins/bold}/icons/subscript.svg +0 -0
- package/src/{styles → plugins/bold}/icons/superscript.svg +0 -0
- package/src/{styles → plugins/bold}/icons/underline.svg +0 -0
- package/src/plugins/class-span/{icon.svg → class-span.svg} +0 -0
- package/src/plugins/class-span/class-span.ts +5 -2
- package/src/plugins/{fix/clean-html → clean-html}/README.md +0 -0
- package/src/plugins/{fix/clean-html → clean-html}/clean-html.test.js +0 -0
- package/src/plugins/{fix/clean-html → clean-html}/clean-html.ts +7 -3
- package/src/plugins/{fix/clean-html → clean-html}/config.ts +4 -1
- package/src/{styles/icons → plugins/clean-html}/eraser.svg +0 -0
- package/src/plugins/{fix/clean-html → clean-html}/helpers/get-hash.ts +3 -2
- package/src/plugins/{fix/clean-html → clean-html}/helpers/index.ts +1 -1
- package/src/plugins/{fix/clean-html → clean-html}/helpers/remove-format/remove-format-for-collapsed-selection.ts +1 -1
- package/src/plugins/{fix/clean-html → clean-html}/helpers/remove-format/remove-format-for-selection.ts +3 -3
- package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/allow-attributes.ts +1 -1
- package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/fill-empty-paragraph.ts +1 -1
- package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/index.ts +1 -1
- package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/remove-inv-text-nodes.ts +1 -1
- package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/replace-old-tags.ts +1 -1
- package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/sanitize-attributes.ts +2 -2
- package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/try-remove-node.ts +7 -36
- package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/visit-node-walker.ts +3 -2
- package/src/plugins/clipboard/clipboard.ts +19 -10
- package/src/plugins/clipboard/config.ts +6 -0
- package/src/{styles → plugins/clipboard}/icons/copy.svg +0 -0
- package/src/{styles → plugins/clipboard}/icons/cut.svg +0 -0
- package/src/{styles → plugins/clipboard}/icons/paste.svg +0 -0
- package/src/{styles → plugins/clipboard}/icons/select-all.svg +0 -0
- package/src/{styles/icons → plugins/color}/brush.svg +0 -0
- package/src/plugins/color/color.ts +6 -169
- package/src/plugins/color/config.ts +183 -0
- package/src/{styles/icons/copyformat.svg → plugins/copy-format/copy-format.svg} +0 -0
- package/src/plugins/copy-format/copy-format.test.js +223 -0
- package/src/plugins/{clipboard → copy-format}/copy-format.ts +10 -3
- package/src/plugins/copy-format/langs/ar.js +9 -0
- package/src/plugins/copy-format/langs/cs_cz.js +9 -0
- package/src/plugins/copy-format/langs/de.js +9 -0
- package/src/plugins/copy-format/langs/es.js +9 -0
- package/src/plugins/copy-format/langs/fa.js +9 -0
- package/src/plugins/copy-format/langs/fr.js +9 -0
- package/src/plugins/copy-format/langs/he.js +9 -0
- package/src/plugins/{speech/speech-recognize → copy-format}/langs/hu.js +1 -3
- package/src/plugins/{speech/speech-recognize → copy-format}/langs/id.js +1 -3
- package/src/plugins/{speech/speech-recognize → copy-format}/langs/index.ts +0 -0
- package/src/plugins/copy-format/langs/it.js +9 -0
- package/src/plugins/copy-format/langs/ja.js +9 -0
- package/src/plugins/copy-format/langs/ko.js +9 -0
- package/src/plugins/copy-format/langs/nl.js +9 -0
- package/src/plugins/copy-format/langs/pl.js +9 -0
- package/src/plugins/{speech/speech-recognize → copy-format}/langs/pt_br.js +1 -3
- package/src/plugins/copy-format/langs/ru.js +9 -0
- package/src/plugins/copy-format/langs/tr.js +9 -0
- package/src/plugins/{speech/speech-recognize → copy-format}/langs/zh_cn.js +1 -3
- package/src/plugins/copy-format/langs/zh_tw.js +9 -0
- package/src/plugins/{clipboard/drag-and-drop → drag-and-drop}/drag-and-drop.ts +6 -4
- package/src/plugins/drag-and-drop-element/config.ts +22 -0
- package/src/plugins/{clipboard/drag-and-drop-element → drag-and-drop-element}/drag-and-drop-element.test.js +0 -0
- package/src/plugins/{clipboard/drag-and-drop-element → drag-and-drop-element}/drag-and-drop-element.ts +7 -3
- package/src/plugins/{keyboard/enter → enter}/README.md +0 -0
- package/src/plugins/{keyboard/enter → enter}/enter.test.js +0 -0
- package/src/plugins/{keyboard/enter → enter}/enter.ts +7 -3
- package/src/plugins/{keyboard/enter → enter}/helpers/check-br.ts +1 -1
- package/src/plugins/{keyboard/enter → enter}/helpers/check-unsplittable-box.ts +1 -1
- package/src/plugins/{keyboard/enter → enter}/helpers/get-block-wrapper.ts +1 -1
- package/src/plugins/{keyboard/enter → enter}/helpers/has-previous-block.ts +1 -1
- package/src/plugins/{keyboard/enter → enter}/helpers/index.ts +1 -1
- package/src/plugins/{keyboard/enter → enter}/helpers/insert-paragraph.ts +1 -1
- package/src/plugins/{keyboard/enter → enter}/helpers/process-empty-li-leaf.ts +2 -1
- package/src/plugins/{keyboard/enter → enter}/helpers/split-fragment.ts +3 -2
- package/src/plugins/{keyboard/enter → enter}/helpers/wrap-text.ts +1 -1
- package/src/plugins/error-messages/error-messages.ts +3 -0
- package/src/plugins/{media → file}/file.ts +5 -2
- package/src/plugins/focus/focus.ts +3 -0
- package/src/plugins/font/config.ts +151 -0
- package/src/plugins/font/font.ts +6 -134
- package/src/{styles → plugins/font}/icons/font.svg +0 -0
- package/src/{styles → plugins/font}/icons/fontsize.svg +0 -0
- package/src/plugins/format-block/format-block.ts +6 -0
- package/src/{styles/icons → plugins/format-block}/paragraph.svg +0 -0
- package/src/plugins/fullsize/config.ts +73 -0
- package/src/plugins/fullsize/fullsize.test.js +35 -0
- package/src/plugins/fullsize/fullsize.ts +5 -54
- package/src/{styles → plugins/fullsize}/icons/fullsize.svg +0 -0
- package/src/{styles → plugins/fullsize}/icons/shrink.svg +0 -0
- package/src/plugins/hotkeys/config.ts +38 -0
- package/src/plugins/hotkeys/hotkeys.test.js +136 -0
- package/src/plugins/{keyboard → hotkeys}/hotkeys.ts +6 -28
- package/src/{styles/icons → plugins/hr}/hr.svg +0 -0
- package/src/plugins/{insert/insert.test.js → hr/hr.test.js} +0 -0
- package/src/plugins/{insert → hr}/hr.ts +7 -1
- package/src/plugins/iframe/config.ts +0 -21
- package/src/plugins/iframe/iframe.ts +3 -0
- package/src/{styles/icons → plugins/image}/image.svg +0 -0
- package/src/plugins/image/image.ts +6 -0
- package/src/plugins/{image/image-processor → image-processor}/README.md +0 -0
- package/src/plugins/{image/image-processor → image-processor}/config.ts +0 -0
- package/src/plugins/{image/image-processor → image-processor}/image-processor.ts +5 -2
- package/src/plugins/{image/image-properties → image-properties}/config.ts +1 -1
- package/src/plugins/{image/image-properties → image-properties}/image-properties.less +1 -1
- package/src/plugins/image-properties/image-properties.test.js +548 -0
- package/src/plugins/{image/image-properties → image-properties}/image-properties.ts +23 -15
- package/src/plugins/{image/image-properties → image-properties}/templates/form.ts +2 -2
- package/src/plugins/{image/image-properties → image-properties}/templates/main-tab.ts +2 -2
- package/src/plugins/{image/image-properties → image-properties}/templates/position-tab.ts +2 -2
- package/src/plugins/indent/config.ts +57 -0
- package/src/plugins/indent/helpers.ts +23 -0
- package/src/{styles → plugins/indent}/icons/indent.svg +0 -0
- package/src/{styles → plugins/indent}/icons/outdent.svg +0 -0
- package/src/plugins/indent/indent.ts +6 -48
- package/src/plugins/index.ts +61 -53
- package/src/plugins/inline-popup/config/config.ts +9 -0
- package/src/plugins/inline-popup/config/items/img.ts +10 -7
- package/src/{styles → plugins/inline-popup}/icons/addcolumn.svg +0 -0
- package/src/{styles → plugins/inline-popup}/icons/addrow.svg +0 -0
- package/src/{styles → plugins/inline-popup}/icons/merge.svg +0 -0
- package/src/{styles → plugins/inline-popup}/icons/splitg.svg +0 -0
- package/src/{styles → plugins/inline-popup}/icons/splitv.svg +0 -0
- package/src/{styles → plugins/inline-popup}/icons/th-list.svg +0 -0
- package/src/{styles → plugins/inline-popup}/icons/th.svg +0 -0
- package/src/plugins/inline-popup/inline-popup.ts +5 -1
- package/src/{styles/icons → plugins/justify}/justify.svg +0 -0
- package/src/plugins/justify/justify.ts +9 -46
- package/src/plugins/{keyboard → key-arrow-outside}/key-arrow-outside.ts +6 -4
- package/src/plugins/limit/config.ts +30 -0
- package/src/plugins/limit/limit.ts +4 -23
- package/src/plugins/line-height/config.ts +3 -1
- package/src/plugins/line-height/langs/ar.js +9 -0
- package/src/plugins/line-height/langs/cs_cz.js +9 -0
- package/src/plugins/line-height/langs/de.js +9 -0
- package/src/plugins/line-height/langs/es.js +9 -0
- package/src/plugins/line-height/langs/fa.js +9 -0
- package/src/plugins/line-height/langs/fr.js +9 -0
- package/src/plugins/line-height/langs/he.js +9 -0
- package/src/plugins/line-height/langs/hu.js +9 -0
- package/src/plugins/line-height/langs/id.js +9 -0
- package/src/plugins/line-height/langs/index.ts +47 -0
- package/src/plugins/line-height/langs/it.js +9 -0
- package/src/plugins/line-height/langs/ja.js +9 -0
- package/src/plugins/line-height/langs/ko.js +9 -0
- package/src/plugins/line-height/langs/nl.js +9 -0
- package/src/plugins/line-height/langs/pl.js +9 -0
- package/src/plugins/line-height/langs/pt_br.js +9 -0
- package/src/plugins/line-height/langs/ru.js +9 -0
- package/src/plugins/line-height/langs/tr.js +9 -0
- package/src/plugins/line-height/langs/zh_cn.js +9 -0
- package/src/plugins/line-height/langs/zh_tw.js +9 -0
- package/src/{styles/icons → plugins/line-height}/line-height.svg +0 -0
- package/src/plugins/line-height/line-height.ts +12 -3
- package/src/plugins/link/config.ts +6 -0
- package/src/{styles → plugins/link}/icons/link.svg +0 -0
- package/src/{styles → plugins/link}/icons/unlink.svg +0 -0
- package/src/plugins/link/link.ts +5 -1
- package/src/plugins/media/config.ts +30 -0
- package/src/plugins/media/media.ts +5 -24
- package/src/plugins/mobile/mobile.ts +3 -0
- package/src/plugins/ordered-list/config.ts +4 -1
- package/src/{styles → plugins/ordered-list}/icons/ol.svg +0 -0
- package/src/{styles → plugins/ordered-list}/icons/ul.svg +0 -0
- package/src/plugins/ordered-list/ordered-list.ts +3 -0
- package/src/plugins/{clipboard/paste → paste}/README.md +0 -0
- package/src/plugins/{clipboard/paste → paste}/config.ts +5 -12
- package/src/plugins/{clipboard/paste → paste}/helpers.ts +6 -25
- package/src/plugins/{clipboard/paste → paste}/interface.ts +3 -14
- package/src/plugins/{clipboard/paste → paste}/paste.test.js +0 -0
- package/src/plugins/{clipboard/paste → paste}/paste.ts +20 -23
- package/src/plugins/{clipboard/paste-from-word → paste-from-word}/README.md +0 -0
- package/src/plugins/{clipboard/paste-from-word → paste-from-word}/config.ts +2 -3
- package/src/plugins/{clipboard/paste-from-word → paste-from-word}/paste-from-word.ts +15 -16
- package/src/plugins/{clipboard/paste-storage → paste-storage}/paste-storage.less +1 -1
- package/src/plugins/paste-storage/paste-storage.test.js +231 -0
- package/src/plugins/{clipboard/paste-storage → paste-storage}/paste-storage.ts +8 -5
- package/src/plugins/placeholder/placeholder.ts +4 -1
- package/src/plugins/plugins.test.js +0 -2141
- package/src/plugins/powered-by-jodit/powered-by-jodit.ts +9 -5
- package/src/plugins/{print/preview → preview}/preview.less +1 -1
- package/src/plugins/{print/preview → preview}/preview.test.js +0 -0
- package/src/plugins/{print/preview → preview}/preview.ts +4 -1
- package/src/plugins/print/lib/generate-critical-css.ts +3 -0
- package/src/{styles/icons → plugins/print}/print.svg +0 -0
- package/src/plugins/print/print.ts +10 -3
- package/src/{styles → plugins/redo-undo}/icons/redo.svg +0 -0
- package/src/{styles → plugins/redo-undo}/icons/undo.svg +0 -0
- package/src/plugins/redo-undo/redo-undo.ts +10 -1
- package/src/plugins/resize-cells/config.ts +19 -0
- package/src/plugins/resize-cells/resize-cells.less +27 -0
- package/src/plugins/resize-cells/resize-cells.test.js +890 -0
- package/src/plugins/{table → resize-cells}/resize-cells.ts +10 -4
- package/src/plugins/resize-handler/config.ts +21 -0
- package/src/plugins/{size → resize-handler}/resize-handler.ts +5 -0
- package/src/plugins/resizer/config.ts +1 -1
- package/src/plugins/resizer/resizer.ts +6 -2
- package/src/plugins/search/config.ts +3 -0
- package/src/plugins/search/helpers/sentence-finder.ts +1 -1
- package/src/plugins/search/helpers/wrap-ranges-texts-in-tmp-span.ts +1 -1
- package/src/{styles/icons → plugins/search}/search.svg +0 -0
- package/src/plugins/search/search.ts +7 -3
- package/src/plugins/select/config.ts +1 -1
- package/src/plugins/select/select.ts +6 -7
- package/src/plugins/select-cells/config.ts +19 -0
- package/src/plugins/{table → select-cells}/select-cells.ts +10 -5
- package/src/plugins/size/config.ts +0 -56
- package/src/plugins/size/size.test.js +27 -0
- package/src/plugins/size/size.ts +6 -1
- package/src/plugins/source/config.ts +9 -7
- package/src/plugins/source/editor/engines/ace.ts +8 -5
- package/src/plugins/source/editor/engines/area.ts +3 -2
- package/src/plugins/source/editor/engines/custom.ts +1 -0
- package/src/plugins/source/editor/factory.ts +2 -1
- package/src/{styles/icons → plugins/source}/source.svg +0 -0
- package/src/plugins/source/source.ts +9 -4
- package/src/plugins/{speech/speech-recognize → speech-recognize}/README.md +4 -4
- package/src/plugins/{speech/speech-recognize → speech-recognize}/config.ts +5 -3
- package/src/plugins/{speech/speech-recognize → speech-recognize}/constants.ts +2 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/helpers/api.ts +1 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/helpers/exec-spell-command.ts +1 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/helpers/recognize-manager.ts +5 -7
- package/src/plugins/{speech/speech-recognize → speech-recognize}/helpers/sound.ts +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/interface.ts +1 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/ar.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/cs_cz.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/de.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/es.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/fa.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/fr.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/he.js +4 -1
- package/src/plugins/speech-recognize/langs/hu.js +14 -0
- package/src/plugins/speech-recognize/langs/id.js +14 -0
- package/src/plugins/speech-recognize/langs/index.ts +47 -0
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/it.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/ja.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/ko.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/nl.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/pl.js +4 -1
- package/src/plugins/speech-recognize/langs/pt_br.js +14 -0
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/ru.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/tr.js +4 -1
- package/src/plugins/speech-recognize/langs/zh_cn.js +14 -0
- package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/zh_tw.js +4 -1
- package/src/plugins/{speech/speech-recognize → speech-recognize}/speech-recognize.less +2 -2
- package/src/plugins/{speech/speech-recognize/icon.svg → speech-recognize/speech-recognize.svg} +0 -0
- package/src/plugins/{speech/speech-recognize → speech-recognize}/speech-recognize.ts +2 -2
- package/src/plugins/spellcheck/config.ts +4 -1
- package/src/plugins/spellcheck/langs/ar.js +9 -0
- package/src/plugins/spellcheck/langs/cs_cz.js +9 -0
- package/src/plugins/spellcheck/langs/de.js +9 -0
- package/src/plugins/spellcheck/langs/es.js +9 -0
- package/src/plugins/spellcheck/langs/fa.js +9 -0
- package/src/plugins/spellcheck/langs/fr.js +9 -0
- package/src/plugins/spellcheck/langs/he.js +9 -0
- package/src/plugins/spellcheck/langs/hu.js +9 -0
- package/src/plugins/spellcheck/langs/id.js +9 -0
- package/src/plugins/spellcheck/langs/index.ts +47 -0
- package/src/plugins/spellcheck/langs/it.js +9 -0
- package/src/plugins/spellcheck/langs/ja.js +9 -0
- package/src/plugins/spellcheck/langs/ko.js +9 -0
- package/src/plugins/spellcheck/langs/nl.js +9 -0
- package/src/plugins/spellcheck/langs/pl.js +9 -0
- package/src/plugins/spellcheck/langs/pt_br.js +9 -0
- package/src/plugins/spellcheck/langs/ru.js +9 -0
- package/src/plugins/spellcheck/langs/tr.js +9 -0
- package/src/plugins/spellcheck/langs/zh_cn.js +9 -0
- package/src/plugins/spellcheck/langs/zh_tw.js +9 -0
- package/src/plugins/spellcheck/spellcheck.ts +8 -0
- package/src/plugins/stat/config.ts +23 -0
- package/src/plugins/stat/stat.ts +6 -14
- package/src/plugins/sticky/config.ts +44 -0
- package/src/plugins/sticky/sticky.test.js +201 -0
- package/src/plugins/sticky/sticky.ts +6 -34
- package/src/plugins/symbols/config.ts +4 -2
- package/src/plugins/symbols/langs/ar.js +9 -0
- package/src/plugins/symbols/langs/cs_cz.js +9 -0
- package/src/plugins/symbols/langs/de.js +9 -0
- package/src/plugins/symbols/langs/es.js +9 -0
- package/src/plugins/symbols/langs/fa.js +9 -0
- package/src/plugins/symbols/langs/fr.js +9 -0
- package/src/plugins/symbols/langs/he.js +9 -0
- package/src/plugins/symbols/langs/hu.js +9 -0
- package/src/plugins/symbols/langs/id.js +9 -0
- package/src/plugins/symbols/langs/index.ts +47 -0
- package/src/plugins/symbols/langs/it.js +9 -0
- package/src/plugins/symbols/langs/ja.js +9 -0
- package/src/plugins/symbols/langs/ko.js +9 -0
- package/src/plugins/symbols/langs/nl.js +9 -0
- package/src/plugins/symbols/langs/pl.js +9 -0
- package/src/plugins/symbols/langs/pt_br.js +9 -0
- package/src/plugins/symbols/langs/ru.js +9 -0
- package/src/plugins/symbols/langs/tr.js +9 -0
- package/src/plugins/symbols/langs/zh_cn.js +9 -0
- package/src/plugins/symbols/langs/zh_tw.js +9 -0
- package/src/{styles/icons/omega.svg → plugins/symbols/symbols.svg} +0 -0
- package/src/plugins/symbols/symbols.test.js +280 -0
- package/src/plugins/symbols/symbols.ts +13 -4
- package/src/plugins/{keyboard/tab → tab}/README.md +0 -0
- package/src/plugins/{keyboard/tab → tab}/cases/index.ts +1 -1
- package/src/plugins/{keyboard/tab → tab}/cases/on-tab-inside-li.ts +3 -2
- package/src/plugins/{keyboard/tab → tab}/config.ts +1 -1
- package/src/plugins/{keyboard/tab → tab}/tab.test.js +0 -0
- package/src/plugins/{keyboard/tab → tab}/tab.ts +7 -4
- package/src/plugins/table/config.ts +3 -4
- package/src/plugins/table/table.less +0 -26
- package/src/{styles/icons → plugins/table}/table.svg +0 -0
- package/src/plugins/table/table.ts +7 -0
- package/src/plugins/{table → table-keyboard-navigation}/table-keyboard-navigation.ts +5 -2
- package/src/plugins/tooltip/tooltip.ts +4 -2
- package/src/plugins/{media/video → video}/config.ts +4 -1
- package/src/{styles/icons → plugins/video}/video.svg +0 -0
- package/src/plugins/{media/video/index.ts → video/video.ts} +6 -2
- package/src/plugins/{fix/wrap-nodes → wrap-nodes}/README.md +0 -0
- package/src/plugins/{fix/wrap-nodes → wrap-nodes}/config.ts +1 -1
- package/src/plugins/{fix/wrap-nodes → wrap-nodes}/wrap-nodes.test.js +0 -0
- package/src/plugins/{fix/wrap-nodes → wrap-nodes}/wrap-nodes.ts +6 -3
- package/src/plugins/xpath/config.ts +19 -0
- package/src/plugins/xpath/xpath.test.js +182 -0
- package/src/plugins/xpath/xpath.ts +9 -13
- package/src/styles/icons/index.ts +2 -114
- package/src/types/ajax.d.ts +7 -4
- package/src/types/file-browser.d.ts +5 -1
- package/src/types/index.d.ts +1 -1
- package/src/types/plugin.d.ts +1 -1
- package/src/types/types.d.ts +7 -0
- package/src/types/uploader.d.ts +6 -2
- package/tsconfig.json +8 -12
- package/types/config.d.ts +69 -1
- package/types/core/constants.d.ts +2 -0
- package/types/core/dom/dom.d.ts +8 -0
- package/types/core/helpers/utils/align.d.ts +18 -0
- package/types/core/helpers/utils/index.d.ts +11 -9
- package/types/core/helpers/utils/mark-deprecated.d.ts +1 -1
- package/types/{plugins/print/helpers.d.ts → core/helpers/utils/print.d.ts} +0 -0
- package/types/core/helpers/utils/utils.d.ts +5 -1
- package/types/index.d.ts +1 -0
- package/types/modules/file-browser/file-browser.d.ts +1 -4
- package/types/plugins/about/about.d.ts +0 -2
- package/types/plugins/{keyboard/backspace → backspace}/backspace.d.ts +2 -5
- package/types/plugins/{keyboard/backspace → backspace}/cases/check-join-neighbors.d.ts +3 -0
- package/types/plugins/{keyboard/backspace → backspace}/cases/check-join-two-lists.d.ts +3 -0
- package/types/plugins/{keyboard/backspace → backspace}/cases/check-not-collapsed.d.ts +3 -0
- package/types/plugins/{keyboard/backspace → backspace}/cases/check-remove-char.d.ts +4 -1
- package/types/plugins/{keyboard/backspace → backspace}/cases/check-remove-content-not-editable.d.ts +3 -0
- package/types/plugins/{keyboard/backspace → backspace}/cases/check-remove-empty-neighbor.d.ts +3 -0
- package/types/plugins/{keyboard/backspace → backspace}/cases/check-remove-empty-parent.d.ts +3 -0
- package/types/plugins/{keyboard/backspace → backspace}/cases/check-remove-unbreakable-element.d.ts +3 -0
- package/types/plugins/{keyboard/backspace → backspace}/cases/check-table-cell.d.ts +3 -0
- package/types/plugins/{keyboard/backspace → backspace}/cases/check-unwrap-first-list-item.d.ts +3 -0
- package/types/plugins/{keyboard/backspace → backspace}/cases/index.d.ts +0 -0
- package/types/plugins/{keyboard/backspace → backspace}/config.d.ts +0 -0
- package/types/plugins/{keyboard → backspace}/helpers.d.ts +0 -8
- package/types/plugins/{fix/clean-html → clean-html}/clean-html.d.ts +2 -2
- package/types/plugins/{fix/clean-html → clean-html}/config.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/get-hash.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/index.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/remove-format/remove-format-for-collapsed-selection.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/remove-format/remove-format-for-selection.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/allow-attributes.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/fill-empty-paragraph.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/index.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/remove-inv-text-nodes.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/replace-old-tags.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/sanitize-attributes.d.ts +1 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/try-remove-node.d.ts +4 -1
- package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/visit-node-walker.d.ts +1 -1
- package/types/plugins/clipboard/clipboard.d.ts +1 -1
- package/types/plugins/color/color.d.ts +1 -0
- package/types/plugins/{media/video → color}/config.d.ts +0 -0
- package/types/plugins/{clipboard → copy-format}/copy-format.d.ts +0 -0
- package/types/plugins/{clipboard/drag-and-drop → drag-and-drop}/drag-and-drop.d.ts +1 -1
- package/types/plugins/drag-and-drop-element/config.d.ts +14 -0
- package/types/plugins/{clipboard/drag-and-drop-element → drag-and-drop-element}/drag-and-drop-element.d.ts +2 -1
- package/types/plugins/{keyboard/enter → enter}/enter.d.ts +1 -1
- package/types/plugins/{keyboard/enter → enter}/helpers/check-br.d.ts +1 -1
- package/types/plugins/{keyboard/enter → enter}/helpers/check-unsplittable-box.d.ts +1 -1
- package/types/plugins/{keyboard/enter → enter}/helpers/get-block-wrapper.d.ts +1 -1
- package/types/plugins/{keyboard/enter → enter}/helpers/has-previous-block.d.ts +1 -1
- package/types/plugins/{keyboard/enter → enter}/helpers/index.d.ts +1 -1
- package/types/plugins/{keyboard/enter → enter}/helpers/insert-paragraph.d.ts +1 -1
- package/types/plugins/{keyboard/enter → enter}/helpers/process-empty-li-leaf.d.ts +1 -1
- package/types/plugins/{keyboard/enter → enter}/helpers/split-fragment.d.ts +1 -1
- package/types/plugins/{keyboard/enter → enter}/helpers/wrap-text.d.ts +1 -1
- package/types/plugins/{media → file}/file.d.ts +1 -1
- package/types/plugins/font/config.d.ts +11 -0
- package/types/plugins/font/font.d.ts +1 -5
- package/types/plugins/fullsize/config.d.ts +34 -0
- package/types/plugins/fullsize/fullsize.d.ts +1 -25
- package/types/plugins/hotkeys/config.d.ts +14 -0
- package/types/plugins/{keyboard → hotkeys}/hotkeys.d.ts +3 -7
- package/types/plugins/{insert → hr}/hr.d.ts +1 -1
- package/types/plugins/iframe/config.d.ts +0 -17
- package/types/plugins/{image/image-processor → image-processor}/config.d.ts +0 -0
- package/types/plugins/{image/image-processor → image-processor}/image-processor.d.ts +1 -1
- package/types/plugins/{image/image-properties → image-properties}/config.d.ts +0 -0
- package/types/plugins/{image/image-properties → image-properties}/image-properties.d.ts +5 -5
- package/types/plugins/{image/image-properties → image-properties}/templates/form.d.ts +1 -1
- package/types/plugins/{image/image-properties → image-properties}/templates/main-tab.d.ts +1 -1
- package/types/plugins/{image/image-properties → image-properties}/templates/position-tab.d.ts +1 -1
- package/types/plugins/indent/config.d.ts +14 -0
- package/types/plugins/{image → indent}/helpers.d.ts +3 -2
- package/types/plugins/indent/indent.d.ts +1 -8
- package/types/plugins/index.d.ts +61 -45
- package/types/plugins/inline-popup/inline-popup.d.ts +1 -1
- package/types/plugins/justify/justify.d.ts +0 -8
- package/types/plugins/{keyboard → key-arrow-outside}/key-arrow-outside.d.ts +1 -1
- package/types/plugins/limit/config.d.ts +22 -0
- package/types/plugins/limit/limit.d.ts +1 -16
- package/types/plugins/line-height/line-height.d.ts +1 -0
- package/types/plugins/media/config.d.ts +22 -0
- package/types/plugins/media/media.d.ts +1 -16
- package/types/plugins/{clipboard/paste → paste}/config.d.ts +1 -7
- package/types/plugins/{clipboard/paste → paste}/helpers.d.ts +3 -7
- package/types/plugins/{clipboard/paste → paste}/interface.d.ts +2 -3
- package/types/plugins/{clipboard/paste → paste}/paste.d.ts +5 -5
- package/types/plugins/{clipboard/paste-from-word → paste-from-word}/config.d.ts +2 -3
- package/types/plugins/{clipboard/paste-from-word → paste-from-word}/paste-from-word.d.ts +5 -5
- package/types/plugins/{clipboard/paste-storage → paste-storage}/paste-storage.d.ts +2 -2
- package/types/plugins/placeholder/placeholder.d.ts +1 -1
- package/types/plugins/{print/preview → preview}/preview.d.ts +0 -0
- package/types/plugins/print/lib/generate-critical-css.d.ts +3 -0
- package/types/plugins/redo-undo/redo-undo.d.ts +1 -1
- package/types/plugins/resize-cells/config.d.ts +11 -0
- package/types/plugins/{table → resize-cells}/resize-cells.d.ts +4 -3
- package/types/plugins/resize-handler/config.d.ts +12 -0
- package/types/plugins/{size → resize-handler}/resize-handler.d.ts +1 -0
- package/types/plugins/resizer/resizer.d.ts +1 -1
- package/types/plugins/select/select.d.ts +0 -2
- package/types/plugins/select-cells/config.d.ts +11 -0
- package/types/plugins/{table → select-cells}/select-cells.d.ts +2 -1
- package/types/plugins/size/config.d.ts +0 -4
- package/types/plugins/size/size.d.ts +2 -1
- package/types/plugins/source/source.d.ts +1 -0
- package/types/plugins/spellcheck/spellcheck.d.ts +1 -0
- package/types/plugins/stat/config.d.ts +16 -0
- package/types/plugins/stat/stat.d.ts +2 -8
- package/types/plugins/sticky/config.d.ts +32 -0
- package/types/plugins/sticky/sticky.d.ts +2 -27
- package/types/plugins/symbols/symbols.d.ts +3 -2
- package/types/plugins/{keyboard/tab → tab}/cases/index.d.ts +1 -1
- package/types/plugins/{keyboard/tab → tab}/cases/on-tab-inside-li.d.ts +2 -1
- package/types/plugins/{keyboard/tab → tab}/config.d.ts +0 -0
- package/types/plugins/{insert/index.d.ts → tab/tab.d.ts} +1 -4
- package/types/plugins/table/config.d.ts +0 -2
- package/types/plugins/table/table.d.ts +2 -0
- package/types/plugins/{table → table-keyboard-navigation}/table-keyboard-navigation.d.ts +0 -0
- package/types/plugins/tooltip/tooltip.d.ts +0 -13
- package/{src/plugins/insert/index.ts → types/plugins/video/config.d.ts} +1 -6
- package/types/plugins/video/video.d.ts +6 -0
- package/types/plugins/{fix/wrap-nodes → wrap-nodes}/config.d.ts +1 -1
- package/types/plugins/wrap-nodes/wrap-nodes.d.ts +6 -0
- package/types/plugins/xpath/config.d.ts +11 -0
- package/types/plugins/xpath/xpath.d.ts +1 -24
- package/types/styles/icons/index.d.ts +1 -57
- package/types/types/ajax.d.ts +7 -4
- package/types/types/file-browser.d.ts +5 -1
- package/types/types/index.d.ts +1 -1
- package/types/types/plugin.d.ts +1 -1
- package/types/types/types.d.ts +7 -0
- package/types/types/uploader.d.ts +6 -2
- package/.github/ISSUE_TEMPLATE.md +0 -18
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -14
- package/.github/workflows/docs.yml +0 -16
- package/.github/workflows/tests.yml +0 -22
- package/.idea/codeStyles/Project.xml +0 -68
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/dictionaries/v_chupurnov.xml +0 -12
- package/.idea/encodings.xml +0 -4
- package/.idea/inspectionProfiles/Project_Default.xml +0 -118
- package/.idea/jodit.iml +0 -12
- package/.idea/jsLibraryMappings.xml +0 -6
- package/.idea/markdown-navigator-enh.xml +0 -29
- package/.idea/markdown-navigator.xml +0 -55
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/prettier.xml +0 -6
- package/.idea/stylesheetLinters/stylelint.xml +0 -6
- package/.idea/vcs.xml +0 -6
- package/.idea/watcherTasks.xml +0 -4
- package/.idea/workspace.xml +0 -1521
- package/CHANGELOG.MD +0 -3280
- package/CONTRIBUTING.md +0 -100
- package/SECURITY.md +0 -10
- package/build/jodit.css +0 -5866
- package/build/jodit.es2018.css +0 -4822
- package/build/jodit.es2018.en.min.css +0 -1
- package/build/jodit.es2018.en.min.js +0 -1
- package/build/jodit.es2018.js +0 -34937
- package/build/jodit.es2018.min.css +0 -1
- package/build/jodit.es2018.min.js +0 -1
- package/build/jodit.js +0 -42539
- package/build/jodit.min.css +0 -8
- package/build/jodit.min.js +0 -1
- package/build/plugins/speech/speech-recognize/speech-recognize.css +0 -39
- package/build/plugins/speech/speech-recognize/speech-recognize.es2018.css +0 -39
- package/build/plugins/speech/speech-recognize/speech-recognize.es2018.en.js +0 -920
- package/build/plugins/speech/speech-recognize/speech-recognize.es2018.en.min.css +0 -1
- package/build/plugins/speech/speech-recognize/speech-recognize.es2018.en.min.js +0 -1
- package/build/plugins/speech/speech-recognize/speech-recognize.es2018.js +0 -920
- package/build/plugins/speech/speech-recognize/speech-recognize.es2018.min.css +0 -1
- package/build/plugins/speech/speech-recognize/speech-recognize.es2018.min.js +0 -1
- package/build/plugins/speech/speech-recognize/speech-recognize.min.css +0 -1
- package/build/plugins/speech/speech-recognize/speech-recognize.min.js +0 -1
- package/build/vdom.css +0 -18
- package/build/vdom.js +0 -1297
- package/src/plugins/clipboard/index.ts +0 -18
- package/src/plugins/clipboard/paste/CHANGELOG.md +0 -21
- package/src/plugins/fix/index.ts +0 -12
- package/src/plugins/format-block/CHANGELOG.md +0 -16
- package/src/plugins/image/helpers.ts +0 -44
- package/src/plugins/image/image-properties/templates/index.ts +0 -13
- package/src/plugins/image/index.ts +0 -13
- package/src/plugins/media/index.ts +0 -13
- package/src/plugins/print/index.ts +0 -12
- package/src/plugins/size/index.ts +0 -13
- package/src/plugins/source/const.ts +0 -11
- package/src/plugins/source/index.ts +0 -14
- package/src/plugins/table/index.ts +0 -15
- package/src/styles/icons/arrows-alt.svg +0 -4
- package/src/styles/icons/arrows-h.svg +0 -4
- package/src/styles/icons/attachment.svg +0 -4
- package/src/styles/icons/chain-broken.svg +0 -4
- package/src/styles/icons/check-square.svg +0 -1
- package/src/styles/icons/dedent.svg +0 -4
- package/src/styles/icons/menu.svg +0 -1
- package/src/styles/icons/resizer.svg +0 -4
- package/tsdoc.json +0 -30
- package/types/core/decorators/spy/spy.d.ts +0 -9
- package/types/plugins/clipboard/index.d.ts +0 -16
- package/types/plugins/fix/index.d.ts +0 -10
- package/types/plugins/fix/wrap-nodes/wrap-nodes.d.ts +0 -39
- package/types/plugins/image/image-properties/templates/index.d.ts +0 -11
- package/types/plugins/image/index.d.ts +0 -11
- package/types/plugins/keyboard/tab/tab.d.ts +0 -18
- package/types/plugins/media/index.d.ts +0 -11
- package/types/plugins/media/video/index.d.ts +0 -11
- package/types/plugins/print/index.d.ts +0 -10
- package/types/plugins/size/index.d.ts +0 -11
- package/types/plugins/source/const.d.ts +0 -9
- package/types/plugins/source/index.d.ts +0 -12
- package/types/plugins/speech/speech-recognize/config.d.ts +0 -60
- package/types/plugins/speech/speech-recognize/constants.d.ts +0 -10
- package/types/plugins/speech/speech-recognize/helpers/api.d.ts +0 -10
- package/types/plugins/speech/speech-recognize/helpers/exec-spell-command.d.ts +0 -10
- package/types/plugins/speech/speech-recognize/helpers/recognize-manager.d.ts +0 -48
- package/types/plugins/speech/speech-recognize/helpers/sound.d.ts +0 -11
- package/types/plugins/speech/speech-recognize/interface.d.ts +0 -42
- package/types/plugins/speech/speech-recognize/speech-recognize.d.ts +0 -24
- package/types/plugins/table/index.d.ts +0 -13
package/CHANGELOG.MD
DELETED
|
@@ -1,3280 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
> **Tags:**
|
|
4
|
-
>
|
|
5
|
-
> - :boom: [Breaking Change]
|
|
6
|
-
> - :rocket: [New Feature]
|
|
7
|
-
> - :bug: [Bug Fix]
|
|
8
|
-
> - :memo: [Documentation]
|
|
9
|
-
> - :house: [Internal]
|
|
10
|
-
> - :nail_care: [Polish]
|
|
11
|
-
|
|
12
|
-
## 3.18.8
|
|
13
|
-
|
|
14
|
-
#### :house: Internal
|
|
15
|
-
|
|
16
|
-
- Used plugin `webpack.ids.DeterministicModuleIdsPlugin` for more reliable sharing of exported module names between builds.
|
|
17
|
-
Now you can include plugins from 'es5' in the assembly for 'es2018.en'.
|
|
18
|
-
- Deps
|
|
19
|
-
```
|
|
20
|
-
@types/node ^17.0.36 → ^17.0.41
|
|
21
|
-
@typescript-eslint/eslint-plugin ^5.27.0 → ^5.27.1
|
|
22
|
-
@typescript-eslint/parser ^5.27.0 → ^5.27.1
|
|
23
|
-
cssnano-preset-advanced ^5.3.6 → ^5.3.7
|
|
24
|
-
eslint ^8.16.0 → ^8.17.0
|
|
25
|
-
lint-staged ^12.4.3 → ^13.0.0
|
|
26
|
-
terser-webpack-plugin ^5.3.1 → ^5.3.3
|
|
27
|
-
typescript ^4.7.2 → ^4.7.3
|
|
28
|
-
webpack ^5.72.1 → ^5.73.0
|
|
29
|
-
webpack-dev-server ^4.9.0 → ^4.9.2
|
|
30
|
-
core-js ^3.22.7 → ^3.22.8
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## 3.18.7
|
|
34
|
-
|
|
35
|
-
#### :rocket: New Feature
|
|
36
|
-
|
|
37
|
-
- Allow custom resizing with Alt btn [How to resize image with the handle bars without fixed aspect ratio #839](https://github.com/xdan/jodit/issues/839)
|
|
38
|
-
|
|
39
|
-
#### :bug: Bug Fix
|
|
40
|
-
|
|
41
|
-
- [Multiple modals 'Paste as HTML' after longer pressing ctrl+v #849](https://github.com/xdan/jodit/issues/849)
|
|
42
|
-
- [All added videos are deleted when you click Delete or Backspace #847](https://github.com/xdan/jodit/issues/847)
|
|
43
|
-
|
|
44
|
-
## 3.18.6
|
|
45
|
-
|
|
46
|
-
#### :rocket: New Feature
|
|
47
|
-
|
|
48
|
-
- Separate plugin for voice recognition and input of recognized text into the editor.
|
|
49
|
-
[Feature Request: Add ability for user to dictate using local device microphone as input #828](https://github.com/xdan/jodit/issues/828)
|
|
50
|
-
> This plugin is not included in the main Jodit build. It must be connected separately [Подробнее](./src/plugins/speech/speech-recognize/README.md)
|
|
51
|
-
|
|
52
|
-
## 3.18.5
|
|
53
|
-
|
|
54
|
-
#### :boom: Breaking Change
|
|
55
|
-
|
|
56
|
-
- Added default table style to `createAttributes` option:
|
|
57
|
-
|
|
58
|
-
```js
|
|
59
|
-
Jodit.defaultOptions.createAttributes = {
|
|
60
|
-
table: {
|
|
61
|
-
style: 'border-collapse:collapse;width: 100%;'
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
#### :bug: Bug Fix
|
|
67
|
-
|
|
68
|
-
- Fixed a bug where the download cancellation business exceptions were shown as errors in the file browser. Also fixed uncatchable exceptions inside Async.promise
|
|
69
|
-
- [Fixed Eraser delete "<a>" tag! #705 #845](https://github.com/xdan/jodit/pull/845) Thanks @s-renier-taonix-fr
|
|
70
|
-
- [Update Docker Env #844](https://github.com/xdan/jodit/pull/844) Thanks @s-renier-taonix-fr
|
|
71
|
-
- Fixed table default styles [Jodit doesn't keep table borders #295](https://github.com/xdan/jodit/issues/295)
|
|
72
|
-
- [All td elements got double border style. #842](https://github.com/xdan/jodit/issues/842)
|
|
73
|
-
|
|
74
|
-
## 3.18.4
|
|
75
|
-
|
|
76
|
-
#### :rocket: New Feature
|
|
77
|
-
|
|
78
|
-
- Added option `uploader.processFileName` - The method can be used to change the name of the uploaded file
|
|
79
|
-
|
|
80
|
-
```js
|
|
81
|
-
Jodit.make('#editor', {
|
|
82
|
-
uploader: {
|
|
83
|
-
url: 'some-connector.php',
|
|
84
|
-
processFileName: (key, file, name) => {
|
|
85
|
-
return [key, file, 'some-prefix_' + name];
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
- Fixed file naming error when uploading to server
|
|
92
|
-
|
|
93
|
-
## 3.18.3
|
|
94
|
-
|
|
95
|
-
#### :bug: Bug Fix
|
|
96
|
-
|
|
97
|
-
- Fixed a bug where pressing `Esc` did not close the dialog
|
|
98
|
-
|
|
99
|
-
## 3.18.2
|
|
100
|
-
|
|
101
|
-
#### :boom: Breaking Change
|
|
102
|
-
|
|
103
|
-
The on/one/off methods of the Jodit Event System have been greatly simplified:
|
|
104
|
-
|
|
105
|
-
instead:
|
|
106
|
-
|
|
107
|
-
```js
|
|
108
|
-
editor.e.on(
|
|
109
|
-
'click',
|
|
110
|
-
() => {
|
|
111
|
-
alert('Clicked!');
|
|
112
|
-
},
|
|
113
|
-
undefined,
|
|
114
|
-
true
|
|
115
|
-
);
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Now:
|
|
119
|
-
|
|
120
|
-
```js
|
|
121
|
-
editor.e.on(
|
|
122
|
-
'click',
|
|
123
|
-
() => {
|
|
124
|
-
alert('Clicked!');
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
top: true
|
|
128
|
-
}
|
|
129
|
-
);
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Also, the methods now support an array of events:
|
|
133
|
-
|
|
134
|
-
```js
|
|
135
|
-
editor.e.on('click mousedown mouseup', () => {
|
|
136
|
-
alert('Some event!');
|
|
137
|
-
});
|
|
138
|
-
editor.e.on(['click', 'mousedown', 'mouseup'], () => {
|
|
139
|
-
alert('Some event!');
|
|
140
|
-
});
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
#### :rocket: New Feature
|
|
144
|
-
|
|
145
|
-
- All components have their own instance of the Async module. What used to be `this.j.async` is now `this.async`.
|
|
146
|
-
- New option `resizer.useAspectRatio` [How to resize image with the handle bars without fixed aspect ratio](https://github.com/xdan/jodit/issues/839)
|
|
147
|
-
- Added event `applyLink` for issue [change default target for all links #841](https://github.com/xdan/jodit/issues/841)
|
|
148
|
-
|
|
149
|
-
#### :bug: Bug Fix
|
|
150
|
-
|
|
151
|
-
- Fixed non-removal of the event handler on destruct
|
|
152
|
-
- Extra br are not removed
|
|
153
|
-
- [Bold removing line break in table #838](https://github.com/xdan/jodit/issues/838)
|
|
154
|
-
- [Cleans <br> that should be there #835](https://github.com/xdan/jodit/issues/835)
|
|
155
|
-
- [Cursor goes out of edit box when moving to a new line #824](https://github.com/xdan/jodit/issues/824)
|
|
156
|
-
- [Couldn't click next line button, when table is resized. #831](https://github.com/xdan/jodit/issues/831)
|
|
157
|
-
- [Unable to add line height for Html pasted content. #830](https://github.com/xdan/jodit/issues/830)
|
|
158
|
-
|
|
159
|
-
#### :house: Internal
|
|
160
|
-
|
|
161
|
-
- Instead of a self-written truncated polyfill for `Array.from`, the core-js module is used
|
|
162
|
-
- Moved the test files to the appropriate directories
|
|
163
|
-
- Update deps
|
|
164
|
-
|
|
165
|
-
```
|
|
166
|
-
@types/node ^17.0.23 → ^17.0.31
|
|
167
|
-
@typescript-eslint/eslint-plugin ^5.19.0 → ^5.22.0
|
|
168
|
-
@typescript-eslint/parser ^5.19.0 → ^5.22.0
|
|
169
|
-
autoprefixer ^10.4.4 → ^10.4.7
|
|
170
|
-
axios ^0.26.1 → ^0.27.2
|
|
171
|
-
eslint ^8.13.0 → ^8.14.0
|
|
172
|
-
express ^4.17.3 → ^4.18.1
|
|
173
|
-
karma ^6.3.17 → ^6.3.19
|
|
174
|
-
lint-staged ^12.3.7 → ^12.4.1
|
|
175
|
-
mocha ^9.2.2 → ^10.0.0
|
|
176
|
-
postcss >=8.4.12 → >=8.4.13
|
|
177
|
-
stylelint ^14.6.1 → ^14.8.2
|
|
178
|
-
ts-loader ^9.2.8 → ^9.3.0
|
|
179
|
-
tslib ^2.3.1 → ^2.4.0
|
|
180
|
-
typescript ^4.6.3 → ^4.6.4
|
|
181
|
-
webpack-dev-server ^4.8.1 → ^4.9.0
|
|
182
|
-
core-js ^3.21.1 → ^3.22.4
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
## 3.17.1
|
|
186
|
-
|
|
187
|
-
#### :boom: Breaking Change
|
|
188
|
-
|
|
189
|
-
Some minifier configurations do not correctly handle inheritance in the `component` decorator,
|
|
190
|
-
we added some helper code earlier to make this work correctly.
|
|
191
|
-
We tried to determine belonging by the name of the component and not by its constructor or prototype.
|
|
192
|
-
Because in some build system(ex. create-react-app):
|
|
193
|
-
|
|
194
|
-
```js
|
|
195
|
-
@component
|
|
196
|
-
class A extends Component {
|
|
197
|
-
className() {
|
|
198
|
-
return 'A';
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
const a = new A();
|
|
202
|
-
a instanceof Component; // false - only in some cases
|
|
203
|
-
elm.className() === A.prototype.className(); // true
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
In most cases, this entailed new bugs, so in 3.17 we decided to remove this heuristic.
|
|
207
|
-
If something broke in your assembly, please create an [issue on github](https://github.com/xdan/jodit/issues/new).
|
|
208
|
-
|
|
209
|
-
#### :bug: Bug Fix
|
|
210
|
-
|
|
211
|
-
- Fixed processing of inserting videos from YouTube. Now you can start playing the video.
|
|
212
|
-
- [selection.insertHTML causes infinite blur loop when Jodit editor not active](https://github.com/xdan/jodit/issues/819) Added `insertCursorAfter` argument.
|
|
213
|
-
- [Preview missing non styled content in a paragraph when there is any styled text in that paragraph #823](https://github.com/xdan/jodit/issues/823)
|
|
214
|
-
- [Image hyperlink is not working without https:// #821](https://github.com/xdan/jodit/issues/821)
|
|
215
|
-
|
|
216
|
-
```js
|
|
217
|
-
const editor = Jodit.make('#editor');
|
|
218
|
-
editor.s.insertHTML('test', false);
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
#### :house: Internal
|
|
222
|
-
|
|
223
|
-
- Update
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
@typescript-eslint/eslint-plugin ^5.16.0 → ^5.19.0
|
|
227
|
-
@typescript-eslint/parser ^5.16.0 → ^5.19.0
|
|
228
|
-
cssnano-preset-advanced ^5.3.1 → ^5.3.3
|
|
229
|
-
eslint ^8.12.0 → ^8.13.0
|
|
230
|
-
eslint-plugin-tsdoc ^0.2.14 → ^0.2.16
|
|
231
|
-
prettier ^2.6.1 → ^2.6.2
|
|
232
|
-
webpack ^5.70.0 → ^5.72.0
|
|
233
|
-
webpack-dev-server ^4.7.4 → ^4.8.1
|
|
234
|
-
yargs ^17.4.0 → ^17.4.1
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
## 3.16.6
|
|
238
|
-
|
|
239
|
-
#### :bug: Bug Fix
|
|
240
|
-
|
|
241
|
-
- [Keyboard Trap in Source Code mode #817](https://github.com/xdan/jodit/issues/817) Author: @haruanm
|
|
242
|
-
- ["Uncaught TypeError: Cannot redefine property: \_\_activeTab" occurs when I use 'brush' button twice in inline-popup for a element. #815](https://github.com/xdan/jodit/issues/815)
|
|
243
|
-
|
|
244
|
-
## 3.16.5
|
|
245
|
-
|
|
246
|
-
#### :rocket: New Feature
|
|
247
|
-
|
|
248
|
-
- imageProcessor.replaceDataURIToBlobIdInView
|
|
249
|
-
The `imageProcessor` plugin has added the functionality of replacing data-uri objects in the `src` of images with `blob-url`.
|
|
250
|
-
This allows you to more conveniently work with an HTML document without loading the processor.
|
|
251
|
-
Checks if the `imageProcessor.replaceDataURIToBlobIdInView` option is enabled then converts image src which has `data:base64`
|
|
252
|
-
to [blob-object-uri](https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL)
|
|
253
|
-
|
|
254
|
-
In this case, `Jodit.value` returns images with `data-uri`. And original `textarea` itself does the reverse replacement take place.
|
|
255
|
-
|
|
256
|
-
```js
|
|
257
|
-
const editor = Jodit.make('#editor', {
|
|
258
|
-
imageProcessor: {
|
|
259
|
-
replaceDataURIToBlobIdInView: true // This is the default value, but for examples we set it
|
|
260
|
-
}
|
|
261
|
-
});
|
|
262
|
-
|
|
263
|
-
editor.value =
|
|
264
|
-
'<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="/></p>';
|
|
265
|
-
console.log(editor.value); // <p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="/></p>
|
|
266
|
-
console.log(editor.getElementValue()); // '<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="/></p>'
|
|
267
|
-
console.log(editor.getNativeEditorValue()); // <p><img src="blob:http://localhost:2000/03377cf0-6260-4351-82ad-8a8901ea104f"></p>
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
- Method `Jodit.setElementValue` marked us deprecated and will be removed in next major release.
|
|
271
|
-
|
|
272
|
-
#### :house: Internal
|
|
273
|
-
|
|
274
|
-
- Update
|
|
275
|
-
|
|
276
|
-
```
|
|
277
|
-
@types/node ^17.0.21 → ^17.0.23
|
|
278
|
-
@typescript-eslint/eslint-plugin ^5.14.0 → ^5.16.0
|
|
279
|
-
@typescript-eslint/parser ^5.14.0 → ^5.16.0
|
|
280
|
-
autoprefixer ^10.4.2 → ^10.4.4
|
|
281
|
-
cssnano-preset-advanced ^5.2.4 → ^5.3.1
|
|
282
|
-
eslint ^8.11.0 → ^8.12.0
|
|
283
|
-
lint-staged ^12.3.5 → ^12.3.7
|
|
284
|
-
postcss >=8.4.8 → >=8.4.12
|
|
285
|
-
prettier ^2.5.1 → ^2.6.1
|
|
286
|
-
stylelint ^14.5.3 → ^14.6.1
|
|
287
|
-
typescript ^4.6.2 → ^4.6.3
|
|
288
|
-
yargs ^17.3.1 → ^17.4.0
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
## 3.16.4
|
|
292
|
-
|
|
293
|
-
#### :bug: Bug Fix
|
|
294
|
-
|
|
295
|
-
- [Sass compile error Css3 min() #809](https://github.com/xdan/jodit/issues/809)
|
|
296
|
-
- [The preview popup has double scrollbars #808](https://github.com/xdan/jodit/issues/808)
|
|
297
|
-
- Fixed bug with sync editor size with iframe mode (Works only with [ResizeObserver](https://caniuse.com/resizeobserver))
|
|
298
|
-
|
|
299
|
-
## 3.16.3
|
|
300
|
-
|
|
301
|
-
- Fixed composition `wait` and `debounce` decorators
|
|
302
|
-
|
|
303
|
-
## 3.16.2
|
|
304
|
-
|
|
305
|
-
#### :bug: Bug Fix
|
|
306
|
-
|
|
307
|
-
- ["Uncaught TypeError: this.setEditorValue is not a function" with Japanese input method #807](https://github.com/xdan/jodit/issues/807)
|
|
308
|
-
|
|
309
|
-
## 3.16.1
|
|
310
|
-
|
|
311
|
-
#### :rocket: New Feature
|
|
312
|
-
|
|
313
|
-
- Added `spellcheck` plugin.
|
|
314
|
-
- Added `Config.pasteHTMLActionList` and `Config.pasteFromWordActionList` options https://github.com/xdan/jodit/issues/802.
|
|
315
|
-
- Added `Jodit.synchronizeValues()` method. The method synchronizes the WYSIWYG values of the editor
|
|
316
|
-
- and the original input field. The method works through `Async.throttle`.
|
|
317
|
-
- Added a new class for working with DOM without blocking the main thread `LazyWalker`
|
|
318
|
-
- Search engine replace on `LazyWalker`
|
|
319
|
-
- CleanHTML plugin engine replace on `LazyWalker`
|
|
320
|
-
- Search plugin now highlights all found options https://github.com/xdan/jodit/issues/798
|
|
321
|
-
- Added `Jodit.constants` https://github.com/xdan/jodit/issues/806
|
|
322
|
-
|
|
323
|
-
#### :boom: Breaking Change
|
|
324
|
-
|
|
325
|
-
- Renamed `wrap-text-nodes` plugin to `wrap-nodes`
|
|
326
|
-
- Option `spellcheck` = false by default. This is due to the fact that the built-in spell check slows down the editor very much on large tests.
|
|
327
|
-
- Enabled `@typescript-eslint/explicit-function-return-type` in eslint
|
|
328
|
-
|
|
329
|
-
#### :bug: Bug Fix
|
|
330
|
-
|
|
331
|
-
- Fixed a bug in the `watch` decorator, when multiple watchers were set, it used only one context
|
|
332
|
-
- [Default is not working for insert ordered list and insert unordered list #799](https://github.com/xdan/jodit/issues/799)
|
|
333
|
-
- [In print preview, table border color and background color is not showing #803](https://github.com/xdan/jodit/issues/803)
|
|
334
|
-
|
|
335
|
-
#### :house: Internal
|
|
336
|
-
|
|
337
|
-
- `clean-html` plugin now works via `requestIdleCallback` and doesn't slow down the browser
|
|
338
|
-
|
|
339
|
-
## 3.15.3
|
|
340
|
-
|
|
341
|
-
#### :boom: Breaking Change
|
|
342
|
-
|
|
343
|
-
- `Observer` module renamed to `History`, accessed via `Jodit.history`
|
|
344
|
-
- `Jodit.observer` field deprecated and will be removed in future releases
|
|
345
|
-
- Changed to `history` in `observer` settings. The `observer` field has been deprecated.
|
|
346
|
-
- Removed `stack` field from `History` class (former `Observer`).
|
|
347
|
-
- Separated default editor timeout and `history.timeout`. Now the second setting is just for history.
|
|
348
|
-
Timeouts for all asynchronous operations in Jodit now apply the `defaultTimeout` setting
|
|
349
|
-
|
|
350
|
-
Before:
|
|
351
|
-
|
|
352
|
-
```js
|
|
353
|
-
const editor = Jodit.make({
|
|
354
|
-
observer: {
|
|
355
|
-
timeout: 122,
|
|
356
|
-
maxHistoryLength: 100
|
|
357
|
-
}
|
|
358
|
-
});
|
|
359
|
-
console.log(editor.defaultTimeout); // 122
|
|
360
|
-
editor.observer.stack.clear();
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
Now:
|
|
364
|
-
|
|
365
|
-
```js
|
|
366
|
-
const editor = Jodit.make({
|
|
367
|
-
defaultTimeout: 122,
|
|
368
|
-
history: {
|
|
369
|
-
timeout: 1000,
|
|
370
|
-
maxHistoryLength: 100
|
|
371
|
-
}
|
|
372
|
-
});
|
|
373
|
-
console.log(editor.defaultTimeout); // 122
|
|
374
|
-
editor.history.clear();
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
- When adding information to the editor via `Jodit.value`, the history of changes will be process immediately,
|
|
378
|
-
without a timeout. Read more https://github.com/xdan/jodit/issues/792
|
|
379
|
-
|
|
380
|
-
#### :bug: Bug Fix
|
|
381
|
-
|
|
382
|
-
- [Colors popup closes when I select the secondary tab (Text) #171](https://github.com/jodit/jodit-react/issues/171)
|
|
383
|
-
|
|
384
|
-
## 3.15.2
|
|
385
|
-
|
|
386
|
-
- Fixed a bug when it was impossible to select a normal font after selecting any other
|
|
387
|
-
- [Dropdowns not hiding when clicking again on the arrow #791](https://github.com/xdan/jodit/issues/791)
|
|
388
|
-
- [The problem that the selected text disappears #790](https://github.com/xdan/jodit/issues/790)
|
|
389
|
-
|
|
390
|
-
## 3.15.1
|
|
391
|
-
|
|
392
|
-
#### :rocket: New Feature
|
|
393
|
-
|
|
394
|
-
- When copying elements, their hierarchy is taken into, for example, if you selected `<ul><li><span>|test|</span></li></ul>`,
|
|
395
|
-
then when copying to the clipboard, the selection will be expanded to root element `UL`.
|
|
396
|
-
For this, the [[Select.expandSelection]] method has been added to the [[Select]] class.
|
|
397
|
-
[Ordered Bullets are getting changed to unordered bullets after copy and pasting within the editor #789](https://github.com/xdan/jodit/issues/789)
|
|
398
|
-
> Method called before copy/cut/selectall operations
|
|
399
|
-
|
|
400
|
-
#### :house: Internal
|
|
401
|
-
|
|
402
|
-
- The [[Dom.isNode]] method now uses Duck Typing instead of inctanceof, this seems to be enough
|
|
403
|
-
- Update
|
|
404
|
-
@types/node ^17.0.18 → ^17.0.21
|
|
405
|
-
@typescript-eslint/eslint-plugin ^5.12.0 → ^5.13.0
|
|
406
|
-
@typescript-eslint/parser ^5.12.0 → ^5.13.0
|
|
407
|
-
cssnano-preset-advanced ^5.1.12 → ^5.2.1
|
|
408
|
-
eslint ^8.9.0 → ^8.10.0
|
|
409
|
-
eslint-config-prettier ^8.4.0 → ^8.5.0
|
|
410
|
-
karma ^6.3.16 → ^6.3.17
|
|
411
|
-
mini-css-extract-plugin ^2.5.3 → ^2.6.0
|
|
412
|
-
postcss >=8.4.6 → >=8.4.7
|
|
413
|
-
stylelint ^14.5.1 → ^14.5.3
|
|
414
|
-
ts-loader ^9.2.6 → ^9.2.7
|
|
415
|
-
typescript ^4.5.5 → ^4.6.2
|
|
416
|
-
webpack ^5.69.1 → ^5.70.0
|
|
417
|
-
|
|
418
|
-
## 3.14.2
|
|
419
|
-
|
|
420
|
-
#### :rocket: New Feature
|
|
421
|
-
|
|
422
|
-
- Added an experimental module for working with VDom<->Dom, an attempt to switch to this technology in the editor
|
|
423
|
-
|
|
424
|
-
#### :house: Internal
|
|
425
|
-
|
|
426
|
-
- @types/node ^17.0.15 → ^17.0.18
|
|
427
|
-
- @typescript-eslint/eslint-plugin ^5.10.2 → ^5.12.0
|
|
428
|
-
- @typescript-eslint/parser ^5.10.2 → ^5.12.0
|
|
429
|
-
- axios ^0.25.0 → ^0.26.0
|
|
430
|
-
- cssnano-preset-advanced ^5.1.11 → ^5.1.12
|
|
431
|
-
- eslint ^8.8.0 → ^8.9.0
|
|
432
|
-
- eslint-config-prettier ^8.3.0 → ^8.4.0
|
|
433
|
-
- express ^4.17.2 → ^4.17.3
|
|
434
|
-
- karma ^6.3.15 → ^6.3.16
|
|
435
|
-
- lint-staged ^12.3.3 → ^12.3.4
|
|
436
|
-
- mocha ^9.2.0 → ^9.2.1
|
|
437
|
-
- stylelint ^14.3.0 → ^14.5.1
|
|
438
|
-
- stylelint-config-standard ^24.0.0 → ^25.0.0
|
|
439
|
-
- webpack ^5.68.0 → ^5.69.1
|
|
440
|
-
- core-js ^3.21.0 → ^3.21.1
|
|
441
|
-
|
|
442
|
-
## 3.14.1
|
|
443
|
-
|
|
444
|
-
#### :house: Internal
|
|
445
|
-
|
|
446
|
-
- [(change) improved a few german translations #783](https://github.com/xdan/jodit/pull/783)
|
|
447
|
-
|
|
448
|
-
#### :boom: Breaking Change
|
|
449
|
-
|
|
450
|
-
- Changed the positions of some buttons on different resolutions for greater density
|
|
451
|
-
- Disabled the ability to drag and drop elements on mobile devices as it affected page scrollability
|
|
452
|
-
|
|
453
|
-
#### :bug: Bug Fix
|
|
454
|
-
|
|
455
|
-
- [Cannot format table cells in PRO version #786](https://github.com/xdan/jodit/issues/786) -[Build error: Property or signature expected. #174](https://github.com/jodit/jodit-react/issues/174)
|
|
456
|
-
|
|
457
|
-
## 3.13.5
|
|
458
|
-
|
|
459
|
-
#### :bug: Bug Fix
|
|
460
|
-
|
|
461
|
-
- [Unable to drag and drop image between table cells #782](https://github.com/xdan/jodit/issues/782)
|
|
462
|
-
|
|
463
|
-
## 3.13.4
|
|
464
|
-
|
|
465
|
-
#### :rocket: New Feature
|
|
466
|
-
|
|
467
|
-
- Plugin for setting line spacing
|
|
468
|
-
|
|
469
|
-
#### :bug: Bug Fix
|
|
470
|
-
|
|
471
|
-
- [Previewing data not showing table content #780](https://github.com/xdan/jodit/issues/780)
|
|
472
|
-
|
|
473
|
-
## 3.13.2
|
|
474
|
-
|
|
475
|
-
#### :rocket: New Feature
|
|
476
|
-
|
|
477
|
-
- Added a plugin to handle pressing the Tab key, it added the functionality of processing a keystroke inside the UL/li
|
|
478
|
-
element and allows you to add tree-like lists.
|
|
479
|
-
- Added static `Jodit.isJoditAssigned` method: Checks if the element has already been initialized when for Jodit
|
|
480
|
-
|
|
481
|
-
```js
|
|
482
|
-
const area = document.getElementById('editor');
|
|
483
|
-
(Jodit.make(area) === Jodit.make(area)) === Jodit.make(area);
|
|
484
|
-
console.log(Jodit.isJoditAssigned(area)); // true
|
|
485
|
-
const editor = Jodit.make(area);
|
|
486
|
-
editor.destruct();
|
|
487
|
-
console.log(Jodit.isJoditAssigned(area)); // false
|
|
488
|
-
```
|
|
489
|
-
|
|
490
|
-
#### :bug: Bug Fix
|
|
491
|
-
|
|
492
|
-
- Fixed a bug when switching between source and wysiwyg mode, the FORM tag was wrapped in P
|
|
493
|
-
- [Not maintaining styles set when switching format blocks #773](https://github.com/xdan/jodit/issues/773)
|
|
494
|
-
|
|
495
|
-
## 3.13.1
|
|
496
|
-
|
|
497
|
-
#### :boom: Breaking Change
|
|
498
|
-
|
|
499
|
-
- `ObserveObject` removed
|
|
500
|
-
- Added `observable` function which makes object observable. In this case, the function returns the same object.
|
|
501
|
-
|
|
502
|
-
```js
|
|
503
|
-
const obj = {
|
|
504
|
-
a: 1,
|
|
505
|
-
b: {
|
|
506
|
-
c: 5
|
|
507
|
-
}
|
|
508
|
-
};
|
|
509
|
-
|
|
510
|
-
const obsObj = Jodit.modules.observable(obj);
|
|
511
|
-
console.log(obj === obsObj); // true
|
|
512
|
-
obsObj.on('change', () => {
|
|
513
|
-
console.log('Object changed');
|
|
514
|
-
});
|
|
515
|
-
obsObj.on('change.a', () => {
|
|
516
|
-
console.log('Key a changed');
|
|
517
|
-
});
|
|
518
|
-
obsObj.on('change.b.c', () => {
|
|
519
|
-
console.log('Key b.c changed');
|
|
520
|
-
});
|
|
521
|
-
|
|
522
|
-
obj.a = 6;
|
|
523
|
-
// Object changed
|
|
524
|
-
// Key a changed
|
|
525
|
-
|
|
526
|
-
obj.b = { c: 6 };
|
|
527
|
-
// Object changed
|
|
528
|
-
|
|
529
|
-
obj.b.c = 8;
|
|
530
|
-
// Object changed
|
|
531
|
-
// Key b.c changed
|
|
532
|
-
```
|
|
533
|
-
|
|
534
|
-
#### :bug: Bug Fix
|
|
535
|
-
|
|
536
|
-
- Fixed autotest in Chrome on Windows
|
|
537
|
-
|
|
538
|
-
## 3.12.5
|
|
539
|
-
|
|
540
|
-
#### :rocket: New Feature
|
|
541
|
-
|
|
542
|
-
- Added options `safeMode:boolean` and `safePluginsList:string[]` for debugging
|
|
543
|
-
|
|
544
|
-
```js
|
|
545
|
-
Jodit.make('#editor', {
|
|
546
|
-
safeMode: true,
|
|
547
|
-
safePluginsList: ['about']
|
|
548
|
-
});
|
|
549
|
-
```
|
|
550
|
-
|
|
551
|
-
Only one plugin will be activated. Convenient for debugging and your plugins, you can turn off all the others.
|
|
552
|
-
|
|
553
|
-
#### :bug: Bug Fix
|
|
554
|
-
|
|
555
|
-
- Fixed a bug due to which Jodit did not work in ie11, + added a polyfill for the iterator
|
|
556
|
-
|
|
557
|
-
## 3.12.3
|
|
558
|
-
|
|
559
|
-
- [Fixed Full Screen showing elements not part of editable content #763](Issue: https://github.com/xdan/jodit/issues/763)
|
|
560
|
-
|
|
561
|
-
#### :rocket: New Feature
|
|
562
|
-
|
|
563
|
-
- Added `monospace` button in format list https://github.com/xdan/jodit/issues/767
|
|
564
|
-
- In plugin `paste` added `memorizeChoiceWhenPasteFragment` option: when the user inserts a piece of HTML, the plugin will ask - How to insert it.
|
|
565
|
-
If after that user insert the same fragment again, the previous option will be used without extra question.
|
|
566
|
-
|
|
567
|
-
> memorizeChoiceWhenPasteFragment = false, by default, it is Breaking change
|
|
568
|
-
|
|
569
|
-
## 3.12.1
|
|
570
|
-
|
|
571
|
-
#### :boom: Breaking Change
|
|
572
|
-
|
|
573
|
-
- `ObserveObject` renamed to `ObservableObject`
|
|
574
|
-
|
|
575
|
-
```js
|
|
576
|
-
const obj = { a: 1, b: 2 };
|
|
577
|
-
const observed = Jodit.modules.ObservableObject.create(obj);
|
|
578
|
-
|
|
579
|
-
observed.on('change', (oldV, newV) => console.log(oldV, newV));
|
|
580
|
-
observed.a = 5;
|
|
581
|
-
```
|
|
582
|
-
|
|
583
|
-
- [Replace additional newlines by HTML line breaks. #770](https://github.com/xdan/jodit/pull/770)
|
|
584
|
-
|
|
585
|
-
#### :bug: Bug Fix
|
|
586
|
-
|
|
587
|
-
- [New lines are removed when pasting plain text in the jodit editor #755](https://github.com/xdan/jodit/issues/755)
|
|
588
|
-
|
|
589
|
-
#### :rocket: New Feature
|
|
590
|
-
|
|
591
|
-
- In addition to the preinstalled editors, the source plugin adds the ability to use its own implementation. You can read more in the [documentation](https://xdsoft.net/jodit/docs/modules/plugins_source.html)
|
|
592
|
-
|
|
593
|
-
## 3.11.2
|
|
594
|
-
|
|
595
|
-
#### :bug: Bug Fix
|
|
596
|
-
|
|
597
|
-
- Fixed a bug when resizing images whose size was specified in the style attribute - the size did not change
|
|
598
|
-
|
|
599
|
-
## 3.11.1
|
|
600
|
-
|
|
601
|
-
#### :boom: Breaking Change
|
|
602
|
-
|
|
603
|
-
- Plugin `Delete` renamed to` Backspace`. And it is highly refractory.
|
|
604
|
-
|
|
605
|
-
#### :rocket: New Feature
|
|
606
|
-
|
|
607
|
-
- Open localhost in browser on `npm start`
|
|
608
|
-
- Added `Async.prototype.delay` method
|
|
609
|
-
|
|
610
|
-
```js
|
|
611
|
-
await editor.async.delay(1000);
|
|
612
|
-
alert('Alert after 1s');
|
|
613
|
-
```
|
|
614
|
-
|
|
615
|
-
- Added `Ajax.options.responseType` option `XMLHttpRequestResponseType`
|
|
616
|
-
- Added `Response.prototype.blob()` method
|
|
617
|
-
|
|
618
|
-
```js
|
|
619
|
-
const ajax = new Jodit.modules.Ajax({ responseType: 'blob' });
|
|
620
|
-
await ajax.send().then(resp => resp.blob());
|
|
621
|
-
```
|
|
622
|
-
|
|
623
|
-
#### :bug: Bug Fix
|
|
624
|
-
|
|
625
|
-
- Added handling of `contenteditable = false` elements to the plugin` Backspace`.
|
|
626
|
-
- [es2018 build don't works properly starting from jodit 3.9.4 #758](https://github.com/xdan/jodit/issues/758)
|
|
627
|
-
- [shadow dom support only partly fixed #746](https://github.com/xdan/jodit/issues/746)
|
|
628
|
-
|
|
629
|
-
## 3.10.2
|
|
630
|
-
|
|
631
|
-
#### :boom: Breaking Change
|
|
632
|
-
|
|
633
|
-
- The hotkeys have been castled in the Delete plugin:
|
|
634
|
-
Was:
|
|
635
|
-
|
|
636
|
-
```js
|
|
637
|
-
const hotkeys = {
|
|
638
|
-
delete: ['delete', 'cmd+backspace'],
|
|
639
|
-
deleteWord: ['ctrl+delete', 'cmd+alt+backspace', 'ctrl+alt+backspace'],
|
|
640
|
-
backspace: ['backspace'],
|
|
641
|
-
backspaceWord: ['ctrl+backspace']
|
|
642
|
-
};
|
|
643
|
-
```
|
|
644
|
-
|
|
645
|
-
But the setting was called incorrectly, when the combination was pressed, not one word was deleted, but a whole sentence.
|
|
646
|
-
Now added one more setting:
|
|
647
|
-
|
|
648
|
-
```js
|
|
649
|
-
const hotkeys = {
|
|
650
|
-
delete: ['delete', 'cmd+backspace'],
|
|
651
|
-
deleteWord: ['ctrl+delete', 'cmd+alt+backspace', 'ctrl+alt+backspace'],
|
|
652
|
-
deleteSentence: ['ctrl+shift+delete', 'cmd+shift+delete'],
|
|
653
|
-
backspace: ['backspace'],
|
|
654
|
-
backspaceWord: ['ctrl+backspace'],
|
|
655
|
-
backspaceSentence: ['ctrl+shift+backspace', 'cmd+shift+backspace']
|
|
656
|
-
};
|
|
657
|
-
```
|
|
658
|
-
|
|
659
|
-
#### :bug: Bug Fix
|
|
660
|
-
|
|
661
|
-
- fixed sync between WYSIWYG and source editor
|
|
662
|
-
|
|
663
|
-
## 3.10.1
|
|
664
|
-
|
|
665
|
-
#### :boom: Breaking Change
|
|
666
|
-
|
|
667
|
-
- Update `TypeScript@4.5.2`
|
|
668
|
-
- In `IJodit.getEditorValue` added second argument for using with `afterGetValueFromEditor` event.
|
|
669
|
-
You can see example in `source` plugin.
|
|
670
|
-
- In UIButton `state.status` changed to `state.variant`
|
|
671
|
-
- `beforeClose` event can prevent closing the dialog
|
|
672
|
-
|
|
673
|
-
```js
|
|
674
|
-
const dialog = new Jodit.modules.Dialog();
|
|
675
|
-
dialog.setContent('Hello world!').open();
|
|
676
|
-
dialog.e.on('beforeClose', () => confirm('Are you sure?'));
|
|
677
|
-
```
|
|
678
|
-
|
|
679
|
-
#### :bug: Bug Fix
|
|
680
|
-
|
|
681
|
-
- fix: Proxy blur event to parent triggered on the ACE editor
|
|
682
|
-
|
|
683
|
-
## 3.9.5
|
|
684
|
-
|
|
685
|
-
#### :rocket: New Feature
|
|
686
|
-
|
|
687
|
-
- [Feature request: Open the inline toolbar without having to highlight text. #600](https://github.com/xdan/jodit/issues/600)
|
|
688
|
-
Allow open inline toolbar. This feature is implemented on the basis of the `inline-popup` plugin, a setting has been
|
|
689
|
-
added to it: `popup.toolbar`, which lists the buttons that will be shown in such a toolbar. Added the `showInline`
|
|
690
|
-
method to the `ToolbarEditorCollection` itself:
|
|
691
|
-
|
|
692
|
-
```js
|
|
693
|
-
const editor = Jodit.make('#editor', {
|
|
694
|
-
preset: 'inline',
|
|
695
|
-
popup: {
|
|
696
|
-
toolbar: Jodit.atom(['bold', 'italic', 'image'])
|
|
697
|
-
}
|
|
698
|
-
});
|
|
699
|
-
editor.s.focus();
|
|
700
|
-
|
|
701
|
-
editor.toolbar.showInline();
|
|
702
|
-
// or
|
|
703
|
-
editor.e.fire('showInlineToolbar');
|
|
704
|
-
```
|
|
705
|
-
|
|
706
|
-
Also added `ToolbarCollection.hide` and `ToolbarCollection.show` methods.
|
|
707
|
-
|
|
708
|
-
```js
|
|
709
|
-
const editor = Jodit.make('#editor');
|
|
710
|
-
editor.toolbar.hide();
|
|
711
|
-
editor.toolbar.show();
|
|
712
|
-
```
|
|
713
|
-
|
|
714
|
-
- Allow use prototype as component name
|
|
715
|
-
|
|
716
|
-
```js
|
|
717
|
-
console.log(Jodit.modules.UIButton.getFullElName('element')); // jodit-ui-button__element
|
|
718
|
-
console.log(Jodit.modules.UIButton.componentName); // jodit-ui-button
|
|
719
|
-
```
|
|
720
|
-
|
|
721
|
-
- [Remember last opened folder with FileBrowser #675](https://github.com/xdan/jodit/issues/675)
|
|
722
|
-
Boolean option `filebrowser.saveStateInStorage` split to dictionary:
|
|
723
|
-
|
|
724
|
-
```typescript
|
|
725
|
-
interface IFileBrowserOptions {
|
|
726
|
-
saveStateInStorage:
|
|
727
|
-
| false
|
|
728
|
-
| {
|
|
729
|
-
storeLastOpenedFolder?: boolean;
|
|
730
|
-
storeView?: boolean;
|
|
731
|
-
storeSortBy?: boolean;
|
|
732
|
-
};
|
|
733
|
-
}
|
|
734
|
-
```
|
|
735
|
-
|
|
736
|
-
By default:
|
|
737
|
-
|
|
738
|
-
```js
|
|
739
|
-
opt = {
|
|
740
|
-
saveStateInStorage: {
|
|
741
|
-
storeLastOpenedFolder: true,
|
|
742
|
-
storeView: true,
|
|
743
|
-
storeSortBy: true
|
|
744
|
-
}
|
|
745
|
-
};
|
|
746
|
-
```
|
|
747
|
-
|
|
748
|
-
Disable it:
|
|
749
|
-
|
|
750
|
-
```js
|
|
751
|
-
Jodit.make('#editor', {
|
|
752
|
-
filebrowser: {
|
|
753
|
-
saveStateInStorage: false
|
|
754
|
-
}
|
|
755
|
-
});
|
|
756
|
-
|
|
757
|
-
// or
|
|
758
|
-
|
|
759
|
-
Jodit.make('#editor', {
|
|
760
|
-
filebrowser: {
|
|
761
|
-
saveStateInStorage: {
|
|
762
|
-
storeLastOpenedFolder: false
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
});
|
|
766
|
-
```
|
|
767
|
-
|
|
768
|
-
- [Spacer in Button Toolbar](https://github.com/xdan/jodit/issues/713)
|
|
769
|
-
In addition to the `|` metacharacters and `\n` which stand for separator and newline, the `---` metacharacter has
|
|
770
|
-
appeared, which allows you to add a spacer element which pushes all buttons behind the spacer to the right side of the
|
|
771
|
-
toolbar and creates space in the middle.
|
|
772
|
-
|
|
773
|
-
```js
|
|
774
|
-
Jodit.make('#editor', {
|
|
775
|
-
buttons: [
|
|
776
|
-
'source',
|
|
777
|
-
'bold',
|
|
778
|
-
'|',
|
|
779
|
-
'---',
|
|
780
|
-
'|',
|
|
781
|
-
'brush',
|
|
782
|
-
'about',
|
|
783
|
-
'\n',
|
|
784
|
-
'italic'
|
|
785
|
-
]
|
|
786
|
-
});
|
|
787
|
-
```
|
|
788
|
-
|
|
789
|
-
## 3.9.4
|
|
790
|
-
|
|
791
|
-
#### :rocket: New Feature
|
|
792
|
-
|
|
793
|
-
- Changed style resize rectangle for resize image or table
|
|
794
|
-
- Added link `POWERED BY JODIT` in statusbar
|
|
795
|
-
- Changed icon for resize handle in the bottom right corner
|
|
796
|
-
|
|
797
|
-
#### :bug: Bug Fix
|
|
798
|
-
|
|
799
|
-
- Fixed popup color for dark theme
|
|
800
|
-
- [Change html tags when list style on/off #738](https://github.com/xdan/jodit/issues/738)
|
|
801
|
-
- [order list/unorder list in source view #732](https://github.com/xdan/jodit/issues/732)
|
|
802
|
-
- [dots supplementary buttons shown incorrectly #692](https://github.com/xdan/jodit/issues/692)
|
|
803
|
-
- [Jodit adds unexpected <span> tag when user lefts cursor inside <script> tag #687](https://github.com/xdan/jodit/issues/687)
|
|
804
|
-
|
|
805
|
-
## 3.9.3
|
|
806
|
-
|
|
807
|
-
#### :boom: Breaking Change
|
|
808
|
-
|
|
809
|
-
- The style `table-layout: fixed` has been removed from tables. When inserting a table, the width of the columns is
|
|
810
|
-
immediately set for it.
|
|
811
|
-
|
|
812
|
-
## 3.9.1
|
|
813
|
-
|
|
814
|
-
#### :boom: Breaking Change
|
|
815
|
-
|
|
816
|
-
- Removed `Travis.CI` 👋👋👋
|
|
817
|
-
- `EventsNative` module - renamed to `EventEmitter`
|
|
818
|
-
|
|
819
|
-
```js
|
|
820
|
-
const editor = Jodit.make('#editor');
|
|
821
|
-
|
|
822
|
-
console.log(editor.e instanceof Jodit.modules.EventEmitter); // true
|
|
823
|
-
console.log(editor.events instanceof Jodit.modules.EventEmitter); // true
|
|
824
|
-
console.log(editor.events instanceof Jodit.modules.EventsNative); // true, deprecated
|
|
825
|
-
```
|
|
826
|
-
|
|
827
|
-
- BOOM: Move Ajax class into `request` folder.
|
|
828
|
-
|
|
829
|
-
```js
|
|
830
|
-
import { Ajax } from 'jodit/src/core/request';
|
|
831
|
-
```
|
|
832
|
-
|
|
833
|
-
- Changed the signature of the send method in the Ajax API and is closer to the fetch () API
|
|
834
|
-
|
|
835
|
-
```js
|
|
836
|
-
const editor = Jodit.make('#editor');
|
|
837
|
-
|
|
838
|
-
// Before
|
|
839
|
-
await new Ajax(editor, {
|
|
840
|
-
url: 'index.php'
|
|
841
|
-
}).send(); // {success: true, data: ...}
|
|
842
|
-
|
|
843
|
-
// Now
|
|
844
|
-
await new Ajax(editor, {
|
|
845
|
-
url: 'index.php'
|
|
846
|
-
})
|
|
847
|
-
.send()
|
|
848
|
-
.then(resp => resp.json()); // {success: true, data: ...}
|
|
849
|
-
```
|
|
850
|
-
|
|
851
|
-
- In `.npmignore` added:
|
|
852
|
-
- build-system/
|
|
853
|
-
- test.html
|
|
854
|
-
- .eslintrc.js
|
|
855
|
-
- .eslintignore
|
|
856
|
-
- .editorconfig
|
|
857
|
-
- .gitignore
|
|
858
|
-
- .prettierrc.json
|
|
859
|
-
- .stylelintrc
|
|
860
|
-
- app.css
|
|
861
|
-
- composer.json
|
|
862
|
-
|
|
863
|
-
#### :rocket: New Feature
|
|
864
|
-
|
|
865
|
-
In `Dom` module added `nextGen` and `eachGen` methods. These methods return generators:
|
|
866
|
-
|
|
867
|
-
```js
|
|
868
|
-
const editor = Jodit.make('#editor');
|
|
869
|
-
editor.value = '<ul><li><img>1</li><li>2</li><li>3</li></ul>';
|
|
870
|
-
|
|
871
|
-
const gen = Dom.nextGen(editor.editor.querySelector('img'), editor.editor);
|
|
872
|
-
let next = gen.next();
|
|
873
|
-
|
|
874
|
-
while (!next.done) {
|
|
875
|
-
console.log(next.value); // 1, LI, 2, LI, 3
|
|
876
|
-
next = gen.next();
|
|
877
|
-
}
|
|
878
|
-
|
|
879
|
-
const gen2 = Dom.eachGen(editor.editor);
|
|
880
|
-
let next2 = gen2.next();
|
|
881
|
-
|
|
882
|
-
while (!next2.done) {
|
|
883
|
-
console.log(next2.value); // UL, LI, 1, LI, 2, LI, 3
|
|
884
|
-
next2 = gen2.next();
|
|
885
|
-
}
|
|
886
|
-
```
|
|
887
|
-
|
|
888
|
-
#### :bug: Bug Fix
|
|
889
|
-
|
|
890
|
-
- [Indent doesn't work in table cell #729](https://github.com/xdan/jodit/issues/729)
|
|
891
|
-
- [cleanHTML replaceOldTags doesn't seem to do anything #728](https://github.com/xdan/jodit/issues/728)
|
|
892
|
-
- [Fixed Resize column table #712](https://github.com/xdan/jodit/issues/712)
|
|
893
|
-
- [Font and font size settings are not applied to all text if part of it has been changed earlier #706](https://github.com/xdan/jodit/issues/706)
|
|
894
|
-
- [Delete multi rows and colums #690](https://github.com/xdan/jodit/issues/690)
|
|
895
|
-
- [When {"enter": "BR"} option is enabled, adding a heading to the text causes it to become wrapped by a "h\*" tag #547](https://github.com/xdan/jodit/issues/547)
|
|
896
|
-
- [Issue with clear format on <p> tags #680](https://github.com/xdan/jodit/issues/680)
|
|
897
|
-
|
|
898
|
-
## 3.8.5
|
|
899
|
-
|
|
900
|
-
#### :house: Internal
|
|
901
|
-
|
|
902
|
-
- The build system is divided into modules and is now located in the 'build-system' folder, the `src/utils` folder has
|
|
903
|
-
been moved to it.
|
|
904
|
-
|
|
905
|
-
#### :bug: Bug Fix
|
|
906
|
-
|
|
907
|
-
- [When I merged some cells by dragging it to change its width. #737](https://github.com/xdan/jodit/issues/737)
|
|
908
|
-
- [Color dropdown looks broken #736](https://github.com/xdan/jodit/issues/736)
|
|
909
|
-
- [all popups and dialogs are outside shadow dom #731](https://github.com/xdan/jodit/issues/731)
|
|
910
|
-
- [shadow dom browser support #730](https://github.com/xdan/jodit/issues/730)
|
|
911
|
-
- [fix removal of attributes width and height when editing images](https://github.com/xdan/jodit/pull/733)
|
|
912
|
-
- Fixed work in IE11
|
|
913
|
-
- [toolbar menus are almost not visible on IE11 #458](https://github.com/xdan/jodit/issues/458)
|
|
914
|
-
|
|
915
|
-
## 3.8.4
|
|
916
|
-
|
|
917
|
-
#### :rocket: New Feature
|
|
918
|
-
|
|
919
|
-
- В eventEmitter добавлены методы:
|
|
920
|
-
- `mute(event?: string)` Doesn't start any handler;
|
|
921
|
-
- `isMuted(event?: string)` No handlers are triggered for the event
|
|
922
|
-
- `unmute(event?: string)` Returns event handling
|
|
923
|
-
|
|
924
|
-
```js
|
|
925
|
-
const editor = Jodit.make('#editor');
|
|
926
|
-
|
|
927
|
-
editor.events.on('change', () => {
|
|
928
|
-
console.log(editor.value);
|
|
929
|
-
});
|
|
930
|
-
editor.value = '1'; // Console '1'
|
|
931
|
-
|
|
932
|
-
editor.events.mute('change');
|
|
933
|
-
editor.value = '2'; // Nothing
|
|
934
|
-
editor.events.unmute('change');
|
|
935
|
-
editor.value = '3'; // Console '3'
|
|
936
|
-
```
|
|
937
|
-
|
|
938
|
-
## 3.8.3
|
|
939
|
-
|
|
940
|
-
#### :boom: Breaking Change
|
|
941
|
-
|
|
942
|
-
- beforeSetNativeEditorValue - get object {value: string} and can change value
|
|
943
|
-
- Added `resizer.forImageChangeAttributes=true` option. Issue: https://github.com/xdan/jodit/issues/696
|
|
944
|
-
|
|
945
|
-
```js
|
|
946
|
-
// Disable
|
|
947
|
-
Jodit.make('#editor', {
|
|
948
|
-
resizer: {
|
|
949
|
-
forImageChangeAttributes: false
|
|
950
|
-
}
|
|
951
|
-
});
|
|
952
|
-
```
|
|
953
|
-
|
|
954
|
-
#### :house: Internal
|
|
955
|
-
|
|
956
|
-
- The Source button has been moved to the depth of the toolbar as it is not cool for the WYSIWYG editor
|
|
957
|
-
|
|
958
|
-
#### :bug: Bug Fix
|
|
959
|
-
|
|
960
|
-
- [Trying to get in touch regarding a security issue #702](https://github.com/xdan/jodit/issues/702)
|
|
961
|
-
- [Scrolling to top of editor bug in Safari. #715](https://github.com/xdan/jodit/issues/715)
|
|
962
|
-
- [Refused to run the JavaScript URL because it violates the following Content Security Policy directive #716](https://github.com/xdan/jodit/issues/716)
|
|
963
|
-
- [Popup doesn't follow the toolbar on scroll #703](https://github.com/xdan/jodit/issues/703)
|
|
964
|
-
- Fixed the link dialog: the unlink button does not work in some cases, and the selection is not restored
|
|
965
|
-
|
|
966
|
-
## 3.8.1
|
|
967
|
-
|
|
968
|
-
#### :boom: Breaking Change
|
|
969
|
-
|
|
970
|
-
- Rename `Style` to `CommitStyle`
|
|
971
|
-
|
|
972
|
-
```js
|
|
973
|
-
const editor = Jodit.make('#editor');
|
|
974
|
-
|
|
975
|
-
const style = new Jodit.ns.CommitStyle({
|
|
976
|
-
style: {
|
|
977
|
-
color: 'red'
|
|
978
|
-
}
|
|
979
|
-
});
|
|
980
|
-
|
|
981
|
-
editor.execCommand('selectall');
|
|
982
|
-
style.apply(editor);
|
|
983
|
-
```
|
|
984
|
-
|
|
985
|
-
- `Dom` refactoring: from `isNode`,`isElement`,`isHTMLElement` removed `Window` argument.
|
|
986
|
-
|
|
987
|
-
Before
|
|
988
|
-
|
|
989
|
-
```js
|
|
990
|
-
const editor = Jodit.make('#editor', { iframe: true });
|
|
991
|
-
Dom.isNode({}, editor.ow); // false
|
|
992
|
-
Dom.isNode(document.body, window); // true
|
|
993
|
-
Dom.isNode(document.body, editor.ow); // true
|
|
994
|
-
Dom.isNode(editor.od.body, editor.ow); // true
|
|
995
|
-
Dom.isNode(editor.ed.body, editor.ow); // false
|
|
996
|
-
```
|
|
997
|
-
|
|
998
|
-
Now
|
|
999
|
-
|
|
1000
|
-
```js
|
|
1001
|
-
const editor = Jodit.make('#editor', { iframe: true });
|
|
1002
|
-
Dom.isNode({}); // false
|
|
1003
|
-
Dom.isNode(document.body); // true
|
|
1004
|
-
Dom.isNode(document.body); // true
|
|
1005
|
-
Dom.isNode(editor.od.body); // true
|
|
1006
|
-
Dom.isNode(editor.ed.body); // true
|
|
1007
|
-
```
|
|
1008
|
-
|
|
1009
|
-
#### :rocket: New Feature
|
|
1010
|
-
|
|
1011
|
-
- Added `KeyArrowOutside`, allowing to go outside an inline element if there is no other element after that.
|
|
1012
|
-
- Dictionary of variable values in css, a complete list can be found
|
|
1013
|
-
here https://github.com/xdan/jodit/blob/master/src/styles/variables.less#L25
|
|
1014
|
-
```js
|
|
1015
|
-
const editor = Jodit.make('#editor', {
|
|
1016
|
-
styleValues: {
|
|
1017
|
-
'color-icon': '#0f0',
|
|
1018
|
-
'color-text': 'red',
|
|
1019
|
-
colorBorder: 'black',
|
|
1020
|
-
'color-panel': 'blue'
|
|
1021
|
-
}
|
|
1022
|
-
});
|
|
1023
|
-
```
|
|
1024
|
-
|
|
1025
|
-
#### :bug: Bug Fix
|
|
1026
|
-
|
|
1027
|
-
- [Toolbar buttons are not read by screen reader correctly #725](https://github.com/xdan/jodit/issues/725)
|
|
1028
|
-
- [Bug : table & background color #722](https://github.com/xdan/jodit/issues/722)
|
|
1029
|
-
- [Video links are not reliably converted to an IFrame. #714](https://github.com/xdan/jodit/issues/714)
|
|
1030
|
-
- [Eraser delete "<a>" tag! #705](https://github.com/xdan/jodit/issues/705)
|
|
1031
|
-
|
|
1032
|
-
## 3.7.1
|
|
1033
|
-
|
|
1034
|
-
#### :boom: Breaking Change
|
|
1035
|
-
|
|
1036
|
-
- Update Typescript 4.3.2 - and used override keyword.
|
|
1037
|
-
- `noImplicitOverride` set true.
|
|
1038
|
-
- Enable `@typescript-eslint/explicit-module-boundary-types`
|
|
1039
|
-
- Remove `type` helper. Buy `jQuery` - it was your last part.
|
|
1040
|
-
|
|
1041
|
-
#### :bug: Bug Fix
|
|
1042
|
-
|
|
1043
|
-
- [hovering over the text editor triggers hover over source button instantly #138](https://github.com/jodit/jodit-react/issues/138)
|
|
1044
|
-
- Allow insert in image dialog - relative path
|
|
1045
|
-
|
|
1046
|
-
#### :rocket: New Feature
|
|
1047
|
-
|
|
1048
|
-
- Added `idle` decorator - allow wrap class method in `requestIdleCallback`
|
|
1049
|
-
|
|
1050
|
-
```ts
|
|
1051
|
-
@component
|
|
1052
|
-
class UIInput extends UIElement {
|
|
1053
|
-
@idle()
|
|
1054
|
-
onSomeEvent() {
|
|
1055
|
-
console.log('Some data');
|
|
1056
|
-
}
|
|
1057
|
-
}
|
|
1058
|
-
|
|
1059
|
-
const elm = new UIInput(jodit);
|
|
1060
|
-
elm.onSomeEvent();
|
|
1061
|
-
for (let i = 0; i < 5; i += 1) {
|
|
1062
|
-
console.log(i);
|
|
1063
|
-
}
|
|
1064
|
-
```
|
|
1065
|
-
|
|
1066
|
-
Output
|
|
1067
|
-
|
|
1068
|
-
```
|
|
1069
|
-
1
|
|
1070
|
-
2
|
|
1071
|
-
3
|
|
1072
|
-
4
|
|
1073
|
-
Some data
|
|
1074
|
-
```
|
|
1075
|
-
|
|
1076
|
-
## 3.6.18
|
|
1077
|
-
|
|
1078
|
-
#### :bug: Bug Fix
|
|
1079
|
-
|
|
1080
|
-
- Fixed table cells selection
|
|
1081
|
-
- [isUrl add rtmp schema #677](https://github.com/xdan/jodit/issues/677)
|
|
1082
|
-
- [The editor is very slow when working with tables in IE #673](https://github.com/xdan/jodit/issues/673)
|
|
1083
|
-
|
|
1084
|
-
## 3.6.17
|
|
1085
|
-
|
|
1086
|
-
#### :rocket: New Feature
|
|
1087
|
-
|
|
1088
|
-
- Added `IJodit.waitForReady(): Promise<IJodit>` method.
|
|
1089
|
-
|
|
1090
|
-
```js
|
|
1091
|
-
const jodit = Jodit.make('#editor', {
|
|
1092
|
-
extraPlugins: ['myPlugin']
|
|
1093
|
-
});
|
|
1094
|
-
|
|
1095
|
-
await jodit.waitForReady(); // wait for all plugins will be initialised
|
|
1096
|
-
|
|
1097
|
-
jodit.e.fire('someAsyncLoadedPluginEvent', test => {
|
|
1098
|
-
alert(test);
|
|
1099
|
-
});
|
|
1100
|
-
```
|
|
1101
|
-
|
|
1102
|
-
## 3.6.16
|
|
1103
|
-
|
|
1104
|
-
#### :bug: Bug Fix
|
|
1105
|
-
|
|
1106
|
-
- Fixed selection restoring after blur and set source mode.
|
|
1107
|
-
|
|
1108
|
-
## 3.6.15
|
|
1109
|
-
|
|
1110
|
-
#### :bug: Bug Fix
|
|
1111
|
-
|
|
1112
|
-
- Fixed bug with fixed width and auto height resizing
|
|
1113
|
-
|
|
1114
|
-
## 3.6.13
|
|
1115
|
-
|
|
1116
|
-
#### :bug: Bug Fix
|
|
1117
|
-
|
|
1118
|
-
- Hot fix `focus` plugin + `Select`.`save` deny set focus in another place.
|
|
1119
|
-
|
|
1120
|
-
#### :rocket: New Feature
|
|
1121
|
-
|
|
1122
|
-
- Added `Select`.`hasMarkers` method.
|
|
1123
|
-
|
|
1124
|
-
## 3.6.12
|
|
1125
|
-
|
|
1126
|
-
#### :rocket: New Feature
|
|
1127
|
-
|
|
1128
|
-
- Added `cursorAfterAutofocus=end` option inside `autofocus` plugin. Allow change default autofocus position. Possible
|
|
1129
|
-
values `start`, `end`.
|
|
1130
|
-
[autofocus plugin should focus on the end of the text #649](https://github.com/xdan/jodit/issues/649)
|
|
1131
|
-
|
|
1132
|
-
- Added `saveSelectionOnBlur=true` option inside `autofocus` plugin. Allow restore position after editor has focus after
|
|
1133
|
-
blur.
|
|
1134
|
-
|
|
1135
|
-
#### :house: Internal
|
|
1136
|
-
|
|
1137
|
-
- Renamed `autofocus` > `focus` plugin.
|
|
1138
|
-
|
|
1139
|
-
#### :boom: Breaking Change
|
|
1140
|
-
|
|
1141
|
-
- The `Dom`.`wrap` method changed signature - instead IJodit call with ICreate.
|
|
1142
|
-
- The `Select`.`restore` method is called with no arguments. It finds the range using the data attribute selector. In
|
|
1143
|
-
the `Select`.`save` method added `silent=false` argument.
|
|
1144
|
-
|
|
1145
|
-
Earlier
|
|
1146
|
-
|
|
1147
|
-
```js
|
|
1148
|
-
const editor = Jodit.make('#editor');
|
|
1149
|
-
const info = editor.s.save();
|
|
1150
|
-
// Change code
|
|
1151
|
-
editor.s.restore(info);
|
|
1152
|
-
```
|
|
1153
|
-
|
|
1154
|
-
Now
|
|
1155
|
-
|
|
1156
|
-
```js
|
|
1157
|
-
const editor = Jodit.make('#editor');
|
|
1158
|
-
|
|
1159
|
-
editor.s.save(true); // Do not change current range
|
|
1160
|
-
// Change code
|
|
1161
|
-
editor.s.restore();
|
|
1162
|
-
```
|
|
1163
|
-
|
|
1164
|
-
#### :bug: Bug Fix
|
|
1165
|
-
|
|
1166
|
-
- ['allowResizeX' option does not work without 'height' option #668](https://github.com/xdan/jodit/issues/668)
|
|
1167
|
-
- [Pasting link with a colon (:) crashes the browser/makes it unresponsive #667](https://github.com/xdan/jodit/issues/667)
|
|
1168
|
-
- [Inserting images/videos scrolls user to top of text area #644](https://github.com/xdan/jodit/issues/644)
|
|
1169
|
-
- [Change event is fired twice after inserting a link #636](https://github.com/xdan/jodit/issues/636)
|
|
1170
|
-
- [iPhone is out of text selection #632](https://github.com/xdan/jodit/issues/632)
|
|
1171
|
-
- [Pasting an MS Excel cell inserts the cell as image #474](https://github.com/xdan/jodit/issues/474)
|
|
1172
|
-
- Fixed a bug when FONT was inserted into the change history
|
|
1173
|
-
|
|
1174
|
-
## 3.6.10
|
|
1175
|
-
|
|
1176
|
-
#### :rocket: New Feature
|
|
1177
|
-
|
|
1178
|
-
- [Video alignment request #646](https://github.com/xdan/jodit/issues/646)
|
|
1179
|
-
- Set `component` property for source textarea with Jodit instance.
|
|
1180
|
-
|
|
1181
|
-
```html
|
|
1182
|
-
<textarea id="editor" cols="30" rows="10"></textarea>
|
|
1183
|
-
<script>
|
|
1184
|
-
Jodit.make('#editor');
|
|
1185
|
-
console.log(document.getElementById('editor').component.value);
|
|
1186
|
-
document.getElementById('editor').component.filebrowser.open();
|
|
1187
|
-
</script>
|
|
1188
|
-
```
|
|
1189
|
-
|
|
1190
|
-
#### :bug: Bug Fix
|
|
1191
|
-
|
|
1192
|
-
- Hide popup after deleting target node with key press.
|
|
1193
|
-
- [image-editor : onChangeSizeInput #663](https://github.com/xdan/jodit/issues/663)
|
|
1194
|
-
- [image-editor : switcher #662](https://github.com/xdan/jodit/issues/662) Replace buttons to switcher
|
|
1195
|
-
- [Error from ESlint, please fix it #658](https://github.com/xdan/jodit/issues/658)
|
|
1196
|
-
- [Support Mobile platform’s slide to type feature. #654](https://github.com/xdan/jodit/issues/654)
|
|
1197
|
-
- [The Jodit eraser tool doesn't work for <p> tags #652](https://github.com/xdan/jodit/issues/652)
|
|
1198
|
-
- [Links at the end of editor after unlink #648](https://github.com/xdan/jodit/issues/648)
|
|
1199
|
-
|
|
1200
|
-
## 3.6.7
|
|
1201
|
-
|
|
1202
|
-
#### :bug: Bug Fix
|
|
1203
|
-
|
|
1204
|
-
- When deleting a file via the context menu - the list of files was not updated.
|
|
1205
|
-
|
|
1206
|
-
#### :rocket: New Feature
|
|
1207
|
-
|
|
1208
|
-
- Added the ability to open a file browser and any dialog in a new window. To do this, you need to define
|
|
1209
|
-
the `ownerWindow` field. For example, this can be done so that the file browser opens in a separate popup window.
|
|
1210
|
-
|
|
1211
|
-
```js
|
|
1212
|
-
const editor = Jodit.make('#editor', {
|
|
1213
|
-
uploader: {
|
|
1214
|
-
url: 'https://xdsoft.net/jodit/connector/index.php?action=fileUpload'
|
|
1215
|
-
},
|
|
1216
|
-
filebrowser: {
|
|
1217
|
-
ajax: {
|
|
1218
|
-
url: 'https://xdsoft.net/jodit/connector/index.php'
|
|
1219
|
-
}
|
|
1220
|
-
}
|
|
1221
|
-
});
|
|
1222
|
-
|
|
1223
|
-
// Rewrite default filebrowser instance
|
|
1224
|
-
editor.e.on('getInstanceFileBrowser', options => {
|
|
1225
|
-
const win = window.open(
|
|
1226
|
-
'about:blank',
|
|
1227
|
-
'File Browser',
|
|
1228
|
-
'location=0,menubar=0,status=0,toolbar=0,titlebar=0,width=700,height=500'
|
|
1229
|
-
);
|
|
1230
|
-
|
|
1231
|
-
win.document.open();
|
|
1232
|
-
// Need append css for Jodit
|
|
1233
|
-
win.document.write(
|
|
1234
|
-
'<html><head><title>File Browser!</title><link rel="stylesheet" type="text/css" href="./build/jodit.min.css"></head><body></body></html>'
|
|
1235
|
-
);
|
|
1236
|
-
win.document.close();
|
|
1237
|
-
|
|
1238
|
-
const browser = new Jodit.modules.FileBrowser({
|
|
1239
|
-
ownerWindow: win, // set window which will be used for opening
|
|
1240
|
-
headerButtons: [], // disable buttns - close and fullscreen
|
|
1241
|
-
fullsize: true,
|
|
1242
|
-
events: {
|
|
1243
|
-
beforeOpen: () => {
|
|
1244
|
-
win.focus();
|
|
1245
|
-
},
|
|
1246
|
-
afterClose: () => {
|
|
1247
|
-
win.close();
|
|
1248
|
-
}
|
|
1249
|
-
},
|
|
1250
|
-
ajax: options.ajax
|
|
1251
|
-
});
|
|
1252
|
-
|
|
1253
|
-
browser.noCache = true; // Becouse window can be closed - create instance on every getInstanceFileBrowser
|
|
1254
|
-
|
|
1255
|
-
return browser;
|
|
1256
|
-
});
|
|
1257
|
-
```
|
|
1258
|
-
|
|
1259
|
-
## 3.6.5
|
|
1260
|
-
|
|
1261
|
-
#### :boom: Breaking Change
|
|
1262
|
-
|
|
1263
|
-
- Removed options: `useIframeResizer`, `useImgResizer`, `useTableResizer` from `resizer` plugin. Instead,
|
|
1264
|
-
added `allowResizeTags`.
|
|
1265
|
-
|
|
1266
|
-
```js
|
|
1267
|
-
Config.prototype.allowResizeTags = ['img', 'iframe', 'table', 'jodit'];
|
|
1268
|
-
```
|
|
1269
|
-
|
|
1270
|
-
## 3.6.2
|
|
1271
|
-
|
|
1272
|
-
#### :bug: Bug Fix
|
|
1273
|
-
|
|
1274
|
-
- [Error when resizing tables and tables cells](https://github.com/xdan/jodit/issues/611)
|
|
1275
|
-
- [Image and video resizing in the table does not work correctly](https://github.com/xdan/jodit/issues/528)
|
|
1276
|
-
- [The link popup closes when trying to add it to an image inside a table. #524](https://github.com/xdan/jodit/issues/524)
|
|
1277
|
-
- Fixed a bug when command `emptyTable` didn't work.
|
|
1278
|
-
|
|
1279
|
-
## 3.6.1
|
|
1280
|
-
|
|
1281
|
-
#### :bug: Bug Fix
|
|
1282
|
-
|
|
1283
|
-
- [<style> tag wrapping problem #620](https://github.com/xdan/jodit/issues/620)
|
|
1284
|
-
- [Disable Link Checking #618](https://github.com/xdan/jodit/issues/618)
|
|
1285
|
-
- [Changing text style undoes text alignment #614](https://github.com/xdan/jodit/issues/614)
|
|
1286
|
-
- [<section> tag is always wraped <p></p> once when toggle the wysiwyg/source mode #612](https://github.com/xdan/jodit/issues/612)
|
|
1287
|
-
- [Error when resizing tables and tables cells. #611](https://github.com/xdan/jodit/issues/611)
|
|
1288
|
-
- [Backspace and Delete have an errant character #597](https://github.com/xdan/jodit/issues/597)
|
|
1289
|
-
|
|
1290
|
-
#### :rocket: New Feature
|
|
1291
|
-
|
|
1292
|
-
- Added `classSpan` plugin. Applying some className to selected text. Thanks https://github.com/s-renier-taonix-fr
|
|
1293
|
-
|
|
1294
|
-
```js
|
|
1295
|
-
const editor = new Jodit('#editor', {
|
|
1296
|
-
controls: {
|
|
1297
|
-
classSpan: {
|
|
1298
|
-
list: {
|
|
1299
|
-
class1: 'Classe 1',
|
|
1300
|
-
class2: 'Classe 2',
|
|
1301
|
-
class3: 'Classe 3',
|
|
1302
|
-
class4: 'Classe 4',
|
|
1303
|
-
class5: 'Classe 5'
|
|
1304
|
-
}
|
|
1305
|
-
}
|
|
1306
|
-
}
|
|
1307
|
-
});
|
|
1308
|
-
```
|
|
1309
|
-
|
|
1310
|
-
- Added `UIFileInput` element.
|
|
1311
|
-
- Added `UIButtonGroup` element.
|
|
1312
|
-
|
|
1313
|
-
```ts
|
|
1314
|
-
const group = new UIButtonGroup(jodit, {
|
|
1315
|
-
label: 'Theme',
|
|
1316
|
-
name: 'theme',
|
|
1317
|
-
value: this.state.theme,
|
|
1318
|
-
radio: true,
|
|
1319
|
-
options: [
|
|
1320
|
-
{ value: 'default', text: 'Light' },
|
|
1321
|
-
{ value: 'dark', text: 'Dark' }
|
|
1322
|
-
],
|
|
1323
|
-
onChange: values => {
|
|
1324
|
-
this.state.theme = values[0].value as string;
|
|
1325
|
-
}
|
|
1326
|
-
});
|
|
1327
|
-
```
|
|
1328
|
-
|
|
1329
|
-
#### :house: Internal
|
|
1330
|
-
|
|
1331
|
-
- Enabled `"importsNotUsedAsValues": "error"` in `tsconfig`
|
|
1332
|
-
- Refactoring `Filebrowser` module
|
|
1333
|
-
- Refactoring `Dialog` module
|
|
1334
|
-
- Added "stylelint-config-idiomatic-order" in style linter
|
|
1335
|
-
- Added "en" bundle without another languages.
|
|
1336
|
-
- Replaced `Config` system. You can change default setting in you extensions.
|
|
1337
|
-
|
|
1338
|
-
```js
|
|
1339
|
-
// before
|
|
1340
|
-
const a = new Jodit();
|
|
1341
|
-
a.options.allowResizeY; // true
|
|
1342
|
-
Jodit.defaultOptions.allowResizeY = false;
|
|
1343
|
-
a.options.allowResizeY; // true
|
|
1344
|
-
|
|
1345
|
-
// Now
|
|
1346
|
-
const a = new Jodit();
|
|
1347
|
-
a.options.allowResizeY; // true
|
|
1348
|
-
Jodit.defaultOptions.allowResizeY = false;
|
|
1349
|
-
a.options.allowResizeY; // false
|
|
1350
|
-
```
|
|
1351
|
-
|
|
1352
|
-
- Added `promisify` mode in `debounce` and `throttle` decorators.
|
|
1353
|
-
- Removed `src/core/ui/form/validators/key-validator.ts`.
|
|
1354
|
-
- Added `Async`.`requestIdlePromise` method.
|
|
1355
|
-
- Removed `Helpers`.`extend` method.
|
|
1356
|
-
- Added `Helpers`.`loadImage` method.
|
|
1357
|
-
- Changed `render` method in state/ui system.
|
|
1358
|
-
|
|
1359
|
-
```js
|
|
1360
|
-
// Before
|
|
1361
|
-
@component()
|
|
1362
|
-
class UIBtn extends UIElement {
|
|
1363
|
-
className() {
|
|
1364
|
-
return 'UIBtn';
|
|
1365
|
-
}
|
|
1366
|
-
|
|
1367
|
-
createContainer() {
|
|
1368
|
-
const button = this.j.c.element('button');
|
|
1369
|
-
button.style.color = 'red';
|
|
1370
|
-
|
|
1371
|
-
button.classList.add(this.getFullElName('button'));
|
|
1372
|
-
|
|
1373
|
-
this.j.e.on('click', button, this.onClick);
|
|
1374
|
-
return button;
|
|
1375
|
-
}
|
|
1376
|
-
|
|
1377
|
-
@autobind onClick() {
|
|
1378
|
-
alert('click');
|
|
1379
|
-
}
|
|
1380
|
-
}
|
|
1381
|
-
|
|
1382
|
-
// Now
|
|
1383
|
-
@component()
|
|
1384
|
-
class UIBtn extends UIElement {
|
|
1385
|
-
className() {
|
|
1386
|
-
return 'UIBtn';
|
|
1387
|
-
}
|
|
1388
|
-
|
|
1389
|
-
render() {
|
|
1390
|
-
return `<button class="&__button" style="color:red"></button>`;
|
|
1391
|
-
}
|
|
1392
|
-
|
|
1393
|
-
@watch('container:click') onClick() {
|
|
1394
|
-
alert('click');
|
|
1395
|
-
}
|
|
1396
|
-
}
|
|
1397
|
-
```
|
|
1398
|
-
|
|
1399
|
-
and styles
|
|
1400
|
-
|
|
1401
|
-
```css
|
|
1402
|
-
.jodit-ui-btn__button {
|
|
1403
|
-
border: 1px solid #ccc;
|
|
1404
|
-
}
|
|
1405
|
-
```
|
|
1406
|
-
|
|
1407
|
-
## 3.5.4
|
|
1408
|
-
|
|
1409
|
-
#### :bug: Bug Fix
|
|
1410
|
-
|
|
1411
|
-
- [From Jodit 3.5.1 on, popup z-index is lower than the modal (Ant Design) z-index #587](https://github.com/xdan/jodit/issues/587)
|
|
1412
|
-
|
|
1413
|
-
## 3.5.3
|
|
1414
|
-
|
|
1415
|
-
#### :bug: Bug Fix
|
|
1416
|
-
|
|
1417
|
-
- Fixed ES2018 version https://github.com/xdan/jodit/issues/585
|
|
1418
|
-
|
|
1419
|
-
## 3.5.2
|
|
1420
|
-
|
|
1421
|
-
#### :house: Internal
|
|
1422
|
-
|
|
1423
|
-
- Added `async.requestIdleCallback` method https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback.
|
|
1424
|
-
- Focused inputs have box shadow.
|
|
1425
|
-
|
|
1426
|
-
#### :bug: Bug Fix
|
|
1427
|
-
|
|
1428
|
-
- [The link and image popup closes automatically on the inline preset. #582](https://github.com/xdan/jodit/issues/582)
|
|
1429
|
-
- [Preset:inline / Link Popup Closes #515](https://github.com/xdan/jodit/issues/515)
|
|
1430
|
-
- [Missing autobind-decorator types on the latest release #583](https://github.com/xdan/jodit/issues/583)
|
|
1431
|
-
- [link does not carry when dragging/dropping #581](https://github.com/xdan/jodit/issues/581)
|
|
1432
|
-
- [When editor is disabled/readonly (both), list controls are still available by using the arrow bug #572](https://github.com/xdan/jodit/issues/572)
|
|
1433
|
-
|
|
1434
|
-
#### :rocket: New Feature
|
|
1435
|
-
|
|
1436
|
-
##### New option `link.hotkeys: string[] = ['ctrl+k', 'cmd+k']`
|
|
1437
|
-
|
|
1438
|
-
Execute new command `openLinkDialog`. Related: https://github.com/xdan/jodit/issues/576
|
|
1439
|
-
|
|
1440
|
-
## 3.5.1
|
|
1441
|
-
|
|
1442
|
-
#### :house: Internal
|
|
1443
|
-
|
|
1444
|
-
- Removed `useAceEditor` option. [https://github.com/xdan/jodit/issues/544](https://github.com/xdan/jodit/issues/544)
|
|
1445
|
-
- Added `component` and `persistent` decorators
|
|
1446
|
-
|
|
1447
|
-
```typescript
|
|
1448
|
-
import { component, persistent } from './src/core/decorators';
|
|
1449
|
-
|
|
1450
|
-
@component
|
|
1451
|
-
class Item extends UIElement {
|
|
1452
|
-
@persistent
|
|
1453
|
-
options = {
|
|
1454
|
-
some: true
|
|
1455
|
-
};
|
|
1456
|
-
}
|
|
1457
|
-
|
|
1458
|
-
const item = new Item(jodit);
|
|
1459
|
-
console.log(item.options); // {some: true}
|
|
1460
|
-
|
|
1461
|
-
item.options = {
|
|
1462
|
-
some: false
|
|
1463
|
-
};
|
|
1464
|
-
|
|
1465
|
-
const item2 = new Item(jodit); // or reload page
|
|
1466
|
-
console.log(item.options); // {some: false}
|
|
1467
|
-
```
|
|
1468
|
-
|
|
1469
|
-
- In `UIInput` added `autocomplete`, `clearButton`, `icon` options.
|
|
1470
|
-
|
|
1471
|
-
#### :bug: Bug Fix
|
|
1472
|
-
|
|
1473
|
-
- [Clear formatting control does not clear all styles (keeps underline and strikethrough) #575](https://github.com/xdan/jodit/issues/575)
|
|
1474
|
-
- [Reset in size change not rescaling image #568](https://github.com/xdan/jodit/issues/568)
|
|
1475
|
-
- [Backspace in beginning of a _
|
|
1476
|
-
styled_ line does not affect the line positioning #567](https://github.com/xdan/jodit/issues/567)
|
|
1477
|
-
- [Table cell elements are always left-aligned #550](https://github.com/xdan/jodit/issues/550)
|
|
1478
|
-
- [editor.destruct throws error #543](https://github.com/xdan/jodit/issues/543)
|
|
1479
|
-
- [How I can get Iframe without parent element <jodit>...</jodit> #540](https://github.com/xdan/jodit/issues/540)
|
|
1480
|
-
- [Layout bug and drag&drop image loading #536](https://github.com/xdan/jodit/issues/536)
|
|
1481
|
-
- [Popups are not showing at all on Legacy Edge #531](https://github.com/xdan/jodit/issues/531)
|
|
1482
|
-
- Fixed a bug when the search bar was shown in the scrolling editor, the editor was scrolled up. And the search box was
|
|
1483
|
-
not in sticky mode.
|
|
1484
|
-
|
|
1485
|
-
#### :rocket: New Feature
|
|
1486
|
-
|
|
1487
|
-
##### Jodit.atom
|
|
1488
|
-
|
|
1489
|
-
`Jodit.Array` and `Jodit.Object` marked as deprecated. In `3.5` they will be removed. Instead, use `Jodit.atom`.
|
|
1490
|
-
|
|
1491
|
-
```
|
|
1492
|
-
const editor = Jodit.make('#editor', {
|
|
1493
|
-
buttons: Jodit.atom(['bold', 'italic']),
|
|
1494
|
-
popup: {
|
|
1495
|
-
img: Jodit.atom({
|
|
1496
|
-
// full rewrite
|
|
1497
|
-
})
|
|
1498
|
-
}
|
|
1499
|
-
});
|
|
1500
|
-
```
|
|
1501
|
-
|
|
1502
|
-
##### New option `observer.maxHistoryLength: number = Infinity`
|
|
1503
|
-
|
|
1504
|
-
Related with https://github.com/xdan/jodit/issues/574. In some cases need to limit size of undo history.
|
|
1505
|
-
|
|
1506
|
-
##### New options in `link.plugin`
|
|
1507
|
-
|
|
1508
|
-
- @property {"input"|"select"|""} link.modeClassName="input" Use an input text to ask the classname or a select or not
|
|
1509
|
-
ask
|
|
1510
|
-
- @property {boolean} link.selectMultipleClassName=true Allow multiple choises (to use with modeClassName="select")
|
|
1511
|
-
- @property {number} link.selectSizeClassName=3 The size of the select (to use with modeClassName="select")
|
|
1512
|
-
- @property {IUIOption[]} link.selectOptionsClassName=[] The list of the option for the select (to use with
|
|
1513
|
-
modeClassName="select")
|
|
1514
|
-
- ex: [
|
|
1515
|
-
- { value: "", text: "" },
|
|
1516
|
-
- { value: "val1", text: "text1" },
|
|
1517
|
-
- { value: "val2", text: "text2" },
|
|
1518
|
-
- { value: "val3", text: "text3" }
|
|
1519
|
-
- ]
|
|
1520
|
-
PR: https://github.com/xdan/jodit/pull/577 Thanks @s-renier-taonix-fr
|
|
1521
|
-
|
|
1522
|
-
##### New option `statusbar: boolean = true`
|
|
1523
|
-
|
|
1524
|
-
Issue https://github.com/xdan/jodit/issues/535
|
|
1525
|
-
|
|
1526
|
-
```
|
|
1527
|
-
const editor = Jodit.make('#editor', {
|
|
1528
|
-
statusbar: false
|
|
1529
|
-
});
|
|
1530
|
-
console.log(editor.statusbar.isShown); // false
|
|
1531
|
-
editor.statusbar.show();
|
|
1532
|
-
console.log(editor.statusbar.isShown); // true
|
|
1533
|
-
```
|
|
1534
|
-
|
|
1535
|
-
##### Buttons groups
|
|
1536
|
-
|
|
1537
|
-
The `buttons` option can contain named groups of buttons. Each plugin decides which button belongs to which group. Thus,
|
|
1538
|
-
if you turn off the plugin, then its buttons will not be shown either. Available
|
|
1539
|
-
groups: ["source", "font-style", "script", "list", "indent", "font", "color", "media", "state", "clipboard", "insert", "history", "search", "other", "info"]
|
|
1540
|
-
;
|
|
1541
|
-
|
|
1542
|
-
```js
|
|
1543
|
-
const editor = Jodit.make('#editor', {
|
|
1544
|
-
buttons: [
|
|
1545
|
-
{
|
|
1546
|
-
group: 'custom',
|
|
1547
|
-
buttons: []
|
|
1548
|
-
},
|
|
1549
|
-
'bold'
|
|
1550
|
-
]
|
|
1551
|
-
});
|
|
1552
|
-
|
|
1553
|
-
Jodit.defaultOptions.controls.someButton = {
|
|
1554
|
-
icon: 'pencil',
|
|
1555
|
-
command: 'selectall'
|
|
1556
|
-
};
|
|
1557
|
-
|
|
1558
|
-
Jodit.plugins.add('somePlugin', function (editor) {
|
|
1559
|
-
editor.registerButton({
|
|
1560
|
-
name: 'someButton',
|
|
1561
|
-
group: 'custom'
|
|
1562
|
-
});
|
|
1563
|
-
});
|
|
1564
|
-
```
|
|
1565
|
-
|
|
1566
|
-
##### Hotkeys for BackSpace and Delete and remove part of text
|
|
1567
|
-
|
|
1568
|
-
Added hotkey settings for Delete and Backspace buttons. And added hotkey `ctrl+backspace` for removing left part of
|
|
1569
|
-
text. Issue: [https://github.com/xdan/jodit/issues/532](https://github.com/xdan/jodit/issues/532)
|
|
1570
|
-
|
|
1571
|
-
```js
|
|
1572
|
-
Jodit.make('#editor', {
|
|
1573
|
-
delete: Jodit.atom({
|
|
1574
|
-
hotkeys: {
|
|
1575
|
-
delete: ['delete', 'cmd+backspace'],
|
|
1576
|
-
deleteWord: [
|
|
1577
|
-
'ctrl+delete',
|
|
1578
|
-
'cmd+alt+backspace',
|
|
1579
|
-
'ctrl+alt+backspace'
|
|
1580
|
-
],
|
|
1581
|
-
backspace: ['backspace'],
|
|
1582
|
-
backspaceWord: ['ctrl+backspace']
|
|
1583
|
-
}
|
|
1584
|
-
})
|
|
1585
|
-
});
|
|
1586
|
-
```
|
|
1587
|
-
|
|
1588
|
-
##### Added `one` method in event system
|
|
1589
|
-
|
|
1590
|
-
```js
|
|
1591
|
-
const editor = Jodit.make('#editor');
|
|
1592
|
-
|
|
1593
|
-
editor.events
|
|
1594
|
-
.one('keydown', () => {
|
|
1595
|
-
console.log('Fire only one time');
|
|
1596
|
-
})
|
|
1597
|
-
.on('keydown', () => {
|
|
1598
|
-
console.log('Fire everytime');
|
|
1599
|
-
});
|
|
1600
|
-
```
|
|
1601
|
-
|
|
1602
|
-
## 3.4.28
|
|
1603
|
-
|
|
1604
|
-
#### :bug: Bug Fix
|
|
1605
|
-
|
|
1606
|
-
- [#526 Editor disable in ifram with split_mode](https://github.com/xdan/jodit/issues/526)
|
|
1607
|
-
- [#519 Insert link scrolls user to top of text area](https://github.com/xdan/jodit/issues/519)
|
|
1608
|
-
|
|
1609
|
-
#### :rocket: New Feature
|
|
1610
|
-
|
|
1611
|
-
Added `extraIcons` option. By default, you can only install an icon from the Jodit suite. You can add your icon to the
|
|
1612
|
-
set using the `Jodit.modules.Icon.set (name, svg Code)` method. But for a declarative declaration, you can use this
|
|
1613
|
-
option.
|
|
1614
|
-
|
|
1615
|
-
```js
|
|
1616
|
-
Jodit.modules.Icon.set('someIcon', '<svg><path.../></svg>');
|
|
1617
|
-
const editor = Jodit.make({
|
|
1618
|
-
extraButtons: [
|
|
1619
|
-
{
|
|
1620
|
-
name: 'someButton',
|
|
1621
|
-
icon: 'someIcon'
|
|
1622
|
-
}
|
|
1623
|
-
]
|
|
1624
|
-
});
|
|
1625
|
-
```
|
|
1626
|
-
|
|
1627
|
-
```js
|
|
1628
|
-
const editor = Jodit.make({
|
|
1629
|
-
extraIcons: {
|
|
1630
|
-
someIcon: '<svg><path.../></svg>'
|
|
1631
|
-
},
|
|
1632
|
-
extraButtons: [
|
|
1633
|
-
{
|
|
1634
|
-
name: 'someButton',
|
|
1635
|
-
icon: 'someIcon'
|
|
1636
|
-
}
|
|
1637
|
-
]
|
|
1638
|
-
});
|
|
1639
|
-
```
|
|
1640
|
-
|
|
1641
|
-
```js
|
|
1642
|
-
const editor = Jodit.make({
|
|
1643
|
-
extraButtons: [
|
|
1644
|
-
{
|
|
1645
|
-
name: 'someButton',
|
|
1646
|
-
icon: '<svg><path.../></svg>'
|
|
1647
|
-
}
|
|
1648
|
-
]
|
|
1649
|
-
});
|
|
1650
|
-
```
|
|
1651
|
-
|
|
1652
|
-
## 3.4.27
|
|
1653
|
-
|
|
1654
|
-
- https://github.com/xdan/jodit/issues/514
|
|
1655
|
-
Run command insertUnorderedList & insertOrderedList should replace all headings (h1, h2, etc.) to ul>li
|
|
1656
|
-
|
|
1657
|
-
## 3.4.26
|
|
1658
|
-
|
|
1659
|
-
#### :bug: Bug Fix
|
|
1660
|
-
|
|
1661
|
-
- https://github.com/xdan/jodit/issues/506
|
|
1662
|
-
- https://github.com/xdan/jodit/issues/505
|
|
1663
|
-
- https://github.com/xdan/jodit/issues/503
|
|
1664
|
-
- https://github.com/xdan/jodit/issues/501
|
|
1665
|
-
- https://github.com/xdan/jodit/issues/500
|
|
1666
|
-
- https://github.com/xdan/jodit/issues/496
|
|
1667
|
-
- https://github.com/xdan/jodit/issues/495
|
|
1668
|
-
- https://github.com/xdan/jodit/issues/490
|
|
1669
|
-
|
|
1670
|
-
#### :rocket: New Feature
|
|
1671
|
-
|
|
1672
|
-
- https://github.com/xdan/jodit/issues/513 allow set percentage and another points inside width and height inputs
|
|
1673
|
-
|
|
1674
|
-
## 3.4.25
|
|
1675
|
-
|
|
1676
|
-
- https://github.com/xdan/jodit/issues/422
|
|
1677
|
-
- https://github.com/xdan/jodit/issues/375
|
|
1678
|
-
- https://github.com/xdan/jodit/issues/343
|
|
1679
|
-
|
|
1680
|
-
### Features
|
|
1681
|
-
|
|
1682
|
-
- https://github.com/xdan/jodit/issues/489
|
|
1683
|
-
In textIcons - besides `boolean`, you can put `function(key: string): boolean`;
|
|
1684
|
-
|
|
1685
|
-
```js
|
|
1686
|
-
var editor = new Jodit('#editor', {
|
|
1687
|
-
textIcons: key => key !== 'bold'
|
|
1688
|
-
});
|
|
1689
|
-
```
|
|
1690
|
-
|
|
1691
|
-
## 3.4.24
|
|
1692
|
-
|
|
1693
|
-
### Bug fixes
|
|
1694
|
-
|
|
1695
|
-
- https://github.com/xdan/jodit/issues/487
|
|
1696
|
-
- https://github.com/xdan/jodit/issues/486
|
|
1697
|
-
- https://github.com/xdan/jodit/issues/485
|
|
1698
|
-
- https://github.com/xdan/jodit/issues/483
|
|
1699
|
-
- https://github.com/xdan/jodit/issues/478
|
|
1700
|
-
- https://github.com/xdan/jodit/issues/476
|
|
1701
|
-
- https://github.com/xdan/jodit/issues/475
|
|
1702
|
-
- https://github.com/xdan/jodit/issues/473
|
|
1703
|
-
|
|
1704
|
-
## 3.4.22
|
|
1705
|
-
|
|
1706
|
-
- https://github.com/xdan/jodit/issues/467
|
|
1707
|
-
- https://github.com/xdan/jodit/issues/466
|
|
1708
|
-
|
|
1709
|
-
### Features
|
|
1710
|
-
|
|
1711
|
-
Added `maxHeight` option.
|
|
1712
|
-
|
|
1713
|
-
```js
|
|
1714
|
-
const jodit = Jodit.make('#editor', {
|
|
1715
|
-
minHeight: 200,
|
|
1716
|
-
maxHeight: 500
|
|
1717
|
-
});
|
|
1718
|
-
```
|
|
1719
|
-
|
|
1720
|
-
## 3.4.18
|
|
1721
|
-
|
|
1722
|
-
- https://github.com/xdan/jodit/issues/463
|
|
1723
|
-
- https://github.com/xdan/jodit/issues/446
|
|
1724
|
-
- https://github.com/xdan/jodit/issues/342
|
|
1725
|
-
- https://github.com/xdan/jodit/issues/340
|
|
1726
|
-
|
|
1727
|
-
## 3.4.16
|
|
1728
|
-
|
|
1729
|
-
### Bug fixes
|
|
1730
|
-
|
|
1731
|
-
- Fixed https://github.com/xdan/jodit/issues/456
|
|
1732
|
-
- Fixed https://github.com/xdan/jodit/issues/454
|
|
1733
|
-
- Fixed https://github.com/xdan/jodit/issues/453
|
|
1734
|
-
- Fixed https://github.com/xdan/jodit/issues/451
|
|
1735
|
-
- Fixed https://github.com/xdan/jodit/issues/444
|
|
1736
|
-
- Fixed https://github.com/xdan/jodit/issues/428
|
|
1737
|
-
- Fixed https://github.com/xdan/jodit/issues/427
|
|
1738
|
-
- Fixed https://github.com/xdan/jodit/issues/426
|
|
1739
|
-
- Fixed https://github.com/xdan/jodit/issues/222
|
|
1740
|
-
|
|
1741
|
-
### Features
|
|
1742
|
-
|
|
1743
|
-
- Added Find and Preview buttons
|
|
1744
|
-
- https://github.com/xdan/jodit/issues/417
|
|
1745
|
-
Added `defaultFontSizePoints` options. Possible values `pt` or `px`. By default: `px`
|
|
1746
|
-
|
|
1747
|
-
```js
|
|
1748
|
-
const editor = new Jodit('#editor', {
|
|
1749
|
-
defaultFontSizePoints: 'pt'
|
|
1750
|
-
});
|
|
1751
|
-
```
|
|
1752
|
-
|
|
1753
|
-
- https://github.com/xdan/jodit/issues/449
|
|
1754
|
-
Added `showCharsCounter` options.
|
|
1755
|
-
|
|
1756
|
-
```js
|
|
1757
|
-
const editor = new Jodit('#editor', {
|
|
1758
|
-
language: 'en',
|
|
1759
|
-
showCharsCounter: true,
|
|
1760
|
-
countHTMLChars: true
|
|
1761
|
-
});
|
|
1762
|
-
|
|
1763
|
-
editor.value = '<p>Simple text</p><p>Simple text</p>';
|
|
1764
|
-
const statusbar = editor.container.querySelector('.jodit-status-bar');
|
|
1765
|
-
|
|
1766
|
-
expect(statusbar.textContent.match(/Chars: 36/)).is.not.null;
|
|
1767
|
-
```
|
|
1768
|
-
|
|
1769
|
-
## 3.4.15
|
|
1770
|
-
|
|
1771
|
-
- Fixed https://github.com/xdan/jodit/issues/441
|
|
1772
|
-
- Fixed https://github.com/xdan/jodit/issues/437
|
|
1773
|
-
- Fixed https://github.com/xdan/jodit/issues/435
|
|
1774
|
-
- Fixed https://github.com/xdan/jodit/issues/431
|
|
1775
|
-
|
|
1776
|
-
## 3.4.13
|
|
1777
|
-
|
|
1778
|
-
### Bug fixes
|
|
1779
|
-
|
|
1780
|
-
- https://github.com/xdan/jodit/issues/379
|
|
1781
|
-
|
|
1782
|
-
## 3.4.12
|
|
1783
|
-
|
|
1784
|
-
### Bug fixes
|
|
1785
|
-
|
|
1786
|
-
- https://github.com/xdan/jodit/issues/424
|
|
1787
|
-
Fixed `allowTabNavigation` By default: `false`.
|
|
1788
|
-
|
|
1789
|
-
```js
|
|
1790
|
-
const jodit = new Jodit('#editor', {
|
|
1791
|
-
allowTabNavigation: true // enable tab navigation between toolbar's buttons
|
|
1792
|
-
});
|
|
1793
|
-
```
|
|
1794
|
-
|
|
1795
|
-
- https://github.com/xdan/jodit/issues/421
|
|
1796
|
-
- https://github.com/xdan/jodit/issues/420
|
|
1797
|
-
- https://github.com/xdan/jodit/issues/419
|
|
1798
|
-
- https://github.com/xdan/jodit/issues/418#issuecomment-651145548
|
|
1799
|
-
- https://github.com/xdan/jodit/issues/415
|
|
1800
|
-
|
|
1801
|
-
## 3.4.2
|
|
1802
|
-
|
|
1803
|
-
### Bug fixes
|
|
1804
|
-
|
|
1805
|
-
https://github.com/xdan/jodit/issues/359
|
|
1806
|
-
|
|
1807
|
-
## 3.4
|
|
1808
|
-
|
|
1809
|
-
### Bug fixes
|
|
1810
|
-
|
|
1811
|
-
- https://github.com/xdan/jodit/issues/408
|
|
1812
|
-
- https://github.com/xdan/jodit/issues/405
|
|
1813
|
-
- https://github.com/xdan/jodit/issues/404 See more in Features
|
|
1814
|
-
- https://github.com/xdan/jodit/issues/400
|
|
1815
|
-
- https://github.com/xdan/jodit/issues/398
|
|
1816
|
-
- https://github.com/xdan/jodit/issues/396
|
|
1817
|
-
- https://github.com/xdan/jodit/issues/393
|
|
1818
|
-
- https://github.com/xdan/jodit/issues/392
|
|
1819
|
-
- https://github.com/xdan/jodit/issues/391
|
|
1820
|
-
- https://github.com/xdan/jodit/issues/385
|
|
1821
|
-
- https://github.com/xdan/jodit/issues/378
|
|
1822
|
-
- https://github.com/xdan/jodit/issues/369
|
|
1823
|
-
- https://github.com/xdan/jodit/issues/360
|
|
1824
|
-
- https://github.com/xdan/jodit/issues/352
|
|
1825
|
-
- Fixed unde-redo subsystem for source mode
|
|
1826
|
-
|
|
1827
|
-
### Features
|
|
1828
|
-
|
|
1829
|
-
- All `less` variables were replaced to css custom properties for modern browsers.
|
|
1830
|
-
- Added `WrapNodes` plugin - it wrap all alone text node(or inline elements) inside `options.enter` element. You can
|
|
1831
|
-
disable this behaviour:
|
|
1832
|
-
|
|
1833
|
-
```js
|
|
1834
|
-
const editor = Jodit.make('#editor', {
|
|
1835
|
-
disablePlugins: ['WrapNodes']
|
|
1836
|
-
});
|
|
1837
|
-
```
|
|
1838
|
-
|
|
1839
|
-
- Added `shadowRoot` option for ShadowDom support.
|
|
1840
|
-
> ACE source editor does not support Shadow Dom
|
|
1841
|
-
|
|
1842
|
-
```html
|
|
1843
|
-
<div id="editor"></div>
|
|
1844
|
-
```
|
|
1845
|
-
|
|
1846
|
-
```js
|
|
1847
|
-
const app = document.getElementById('editor');
|
|
1848
|
-
app.attachShadow({ mode: 'open' });
|
|
1849
|
-
const root = app.shadowRoot;
|
|
1850
|
-
|
|
1851
|
-
root.innerHTML = `
|
|
1852
|
-
<link rel="stylesheet" href="./build/jodit.css"/>
|
|
1853
|
-
<h1>Jodit example in Shadow DOM</h1>
|
|
1854
|
-
<div id="edit"></div>
|
|
1855
|
-
`;
|
|
1856
|
-
|
|
1857
|
-
var editor = new Jodit(root.getElementById('edit'), {
|
|
1858
|
-
globalFullSize: false,
|
|
1859
|
-
shadowRoot: root
|
|
1860
|
-
});
|
|
1861
|
-
editor.value = '<p>start</p>';
|
|
1862
|
-
```
|
|
1863
|
-
|
|
1864
|
-
- From `NativeEvent.on` method was removed `selector` argument. It was `jQuery.live` style. Example:
|
|
1865
|
-
|
|
1866
|
-
```html
|
|
1867
|
-
<div class="test">
|
|
1868
|
-
<button>1</button>
|
|
1869
|
-
<button>2</button>
|
|
1870
|
-
</div>
|
|
1871
|
-
```
|
|
1872
|
-
|
|
1873
|
-
Earlier, you can use something like this
|
|
1874
|
-
|
|
1875
|
-
```js
|
|
1876
|
-
editor.events.on(
|
|
1877
|
-
document.querySelector('div'),
|
|
1878
|
-
'click',
|
|
1879
|
-
function () {
|
|
1880
|
-
alert(this.innerText);
|
|
1881
|
-
},
|
|
1882
|
-
'button'
|
|
1883
|
-
);
|
|
1884
|
-
```
|
|
1885
|
-
|
|
1886
|
-
Now, you should use `event.target`
|
|
1887
|
-
|
|
1888
|
-
```js
|
|
1889
|
-
editor.events.on(document.querySelector('div'), 'click', function (e) {
|
|
1890
|
-
alert(e.target.innerText);
|
|
1891
|
-
});
|
|
1892
|
-
```
|
|
1893
|
-
|
|
1894
|
-
- `Select.applyCSS` was renamed to `Select.applyStyle`
|
|
1895
|
-
|
|
1896
|
-
```js
|
|
1897
|
-
const editor = Jodit.make('#editor');
|
|
1898
|
-
editor.s.applyStyle({ color: 'red' }); // will add to all selection text - red color
|
|
1899
|
-
```
|
|
1900
|
-
|
|
1901
|
-
- `FileBrowser`, `Dialog` etc. modules which extend `View` has only one argument in the constructor - options. Before:
|
|
1902
|
-
|
|
1903
|
-
```js
|
|
1904
|
-
const editor = Jodit.make('#editor');
|
|
1905
|
-
const fb = Jodit.modules.FileBrowser(editor, {
|
|
1906
|
-
ajax: {
|
|
1907
|
-
url: 'https://xdsoft.net'
|
|
1908
|
-
}
|
|
1909
|
-
});
|
|
1910
|
-
fb.open();
|
|
1911
|
-
fb.close();
|
|
1912
|
-
|
|
1913
|
-
editor.destruct();
|
|
1914
|
-
fb.open(); // error, fb is already destructed
|
|
1915
|
-
```
|
|
1916
|
-
|
|
1917
|
-
Now:
|
|
1918
|
-
|
|
1919
|
-
```js
|
|
1920
|
-
const editor = Jodit.make('#editor');
|
|
1921
|
-
const fb = Jodit.modules.FileBrowser({
|
|
1922
|
-
ajax: {
|
|
1923
|
-
url: 'https://xdsoft.net'
|
|
1924
|
-
}
|
|
1925
|
-
});
|
|
1926
|
-
fb.open();
|
|
1927
|
-
fb.close();
|
|
1928
|
-
|
|
1929
|
-
editor.destruct();
|
|
1930
|
-
fb.open(); // Normal
|
|
1931
|
-
|
|
1932
|
-
fb.destruct();
|
|
1933
|
-
//or
|
|
1934
|
-
editor.e.on('beforeDestruct', () => {
|
|
1935
|
-
fb.destruct();
|
|
1936
|
-
});
|
|
1937
|
-
```
|
|
1938
|
-
|
|
1939
|
-
- Split `table` plugin on `select-cells` and `resize-cells` plugins. `useTableProcessor` was removed. Instead, use
|
|
1940
|
-
|
|
1941
|
-
```js
|
|
1942
|
-
Jodit.make('#editor', {
|
|
1943
|
-
table: {
|
|
1944
|
-
allowCellSelection: true,
|
|
1945
|
-
selectionCellStyle: 'border: 1px double #1e88e5 !important;',
|
|
1946
|
-
|
|
1947
|
-
allowCellResize: true,
|
|
1948
|
-
useExtraClassesOptions: true
|
|
1949
|
-
}
|
|
1950
|
-
});
|
|
1951
|
-
```
|
|
1952
|
-
|
|
1953
|
-
- All `less` files were moved near with TS. Class naming was changed closer to BEM.
|
|
1954
|
-
- Removed `PopupList` and `Popup`. Instead, use only `PopupMenu`.
|
|
1955
|
-
- Added `ui.button` and `ui.list` for working with buttons. `toolbar.button` extends `ui.button`. UIButton - is
|
|
1956
|
-
reactive:
|
|
1957
|
-
|
|
1958
|
-
```js
|
|
1959
|
-
const button = new UIButton();
|
|
1960
|
-
button.state.activated = true; // will automatically change setAttribute('area-pressed', 'true')
|
|
1961
|
-
button.state.icon = 'plus'; // will add `svg` icon in container
|
|
1962
|
-
|
|
1963
|
-
// or use `setState`
|
|
1964
|
-
button
|
|
1965
|
-
.setState({
|
|
1966
|
-
text: 'Click me'
|
|
1967
|
-
})
|
|
1968
|
-
.onAction(() => {
|
|
1969
|
-
Jodit.Alert('Click');
|
|
1970
|
-
})
|
|
1971
|
-
.appendTo(document.body); // will append it inside the body
|
|
1972
|
-
```
|
|
1973
|
-
|
|
1974
|
-
- In `tsconfig` added decorators supports. Methods that need binding binds with `@autobind` decorator.
|
|
1975
|
-
- Added `watch` decorator.
|
|
1976
|
-
- All filenames were renamed to kebab-case.
|
|
1977
|
-
- Added short aliases for. Can be used as chain - `this.j.e.on`
|
|
1978
|
-
- `this.jodit` => `this.j`
|
|
1979
|
-
- `this.options` => `this.o`
|
|
1980
|
-
- `this.selection` => `this.s`
|
|
1981
|
-
- `this.create` => `this.c`
|
|
1982
|
-
- `this.events` => `this.e`
|
|
1983
|
-
- `this.ownerDocument` => `this.od`
|
|
1984
|
-
- `this.ownerWindow` => `this.ow`
|
|
1985
|
-
- `this.editorDocument` => `this.ed`
|
|
1986
|
-
- `this.editorWindow` => `this.ew`
|
|
1987
|
-
- Change name `Dialog`.`setTitle` to `Dialog`.`setHeader`
|
|
1988
|
-
- Remove `Create.inside` field and instead added `Jodit.createInside`
|
|
1989
|
-
- In popups added position strategies: `'leftBottom' | 'rightBottom' | 'leftTop' | 'rightTop'` etc.
|
|
1990
|
-
|
|
1991
|
-
## 3.3.24
|
|
1992
|
-
|
|
1993
|
-
### BugFix
|
|
1994
|
-
|
|
1995
|
-
- [342](https://github.com/xdan/jodit/issues/342)
|
|
1996
|
-
- [343](https://github.com/xdan/jodit/issues/343)
|
|
1997
|
-
|
|
1998
|
-
## 3.3.23
|
|
1999
|
-
|
|
2000
|
-
### BugFix
|
|
2001
|
-
|
|
2002
|
-
- [#325](https://github.com/xdan/jodit/issues/325) [#239](https://github.com/xdan/jodit/issues/239)
|
|
2003
|
-
- [#327](https://github.com/xdan/jodit/issues/327)
|
|
2004
|
-
- [#292](https://github.com/xdan/jodit/issues/292)
|
|
2005
|
-
- [#203](https://github.com/xdan/jodit/issues/203)
|
|
2006
|
-
- [#339](https://github.com/xdan/jodit/issues/339)
|
|
2007
|
-
|
|
2008
|
-
### Feature
|
|
2009
|
-
|
|
2010
|
-
- Added `Dom`.`isTag` method
|
|
2011
|
-
|
|
2012
|
-
```js
|
|
2013
|
-
const editor = Jodit.make('#editor');
|
|
2014
|
-
|
|
2015
|
-
const a = editor.createInside.element('a');
|
|
2016
|
-
const br = document.createElement('br');
|
|
2017
|
-
|
|
2018
|
-
Jodit.modules.Dom.isTag(a, 'a'); // true
|
|
2019
|
-
Jodit.modules.Dom.isTag(br, 'br'); // true
|
|
2020
|
-
```
|
|
2021
|
-
|
|
2022
|
-
- Added `Helpers`.`call` method
|
|
2023
|
-
|
|
2024
|
-
```js
|
|
2025
|
-
const f = Math.random();
|
|
2026
|
-
Jodit.modules.Helpers.call(f > 0.5 ? Math.ceil : Math.floor, f);
|
|
2027
|
-
```
|
|
2028
|
-
|
|
2029
|
-
- Added `Helpers`.`position` method - Helper function to get an element's exact position
|
|
2030
|
-
|
|
2031
|
-
```js
|
|
2032
|
-
console.log(Jodit.modules.Helpers.position(editor.editor.querySelector('p')));
|
|
2033
|
-
```
|
|
2034
|
-
|
|
2035
|
-
## 3.3.19
|
|
2036
|
-
|
|
2037
|
-
### BugFix
|
|
2038
|
-
|
|
2039
|
-
- Fixed a lots of bugs inside `link` plugin
|
|
2040
|
-
[#331](https://github.com/xdan/jodit/issues/331)
|
|
2041
|
-
[#334](https://github.com/xdan/jodit/issues/334)
|
|
2042
|
-
[#334](https://github.com/xdan/jodit/issues/334)
|
|
2043
|
-
[#235](https://github.com/xdan/jodit/issues/235)
|
|
2044
|
-
|
|
2045
|
-
### Feature
|
|
2046
|
-
|
|
2047
|
-
- In `link` plugin added `formTemplate` and `formClassName` options [#333](https://github.com/xdan/jodit/issues/333)
|
|
2048
|
-
|
|
2049
|
-
```js
|
|
2050
|
-
const editor = getJodit({
|
|
2051
|
-
link: {
|
|
2052
|
-
formTemplate: function () {
|
|
2053
|
-
return '<form class="form_url"><input ref="url_input" type="url"><button>save</button></form>';
|
|
2054
|
-
},
|
|
2055
|
-
formClassName: 'some_class'
|
|
2056
|
-
}
|
|
2057
|
-
});
|
|
2058
|
-
```
|
|
2059
|
-
|
|
2060
|
-
- Added deprecated mechanism. Some methods will not be removed and only will be marked as deprecated until major
|
|
2061
|
-
release. [#330](https://github.com/xdan/jodit/issues/330)
|
|
2062
|
-
|
|
2063
|
-
## 3.3.16
|
|
2064
|
-
|
|
2065
|
-
Added `createAttributes` option [#243](https://github.com/xdan/jodit/issues/243)
|
|
2066
|
-
All elements which will be inserted in editor will be created with these attributes
|
|
2067
|
-
|
|
2068
|
-
```js
|
|
2069
|
-
const editor2 = Jodit.make('#editor', {
|
|
2070
|
-
createAttributes: {
|
|
2071
|
-
div: {
|
|
2072
|
-
class: 'test'
|
|
2073
|
-
},
|
|
2074
|
-
ul: function (ul) {
|
|
2075
|
-
ul.classList.add('ui-test');
|
|
2076
|
-
}
|
|
2077
|
-
}
|
|
2078
|
-
});
|
|
2079
|
-
|
|
2080
|
-
const div2 = editor2.createInside.div();
|
|
2081
|
-
expect(div2.className).equals('test');
|
|
2082
|
-
|
|
2083
|
-
const ul = editor2.createInside.element('ul');
|
|
2084
|
-
expect(ul.className).equals('ui-test');
|
|
2085
|
-
```
|
|
2086
|
-
|
|
2087
|
-
## 3.3.15
|
|
2088
|
-
|
|
2089
|
-
### Bugfix
|
|
2090
|
-
|
|
2091
|
-
Fixed SPLIT_MODE
|
|
2092
|
-
|
|
2093
|
-
### Feature
|
|
2094
|
-
|
|
2095
|
-
Added `editHTMLDocumentMode` in order to allow the user to edit the entire
|
|
2096
|
-
document [#241](https://github.com/xdan/jodit/issues/241).
|
|
2097
|
-
|
|
2098
|
-
Also added `iframeTitle` and `iframeDoctype` options
|
|
2099
|
-
|
|
2100
|
-
```js
|
|
2101
|
-
const editor = Jodit.make('#editor', {
|
|
2102
|
-
iframe: true,
|
|
2103
|
-
iframeTitle: 'Hello world!',
|
|
2104
|
-
iframeDoctype: '<!DOCTYPE html>',
|
|
2105
|
-
editHTMLDocumentMode: true,
|
|
2106
|
-
iframeStyle: ''
|
|
2107
|
-
});
|
|
2108
|
-
|
|
2109
|
-
console.log(editor.value);
|
|
2110
|
-
|
|
2111
|
-
// <html dir="" class="jodit" lang="en" spellcheck="true" style="min-height: 113px;">
|
|
2112
|
-
// <head>
|
|
2113
|
-
// <title>Hello world!</title>
|
|
2114
|
-
// </head>
|
|
2115
|
-
// <body class="jodit-wysiwyg" style="outline:none">test test <a href="#">test</a></body>
|
|
2116
|
-
// </html>
|
|
2117
|
-
```
|
|
2118
|
-
|
|
2119
|
-
## 3.3.14
|
|
2120
|
-
|
|
2121
|
-
### Bugfix
|
|
2122
|
-
|
|
2123
|
-
Fixed https://github.com/xdan/jodit/issues/316
|
|
2124
|
-
Fixed bug when Jodit was initialized inside iframe.
|
|
2125
|
-
|
|
2126
|
-
```js
|
|
2127
|
-
const iframe = document.createElement('iframe');
|
|
2128
|
-
document.body.appendChild(iframe);
|
|
2129
|
-
|
|
2130
|
-
const win = iframe.contentWindow;
|
|
2131
|
-
const doc = win.document;
|
|
2132
|
-
doc.open();
|
|
2133
|
-
doc.write(
|
|
2134
|
-
'<html><body><textarea id="editor"></textarea><' +
|
|
2135
|
-
'script src="./build/jodit.js"><' +
|
|
2136
|
-
'/script></body></html>'
|
|
2137
|
-
);
|
|
2138
|
-
doc.close();
|
|
2139
|
-
|
|
2140
|
-
Jodit.make('#editor', {
|
|
2141
|
-
ownerWindow: win,
|
|
2142
|
-
ownerDocument: doc
|
|
2143
|
-
});
|
|
2144
|
-
```
|
|
2145
|
-
|
|
2146
|
-
Fixed bug with ProgressBar - it simply does not work(
|
|
2147
|
-
|
|
2148
|
-
### Feature
|
|
2149
|
-
|
|
2150
|
-
Source plugin was separated on several classes. Now you can choose SourceEditor or make
|
|
2151
|
-
yourself (https://github.com/xdan/jodit/issues/242)
|
|
2152
|
-
|
|
2153
|
-
> Before
|
|
2154
|
-
|
|
2155
|
-
```js
|
|
2156
|
-
Jodit.make('#editor', {
|
|
2157
|
-
useAceEditor: true
|
|
2158
|
-
});
|
|
2159
|
-
```
|
|
2160
|
-
|
|
2161
|
-
> Now
|
|
2162
|
-
|
|
2163
|
-
```js
|
|
2164
|
-
Jodit.make('#editor', {
|
|
2165
|
-
sourceEditor: 'area' || 'ace' // || 'mirror' in PRO
|
|
2166
|
-
});
|
|
2167
|
-
```
|
|
2168
|
-
|
|
2169
|
-
In PRO version you can choose mirrror&
|
|
2170
|
-
|
|
2171
|
-
- Added Async module for control asynchronous operations
|
|
2172
|
-
|
|
2173
|
-
```javascript
|
|
2174
|
-
const editor = new Jodit('#editor');
|
|
2175
|
-
setTimeout(() => {
|
|
2176
|
-
editor.s.insertHTML('Hello!');
|
|
2177
|
-
}, 1000);
|
|
2178
|
-
|
|
2179
|
-
editor.async.setTimeout(() => {
|
|
2180
|
-
editor.s.insertHTML('World!');
|
|
2181
|
-
}, 1000);
|
|
2182
|
-
|
|
2183
|
-
editor.destruct();
|
|
2184
|
-
```
|
|
2185
|
-
|
|
2186
|
-
After destruct the first timeout will throw the error, but second will be cleared.
|
|
2187
|
-
|
|
2188
|
-
Added two methods setPanel and addPlace
|
|
2189
|
-
|
|
2190
|
-
```html
|
|
2191
|
-
<textarea id="editor"></textarea>
|
|
2192
|
-
<textarea id="editor2"></textarea>
|
|
2193
|
-
<textarea id="editor3"></textarea>
|
|
2194
|
-
<div id="toolbar"></div>
|
|
2195
|
-
```
|
|
2196
|
-
|
|
2197
|
-
```js
|
|
2198
|
-
const editor = new Jodit('#editor');
|
|
2199
|
-
editor.setPanel('#toolbar');
|
|
2200
|
-
//add id instance to editor
|
|
2201
|
-
editor.addPlace('#editor2');
|
|
2202
|
-
editor.addPlace('#editor3');
|
|
2203
|
-
```
|
|
2204
|
-
|
|
2205
|
-
### Events
|
|
2206
|
-
|
|
2207
|
-
Added `afterRemoveNode` event
|
|
2208
|
-
|
|
2209
|
-
```js
|
|
2210
|
-
const editor = new Jodit('#editor');
|
|
2211
|
-
editor.events.on('afterRemoveNode', node => {
|
|
2212
|
-
if (node.nodeName === 'IMG') {
|
|
2213
|
-
fetch('delete.php', { image: node.src });
|
|
2214
|
-
}
|
|
2215
|
-
});
|
|
2216
|
-
```
|
|
2217
|
-
|
|
2218
|
-
## 3.3.8
|
|
2219
|
-
|
|
2220
|
-
### Plugin system was changed
|
|
2221
|
-
|
|
2222
|
-
> Before
|
|
2223
|
-
|
|
2224
|
-
```javascript
|
|
2225
|
-
Jodit.plugins.insertText = function (editor) {
|
|
2226
|
-
editor.events.on('someEvent', function (text) {
|
|
2227
|
-
editor.s.insertHTMl('Hello ' + text);
|
|
2228
|
-
});
|
|
2229
|
-
};
|
|
2230
|
-
```
|
|
2231
|
-
|
|
2232
|
-
> Now
|
|
2233
|
-
|
|
2234
|
-
```javascript
|
|
2235
|
-
Jodit.plugins.add('insertText', function (editor) {
|
|
2236
|
-
editor.events.on('someEvent', function (text) {
|
|
2237
|
-
editor.s.insertHTMl('Hello ' + text);
|
|
2238
|
-
});
|
|
2239
|
-
});
|
|
2240
|
-
console.log(Jodit.plugins.get('insertText'));
|
|
2241
|
-
Jodit.plugins.remove('insertText');
|
|
2242
|
-
```
|
|
2243
|
-
|
|
2244
|
-
### `extraPlugins` options
|
|
2245
|
-
|
|
2246
|
-
Inside plugin, you can use several fields:
|
|
2247
|
-
|
|
2248
|
-
```js
|
|
2249
|
-
// emoji.js
|
|
2250
|
-
|
|
2251
|
-
class Emoji {
|
|
2252
|
-
hasStyle = true; //
|
|
2253
|
-
requires = ['autocomplete'];
|
|
2254
|
-
|
|
2255
|
-
init(editor) {
|
|
2256
|
-
// this code will be execute only after autocomplete.init
|
|
2257
|
-
}
|
|
2258
|
-
}
|
|
2259
|
-
|
|
2260
|
-
Jodit.plugins.add('emoji', Emoji);
|
|
2261
|
-
```
|
|
2262
|
-
|
|
2263
|
-
And inside you init code
|
|
2264
|
-
|
|
2265
|
-
```javascript
|
|
2266
|
-
Jodit.make('#editor', {
|
|
2267
|
-
basePath: 'https://sitename.com/somepath/',
|
|
2268
|
-
extraPlugins: ['emoji']
|
|
2269
|
-
});
|
|
2270
|
-
```
|
|
2271
|
-
|
|
2272
|
-
It will try to download
|
|
2273
|
-
|
|
2274
|
-
```
|
|
2275
|
-
https://sitename.com/somepath/plugins/emoji/emoji.js
|
|
2276
|
-
```
|
|
2277
|
-
|
|
2278
|
-
`hasStyle = true;` means try download and include in page style file:
|
|
2279
|
-
|
|
2280
|
-
```
|
|
2281
|
-
https://sitename.com/somepath/plugins/emoji/emoji.css
|
|
2282
|
-
```
|
|
2283
|
-
|
|
2284
|
-
In `plugins/example` folder you can find an example.
|
|
2285
|
-
|
|
2286
|
-
extraPlugins option allows appending in editor extra plugins from npm, bower etc.
|
|
2287
|
-
|
|
2288
|
-
### Build System
|
|
2289
|
-
|
|
2290
|
-
In Build system was added gulp subsystem to build extra plugins. You can make extra plugins like `plugins/example` and
|
|
2291
|
-
after build, this plugin will not be inside `jodit.min.js` file. It will be in separate folder (
|
|
2292
|
-
eg `build/plugins/emoji/`).
|
|
2293
|
-
|
|
2294
|
-
Also in root you can find `make.js` file for install your plugin in build system.
|
|
2295
|
-
|
|
2296
|
-
---
|
|
2297
|
-
|
|
2298
|
-
### 2.5.61
|
|
2299
|
-
|
|
2300
|
-
Added `zIndex` option
|
|
2301
|
-
|
|
2302
|
-
```javascript
|
|
2303
|
-
var editor = new Jodir('.editor', {
|
|
2304
|
-
zIndex: 10000
|
|
2305
|
-
});
|
|
2306
|
-
```
|
|
2307
|
-
|
|
2308
|
-
### 2.5.60
|
|
2309
|
-
|
|
2310
|
-
- Fix table editor in iframe mode
|
|
2311
|
-
- Fix styles
|
|
2312
|
-
|
|
2313
|
-
### 2.5.57
|
|
2314
|
-
|
|
2315
|
-
- Added `useIframeResizer` option for resize IFRAME tag
|
|
2316
|
-

|
|
2317
|
-
- Added `offsetTopForAssix` option. For example, in Joomla, the top menu bar closes Jodit toolbar when scrolling.
|
|
2318
|
-
Therefore, it is necessary to move the toolbar Jodit by this amount
|
|
2319
|
-
|
|
2320
|
-
```javascript
|
|
2321
|
-
var editor = new Jodit('#editor', {
|
|
2322
|
-
offsetTopForAssix: 74
|
|
2323
|
-
});
|
|
2324
|
-
```
|
|
2325
|
-
|
|
2326
|
-
Without affix offset
|
|
2327
|
-

|
|
2328
|
-
With affix offset
|
|
2329
|
-

|
|
2330
|
-
|
|
2331
|
-
### 2.5.55
|
|
2332
|
-
|
|
2333
|
-
Added `Embed video` button. Added `vimeo` or `youtube` video embeded code.
|
|
2334
|
-
|
|
2335
|
-
### 2.5.54
|
|
2336
|
-
|
|
2337
|
-
When you insert text into the editor from another site, all the images are from a remote site. Before Jodit, it was
|
|
2338
|
-
quite uncomfortable: first I had to download the image from a remote resource, and then upload it to your site, then
|
|
2339
|
-
replace the image in the editor. In 2.5.54 it can be done in 3 clicks
|
|
2340
|
-
|
|
2341
|
-

|
|
2342
|
-
|
|
2343
|
-
> `Note`. Need update [PHP Connector](https://github.com/xdan/jodit-connectors)
|
|
2344
|
-
|
|
2345
|
-
### 2.5.53
|
|
2346
|
-
|
|
2347
|
-
Added [Jodit.focus](http://xdsoft.net/jodit/doc/module-Jodit.html#.focus) method
|
|
2348
|
-
|
|
2349
|
-
```javascript
|
|
2350
|
-
var editor = new Jodit('.redactor');
|
|
2351
|
-
editor.focus();
|
|
2352
|
-
```
|
|
2353
|
-
|
|
2354
|
-
### 2.5.52
|
|
2355
|
-
|
|
2356
|
-
Added `OK` button in Alert dialog
|
|
2357
|
-
|
|
2358
|
-
#### More About dialogs
|
|
2359
|
-
|
|
2360
|
-
#### Alert
|
|
2361
|
-
|
|
2362
|
-
```javascript
|
|
2363
|
-
Jodit.Alert('File was uploaded');
|
|
2364
|
-
Jodit.Alert('File was uploaded', 'Message');
|
|
2365
|
-
Jodit.Alert('File was uploaded', function () {
|
|
2366
|
-
$('form').hide();
|
|
2367
|
-
});
|
|
2368
|
-
Jodit.Alert("File wasn't uploaded", 'Error', function () {
|
|
2369
|
-
$('form').hide();
|
|
2370
|
-
});
|
|
2371
|
-
```
|
|
2372
|
-
|
|
2373
|
-
#### Promt
|
|
2374
|
-
|
|
2375
|
-

|
|
2376
|
-
|
|
2377
|
-
```javascript
|
|
2378
|
-
Jodit.Promt('Enter your name', function (name) {
|
|
2379
|
-
if (name.length < 3) {
|
|
2380
|
-
Jodit.Alert('The name must be at least 3 letters');
|
|
2381
|
-
return false;
|
|
2382
|
-
}
|
|
2383
|
-
// do something
|
|
2384
|
-
});
|
|
2385
|
-
Jodit.Promt('Enter your name', 'Promt Dialog', function (name) {
|
|
2386
|
-
if (name.length < 3) {
|
|
2387
|
-
Jodit.Alert('The name must be at least 3 letters');
|
|
2388
|
-
return false;
|
|
2389
|
-
}
|
|
2390
|
-
// do something
|
|
2391
|
-
});
|
|
2392
|
-
```
|
|
2393
|
-
|
|
2394
|
-
#### Confirm
|
|
2395
|
-
|
|
2396
|
-

|
|
2397
|
-
|
|
2398
|
-
```javascript
|
|
2399
|
-
Jodit.Confirm('Are you sure?', function (yes) {
|
|
2400
|
-
if (yes) {
|
|
2401
|
-
// do something
|
|
2402
|
-
}
|
|
2403
|
-
});
|
|
2404
|
-
```
|
|
2405
|
-
|
|
2406
|
-
### 2.5.49
|
|
2407
|
-
|
|
2408
|
-
First step for Mobile-friendly [sizeLG,sizeMD,sizeSM](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#sizeLG) and
|
|
2409
|
-
sets of buttons for different sizes editors.
|
|
2410
|
-
|
|
2411
|
-
> `Note`. this is not the width of the device, the width of the editor
|
|
2412
|
-
|
|
2413
|
-
- buttons The list of buttons that appear in the editor's toolbar on large places (≥ options.sizeLG).
|
|
2414
|
-
- buttonsMD The list of buttons that appear in the editor's toolbar on medium places (≥ options.sizeMD).
|
|
2415
|
-
- buttonsSM The list of buttons that appear in the editor's toolbar on small places (≥ options.sizeSM).
|
|
2416
|
-
- buttonsXS The list of buttons that appear in the editor's toolbar on tiny places (< options.sizeSM).
|
|
2417
|
-
|
|
2418
|
-
```javascript
|
|
2419
|
-
var editor = new Jodit('#some-editor', {
|
|
2420
|
-
sizeLG: 900,
|
|
2421
|
-
sizeMD: 700,
|
|
2422
|
-
sizeSM: 400,
|
|
2423
|
-
|
|
2424
|
-
buttons: [
|
|
2425
|
-
'source',
|
|
2426
|
-
'|',
|
|
2427
|
-
'bold',
|
|
2428
|
-
'italic',
|
|
2429
|
-
'|',
|
|
2430
|
-
'ul',
|
|
2431
|
-
'ol',
|
|
2432
|
-
'|',
|
|
2433
|
-
'font',
|
|
2434
|
-
'fontsize',
|
|
2435
|
-
'brush',
|
|
2436
|
-
'paragraph',
|
|
2437
|
-
'|',
|
|
2438
|
-
'image',
|
|
2439
|
-
'table',
|
|
2440
|
-
'link',
|
|
2441
|
-
'|',
|
|
2442
|
-
'left',
|
|
2443
|
-
'center',
|
|
2444
|
-
'right',
|
|
2445
|
-
'justify',
|
|
2446
|
-
'|',
|
|
2447
|
-
'undo',
|
|
2448
|
-
'redo',
|
|
2449
|
-
'|',
|
|
2450
|
-
'hr',
|
|
2451
|
-
'eraser',
|
|
2452
|
-
'fullsize',
|
|
2453
|
-
'about'
|
|
2454
|
-
],
|
|
2455
|
-
buttonsMD: [
|
|
2456
|
-
'source',
|
|
2457
|
-
'|',
|
|
2458
|
-
'bold',
|
|
2459
|
-
'italic',
|
|
2460
|
-
'|',
|
|
2461
|
-
'ul',
|
|
2462
|
-
'ol',
|
|
2463
|
-
'|',
|
|
2464
|
-
'font',
|
|
2465
|
-
'fontsize',
|
|
2466
|
-
'brush',
|
|
2467
|
-
'paragraph',
|
|
2468
|
-
'|',
|
|
2469
|
-
'image',
|
|
2470
|
-
'table',
|
|
2471
|
-
'link',
|
|
2472
|
-
'|',
|
|
2473
|
-
'left',
|
|
2474
|
-
'center',
|
|
2475
|
-
'right',
|
|
2476
|
-
'justify',
|
|
2477
|
-
'|',
|
|
2478
|
-
'undo',
|
|
2479
|
-
'redo',
|
|
2480
|
-
'|',
|
|
2481
|
-
'hr',
|
|
2482
|
-
'eraser',
|
|
2483
|
-
'fullsize'
|
|
2484
|
-
],
|
|
2485
|
-
buttonsSM: [
|
|
2486
|
-
'bold',
|
|
2487
|
-
'italic',
|
|
2488
|
-
'|',
|
|
2489
|
-
'ul',
|
|
2490
|
-
'ol',
|
|
2491
|
-
'|',
|
|
2492
|
-
'fontsize',
|
|
2493
|
-
'brush',
|
|
2494
|
-
'paragraph',
|
|
2495
|
-
'|',
|
|
2496
|
-
'image',
|
|
2497
|
-
'table',
|
|
2498
|
-
'link',
|
|
2499
|
-
'|',
|
|
2500
|
-
'left',
|
|
2501
|
-
'center',
|
|
2502
|
-
'right',
|
|
2503
|
-
'|',
|
|
2504
|
-
'undo',
|
|
2505
|
-
'redo',
|
|
2506
|
-
'|',
|
|
2507
|
-
'eraser',
|
|
2508
|
-
'fullsize'
|
|
2509
|
-
],
|
|
2510
|
-
buttonsXS: [
|
|
2511
|
-
'bold',
|
|
2512
|
-
'image',
|
|
2513
|
-
'|',
|
|
2514
|
-
'brush',
|
|
2515
|
-
'paragraph',
|
|
2516
|
-
'|',
|
|
2517
|
-
'left',
|
|
2518
|
-
'center',
|
|
2519
|
-
'right',
|
|
2520
|
-
'|',
|
|
2521
|
-
'undo',
|
|
2522
|
-
'redo',
|
|
2523
|
-
'|',
|
|
2524
|
-
'eraser'
|
|
2525
|
-
]
|
|
2526
|
-
});
|
|
2527
|
-
```
|
|
2528
|
-
|
|
2529
|
-
### 2.5.46
|
|
2530
|
-
|
|
2531
|
-
- More comfortable colorpicker
|
|
2532
|
-
|
|
2533
|
-

|
|
2534
|
-
|
|
2535
|
-
- Added [Helper.normalizeColor](http://xdsoft.net/jodit/doc/module-Helper.html#~normalizeColor)
|
|
2536
|
-
- Fixed [Helper.colorToHex](http://xdsoft.net/jodit/doc/module-Helper.html#~colorToHex) now for transparent color it
|
|
2537
|
-
will return NaN
|
|
2538
|
-
|
|
2539
|
-
### 2.5.45
|
|
2540
|
-
|
|
2541
|
-
- Fixed bug in Image Resizer when border was less than Image
|
|
2542
|
-
- Rename Selection.setCursorTo to Selection.moveCursorTo
|
|
2543
|
-
- Fixed style for Dialog resizer
|
|
2544
|
-
|
|
2545
|
-
### 2.5.42
|
|
2546
|
-
|
|
2547
|
-
Fix a few bugs in [JJE](http://xdsoft.net/jodit/#extesions)
|
|
2548
|
-
|
|
2549
|
-
### 2.5.40
|
|
2550
|
-
|
|
2551
|
-
- In [Helper](http://xdsoft.net/jodit/doc/module-Helper.html) module added [isHTML] method. Used plugin `insertHTML`
|
|
2552
|
-
- Added simple plugin `insertHTML` and him option `askBeforePasteHTML` - Ask before paste HTML in WYSIWYG mode. Try
|
|
2553
|
-
insert in WYSIWYG mode some HTML source
|
|
2554
|
-
|
|
2555
|
-
```javascript
|
|
2556
|
-
(function ($) {
|
|
2557
|
-
'use strict';
|
|
2558
|
-
Jodit.defaultOptions = $.extend(true, Jodit.defaultOptions, {
|
|
2559
|
-
/**
|
|
2560
|
-
* @property {boolean} askBeforePasteHTML=true Ask before paste HTML in WYSIWYG mode
|
|
2561
|
-
*/
|
|
2562
|
-
askBeforePasteHTML: true
|
|
2563
|
-
});
|
|
2564
|
-
|
|
2565
|
-
/**
|
|
2566
|
-
* Ask before paste HTML source
|
|
2567
|
-
*/
|
|
2568
|
-
Jodit.plugins.insertHTML = function (parent) {
|
|
2569
|
-
if (parent.options.askBeforePasteHTML) {
|
|
2570
|
-
parent.events.on('beforePaste', function (event) {
|
|
2571
|
-
if (
|
|
2572
|
-
event &&
|
|
2573
|
-
event.clipboardData &&
|
|
2574
|
-
event.clipboardData.getData &&
|
|
2575
|
-
event.clipboardData.types[0] === 'text/plain'
|
|
2576
|
-
) {
|
|
2577
|
-
var html = event.clipboardData.getData('text/plain');
|
|
2578
|
-
if (parent.helper.isHTML(html)) {
|
|
2579
|
-
Jodit.Confirm(
|
|
2580
|
-
'Your code is similar to HTML. Paste as HTML?',
|
|
2581
|
-
'Paste as HTML',
|
|
2582
|
-
function (agree) {
|
|
2583
|
-
if (agree) {
|
|
2584
|
-
parent.s.insertHTML(html);
|
|
2585
|
-
} else {
|
|
2586
|
-
parent.s.insertHTML(
|
|
2587
|
-
parent.helper.htmlspecialchars(html)
|
|
2588
|
-
);
|
|
2589
|
-
}
|
|
2590
|
-
parent.syncCode(true);
|
|
2591
|
-
}
|
|
2592
|
-
);
|
|
2593
|
-
return false;
|
|
2594
|
-
}
|
|
2595
|
-
}
|
|
2596
|
-
});
|
|
2597
|
-
}
|
|
2598
|
-
};
|
|
2599
|
-
})(Jodit.modules.Dom);
|
|
2600
|
-
```
|
|
2601
|
-
|
|
2602
|
-
### 2.5.39
|
|
2603
|
-
|
|
2604
|
-
Fix [#issue 11](https://github.com/xdan/jodit/issues/11) in `file:` mode CDN CodeMirror not working
|
|
2605
|
-
|
|
2606
|
-
### 2.5.38
|
|
2607
|
-
|
|
2608
|
-
- Added `Filter` in FileBrowser
|
|
2609
|
-
- Added `SortBy` in FileBrowser
|
|
2610
|
-
|
|
2611
|
-
### 2.5.37
|
|
2612
|
-
|
|
2613
|
-
- Fixed bug in [`Beautifier`](http://xdsoft.net/jodit/doc/module-Beautifier.html) plugin. When in `source` mode, start
|
|
2614
|
-
comment enter `<!--` Browser stops responding.
|
|
2615
|
-
- Added `tiles` and `list` switcher in filebrowser
|
|
2616
|
-
|
|
2617
|
-
### 2.5.36
|
|
2618
|
-
|
|
2619
|
-
- In PHP FileBrowser connector added MaxFileSize option
|
|
2620
|
-
- Fixed popap error in filebrowser
|
|
2621
|
-
|
|
2622
|
-
### 2.5.30
|
|
2623
|
-
|
|
2624
|
-
Fix Splitmode autohaight
|
|
2625
|
-

|
|
2626
|
-
Fix syncronize code in TableProcessor module
|
|
2627
|
-
|
|
2628
|
-
### 2.5.28
|
|
2629
|
-
|
|
2630
|
-
Fix bug in Dialog.Confirm
|
|
2631
|
-
|
|
2632
|
-
```javascript
|
|
2633
|
-
Jodit.Confirm('Are you sure?', 'Confirm', function (success) {
|
|
2634
|
-
if (success) {
|
|
2635
|
-
alert('Agree');
|
|
2636
|
-
}
|
|
2637
|
-
});
|
|
2638
|
-
```
|
|
2639
|
-
|
|
2640
|
-
### 2.5.27
|
|
2641
|
-
|
|
2642
|
-
- Fixed IE11's
|
|
2643
|
-
bug [http://xdsoft.net/jodit/doc/module-Jodit.html#comment-2866837441](http://xdsoft.net/jodit/doc/module-Jodit.html#comment-2866837441)
|
|
2644
|
-
- Added [textIcons](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#texticons) options - Use text instead of
|
|
2645
|
-
icons. In IE9 it is default - true [Example](http://xdsoft.net/jodit/#example-text-icons)
|
|
2646
|
-
|
|
2647
|
-
```javascript
|
|
2648
|
-
var editor = new Jodit('#example2_0', {
|
|
2649
|
-
textIcons: true,
|
|
2650
|
-
removeButtons: [
|
|
2651
|
-
'hr',
|
|
2652
|
-
'ol',
|
|
2653
|
-
'about',
|
|
2654
|
-
'italic',
|
|
2655
|
-
'format',
|
|
2656
|
-
'fullsize',
|
|
2657
|
-
'justify'
|
|
2658
|
-
]
|
|
2659
|
-
});
|
|
2660
|
-
```
|
|
2661
|
-
|
|
2662
|
-

|
|
2663
|
-

|
|
2664
|
-
|
|
2665
|
-
### 2.5.26
|
|
2666
|
-
|
|
2667
|
-
Dom Module is now compatible with jQuery objects
|
|
2668
|
-
|
|
2669
|
-
```javascript
|
|
2670
|
-
var a = jQuery('<a href="#link">Link</a>');
|
|
2671
|
-
jodit.modules.Dom('.selector').append(a);
|
|
2672
|
-
jodit.modules.Dom(jQuery('#someid')).val();
|
|
2673
|
-
jodit.modules.Dom('#someid').val();
|
|
2674
|
-
```
|
|
2675
|
-
|
|
2676
|
-
But you must remember that Jodit.modules.Dom! = JQuery
|
|
2677
|
-
|
|
2678
|
-
### 2.5.23
|
|
2679
|
-
|
|
2680
|
-
- Added `expand button` In filebrowser
|
|
2681
|
-
- Added [fullsize](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#dialog)
|
|
2682
|
-
and [fullsizeButton](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#dialog) options
|
|
2683
|
-
|
|
2684
|
-
### 2.5.20
|
|
2685
|
-
|
|
2686
|
-
- Fix [Dom.prev](http://xdsoft.net/jodit/doc/module-Dom.html#prev) method
|
|
2687
|
-
- Added navigation and select in preview
|
|
2688
|
-

|
|
2689
|
-
- Added [showSelectButtonInPreview](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#filebrowser)
|
|
2690
|
-
and [showPreviewNavigation](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#filebrowser)
|
|
2691
|
-
|
|
2692
|
-
### 2.5.19
|
|
2693
|
-
|
|
2694
|
-
Added [cleanHTML.allowTags](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#cleanhtml) option.
|
|
2695
|
-
|
|
2696
|
-
```javascript
|
|
2697
|
-
var editor = Jodit('#editor', {
|
|
2698
|
-
allowTags: 'p,a[href],table,tr,td, img[src=1.png]' // allow only <p>,<a>,<table>,<tr>,<td>,<img> tags and for <a> allow only `href` attribute and <img> allow only `src` atrribute == '1.png'
|
|
2699
|
-
});
|
|
2700
|
-
editor.val(
|
|
2701
|
-
'Sorry! <strong>Goodby</strong> <span>mr.</span> <a style="color:red" href="http://xsoft.net">Freeman</a>'
|
|
2702
|
-
);
|
|
2703
|
-
console.log(editor.val()); //Sorry! <a href="http://xsoft.net">Freeman</a>
|
|
2704
|
-
```
|
|
2705
|
-
|
|
2706
|
-
Or you can use PlainObject. This code equivalent to the top
|
|
2707
|
-
|
|
2708
|
-
```javascript
|
|
2709
|
-
var editor = Jodit('#editor', {
|
|
2710
|
-
allowTags: {
|
|
2711
|
-
p: true,
|
|
2712
|
-
a: {
|
|
2713
|
-
href: true
|
|
2714
|
-
},
|
|
2715
|
-
table: true,
|
|
2716
|
-
tr: true,
|
|
2717
|
-
td: true,
|
|
2718
|
-
img: {
|
|
2719
|
-
src: '1.png'
|
|
2720
|
-
}
|
|
2721
|
-
}
|
|
2722
|
-
});
|
|
2723
|
-
```
|
|
2724
|
-
|
|
2725
|
-
### 2.5.18
|
|
2726
|
-
|
|
2727
|
-
Fixed bug in Image plugin
|
|
2728
|
-
|
|
2729
|
-
### 2.5.17
|
|
2730
|
-
|
|
2731
|
-
Fixed bug in JJE
|
|
2732
|
-
|
|
2733
|
-
### 2.5.16
|
|
2734
|
-
|
|
2735
|
-
- Fixed a few styles
|
|
2736
|
-
|
|
2737
|
-
### 2.5.15
|
|
2738
|
-
|
|
2739
|
-
- Fixed `package.json`
|
|
2740
|
-
|
|
2741
|
-
### 2.5.13
|
|
2742
|
-
|
|
2743
|
-
- Added in FileBrowser [sort](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#filebrowser) options
|
|
2744
|
-
- Jodit.Promt and Jodit.Alert by default set focus to OK button
|
|
2745
|
-
|
|
2746
|
-
```javascript
|
|
2747
|
-
Jodit.Promt('Enter your name', function (name) {
|
|
2748
|
-
if (!name.length) {
|
|
2749
|
-
Jodit.Alert('You need enter 3 chars');
|
|
2750
|
-
return false;
|
|
2751
|
-
}
|
|
2752
|
-
//... some logic
|
|
2753
|
-
});
|
|
2754
|
-
```
|
|
2755
|
-
|
|
2756
|
-
- Fix `$config` bug in [JJE](http://xdsoft.net/jodit/release/joomla.zip)
|
|
2757
|
-
- Added a few options in JJE plugin
|
|
2758
|
-
|
|
2759
|
-
### 2.5.12
|
|
2760
|
-
|
|
2761
|
-
Added edit button in Image Properties Dialog
|
|
2762
|
-

|
|
2763
|
-
|
|
2764
|
-
### 2.5.11
|
|
2765
|
-
|
|
2766
|
-
- Added file info in filebrowser
|
|
2767
|
-

|
|
2768
|
-
- Added [showFileName,showFileSize,showFileChangeTime](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#filebrowser)
|
|
2769
|
-
|
|
2770
|
-
### 2.5.1
|
|
2771
|
-
|
|
2772
|
-
- Dom module was rewritten and was fixed afew bugs
|
|
2773
|
-
- In [OEM and Pro](http://xdsoft.net/jodit/#download)
|
|
2774
|
-
added [Image Editor module](http://xdsoft.net/jodit/doc/module-ImageEditor.html) resize and crop image. You can
|
|
2775
|
-
try [here](http://xdsoft.net/jodit/)
|
|
2776
|
-

|
|
2777
|
-

|
|
2778
|
-
|
|
2779
|
-
### 2.4.22
|
|
2780
|
-
|
|
2781
|
-
- Added contextmenu module.
|
|
2782
|
-
- Added context menu in FileBrowser
|
|
2783
|
-
- Added preview in FilwBrowser
|
|
2784
|
-
|
|
2785
|
-
### 2.4.21
|
|
2786
|
-
|
|
2787
|
-
- Fixed TableProcessor's bugs. In a situation did not appear resizer cells and the resizer throughout the table.
|
|
2788
|
-
|
|
2789
|
-
### 2.4.20
|
|
2790
|
-
|
|
2791
|
-
- Fixed z-index Popap
|
|
2792
|
-
- Fixed behavior of selection table cells
|
|
2793
|
-
|
|
2794
|
-
### 2.4.17
|
|
2795
|
-
|
|
2796
|
-
Fixed copy-paste html behavior
|
|
2797
|
-
|
|
2798
|
-
### 2.4.16
|
|
2799
|
-
|
|
2800
|
-
Fixed bug on after type `Enter`
|
|
2801
|
-
|
|
2802
|
-
### 2.4.15
|
|
2803
|
-
|
|
2804
|
-
Fixed bug with insert `OL` tag and Fixed Dom module work with Text node
|
|
2805
|
-
|
|
2806
|
-
### 2.4.12
|
|
2807
|
-
|
|
2808
|
-
Added [toolbarButtonSize](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#toolbarbuttonsize) Size of icons in the
|
|
2809
|
-
toolbar (can be "small", "middle", "large")
|
|
2810
|
-
|
|
2811
|
-
```javascript
|
|
2812
|
-
var editor = new Jodit('#editor', {
|
|
2813
|
-
toolbarButtonSize: 'small'
|
|
2814
|
-
});
|
|
2815
|
-
```
|
|
2816
|
-
|
|
2817
|
-
### 2.4.10
|
|
2818
|
-
|
|
2819
|
-
- Added [node.create](http://xdsoft.net/jodit/doc/module-Node.html#create) method
|
|
2820
|
-
|
|
2821
|
-
```javascript
|
|
2822
|
-
var editor = new Jodit('.jodit'),
|
|
2823
|
-
node = editor.node.create('text', 'Hellow world');
|
|
2824
|
-
editor.s.insertNode(node);
|
|
2825
|
-
```
|
|
2826
|
-
|
|
2827
|
-
- Added [link](http://xdsoft.net/jodit/doc/module-link.html) plugin. And its options
|
|
2828
|
-
- [processPastedLink](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#link) Wrap inserted link
|
|
2829
|
-
in `<a href="link">link</a>`
|
|
2830
|
-
- [openLinkDialogAfterPost](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#link) Open Link dialog after post
|
|
2831
|
-
- [removeLinkAfterFormat](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#link) When the button is pressed to
|
|
2832
|
-
clean format, if it was done on the link is removed like command `unlink`
|
|
2833
|
-
- Replace format icon
|
|
2834
|
-
|
|
2835
|
-
### 2.4.8
|
|
2836
|
-
|
|
2837
|
-
Fixed Base icons [issue](https://gist.github.com/leonderijke/c5cf7c5b2e424c0061d2)
|
|
2838
|
-
|
|
2839
|
-
### 2.4.6
|
|
2840
|
-
|
|
2841
|
-
Fast Fixed in JJE Fixed a lot of bugs in Jodit
|
|
2842
|
-
|
|
2843
|
-
### 2.4.1
|
|
2844
|
-
|
|
2845
|
-
- Fixed a lot of bugs in Dom module
|
|
2846
|
-
- Fixed a lot of bugs in TableProcessor module
|
|
2847
|
-
- Replace PNG icon on SVG sprite
|
|
2848
|
-
- Added new module Icons
|
|
2849
|
-
- Added theme `Dark`
|
|
2850
|
-
- Fixed bug Popap's module
|
|
2851
|
-
- Divide one less file by modules
|
|
2852
|
-
|
|
2853
|
-
### 2.3.59
|
|
2854
|
-
|
|
2855
|
-
- Added [Cookie](http://xdsoft.net/jodit/doc/module-Cookie.html) module
|
|
2856
|
-
- Added [saveModeInCookie](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#savemodeincookie) if it is true that
|
|
2857
|
-
the current mode is saved in a cookie , and is restored after a reload of the page
|
|
2858
|
-
- In Joomla Jodit Editor(JJE) added corresponding option
|
|
2859
|
-
saveModeInCookie [Download Jodit Joomla editor](http://xdsoft.net/jodit/release/joomla.zip)
|
|
2860
|
-
|
|
2861
|
-
### 2.3.57
|
|
2862
|
-
|
|
2863
|
-
- Fixed issue with `input[type=checkbox]` and [Dom.attr](http://xdsoft.net/jodit/doc/module-Dom.html#attr) method
|
|
2864
|
-
- Release Joomla Jodit Editor (JJE) [Download JJE](http://xdsoft.net/jodit/release/joomla.zip)
|
|
2865
|
-
|
|
2866
|
-
### 2.3.53
|
|
2867
|
-
|
|
2868
|
-
- Added option [cleanHTML.cleanOnPaste](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#cleanhtml) The
|
|
2869
|
-
plugin [cleanHTML](http://xdsoft.net/jodit/doc/module-cleanHTML.html) automatically cleans up content from Microsoft
|
|
2870
|
-
Word and other HTML sources to ensure clean, compliant content that matches the look and feel of the site.
|
|
2871
|
-
- Added [beforePaste](http://xdsoft.net/jodit/doc/module-Jodit.html#~event:beforePaste),[processPaste](http://xdsoft.net/jodit/doc/module-Jodit.html#~event:processPaste),[afterPaste](http://xdsoft.net/jodit/doc/module-Jodit.html#~event:afterPaste)
|
|
2872
|
-
events
|
|
2873
|
-
|
|
2874
|
-
### 2.3.49
|
|
2875
|
-
|
|
2876
|
-
Added [iframeBaseUrl](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#iframebaseurl) option - Base URL where the
|
|
2877
|
-
root directory for [iframe](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#iframe) mode
|
|
2878
|
-
|
|
2879
|
-
### 2.3.48
|
|
2880
|
-
|
|
2881
|
-
Added [spellcheck](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#spellcheck) option specifies whether the editor
|
|
2882
|
-
is to have its spelling and grammar checked or not
|
|
2883
|
-
|
|
2884
|
-
### 2.3.47
|
|
2885
|
-
|
|
2886
|
-
Added [removeEmptyBlocks](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#removeemptyblocks) option - Remove empty
|
|
2887
|
-
blocks
|
|
2888
|
-
|
|
2889
|
-
```javascript
|
|
2890
|
-
var editor = new Jodit('#editor', {
|
|
2891
|
-
removeEmptyBlocks: false
|
|
2892
|
-
});
|
|
2893
|
-
editor.val(' '); // add space in editor
|
|
2894
|
-
console.log(editor.val()); //<p> </p>
|
|
2895
|
-
|
|
2896
|
-
editor.options.removeEmptyBlocks = true;
|
|
2897
|
-
editor.val(' ');
|
|
2898
|
-
console.log(editor.val()); //''
|
|
2899
|
-
```
|
|
2900
|
-
|
|
2901
|
-
### 2.3.46
|
|
2902
|
-
|
|
2903
|
-
- Fixed critical bug in Safari (window.performance)
|
|
2904
|
-
- Fixed bug when editor can get selection from another place
|
|
2905
|
-
|
|
2906
|
-
### 2.3.44
|
|
2907
|
-
|
|
2908
|
-
Added [direction](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#direction) option. The writing direction of the
|
|
2909
|
-
language which is used to create editor content. Allowed values are:
|
|
2910
|
-
|
|
2911
|
-
- '' (an empty string) – Indicates that content direction will be the same as either the editor UI direction or the page
|
|
2912
|
-
element direction.
|
|
2913
|
-
- 'ltr' – Indicates a Left-To-Right text direction (like in English).
|
|
2914
|
-
- 'rtl' – Indicates a Right-To-Left text direction (like in Arabic).
|
|
2915
|
-
|
|
2916
|
-
### 2.3.43
|
|
2917
|
-
|
|
2918
|
-
Fixed styles bugs
|
|
2919
|
-
|
|
2920
|
-
### 2.3.41
|
|
2921
|
-
|
|
2922
|
-
When [filebrowser.showFoldersPanel](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#filebrowser) === false show 4
|
|
2923
|
-
colums in filelist
|
|
2924
|
-
|
|
2925
|
-
### 2.3.40
|
|
2926
|
-
|
|
2927
|
-
- Added [filebrowser.moveFolder](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#filebrowser) option. Allow/deny
|
|
2928
|
-
move folder
|
|
2929
|
-
- Added [filebrowser.moveFile](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#filebrowser) option. Allow/deny
|
|
2930
|
-
move file
|
|
2931
|
-
- Added [filebrowser.showFoldersPanel](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#filebrowser) option.
|
|
2932
|
-
Hide/show folders panel in filebrowser
|
|
2933
|
-
|
|
2934
|
-
### 2.3.39
|
|
2935
|
-
|
|
2936
|
-
Fixed [Filebrowser](http://xdsoft.net/jodit/doc/module-Filebrowser.html) uploader's options bug. Previously , you had to
|
|
2937
|
-
either use a general [Uploader](http://xdsoft.net/jodit/doc/module-Uploader.html) module settings , or override them
|
|
2938
|
-
completely
|
|
2939
|
-
|
|
2940
|
-
```javascript
|
|
2941
|
-
var editor = new Jodit('.redactor', {
|
|
2942
|
-
filebrowser: {
|
|
2943
|
-
uploader: null
|
|
2944
|
-
},
|
|
2945
|
-
uploader: {
|
|
2946
|
-
url: 'uploader.php',
|
|
2947
|
-
format: 'json'
|
|
2948
|
-
}
|
|
2949
|
-
});
|
|
2950
|
-
|
|
2951
|
-
// or
|
|
2952
|
-
var editor = new Jodit('.redactor', {
|
|
2953
|
-
filebrowser: {
|
|
2954
|
-
uploader: {
|
|
2955
|
-
url: 'uploader.php',
|
|
2956
|
-
format: 'json',
|
|
2957
|
-
filesVariableName: 'fils'
|
|
2958
|
-
//... all options from [uploader](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#uploader)
|
|
2959
|
-
}
|
|
2960
|
-
}
|
|
2961
|
-
});
|
|
2962
|
-
```
|
|
2963
|
-
|
|
2964
|
-
Now you can just override some of your settings
|
|
2965
|
-
|
|
2966
|
-
```javascript
|
|
2967
|
-
var editor = new Jodit('.redactor', {
|
|
2968
|
-
filebrowser: {
|
|
2969
|
-
uploader: {
|
|
2970
|
-
url: 'uploader2.php'
|
|
2971
|
-
}
|
|
2972
|
-
},
|
|
2973
|
-
uploader: {
|
|
2974
|
-
url: 'uploader.php'
|
|
2975
|
-
}
|
|
2976
|
-
});
|
|
2977
|
-
```
|
|
2978
|
-
|
|
2979
|
-
### 2.3.38
|
|
2980
|
-
|
|
2981
|
-
- Fixed i18n bug
|
|
2982
|
-
- [useSplitMode](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#usesplitmode) set default false
|
|
2983
|
-
- Fixed toolbar width after fullsize mode
|
|
2984
|
-
- Fixed [#issue5](https://github.com/xdan/jodit/issues/5)
|
|
2985
|
-
|
|
2986
|
-
### 2.3.37
|
|
2987
|
-
|
|
2988
|
-
Fast fix
|
|
2989
|
-
|
|
2990
|
-
### 2.3.36
|
|
2991
|
-
|
|
2992
|
-
- Added plugin `Fullsize`. Now you can change fullsize mode
|
|
2993
|
-
|
|
2994
|
-
```javascript
|
|
2995
|
-
var editor = new Jodit();
|
|
2996
|
-
editor.events.fire('toggleFullsize');
|
|
2997
|
-
editor.events.fire('toggleFullsize', [true]); // fullsize
|
|
2998
|
-
editor.events.fire('toggleFullsize', [false]); // usual mode
|
|
2999
|
-
```
|
|
3000
|
-
|
|
3001
|
-
- Added [globalFullsize](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#globalFullsize) (default `true`) if true,
|
|
3002
|
-
after `fullsize` - all parents element get `jodit_fullsize_box` class (z-index: 100000 !important;)
|
|
3003
|
-
- Fixed focus bug
|
|
3004
|
-
|
|
3005
|
-
### 2.3.35
|
|
3006
|
-
|
|
3007
|
-
- Fixed placeholder style
|
|
3008
|
-
- Fixed [Dom.css](http://xdsoft.net/jodit/doc/module-Dom.html#~css) then
|
|
3009
|
-
|
|
3010
|
-
```html
|
|
3011
|
-
<div class="idclass" style="margin-top:20px;"></div>
|
|
3012
|
-
```
|
|
3013
|
-
|
|
3014
|
-
```javascript
|
|
3015
|
-
Jodit.modules.Dom('.idclass').css('margin-top'); //has returned string `20px`
|
|
3016
|
-
Jodit.modules.Dom('.idclass').css('margin-top'); //now it returns int `20`
|
|
3017
|
-
```
|
|
3018
|
-
|
|
3019
|
-
### 2.3.33
|
|
3020
|
-
|
|
3021
|
-
- Fixed placeholder style. Placeholder placed in a separate
|
|
3022
|
-
module [Placeholder](http://xdsoft.net/jodit/doc/module-Placeholder.html)
|
|
3023
|
-
- Added [showPlaceholder](http://xdsoft.net/jodit/doc/module-Placeholder.html#showplaceholder) option
|
|
3024
|
-
- Added [useInputsPlaceholder](http://xdsoft.net/jodit/doc/module-Placeholder.html#useinputsplaceholder) option
|
|
3025
|
-
- Added [placeholder](http://xdsoft.net/jodit/doc/module-Placeholder.html#placeholder) option
|
|
3026
|
-
|
|
3027
|
-
### 2.3.32
|
|
3028
|
-
|
|
3029
|
-
Added [uploader.data](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#uploader) option. Data to be sent to the
|
|
3030
|
-
server like POST parameters
|
|
3031
|
-
|
|
3032
|
-
### 2.3.31
|
|
3033
|
-
|
|
3034
|
-
Added [editorCssClass](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#editorcssclass) option - Class name that
|
|
3035
|
-
can be appended to the editor Fixed internacionalization
|
|
3036
|
-
|
|
3037
|
-
### 2.3.30
|
|
3038
|
-
|
|
3039
|
-
Added [triggerChangeEvent](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#triggerchangeevent) option Fixed
|
|
3040
|
-
uploader's options - When the uploader is not configured, the editor still displays images upload button
|
|
3041
|
-
|
|
3042
|
-
### 2.3.29
|
|
3043
|
-
|
|
3044
|
-
Add [Dom.defaultAjaxOptions.async](http://xdsoft.net/jodit/doc/module-Dom.html#.__.defaultAjaxOptions) By default, all
|
|
3045
|
-
requests are sent asynchronously (i.e. this is set to true by default). If you need synchronous requests, set this
|
|
3046
|
-
option to false
|
|
3047
|
-
|
|
3048
|
-
### 2.3.28
|
|
3049
|
-
|
|
3050
|
-
Added `headers` option in {@link module:FileBrowser|FileBrowser} and {@link module:Uploader|Uploader}. But primarily in
|
|
3051
|
-
{@link module:Dom|Dom}
|
|
3052
|
-
|
|
3053
|
-
```javascript
|
|
3054
|
-
var token = document
|
|
3055
|
-
.querySelector('meta[name="csrf-token"]')
|
|
3056
|
-
.getAttribute('content'),
|
|
3057
|
-
editor = new Jodit('#redactor', {
|
|
3058
|
-
uploader: {
|
|
3059
|
-
url: '../connector/index.php?action=upload',
|
|
3060
|
-
headers: {
|
|
3061
|
-
'X-CSRF-Token': token
|
|
3062
|
-
}
|
|
3063
|
-
},
|
|
3064
|
-
filebrowser: {
|
|
3065
|
-
ajax: {
|
|
3066
|
-
url: '../connector/index.php',
|
|
3067
|
-
headers: {
|
|
3068
|
-
'X-CSRF-Token': token
|
|
3069
|
-
}
|
|
3070
|
-
}
|
|
3071
|
-
}
|
|
3072
|
-
});
|
|
3073
|
-
// or replace global options
|
|
3074
|
-
Jodit.modules.Dom.defaultAjaxOptions.headers = {
|
|
3075
|
-
headers: {
|
|
3076
|
-
'X-CSRF-Token': token
|
|
3077
|
-
}
|
|
3078
|
-
};
|
|
3079
|
-
```
|
|
3080
|
-
|
|
3081
|
-
```javascript
|
|
3082
|
-
Jodit.modules.Dom.ajax({
|
|
3083
|
-
url: 'data.json',
|
|
3084
|
-
headers: {
|
|
3085
|
-
'Accept-Language': 'en-US,en;q=0.8,ru;q=0.6,de;q=0.4,ja;q=0.2'
|
|
3086
|
-
},
|
|
3087
|
-
success: function (resp) {
|
|
3088
|
-
console.log(resp);
|
|
3089
|
-
}
|
|
3090
|
-
});
|
|
3091
|
-
```
|
|
3092
|
-
|
|
3093
|
-
### 2.3.27
|
|
3094
|
-
|
|
3095
|
-
Fixed [#issues1](https://github.com/xdan/jodit/issues/1)
|
|
3096
|
-
|
|
3097
|
-
### 2.3.24
|
|
3098
|
-
|
|
3099
|
-
Fixed dialog's module when was opened Promt window, after Enter submit the form and the page reloaded. Fixed connector's
|
|
3100
|
-
bugs Update [Jodit.i18n](http://xdsoft.net/jodit/doc/module-Jodit.html#.i18n) method. Now it can be used staticly
|
|
3101
|
-
|
|
3102
|
-
```javascript
|
|
3103
|
-
var editor = new Jodit('#redactor', {
|
|
3104
|
-
langusage: 'ru'
|
|
3105
|
-
});
|
|
3106
|
-
console.log(editor.i18n('Cancel')); //Отмена;
|
|
3107
|
-
|
|
3108
|
-
Jodit.defaultOptions.language = 'ru';
|
|
3109
|
-
console.log(Jodit.prototype.i18n('Cancel')); //Отмена
|
|
3110
|
-
|
|
3111
|
-
Jodit.lang.cs = {
|
|
3112
|
-
Cancel: 'Zrušit'
|
|
3113
|
-
};
|
|
3114
|
-
Jodit.defaultOptions.language = 'cs';
|
|
3115
|
-
console.log(Jodit.prototype.i18n('Cancel')); //Zrušit
|
|
3116
|
-
|
|
3117
|
-
Jodit.lang.cs = {
|
|
3118
|
-
'Hello world': 'Hello 1$ Good 2$'
|
|
3119
|
-
};
|
|
3120
|
-
Jodit.defaultOptions.language = 'cs';
|
|
3121
|
-
console.log(Jodit.prototype.i18n('Hello world', 'mr.Perkins', 'day')); //Hello mr.Perkins Good day
|
|
3122
|
-
```
|
|
3123
|
-
|
|
3124
|
-
Fixed [Jodit.destroy](http://xdsoft.net/jodit/doc/module-Jodit.html#.destroy) method
|
|
3125
|
-
|
|
3126
|
-
```javascript
|
|
3127
|
-
var editor = new Jodit('.jodit');
|
|
3128
|
-
editor.destroy();
|
|
3129
|
-
```
|
|
3130
|
-
|
|
3131
|
-
### 2.3.22
|
|
3132
|
-
|
|
3133
|
-
Fixed bug when Dialog module was used without Jodit context
|
|
3134
|
-
|
|
3135
|
-
```javascript
|
|
3136
|
-
Jodit.Alert('Hello world!!!');
|
|
3137
|
-
```
|
|
3138
|
-
|
|
3139
|
-
### 2.3.20
|
|
3140
|
-
|
|
3141
|
-
Fixed dialog's module zIndex manage. Fixed [Dom.css](http://xdsoft.net/jodit/doc/module-Dom.html#~css) method bug. That
|
|
3142
|
-
example has not worked.
|
|
3143
|
-
|
|
3144
|
-
```javascript
|
|
3145
|
-
Jodit.modules.Dom('.someelement').css('z-index', 1000);
|
|
3146
|
-
```
|
|
3147
|
-
|
|
3148
|
-
### 2.3.19
|
|
3149
|
-
|
|
3150
|
-
Fixed bug in Uploader module when `http://sitename.net/jodit///files/fg.jpg` was
|
|
3151
|
-
replaced `http:/sitename.net/jodit/files/fg.jpg`
|
|
3152
|
-
|
|
3153
|
-
### 2.3.18
|
|
3154
|
-
|
|
3155
|
-
Added `afterInsertImage` event - triggered after image was
|
|
3156
|
-
inserted [selection.insertImage](http://xdsoft.net/jodit/doc/module-Selection.html#-insertImage__anchor). This method
|
|
3157
|
-
can execute from [Filebrowser](http://xdsoft.net/jodit/doc/module-Filebrowser.html)
|
|
3158
|
-
or [Uploader](http://xdsoft.net/jodit/doc/module-Uploader.html)
|
|
3159
|
-
|
|
3160
|
-
```javascript
|
|
3161
|
-
var editor = new Jodit('#redactor');
|
|
3162
|
-
editor.events.on('afterInsertImage', function (image) {
|
|
3163
|
-
image.className = 'bloghead4';
|
|
3164
|
-
});
|
|
3165
|
-
```
|
|
3166
|
-
|
|
3167
|
-
### 2.3.15
|
|
3168
|
-
|
|
3169
|
-
Fixed bug with inserting table
|
|
3170
|
-
|
|
3171
|
-
### 2.3.14
|
|
3172
|
-
|
|
3173
|
-
Work with table became faster
|
|
3174
|
-
|
|
3175
|
-
### 2.3.12
|
|
3176
|
-
|
|
3177
|
-
- Fixed filbrowser bug. When a new file is uploaded file list has not been updated
|
|
3178
|
-
- Added [dialog.zIndex](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#.dialog) option
|
|
3179
|
-
|
|
3180
|
-
### 2.3.11
|
|
3181
|
-
|
|
3182
|
-
Fixed toolbar width fot fullsize mode
|
|
3183
|
-
|
|
3184
|
-
### 2.3.10
|
|
3185
|
-
|
|
3186
|
-
- Fixed CodeMirror bug on download XML parser
|
|
3187
|
-
- Fixed CodeMirror bug endless cycle
|
|
3188
|
-
- Fixed overflow behavior in fullsize mode
|
|
3189
|
-
|
|
3190
|
-
### 2.3.8
|
|
3191
|
-
|
|
3192
|
-
Fixed connector problem and Fixed item's style in filebrowser
|
|
3193
|
-
|
|
3194
|
-
### 2.3.3
|
|
3195
|
-
|
|
3196
|
-
Switched on FontAwesome icons
|
|
3197
|
-
|
|
3198
|
-
### 2.3.0
|
|
3199
|
-
|
|
3200
|
-
Added copy-paste image file for FireFox
|
|
3201
|
-
|
|
3202
|
-
### 2.2.6
|
|
3203
|
-
|
|
3204
|
-
Fixed copy-paste for FireFox
|
|
3205
|
-
|
|
3206
|
-
### 2.2.5
|
|
3207
|
-
|
|
3208
|
-
Added copy-paste support by clipboard image. [Try](http://xdsoft.net/jodit) paste print screen.
|
|
3209
|
-
|
|
3210
|
-
### 2.2.4
|
|
3211
|
-
|
|
3212
|
-
Added the ability in the file browser to obtain data about the file not as a string and as an object with parameters
|
|
3213
|
-
{file: 'name.jpg', thumb: '\_thumbs/name.jpg'}
|
|
3214
|
-
|
|
3215
|
-
### 2.2.3
|
|
3216
|
-
|
|
3217
|
-
Fixed conflict between textProcessor and Beatyfier plugins
|
|
3218
|
-
|
|
3219
|
-
### 2.2.2
|
|
3220
|
-
|
|
3221
|
-
Fixed BACKSPACE entering behavior. And Fixed ie10 support
|
|
3222
|
-
|
|
3223
|
-
### 2.2.0
|
|
3224
|
-
|
|
3225
|
-
Added [iframe](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#.iframe)
|
|
3226
|
-
, [iframeStyle](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#.iframeStyle)
|
|
3227
|
-
, [iframeIncludeJoditStyle](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#.iframeIncludeJoditStyle)
|
|
3228
|
-
, [iframeCSSLinks](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#.iframeCSSLinks)
|
|
3229
|
-
, [width](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#.width)
|
|
3230
|
-
, [height](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#.height)
|
|
3231
|
-
, [minHeight](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#.minHeight).
|
|
3232
|
-
`iframe` by default false. When this option is enabled, the editor's content will be placed in an iframe and isolated
|
|
3233
|
-
from the rest of the page.
|
|
3234
|
-
`width` and `height` you can set size fot editor
|
|
3235
|
-
|
|
3236
|
-
### 2.1.0
|
|
3237
|
-
|
|
3238
|
-
Added internationalization. Read more http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#.language
|
|
3239
|
-
|
|
3240
|
-
### 2.0.9
|
|
3241
|
-
|
|
3242
|
-
Added Split mode. Added [useSplitMode](http://xdsoft.net/jodit/doc/Jodit.defaultOptions.html#.useSplitMode) options (
|
|
3243
|
-
default true) Example [here](http://xdsoft.net/jodit/#splitmode)
|
|
3244
|
-
|
|
3245
|
-
### 2.0.8
|
|
3246
|
-
|
|
3247
|
-
Fixed dialog bug
|
|
3248
|
-
|
|
3249
|
-
### 2.0.4
|
|
3250
|
-
|
|
3251
|
-
Added CodeMirror plugin. Enable by default {@link defaultOptions~codeMirror.|options.codeMirror}
|
|
3252
|
-
|
|
3253
|
-
### 2.0.0
|
|
3254
|
-
|
|
3255
|
-
We got rid of jQuery
|
|
3256
|
-
|
|
3257
|
-
### 1.2.1
|
|
3258
|
-
|
|
3259
|
-
Fixed bug in filebrowser
|
|
3260
|
-
|
|
3261
|
-
### 1.2.0
|
|
3262
|
-
|
|
3263
|
-
Fixed bug when [selection.insertHTML](http://xdsoft.net/jodit/doc/module-Selection.html#-inner-insertHTML__anchor)
|
|
3264
|
-
doesn't work without focus
|
|
3265
|
-
|
|
3266
|
-
### 1.1.0
|
|
3267
|
-
|
|
3268
|
-
Fixed bug with uploader and filebrowser
|
|
3269
|
-
|
|
3270
|
-
### 1.0.6
|
|
3271
|
-
|
|
3272
|
-
If source `textarea` has `placeholder` attribute then Jodit use it how placeholder
|
|
3273
|
-
|
|
3274
|
-
### 1.0.4
|
|
3275
|
-
|
|
3276
|
-
Added About button
|
|
3277
|
-
|
|
3278
|
-
### 1.0.1
|
|
3279
|
-
|
|
3280
|
-
First release
|