jodit 3.12.3 → 3.13.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 (513) hide show
  1. package/.idea/stylesheetLinters/stylelint.xml +6 -0
  2. package/.idea/workspace.xml +306 -288
  3. package/CHANGELOG.MD +82 -10
  4. package/README.md +107 -78
  5. package/build/jodit.css +112 -70
  6. package/build/jodit.es2018.css +107 -64
  7. package/build/jodit.es2018.en.css +107 -64
  8. package/build/jodit.es2018.en.js +1065 -892
  9. package/build/jodit.es2018.en.min.css +1 -1
  10. package/build/jodit.es2018.en.min.js +1 -1
  11. package/build/jodit.es2018.js +1101 -928
  12. package/build/jodit.es2018.min.css +1 -1
  13. package/build/jodit.es2018.min.js +1 -1
  14. package/build/jodit.js +4886 -2306
  15. package/build/jodit.min.css +2 -2
  16. package/build/jodit.min.js +1 -1
  17. package/index.html +1 -0
  18. package/package.json +35 -35
  19. package/src/config.ts +18 -0
  20. package/src/core/async/async.ts +2 -2
  21. package/src/core/component/README.md +2 -2
  22. package/src/core/component/component.ts +16 -6
  23. package/src/core/component/view-component.ts +1 -1
  24. package/src/core/constants.ts +45 -1
  25. package/src/core/create/create.ts +4 -4
  26. package/src/core/decorators/cache/cache.ts +2 -2
  27. package/src/core/decorators/component/component.ts +1 -1
  28. package/src/core/decorators/debounce/debounce.ts +4 -4
  29. package/src/core/decorators/hook/hook.ts +4 -4
  30. package/src/core/decorators/idle/idle.ts +3 -3
  31. package/src/core/decorators/persistent/persistent.ts +3 -3
  32. package/src/core/decorators/wait/wait.ts +3 -3
  33. package/src/core/decorators/watch/watch.ts +48 -45
  34. package/src/core/dom/README.md +2 -0
  35. package/src/core/dom/dom.ts +5 -5
  36. package/src/core/event-emitter/event-emitter.ts +5 -5
  37. package/src/core/event-emitter/index.ts +1 -1
  38. package/src/core/event-emitter/observable.ts +192 -0
  39. package/src/core/event-emitter/store.ts +1 -1
  40. package/src/core/global.ts +1 -1
  41. package/src/core/helpers/README.md +31 -1
  42. package/src/core/helpers/checker/is-equal.ts +1 -1
  43. package/src/core/helpers/checker/is-imp-interface.ts +2 -2
  44. package/src/core/helpers/checker/is-jodit-object.ts +1 -1
  45. package/src/core/helpers/checker/is-plain-object.ts +1 -1
  46. package/src/core/helpers/html/apply-styles.ts +2 -2
  47. package/src/core/helpers/html/clean-from-word.ts +3 -3
  48. package/src/core/helpers/html/nl2br.ts +1 -1
  49. package/src/core/helpers/html/strip-tags.ts +5 -5
  50. package/src/core/helpers/normalize/normalize-key-aliases.ts +3 -3
  51. package/src/core/helpers/normalize/normalize-node.ts +2 -2
  52. package/src/core/helpers/size/get-scroll-parent.ts +3 -3
  53. package/src/core/helpers/size/object-size.ts +1 -1
  54. package/src/core/helpers/size/offset.ts +1 -1
  55. package/src/core/helpers/size/position.ts +1 -1
  56. package/src/core/helpers/string/i18n.ts +10 -6
  57. package/src/core/helpers/string/stringify.ts +1 -1
  58. package/src/core/helpers/string/trim.ts +1 -1
  59. package/src/core/helpers/utils/append-script.ts +1 -1
  60. package/src/core/helpers/utils/assert.ts +25 -0
  61. package/src/core/helpers/utils/build-query.ts +1 -1
  62. package/src/core/helpers/utils/config-proto.ts +2 -2
  63. package/src/core/helpers/utils/css.ts +1 -1
  64. package/src/core/helpers/utils/data-bind.ts +2 -2
  65. package/src/core/helpers/utils/get-class-name.ts +1 -1
  66. package/src/core/helpers/utils/get.ts +1 -1
  67. package/src/core/helpers/utils/index.ts +1 -0
  68. package/src/core/helpers/utils/parse-query.ts +1 -1
  69. package/src/core/helpers/utils/selector.ts +8 -9
  70. package/src/core/helpers/utils/set.ts +1 -1
  71. package/src/core/helpers/utils/stack.ts +1 -1
  72. package/src/core/helpers/utils/utils.ts +1 -1
  73. package/src/core/plugin/README.md +13 -0
  74. package/src/core/plugin/plugin-system.ts +58 -17
  75. package/src/core/plugin/plugin.ts +3 -3
  76. package/src/core/request/ajax.ts +3 -3
  77. package/src/core/request/config.ts +3 -3
  78. package/src/core/request/response.ts +1 -1
  79. package/src/core/selection/select.ts +6 -6
  80. package/src/core/selection/style/api/element-has-same-style.ts +3 -3
  81. package/src/core/selection/style/api/extract.ts +3 -3
  82. package/src/core/selection/style/api/finite-state-machine.ts +1 -1
  83. package/src/core/selection/style/api/get-suit-child.ts +2 -2
  84. package/src/core/selection/style/api/get-suit-parent.ts +2 -2
  85. package/src/core/selection/style/api/is-inside-invisible-element.ts +1 -1
  86. package/src/core/selection/style/api/is-normal-node.ts +2 -2
  87. package/src/core/selection/style/api/is-suit-element.ts +3 -3
  88. package/src/core/selection/style/api/toggle/toggle-css.ts +6 -6
  89. package/src/core/selection/style/api/toggle/toggle-ordered-list.ts +2 -2
  90. package/src/core/selection/style/api/toggle-commit-styles.ts +1 -1
  91. package/src/core/selection/style/api/unwrap-children.ts +3 -3
  92. package/src/core/selection/style/api/wrap-and-commit-style.ts +3 -3
  93. package/src/core/selection/style/api/wrap-ordered-list.ts +2 -2
  94. package/src/core/selection/style/api/wrap-unwrapped-text.ts +2 -2
  95. package/src/core/selection/style/apply-style.ts +3 -3
  96. package/src/core/selection/style/commit-style.ts +2 -2
  97. package/src/core/storage/engines/local-storage-provider.ts +1 -5
  98. package/src/core/storage/engines/memory-storage-provider.ts +1 -1
  99. package/src/core/storage/storage.ts +1 -1
  100. package/src/core/traits/elms.ts +6 -7
  101. package/src/core/traits/mods.ts +11 -14
  102. package/src/core/ui/button/button/button.ts +8 -8
  103. package/src/core/ui/button/group/group.ts +6 -3
  104. package/src/core/ui/element.ts +12 -12
  105. package/src/core/ui/form/block/block.ts +4 -4
  106. package/src/core/ui/form/form.ts +4 -5
  107. package/src/core/ui/form/inputs/area/area.ts +3 -3
  108. package/src/core/ui/form/inputs/checkbox/checkbox.ts +5 -5
  109. package/src/core/ui/form/inputs/file/file.ts +4 -4
  110. package/src/core/ui/form/inputs/input/input.ts +8 -8
  111. package/src/core/ui/form/inputs/select/select.ts +8 -5
  112. package/src/core/ui/form/validators/input.ts +2 -2
  113. package/src/core/ui/form/validators/select.ts +2 -2
  114. package/src/core/ui/group/group.ts +8 -6
  115. package/src/core/ui/group/list.less +1 -1
  116. package/src/core/ui/group/list.ts +15 -11
  117. package/src/core/ui/group/separator.ts +3 -4
  118. package/src/core/ui/group/spacer.ts +3 -3
  119. package/src/core/ui/helpers/buttons.ts +2 -2
  120. package/src/core/ui/helpers/get-control-type.ts +3 -3
  121. package/src/core/ui/helpers/get-strong-control-types.ts +4 -4
  122. package/src/core/ui/icon.ts +2 -2
  123. package/src/core/ui/popup/popup.ts +7 -7
  124. package/src/core/ui/progress-bar/progress-bar.ts +2 -2
  125. package/src/core/view/view-with-toolbar.ts +5 -5
  126. package/src/core/view/view.ts +6 -6
  127. package/src/langs/README.md +124 -1
  128. package/src/langs/index.ts +1 -1
  129. package/src/modules/context-menu/context-menu.less +1 -1
  130. package/src/modules/context-menu/context-menu.ts +4 -4
  131. package/src/modules/dialog/alert.ts +3 -3
  132. package/src/modules/dialog/confirm.ts +3 -3
  133. package/src/modules/dialog/dialog.less +5 -0
  134. package/src/modules/dialog/dialog.ts +49 -32
  135. package/src/modules/dialog/prompt.ts +3 -3
  136. package/src/modules/file-browser/builders/context-menu.ts +22 -14
  137. package/src/modules/file-browser/builders/elements-map.ts +31 -0
  138. package/src/modules/file-browser/builders/item.ts +2 -2
  139. package/src/modules/file-browser/config.ts +5 -5
  140. package/src/modules/file-browser/data-provider.ts +5 -5
  141. package/src/modules/file-browser/factories.ts +1 -1
  142. package/src/modules/file-browser/fetch/delete-file.ts +27 -0
  143. package/src/modules/file-browser/fetch/load-items.ts +32 -0
  144. package/src/modules/file-browser/fetch/load-tree.ts +49 -0
  145. package/src/modules/file-browser/file-browser.ts +59 -120
  146. package/src/modules/file-browser/listeners/native-listeners.ts +14 -14
  147. package/src/modules/file-browser/listeners/self-listeners.ts +23 -18
  148. package/src/modules/file-browser/listeners/state-listeners.ts +17 -12
  149. package/src/modules/file-browser/styles/file-browser.less +24 -18
  150. package/src/modules/file-browser/ui/files/files.less +5 -0
  151. package/src/modules/file-browser/ui/files/files.ts +1 -1
  152. package/src/modules/file-browser/ui/tree/tree.less +16 -6
  153. package/src/modules/file-browser/ui/tree/tree.ts +1 -1
  154. package/src/modules/image-editor/image-editor.ts +9 -52
  155. package/src/modules/image-editor/templates/form.ts +4 -4
  156. package/src/modules/observer/command.ts +1 -1
  157. package/src/modules/observer/observer.ts +5 -5
  158. package/src/modules/observer/snapshot.ts +3 -3
  159. package/src/modules/observer/stack.ts +1 -1
  160. package/src/modules/status-bar/status-bar.ts +7 -7
  161. package/src/modules/table/table.ts +8 -8
  162. package/src/modules/toolbar/button/button.less +1 -1
  163. package/src/modules/toolbar/button/button.ts +57 -15
  164. package/src/modules/toolbar/button/content.less +1 -1
  165. package/src/modules/toolbar/button/content.ts +5 -5
  166. package/src/modules/toolbar/collection/collection.less +1 -1
  167. package/src/modules/toolbar/collection/collection.ts +5 -31
  168. package/src/modules/toolbar/collection/editor-collection.ts +5 -9
  169. package/src/modules/toolbar/factory.ts +2 -2
  170. package/src/modules/uploader/uploader.ts +9 -9
  171. package/src/modules/widget/color-picker/color-picker.ts +4 -4
  172. package/src/modules/widget/file-selector/file-selector.ts +4 -4
  173. package/src/modules/widget/tabs/tabs.ts +3 -3
  174. package/src/plugins/about/about.ts +5 -5
  175. package/src/plugins/add-new-line/add-new-line.ts +5 -5
  176. package/src/plugins/bold/bold.ts +3 -3
  177. package/src/plugins/class-span/class-span.ts +5 -5
  178. package/src/plugins/clipboard/clipboard.ts +4 -4
  179. package/src/plugins/clipboard/config.ts +29 -5
  180. package/src/plugins/clipboard/copy-format.ts +4 -4
  181. package/src/plugins/clipboard/drag-and-drop-element.ts +6 -6
  182. package/src/plugins/clipboard/drag-and-drop.ts +7 -7
  183. package/src/plugins/clipboard/paste/CHANGELOG.md +17 -0
  184. package/src/plugins/clipboard/paste/README.md +8 -0
  185. package/src/plugins/clipboard/paste/helpers.ts +5 -5
  186. package/src/plugins/clipboard/paste/paste.ts +24 -20
  187. package/src/plugins/clipboard/paste-storage/paste-storage.ts +6 -6
  188. package/src/plugins/color/color.ts +5 -5
  189. package/src/plugins/error-messages/error-messages.ts +5 -5
  190. package/src/plugins/fix/clean-html.ts +10 -10
  191. package/src/plugins/fix/wrap-text-nodes.ts +5 -5
  192. package/src/plugins/focus/focus.ts +4 -4
  193. package/src/plugins/font/font.ts +5 -5
  194. package/src/plugins/format-block/CHANGELOG.md +16 -0
  195. package/src/plugins/format-block/README.md +40 -0
  196. package/src/plugins/format-block/format-block.ts +8 -5
  197. package/src/plugins/fullsize/fullsize.ts +5 -5
  198. package/src/plugins/iframe/iframe.ts +6 -6
  199. package/src/plugins/image/helpers.ts +1 -1
  200. package/src/plugins/image/image-processor.ts +2 -2
  201. package/src/plugins/image/image-properties/image-properties.ts +12 -9
  202. package/src/plugins/image/image-properties/templates/form.ts +1 -1
  203. package/src/plugins/image/image-properties/templates/main-tab.ts +1 -1
  204. package/src/plugins/image/image-properties/templates/position-tab.ts +1 -1
  205. package/src/plugins/image/image.ts +5 -5
  206. package/src/plugins/indent/indent.ts +6 -6
  207. package/src/plugins/inline-popup/config/config.ts +3 -3
  208. package/src/plugins/inline-popup/config/items/a.ts +1 -1
  209. package/src/plugins/inline-popup/config/items/cells.ts +1 -1
  210. package/src/plugins/inline-popup/config/items/iframe.ts +1 -1
  211. package/src/plugins/inline-popup/config/items/img.ts +1 -1
  212. package/src/plugins/inline-popup/inline-popup.ts +6 -6
  213. package/src/plugins/insert/hr.ts +3 -3
  214. package/src/plugins/justify/justify.ts +4 -4
  215. package/src/plugins/keyboard/backspace/backspace.ts +6 -6
  216. package/src/plugins/keyboard/backspace/cases/check-join-neighbors.ts +3 -3
  217. package/src/plugins/keyboard/backspace/cases/check-join-two-lists.ts +1 -1
  218. package/src/plugins/keyboard/backspace/cases/check-not-collapsed.ts +1 -1
  219. package/src/plugins/keyboard/backspace/cases/check-remove-char.ts +9 -6
  220. package/src/plugins/keyboard/backspace/cases/check-remove-content-not-editable.ts +4 -4
  221. package/src/plugins/keyboard/backspace/cases/check-remove-empty-neighbor.ts +3 -3
  222. package/src/plugins/keyboard/backspace/cases/check-remove-empty-parent.ts +5 -5
  223. package/src/plugins/keyboard/backspace/cases/check-remove-unbreakable-element.ts +1 -1
  224. package/src/plugins/keyboard/backspace/cases/check-table-cell.ts +1 -1
  225. package/src/plugins/keyboard/backspace/cases/check-unwrap-first-list-item.ts +3 -3
  226. package/src/plugins/keyboard/backspace/config.ts +2 -2
  227. package/src/plugins/keyboard/enter.ts +6 -6
  228. package/src/plugins/keyboard/helpers.ts +5 -5
  229. package/src/plugins/keyboard/hotkeys.ts +6 -6
  230. package/src/plugins/keyboard/key-arrow-outside.ts +5 -5
  231. package/src/plugins/limit/limit.ts +7 -7
  232. package/src/plugins/link/link.ts +7 -7
  233. package/src/plugins/link/template.ts +3 -3
  234. package/src/plugins/media/file.ts +4 -4
  235. package/src/plugins/media/media.ts +6 -6
  236. package/src/plugins/media/video/config.ts +6 -6
  237. package/src/plugins/media/video/index.ts +1 -1
  238. package/src/plugins/mobile/mobile.ts +9 -9
  239. package/src/plugins/ordered-list/ordered-list.ts +6 -6
  240. package/src/plugins/placeholder/placeholder.ts +9 -9
  241. package/src/plugins/powered-by-jodit/powered-by-jodit.ts +2 -2
  242. package/src/plugins/print/preview.ts +4 -4
  243. package/src/plugins/print/print.ts +6 -6
  244. package/src/plugins/redo-undo/redo-undo.ts +4 -4
  245. package/src/plugins/resizer/resizer.ts +18 -16
  246. package/src/plugins/search/search.ts +11 -11
  247. package/src/plugins/select/select.ts +6 -6
  248. package/src/plugins/size/config.ts +2 -2
  249. package/src/plugins/size/resize-handler.ts +5 -5
  250. package/src/plugins/size/size.ts +4 -4
  251. package/src/plugins/source/config.ts +5 -5
  252. package/src/plugins/source/editor/engines/ace.ts +1 -1
  253. package/src/plugins/source/editor/engines/area.ts +1 -1
  254. package/src/plugins/source/editor/engines/custom.ts +1 -1
  255. package/src/plugins/source/editor/factory.ts +2 -2
  256. package/src/plugins/source/editor/sourceEditor.ts +1 -1
  257. package/src/plugins/source/source.ts +8 -8
  258. package/src/plugins/stat/stat.ts +6 -6
  259. package/src/plugins/sticky/sticky.ts +6 -6
  260. package/src/plugins/symbols/config.ts +4 -4
  261. package/src/plugins/symbols/symbols.ts +3 -3
  262. package/src/plugins/table/config.ts +5 -5
  263. package/src/plugins/table/resize-cells.ts +4 -4
  264. package/src/plugins/table/select-cells.ts +5 -5
  265. package/src/plugins/table/table-keyboard-navigation.ts +3 -3
  266. package/src/plugins/table/table.ts +1 -1
  267. package/src/plugins/tooltip/tooltip.ts +6 -6
  268. package/src/plugins/xpath/xpath.ts +10 -10
  269. package/src/polyfills.ts +9 -1
  270. package/src/styles/form.less +1 -1
  271. package/src/styles/icons/README.md +151 -1
  272. package/src/types/file-browser.d.ts +1 -10
  273. package/src/types/jodit.d.ts +1 -1
  274. package/src/types/observer.d.ts +1 -2
  275. package/src/types/traits.d.ts +10 -5
  276. package/src/types/types.d.ts +39 -0
  277. package/src/types/ui.d.ts +8 -17
  278. package/tsconfig.json +8 -2
  279. package/types/config.d.ts +16 -0
  280. package/types/core/async/async.d.ts +1 -1
  281. package/types/core/component/component.d.ts +1 -1
  282. package/types/core/component/view-component.d.ts +1 -1
  283. package/types/core/constants.d.ts +42 -1
  284. package/types/core/create/create.d.ts +1 -1
  285. package/types/core/decorators/debounce/debounce.d.ts +1 -1
  286. package/types/core/decorators/hook/hook.d.ts +2 -2
  287. package/types/core/decorators/idle/idle.d.ts +1 -1
  288. package/types/core/decorators/persistent/persistent.d.ts +1 -1
  289. package/types/core/decorators/wait/wait.d.ts +1 -1
  290. package/types/core/decorators/watch/watch.d.ts +1 -1
  291. package/types/core/dom/dom.d.ts +1 -1
  292. package/types/core/event-emitter/event-emitter.d.ts +1 -1
  293. package/types/core/event-emitter/index.d.ts +1 -1
  294. package/types/core/event-emitter/observable.d.ts +45 -0
  295. package/types/core/event-emitter/store.d.ts +1 -1
  296. package/types/core/global.d.ts +1 -1
  297. package/types/core/helpers/checker/is-imp-interface.d.ts +1 -1
  298. package/types/core/helpers/checker/is-jodit-object.d.ts +1 -1
  299. package/types/core/helpers/checker/is-plain-object.d.ts +1 -1
  300. package/types/core/helpers/size/get-scroll-parent.d.ts +1 -1
  301. package/types/core/helpers/size/object-size.d.ts +1 -1
  302. package/types/core/helpers/size/offset.d.ts +1 -1
  303. package/types/core/helpers/size/position.d.ts +1 -1
  304. package/types/core/helpers/string/i18n.d.ts +2 -2
  305. package/types/core/helpers/utils/append-script.d.ts +1 -1
  306. package/types/core/helpers/utils/assert.d.ts +8 -0
  307. package/types/core/helpers/utils/build-query.d.ts +1 -1
  308. package/types/core/helpers/utils/config-proto.d.ts +1 -1
  309. package/types/core/helpers/utils/css.d.ts +1 -1
  310. package/types/core/helpers/utils/data-bind.d.ts +1 -1
  311. package/types/core/helpers/utils/get-class-name.d.ts +1 -1
  312. package/types/core/helpers/utils/get.d.ts +1 -1
  313. package/types/core/helpers/utils/index.d.ts +1 -0
  314. package/types/core/helpers/utils/parse-query.d.ts +1 -1
  315. package/types/core/helpers/utils/selector.d.ts +1 -1
  316. package/types/core/helpers/utils/set.d.ts +1 -1
  317. package/types/core/helpers/utils/stack.d.ts +1 -1
  318. package/types/core/helpers/utils/utils.d.ts +2 -2
  319. package/types/core/plugin/plugin-system.d.ts +3 -2
  320. package/types/core/plugin/plugin.d.ts +1 -1
  321. package/types/core/request/ajax.d.ts +1 -1
  322. package/types/core/request/config.d.ts +2 -2
  323. package/types/core/request/response.d.ts +1 -1
  324. package/types/core/selection/select.d.ts +1 -1
  325. package/types/core/selection/style/api/element-has-same-style.d.ts +1 -1
  326. package/types/core/selection/style/api/extract.d.ts +1 -1
  327. package/types/core/selection/style/api/finite-state-machine.d.ts +1 -1
  328. package/types/core/selection/style/api/get-suit-child.d.ts +1 -1
  329. package/types/core/selection/style/api/get-suit-parent.d.ts +1 -1
  330. package/types/core/selection/style/api/is-normal-node.d.ts +1 -1
  331. package/types/core/selection/style/api/is-suit-element.d.ts +2 -2
  332. package/types/core/selection/style/api/toggle/toggle-css.d.ts +2 -2
  333. package/types/core/selection/style/api/toggle/toggle-ordered-list.d.ts +1 -1
  334. package/types/core/selection/style/api/wrap-and-commit-style.d.ts +1 -1
  335. package/types/core/selection/style/api/wrap-ordered-list.d.ts +1 -1
  336. package/types/core/selection/style/api/wrap-unwrapped-text.d.ts +1 -1
  337. package/types/core/selection/style/apply-style.d.ts +1 -1
  338. package/types/core/selection/style/commit-style.d.ts +1 -1
  339. package/types/core/storage/engines/local-storage-provider.d.ts +1 -1
  340. package/types/core/storage/engines/memory-storage-provider.d.ts +1 -1
  341. package/types/core/storage/storage.d.ts +1 -1
  342. package/types/core/traits/elms.d.ts +3 -3
  343. package/types/core/traits/mods.d.ts +6 -6
  344. package/types/core/ui/button/button/button.d.ts +2 -2
  345. package/types/core/ui/button/group/group.d.ts +1 -1
  346. package/types/core/ui/element.d.ts +7 -7
  347. package/types/core/ui/form/block/block.d.ts +2 -2
  348. package/types/core/ui/form/form.d.ts +2 -2
  349. package/types/core/ui/form/inputs/area/area.d.ts +2 -2
  350. package/types/core/ui/form/inputs/checkbox/checkbox.d.ts +2 -2
  351. package/types/core/ui/form/inputs/file/file.d.ts +2 -2
  352. package/types/core/ui/form/inputs/input/input.d.ts +2 -2
  353. package/types/core/ui/form/inputs/select/select.d.ts +2 -2
  354. package/types/core/ui/form/validators/input.d.ts +1 -1
  355. package/types/core/ui/form/validators/select.d.ts +2 -2
  356. package/types/core/ui/group/group.d.ts +2 -2
  357. package/types/core/ui/group/list.d.ts +2 -2
  358. package/types/core/ui/group/separator.d.ts +1 -2
  359. package/types/core/ui/group/spacer.d.ts +1 -1
  360. package/types/core/ui/helpers/buttons.d.ts +1 -1
  361. package/types/core/ui/helpers/get-control-type.d.ts +1 -1
  362. package/types/core/ui/helpers/get-strong-control-types.d.ts +1 -1
  363. package/types/core/ui/icon.d.ts +1 -1
  364. package/types/core/ui/popup/popup.d.ts +2 -2
  365. package/types/core/ui/progress-bar/progress-bar.d.ts +1 -1
  366. package/types/core/view/view-with-toolbar.d.ts +1 -1
  367. package/types/core/view/view.d.ts +4 -4
  368. package/types/langs/index.d.ts +1 -1
  369. package/types/modules/context-menu/context-menu.d.ts +2 -2
  370. package/types/modules/dialog/confirm.d.ts +1 -1
  371. package/types/modules/dialog/dialog.d.ts +3 -3
  372. package/types/modules/dialog/prompt.d.ts +1 -1
  373. package/types/modules/file-browser/builders/context-menu.d.ts +1 -1
  374. package/types/modules/file-browser/builders/elements-map.d.ts +18 -0
  375. package/types/modules/file-browser/builders/item.d.ts +1 -1
  376. package/types/modules/file-browser/config.d.ts +2 -2
  377. package/types/modules/file-browser/data-provider.d.ts +1 -1
  378. package/types/modules/file-browser/factories.d.ts +1 -1
  379. package/types/modules/file-browser/fetch/delete-file.d.ts +13 -0
  380. package/types/modules/file-browser/fetch/load-items.d.ts +13 -0
  381. package/types/modules/file-browser/fetch/load-tree.d.ts +13 -0
  382. package/types/modules/file-browser/file-browser.d.ts +5 -12
  383. package/types/modules/file-browser/listeners/native-listeners.d.ts +1 -1
  384. package/types/modules/file-browser/listeners/self-listeners.d.ts +1 -1
  385. package/types/modules/file-browser/listeners/state-listeners.d.ts +1 -1
  386. package/types/modules/file-browser/ui/files/files.d.ts +1 -1
  387. package/types/modules/file-browser/ui/tree/tree.d.ts +1 -1
  388. package/types/modules/image-editor/image-editor.d.ts +4 -6
  389. package/types/modules/image-editor/templates/form.d.ts +1 -1
  390. package/types/modules/observer/command.d.ts +1 -1
  391. package/types/modules/observer/observer.d.ts +3 -3
  392. package/types/modules/observer/snapshot.d.ts +2 -2
  393. package/types/modules/observer/stack.d.ts +1 -1
  394. package/types/modules/status-bar/status-bar.d.ts +5 -5
  395. package/types/modules/table/table.d.ts +3 -3
  396. package/types/modules/toolbar/button/button.d.ts +13 -5
  397. package/types/modules/toolbar/button/content.d.ts +2 -2
  398. package/types/modules/toolbar/collection/collection.d.ts +3 -3
  399. package/types/modules/toolbar/collection/editor-collection.d.ts +1 -1
  400. package/types/modules/toolbar/factory.d.ts +1 -1
  401. package/types/modules/uploader/uploader.d.ts +3 -3
  402. package/types/modules/widget/color-picker/color-picker.d.ts +1 -1
  403. package/types/modules/widget/file-selector/file-selector.d.ts +1 -1
  404. package/types/modules/widget/tabs/tabs.d.ts +2 -2
  405. package/types/plugins/about/about.d.ts +1 -1
  406. package/types/plugins/add-new-line/add-new-line.d.ts +3 -3
  407. package/types/plugins/bold/bold.d.ts +1 -1
  408. package/types/plugins/class-span/class-span.d.ts +2 -2
  409. package/types/plugins/clipboard/clipboard.d.ts +2 -2
  410. package/types/plugins/clipboard/config.d.ts +22 -2
  411. package/types/plugins/clipboard/copy-format.d.ts +1 -1
  412. package/types/plugins/clipboard/drag-and-drop-element.d.ts +1 -1
  413. package/types/plugins/clipboard/drag-and-drop.d.ts +1 -1
  414. package/types/plugins/clipboard/paste/helpers.d.ts +2 -2
  415. package/types/plugins/clipboard/paste/paste.d.ts +6 -10
  416. package/types/plugins/clipboard/paste-storage/paste-storage.d.ts +1 -1
  417. package/types/plugins/color/color.d.ts +1 -1
  418. package/types/plugins/error-messages/error-messages.d.ts +2 -2
  419. package/types/plugins/fix/clean-html.d.ts +3 -3
  420. package/types/plugins/fix/wrap-text-nodes.d.ts +2 -2
  421. package/types/plugins/focus/focus.d.ts +2 -2
  422. package/types/plugins/font/font.d.ts +2 -2
  423. package/types/plugins/format-block/format-block.d.ts +3 -1
  424. package/types/plugins/fullsize/fullsize.d.ts +2 -2
  425. package/types/plugins/iframe/iframe.d.ts +2 -2
  426. package/types/plugins/image/image-processor.d.ts +1 -1
  427. package/types/plugins/image/image-properties/image-properties.d.ts +2 -2
  428. package/types/plugins/image/image-properties/templates/form.d.ts +1 -1
  429. package/types/plugins/image/image-properties/templates/main-tab.d.ts +1 -1
  430. package/types/plugins/image/image-properties/templates/position-tab.d.ts +1 -1
  431. package/types/plugins/image/image.d.ts +1 -1
  432. package/types/plugins/indent/indent.d.ts +2 -2
  433. package/types/plugins/inline-popup/config/config.d.ts +2 -2
  434. package/types/plugins/inline-popup/inline-popup.d.ts +2 -2
  435. package/types/plugins/insert/hr.d.ts +1 -1
  436. package/types/plugins/justify/justify.d.ts +1 -1
  437. package/types/plugins/keyboard/backspace/backspace.d.ts +2 -2
  438. package/types/plugins/keyboard/backspace/cases/check-join-neighbors.d.ts +1 -1
  439. package/types/plugins/keyboard/backspace/cases/check-join-two-lists.d.ts +1 -1
  440. package/types/plugins/keyboard/backspace/cases/check-not-collapsed.d.ts +1 -1
  441. package/types/plugins/keyboard/backspace/cases/check-remove-char.d.ts +2 -2
  442. package/types/plugins/keyboard/backspace/cases/check-remove-content-not-editable.d.ts +1 -1
  443. package/types/plugins/keyboard/backspace/cases/check-remove-empty-neighbor.d.ts +1 -1
  444. package/types/plugins/keyboard/backspace/cases/check-remove-empty-parent.d.ts +1 -1
  445. package/types/plugins/keyboard/backspace/cases/check-remove-unbreakable-element.d.ts +1 -1
  446. package/types/plugins/keyboard/backspace/cases/check-table-cell.d.ts +1 -1
  447. package/types/plugins/keyboard/backspace/cases/check-unwrap-first-list-item.d.ts +1 -1
  448. package/types/plugins/keyboard/backspace/config.d.ts +1 -1
  449. package/types/plugins/keyboard/enter.d.ts +2 -2
  450. package/types/plugins/keyboard/helpers.d.ts +1 -1
  451. package/types/plugins/keyboard/hotkeys.d.ts +3 -3
  452. package/types/plugins/keyboard/key-arrow-outside.d.ts +2 -2
  453. package/types/plugins/limit/limit.d.ts +3 -3
  454. package/types/plugins/link/link.d.ts +3 -3
  455. package/types/plugins/link/template.d.ts +1 -1
  456. package/types/plugins/media/file.d.ts +1 -1
  457. package/types/plugins/media/media.d.ts +2 -2
  458. package/types/plugins/media/video/index.d.ts +1 -1
  459. package/types/plugins/mobile/mobile.d.ts +2 -2
  460. package/types/plugins/ordered-list/ordered-list.d.ts +2 -2
  461. package/types/plugins/placeholder/placeholder.d.ts +3 -3
  462. package/types/plugins/powered-by-jodit/powered-by-jodit.d.ts +2 -2
  463. package/types/plugins/print/preview.d.ts +1 -1
  464. package/types/plugins/print/print.d.ts +1 -1
  465. package/types/plugins/redo-undo/redo-undo.d.ts +2 -2
  466. package/types/plugins/resizer/resizer.d.ts +4 -4
  467. package/types/plugins/search/search.d.ts +3 -3
  468. package/types/plugins/select/select.d.ts +2 -2
  469. package/types/plugins/size/config.d.ts +1 -1
  470. package/types/plugins/size/resize-handler.d.ts +2 -2
  471. package/types/plugins/size/size.d.ts +2 -2
  472. package/types/plugins/source/config.d.ts +2 -2
  473. package/types/plugins/source/editor/engines/ace.d.ts +1 -1
  474. package/types/plugins/source/editor/engines/area.d.ts +1 -1
  475. package/types/plugins/source/editor/factory.d.ts +1 -1
  476. package/types/plugins/source/editor/sourceEditor.d.ts +1 -1
  477. package/types/plugins/source/source.d.ts +2 -2
  478. package/types/plugins/stat/stat.d.ts +2 -2
  479. package/types/plugins/sticky/sticky.d.ts +2 -2
  480. package/types/plugins/symbols/config.d.ts +1 -1
  481. package/types/plugins/symbols/symbols.d.ts +1 -1
  482. package/types/plugins/table/resize-cells.d.ts +1 -1
  483. package/types/plugins/table/select-cells.d.ts +2 -2
  484. package/types/plugins/table/table-keyboard-navigation.d.ts +1 -1
  485. package/types/plugins/table/table.d.ts +1 -1
  486. package/types/plugins/tooltip/tooltip.d.ts +2 -2
  487. package/types/plugins/xpath/xpath.d.ts +3 -3
  488. package/types/types/{types/ajax.d.ts → ajax.d.ts} +0 -0
  489. package/types/types/{types/async.d.ts → async.d.ts} +0 -0
  490. package/types/types/{types/context.d.ts → context.d.ts} +0 -0
  491. package/types/types/{types/core.ts → core.ts} +0 -0
  492. package/types/types/{types/create.d.ts → create.d.ts} +0 -0
  493. package/types/types/{types/dialog.d.ts → dialog.d.ts} +0 -0
  494. package/types/types/{types/events.d.ts → events.d.ts} +0 -0
  495. package/types/types/{types/file-browser.d.ts → file-browser.d.ts} +1 -10
  496. package/types/types/{types/form.d.ts → form.d.ts} +0 -0
  497. package/types/types/{types/index.d.ts → index.d.ts} +0 -0
  498. package/types/types/{types/jodit.d.ts → jodit.d.ts} +1 -1
  499. package/types/types/{types/observer.d.ts → observer.d.ts} +1 -2
  500. package/types/types/{types/plugin.d.ts → plugin.d.ts} +0 -0
  501. package/types/types/{types/popup.d.ts → popup.d.ts} +0 -0
  502. package/types/types/{types/select.d.ts → select.d.ts} +0 -0
  503. package/types/types/{types/source.d.ts → source.d.ts} +0 -0
  504. package/types/types/{types/storage.ts → storage.ts} +0 -0
  505. package/types/types/{types/style.d.ts → style.d.ts} +0 -0
  506. package/types/types/{types/toolbar.d.ts → toolbar.d.ts} +0 -0
  507. package/types/types/{types/traits.d.ts → traits.d.ts} +10 -5
  508. package/types/types/{types/types.d.ts → types.d.ts} +39 -0
  509. package/types/types/{types/ui.d.ts → ui.d.ts} +8 -17
  510. package/types/types/{types/uploader.d.ts → uploader.d.ts} +0 -0
  511. package/types/types/{types/view.d.ts → view.d.ts} +0 -0
  512. package/src/core/event-emitter/observe-object.ts +0 -157
  513. package/types/core/event-emitter/observe-object.d.ts +0 -24
@@ -0,0 +1,192 @@
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 event-emitter
9
+ */
10
+
11
+ import type {
12
+ CanUndef,
13
+ IObservable,
14
+ CallbackFunction,
15
+ IDictionary
16
+ } from 'jodit/types';
17
+ import { isArray, isFastEqual, isPlainObject } from 'jodit/core/helpers';
18
+ import { getPropertyDescriptor } from 'jodit/core/decorators';
19
+
20
+ const OBSERVABLE_OBJECT = Symbol('observable-object');
21
+
22
+ function isObservableObject<T extends Record<string | symbol, any>>(
23
+ obj: T
24
+ ): obj is T & IObservable {
25
+ return obj[OBSERVABLE_OBJECT] !== undefined;
26
+ }
27
+
28
+ /**
29
+ * Makes any object an observable object
30
+ * @example
31
+ * ```js
32
+ * const obj = {
33
+ * a: 1,
34
+ * b: {
35
+ * c: 5
36
+ * }
37
+ * }
38
+ *
39
+ * const obsObj = Jodit.modules.observable(obj);
40
+ * console.log(obj === obsObj); // true
41
+ * obsObj.on('change', () => {
42
+ * console.log('Object changed');
43
+ * });
44
+ * obsObj.on('change.a', () => {
45
+ * console.log('Key a changed');
46
+ * });
47
+ * obsObj.on('change.b.c', () => {
48
+ * console.log('Key b.c changed');
49
+ * });
50
+ *
51
+ * obj.a = 6;
52
+ * // Object changed
53
+ * // Key a changed
54
+ *
55
+ * obj.b = {c: 6}
56
+ * // Object changed
57
+ *
58
+ * obj.b.c = 8
59
+ * // Object changed
60
+ * // Key b.c changed
61
+ * ```
62
+ */
63
+ export function observable<T extends IDictionary, O extends T & IObservable>(
64
+ obj: T
65
+ ): O {
66
+ if (isObservableObject(obj)) {
67
+ return obj as O;
68
+ }
69
+
70
+ const __lockEvent: IDictionary<boolean> = {};
71
+ const __onEvents: IDictionary<CallbackFunction[]> = {};
72
+
73
+ const on = (event: string | string[], callback: CallbackFunction): O => {
74
+ if (isArray(event)) {
75
+ event.map(e => on(e, callback));
76
+ return obj as O;
77
+ }
78
+
79
+ if (!__onEvents[event]) {
80
+ __onEvents[event] = [];
81
+ }
82
+
83
+ __onEvents[event].push(callback);
84
+
85
+ return obj as O;
86
+ };
87
+
88
+ const fire = (event: string | string[], ...attr: any[]): void => {
89
+ if (isArray(event)) {
90
+ event.map(e => fire(e, ...attr));
91
+ return;
92
+ }
93
+
94
+ try {
95
+ if (!__lockEvent[event] && __onEvents[event]) {
96
+ __lockEvent[event] = true;
97
+ __onEvents[event].forEach(clb => clb.call(obj, ...attr));
98
+ }
99
+ } finally {
100
+ __lockEvent[event] = false;
101
+ }
102
+ };
103
+
104
+ const initAccessors = <K extends IDictionary>(
105
+ dict: K,
106
+ prefixes: string[] = []
107
+ ): void => {
108
+ const store = {} as K;
109
+
110
+ if (isObservableObject(dict)) {
111
+ return;
112
+ }
113
+
114
+ Object.defineProperty(dict, OBSERVABLE_OBJECT, {
115
+ enumerable: false,
116
+ value: true
117
+ });
118
+
119
+ Object.keys(dict).forEach(_key => {
120
+ const key = _key as keyof T & string;
121
+ const prefix = prefixes.concat(key).filter(a => a.length);
122
+ store[key] = dict[key];
123
+
124
+ const descriptor = getPropertyDescriptor(dict, key);
125
+
126
+ Object.defineProperty(dict, key, {
127
+ set: (value: CanUndef<unknown>) => {
128
+ const oldValue = store[key];
129
+ if (!isFastEqual(store[key], value)) {
130
+ fire(
131
+ [
132
+ 'beforeChange',
133
+ `beforeChange.${prefix.join('.')}`
134
+ ],
135
+ key,
136
+ value
137
+ );
138
+
139
+ if (isPlainObject(value)) {
140
+ initAccessors(value, prefix);
141
+ }
142
+
143
+ if (descriptor && descriptor.set) {
144
+ descriptor.set.call(obj, value);
145
+ } else {
146
+ store[key] = value as any;
147
+ }
148
+
149
+ const sum: string[] = [];
150
+
151
+ fire(
152
+ [
153
+ 'change',
154
+ ...prefix.reduce((rs, p) => {
155
+ sum.push(p);
156
+ rs.push(`change.${sum.join('.')}`);
157
+ return rs;
158
+ }, [] as string[])
159
+ ],
160
+ prefix.join('.'),
161
+ oldValue,
162
+ (value as any)?.valueOf
163
+ ? (value as any).valueOf()
164
+ : value
165
+ );
166
+ }
167
+ },
168
+ get: () => {
169
+ if (descriptor && descriptor.get) {
170
+ return descriptor.get.call(obj);
171
+ }
172
+
173
+ return store[key];
174
+ },
175
+ enumerable: true,
176
+ configurable: true
177
+ });
178
+
179
+ if (isPlainObject(store[key])) {
180
+ initAccessors(store[key], prefix);
181
+ }
182
+ });
183
+
184
+ Object.defineProperty(obj, 'on', {
185
+ value: on
186
+ });
187
+ };
188
+
189
+ initAccessors(obj);
190
+
191
+ return obj as O;
192
+ }
@@ -12,7 +12,7 @@ import type {
12
12
  CallbackFunction,
13
13
  EventHandlerBlock,
14
14
  IDictionary
15
- } from '../../types';
15
+ } from 'jodit/types';
16
16
 
17
17
  export const defaultNameSpace = 'JoditEventDefaultNamespace';
18
18
 
@@ -15,7 +15,7 @@ import type {
15
15
  IJodit,
16
16
  IViewBased,
17
17
  IViewComponent
18
- } from '../types';
18
+ } from 'jodit/types';
19
19
 
20
20
  import { PluginSystem } from './plugin/plugin-system';
21
21
 
@@ -1 +1,31 @@
1
- Jodit helpers
1
+ Assistant functions are intended for small basic operations and are divided into subgroups.
2
+
3
+ For example, the [[helpers/string]] subgroup is designed to work with strings:
4
+ ```js
5
+ Jodit.modules.Helpers.ucfirst('hello') // Hello
6
+ Jodit.modules.Helpers.camelCase('hello-world') // helloWorld
7
+ Jodit.modules.Helpers.trim(' hello-world ') // hello-world
8
+ Jodit.modules.Helpers.kebabCase('helloWorld') // hello-world
9
+ ```
10
+ And the [[helpers/html]] subgroup is designed to work with strings containing HTML:
11
+ ```js
12
+ Jodit.modules.Helpers.nl2br('hello\nworld') // hello<br>world
13
+ ```
14
+
15
+ > All helpers, regardless of the group, are in the namespace `Jodit.modules.Helpers`
16
+
17
+ The most commonly used helpers are checkers [[helpers/checker]]:
18
+
19
+ ```js
20
+ Jodit.modules.Helpers.isBoolean('hello') // false
21
+
22
+ Jodit.modules.Helpers.isHtml('hello-world') // false
23
+ Jodit.modules.Helpers.isHtml('<p>hello world</p>') // true
24
+
25
+ Jodit.modules.Helpers.isInt('100') // true
26
+ Jodit.modules.Helpers.isInt('100.1') // false
27
+ Jodit.modules.Helpers.isInt('test') // false
28
+
29
+ Jodit.modules.Helpers.isFunction(() => {}) // true
30
+ Jodit.modules.Helpers.isString(123) // false
31
+ ```
@@ -8,7 +8,7 @@
8
8
  * @module helpers/checker
9
9
  */
10
10
 
11
- import { stringify } from '../string/stringify';
11
+ import { stringify } from 'jodit/core/helpers/string/stringify';
12
12
 
13
13
  /**
14
14
  * Check two element are equal
@@ -8,9 +8,9 @@
8
8
  * @module helpers/checker
9
9
  */
10
10
 
11
- import type { IContainer, IDestructible, IInitable } from '../../../types';
11
+ import type { IContainer, IDestructible, IInitable } from 'jodit/types';
12
12
  import { isFunction } from './is-function';
13
- import { Dom } from '../../dom';
13
+ import { Dom } from 'jodit/core/dom';
14
14
  import { isVoid } from './is-void';
15
15
 
16
16
  /**
@@ -8,7 +8,7 @@
8
8
  * @module helpers/checker
9
9
  */
10
10
 
11
- import type { IJodit, IViewBased } from '../../../types';
11
+ import type { IJodit, IViewBased } from 'jodit/types';
12
12
  import { isFunction } from './is-function';
13
13
  import { modules } from '../../global';
14
14
 
@@ -8,7 +8,7 @@
8
8
  * @module helpers/checker
9
9
  */
10
10
 
11
- import type { IDictionary } from '../../../types';
11
+ import type { IDictionary } from 'jodit/types';
12
12
  import { isWindow } from './is-window';
13
13
 
14
14
  /**
@@ -8,8 +8,8 @@
8
8
  * @module helpers/html
9
9
  */
10
10
 
11
- import { Dom } from '../../dom';
12
- import { $$ } from '../utils';
11
+ import { Dom } from 'jodit/core/dom';
12
+ import { $$ } from 'jodit/core/helpers/utils';
13
13
  import { trim } from '../string';
14
14
 
15
15
  function normalizeCSS(s: string) {
@@ -8,9 +8,9 @@
8
8
  * @module helpers/html
9
9
  */
10
10
 
11
- import { Dom } from '../../dom';
12
- import { trim } from '../string';
13
- import { toArray } from '../array';
11
+ import { Dom } from 'jodit/core/dom';
12
+ import { trim } from 'jodit/core/helpers/string/trim';
13
+ import { toArray } from 'jodit/core/helpers/array/to-array';
14
14
 
15
15
  /**
16
16
  * The method automatically cleans up content from Microsoft Word and other HTML sources to ensure clean, compliant
@@ -12,5 +12,5 @@
12
12
  * Inserts HTML line breaks before all newlines in a string
13
13
  */
14
14
  export function nl2br(html: string): string {
15
- return html.replace(/[\n\r]/g, '<br/>');
15
+ return html.replace(/\r\n|\r|\n/g, '<br/>');
16
16
  }
@@ -8,11 +8,11 @@
8
8
  * @module helpers/html
9
9
  */
10
10
 
11
- import { isString } from '../checker';
12
- import { $$ } from '../utils';
13
- import { trim } from '../string';
14
- import { Dom } from '../../dom';
15
- import { attr } from '../utils';
11
+ import { isString } from 'jodit/core/helpers/checker/is-string';
12
+ import { $$ } from 'jodit/core/helpers/utils';
13
+ import { trim } from 'jodit/core/helpers/string/trim';
14
+ import { Dom } from 'jodit/core/dom';
15
+ import { attr } from 'jodit/core/helpers/utils';
16
16
 
17
17
  /**
18
18
  * Extract plain text from HTML text
@@ -8,9 +8,9 @@
8
8
  * @module helpers/normalize
9
9
  */
10
10
 
11
- import type { IDictionary } from '../../../types';
12
- import { trim } from '../string';
13
- import { KEY_ALIASES } from '../../constants';
11
+ import type { IDictionary } from 'jodit/types';
12
+ import { trim } from 'jodit/core/helpers/string';
13
+ import { KEY_ALIASES } from 'jodit/core/constants';
14
14
 
15
15
  /**
16
16
  * Normalize keys to some standard name
@@ -8,8 +8,8 @@
8
8
  * @module helpers/normalize
9
9
  */
10
10
 
11
- import { INVISIBLE_SPACE_REG_EXP } from '../../constants';
12
- import { Dom } from '../../dom';
11
+ import { INVISIBLE_SPACE_REG_EXP } from 'jodit/core/constants';
12
+ import { Dom } from 'jodit/core/dom';
13
13
 
14
14
  export const normalizeNode = (node: Node | null): void => {
15
15
  if (!node) {
@@ -8,9 +8,9 @@
8
8
  * @module helpers/size
9
9
  */
10
10
 
11
- import type { Nullable } from '../../../types';
12
- import { css } from '../utils';
13
- import { Dom } from '../../dom';
11
+ import type { Nullable } from 'jodit/types';
12
+ import { css } from 'jodit/core/helpers/utils';
13
+ import { Dom } from 'jodit/core/dom';
14
14
 
15
15
  export function getScrollParent(node: Nullable<Node>): Nullable<Element> {
16
16
  if (!node) {
@@ -9,7 +9,7 @@
9
9
  */
10
10
 
11
11
  import { isArray, isPlainObject, isString } from '../checker';
12
- import type { CanUndef } from '../../../types';
12
+ import type { CanUndef } from 'jodit/types';
13
13
 
14
14
  export function size(
15
15
  subject: CanUndef<object | string | Array<unknown>>
@@ -13,7 +13,7 @@
13
13
  * @returns returns an object containing the properties top and left.
14
14
  */
15
15
 
16
- import type { IBound, IHasScroll, IJodit, IViewBased } from '../../../types';
16
+ import type { IBound, IHasScroll, IJodit, IViewBased } from 'jodit/types';
17
17
 
18
18
  export const offset = (
19
19
  elm: HTMLElement | Range,
@@ -8,7 +8,7 @@
8
8
  * @module helpers/size
9
9
  */
10
10
 
11
- import type { IBound, IViewBased } from '../../../types';
11
+ import type { IBound, IViewBased } from 'jodit/types';
12
12
  import { isJoditObject } from '../checker';
13
13
 
14
14
  export function position(elm: HTMLElement): IBound;
@@ -8,11 +8,15 @@
8
8
  * @module helpers/string
9
9
  */
10
10
 
11
- import type { IDictionary, ILanguageOptions } from '../../../types';
12
- import { Config } from '../../../config';
13
- import { defaultLanguage as defineLanguage } from '../utils';
14
- import { ucfirst, isString, error } from '../';
15
- import { lang } from '../../global';
11
+ import type { IDictionary, ILanguageOptions } from 'jodit/types';
12
+ import { Config } from 'jodit/config';
13
+ import {
14
+ defaultLanguage as defineLanguage,
15
+ error
16
+ } from 'jodit/core/helpers/utils';
17
+ import { isString } from 'jodit/core/helpers/checker';
18
+ import { ucfirst } from 'jodit/core/helpers/string';
19
+ import { lang } from 'jodit/core/global';
16
20
 
17
21
  /**
18
22
  * Simple variant sprintf function
@@ -43,7 +47,7 @@ export const sprintf = (str: string, args?: Array<string | number>): string => {
43
47
  * @example
44
48
  * ```javascript
45
49
  * var editor = new Jodit("#redactor", {
46
- * langusage: 'ru'
50
+ * language: 'ru'
47
51
  * });
48
52
  * console.log(editor.i18n('Cancel')) //Отмена;
49
53
  *
@@ -8,7 +8,7 @@
8
8
  * @module helpers/string
9
9
  */
10
10
 
11
- import type { CanUndef } from '../../../types';
11
+ import type { CanUndef } from 'jodit/types';
12
12
 
13
13
  /**
14
14
  * Safe stringify circular object
@@ -13,7 +13,7 @@ import {
13
13
  SPACE_REG_EXP_START,
14
14
  INVISIBLE_SPACE_REG_EXP_END,
15
15
  INVISIBLE_SPACE_REG_EXP_START
16
- } from '../../constants';
16
+ } from 'jodit/core/constants';
17
17
 
18
18
  /**
19
19
  * It clears the line of all auxiliary invisible characters , from the spaces and line breaks , tabs
@@ -8,7 +8,7 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
- import type { IViewBased } from '../../../types';
11
+ import type { IViewBased } from 'jodit/types';
12
12
  import { completeUrl } from './complete-url';
13
13
  import { isFunction, isString } from '../checker';
14
14
 
@@ -0,0 +1,25 @@
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 helpers/utils
9
+ */
10
+
11
+ class AssertionError extends Error {
12
+ constructor(message: string) {
13
+ super(message);
14
+ this.name = 'AssertionError';
15
+ }
16
+ }
17
+
18
+ /** Asserts that condition is truthy (or evaluates to true). */
19
+ function assert(condition: boolean, message: string): asserts condition {
20
+ if (!condition) {
21
+ throw new AssertionError(`Assertion failed: ${message}`);
22
+ }
23
+ }
24
+
25
+ export { assert };
@@ -8,7 +8,7 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
- import type { IDictionary } from '../../../types';
11
+ import type { IDictionary } from 'jodit/types';
12
12
  import { isPlainObject } from '../checker';
13
13
 
14
14
  /**
@@ -8,10 +8,10 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
- import type { IDictionary } from '../../../types';
11
+ import type { IDictionary } from 'jodit/types';
12
12
  import { isAtom } from './extend';
13
13
  import { isArray, isPlainObject, isString, isVoid } from '../checker';
14
- import { Config } from '../../../config';
14
+ import { Config } from 'jodit/config';
15
15
  import { keys } from './utils';
16
16
  /**
17
17
  * @example
@@ -8,7 +8,7 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
- import type { IStyle, StyleValue } from '../../../types';
11
+ import type { IStyle, StyleValue } from 'jodit/types';
12
12
  import { isPlainObject, isNumeric, isVoid, isBoolean } from '../checker/';
13
13
  import { normalizeCssValue } from '../normalize/';
14
14
  import { camelCase, kebabCase } from '../string/';
@@ -8,8 +8,8 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
- import type { IEventEmitter, IViewComponent, Nullable } from '../../../types';
12
- import { ViewComponent } from '../../component';
11
+ import type { IEventEmitter, IViewComponent, Nullable } from 'jodit/types';
12
+ import { ViewComponent } from 'jodit/core/component';
13
13
  import { isViewObject } from '../checker';
14
14
 
15
15
  const store = new WeakMap();
@@ -8,7 +8,7 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
- import type { IDictionary } from '../../../types';
11
+ import type { IDictionary } from 'jodit/types';
12
12
  import { isFunction } from '../checker/is-function';
13
13
 
14
14
  export const keepNames = new Map<Function, string>();
@@ -8,7 +8,7 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
- import type { IDictionary, Nullable } from '../../../types';
11
+ import type { IDictionary, Nullable } from 'jodit/types';
12
12
  import { isString } from '../checker/is-string';
13
13
  import { isVoid } from '../checker/is-void';
14
14
 
@@ -8,6 +8,7 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
+ export * from './assert';
11
12
  export * from './mark-deprecated';
12
13
  export * from './utils';
13
14
  export * from './get';
@@ -8,7 +8,7 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
- import type { IDictionary } from '../../../types';
11
+ import type { IDictionary } from 'jodit/types';
12
12
 
13
13
  /**
14
14
  * Parse query string
@@ -13,15 +13,14 @@ import type {
13
13
  IDictionary,
14
14
  IUIElement,
15
15
  Nullable
16
- } from '../../../types/';
17
- import { IS_IE } from '../../constants';
18
- import { isString } from '../checker';
19
- import { attr } from './utils';
20
- import { error } from './error';
21
- import { Dom } from '../../dom';
22
- import { camelCase } from '../string';
23
- import { toArray } from '../array';
24
- import { UIElement } from '../../ui';
16
+ } from 'jodit/types/';
17
+ import { IS_IE } from 'jodit/core/constants';
18
+ import { isString } from 'jodit/core/helpers/checker';
19
+ import { attr, error } from 'jodit/core/helpers/utils';
20
+ import { Dom } from 'jodit/core/dom';
21
+ import { camelCase } from 'jodit/core/helpers/string';
22
+ import { toArray } from 'jodit/core/helpers/array';
23
+ import { UIElement } from 'jodit/core/ui';
25
24
 
26
25
  let temp = 1;
27
26
 
@@ -8,7 +8,7 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
- import type { IDictionary } from '../../../types';
11
+ import type { IDictionary } from 'jodit/types';
12
12
  import { isString } from '../checker/is-string';
13
13
  import { isNumeric } from '../checker/is-numeric';
14
14
  import { isArray } from '../checker/is-array';
@@ -8,7 +8,7 @@
8
8
  * @module helpers/utils
9
9
  */
10
10
 
11
- import type { CanUndef } from '../../../types';
11
+ import type { CanUndef } from 'jodit/types';
12
12
 
13
13
  export class LimitedStack<T> {
14
14
  private stack: T[] = [];
@@ -16,7 +16,7 @@ import type {
16
16
  Nullable,
17
17
  IJodit,
18
18
  RejectablePromise
19
- } from '../../../types';
19
+ } from 'jodit/types';
20
20
  import { isFunction } from '../checker/is-function';
21
21
  import { isPromise } from '../checker/is-promise';
22
22
  import { get } from './get';
@@ -131,3 +131,16 @@ Jodit.plugins.add('insertTimePlugin', insertTimePlugin);
131
131
  - Default: []
132
132
 
133
133
  If your plugin depends on other plugins, then it must be initialized after them.
134
+
135
+
136
+ ## Debug
137
+
138
+ Since version `3.12.4` you can disable all Jodit plugins during development and work only with your own plugin.
139
+ This will allow you to find out if it works correctly and if it breaks the behavior of the editor or if it is caused by other plugins.
140
+
141
+ ```js
142
+ Jodit.make('#editor', {
143
+ safeMode: true,
144
+ safePluginsList: ['about'],
145
+ extraPlugins: ['yourPluginDev']
146
+ });