jodit 3.10.2 → 3.12.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 (843) hide show
  1. package/.github/workflows/docs.yml +16 -0
  2. package/.github/workflows/tests.yml +1 -2
  3. package/.idea/dictionaries/v_chupurnov.xml +1 -0
  4. package/.idea/workspace.xml +303 -269
  5. package/CHANGELOG.MD +63 -7
  6. package/LICENSE.txt +1 -1
  7. package/README.md +6 -4
  8. package/build/jodit.css +85 -85
  9. package/build/jodit.es2018.css +74 -74
  10. package/build/jodit.es2018.en.css +74 -74
  11. package/build/jodit.es2018.en.js +2933 -2707
  12. package/build/jodit.es2018.en.min.css +1 -1
  13. package/build/jodit.es2018.en.min.js +1 -1
  14. package/build/jodit.es2018.js +2807 -2581
  15. package/build/jodit.es2018.min.css +1 -1
  16. package/build/jodit.es2018.min.js +1 -1
  17. package/build/jodit.js +3864 -3537
  18. package/build/jodit.min.css +2 -2
  19. package/build/jodit.min.js +1 -1
  20. package/index.d.ts +1 -1
  21. package/package.json +14 -2
  22. package/src/README.md +55 -0
  23. package/src/config.ts +5 -1
  24. package/src/core/async/README.md +147 -0
  25. package/src/core/{async.ts → async/async.ts} +16 -7
  26. package/src/core/async/index.ts +11 -0
  27. package/src/core/component/README.md +110 -0
  28. package/src/core/component/component.ts +7 -1
  29. package/src/core/component/index.ts +5 -1
  30. package/src/core/component/statuses.ts +5 -1
  31. package/src/core/component/view-component.ts +5 -1
  32. package/src/core/constants.ts +5 -1
  33. package/src/core/create/README.md +57 -0
  34. package/src/core/{create.ts → create/create.ts} +11 -5
  35. package/src/core/create/index.ts +11 -0
  36. package/src/core/decorators/README.md +4 -0
  37. package/src/core/decorators/cache/README.md +17 -0
  38. package/src/core/decorators/{cache.ts → cache/cache.ts} +9 -3
  39. package/src/core/decorators/component/README.md +65 -0
  40. package/src/core/decorators/{component.ts → component/component.ts} +8 -2
  41. package/src/core/decorators/debounce/README.md +44 -0
  42. package/src/core/decorators/{debounce.ts → debounce/debounce.ts} +11 -8
  43. package/src/core/decorators/hook/README.md +16 -0
  44. package/src/core/decorators/{hook.ts → hook/hook.ts} +11 -4
  45. package/src/core/decorators/idle/README.md +1 -0
  46. package/src/core/decorators/{idle.ts → idle/idle.ts} +11 -7
  47. package/src/core/decorators/index.ts +16 -10
  48. package/src/core/decorators/nonenumerable/README.md +15 -0
  49. package/src/core/decorators/{nonenumerable.ts → nonenumerable/nonenumerable.ts} +5 -2
  50. package/src/core/decorators/persistent/README.md +23 -0
  51. package/src/core/decorators/{persistent.ts → persistent/persistent.ts} +9 -6
  52. package/src/core/decorators/wait/README.md +20 -0
  53. package/src/core/decorators/{wait.ts → wait/wait.ts} +9 -6
  54. package/src/core/decorators/watch/README.md +125 -0
  55. package/src/core/decorators/{watch.ts → watch/watch.ts} +16 -14
  56. package/src/core/dom/README.md +13 -0
  57. package/src/core/{dom.ts → dom/dom.ts} +31 -10
  58. package/src/core/dom/index.ts +11 -0
  59. package/src/core/event-emitter/README.md +39 -0
  60. package/src/core/{events → event-emitter}/event-emitter.ts +9 -9
  61. package/src/core/{events → event-emitter}/index.ts +5 -1
  62. package/src/core/{events → event-emitter}/observe-object.ts +17 -8
  63. package/src/core/{events → event-emitter}/store.ts +5 -1
  64. package/src/core/global.ts +12 -12
  65. package/src/core/helpers/README.md +1 -0
  66. package/src/core/helpers/array/as-array.ts +5 -1
  67. package/src/core/helpers/array/index.ts +5 -1
  68. package/src/core/helpers/array/split-array.ts +5 -1
  69. package/src/core/helpers/array/to-array.ts +5 -1
  70. package/src/core/helpers/async/index.ts +5 -1
  71. package/src/core/helpers/async/set-timeout.ts +5 -1
  72. package/src/core/helpers/checker/has-browser-color-picker.ts +5 -1
  73. package/src/core/helpers/checker/index.ts +5 -1
  74. package/src/core/helpers/checker/is-array.ts +5 -1
  75. package/src/core/helpers/checker/is-boolean.ts +5 -1
  76. package/src/core/helpers/checker/is-equal.ts +5 -1
  77. package/src/core/helpers/checker/is-function.ts +5 -1
  78. package/src/core/helpers/checker/is-html-from-word.ts +5 -1
  79. package/src/core/helpers/checker/is-html.ts +5 -1
  80. package/src/core/helpers/checker/is-imp-interface.ts +5 -1
  81. package/src/core/helpers/checker/is-int.ts +5 -1
  82. package/src/core/helpers/checker/is-jodit-object.ts +5 -1
  83. package/src/core/helpers/checker/is-license.ts +5 -1
  84. package/src/core/helpers/checker/is-native-function.ts +5 -1
  85. package/src/core/helpers/checker/is-number.ts +5 -1
  86. package/src/core/helpers/checker/is-numeric.ts +5 -1
  87. package/src/core/helpers/checker/is-plain-object.ts +5 -1
  88. package/src/core/helpers/checker/is-promise.ts +5 -1
  89. package/src/core/helpers/checker/is-string.ts +5 -1
  90. package/src/core/helpers/checker/is-url.ts +5 -1
  91. package/src/core/helpers/checker/is-valid-name.ts +5 -1
  92. package/src/core/helpers/checker/is-void.ts +5 -1
  93. package/src/core/helpers/checker/is-window.ts +5 -1
  94. package/src/core/helpers/color/color-to-hex.ts +5 -1
  95. package/src/core/helpers/color/index.ts +5 -1
  96. package/src/core/helpers/html/apply-styles.ts +6 -2
  97. package/src/core/helpers/html/clean-from-word.ts +5 -1
  98. package/src/core/helpers/html/htmlspecialchars.ts +5 -1
  99. package/src/core/helpers/html/index.ts +5 -1
  100. package/src/core/helpers/html/nl2br.ts +6 -2
  101. package/src/core/helpers/html/strip-tags.ts +6 -2
  102. package/src/core/helpers/index.ts +7 -22
  103. package/src/core/helpers/normalize/index.ts +5 -1
  104. package/src/core/helpers/normalize/normalize-color.ts +5 -1
  105. package/src/core/helpers/normalize/normalize-css-value.ts +5 -1
  106. package/src/core/helpers/normalize/normalize-key-aliases.ts +5 -1
  107. package/src/core/helpers/normalize/normalize-license.ts +5 -1
  108. package/src/core/helpers/normalize/normalize-node.ts +5 -1
  109. package/src/core/helpers/normalize/normalize-path.ts +5 -1
  110. package/src/core/helpers/normalize/normalize-relative-path.ts +5 -1
  111. package/src/core/helpers/normalize/normalize-size.ts +5 -1
  112. package/src/core/helpers/normalize/normalize-url.ts +5 -1
  113. package/src/core/helpers/size/get-content-width.ts +3 -2
  114. package/src/core/helpers/size/get-scroll-parent.ts +11 -5
  115. package/src/core/helpers/size/index.ts +5 -1
  116. package/src/core/helpers/size/inner-width.ts +5 -1
  117. package/src/core/helpers/size/object-size.ts +5 -1
  118. package/src/core/helpers/size/offset.ts +5 -1
  119. package/src/core/helpers/size/position.ts +5 -1
  120. package/src/core/helpers/string/camel-case.ts +5 -1
  121. package/src/core/helpers/string/i18n.ts +6 -2
  122. package/src/core/helpers/string/index.ts +5 -1
  123. package/src/core/helpers/string/kebab-case.ts +5 -1
  124. package/src/core/helpers/string/stringify.ts +5 -1
  125. package/src/core/helpers/string/trim.ts +5 -1
  126. package/src/core/helpers/string/ucfirst.ts +5 -1
  127. package/src/core/helpers/{append-script.ts → utils/append-script.ts} +7 -3
  128. package/src/core/helpers/{browser.ts → utils/browser.ts} +5 -1
  129. package/src/core/helpers/{build-query.ts → utils/build-query.ts} +7 -3
  130. package/src/core/helpers/{complete-url.ts → utils/complete-url.ts} +5 -1
  131. package/src/core/helpers/{config-proto.ts → utils/config-proto.ts} +8 -4
  132. package/src/core/helpers/{convert-media-url-to-video-embed.ts → utils/convert-media-url-to-video-embed.ts} +6 -2
  133. package/src/core/helpers/{css.ts → utils/css.ts} +9 -5
  134. package/src/core/helpers/{ctrl-key.ts → utils/ctrl-key.ts} +5 -1
  135. package/src/core/helpers/{data-bind.ts → utils/data-bind.ts} +8 -4
  136. package/src/core/helpers/{default-language.ts → utils/default-language.ts} +6 -2
  137. package/src/core/helpers/{type.ts → utils/error.ts} +5 -1
  138. package/src/core/helpers/{extend.ts → utils/extend.ts} +6 -2
  139. package/src/core/helpers/utils/get-class-name.ts +5 -1
  140. package/src/core/helpers/utils/get.ts +5 -1
  141. package/src/core/helpers/{human-size-to-bytes.ts → utils/human-size-to-bytes.ts} +5 -1
  142. package/src/core/helpers/utils/index.ts +22 -1
  143. package/src/core/helpers/utils/mark-deprecated.ts +5 -1
  144. package/src/core/helpers/{parse-query.ts → utils/parse-query.ts} +6 -2
  145. package/src/core/helpers/{scroll-into-view.ts → utils/scroll-into-view.ts} +5 -1
  146. package/src/core/helpers/{selector.ts → utils/selector.ts} +13 -9
  147. package/src/core/helpers/utils/set.ts +5 -1
  148. package/src/core/helpers/utils/stack.ts +6 -1
  149. package/src/core/helpers/utils/utils.ts +7 -3
  150. package/src/core/helpers/{val.ts → utils/val.ts} +5 -1
  151. package/src/core/plugin/README.md +133 -0
  152. package/src/core/plugin/index.ts +12 -0
  153. package/src/core/{plugin-system.ts → plugin/plugin-system.ts} +7 -3
  154. package/src/core/{plugin.ts → plugin/plugin.ts} +11 -5
  155. package/src/core/request/README.md +11 -0
  156. package/src/core/request/ajax.ts +23 -14
  157. package/src/core/request/config.ts +5 -1
  158. package/src/core/request/index.ts +5 -1
  159. package/src/core/request/response.ts +13 -5
  160. package/src/core/selection/README.md +20 -0
  161. package/src/core/selection/index.ts +5 -1
  162. package/src/core/selection/select.ts +8 -2
  163. package/src/core/selection/style/api/element-has-same-style.ts +2 -1
  164. package/src/core/selection/style/api/extract.ts +2 -1
  165. package/src/core/selection/style/api/finite-state-machine.ts +1 -1
  166. package/src/core/selection/style/api/get-suit-child.ts +2 -1
  167. package/src/core/selection/style/api/get-suit-parent.ts +2 -1
  168. package/src/core/selection/style/api/index.ts +1 -1
  169. package/src/core/selection/style/api/is-inside-invisible-element.ts +2 -1
  170. package/src/core/selection/style/api/is-normal-node.ts +2 -1
  171. package/src/core/selection/style/api/is-suit-element.ts +2 -1
  172. package/src/core/selection/style/api/toggle/toggle-css.ts +3 -2
  173. package/src/core/selection/style/api/toggle/toggle-ordered-list.ts +2 -1
  174. package/src/core/selection/style/api/toggle-commit-styles.ts +2 -1
  175. package/src/core/selection/style/api/unwrap-children.ts +2 -1
  176. package/src/core/selection/style/api/wrap-and-commit-style.ts +2 -1
  177. package/src/core/selection/style/api/wrap-ordered-list.ts +2 -1
  178. package/src/core/selection/style/api/wrap-unwrapped-text.ts +2 -1
  179. package/src/core/selection/style/apply-style.ts +5 -1
  180. package/src/core/selection/style/commit-style.ts +5 -1
  181. package/src/core/storage/README.md +13 -0
  182. package/src/core/storage/engines/local-storage-provider.ts +5 -1
  183. package/src/core/storage/engines/memory-storage-provider.ts +5 -1
  184. package/src/core/storage/index.ts +5 -1
  185. package/src/core/storage/storage.ts +7 -1
  186. package/src/core/traits/elms.ts +5 -1
  187. package/src/core/traits/index.ts +5 -1
  188. package/src/core/traits/mods.ts +5 -1
  189. package/src/core/ui/README.md +51 -0
  190. package/src/core/ui/button/README.md +3 -0
  191. package/src/core/ui/button/button/button.less +1 -1
  192. package/src/core/ui/button/button/button.ts +6 -2
  193. package/src/core/ui/button/group/group.ts +6 -2
  194. package/src/core/ui/button/index.ts +7 -1
  195. package/src/core/ui/element.ts +5 -1
  196. package/src/core/ui/form/README.md +22 -0
  197. package/src/core/ui/form/block/block.ts +6 -2
  198. package/src/core/ui/form/form.ts +8 -2
  199. package/src/core/ui/form/index.ts +5 -1
  200. package/src/core/ui/form/inputs/area/area.ts +5 -1
  201. package/src/core/ui/form/inputs/checkbox/checkbox.ts +5 -1
  202. package/src/core/ui/form/inputs/file/file.ts +5 -1
  203. package/src/core/ui/form/inputs/index.ts +5 -1
  204. package/src/core/ui/form/inputs/input/input.ts +5 -1
  205. package/src/core/ui/form/inputs/select/select.ts +5 -1
  206. package/src/core/ui/form/validators/index.ts +5 -1
  207. package/src/core/ui/form/validators/input.ts +5 -1
  208. package/src/core/ui/form/validators/select.ts +5 -1
  209. package/src/core/ui/group/README.md +1 -0
  210. package/src/core/ui/{list → group}/group.less +1 -1
  211. package/src/core/ui/{list → group}/group.ts +7 -1
  212. package/src/core/ui/{list → group}/index.ts +5 -1
  213. package/src/core/ui/{list → group}/list.less +1 -1
  214. package/src/core/ui/{list → group}/list.ts +5 -1
  215. package/src/core/ui/{list → group}/separator.ts +5 -1
  216. package/src/core/ui/{list → group}/spacer.ts +5 -1
  217. package/src/core/ui/helpers/buttons.ts +5 -1
  218. package/src/core/ui/helpers/get-control-type.ts +5 -1
  219. package/src/core/ui/helpers/get-strong-control-types.ts +5 -1
  220. package/src/core/ui/icon.ts +6 -2
  221. package/src/core/ui/index.ts +8 -2
  222. package/src/core/ui/popup/README.md +15 -0
  223. package/src/core/ui/popup/index.ts +5 -1
  224. package/src/core/ui/popup/popup.less +1 -1
  225. package/src/core/ui/popup/popup.ts +13 -3
  226. package/src/core/ui/progress-bar/README.md +1 -0
  227. package/src/core/ui/progress-bar/progress-bar.less +1 -1
  228. package/src/core/ui/progress-bar/progress-bar.ts +7 -1
  229. package/src/core/view/README.md +24 -0
  230. package/src/core/view/view-with-toolbar.less +1 -1
  231. package/src/core/view/view-with-toolbar.ts +5 -1
  232. package/src/core/view/view.ts +11 -4
  233. package/src/header.js +1 -1
  234. package/src/index.ts +7 -1
  235. package/src/jodit.ts +7 -1
  236. package/src/langs/README.md +1 -0
  237. package/src/langs/ar.js +1 -1
  238. package/src/langs/cs_cz.js +1 -1
  239. package/src/langs/de.js +1 -1
  240. package/src/langs/en.js +1 -1
  241. package/src/langs/es.js +1 -1
  242. package/src/langs/fa.js +1 -1
  243. package/src/langs/fr.js +1 -1
  244. package/src/langs/he.js +1 -1
  245. package/src/langs/hu.js +1 -1
  246. package/src/langs/id.js +1 -1
  247. package/src/langs/index.ts +8 -1
  248. package/src/langs/it.js +1 -1
  249. package/src/langs/ja.js +1 -1
  250. package/src/langs/ko.js +1 -1
  251. package/src/langs/nl.js +1 -1
  252. package/src/langs/pl.js +1 -1
  253. package/src/langs/pt_br.js +1 -1
  254. package/src/langs/ru.js +1 -1
  255. package/src/langs/tr.js +1 -1
  256. package/src/langs/zh_cn.js +1 -1
  257. package/src/langs/zh_tw.js +1 -1
  258. package/src/modules/README.md +1 -0
  259. package/src/modules/context-menu/README.md +1 -0
  260. package/src/modules/context-menu/context-menu.less +1 -1
  261. package/src/modules/context-menu/context-menu.ts +7 -1
  262. package/src/modules/dialog/README.md +45 -0
  263. package/src/modules/dialog/alert.ts +5 -1
  264. package/src/modules/dialog/confirm.ts +5 -1
  265. package/src/modules/dialog/dialog.less +1 -1
  266. package/src/modules/dialog/dialog.ts +5 -1
  267. package/src/modules/dialog/index.ts +7 -1
  268. package/src/modules/dialog/prompt.ts +5 -1
  269. package/src/modules/file-browser/{README.MD → README.md} +173 -63
  270. package/src/modules/file-browser/builders/context-menu.ts +7 -3
  271. package/src/modules/file-browser/builders/item.ts +5 -1
  272. package/src/modules/file-browser/config.ts +5 -1
  273. package/src/modules/file-browser/data-provider.ts +5 -1
  274. package/src/modules/file-browser/factories.ts +5 -1
  275. package/src/modules/file-browser/file-browser.ts +36 -17
  276. package/src/modules/file-browser/index.ts +13 -0
  277. package/src/modules/file-browser/listeners/native-listeners.ts +8 -4
  278. package/src/modules/file-browser/listeners/self-listeners.ts +7 -4
  279. package/src/modules/file-browser/listeners/state-listeners.ts +7 -4
  280. package/src/modules/file-browser/styles/file-browser.less +1 -1
  281. package/src/modules/file-browser/styles/index.less +1 -1
  282. package/src/modules/file-browser/styles/preview.less +1 -1
  283. package/src/modules/file-browser/ui/files/files.ts +1 -1
  284. package/src/modules/file-browser/ui/index.ts +5 -1
  285. package/src/modules/file-browser/ui/tree/tree.ts +1 -1
  286. package/src/modules/image-editor/README.md +1 -0
  287. package/src/modules/image-editor/image-editor.less +1 -1
  288. package/src/modules/image-editor/image-editor.ts +12 -11
  289. package/src/modules/image-editor/templates/form.ts +5 -1
  290. package/src/modules/index.ts +12 -6
  291. package/src/modules/observer/README.md +0 -0
  292. package/src/modules/observer/command.ts +5 -1
  293. package/src/modules/observer/observer.ts +7 -1
  294. package/src/modules/observer/snapshot.ts +5 -1
  295. package/src/modules/observer/stack.ts +5 -1
  296. package/src/modules/status-bar/README.md +1 -0
  297. package/src/modules/status-bar/status-bar.less +1 -1
  298. package/src/modules/status-bar/status-bar.ts +7 -1
  299. package/src/modules/table/README.md +3 -0
  300. package/src/modules/{table.ts → table/table.ts} +20 -13
  301. package/src/modules/toolbar/README.md +1 -0
  302. package/src/modules/toolbar/button/README.md +1 -0
  303. package/src/modules/toolbar/button/button.less +1 -1
  304. package/src/modules/toolbar/button/button.ts +7 -1
  305. package/src/modules/toolbar/button/content.less +1 -1
  306. package/src/modules/toolbar/button/content.ts +5 -1
  307. package/src/modules/toolbar/button/index.ts +5 -1
  308. package/src/modules/toolbar/collection/README.md +1 -0
  309. package/src/modules/toolbar/collection/collection.less +2 -2
  310. package/src/modules/toolbar/collection/collection.ts +7 -1
  311. package/src/modules/toolbar/collection/editor-collection.ts +5 -1
  312. package/src/modules/toolbar/factory.ts +7 -1
  313. package/src/modules/uploader/README.md +1 -0
  314. package/src/modules/uploader/uploader.less +1 -1
  315. package/src/modules/uploader/uploader.ts +7 -1
  316. package/src/modules/widget/README.md +1 -0
  317. package/src/modules/widget/color-picker/README.md +1 -0
  318. package/src/modules/widget/color-picker/color-picker.less +1 -1
  319. package/src/modules/widget/color-picker/color-picker.ts +7 -1
  320. package/src/modules/widget/file-selector/README.md +1 -0
  321. package/src/modules/widget/file-selector/file-selector.ts +7 -1
  322. package/src/modules/widget/index.ts +7 -1
  323. package/src/modules/widget/tabs/README.md +1 -0
  324. package/src/modules/widget/tabs/tabs.less +1 -1
  325. package/src/modules/widget/tabs/tabs.ts +7 -1
  326. package/src/modules/widget/widget.less +1 -1
  327. package/src/plugins/README.md +3 -0
  328. package/src/plugins/about/about.less +1 -1
  329. package/src/plugins/about/about.ts +5 -1
  330. package/src/plugins/add-new-line/README.md +6 -0
  331. package/src/plugins/add-new-line/add-new-line.less +1 -1
  332. package/src/plugins/add-new-line/add-new-line.ts +13 -1
  333. package/src/plugins/{bold.ts → bold/bold.ts} +9 -5
  334. package/src/plugins/class-span/class-span.ts +5 -1
  335. package/src/plugins/clipboard/clipboard.ts +5 -1
  336. package/src/plugins/clipboard/config.ts +5 -1
  337. package/src/plugins/clipboard/copy-format.ts +5 -1
  338. package/src/plugins/clipboard/drag-and-drop-element.ts +5 -1
  339. package/src/plugins/clipboard/drag-and-drop.ts +7 -8
  340. package/src/plugins/clipboard/index.ts +5 -1
  341. package/src/plugins/clipboard/paste/helpers.ts +5 -1
  342. package/src/plugins/clipboard/paste/paste.ts +5 -1
  343. package/src/plugins/clipboard/paste-storage/paste-storage.less +1 -1
  344. package/src/plugins/clipboard/paste-storage/paste-storage.ts +5 -1
  345. package/src/plugins/{color.ts → color/color.ts} +10 -6
  346. package/src/plugins/error-messages/error-messages.ts +5 -1
  347. package/src/plugins/error-messages/errors-messages.less +1 -1
  348. package/src/plugins/fix/clean-html.ts +5 -1
  349. package/src/plugins/fix/wrap-text-nodes.ts +5 -1
  350. package/src/plugins/focus/README.md +3 -0
  351. package/src/plugins/{focus.ts → focus/focus.ts} +11 -8
  352. package/src/plugins/{font.ts → font/font.ts} +10 -6
  353. package/src/plugins/{format-block.ts → format-block/format-block.ts} +14 -5
  354. package/src/plugins/fullsize/fullsize.less +1 -1
  355. package/src/plugins/fullsize/fullsize.ts +5 -1
  356. package/src/plugins/{iframe.ts → iframe/iframe.ts} +11 -7
  357. package/src/plugins/image/helpers.ts +5 -1
  358. package/src/plugins/image/image-processor.ts +5 -1
  359. package/src/plugins/image/image-properties/image-properties.less +1 -1
  360. package/src/plugins/image/image-properties/image-properties.ts +5 -1
  361. package/src/plugins/image/image-properties/templates/form.ts +5 -1
  362. package/src/plugins/image/image-properties/templates/index.ts +7 -3
  363. package/src/plugins/image/image-properties/templates/{mainTab.ts → main-tab.ts} +5 -1
  364. package/src/plugins/image/image-properties/templates/{positionTab.ts → position-tab.ts} +5 -1
  365. package/src/plugins/image/image.ts +5 -1
  366. package/src/plugins/image/index.ts +5 -1
  367. package/src/plugins/{indent.ts → indent/indent.ts} +11 -7
  368. package/src/plugins/index.ts +23 -17
  369. package/src/plugins/inline-popup/config/config.ts +5 -1
  370. package/src/plugins/inline-popup/config/items/a.ts +5 -1
  371. package/src/plugins/inline-popup/config/items/cells.ts +5 -1
  372. package/src/plugins/inline-popup/config/items/iframe.ts +5 -1
  373. package/src/plugins/inline-popup/config/items/img.ts +5 -1
  374. package/src/plugins/inline-popup/config/items/toolbar.ts +5 -1
  375. package/src/plugins/inline-popup/inline-popup.less +1 -1
  376. package/src/plugins/inline-popup/inline-popup.ts +5 -1
  377. package/src/plugins/insert/hr.ts +5 -1
  378. package/src/plugins/insert/index.ts +5 -1
  379. package/src/plugins/{justify.ts → justify/justify.ts} +9 -5
  380. package/src/plugins/keyboard/backspace/backspace.ts +187 -0
  381. package/src/plugins/keyboard/backspace/cases/check-join-neighbors.ts +117 -0
  382. package/src/plugins/keyboard/backspace/cases/check-join-two-lists.ts +56 -0
  383. package/src/plugins/keyboard/backspace/cases/check-not-collapsed.ts +28 -0
  384. package/src/plugins/keyboard/backspace/cases/check-remove-char.ts +192 -0
  385. package/src/plugins/keyboard/backspace/cases/check-remove-content-not-editable.ts +47 -0
  386. package/src/plugins/keyboard/backspace/cases/check-remove-empty-neighbor.ts +44 -0
  387. package/src/plugins/keyboard/backspace/cases/check-remove-empty-parent.ts +82 -0
  388. package/src/plugins/keyboard/backspace/cases/check-remove-unbreakable-element.ts +48 -0
  389. package/src/plugins/keyboard/backspace/cases/check-table-cell.ts +32 -0
  390. package/src/plugins/keyboard/backspace/cases/check-unwrap-first-list-item.ts +59 -0
  391. package/src/plugins/keyboard/backspace/cases/index.ts +27 -0
  392. package/src/plugins/keyboard/backspace/config.ts +37 -0
  393. package/src/plugins/keyboard/backspace/interface.d.ts +11 -0
  394. package/src/plugins/keyboard/enter.ts +5 -1
  395. package/src/plugins/keyboard/helpers.ts +13 -4
  396. package/src/plugins/keyboard/hotkeys.ts +5 -1
  397. package/src/plugins/keyboard/key-arrow-outside.ts +6 -1
  398. package/src/plugins/{limit.ts → limit/limit.ts} +12 -8
  399. package/src/plugins/link/link.ts +5 -1
  400. package/src/plugins/link/template.ts +5 -1
  401. package/src/plugins/media/file.ts +5 -1
  402. package/src/plugins/media/index.ts +5 -1
  403. package/src/plugins/media/media.ts +5 -1
  404. package/src/plugins/media/video/config.ts +5 -1
  405. package/src/plugins/media/video/index.ts +5 -1
  406. package/src/plugins/{mobile.ts → mobile/mobile.ts} +14 -10
  407. package/src/plugins/{ordered-list.ts → ordered-list/ordered-list.ts} +11 -7
  408. package/src/plugins/placeholder/placeholder.less +1 -1
  409. package/src/plugins/placeholder/placeholder.ts +5 -1
  410. package/src/plugins/{powered-by-jodit.ts → powered-by-jodit/powered-by-jodit.ts} +10 -3
  411. package/src/plugins/print/index.ts +5 -1
  412. package/src/plugins/print/preview.ts +5 -1
  413. package/src/plugins/print/print.ts +5 -1
  414. package/src/plugins/{redo-undo.ts → redo-undo/redo-undo.ts} +9 -5
  415. package/src/plugins/resizer/resizer.less +1 -1
  416. package/src/plugins/resizer/resizer.ts +12 -3
  417. package/src/plugins/search/search.less +1 -1
  418. package/src/plugins/search/search.ts +5 -1
  419. package/src/plugins/{select.ts → select/select.ts} +11 -8
  420. package/src/plugins/size/config.ts +6 -1
  421. package/src/plugins/size/index.ts +5 -1
  422. package/src/plugins/size/resize-handler.ts +5 -1
  423. package/src/plugins/size/size.less +1 -1
  424. package/src/plugins/size/size.ts +5 -1
  425. package/src/plugins/source/README.md +60 -0
  426. package/src/plugins/source/config.ts +18 -3
  427. package/src/plugins/source/const.ts +5 -1
  428. package/src/plugins/source/editor/engines/ace.ts +5 -1
  429. package/src/plugins/source/editor/engines/area.ts +5 -1
  430. package/src/plugins/source/editor/engines/custom.ts +5 -1
  431. package/src/plugins/source/editor/engines/index.ts +5 -1
  432. package/src/plugins/source/editor/factory.ts +25 -16
  433. package/src/plugins/source/editor/sourceEditor.ts +5 -1
  434. package/src/plugins/source/index.ts +7 -1
  435. package/src/plugins/source/source.less +1 -1
  436. package/src/plugins/source/source.ts +5 -1
  437. package/src/plugins/{stat.ts → stat/stat.ts} +11 -7
  438. package/src/plugins/sticky/sticky.less +1 -1
  439. package/src/plugins/sticky/sticky.ts +5 -1
  440. package/src/plugins/symbols/config.ts +5 -1
  441. package/src/plugins/symbols/symbols.less +1 -1
  442. package/src/plugins/symbols/symbols.ts +5 -1
  443. package/src/plugins/table/config.ts +5 -1
  444. package/src/plugins/table/index.ts +5 -1
  445. package/src/plugins/table/resize-cells.ts +5 -1
  446. package/src/plugins/table/select-cells.ts +6 -2
  447. package/src/plugins/table/table-keyboard-navigation.ts +5 -1
  448. package/src/plugins/table/table.less +1 -1
  449. package/src/plugins/table/table.ts +5 -1
  450. package/src/plugins/tooltip/tooltip.less +1 -1
  451. package/src/plugins/tooltip/tooltip.ts +5 -1
  452. package/src/plugins/xpath/xpath.less +1 -1
  453. package/src/plugins/xpath/xpath.ts +5 -1
  454. package/src/polyfills.ts +1 -1
  455. package/src/styles/form.less +1 -1
  456. package/src/styles/icons/README.md +1 -0
  457. package/src/styles/icons/index.ts +7 -1
  458. package/src/styles/index.less +1 -1
  459. package/src/styles/jodit.less +1 -1
  460. package/src/styles/mixins.less +1 -1
  461. package/src/styles/modules/button-group.less +1 -1
  462. package/src/styles/modules/grid.less +1 -1
  463. package/src/styles/modules/icon.less +1 -1
  464. package/src/styles/modules/texticons.less +1 -1
  465. package/src/styles/reset.less +1 -1
  466. package/src/styles/themes/dark.less +1 -1
  467. package/src/styles/variables.less +1 -1
  468. package/src/types/ajax.d.ts +8 -1
  469. package/src/types/async.d.ts +7 -1
  470. package/src/types/context.d.ts +5 -1
  471. package/src/types/core.ts +5 -1
  472. package/src/types/create.d.ts +5 -1
  473. package/src/types/dialog.d.ts +5 -1
  474. package/src/types/events.d.ts +9 -5
  475. package/src/types/file-browser.d.ts +21 -5
  476. package/src/types/form.d.ts +5 -1
  477. package/src/types/index.d.ts +6 -2
  478. package/src/types/jodit.d.ts +5 -1
  479. package/src/types/{observe.d.ts → observer.d.ts} +7 -5
  480. package/src/types/plugin.d.ts +5 -1
  481. package/src/types/popup.d.ts +5 -1
  482. package/src/types/select.d.ts +5 -1
  483. package/src/types/source.d.ts +5 -1
  484. package/src/types/storage.ts +5 -1
  485. package/src/types/style.d.ts +5 -1
  486. package/src/types/toolbar.d.ts +5 -1
  487. package/src/types/traits.d.ts +5 -1
  488. package/src/types/types.d.ts +5 -1
  489. package/src/types/ui.d.ts +5 -1
  490. package/src/types/uploader.d.ts +4 -2
  491. package/src/types/view.d.ts +5 -1
  492. package/src/typings.d.ts +5 -1
  493. package/tsdoc.json +20 -0
  494. package/types/config.d.ts +4 -1
  495. package/types/core/{async.d.ts → async/async.d.ts} +11 -6
  496. package/types/core/async/index.d.ts +9 -0
  497. package/types/core/component/component.d.ts +6 -1
  498. package/types/core/component/index.d.ts +4 -1
  499. package/types/core/component/statuses.d.ts +4 -1
  500. package/types/core/component/view-component.d.ts +4 -1
  501. package/types/core/constants.d.ts +4 -1
  502. package/types/core/{create.d.ts → create/create.d.ts} +7 -2
  503. package/types/core/create/index.d.ts +9 -0
  504. package/types/core/decorators/{cache.d.ts → cache/cache.d.ts} +1 -1
  505. package/types/core/decorators/{component.d.ts → component/component.d.ts} +1 -1
  506. package/types/core/decorators/{debounce.d.ts → debounce/debounce.d.ts} +5 -3
  507. package/types/core/decorators/{hook.d.ts → hook/hook.d.ts} +8 -3
  508. package/types/core/decorators/{idle.d.ts → idle/idle.d.ts} +5 -3
  509. package/types/core/decorators/index.d.ts +15 -10
  510. package/types/core/decorators/{nonenumerable.d.ts → nonenumerable/nonenumerable.d.ts} +4 -2
  511. package/types/core/decorators/{persistent.d.ts → persistent/persistent.d.ts} +5 -3
  512. package/types/core/decorators/{wait.d.ts → wait/wait.d.ts} +5 -3
  513. package/types/core/decorators/{watch.d.ts → watch/watch.d.ts} +7 -2
  514. package/types/core/{dom.d.ts → dom/dom.d.ts} +12 -3
  515. package/types/core/dom/index.d.ts +9 -0
  516. package/types/core/{events → event-emitter}/event-emitter.d.ts +7 -7
  517. package/types/core/{events → event-emitter}/index.d.ts +4 -1
  518. package/types/core/{events → event-emitter}/observe-object.d.ts +7 -4
  519. package/types/core/{events → event-emitter}/store.d.ts +4 -1
  520. package/types/core/global.d.ts +7 -4
  521. package/types/core/helpers/array/as-array.d.ts +1 -1
  522. package/types/core/helpers/array/index.d.ts +4 -1
  523. package/types/core/helpers/array/split-array.d.ts +1 -1
  524. package/types/core/helpers/array/to-array.d.ts +1 -1
  525. package/types/core/helpers/async/index.d.ts +4 -1
  526. package/types/core/helpers/async/set-timeout.d.ts +4 -1
  527. package/types/core/helpers/checker/has-browser-color-picker.d.ts +4 -1
  528. package/types/core/helpers/checker/index.d.ts +4 -1
  529. package/types/core/helpers/checker/is-array.d.ts +4 -1
  530. package/types/core/helpers/checker/is-boolean.d.ts +4 -1
  531. package/types/core/helpers/checker/is-equal.d.ts +1 -1
  532. package/types/core/helpers/checker/is-function.d.ts +4 -1
  533. package/types/core/helpers/checker/is-html-from-word.d.ts +4 -1
  534. package/types/core/helpers/checker/is-html.d.ts +1 -1
  535. package/types/core/helpers/checker/is-imp-interface.d.ts +4 -1
  536. package/types/core/helpers/checker/is-int.d.ts +1 -1
  537. package/types/core/helpers/checker/is-jodit-object.d.ts +4 -1
  538. package/types/core/helpers/checker/is-license.d.ts +1 -1
  539. package/types/core/helpers/checker/is-native-function.d.ts +4 -1
  540. package/types/core/helpers/checker/is-number.d.ts +4 -1
  541. package/types/core/helpers/checker/is-numeric.d.ts +1 -1
  542. package/types/core/helpers/checker/is-plain-object.d.ts +4 -1
  543. package/types/core/helpers/checker/is-promise.d.ts +4 -1
  544. package/types/core/helpers/checker/is-string.d.ts +4 -1
  545. package/types/core/helpers/checker/is-url.d.ts +4 -1
  546. package/types/core/helpers/checker/is-valid-name.d.ts +4 -1
  547. package/types/core/helpers/checker/is-void.d.ts +4 -1
  548. package/types/core/helpers/checker/is-window.d.ts +4 -1
  549. package/types/core/helpers/color/color-to-hex.d.ts +4 -1
  550. package/types/core/helpers/color/index.d.ts +4 -1
  551. package/types/core/helpers/html/apply-styles.d.ts +1 -1
  552. package/types/core/helpers/html/clean-from-word.d.ts +1 -1
  553. package/types/core/helpers/html/htmlspecialchars.d.ts +4 -1
  554. package/types/core/helpers/html/index.d.ts +4 -1
  555. package/types/core/helpers/html/nl2br.d.ts +4 -1
  556. package/types/core/helpers/html/strip-tags.d.ts +1 -1
  557. package/types/core/helpers/index.d.ts +6 -19
  558. package/types/core/helpers/normalize/index.d.ts +4 -1
  559. package/types/core/helpers/normalize/normalize-color.d.ts +1 -1
  560. package/types/core/helpers/normalize/normalize-css-value.d.ts +1 -1
  561. package/types/core/helpers/normalize/normalize-key-aliases.d.ts +1 -1
  562. package/types/core/helpers/normalize/normalize-license.d.ts +4 -1
  563. package/types/core/helpers/normalize/normalize-node.d.ts +1 -1
  564. package/types/core/helpers/normalize/normalize-path.d.ts +1 -1
  565. package/types/core/helpers/normalize/normalize-relative-path.d.ts +4 -1
  566. package/types/core/helpers/normalize/normalize-size.d.ts +4 -1
  567. package/types/core/helpers/normalize/normalize-url.d.ts +4 -1
  568. package/types/core/helpers/size/get-content-width.d.ts +2 -2
  569. package/types/core/helpers/size/get-scroll-parent.d.ts +4 -1
  570. package/types/core/helpers/size/index.d.ts +4 -1
  571. package/types/core/helpers/size/inner-width.d.ts +4 -1
  572. package/types/core/helpers/size/object-size.d.ts +1 -1
  573. package/types/core/helpers/size/offset.d.ts +4 -1
  574. package/types/core/helpers/size/position.d.ts +4 -1
  575. package/types/core/helpers/string/camel-case.d.ts +4 -1
  576. package/types/core/helpers/string/i18n.d.ts +4 -1
  577. package/types/core/helpers/string/index.d.ts +4 -1
  578. package/types/core/helpers/string/kebab-case.d.ts +4 -1
  579. package/types/core/helpers/string/stringify.d.ts +1 -1
  580. package/types/core/helpers/string/trim.d.ts +1 -1
  581. package/types/core/helpers/string/ucfirst.d.ts +4 -1
  582. package/types/core/helpers/{append-script.d.ts → utils/append-script.d.ts} +5 -2
  583. package/types/core/helpers/{browser.d.ts → utils/browser.d.ts} +4 -1
  584. package/types/core/helpers/{build-query.d.ts → utils/build-query.d.ts} +5 -2
  585. package/types/core/helpers/{complete-url.d.ts → utils/complete-url.d.ts} +4 -1
  586. package/types/core/helpers/{config-proto.d.ts → utils/config-proto.d.ts} +5 -2
  587. package/types/core/helpers/{convert-media-url-to-video-embed.d.ts → utils/convert-media-url-to-video-embed.d.ts} +1 -1
  588. package/types/core/helpers/{css.d.ts → utils/css.d.ts} +5 -2
  589. package/types/core/helpers/{ctrl-key.d.ts → utils/ctrl-key.d.ts} +4 -1
  590. package/types/core/helpers/{data-bind.d.ts → utils/data-bind.d.ts} +5 -2
  591. package/types/core/helpers/{default-language.d.ts → utils/default-language.d.ts} +1 -1
  592. package/types/core/helpers/{type.d.ts → utils/error.d.ts} +4 -1
  593. package/types/core/helpers/{extend.d.ts → utils/extend.d.ts} +1 -1
  594. package/types/core/helpers/utils/get-class-name.d.ts +4 -1
  595. package/types/core/helpers/utils/get.d.ts +4 -1
  596. package/types/core/helpers/{human-size-to-bytes.d.ts → utils/human-size-to-bytes.d.ts} +4 -1
  597. package/types/core/helpers/utils/index.d.ts +21 -1
  598. package/types/core/helpers/utils/mark-deprecated.d.ts +4 -1
  599. package/types/core/helpers/{parse-query.d.ts → utils/parse-query.d.ts} +5 -2
  600. package/types/core/helpers/{scroll-into-view.d.ts → utils/scroll-into-view.d.ts} +4 -1
  601. package/types/core/helpers/{selector.d.ts → utils/selector.d.ts} +5 -2
  602. package/types/core/helpers/utils/set.d.ts +4 -1
  603. package/types/core/helpers/utils/stack.d.ts +4 -1
  604. package/types/core/helpers/utils/utils.d.ts +4 -1
  605. package/types/core/helpers/{val.d.ts → utils/val.d.ts} +4 -1
  606. package/types/core/plugin/index.d.ts +10 -0
  607. package/types/core/{plugin-system.d.ts → plugin/plugin-system.d.ts} +5 -2
  608. package/types/core/{plugin.d.ts → plugin/plugin.d.ts} +8 -3
  609. package/types/core/request/ajax.d.ts +7 -2
  610. package/types/core/request/config.d.ts +4 -1
  611. package/types/core/request/index.d.ts +4 -1
  612. package/types/core/request/response.d.ts +6 -2
  613. package/types/core/selection/index.d.ts +4 -1
  614. package/types/core/selection/select.d.ts +6 -1
  615. package/types/core/selection/style/api/element-has-same-style.d.ts +2 -1
  616. package/types/core/selection/style/api/extract.d.ts +2 -1
  617. package/types/core/selection/style/api/finite-state-machine.d.ts +1 -1
  618. package/types/core/selection/style/api/get-suit-child.d.ts +2 -1
  619. package/types/core/selection/style/api/get-suit-parent.d.ts +2 -1
  620. package/types/core/selection/style/api/index.d.ts +1 -1
  621. package/types/core/selection/style/api/is-inside-invisible-element.d.ts +2 -1
  622. package/types/core/selection/style/api/is-normal-node.d.ts +2 -1
  623. package/types/core/selection/style/api/is-suit-element.d.ts +2 -1
  624. package/types/core/selection/style/api/toggle/toggle-css.d.ts +2 -1
  625. package/types/core/selection/style/api/toggle/toggle-ordered-list.d.ts +2 -1
  626. package/types/core/selection/style/api/toggle-commit-styles.d.ts +2 -1
  627. package/types/core/selection/style/api/unwrap-children.d.ts +2 -1
  628. package/types/core/selection/style/api/wrap-and-commit-style.d.ts +2 -1
  629. package/types/core/selection/style/api/wrap-ordered-list.d.ts +2 -1
  630. package/types/core/selection/style/api/wrap-unwrapped-text.d.ts +2 -1
  631. package/types/core/selection/style/apply-style.d.ts +4 -1
  632. package/types/core/selection/style/commit-style.d.ts +4 -1
  633. package/types/core/storage/engines/local-storage-provider.d.ts +4 -1
  634. package/types/core/storage/engines/memory-storage-provider.d.ts +4 -1
  635. package/types/core/storage/index.d.ts +4 -1
  636. package/types/core/storage/storage.d.ts +6 -1
  637. package/types/core/traits/elms.d.ts +4 -1
  638. package/types/core/traits/index.d.ts +4 -1
  639. package/types/core/traits/mods.d.ts +4 -1
  640. package/types/core/ui/button/button/button.d.ts +4 -1
  641. package/types/core/ui/button/group/group.d.ts +5 -2
  642. package/types/core/ui/button/index.d.ts +6 -1
  643. package/types/core/ui/element.d.ts +4 -1
  644. package/types/core/ui/form/block/block.d.ts +5 -2
  645. package/types/core/ui/form/form.d.ts +7 -2
  646. package/types/core/ui/form/index.d.ts +4 -1
  647. package/types/core/ui/form/inputs/area/area.d.ts +4 -1
  648. package/types/core/ui/form/inputs/checkbox/checkbox.d.ts +4 -1
  649. package/types/core/ui/form/inputs/file/file.d.ts +4 -1
  650. package/types/core/ui/form/inputs/index.d.ts +4 -1
  651. package/types/core/ui/form/inputs/input/input.d.ts +4 -1
  652. package/types/core/ui/form/inputs/select/select.d.ts +4 -1
  653. package/types/core/ui/form/validators/index.d.ts +4 -1
  654. package/types/core/ui/form/validators/input.d.ts +4 -1
  655. package/types/core/ui/form/validators/select.d.ts +4 -1
  656. package/types/core/ui/{list → group}/group.d.ts +6 -1
  657. package/types/core/ui/{list → group}/index.d.ts +4 -1
  658. package/types/core/ui/{list → group}/list.d.ts +4 -1
  659. package/types/core/ui/{list → group}/separator.d.ts +4 -1
  660. package/types/core/ui/{list → group}/spacer.d.ts +4 -1
  661. package/types/core/ui/helpers/buttons.d.ts +4 -1
  662. package/types/core/ui/helpers/get-control-type.d.ts +4 -1
  663. package/types/core/ui/helpers/get-strong-control-types.d.ts +4 -1
  664. package/types/core/ui/icon.d.ts +4 -1
  665. package/types/core/ui/index.d.ts +7 -2
  666. package/types/core/ui/popup/index.d.ts +4 -1
  667. package/types/core/ui/popup/popup.d.ts +6 -1
  668. package/types/core/ui/progress-bar/progress-bar.d.ts +6 -1
  669. package/types/core/view/view-with-toolbar.d.ts +4 -1
  670. package/types/core/view/view.d.ts +9 -4
  671. package/types/index.d.ts +6 -1
  672. package/types/jodit.d.ts +6 -1
  673. package/types/langs/index.d.ts +6 -1
  674. package/types/modules/context-menu/context-menu.d.ts +6 -1
  675. package/types/modules/dialog/alert.d.ts +4 -1
  676. package/types/modules/dialog/confirm.d.ts +4 -1
  677. package/types/modules/dialog/dialog.d.ts +4 -1
  678. package/types/modules/dialog/index.d.ts +6 -1
  679. package/types/modules/dialog/prompt.d.ts +4 -1
  680. package/types/modules/file-browser/builders/context-menu.d.ts +6 -3
  681. package/types/modules/file-browser/builders/item.d.ts +4 -1
  682. package/types/modules/file-browser/config.d.ts +1 -1
  683. package/types/modules/file-browser/data-provider.d.ts +4 -1
  684. package/types/modules/file-browser/factories.d.ts +4 -1
  685. package/types/modules/file-browser/file-browser.d.ts +10 -4
  686. package/types/modules/file-browser/index.d.ts +11 -0
  687. package/types/modules/file-browser/listeners/native-listeners.d.ts +6 -4
  688. package/types/modules/file-browser/listeners/self-listeners.d.ts +6 -3
  689. package/types/modules/file-browser/listeners/state-listeners.d.ts +6 -3
  690. package/types/modules/file-browser/ui/files/files.d.ts +1 -1
  691. package/types/modules/file-browser/ui/index.d.ts +4 -1
  692. package/types/modules/file-browser/ui/tree/tree.d.ts +1 -1
  693. package/types/modules/image-editor/image-editor.d.ts +12 -10
  694. package/types/modules/image-editor/templates/form.d.ts +4 -1
  695. package/types/modules/index.d.ts +11 -6
  696. package/types/modules/observer/command.d.ts +4 -1
  697. package/types/modules/observer/observer.d.ts +6 -1
  698. package/types/modules/observer/snapshot.d.ts +4 -1
  699. package/types/modules/observer/stack.d.ts +4 -1
  700. package/types/modules/status-bar/status-bar.d.ts +6 -1
  701. package/types/modules/{table.d.ts → table/table.d.ts} +7 -7
  702. package/types/modules/toolbar/button/button.d.ts +6 -1
  703. package/types/modules/toolbar/button/content.d.ts +4 -1
  704. package/types/modules/toolbar/button/index.d.ts +4 -1
  705. package/types/modules/toolbar/collection/collection.d.ts +6 -1
  706. package/types/modules/toolbar/collection/editor-collection.d.ts +4 -1
  707. package/types/modules/toolbar/factory.d.ts +6 -1
  708. package/types/modules/uploader/uploader.d.ts +6 -1
  709. package/types/modules/widget/color-picker/color-picker.d.ts +6 -1
  710. package/types/modules/widget/file-selector/file-selector.d.ts +6 -1
  711. package/types/modules/widget/index.d.ts +6 -1
  712. package/types/modules/widget/tabs/tabs.d.ts +6 -1
  713. package/types/plugins/about/about.d.ts +4 -1
  714. package/types/plugins/add-new-line/add-new-line.d.ts +12 -1
  715. package/types/plugins/{bold.d.ts → bold/bold.d.ts} +6 -3
  716. package/types/plugins/class-span/class-span.d.ts +4 -1
  717. package/types/plugins/clipboard/clipboard.d.ts +4 -1
  718. package/types/plugins/clipboard/config.d.ts +1 -1
  719. package/types/plugins/clipboard/copy-format.d.ts +4 -1
  720. package/types/plugins/clipboard/drag-and-drop-element.d.ts +1 -1
  721. package/types/plugins/clipboard/drag-and-drop.d.ts +1 -1
  722. package/types/plugins/clipboard/index.d.ts +4 -1
  723. package/types/plugins/clipboard/paste/helpers.d.ts +4 -1
  724. package/types/plugins/clipboard/paste/paste.d.ts +4 -1
  725. package/types/plugins/clipboard/paste-storage/paste-storage.d.ts +4 -1
  726. package/types/plugins/{color.d.ts → color/color.d.ts} +5 -2
  727. package/types/plugins/error-messages/error-messages.d.ts +4 -1
  728. package/types/plugins/fix/clean-html.d.ts +4 -1
  729. package/types/plugins/fix/wrap-text-nodes.d.ts +4 -1
  730. package/types/plugins/{focus.d.ts → focus/focus.d.ts} +8 -6
  731. package/types/plugins/{font.d.ts → font/font.d.ts} +6 -3
  732. package/types/plugins/{format-block.d.ts → format-block/format-block.d.ts} +5 -2
  733. package/types/plugins/fullsize/fullsize.d.ts +4 -1
  734. package/types/plugins/{iframe.d.ts → iframe/iframe.d.ts} +6 -3
  735. package/types/plugins/image/helpers.d.ts +1 -1
  736. package/types/plugins/image/image-processor.d.ts +4 -1
  737. package/types/plugins/image/image-properties/image-properties.d.ts +4 -1
  738. package/types/plugins/image/image-properties/templates/form.d.ts +4 -1
  739. package/types/plugins/image/image-properties/templates/index.d.ts +6 -3
  740. package/types/plugins/image/image-properties/templates/{mainTab.d.ts → main-tab.d.ts} +4 -1
  741. package/types/plugins/image/image-properties/templates/{positionTab.d.ts → position-tab.d.ts} +4 -1
  742. package/types/plugins/image/image.d.ts +4 -1
  743. package/types/plugins/image/index.d.ts +4 -1
  744. package/types/plugins/{indent.d.ts → indent/indent.d.ts} +6 -3
  745. package/types/plugins/index.d.ts +22 -17
  746. package/types/plugins/inline-popup/config/config.d.ts +4 -1
  747. package/types/plugins/inline-popup/inline-popup.d.ts +4 -1
  748. package/types/plugins/insert/hr.d.ts +4 -1
  749. package/types/plugins/insert/index.d.ts +4 -1
  750. package/types/plugins/{justify.d.ts → justify/justify.d.ts} +5 -2
  751. package/types/plugins/keyboard/backspace/backspace.d.ts +31 -0
  752. package/types/plugins/keyboard/backspace/cases/check-join-neighbors.d.ts +10 -0
  753. package/types/plugins/keyboard/backspace/cases/check-join-two-lists.d.ts +20 -0
  754. package/types/plugins/keyboard/backspace/cases/check-not-collapsed.d.ts +20 -0
  755. package/types/plugins/keyboard/backspace/cases/check-remove-char.d.ts +21 -0
  756. package/types/plugins/keyboard/backspace/cases/check-remove-content-not-editable.d.ts +11 -0
  757. package/types/plugins/keyboard/backspace/cases/check-remove-empty-neighbor.d.ts +20 -0
  758. package/types/plugins/keyboard/backspace/cases/check-remove-empty-parent.d.ts +21 -0
  759. package/types/plugins/keyboard/backspace/cases/check-remove-unbreakable-element.d.ts +21 -0
  760. package/types/plugins/keyboard/backspace/cases/check-table-cell.d.ts +21 -0
  761. package/types/plugins/keyboard/backspace/cases/check-unwrap-first-list-item.d.ts +21 -0
  762. package/types/plugins/keyboard/backspace/cases/index.d.ts +8 -0
  763. package/types/plugins/keyboard/backspace/config.d.ts +20 -0
  764. package/types/plugins/keyboard/enter.d.ts +4 -1
  765. package/types/plugins/keyboard/helpers.d.ts +6 -3
  766. package/types/plugins/keyboard/hotkeys.d.ts +4 -1
  767. package/types/plugins/keyboard/key-arrow-outside.d.ts +4 -1
  768. package/types/plugins/{limit.d.ts → limit/limit.d.ts} +7 -4
  769. package/types/plugins/link/link.d.ts +4 -1
  770. package/types/plugins/link/template.d.ts +4 -1
  771. package/types/plugins/media/file.d.ts +4 -1
  772. package/types/plugins/media/index.d.ts +4 -1
  773. package/types/plugins/media/media.d.ts +4 -1
  774. package/types/plugins/media/video/config.d.ts +1 -1
  775. package/types/plugins/media/video/index.d.ts +4 -1
  776. package/types/plugins/{mobile.d.ts → mobile/mobile.d.ts} +6 -3
  777. package/types/plugins/{ordered-list.d.ts → ordered-list/ordered-list.d.ts} +6 -3
  778. package/types/plugins/placeholder/placeholder.d.ts +4 -1
  779. package/types/plugins/{powered-by-jodit.d.ts → powered-by-jodit/powered-by-jodit.d.ts} +9 -3
  780. package/types/plugins/print/index.d.ts +4 -1
  781. package/types/plugins/print/preview.d.ts +4 -1
  782. package/types/plugins/print/print.d.ts +4 -1
  783. package/types/plugins/{redo-undo.d.ts → redo-undo/redo-undo.d.ts} +6 -3
  784. package/types/plugins/resizer/resizer.d.ts +4 -1
  785. package/types/plugins/search/search.d.ts +4 -1
  786. package/types/plugins/{select.d.ts → select/select.d.ts} +6 -4
  787. package/types/plugins/size/config.d.ts +5 -0
  788. package/types/plugins/size/index.d.ts +4 -1
  789. package/types/plugins/size/resize-handler.d.ts +4 -1
  790. package/types/plugins/size/size.d.ts +4 -1
  791. package/types/plugins/source/config.d.ts +16 -3
  792. package/types/plugins/source/const.d.ts +4 -1
  793. package/types/plugins/source/editor/engines/ace.d.ts +4 -1
  794. package/types/plugins/source/editor/engines/area.d.ts +4 -1
  795. package/types/plugins/source/editor/engines/index.d.ts +4 -1
  796. package/types/plugins/source/editor/factory.d.ts +5 -2
  797. package/types/plugins/source/editor/sourceEditor.d.ts +4 -1
  798. package/types/plugins/source/index.d.ts +6 -1
  799. package/types/plugins/source/source.d.ts +4 -1
  800. package/types/plugins/{stat.d.ts → stat/stat.d.ts} +3 -3
  801. package/types/plugins/sticky/sticky.d.ts +4 -1
  802. package/types/plugins/symbols/config.d.ts +1 -1
  803. package/types/plugins/symbols/symbols.d.ts +4 -1
  804. package/types/plugins/table/config.d.ts +1 -1
  805. package/types/plugins/table/index.d.ts +4 -1
  806. package/types/plugins/table/resize-cells.d.ts +4 -1
  807. package/types/plugins/table/select-cells.d.ts +4 -1
  808. package/types/plugins/table/table-keyboard-navigation.d.ts +4 -1
  809. package/types/plugins/table/table.d.ts +4 -1
  810. package/types/plugins/tooltip/tooltip.d.ts +4 -1
  811. package/types/plugins/xpath/xpath.d.ts +4 -1
  812. package/types/styles/icons/index.d.ts +6 -1
  813. package/types/types/core.d.ts +4 -1
  814. package/types/types/storage.d.ts +4 -1
  815. package/types/types/types/ajax.d.ts +8 -1
  816. package/types/types/types/async.d.ts +7 -1
  817. package/types/types/types/context.d.ts +5 -1
  818. package/types/types/types/core.ts +5 -1
  819. package/types/types/types/create.d.ts +5 -1
  820. package/types/types/types/dialog.d.ts +5 -1
  821. package/types/types/types/events.d.ts +9 -5
  822. package/types/types/types/file-browser.d.ts +21 -5
  823. package/types/types/types/form.d.ts +5 -1
  824. package/types/types/types/index.d.ts +6 -2
  825. package/types/types/types/jodit.d.ts +5 -1
  826. package/types/types/types/{observe.d.ts → observer.d.ts} +7 -5
  827. package/types/types/types/plugin.d.ts +5 -1
  828. package/types/types/types/popup.d.ts +5 -1
  829. package/types/types/types/select.d.ts +5 -1
  830. package/types/types/types/source.d.ts +5 -1
  831. package/types/types/types/storage.ts +5 -1
  832. package/types/types/types/style.d.ts +5 -1
  833. package/types/types/types/toolbar.d.ts +5 -1
  834. package/types/types/types/traits.d.ts +5 -1
  835. package/types/types/types/types.d.ts +5 -1
  836. package/types/types/types/ui.d.ts +5 -1
  837. package/types/types/types/uploader.d.ts +4 -2
  838. package/types/types/types/view.d.ts +5 -1
  839. package/src/core/decorators/spy.ts +0 -55
  840. package/src/core/helpers/each.ts +0 -61
  841. package/src/plugins/keyboard/delete.ts +0 -768
  842. package/types/core/helpers/each.d.ts +0 -20
  843. package/types/plugins/keyboard/delete.d.ts +0 -163
package/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Jodit Editor (https://xdsoft.net/jodit/)
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
- * Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
5
  */
6
6
 
7
7
  import type { IComponent, Nullable } from './src/types';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jodit",
3
- "version": "3.10.2",
3
+ "version": "3.12.2",
4
4
  "description": "Jodit is awesome and usefully wysiwyg editor with filebrowser",
5
5
  "main": "build/jodit.min.js",
6
6
  "types": "./types/index.d.ts",
@@ -33,8 +33,18 @@
33
33
  },
34
34
  "keywords": [
35
35
  "wysiwyg",
36
+ "wysiwyg editor",
37
+ "wysiwyg html editor",
38
+ "rich text",
39
+ "rich editor",
40
+ "rich text editor",
41
+ "html",
42
+ "text",
36
43
  "editor",
37
- "rich",
44
+ "contenteditable",
45
+ "javascript",
46
+ "typescript",
47
+ "vanillajs",
38
48
  "jodit"
39
49
  ],
40
50
  "author": "Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/)",
@@ -82,6 +92,7 @@
82
92
  "merge-stream": "^2.0.0",
83
93
  "mini-css-extract-plugin": "^2.4.3",
84
94
  "mocha": "^9.1.3",
95
+ "open": "^8.4.0",
85
96
  "postcss": "^8.3.11",
86
97
  "postcss-css-variables": "^0.18.0",
87
98
  "postcss-loader": "^6.2.0",
@@ -98,6 +109,7 @@
98
109
  "ts-loader": "^9.2.6",
99
110
  "ts-private-uglifier": "^1.0.2",
100
111
  "tslib": "^2.3.1",
112
+ "typedoc": "^0.22.10",
101
113
  "typescript": "^4.5.2",
102
114
  "url-loader": "^4.1.1",
103
115
  "webpack": "^5.59.1",
package/src/README.md ADDED
@@ -0,0 +1,55 @@
1
+ The Jodit editor consists of modules and plugins. Modules make up the permanent basis of the editor's work,
2
+ and plugins can add their own functionality [[plugin]].
3
+
4
+ The editor is initialized on a DOM element. It must already exist on the page:
5
+
6
+ ```js
7
+ Jodit.make('#editor');
8
+ ```
9
+ You can also set a DOM element right away.
10
+
11
+ ```js
12
+ const elm = document.querySelector('#editor');
13
+ Jodit.make(elm);
14
+ ```
15
+
16
+ The [[Jodit.make]] method returns an instance of [[Jodit]].
17
+
18
+ ```js
19
+ const jodit = Jodit.make('#editor');
20
+ console.log(jodit.isReady)
21
+ ```
22
+
23
+ This is almost equivalent to
24
+
25
+ ```js
26
+ const jodit = new Jodit('#editor');
27
+ console.log(jodit.isReady)
28
+ ```
29
+
30
+ > But the `make` method is preferable.
31
+
32
+ All customization of the editor is done through the [[Config]]:
33
+
34
+ ```js
35
+ Jodit.make('#editor', {
36
+ height: 300
37
+ });
38
+ ```
39
+
40
+ Jodit instance has a module [[EventEmitter]]
41
+
42
+ ```js
43
+ const jodit = Jodit.make('#editor');
44
+ jodit.events.on('keydown', (e) => {
45
+ console.log(e.key)
46
+ })
47
+ ```
48
+
49
+ And the [[Select]] module, which allows you to manipulate the content of the editor through HTML insertion
50
+
51
+ ```js
52
+ const jodit = Jodit.make('#editor');
53
+ jodit.s.focus()
54
+ jodit.s.insertHTML('<p>test</p>')
55
+ ```
package/src/config.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  /*!
2
2
  * Jodit Editor (https://xdsoft.net/jodit/)
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
- * Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
+ */
6
+
7
+ /**
8
+ * @module config
5
9
  */
6
10
 
7
11
  import type {
@@ -0,0 +1,147 @@
1
+ The module is designed to work with asynchronous operations inside the editor.
2
+
3
+ ## Why
4
+
5
+ Jodit editor can be created, deleted and re-created. All asynchronous operations should be destroyed along with it.
6
+
7
+ If, for example, do this:
8
+
9
+ ```js
10
+ const jodit = Jodit.make('#editor');
11
+ setTimeout(() => {
12
+ jodit.e.on('change', () => console.log(jodit.value));
13
+ }, 1000);
14
+ jodit.destruct();
15
+ ```
16
+
17
+ This kind of code will throw an error. At the moment the function is called, the editor will already be destructed.
18
+ You can independently monitor such operations.
19
+
20
+ For example like this:
21
+
22
+ ```js
23
+ const timeout = setTimeout(() => {
24
+ jodit.e.on('change', () => console.log(jodit.value));
25
+ }, 1000);
26
+ jodit.e.on('beforeDestroy', () => clearTimeout(timeout));
27
+ ```
28
+
29
+ Then there will be no error. But such code is error-prone, and you can often forget about a process.
30
+ Therefore, the `Async` module was written. The module is intended for any kind of asynchronous operation in Jodit.
31
+ It keeps track of its handlers, and when the parent class (Jodit) is destroyed, it will clear all threads.
32
+
33
+ ## Timeout/ClearTimeout
34
+
35
+ For example, the code above will work without problems like this:
36
+
37
+ ```js
38
+ jodit.async.setTimeout(() => {
39
+ jodit.e.on('change', () => console.log(jodit.value));
40
+ }, 1000);
41
+ jodit.destruct();
42
+ ```
43
+
44
+ You can also clean up the execution of this handler yourself.
45
+
46
+ ```js
47
+ const timeout = jodit.async.setTimeout(() => {}, 1000);
48
+ jodit.async.clearTimeout(timeout);
49
+ jodit.destruct();
50
+ ```
51
+
52
+ But this is not necessary. When `jodit.destruct ()` is called, all asynchronous operations bound to this editor will be stopped.
53
+
54
+ ## Promise
55
+
56
+ Another advantage of the module is working with promises. Promises, as well as times, can work out after the editor is destroyed.
57
+
58
+ ```js
59
+ new Promise(result => {
60
+ fetch('index.php').then(result);
61
+ }).then(data => {
62
+ //here Jodit is already destroyed
63
+ jodit.setEditorValue(data); // Error
64
+ });
65
+
66
+ jodit.destruct();
67
+ ```
68
+
69
+ To prevent this from happening, it is better to do all operations with promises via async:
70
+
71
+ ```js
72
+ jodit.async
73
+ .promise(result => {
74
+ fetch('index.php').then(result);
75
+ })
76
+ .then(data => {
77
+ // This handler will no longer be executed
78
+ jodit.setEditorValue(data);
79
+ });
80
+
81
+ jodit.destruct();
82
+ ```
83
+
84
+ ## debounce/throttle
85
+
86
+ Two convenient methods for well-known operations:
87
+
88
+ ```js
89
+ const a = jodit.async.debounce(() => {
90
+ console.log('A');
91
+ }, 100);
92
+ a();
93
+ // timeout 50mc
94
+ a();
95
+ // timeout 50mc
96
+ a();
97
+ a();
98
+ // timeout 50mc
99
+ a();
100
+ a();
101
+ // timeout 50mc
102
+ a(); // A
103
+ a();
104
+ // timeout 150mc
105
+ a(); // A
106
+ ```
107
+
108
+ The code will be executed only once if the calls occurred more often than 100ms.
109
+
110
+ ```js
111
+ const b = jodit.async.throttle(() => {
112
+ console.log('B');
113
+ }, 100);
114
+ a();
115
+ // timeout 50mc
116
+ a();
117
+ // timeout 50mc
118
+ a(); // B
119
+ a();
120
+ // timeout 50mc
121
+ a();
122
+ // timeout 50mc
123
+ a(); // B
124
+ ```
125
+
126
+ The code will be executed once per 100ms. If the method is called 100 times in one second, then it will only execute 10 of them on its body.
127
+
128
+ ## delay
129
+
130
+ The method allows you to interrupt the execution of the script for n ms
131
+
132
+ ```js
133
+ async function Run() {
134
+ console.log('A');
135
+ await jodit.async.delay(1000); // 1 sec
136
+ console.log('B');
137
+ }
138
+ ```
139
+
140
+ ## clear
141
+
142
+ You yourself can remove all asynchronous editor operations without waiting for destructuring:
143
+
144
+ ```js
145
+ jodit.async.setTimeout(() => alert('Hello'), 1000);
146
+ jodit.async.clear();
147
+ ```
@@ -1,7 +1,13 @@
1
1
  /*!
2
2
  * Jodit Editor (https://xdsoft.net/jodit/)
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
- * Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
+ */
6
+
7
+ /**
8
+ * [[include:core/async/README.md]]
9
+ * @packageDocumentation
10
+ * @module async
5
11
  */
6
12
 
7
13
  import type {
@@ -10,7 +16,7 @@ import type {
10
16
  IAsyncParams,
11
17
  ITimeout,
12
18
  RejectablePromise
13
- } from '../types';
19
+ } from '../../types';
14
20
  import {
15
21
  setTimeout,
16
22
  clearTimeout,
@@ -19,11 +25,15 @@ import {
19
25
  isPromise,
20
26
  isString,
21
27
  isNumber
22
- } from './helpers/';
28
+ } from '../helpers/';
23
29
 
24
30
  export class Async implements IAsync {
25
31
  private timers: Map<number | string | Function, number> = new Map();
26
32
 
33
+ delay(timeout: number | IAsyncParams): RejectablePromise<void> {
34
+ return this.promise(resolve => this.setTimeout(resolve, timeout));
35
+ }
36
+
27
37
  setTimeout(
28
38
  callback: (...args: any[]) => void,
29
39
  timeout: number | IAsyncParams,
@@ -77,11 +87,10 @@ export class Async implements IAsync {
77
87
  * @example
78
88
  * ```javascript
79
89
  * var jodit = new Jodit('.editor');
80
- * jodit.e.on('mousemove', jodit.async.debounce(function() {
81
- * // Do expensive things
90
+ * jodit.e.on('mousemove', jodit.async.debounce(() => {
91
+ * // Do expensive things
82
92
  * }, 100));
83
93
  * ```
84
- *
85
94
  */
86
95
  debounce(
87
96
  fn: CallbackFunction,
@@ -152,7 +161,7 @@ export class Async implements IAsync {
152
161
  * ```javascript
153
162
  * var jodit = new Jodit('.editor');
154
163
  * jodit.e.on(document.body, 'scroll', jodit.async.throttle(function() {
155
- * // Do expensive things
164
+ * // Do expensive things
156
165
  * }, 100));
157
166
  * ```
158
167
  */
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Jodit Editor (https://xdsoft.net/jodit/)
3
+ * Released under MIT see LICENSE.txt in the project root for license information.
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
+ */
6
+
7
+ /**
8
+ * @module async
9
+ */
10
+
11
+ export * from './async';
@@ -0,0 +1,110 @@
1
+ Every Jodit element inherits from [[Component]], and implements the [[IComponent]] interface accordingly.
2
+
3
+ Such elements have a name
4
+
5
+ ```js
6
+ const jodit = Jodit.male('#editor');
7
+ console.log(jodit.componentName)
8
+ console.log(jodit.statusbar.componentName)
9
+ console.log(jodit.filebrowser.componentName)
10
+ console.log(jodit.uploader.componentName)
11
+ ```
12
+
13
+ And also each component has its current [[STATUSES | status]]:
14
+
15
+ ```js
16
+ const jodit = Jodit.male('#editor');
17
+ console.log(jodit.componentStatus)
18
+ ```
19
+
20
+ You can work on changes in the status of a component through the decorator [[decorators/hook]]
21
+ either through the method [[Component.prototype.hookStatus]]
22
+
23
+ ```ts
24
+ import { Component } from 'jodit/src/core/component'
25
+
26
+ export class SomeComponent extends Component {}
27
+ const cmp = new SomeComponent();
28
+
29
+ cmp.hookStatus('ready', () => {
30
+ console.log('Hello world on ready = )')
31
+ })
32
+ ```
33
+
34
+ To set the status, it is enough to call the method [[Component.prototype.setStatus]]
35
+
36
+ ```ts
37
+ import { Component } from 'jodit/src/core/component'
38
+
39
+ export class SomeComponent extends Component {}
40
+ const cmp = new SomeComponent();
41
+ cmp.setStatus('ready')
42
+ ```
43
+
44
+ The component itself can automatically set the ready status:
45
+
46
+ ```ts
47
+ import type { IJodit } from 'jodit/src/types'
48
+ import { Component } from 'jodit/src/core/component'
49
+
50
+ export class SomeComponent extends Component {
51
+ constructor(jodit: IJodit) {
52
+ super(jodit);
53
+ cmp.setStatus('ready')
54
+ }
55
+ }
56
+
57
+ const cmp = new SomeComponent();
58
+ console.log(cmp.isReady)
59
+ ```
60
+ But it’s better not to do this, because with inheritance, such a component will be “ready” ahead of time:
61
+
62
+ ```ts
63
+ import type { IJodit, IStatusBar } from 'jodit/src/types'
64
+ import { Component } from 'jodit/src/core/component'
65
+ import { StatusBar } from 'jodit/src/modules';
66
+
67
+ export class SomeComponent extends Component {
68
+ constructor(jodit: IJodit) {
69
+ super(jodit);
70
+ cmp.setStatus('ready')
71
+ }
72
+ }
73
+
74
+ export class SomeAnotherComponent extends SomeComponent {
75
+ public status: IStatusBar;
76
+
77
+ constructor(jodit: IJodit) {
78
+ super(jodit);
79
+ console.log(this.isReady) // true
80
+ // Errors are possible here, since the status of the component is already 'ready' but you have not yet initialized its fields
81
+ this.status = new StatusBar(jodit)
82
+ }
83
+ }
84
+ ```
85
+
86
+ Therefore, it is better to use a decorator [[core/decorators/component]]
87
+
88
+ ```ts
89
+ import type { IJodit, IStatusBar } from 'jodit/src/types'
90
+ import { Component } from 'jodit/src/core/component'
91
+ import { StatusBar } from 'jodit/src/modules';
92
+ import { component } from 'jodit/src/core/decorators';
93
+
94
+ @component()
95
+ export class SomeComponent extends Component {}
96
+
97
+ @component()
98
+ export class SomeAnotherComponent extends SomeComponent {
99
+ public status: IStatusBar;
100
+
101
+ constructor(jodit: IJodit) {
102
+ super(jodit);
103
+ console.log(this.isReady) // false
104
+ this.status = new StatusBar(jodit)
105
+ }
106
+ }
107
+
108
+ const cmp = new SomeAnotherComponent();
109
+ console.log(cmp.isReady) // true
110
+ ```
@@ -1,7 +1,13 @@
1
1
  /*!
2
2
  * Jodit Editor (https://xdsoft.net/jodit/)
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
- * Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
+ */
6
+
7
+ /**
8
+ * [[include:core/component/README.md]]
9
+ * @packageDocumentation
10
+ * @module component
5
11
  */
6
12
 
7
13
  import type {
@@ -1,7 +1,11 @@
1
1
  /*!
2
2
  * Jodit Editor (https://xdsoft.net/jodit/)
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
- * Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
+ */
6
+
7
+ /**
8
+ * @module component
5
9
  */
6
10
 
7
11
  export * from './statuses';
@@ -1,7 +1,11 @@
1
1
  /*!
2
2
  * Jodit Editor (https://xdsoft.net/jodit/)
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
- * Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
+ */
6
+
7
+ /**
8
+ * @module component
5
9
  */
6
10
 
7
11
  export const STATUSES = {
@@ -1,7 +1,11 @@
1
1
  /*!
2
2
  * Jodit Editor (https://xdsoft.net/jodit/)
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
- * Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
+ */
6
+
7
+ /**
8
+ * @module component
5
9
  */
6
10
 
7
11
  import type { IViewBased, IViewComponent } from '../../types';
@@ -1,7 +1,11 @@
1
1
  /*!
2
2
  * Jodit Editor (https://xdsoft.net/jodit/)
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
- * Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
+ */
6
+
7
+ /**
8
+ * @module constants
5
9
  */
6
10
 
7
11
  import type { IDictionary } from '../types';
@@ -0,0 +1,57 @@
1
+ Every internal DOM node of both the editor interface and the editor content itself must be created through this module.
2
+ This is due to the fact that the interface can be shown in an iframe, or another window.
3
+ And in this case, you need to create its elements using the document from this window.
4
+ In order not to worry about it yourself, this module was created.
5
+
6
+ For example, we initialize the editor in iframe mode:
7
+
8
+ ```js
9
+ const jodit = Jodit.make('#editor', { iframe: true });
10
+ ```
11
+
12
+ In this case, in plugins, to insert a value, you would have to write the following construction:
13
+
14
+ ```js
15
+ const p = jodit.iframe.contentWindow.document.createElement('p');
16
+ jodit.s.insertNode(p);
17
+ ```
18
+
19
+ In order not to think about it, the [[IJodit]] interface has a field [[Jodit.createInside]] and [[Jodit.create]].
20
+ Both fields are [[ICreate]] instances, but the first should be used for creating elements inside the editor.
21
+ And the second is for the editor interface.
22
+
23
+ The previous example, regardless of the operating mode, will be like this:
24
+
25
+ ```js
26
+ const p = jodit.createInside.element('p');
27
+ jodit.s.insertNode(p);
28
+ ```
29
+
30
+ This method of creating DOM elements has one more advantage, you can add the option [[Config.createAttributes]]
31
+ And then, for each created element, the attributes you specified will already be set:
32
+
33
+ ```js
34
+ const jodit = Jodit.make('#editor', {
35
+ createAttributes: {
36
+ p: {
37
+ style: 'color: red'
38
+ },
39
+ a: a => {
40
+ a.title = 'Some title';
41
+ }
42
+ }
43
+ });
44
+
45
+ const p = jodit.createInside.element('p');
46
+ console.log(p.style.cssText) // color: red
47
+
48
+ const a = jodit.createInside.element('a');
49
+ console.log(a.title) // Some title
50
+ ```
51
+
52
+ To create DOM elements from text, you should also use this module:
53
+
54
+ ```js
55
+ const p = jodit.createInside.fromHTML('<p>text</p>');
56
+ jodit.s.insertNode(p);
57
+ ```
@@ -1,7 +1,13 @@
1
1
  /*!
2
2
  * Jodit Editor (https://xdsoft.net/jodit/)
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
- * Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
+ */
6
+
7
+ /**
8
+ * [[include:core/create/README.md]]
9
+ * @packageDocumentation
10
+ * @module create
5
11
  */
6
12
 
7
13
  import type {
@@ -11,7 +17,7 @@ import type {
11
17
  ICreate,
12
18
  CanUndef,
13
19
  NodeFunction
14
- } from '../types';
20
+ } from '../../types';
15
21
 
16
22
  import {
17
23
  isPlainObject,
@@ -20,10 +26,10 @@ import {
20
26
  refs,
21
27
  isString,
22
28
  attr
23
- } from './helpers/';
29
+ } from '../helpers/';
24
30
 
25
- import { Dom } from './dom';
26
- import { INVISIBLE_SPACE } from './constants';
31
+ import { Dom } from '../dom';
32
+ import { INVISIBLE_SPACE } from '../constants';
27
33
 
28
34
  export class Create implements ICreate {
29
35
  private get doc(): Document {
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Jodit Editor (https://xdsoft.net/jodit/)
3
+ * Released under MIT see LICENSE.txt in the project root for license information.
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
+ */
6
+
7
+ /**
8
+ * @module create
9
+ */
10
+
11
+ export * from './create';
@@ -0,0 +1,4 @@
1
+ # Jodit component UI decorators
2
+
3
+ Decorators are designed to make it easier to work with UI components.
4
+ Adding event handlers, state changes, and component status.
@@ -0,0 +1,17 @@
1
+ The decorator allows you to cache the result of executing any method of the UI component.
2
+
3
+ ```typescript
4
+ @component()
5
+ class UIComponent extends UIElement {
6
+ @cache()
7
+ someHeavyMethod(param1, param2) {
8
+ return someHeaveCalculation(param1, param2);
9
+ }
10
+ }
11
+
12
+ const elm = new UIComponent(jodit);
13
+ elm.someHeavyMethod(1, 2);
14
+ elm.someHeavyMethod(1, 2);
15
+ elm.someHeavyMethod(1, 2); // someHeaveCalculation will execute only once
16
+ elm.someHeavyMethod(2, 2); // someHeaveCalculation will execute again
17
+ ```
@@ -1,11 +1,17 @@
1
1
  /*!
2
2
  * Jodit Editor (https://xdsoft.net/jodit/)
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
- * Copyright (c) 2013-2021 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4
+ * Copyright (c) 2013-2022 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
5
  */
6
6
 
7
- import { error } from '../helpers';
8
- import type { IDictionary } from '../../types';
7
+ /**
8
+ * [[include:core/decorators/cache/README.md]]
9
+ * @packageDocumentation
10
+ * @module decorators/cache
11
+ */
12
+
13
+ import { error } from '../../helpers';
14
+ import type { IDictionary } from '../../../types';
9
15
 
10
16
  export interface CachePropertyDescriptor<T, R> extends PropertyDescriptor {
11
17
  get?: (this: T) => R;