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.
Files changed (622) hide show
  1. package/README.md +29 -2
  2. package/build/jodit.es2018.en.css +125 -124
  3. package/build/jodit.es2018.en.js +28267 -23413
  4. package/build/plugins/{speech/speech-recognize → speech-recognize}/speech-recognize.es2018.en.css +1 -1
  5. package/build/plugins/{speech/speech-recognize/speech-recognize.js → speech-recognize/speech-recognize.es2018.en.js} +139 -128
  6. package/package.json +22 -22
  7. package/src/config.ts +75 -0
  8. package/src/core/constants.ts +3 -0
  9. package/src/core/dom/dom.ts +34 -0
  10. package/src/core/helpers/helpers.test.js +31 -25
  11. package/src/core/helpers/string/i18n.ts +4 -6
  12. package/src/core/helpers/utils/align.ts +83 -0
  13. package/src/core/helpers/utils/default-language.ts +1 -1
  14. package/src/core/helpers/utils/index.ts +11 -9
  15. package/src/core/helpers/utils/mark-deprecated.ts +1 -1
  16. package/src/core/helpers/utils/parse-query.ts +1 -1
  17. package/src/{plugins/print/helpers.ts → core/helpers/utils/print.ts} +6 -2
  18. package/src/core/helpers/utils/utils.ts +19 -1
  19. package/src/core/plugin/plugin-system.ts +23 -7
  20. package/src/core/request/ajax.ts +9 -3
  21. package/src/core/ui/icon.ts +11 -3
  22. package/src/index.ts +2 -8
  23. package/src/langs/ar.js +0 -4
  24. package/src/langs/cs_cz.js +0 -4
  25. package/src/langs/de.js +0 -4
  26. package/src/langs/es.js +0 -4
  27. package/src/langs/fa.js +0 -4
  28. package/src/langs/fr.js +0 -4
  29. package/src/langs/he.js +0 -4
  30. package/src/langs/hu.js +0 -4
  31. package/src/langs/id.js +0 -4
  32. package/src/langs/index.ts +24 -25
  33. package/src/langs/it.js +0 -4
  34. package/src/langs/ja.js +0 -4
  35. package/src/langs/ko.js +0 -4
  36. package/src/langs/nl.js +0 -4
  37. package/src/langs/pl.js +0 -4
  38. package/src/langs/pt_br.js +0 -4
  39. package/src/langs/ru.js +0 -4
  40. package/src/langs/tr.js +0 -4
  41. package/src/langs/zh_cn.js +0 -4
  42. package/src/langs/zh_tw.js +0 -4
  43. package/src/modules/dialog/dialog.test.js +2 -0
  44. package/src/modules/file-browser/config.ts +3 -2
  45. package/src/modules/file-browser/file-browser.ts +2 -7
  46. package/src/modules/image-editor/config.ts +6 -0
  47. package/src/{styles → modules/image-editor}/icons/crop.svg +0 -0
  48. package/src/{styles → modules/image-editor}/icons/resize.svg +0 -0
  49. package/src/modules/table/table.test.js +0 -906
  50. package/src/modules/widget/color-picker/color-picker.ts +2 -0
  51. package/src/{styles/icons → modules/widget/color-picker}/palette.svg +0 -0
  52. package/src/modules/widget/file-selector/file-selector.ts +1 -1
  53. package/src/{styles/icons → plugins/about}/about.svg +0 -0
  54. package/src/plugins/about/about.ts +6 -1
  55. package/src/plugins/add-new-line/add-new-line.test.js +219 -0
  56. package/src/plugins/add-new-line/add-new-line.ts +3 -0
  57. package/src/plugins/add-new-line/config.ts +3 -0
  58. package/src/{styles/icons → plugins/add-new-line}/enter.svg +0 -0
  59. package/src/plugins/{keyboard/backspace → backspace}/backspace.test.js +0 -0
  60. package/src/plugins/{keyboard/backspace → backspace}/backspace.ts +10 -9
  61. package/src/plugins/{keyboard/backspace → backspace}/cases/check-join-neighbors.ts +7 -4
  62. package/src/plugins/{keyboard/backspace → backspace}/cases/check-join-two-lists.ts +6 -2
  63. package/src/plugins/{keyboard/backspace → backspace}/cases/check-not-collapsed.ts +4 -0
  64. package/src/plugins/{keyboard/backspace → backspace}/cases/check-remove-char.ts +7 -2
  65. package/src/plugins/{keyboard/backspace → backspace}/cases/check-remove-content-not-editable.ts +5 -0
  66. package/src/plugins/{keyboard/backspace → backspace}/cases/check-remove-empty-neighbor.ts +6 -3
  67. package/src/plugins/{keyboard/backspace → backspace}/cases/check-remove-empty-parent.ts +11 -3
  68. package/src/plugins/{keyboard/backspace → backspace}/cases/check-remove-unbreakable-element.ts +7 -2
  69. package/src/plugins/{keyboard/backspace → backspace}/cases/check-table-cell.ts +5 -1
  70. package/src/plugins/{keyboard/backspace → backspace}/cases/check-unwrap-first-list-item.ts +5 -1
  71. package/src/plugins/{keyboard/backspace → backspace}/cases/index.ts +4 -0
  72. package/src/plugins/{keyboard/backspace → backspace}/config.ts +0 -0
  73. package/src/plugins/{keyboard → backspace}/helpers.ts +1 -36
  74. package/src/plugins/{keyboard/backspace → backspace}/interface.d.ts +0 -0
  75. package/src/plugins/bold/bold.ts +11 -0
  76. package/src/{styles → plugins/bold}/icons/bold.svg +0 -0
  77. package/src/{styles → plugins/bold}/icons/italic.svg +0 -0
  78. package/src/{styles → plugins/bold}/icons/strikethrough.svg +0 -0
  79. package/src/{styles → plugins/bold}/icons/subscript.svg +0 -0
  80. package/src/{styles → plugins/bold}/icons/superscript.svg +0 -0
  81. package/src/{styles → plugins/bold}/icons/underline.svg +0 -0
  82. package/src/plugins/class-span/{icon.svg → class-span.svg} +0 -0
  83. package/src/plugins/class-span/class-span.ts +5 -2
  84. package/src/plugins/{fix/clean-html → clean-html}/README.md +0 -0
  85. package/src/plugins/{fix/clean-html → clean-html}/clean-html.test.js +0 -0
  86. package/src/plugins/{fix/clean-html → clean-html}/clean-html.ts +7 -3
  87. package/src/plugins/{fix/clean-html → clean-html}/config.ts +4 -1
  88. package/src/{styles/icons → plugins/clean-html}/eraser.svg +0 -0
  89. package/src/plugins/{fix/clean-html → clean-html}/helpers/get-hash.ts +3 -2
  90. package/src/plugins/{fix/clean-html → clean-html}/helpers/index.ts +1 -1
  91. package/src/plugins/{fix/clean-html → clean-html}/helpers/remove-format/remove-format-for-collapsed-selection.ts +1 -1
  92. package/src/plugins/{fix/clean-html → clean-html}/helpers/remove-format/remove-format-for-selection.ts +3 -3
  93. package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/allow-attributes.ts +1 -1
  94. package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/fill-empty-paragraph.ts +1 -1
  95. package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/index.ts +1 -1
  96. package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/remove-inv-text-nodes.ts +1 -1
  97. package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/replace-old-tags.ts +1 -1
  98. package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/sanitize-attributes.ts +2 -2
  99. package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/try-remove-node.ts +7 -36
  100. package/src/plugins/{fix/clean-html → clean-html}/helpers/visitor/visit-node-walker.ts +3 -2
  101. package/src/plugins/clipboard/clipboard.ts +19 -10
  102. package/src/plugins/clipboard/config.ts +6 -0
  103. package/src/{styles → plugins/clipboard}/icons/copy.svg +0 -0
  104. package/src/{styles → plugins/clipboard}/icons/cut.svg +0 -0
  105. package/src/{styles → plugins/clipboard}/icons/paste.svg +0 -0
  106. package/src/{styles → plugins/clipboard}/icons/select-all.svg +0 -0
  107. package/src/{styles/icons → plugins/color}/brush.svg +0 -0
  108. package/src/plugins/color/color.ts +6 -169
  109. package/src/plugins/color/config.ts +183 -0
  110. package/src/{styles/icons/copyformat.svg → plugins/copy-format/copy-format.svg} +0 -0
  111. package/src/plugins/copy-format/copy-format.test.js +223 -0
  112. package/src/plugins/{clipboard → copy-format}/copy-format.ts +10 -3
  113. package/src/plugins/copy-format/langs/ar.js +9 -0
  114. package/src/plugins/copy-format/langs/cs_cz.js +9 -0
  115. package/src/plugins/copy-format/langs/de.js +9 -0
  116. package/src/plugins/copy-format/langs/es.js +9 -0
  117. package/src/plugins/copy-format/langs/fa.js +9 -0
  118. package/src/plugins/copy-format/langs/fr.js +9 -0
  119. package/src/plugins/copy-format/langs/he.js +9 -0
  120. package/src/plugins/{speech/speech-recognize → copy-format}/langs/hu.js +1 -3
  121. package/src/plugins/{speech/speech-recognize → copy-format}/langs/id.js +1 -3
  122. package/src/plugins/{speech/speech-recognize → copy-format}/langs/index.ts +0 -0
  123. package/src/plugins/copy-format/langs/it.js +9 -0
  124. package/src/plugins/copy-format/langs/ja.js +9 -0
  125. package/src/plugins/copy-format/langs/ko.js +9 -0
  126. package/src/plugins/copy-format/langs/nl.js +9 -0
  127. package/src/plugins/copy-format/langs/pl.js +9 -0
  128. package/src/plugins/{speech/speech-recognize → copy-format}/langs/pt_br.js +1 -3
  129. package/src/plugins/copy-format/langs/ru.js +9 -0
  130. package/src/plugins/copy-format/langs/tr.js +9 -0
  131. package/src/plugins/{speech/speech-recognize → copy-format}/langs/zh_cn.js +1 -3
  132. package/src/plugins/copy-format/langs/zh_tw.js +9 -0
  133. package/src/plugins/{clipboard/drag-and-drop → drag-and-drop}/drag-and-drop.ts +6 -4
  134. package/src/plugins/drag-and-drop-element/config.ts +22 -0
  135. package/src/plugins/{clipboard/drag-and-drop-element → drag-and-drop-element}/drag-and-drop-element.test.js +0 -0
  136. package/src/plugins/{clipboard/drag-and-drop-element → drag-and-drop-element}/drag-and-drop-element.ts +7 -3
  137. package/src/plugins/{keyboard/enter → enter}/README.md +0 -0
  138. package/src/plugins/{keyboard/enter → enter}/enter.test.js +0 -0
  139. package/src/plugins/{keyboard/enter → enter}/enter.ts +7 -3
  140. package/src/plugins/{keyboard/enter → enter}/helpers/check-br.ts +1 -1
  141. package/src/plugins/{keyboard/enter → enter}/helpers/check-unsplittable-box.ts +1 -1
  142. package/src/plugins/{keyboard/enter → enter}/helpers/get-block-wrapper.ts +1 -1
  143. package/src/plugins/{keyboard/enter → enter}/helpers/has-previous-block.ts +1 -1
  144. package/src/plugins/{keyboard/enter → enter}/helpers/index.ts +1 -1
  145. package/src/plugins/{keyboard/enter → enter}/helpers/insert-paragraph.ts +1 -1
  146. package/src/plugins/{keyboard/enter → enter}/helpers/process-empty-li-leaf.ts +2 -1
  147. package/src/plugins/{keyboard/enter → enter}/helpers/split-fragment.ts +3 -2
  148. package/src/plugins/{keyboard/enter → enter}/helpers/wrap-text.ts +1 -1
  149. package/src/plugins/error-messages/error-messages.ts +3 -0
  150. package/src/plugins/{media → file}/file.ts +5 -2
  151. package/src/plugins/focus/focus.ts +3 -0
  152. package/src/plugins/font/config.ts +151 -0
  153. package/src/plugins/font/font.ts +6 -134
  154. package/src/{styles → plugins/font}/icons/font.svg +0 -0
  155. package/src/{styles → plugins/font}/icons/fontsize.svg +0 -0
  156. package/src/plugins/format-block/format-block.ts +6 -0
  157. package/src/{styles/icons → plugins/format-block}/paragraph.svg +0 -0
  158. package/src/plugins/fullsize/config.ts +73 -0
  159. package/src/plugins/fullsize/fullsize.test.js +35 -0
  160. package/src/plugins/fullsize/fullsize.ts +5 -54
  161. package/src/{styles → plugins/fullsize}/icons/fullsize.svg +0 -0
  162. package/src/{styles → plugins/fullsize}/icons/shrink.svg +0 -0
  163. package/src/plugins/hotkeys/config.ts +38 -0
  164. package/src/plugins/hotkeys/hotkeys.test.js +136 -0
  165. package/src/plugins/{keyboard → hotkeys}/hotkeys.ts +6 -28
  166. package/src/{styles/icons → plugins/hr}/hr.svg +0 -0
  167. package/src/plugins/{insert/insert.test.js → hr/hr.test.js} +0 -0
  168. package/src/plugins/{insert → hr}/hr.ts +7 -1
  169. package/src/plugins/iframe/config.ts +0 -21
  170. package/src/plugins/iframe/iframe.ts +3 -0
  171. package/src/{styles/icons → plugins/image}/image.svg +0 -0
  172. package/src/plugins/image/image.ts +6 -0
  173. package/src/plugins/{image/image-processor → image-processor}/README.md +0 -0
  174. package/src/plugins/{image/image-processor → image-processor}/config.ts +0 -0
  175. package/src/plugins/{image/image-processor → image-processor}/image-processor.ts +5 -2
  176. package/src/plugins/{image/image-properties → image-properties}/config.ts +1 -1
  177. package/src/plugins/{image/image-properties → image-properties}/image-properties.less +1 -1
  178. package/src/plugins/image-properties/image-properties.test.js +548 -0
  179. package/src/plugins/{image/image-properties → image-properties}/image-properties.ts +23 -15
  180. package/src/plugins/{image/image-properties → image-properties}/templates/form.ts +2 -2
  181. package/src/plugins/{image/image-properties → image-properties}/templates/main-tab.ts +2 -2
  182. package/src/plugins/{image/image-properties → image-properties}/templates/position-tab.ts +2 -2
  183. package/src/plugins/indent/config.ts +57 -0
  184. package/src/plugins/indent/helpers.ts +23 -0
  185. package/src/{styles → plugins/indent}/icons/indent.svg +0 -0
  186. package/src/{styles → plugins/indent}/icons/outdent.svg +0 -0
  187. package/src/plugins/indent/indent.ts +6 -48
  188. package/src/plugins/index.ts +61 -53
  189. package/src/plugins/inline-popup/config/config.ts +9 -0
  190. package/src/plugins/inline-popup/config/items/img.ts +10 -7
  191. package/src/{styles → plugins/inline-popup}/icons/addcolumn.svg +0 -0
  192. package/src/{styles → plugins/inline-popup}/icons/addrow.svg +0 -0
  193. package/src/{styles → plugins/inline-popup}/icons/merge.svg +0 -0
  194. package/src/{styles → plugins/inline-popup}/icons/splitg.svg +0 -0
  195. package/src/{styles → plugins/inline-popup}/icons/splitv.svg +0 -0
  196. package/src/{styles → plugins/inline-popup}/icons/th-list.svg +0 -0
  197. package/src/{styles → plugins/inline-popup}/icons/th.svg +0 -0
  198. package/src/plugins/inline-popup/inline-popup.ts +5 -1
  199. package/src/{styles/icons → plugins/justify}/justify.svg +0 -0
  200. package/src/plugins/justify/justify.ts +9 -46
  201. package/src/plugins/{keyboard → key-arrow-outside}/key-arrow-outside.ts +6 -4
  202. package/src/plugins/limit/config.ts +30 -0
  203. package/src/plugins/limit/limit.ts +4 -23
  204. package/src/plugins/line-height/config.ts +3 -1
  205. package/src/plugins/line-height/langs/ar.js +9 -0
  206. package/src/plugins/line-height/langs/cs_cz.js +9 -0
  207. package/src/plugins/line-height/langs/de.js +9 -0
  208. package/src/plugins/line-height/langs/es.js +9 -0
  209. package/src/plugins/line-height/langs/fa.js +9 -0
  210. package/src/plugins/line-height/langs/fr.js +9 -0
  211. package/src/plugins/line-height/langs/he.js +9 -0
  212. package/src/plugins/line-height/langs/hu.js +9 -0
  213. package/src/plugins/line-height/langs/id.js +9 -0
  214. package/src/plugins/line-height/langs/index.ts +47 -0
  215. package/src/plugins/line-height/langs/it.js +9 -0
  216. package/src/plugins/line-height/langs/ja.js +9 -0
  217. package/src/plugins/line-height/langs/ko.js +9 -0
  218. package/src/plugins/line-height/langs/nl.js +9 -0
  219. package/src/plugins/line-height/langs/pl.js +9 -0
  220. package/src/plugins/line-height/langs/pt_br.js +9 -0
  221. package/src/plugins/line-height/langs/ru.js +9 -0
  222. package/src/plugins/line-height/langs/tr.js +9 -0
  223. package/src/plugins/line-height/langs/zh_cn.js +9 -0
  224. package/src/plugins/line-height/langs/zh_tw.js +9 -0
  225. package/src/{styles/icons → plugins/line-height}/line-height.svg +0 -0
  226. package/src/plugins/line-height/line-height.ts +12 -3
  227. package/src/plugins/link/config.ts +6 -0
  228. package/src/{styles → plugins/link}/icons/link.svg +0 -0
  229. package/src/{styles → plugins/link}/icons/unlink.svg +0 -0
  230. package/src/plugins/link/link.ts +5 -1
  231. package/src/plugins/media/config.ts +30 -0
  232. package/src/plugins/media/media.ts +5 -24
  233. package/src/plugins/mobile/mobile.ts +3 -0
  234. package/src/plugins/ordered-list/config.ts +4 -1
  235. package/src/{styles → plugins/ordered-list}/icons/ol.svg +0 -0
  236. package/src/{styles → plugins/ordered-list}/icons/ul.svg +0 -0
  237. package/src/plugins/ordered-list/ordered-list.ts +3 -0
  238. package/src/plugins/{clipboard/paste → paste}/README.md +0 -0
  239. package/src/plugins/{clipboard/paste → paste}/config.ts +5 -12
  240. package/src/plugins/{clipboard/paste → paste}/helpers.ts +6 -25
  241. package/src/plugins/{clipboard/paste → paste}/interface.ts +3 -14
  242. package/src/plugins/{clipboard/paste → paste}/paste.test.js +0 -0
  243. package/src/plugins/{clipboard/paste → paste}/paste.ts +20 -23
  244. package/src/plugins/{clipboard/paste-from-word → paste-from-word}/README.md +0 -0
  245. package/src/plugins/{clipboard/paste-from-word → paste-from-word}/config.ts +2 -3
  246. package/src/plugins/{clipboard/paste-from-word → paste-from-word}/paste-from-word.ts +15 -16
  247. package/src/plugins/{clipboard/paste-storage → paste-storage}/paste-storage.less +1 -1
  248. package/src/plugins/paste-storage/paste-storage.test.js +231 -0
  249. package/src/plugins/{clipboard/paste-storage → paste-storage}/paste-storage.ts +8 -5
  250. package/src/plugins/placeholder/placeholder.ts +4 -1
  251. package/src/plugins/plugins.test.js +0 -2141
  252. package/src/plugins/powered-by-jodit/powered-by-jodit.ts +9 -5
  253. package/src/plugins/{print/preview → preview}/preview.less +1 -1
  254. package/src/plugins/{print/preview → preview}/preview.test.js +0 -0
  255. package/src/plugins/{print/preview → preview}/preview.ts +4 -1
  256. package/src/plugins/print/lib/generate-critical-css.ts +3 -0
  257. package/src/{styles/icons → plugins/print}/print.svg +0 -0
  258. package/src/plugins/print/print.ts +10 -3
  259. package/src/{styles → plugins/redo-undo}/icons/redo.svg +0 -0
  260. package/src/{styles → plugins/redo-undo}/icons/undo.svg +0 -0
  261. package/src/plugins/redo-undo/redo-undo.ts +10 -1
  262. package/src/plugins/resize-cells/config.ts +19 -0
  263. package/src/plugins/resize-cells/resize-cells.less +27 -0
  264. package/src/plugins/resize-cells/resize-cells.test.js +890 -0
  265. package/src/plugins/{table → resize-cells}/resize-cells.ts +10 -4
  266. package/src/plugins/resize-handler/config.ts +21 -0
  267. package/src/plugins/{size → resize-handler}/resize-handler.ts +5 -0
  268. package/src/plugins/resizer/config.ts +1 -1
  269. package/src/plugins/resizer/resizer.ts +6 -2
  270. package/src/plugins/search/config.ts +3 -0
  271. package/src/plugins/search/helpers/sentence-finder.ts +1 -1
  272. package/src/plugins/search/helpers/wrap-ranges-texts-in-tmp-span.ts +1 -1
  273. package/src/{styles/icons → plugins/search}/search.svg +0 -0
  274. package/src/plugins/search/search.ts +7 -3
  275. package/src/plugins/select/config.ts +1 -1
  276. package/src/plugins/select/select.ts +6 -7
  277. package/src/plugins/select-cells/config.ts +19 -0
  278. package/src/plugins/{table → select-cells}/select-cells.ts +10 -5
  279. package/src/plugins/size/config.ts +0 -56
  280. package/src/plugins/size/size.test.js +27 -0
  281. package/src/plugins/size/size.ts +6 -1
  282. package/src/plugins/source/config.ts +9 -7
  283. package/src/plugins/source/editor/engines/ace.ts +8 -5
  284. package/src/plugins/source/editor/engines/area.ts +3 -2
  285. package/src/plugins/source/editor/engines/custom.ts +1 -0
  286. package/src/plugins/source/editor/factory.ts +2 -1
  287. package/src/{styles/icons → plugins/source}/source.svg +0 -0
  288. package/src/plugins/source/source.ts +9 -4
  289. package/src/plugins/{speech/speech-recognize → speech-recognize}/README.md +4 -4
  290. package/src/plugins/{speech/speech-recognize → speech-recognize}/config.ts +5 -3
  291. package/src/plugins/{speech/speech-recognize → speech-recognize}/constants.ts +2 -1
  292. package/src/plugins/{speech/speech-recognize → speech-recognize}/helpers/api.ts +1 -1
  293. package/src/plugins/{speech/speech-recognize → speech-recognize}/helpers/exec-spell-command.ts +1 -1
  294. package/src/plugins/{speech/speech-recognize → speech-recognize}/helpers/recognize-manager.ts +5 -7
  295. package/src/plugins/{speech/speech-recognize → speech-recognize}/helpers/sound.ts +4 -1
  296. package/src/plugins/{speech/speech-recognize → speech-recognize}/interface.ts +1 -1
  297. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/ar.js +4 -1
  298. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/cs_cz.js +4 -1
  299. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/de.js +4 -1
  300. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/es.js +4 -1
  301. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/fa.js +4 -1
  302. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/fr.js +4 -1
  303. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/he.js +4 -1
  304. package/src/plugins/speech-recognize/langs/hu.js +14 -0
  305. package/src/plugins/speech-recognize/langs/id.js +14 -0
  306. package/src/plugins/speech-recognize/langs/index.ts +47 -0
  307. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/it.js +4 -1
  308. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/ja.js +4 -1
  309. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/ko.js +4 -1
  310. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/nl.js +4 -1
  311. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/pl.js +4 -1
  312. package/src/plugins/speech-recognize/langs/pt_br.js +14 -0
  313. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/ru.js +4 -1
  314. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/tr.js +4 -1
  315. package/src/plugins/speech-recognize/langs/zh_cn.js +14 -0
  316. package/src/plugins/{speech/speech-recognize → speech-recognize}/langs/zh_tw.js +4 -1
  317. package/src/plugins/{speech/speech-recognize → speech-recognize}/speech-recognize.less +2 -2
  318. package/src/plugins/{speech/speech-recognize/icon.svg → speech-recognize/speech-recognize.svg} +0 -0
  319. package/src/plugins/{speech/speech-recognize → speech-recognize}/speech-recognize.ts +2 -2
  320. package/src/plugins/spellcheck/config.ts +4 -1
  321. package/src/plugins/spellcheck/langs/ar.js +9 -0
  322. package/src/plugins/spellcheck/langs/cs_cz.js +9 -0
  323. package/src/plugins/spellcheck/langs/de.js +9 -0
  324. package/src/plugins/spellcheck/langs/es.js +9 -0
  325. package/src/plugins/spellcheck/langs/fa.js +9 -0
  326. package/src/plugins/spellcheck/langs/fr.js +9 -0
  327. package/src/plugins/spellcheck/langs/he.js +9 -0
  328. package/src/plugins/spellcheck/langs/hu.js +9 -0
  329. package/src/plugins/spellcheck/langs/id.js +9 -0
  330. package/src/plugins/spellcheck/langs/index.ts +47 -0
  331. package/src/plugins/spellcheck/langs/it.js +9 -0
  332. package/src/plugins/spellcheck/langs/ja.js +9 -0
  333. package/src/plugins/spellcheck/langs/ko.js +9 -0
  334. package/src/plugins/spellcheck/langs/nl.js +9 -0
  335. package/src/plugins/spellcheck/langs/pl.js +9 -0
  336. package/src/plugins/spellcheck/langs/pt_br.js +9 -0
  337. package/src/plugins/spellcheck/langs/ru.js +9 -0
  338. package/src/plugins/spellcheck/langs/tr.js +9 -0
  339. package/src/plugins/spellcheck/langs/zh_cn.js +9 -0
  340. package/src/plugins/spellcheck/langs/zh_tw.js +9 -0
  341. package/src/plugins/spellcheck/spellcheck.ts +8 -0
  342. package/src/plugins/stat/config.ts +23 -0
  343. package/src/plugins/stat/stat.ts +6 -14
  344. package/src/plugins/sticky/config.ts +44 -0
  345. package/src/plugins/sticky/sticky.test.js +201 -0
  346. package/src/plugins/sticky/sticky.ts +6 -34
  347. package/src/plugins/symbols/config.ts +4 -2
  348. package/src/plugins/symbols/langs/ar.js +9 -0
  349. package/src/plugins/symbols/langs/cs_cz.js +9 -0
  350. package/src/plugins/symbols/langs/de.js +9 -0
  351. package/src/plugins/symbols/langs/es.js +9 -0
  352. package/src/plugins/symbols/langs/fa.js +9 -0
  353. package/src/plugins/symbols/langs/fr.js +9 -0
  354. package/src/plugins/symbols/langs/he.js +9 -0
  355. package/src/plugins/symbols/langs/hu.js +9 -0
  356. package/src/plugins/symbols/langs/id.js +9 -0
  357. package/src/plugins/symbols/langs/index.ts +47 -0
  358. package/src/plugins/symbols/langs/it.js +9 -0
  359. package/src/plugins/symbols/langs/ja.js +9 -0
  360. package/src/plugins/symbols/langs/ko.js +9 -0
  361. package/src/plugins/symbols/langs/nl.js +9 -0
  362. package/src/plugins/symbols/langs/pl.js +9 -0
  363. package/src/plugins/symbols/langs/pt_br.js +9 -0
  364. package/src/plugins/symbols/langs/ru.js +9 -0
  365. package/src/plugins/symbols/langs/tr.js +9 -0
  366. package/src/plugins/symbols/langs/zh_cn.js +9 -0
  367. package/src/plugins/symbols/langs/zh_tw.js +9 -0
  368. package/src/{styles/icons/omega.svg → plugins/symbols/symbols.svg} +0 -0
  369. package/src/plugins/symbols/symbols.test.js +280 -0
  370. package/src/plugins/symbols/symbols.ts +13 -4
  371. package/src/plugins/{keyboard/tab → tab}/README.md +0 -0
  372. package/src/plugins/{keyboard/tab → tab}/cases/index.ts +1 -1
  373. package/src/plugins/{keyboard/tab → tab}/cases/on-tab-inside-li.ts +3 -2
  374. package/src/plugins/{keyboard/tab → tab}/config.ts +1 -1
  375. package/src/plugins/{keyboard/tab → tab}/tab.test.js +0 -0
  376. package/src/plugins/{keyboard/tab → tab}/tab.ts +7 -4
  377. package/src/plugins/table/config.ts +3 -4
  378. package/src/plugins/table/table.less +0 -26
  379. package/src/{styles/icons → plugins/table}/table.svg +0 -0
  380. package/src/plugins/table/table.ts +7 -0
  381. package/src/plugins/{table → table-keyboard-navigation}/table-keyboard-navigation.ts +5 -2
  382. package/src/plugins/tooltip/tooltip.ts +4 -2
  383. package/src/plugins/{media/video → video}/config.ts +4 -1
  384. package/src/{styles/icons → plugins/video}/video.svg +0 -0
  385. package/src/plugins/{media/video/index.ts → video/video.ts} +6 -2
  386. package/src/plugins/{fix/wrap-nodes → wrap-nodes}/README.md +0 -0
  387. package/src/plugins/{fix/wrap-nodes → wrap-nodes}/config.ts +1 -1
  388. package/src/plugins/{fix/wrap-nodes → wrap-nodes}/wrap-nodes.test.js +0 -0
  389. package/src/plugins/{fix/wrap-nodes → wrap-nodes}/wrap-nodes.ts +6 -3
  390. package/src/plugins/xpath/config.ts +19 -0
  391. package/src/plugins/xpath/xpath.test.js +182 -0
  392. package/src/plugins/xpath/xpath.ts +9 -13
  393. package/src/styles/icons/index.ts +2 -114
  394. package/src/types/ajax.d.ts +7 -4
  395. package/src/types/file-browser.d.ts +5 -1
  396. package/src/types/index.d.ts +1 -1
  397. package/src/types/plugin.d.ts +1 -1
  398. package/src/types/types.d.ts +7 -0
  399. package/src/types/uploader.d.ts +6 -2
  400. package/tsconfig.json +8 -12
  401. package/types/config.d.ts +69 -1
  402. package/types/core/constants.d.ts +2 -0
  403. package/types/core/dom/dom.d.ts +8 -0
  404. package/types/core/helpers/utils/align.d.ts +18 -0
  405. package/types/core/helpers/utils/index.d.ts +11 -9
  406. package/types/core/helpers/utils/mark-deprecated.d.ts +1 -1
  407. package/types/{plugins/print/helpers.d.ts → core/helpers/utils/print.d.ts} +0 -0
  408. package/types/core/helpers/utils/utils.d.ts +5 -1
  409. package/types/index.d.ts +1 -0
  410. package/types/modules/file-browser/file-browser.d.ts +1 -4
  411. package/types/plugins/about/about.d.ts +0 -2
  412. package/types/plugins/{keyboard/backspace → backspace}/backspace.d.ts +2 -5
  413. package/types/plugins/{keyboard/backspace → backspace}/cases/check-join-neighbors.d.ts +3 -0
  414. package/types/plugins/{keyboard/backspace → backspace}/cases/check-join-two-lists.d.ts +3 -0
  415. package/types/plugins/{keyboard/backspace → backspace}/cases/check-not-collapsed.d.ts +3 -0
  416. package/types/plugins/{keyboard/backspace → backspace}/cases/check-remove-char.d.ts +4 -1
  417. package/types/plugins/{keyboard/backspace → backspace}/cases/check-remove-content-not-editable.d.ts +3 -0
  418. package/types/plugins/{keyboard/backspace → backspace}/cases/check-remove-empty-neighbor.d.ts +3 -0
  419. package/types/plugins/{keyboard/backspace → backspace}/cases/check-remove-empty-parent.d.ts +3 -0
  420. package/types/plugins/{keyboard/backspace → backspace}/cases/check-remove-unbreakable-element.d.ts +3 -0
  421. package/types/plugins/{keyboard/backspace → backspace}/cases/check-table-cell.d.ts +3 -0
  422. package/types/plugins/{keyboard/backspace → backspace}/cases/check-unwrap-first-list-item.d.ts +3 -0
  423. package/types/plugins/{keyboard/backspace → backspace}/cases/index.d.ts +0 -0
  424. package/types/plugins/{keyboard/backspace → backspace}/config.d.ts +0 -0
  425. package/types/plugins/{keyboard → backspace}/helpers.d.ts +0 -8
  426. package/types/plugins/{fix/clean-html → clean-html}/clean-html.d.ts +2 -2
  427. package/types/plugins/{fix/clean-html → clean-html}/config.d.ts +1 -1
  428. package/types/plugins/{fix/clean-html → clean-html}/helpers/get-hash.d.ts +1 -1
  429. package/types/plugins/{fix/clean-html → clean-html}/helpers/index.d.ts +1 -1
  430. package/types/plugins/{fix/clean-html → clean-html}/helpers/remove-format/remove-format-for-collapsed-selection.d.ts +1 -1
  431. package/types/plugins/{fix/clean-html → clean-html}/helpers/remove-format/remove-format-for-selection.d.ts +1 -1
  432. package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/allow-attributes.d.ts +1 -1
  433. package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/fill-empty-paragraph.d.ts +1 -1
  434. package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/index.d.ts +1 -1
  435. package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/remove-inv-text-nodes.d.ts +1 -1
  436. package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/replace-old-tags.d.ts +1 -1
  437. package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/sanitize-attributes.d.ts +1 -1
  438. package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/filters/try-remove-node.d.ts +4 -1
  439. package/types/plugins/{fix/clean-html → clean-html}/helpers/visitor/visit-node-walker.d.ts +1 -1
  440. package/types/plugins/clipboard/clipboard.d.ts +1 -1
  441. package/types/plugins/color/color.d.ts +1 -0
  442. package/types/plugins/{media/video → color}/config.d.ts +0 -0
  443. package/types/plugins/{clipboard → copy-format}/copy-format.d.ts +0 -0
  444. package/types/plugins/{clipboard/drag-and-drop → drag-and-drop}/drag-and-drop.d.ts +1 -1
  445. package/types/plugins/drag-and-drop-element/config.d.ts +14 -0
  446. package/types/plugins/{clipboard/drag-and-drop-element → drag-and-drop-element}/drag-and-drop-element.d.ts +2 -1
  447. package/types/plugins/{keyboard/enter → enter}/enter.d.ts +1 -1
  448. package/types/plugins/{keyboard/enter → enter}/helpers/check-br.d.ts +1 -1
  449. package/types/plugins/{keyboard/enter → enter}/helpers/check-unsplittable-box.d.ts +1 -1
  450. package/types/plugins/{keyboard/enter → enter}/helpers/get-block-wrapper.d.ts +1 -1
  451. package/types/plugins/{keyboard/enter → enter}/helpers/has-previous-block.d.ts +1 -1
  452. package/types/plugins/{keyboard/enter → enter}/helpers/index.d.ts +1 -1
  453. package/types/plugins/{keyboard/enter → enter}/helpers/insert-paragraph.d.ts +1 -1
  454. package/types/plugins/{keyboard/enter → enter}/helpers/process-empty-li-leaf.d.ts +1 -1
  455. package/types/plugins/{keyboard/enter → enter}/helpers/split-fragment.d.ts +1 -1
  456. package/types/plugins/{keyboard/enter → enter}/helpers/wrap-text.d.ts +1 -1
  457. package/types/plugins/{media → file}/file.d.ts +1 -1
  458. package/types/plugins/font/config.d.ts +11 -0
  459. package/types/plugins/font/font.d.ts +1 -5
  460. package/types/plugins/fullsize/config.d.ts +34 -0
  461. package/types/plugins/fullsize/fullsize.d.ts +1 -25
  462. package/types/plugins/hotkeys/config.d.ts +14 -0
  463. package/types/plugins/{keyboard → hotkeys}/hotkeys.d.ts +3 -7
  464. package/types/plugins/{insert → hr}/hr.d.ts +1 -1
  465. package/types/plugins/iframe/config.d.ts +0 -17
  466. package/types/plugins/{image/image-processor → image-processor}/config.d.ts +0 -0
  467. package/types/plugins/{image/image-processor → image-processor}/image-processor.d.ts +1 -1
  468. package/types/plugins/{image/image-properties → image-properties}/config.d.ts +0 -0
  469. package/types/plugins/{image/image-properties → image-properties}/image-properties.d.ts +5 -5
  470. package/types/plugins/{image/image-properties → image-properties}/templates/form.d.ts +1 -1
  471. package/types/plugins/{image/image-properties → image-properties}/templates/main-tab.d.ts +1 -1
  472. package/types/plugins/{image/image-properties → image-properties}/templates/position-tab.d.ts +1 -1
  473. package/types/plugins/indent/config.d.ts +14 -0
  474. package/types/plugins/{image → indent}/helpers.d.ts +3 -2
  475. package/types/plugins/indent/indent.d.ts +1 -8
  476. package/types/plugins/index.d.ts +61 -45
  477. package/types/plugins/inline-popup/inline-popup.d.ts +1 -1
  478. package/types/plugins/justify/justify.d.ts +0 -8
  479. package/types/plugins/{keyboard → key-arrow-outside}/key-arrow-outside.d.ts +1 -1
  480. package/types/plugins/limit/config.d.ts +22 -0
  481. package/types/plugins/limit/limit.d.ts +1 -16
  482. package/types/plugins/line-height/line-height.d.ts +1 -0
  483. package/types/plugins/media/config.d.ts +22 -0
  484. package/types/plugins/media/media.d.ts +1 -16
  485. package/types/plugins/{clipboard/paste → paste}/config.d.ts +1 -7
  486. package/types/plugins/{clipboard/paste → paste}/helpers.d.ts +3 -7
  487. package/types/plugins/{clipboard/paste → paste}/interface.d.ts +2 -3
  488. package/types/plugins/{clipboard/paste → paste}/paste.d.ts +5 -5
  489. package/types/plugins/{clipboard/paste-from-word → paste-from-word}/config.d.ts +2 -3
  490. package/types/plugins/{clipboard/paste-from-word → paste-from-word}/paste-from-word.d.ts +5 -5
  491. package/types/plugins/{clipboard/paste-storage → paste-storage}/paste-storage.d.ts +2 -2
  492. package/types/plugins/placeholder/placeholder.d.ts +1 -1
  493. package/types/plugins/{print/preview → preview}/preview.d.ts +0 -0
  494. package/types/plugins/print/lib/generate-critical-css.d.ts +3 -0
  495. package/types/plugins/redo-undo/redo-undo.d.ts +1 -1
  496. package/types/plugins/resize-cells/config.d.ts +11 -0
  497. package/types/plugins/{table → resize-cells}/resize-cells.d.ts +4 -3
  498. package/types/plugins/resize-handler/config.d.ts +12 -0
  499. package/types/plugins/{size → resize-handler}/resize-handler.d.ts +1 -0
  500. package/types/plugins/resizer/resizer.d.ts +1 -1
  501. package/types/plugins/select/select.d.ts +0 -2
  502. package/types/plugins/select-cells/config.d.ts +11 -0
  503. package/types/plugins/{table → select-cells}/select-cells.d.ts +2 -1
  504. package/types/plugins/size/config.d.ts +0 -4
  505. package/types/plugins/size/size.d.ts +2 -1
  506. package/types/plugins/source/source.d.ts +1 -0
  507. package/types/plugins/spellcheck/spellcheck.d.ts +1 -0
  508. package/types/plugins/stat/config.d.ts +16 -0
  509. package/types/plugins/stat/stat.d.ts +2 -8
  510. package/types/plugins/sticky/config.d.ts +32 -0
  511. package/types/plugins/sticky/sticky.d.ts +2 -27
  512. package/types/plugins/symbols/symbols.d.ts +3 -2
  513. package/types/plugins/{keyboard/tab → tab}/cases/index.d.ts +1 -1
  514. package/types/plugins/{keyboard/tab → tab}/cases/on-tab-inside-li.d.ts +2 -1
  515. package/types/plugins/{keyboard/tab → tab}/config.d.ts +0 -0
  516. package/types/plugins/{insert/index.d.ts → tab/tab.d.ts} +1 -4
  517. package/types/plugins/table/config.d.ts +0 -2
  518. package/types/plugins/table/table.d.ts +2 -0
  519. package/types/plugins/{table → table-keyboard-navigation}/table-keyboard-navigation.d.ts +0 -0
  520. package/types/plugins/tooltip/tooltip.d.ts +0 -13
  521. package/{src/plugins/insert/index.ts → types/plugins/video/config.d.ts} +1 -6
  522. package/types/plugins/video/video.d.ts +6 -0
  523. package/types/plugins/{fix/wrap-nodes → wrap-nodes}/config.d.ts +1 -1
  524. package/types/plugins/wrap-nodes/wrap-nodes.d.ts +6 -0
  525. package/types/plugins/xpath/config.d.ts +11 -0
  526. package/types/plugins/xpath/xpath.d.ts +1 -24
  527. package/types/styles/icons/index.d.ts +1 -57
  528. package/types/types/ajax.d.ts +7 -4
  529. package/types/types/file-browser.d.ts +5 -1
  530. package/types/types/index.d.ts +1 -1
  531. package/types/types/plugin.d.ts +1 -1
  532. package/types/types/types.d.ts +7 -0
  533. package/types/types/uploader.d.ts +6 -2
  534. package/.github/ISSUE_TEMPLATE.md +0 -18
  535. package/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  536. package/.github/workflows/docs.yml +0 -16
  537. package/.github/workflows/tests.yml +0 -22
  538. package/.idea/codeStyles/Project.xml +0 -68
  539. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  540. package/.idea/dictionaries/v_chupurnov.xml +0 -12
  541. package/.idea/encodings.xml +0 -4
  542. package/.idea/inspectionProfiles/Project_Default.xml +0 -118
  543. package/.idea/jodit.iml +0 -12
  544. package/.idea/jsLibraryMappings.xml +0 -6
  545. package/.idea/markdown-navigator-enh.xml +0 -29
  546. package/.idea/markdown-navigator.xml +0 -55
  547. package/.idea/misc.xml +0 -6
  548. package/.idea/modules.xml +0 -8
  549. package/.idea/prettier.xml +0 -6
  550. package/.idea/stylesheetLinters/stylelint.xml +0 -6
  551. package/.idea/vcs.xml +0 -6
  552. package/.idea/watcherTasks.xml +0 -4
  553. package/.idea/workspace.xml +0 -1521
  554. package/CHANGELOG.MD +0 -3280
  555. package/CONTRIBUTING.md +0 -100
  556. package/SECURITY.md +0 -10
  557. package/build/jodit.css +0 -5866
  558. package/build/jodit.es2018.css +0 -4822
  559. package/build/jodit.es2018.en.min.css +0 -1
  560. package/build/jodit.es2018.en.min.js +0 -1
  561. package/build/jodit.es2018.js +0 -34937
  562. package/build/jodit.es2018.min.css +0 -1
  563. package/build/jodit.es2018.min.js +0 -1
  564. package/build/jodit.js +0 -42539
  565. package/build/jodit.min.css +0 -8
  566. package/build/jodit.min.js +0 -1
  567. package/build/plugins/speech/speech-recognize/speech-recognize.css +0 -39
  568. package/build/plugins/speech/speech-recognize/speech-recognize.es2018.css +0 -39
  569. package/build/plugins/speech/speech-recognize/speech-recognize.es2018.en.js +0 -920
  570. package/build/plugins/speech/speech-recognize/speech-recognize.es2018.en.min.css +0 -1
  571. package/build/plugins/speech/speech-recognize/speech-recognize.es2018.en.min.js +0 -1
  572. package/build/plugins/speech/speech-recognize/speech-recognize.es2018.js +0 -920
  573. package/build/plugins/speech/speech-recognize/speech-recognize.es2018.min.css +0 -1
  574. package/build/plugins/speech/speech-recognize/speech-recognize.es2018.min.js +0 -1
  575. package/build/plugins/speech/speech-recognize/speech-recognize.min.css +0 -1
  576. package/build/plugins/speech/speech-recognize/speech-recognize.min.js +0 -1
  577. package/build/vdom.css +0 -18
  578. package/build/vdom.js +0 -1297
  579. package/src/plugins/clipboard/index.ts +0 -18
  580. package/src/plugins/clipboard/paste/CHANGELOG.md +0 -21
  581. package/src/plugins/fix/index.ts +0 -12
  582. package/src/plugins/format-block/CHANGELOG.md +0 -16
  583. package/src/plugins/image/helpers.ts +0 -44
  584. package/src/plugins/image/image-properties/templates/index.ts +0 -13
  585. package/src/plugins/image/index.ts +0 -13
  586. package/src/plugins/media/index.ts +0 -13
  587. package/src/plugins/print/index.ts +0 -12
  588. package/src/plugins/size/index.ts +0 -13
  589. package/src/plugins/source/const.ts +0 -11
  590. package/src/plugins/source/index.ts +0 -14
  591. package/src/plugins/table/index.ts +0 -15
  592. package/src/styles/icons/arrows-alt.svg +0 -4
  593. package/src/styles/icons/arrows-h.svg +0 -4
  594. package/src/styles/icons/attachment.svg +0 -4
  595. package/src/styles/icons/chain-broken.svg +0 -4
  596. package/src/styles/icons/check-square.svg +0 -1
  597. package/src/styles/icons/dedent.svg +0 -4
  598. package/src/styles/icons/menu.svg +0 -1
  599. package/src/styles/icons/resizer.svg +0 -4
  600. package/tsdoc.json +0 -30
  601. package/types/core/decorators/spy/spy.d.ts +0 -9
  602. package/types/plugins/clipboard/index.d.ts +0 -16
  603. package/types/plugins/fix/index.d.ts +0 -10
  604. package/types/plugins/fix/wrap-nodes/wrap-nodes.d.ts +0 -39
  605. package/types/plugins/image/image-properties/templates/index.d.ts +0 -11
  606. package/types/plugins/image/index.d.ts +0 -11
  607. package/types/plugins/keyboard/tab/tab.d.ts +0 -18
  608. package/types/plugins/media/index.d.ts +0 -11
  609. package/types/plugins/media/video/index.d.ts +0 -11
  610. package/types/plugins/print/index.d.ts +0 -10
  611. package/types/plugins/size/index.d.ts +0 -11
  612. package/types/plugins/source/const.d.ts +0 -9
  613. package/types/plugins/source/index.d.ts +0 -12
  614. package/types/plugins/speech/speech-recognize/config.d.ts +0 -60
  615. package/types/plugins/speech/speech-recognize/constants.d.ts +0 -10
  616. package/types/plugins/speech/speech-recognize/helpers/api.d.ts +0 -10
  617. package/types/plugins/speech/speech-recognize/helpers/exec-spell-command.d.ts +0 -10
  618. package/types/plugins/speech/speech-recognize/helpers/recognize-manager.d.ts +0 -48
  619. package/types/plugins/speech/speech-recognize/helpers/sound.d.ts +0 -11
  620. package/types/plugins/speech/speech-recognize/interface.d.ts +0 -42
  621. package/types/plugins/speech/speech-recognize/speech-recognize.d.ts +0 -24
  622. 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
- ![Iframe resizer](http://xdsoft.net/jodit/stuf/iframe-resizer.jpg)
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
- ![Without affix](http://xdsoft.net/jodit/stuf/joomla-exampla-affix-bad.jpg)
2328
- With affix offset
2329
- ![Withou affix](http://xdsoft.net/jodit/stuf/joomla-exampla-affix-good.jpg)
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
- ![Upload remote image](http://xdsoft.net/jodit/stuf/upload-remote-image.jpg)
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
- ![Promt dialog](http://xdsoft.net/jodit/stuf/promt.jpg)
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
- ![Confirm dialog](http://xdsoft.net/jodit/stuf/confirm.jpg)
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
- ![More comfortable colorpicker](http://xdsoft.net/jodit/stuf/colorpicker.jpg)
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
- ![Autoheight in Split mode Jodit](http://xdsoft.net/jodit/stuf/split-mode.jpg)
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
- ![Text icons](http://xdsoft.net/jodit/stuf/texticons.jpg)
2663
- ![Text icons in filebrowser](http://xdsoft.net/jodit/stuf/texticons-filebrowser.jpg)
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
- ![Navigation and select buttons](http://xdsoft.net/jodit/stuf/preview_navigation.jpg)
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
- ![Edit button](http://xdsoft.net/jodit/stuf/editbutton.jpg)
2763
-
2764
- ### 2.5.11
2765
-
2766
- - Added file info in filebrowser
2767
- ![Filebrowser file info](http://xdsoft.net/jodit/stuf/filebrowsernames.jpg)
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
- ![Crop Image](http://xdsoft.net/jodit/stuf/crop.jpg)
2777
- ![Resize Image](http://xdsoft.net/jodit/stuf/resize.jpg)
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>&nbsp;</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