jodit-pro 4.12.21 → 4.12.23

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 (299) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.js +4 -4
  3. package/es2015/jodit.js +171 -34
  4. package/es2015/jodit.min.js +4 -4
  5. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  8. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  9. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  10. package/es2015/plugins/backup/backup.css +1 -1
  11. package/es2015/plugins/backup/backup.js +1 -1
  12. package/es2015/plugins/backup/backup.min.js +1 -1
  13. package/es2015/plugins/button-generator/button-generator.css +1 -1
  14. package/es2015/plugins/button-generator/button-generator.js +1 -1
  15. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  16. package/es2015/plugins/change-case/change-case.js +1 -1
  17. package/es2015/plugins/change-case/change-case.min.js +1 -1
  18. package/es2015/plugins/color-picker/color-picker.css +1 -1
  19. package/es2015/plugins/color-picker/color-picker.js +1 -1
  20. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  21. package/es2015/plugins/emoji/emoji.css +1 -1
  22. package/es2015/plugins/emoji/emoji.js +1 -1
  23. package/es2015/plugins/emoji/emoji.min.js +1 -1
  24. package/es2015/plugins/export-docs/export-docs.js +1 -1
  25. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  26. package/es2015/plugins/finder/finder.css +1 -1
  27. package/es2015/plugins/finder/finder.js +1 -1
  28. package/es2015/plugins/finder/finder.min.js +1 -1
  29. package/es2015/plugins/google-maps/google-maps.css +1 -1
  30. package/es2015/plugins/google-maps/google-maps.js +1 -1
  31. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  32. package/es2015/plugins/google-search/google-search.js +1 -1
  33. package/es2015/plugins/google-search/google-search.min.js +1 -1
  34. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  35. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  36. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  37. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  38. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  39. package/es2015/plugins/keyboard/keyboard.css +1 -1
  40. package/es2015/plugins/keyboard/keyboard.js +1 -1
  41. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  42. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  43. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  44. package/es2015/plugins/page-break/page-break.js +1 -1
  45. package/es2015/plugins/page-break/page-break.min.js +1 -1
  46. package/es2015/plugins/paste-code/paste-code.css +1 -1
  47. package/es2015/plugins/paste-code/paste-code.js +1 -1
  48. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  49. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  50. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  51. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  52. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  53. package/es2015/plugins/style/style.css +1 -1
  54. package/es2015/plugins/style/style.js +1 -1
  55. package/es2015/plugins/style/style.min.js +1 -1
  56. package/es2015/plugins/templates/templates.css +1 -1
  57. package/es2015/plugins/templates/templates.js +1 -1
  58. package/es2015/plugins/templates/templates.min.js +1 -1
  59. package/es2015/plugins/todo-list/todo-list.css +1 -1
  60. package/es2015/plugins/todo-list/todo-list.js +1 -1
  61. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  62. package/es2015/plugins/translate/translate.css +1 -1
  63. package/es2015/plugins/translate/translate.js +1 -1
  64. package/es2015/plugins/translate/translate.min.js +1 -1
  65. package/es2015/plugins/tune-block/tune-block.css +1 -1
  66. package/es2015/plugins/tune-block/tune-block.js +1 -1
  67. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  68. package/es2018/jodit.fat.min.js +6 -6
  69. package/es2018/jodit.min.js +4 -4
  70. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  71. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  72. package/es2018/plugins/backup/backup.min.js +1 -1
  73. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  74. package/es2018/plugins/change-case/change-case.min.js +1 -1
  75. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  76. package/es2018/plugins/emoji/emoji.min.js +1 -1
  77. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  78. package/es2018/plugins/finder/finder.min.js +1 -1
  79. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  80. package/es2018/plugins/google-search/google-search.min.js +1 -1
  81. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  82. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  83. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  84. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  85. package/es2018/plugins/page-break/page-break.min.js +1 -1
  86. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  87. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  88. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  89. package/es2018/plugins/style/style.min.js +1 -1
  90. package/es2018/plugins/templates/templates.min.js +1 -1
  91. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  92. package/es2018/plugins/translate/translate.min.js +1 -1
  93. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  94. package/es2021/jodit.css +1 -1
  95. package/es2021/jodit.fat.min.js +8 -8
  96. package/es2021/jodit.js +171 -34
  97. package/es2021/jodit.min.js +5 -5
  98. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  99. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  100. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  101. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  102. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  103. package/es2021/plugins/backup/backup.css +1 -1
  104. package/es2021/plugins/backup/backup.js +1 -1
  105. package/es2021/plugins/backup/backup.min.js +1 -1
  106. package/es2021/plugins/button-generator/button-generator.css +1 -1
  107. package/es2021/plugins/button-generator/button-generator.js +1 -1
  108. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  109. package/es2021/plugins/change-case/change-case.js +1 -1
  110. package/es2021/plugins/change-case/change-case.min.js +1 -1
  111. package/es2021/plugins/color-picker/color-picker.css +1 -1
  112. package/es2021/plugins/color-picker/color-picker.js +1 -1
  113. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  114. package/es2021/plugins/emoji/emoji.css +1 -1
  115. package/es2021/plugins/emoji/emoji.js +1 -1
  116. package/es2021/plugins/emoji/emoji.min.js +1 -1
  117. package/es2021/plugins/export-docs/export-docs.js +1 -1
  118. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  119. package/es2021/plugins/finder/finder.css +1 -1
  120. package/es2021/plugins/finder/finder.js +1 -1
  121. package/es2021/plugins/finder/finder.min.js +1 -1
  122. package/es2021/plugins/google-maps/google-maps.css +1 -1
  123. package/es2021/plugins/google-maps/google-maps.js +1 -1
  124. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  125. package/es2021/plugins/google-search/google-search.js +1 -1
  126. package/es2021/plugins/google-search/google-search.min.js +1 -1
  127. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  128. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  129. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  130. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  131. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  132. package/es2021/plugins/keyboard/keyboard.css +1 -1
  133. package/es2021/plugins/keyboard/keyboard.js +1 -1
  134. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  135. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  136. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  137. package/es2021/plugins/page-break/page-break.js +1 -1
  138. package/es2021/plugins/page-break/page-break.min.js +1 -1
  139. package/es2021/plugins/paste-code/paste-code.css +1 -1
  140. package/es2021/plugins/paste-code/paste-code.js +1 -1
  141. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  142. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  143. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  144. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  145. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  146. package/es2021/plugins/style/style.css +1 -1
  147. package/es2021/plugins/style/style.js +1 -1
  148. package/es2021/plugins/style/style.min.js +1 -1
  149. package/es2021/plugins/templates/templates.css +1 -1
  150. package/es2021/plugins/templates/templates.js +1 -1
  151. package/es2021/plugins/templates/templates.min.js +1 -1
  152. package/es2021/plugins/todo-list/todo-list.css +1 -1
  153. package/es2021/plugins/todo-list/todo-list.js +1 -1
  154. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  155. package/es2021/plugins/translate/translate.css +1 -1
  156. package/es2021/plugins/translate/translate.js +1 -1
  157. package/es2021/plugins/translate/translate.min.js +1 -1
  158. package/es2021/plugins/tune-block/tune-block.css +1 -1
  159. package/es2021/plugins/tune-block/tune-block.js +1 -1
  160. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  161. package/es2021.en/jodit.css +1 -1
  162. package/es2021.en/jodit.fat.min.js +5 -5
  163. package/es2021.en/jodit.js +171 -34
  164. package/es2021.en/jodit.min.js +5 -5
  165. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  166. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  167. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  168. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  169. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  170. package/es2021.en/plugins/backup/backup.css +1 -1
  171. package/es2021.en/plugins/backup/backup.js +1 -1
  172. package/es2021.en/plugins/backup/backup.min.js +1 -1
  173. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  174. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  175. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  176. package/es2021.en/plugins/change-case/change-case.js +1 -1
  177. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  178. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  179. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  180. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  181. package/es2021.en/plugins/emoji/emoji.css +1 -1
  182. package/es2021.en/plugins/emoji/emoji.js +1 -1
  183. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  184. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  185. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  186. package/es2021.en/plugins/finder/finder.css +1 -1
  187. package/es2021.en/plugins/finder/finder.js +1 -1
  188. package/es2021.en/plugins/finder/finder.min.js +1 -1
  189. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  190. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  191. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  192. package/es2021.en/plugins/google-search/google-search.js +1 -1
  193. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  194. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  195. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  196. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  197. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  198. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  199. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  200. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  201. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  202. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  203. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  204. package/es2021.en/plugins/page-break/page-break.js +1 -1
  205. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  206. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  207. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  208. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  209. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  210. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  211. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  212. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  213. package/es2021.en/plugins/style/style.css +1 -1
  214. package/es2021.en/plugins/style/style.js +1 -1
  215. package/es2021.en/plugins/style/style.min.js +1 -1
  216. package/es2021.en/plugins/templates/templates.css +1 -1
  217. package/es2021.en/plugins/templates/templates.js +1 -1
  218. package/es2021.en/plugins/templates/templates.min.js +1 -1
  219. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  220. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  221. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  222. package/es2021.en/plugins/translate/translate.css +1 -1
  223. package/es2021.en/plugins/translate/translate.js +1 -1
  224. package/es2021.en/plugins/translate/translate.min.js +1 -1
  225. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  226. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  227. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  228. package/es5/jodit.css +2 -2
  229. package/es5/jodit.fat.min.js +2 -2
  230. package/es5/jodit.js +184 -34
  231. package/es5/jodit.min.css +2 -2
  232. package/es5/jodit.min.js +2 -2
  233. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  234. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  235. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  236. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  237. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  238. package/es5/plugins/backup/backup.css +1 -1
  239. package/es5/plugins/backup/backup.js +1 -1
  240. package/es5/plugins/backup/backup.min.js +1 -1
  241. package/es5/plugins/button-generator/button-generator.css +1 -1
  242. package/es5/plugins/button-generator/button-generator.js +1 -1
  243. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  244. package/es5/plugins/change-case/change-case.js +1 -1
  245. package/es5/plugins/change-case/change-case.min.js +1 -1
  246. package/es5/plugins/color-picker/color-picker.css +1 -1
  247. package/es5/plugins/color-picker/color-picker.js +1 -1
  248. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  249. package/es5/plugins/emoji/emoji.css +1 -1
  250. package/es5/plugins/emoji/emoji.js +1 -1
  251. package/es5/plugins/emoji/emoji.min.js +1 -1
  252. package/es5/plugins/export-docs/export-docs.js +1 -1
  253. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  254. package/es5/plugins/finder/finder.css +1 -1
  255. package/es5/plugins/finder/finder.js +1 -1
  256. package/es5/plugins/finder/finder.min.js +1 -1
  257. package/es5/plugins/google-maps/google-maps.css +1 -1
  258. package/es5/plugins/google-maps/google-maps.js +1 -1
  259. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  260. package/es5/plugins/google-search/google-search.js +1 -1
  261. package/es5/plugins/google-search/google-search.min.js +1 -1
  262. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  263. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  264. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  265. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  266. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  267. package/es5/plugins/keyboard/keyboard.css +1 -1
  268. package/es5/plugins/keyboard/keyboard.js +1 -1
  269. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  270. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  271. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  272. package/es5/plugins/page-break/page-break.js +1 -1
  273. package/es5/plugins/page-break/page-break.min.js +1 -1
  274. package/es5/plugins/paste-code/paste-code.css +1 -1
  275. package/es5/plugins/paste-code/paste-code.js +1 -1
  276. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  277. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  278. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  279. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  280. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  281. package/es5/plugins/style/style.css +1 -1
  282. package/es5/plugins/style/style.js +1 -1
  283. package/es5/plugins/style/style.min.js +1 -1
  284. package/es5/plugins/templates/templates.css +1 -1
  285. package/es5/plugins/templates/templates.js +1 -1
  286. package/es5/plugins/templates/templates.min.js +1 -1
  287. package/es5/plugins/todo-list/todo-list.css +1 -1
  288. package/es5/plugins/todo-list/todo-list.js +1 -1
  289. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  290. package/es5/plugins/translate/translate.css +1 -1
  291. package/es5/plugins/translate/translate.js +1 -1
  292. package/es5/plugins/translate/translate.min.js +1 -1
  293. package/es5/plugins/tune-block/tune-block.css +1 -1
  294. package/es5/plugins/tune-block/tune-block.js +1 -1
  295. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  296. package/es5/polyfills.fat.min.js +1 -1
  297. package/es5/polyfills.js +1 -1
  298. package/es5/polyfills.min.js +1 -1
  299. package/package.json +1 -1
package/es5/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.12.21
4
+ * Version: v4.12.23
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -2258,7 +2258,7 @@ function _unsupported_iterable_to_array(o, minLen) {
2258
2258
  if (n === "Map" || n === "Set") return Array.from(n);
2259
2259
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2260
2260
  }
2261
- var APP_VERSION = "4.12.21";
2261
+ var APP_VERSION = "4.12.23";
2262
2262
  // prettier-ignore
2263
2263
  var ES = "es5";
2264
2264
  var IS_ES_MODERN = false;
@@ -9465,6 +9465,18 @@ function _unsupported_iterable_to_array(o, minLen) {
9465
9465
 
9466
9466
 
9467
9467
 
9468
+ /**
9469
+ * Keys that must never be copied from a (potentially untrusted) config object —
9470
+ * assigning them during a recursive merge can reach and mutate
9471
+ * `Object.prototype` (prototype pollution, CWE-1321).
9472
+ */ var UNSAFE_PROTO_KEYS = [
9473
+ '__proto__',
9474
+ 'constructor',
9475
+ 'prototype'
9476
+ ];
9477
+ function isUnsafeProtoKey(key) {
9478
+ return UNSAFE_PROTO_KEYS.indexOf(key) !== -1;
9479
+ }
9468
9480
  /**
9469
9481
  * @example
9470
9482
  * ```js
@@ -9514,6 +9526,9 @@ function _unsupported_iterable_to_array(o, minLen) {
9514
9526
  }
9515
9527
  var newOpt = {};
9516
9528
  Object.keys(options).forEach(function(key) {
9529
+ if (isUnsafeProtoKey(key)) {
9530
+ return;
9531
+ }
9517
9532
  var opt = options[key], protoKey = proto ? proto[key] : null;
9518
9533
  if ((0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(opt) && (0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(protoKey) && !(0,_extend_js__WEBPACK_IMPORTED_MODULE_5__.isAtom)(opt)) {
9519
9534
  newOpt[key] = ConfigProto(opt, protoKey, deep + 1);
@@ -9572,6 +9587,9 @@ function ConfigFlatten(obj) {
9572
9587
  * @see {@link ConfigProto} for the prototype-chain variant used at editor creation time
9573
9588
  */ function ConfigMerge(target, source) {
9574
9589
  Object.keys(source).forEach(function(key) {
9590
+ if (isUnsafeProtoKey(key)) {
9591
+ return;
9592
+ }
9575
9593
  var srcVal = source[key];
9576
9594
  var tgtVal = target[key];
9577
9595
  if ((0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(srcVal) && (0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(tgtVal) && !(0,_extend_js__WEBPACK_IMPORTED_MODULE_5__.isAtom)(srcVal)) {
@@ -46193,7 +46211,11 @@ function filterStyleProperties(style, allowed) {
46193
46211
  if (!jodit.o.cleanHTML.removeEmptyElements) {
46194
46212
  return false;
46195
46213
  }
46196
- return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && node.nodeName.match(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE) != null && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTemporary(node) && (0,_core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_2__.trimInv)(node.innerHTML).length === 0 && (current == null || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, current));
46214
+ // Never drop an empty inline element that currently holds the caret it is
46215
+ // a pending-format marker the user is about to type into (#1291). `current`
46216
+ // is captured before a click moves the caret, so also check the live caret.
46217
+ var liveCaret = jodit.s.isCollapsed() ? jodit.s.range.startContainer : null;
46218
+ return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && node.nodeName.match(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE) != null && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTemporary(node) && (0,_core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_2__.trimInv)(node.innerHTML).length === 0 && (current == null || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, current)) && (liveCaret == null || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, liveCaret));
46197
46219
  }
46198
46220
 
46199
46221
 
@@ -47681,6 +47703,9 @@ var DragState;
47681
47703
  this.dragList = this.j.o.draggableTags ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.splitArray)(this.j.o.draggableTags).filter(Boolean).map(function(item) {
47682
47704
  return item.toLowerCase();
47683
47705
  }) : [];
47706
+ // Allow another plugin (e.g. a drag handle/anchor) to start dragging
47707
+ // an element programmatically, regardless of the `draggableTags` list.
47708
+ this.j.e.on('startDragElement', this.onStartDragElement);
47684
47709
  if (!this.dragList.length) {
47685
47710
  return;
47686
47711
  }
@@ -47689,6 +47714,28 @@ var DragState;
47689
47714
  },
47690
47715
  {
47691
47716
  /**
47717
+ * Start dragging a specific element programmatically.
47718
+ *
47719
+ * Allows a separate UI element (for example a drag handle/anchor shown next
47720
+ * to a block) to initiate the drag without the user pressing directly on the
47721
+ * draggable element itself.
47722
+ *
47723
+ * @example
47724
+ * ```js
47725
+ * handle.addEventListener('mousedown', e => {
47726
+ * editor.e.fire('startDragElement', preBlock, e);
47727
+ * });
47728
+ * ```
47729
+ */ key: "onStartDragElement",
47730
+ value: function onStartDragElement(element, event) {
47731
+ if (this.isInDestruct || this.state > DragState.IDLE || !element) {
47732
+ return;
47733
+ }
47734
+ this.startDragging(element, event);
47735
+ }
47736
+ },
47737
+ {
47738
+ /**
47692
47739
  * Drag start handler
47693
47740
  */ key: "onDragStart",
47694
47741
  value: function onDragStart(event) {
@@ -47713,11 +47760,21 @@ var DragState;
47713
47760
  if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(lastTarget.parentElement, 'a') && lastTarget.parentElement.firstChild === lastTarget && lastTarget.parentElement.lastChild === lastTarget) {
47714
47761
  lastTarget = lastTarget.parentElement;
47715
47762
  }
47763
+ this.startDragging(lastTarget, event);
47764
+ }
47765
+ },
47766
+ {
47767
+ /**
47768
+ * Prepare the ghost element and switch to the waiting state.
47769
+ * Shared by the native mousedown handler and the programmatic
47770
+ * `startDragElement` event handler.
47771
+ */ key: "startDragging",
47772
+ value: function startDragging(target, event) {
47716
47773
  this.startX = event.clientX;
47717
47774
  this.startY = event.clientY;
47718
47775
  this.isCopyMode = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.ctrlKey)(event); // we can move only element from editor
47719
- this.draggable = lastTarget.cloneNode(true);
47720
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target', lastTarget);
47776
+ this.draggable = target.cloneNode(true);
47777
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target', target);
47721
47778
  this.state = DragState.WAIT_DRAGGING;
47722
47779
  this.addDragListeners();
47723
47780
  }
@@ -47796,6 +47853,18 @@ var DragState;
47796
47853
  }
47797
47854
  var parentElement = fragment.parentElement;
47798
47855
  this.j.s.insertNode(fragment, true, false);
47856
+ // Dropping a non-editable block (e.g. a `<pre>` code sample) can leave an
47857
+ // invisible filler text node beside it. Remove it so the drop does not
47858
+ // introduce a stray empty line (which clean-html would otherwise strip
47859
+ // later, causing a flash).
47860
+ [
47861
+ fragment.previousSibling,
47862
+ fragment.nextSibling
47863
+ ].forEach(function(node) {
47864
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(node)) {
47865
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
47866
+ }
47867
+ });
47799
47868
  if (parentElement && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(parentElement) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell(parentElement)) {
47800
47869
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(parentElement);
47801
47870
  }
@@ -47831,13 +47900,16 @@ var DragState;
47831
47900
  /** @override */ key: "beforeDestruct",
47832
47901
  value: function beforeDestruct() {
47833
47902
  this.onDragEnd();
47834
- this.j.e.off('mousedown dragstart', this.onDragStart);
47903
+ this.j.e.off('mousedown dragstart', this.onDragStart).off('startDragElement', this.onStartDragElement);
47835
47904
  this.removeDragListeners();
47836
47905
  }
47837
47906
  }
47838
47907
  ]);
47839
47908
  return dragAndDropElement;
47840
47909
  }(_wrap_native_super(_core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin));
47910
+ __decorate([
47911
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
47912
+ ], dragAndDropElement.prototype, "onStartDragElement", null);
47841
47913
  __decorate([
47842
47914
  _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
47843
47915
  ], dragAndDropElement.prototype, "onDragStart", null);
@@ -48802,18 +48874,24 @@ function _is_native_reflect_construct() {
48802
48874
  {
48803
48875
  key: "onEnterKeyDown",
48804
48876
  value: function onEnterKeyDown(event) {
48877
+ var _this = this;
48805
48878
  if (event.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER) {
48806
48879
  var editor = this.j;
48807
48880
  var beforeEnter = editor.e.fire('beforeEnter', event);
48808
48881
  if (beforeEnter !== undefined) {
48809
48882
  return beforeEnter;
48810
48883
  }
48811
- if (!editor.s.isCollapsed()) {
48812
- editor.execCommand('Delete');
48813
- }
48814
- editor.s.focus();
48815
- this.onEnter(event);
48816
- editor.e.fire('afterEnter', event);
48884
+ // Delete-of-selection + new block must be a single history step,
48885
+ // otherwise pressing Enter over a selection needs two Ctrl+Z to undo
48886
+ // (the first only reverts to the intermediate empty state). #1292
48887
+ editor.history.snapshot.transaction(function() {
48888
+ if (!editor.s.isCollapsed()) {
48889
+ editor.execCommand('Delete');
48890
+ }
48891
+ editor.s.focus();
48892
+ _this.onEnter(event);
48893
+ editor.e.fire('afterEnter', event);
48894
+ });
48817
48895
  editor.synchronizeValues(); // fire change
48818
48896
  return false;
48819
48897
  }
@@ -64062,13 +64140,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
64062
64140
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
64063
64141
 
64064
64142
  /* unused harmony export select */
64065
- /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
64066
- /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
64067
- /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
64068
- /* harmony import */ var _core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(87058);
64069
- /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50911);
64070
- /* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(67510);
64071
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67215);
64143
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
64144
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
64145
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2748);
64146
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
64147
+ /* harmony import */ var _core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(87058);
64148
+ /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
64149
+ /* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67510);
64150
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(67215);
64072
64151
  function _assert_this_initialized(self) {
64073
64152
  if (self === void 0) {
64074
64153
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -64205,6 +64284,7 @@ function _is_native_reflect_construct() {
64205
64284
 
64206
64285
 
64207
64286
 
64287
+
64208
64288
  /**
64209
64289
  * A utility plugin that allows you to subscribe to a click/mousedown/touchstart/mouseup on an element in DOM order
64210
64290
  *
@@ -64256,7 +64336,7 @@ function _is_native_reflect_construct() {
64256
64336
  var j = this.j;
64257
64337
  var result, target = e.target;
64258
64338
  while(result === undefined && target && target !== j.editor){
64259
- result = j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_3__.camelCase)(e.type + '_' + target.nodeName.toLowerCase()), target, e);
64339
+ result = j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_4__.camelCase)(e.type + '_' + target.nodeName.toLowerCase()), target, e);
64260
64340
  target = target.parentElement;
64261
64341
  }
64262
64342
  if (e.type === 'click' && result === undefined && target === j.editor) {
@@ -64271,12 +64351,12 @@ function _is_native_reflect_construct() {
64271
64351
  value: function onOutsideClick(e) {
64272
64352
  var _this = this;
64273
64353
  var node = e.target;
64274
- if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.up(node, function(elm) {
64354
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.up(node, function(elm) {
64275
64355
  return elm === _this.j.editor;
64276
64356
  })) {
64277
64357
  return;
64278
64358
  }
64279
- var box = _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__.UIElement.closestElement(node, _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__.Popup);
64359
+ var box = _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.UIElement.closestElement(node, _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.Popup);
64280
64360
  if (!box) {
64281
64361
  this.j.e.fire('outsideClick', e);
64282
64362
  }
@@ -64288,7 +64368,7 @@ function _is_native_reflect_construct() {
64288
64368
  var s = this.j.s;
64289
64369
  if (!s.isCollapsed()) {
64290
64370
  var current = s.current();
64291
- if (current && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(this.j.editor, current)) {
64371
+ if (current && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(this.j.editor, current)) {
64292
64372
  this.onCopyNormalizeSelectionBound();
64293
64373
  }
64294
64374
  }
@@ -64306,6 +64386,66 @@ function _is_native_reflect_construct() {
64306
64386
  },
64307
64387
  {
64308
64388
  /**
64389
+ * Fix caret position when clicking to the right of a list item that has a
64390
+ * nested list. Blink/WebKit place the caret at the start of the line instead
64391
+ * of the end (#1296); move it to the end of the item's own text.
64392
+ */ key: "onClickRightOfNestedListItem",
64393
+ value: function onClickRightOfNestedListItem(e) {
64394
+ var s = this.j.s;
64395
+ var range = s.range;
64396
+ if (!range.collapsed || range.startOffset !== 0 || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(range.startContainer)) {
64397
+ return;
64398
+ }
64399
+ var text = range.startContainer;
64400
+ var li = text.parentNode;
64401
+ // The text must be the direct content of a list item that has a nested
64402
+ // list (the last level has no nested list and behaves correctly).
64403
+ if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(li, 'li') || !(li.querySelector('ul') || li.querySelector('ol'))) {
64404
+ return;
64405
+ }
64406
+ var measure = this.j.ed.createRange();
64407
+ measure.selectNodeContents(text);
64408
+ var rect = measure.getBoundingClientRect();
64409
+ // Only when the click happened to the right of the text.
64410
+ if (e.clientX > rect.right) {
64411
+ s.setCursorAfter(text);
64412
+ }
64413
+ }
64414
+ },
64415
+ {
64416
+ /**
64417
+ * Keep pending inline formatting after a click. Toggling Bold/Italic/etc. on
64418
+ * a collapsed cursor leaves empty marker elements with the caret inside; a
64419
+ * click puts the caret right before them (outside), so they get cleaned up
64420
+ * and the formatting is lost. Move the caret back into the innermost marker
64421
+ * so the next typed character keeps every pending format (#1291).
64422
+ */ key: "onClickKeepPendingFormat",
64423
+ value: function onClickKeepPendingFormat() {
64424
+ var _a, _b;
64425
+ var s = this.j.s;
64426
+ var range = s.range;
64427
+ if (!range.collapsed || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(range.startContainer)) {
64428
+ return;
64429
+ }
64430
+ var text = range.startContainer;
64431
+ // Caret must sit at the very end of the text, right before the markers.
64432
+ if (range.startOffset !== ((_b = (_a = text.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0)) {
64433
+ return;
64434
+ }
64435
+ var marker = text.nextSibling;
64436
+ if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(marker) || !marker.nodeName.match(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isEmpty(marker)) {
64437
+ return;
64438
+ }
64439
+ var inner = marker;
64440
+ // Descend into the innermost empty formatting marker.
64441
+ while(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(inner.firstElementChild) && inner.firstElementChild.nodeName.match(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE)){
64442
+ inner = inner.firstElementChild;
64443
+ }
64444
+ s.setCursorIn(inner);
64445
+ }
64446
+ },
64447
+ {
64448
+ /**
64309
64449
  * Normalize selection after triple click
64310
64450
  */ key: "onTripleClickNormalizeSelection",
64311
64451
  value: function onTripleClickNormalizeSelection(e) {
@@ -64314,8 +64454,8 @@ function _is_native_reflect_construct() {
64314
64454
  }
64315
64455
  var s = this.j.s;
64316
64456
  var _s_range = s.range, startContainer = _s_range.startContainer, startOffset = _s_range.startOffset;
64317
- if (startOffset === 0 && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(startContainer)) {
64318
- s.select(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(startContainer, _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, this.j.editor) || startContainer, true);
64457
+ if (startOffset === 0 && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(startContainer)) {
64458
+ s.select(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(startContainer, _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isBlock, this.j.editor) || startContainer, true);
64319
64459
  }
64320
64460
  }
64321
64461
  },
@@ -64326,7 +64466,7 @@ function _is_native_reflect_construct() {
64326
64466
  if (!o.select.normalizeSelectionBeforeCutAndCopy || s.isCollapsed()) {
64327
64467
  return;
64328
64468
  }
64329
- if (e && (!e.isTrusted || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isNode(e.target) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(editor, e.target))) {
64469
+ if (e && (!e.isTrusted || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isNode(e.target) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(editor, e.target))) {
64330
64470
  return;
64331
64471
  }
64332
64472
  this.jodit.s.expandSelection();
@@ -64334,35 +64474,45 @@ function _is_native_reflect_construct() {
64334
64474
  }
64335
64475
  ]);
64336
64476
  return select;
64337
- }(_wrap_native_super(_core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin));
64477
+ }(_wrap_native_super(_core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin));
64338
64478
  __decorate([
64339
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
64479
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
64340
64480
  ], select.prototype, "onStartSelection", null);
64341
64481
  __decorate([
64342
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)('ow:click')
64482
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)('ow:click')
64343
64483
  ], select.prototype, "onOutsideClick", null);
64344
64484
  __decorate([
64345
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)([
64485
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
64346
64486
  ':beforeCommandCut'
64347
64487
  ])
64348
64488
  ], select.prototype, "beforeCommandCut", null);
64349
64489
  __decorate([
64350
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)([
64490
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
64351
64491
  ':beforeCommandSelectall'
64352
64492
  ])
64353
64493
  ], select.prototype, "beforeCommandSelectAll", null);
64354
64494
  __decorate([
64355
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)([
64495
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
64496
+ ':click'
64497
+ ])
64498
+ ], select.prototype, "onClickRightOfNestedListItem", null);
64499
+ __decorate([
64500
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
64501
+ ':click'
64502
+ ])
64503
+ ], select.prototype, "onClickKeepPendingFormat", null);
64504
+ __decorate([
64505
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
64356
64506
  ':click'
64357
64507
  ])
64358
64508
  ], select.prototype, "onTripleClickNormalizeSelection", null);
64359
64509
  __decorate([
64360
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)([
64510
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
64361
64511
  ':copy',
64362
64512
  ':cut'
64363
64513
  ])
64364
64514
  ], select.prototype, "onCopyNormalizeSelectionBound", null);
64365
- _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('select', select);
64515
+ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('select', select);
64366
64516
 
64367
64517
 
64368
64518
  /***/ }),
package/es5/jodit.min.css CHANGED
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.12.21
4
+ * Version: v4.12.23
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
8
8
  /*!
9
9
  * jodit-pro - PRO Version of Jodit Editor
10
10
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
11
- * Version: v4.12.21
11
+ * Version: v4.12.23
12
12
  * Url: https://xdsoft.net/jodit/pro/
13
13
  * License(s): SEE LICENSE IN LICENSE.md
14
14
  */