jodit-pro 4.12.22 → 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 +144 -37
  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 +144 -37
  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 +144 -37
  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 +154 -37
  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/es2015/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.22
4
+ * Version: v4.12.23
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1797,7 +1797,7 @@ __webpack_require__.r(__webpack_exports__);
1797
1797
  * ```
1798
1798
  * @packageDocumentation
1799
1799
  * @module constants
1800
- */ const APP_VERSION = "4.12.22";
1800
+ */ const APP_VERSION = "4.12.23";
1801
1801
  // prettier-ignore
1802
1802
  const ES = "es2015";
1803
1803
  const IS_ES_MODERN = true;
@@ -7537,6 +7537,18 @@ const completeUrl = (url)=>{
7537
7537
 
7538
7538
 
7539
7539
 
7540
+ /**
7541
+ * Keys that must never be copied from a (potentially untrusted) config object —
7542
+ * assigning them during a recursive merge can reach and mutate
7543
+ * `Object.prototype` (prototype pollution, CWE-1321).
7544
+ */ const UNSAFE_PROTO_KEYS = [
7545
+ '__proto__',
7546
+ 'constructor',
7547
+ 'prototype'
7548
+ ];
7549
+ function isUnsafeProtoKey(key) {
7550
+ return UNSAFE_PROTO_KEYS.indexOf(key) !== -1;
7551
+ }
7540
7552
  /**
7541
7553
  * @example
7542
7554
  * ```js
@@ -7585,6 +7597,9 @@ const completeUrl = (url)=>{
7585
7597
  }
7586
7598
  const newOpt = {};
7587
7599
  Object.keys(options).forEach((key)=>{
7600
+ if (isUnsafeProtoKey(key)) {
7601
+ return;
7602
+ }
7588
7603
  const opt = options[key], protoKey = proto ? proto[key] : null;
7589
7604
  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)) {
7590
7605
  newOpt[key] = ConfigProto(opt, protoKey, deep + 1);
@@ -7646,6 +7661,9 @@ function ConfigFlatten(obj) {
7646
7661
  * @see {@link ConfigProto} for the prototype-chain variant used at editor creation time
7647
7662
  */ function ConfigMerge(target, source) {
7648
7663
  Object.keys(source).forEach((key)=>{
7664
+ if (isUnsafeProtoKey(key)) {
7665
+ return;
7666
+ }
7649
7667
  const srcVal = source[key];
7650
7668
  const tgtVal = target[key];
7651
7669
  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)) {
@@ -33942,7 +33960,11 @@ function filterStyleProperties(style, allowed) {
33942
33960
  if (!jodit.o.cleanHTML.removeEmptyElements) {
33943
33961
  return false;
33944
33962
  }
33945
- 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));
33963
+ // Never drop an empty inline element that currently holds the caret it is
33964
+ // a pending-format marker the user is about to type into (#1291). `current`
33965
+ // is captured before a click moves the caret, so also check the live caret.
33966
+ const liveCaret = jodit.s.isCollapsed() ? jodit.s.range.startContainer : null;
33967
+ 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));
33946
33968
  }
33947
33969
 
33948
33970
 
@@ -35075,11 +35097,33 @@ var DragState;
35075
35097
  */ class dragAndDropElement extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
35076
35098
  /** @override */ afterInit() {
35077
35099
  this.dragList = this.j.o.draggableTags ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.splitArray)(this.j.o.draggableTags).filter(Boolean).map((item)=>item.toLowerCase()) : [];
35100
+ // Allow another plugin (e.g. a drag handle/anchor) to start dragging
35101
+ // an element programmatically, regardless of the `draggableTags` list.
35102
+ this.j.e.on('startDragElement', this.onStartDragElement);
35078
35103
  if (!this.dragList.length) {
35079
35104
  return;
35080
35105
  }
35081
35106
  this.j.e.on('mousedown dragstart', this.onDragStart);
35082
35107
  }
35108
+ /**
35109
+ * Start dragging a specific element programmatically.
35110
+ *
35111
+ * Allows a separate UI element (for example a drag handle/anchor shown next
35112
+ * to a block) to initiate the drag without the user pressing directly on the
35113
+ * draggable element itself.
35114
+ *
35115
+ * @example
35116
+ * ```js
35117
+ * handle.addEventListener('mousedown', e => {
35118
+ * editor.e.fire('startDragElement', preBlock, e);
35119
+ * });
35120
+ * ```
35121
+ */ onStartDragElement(element, event) {
35122
+ if (this.isInDestruct || this.state > DragState.IDLE || !element) {
35123
+ return;
35124
+ }
35125
+ this.startDragging(element, event);
35126
+ }
35083
35127
  /**
35084
35128
  * Drag start handler
35085
35129
  */ onDragStart(event) {
@@ -35101,11 +35145,18 @@ var DragState;
35101
35145
  if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(lastTarget.parentElement, 'a') && lastTarget.parentElement.firstChild === lastTarget && lastTarget.parentElement.lastChild === lastTarget) {
35102
35146
  lastTarget = lastTarget.parentElement;
35103
35147
  }
35148
+ this.startDragging(lastTarget, event);
35149
+ }
35150
+ /**
35151
+ * Prepare the ghost element and switch to the waiting state.
35152
+ * Shared by the native mousedown handler and the programmatic
35153
+ * `startDragElement` event handler.
35154
+ */ startDragging(target, event) {
35104
35155
  this.startX = event.clientX;
35105
35156
  this.startY = event.clientY;
35106
35157
  this.isCopyMode = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.ctrlKey)(event); // we can move only element from editor
35107
- this.draggable = lastTarget.cloneNode(true);
35108
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target', lastTarget);
35158
+ this.draggable = target.cloneNode(true);
35159
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target', target);
35109
35160
  this.state = DragState.WAIT_DRAGGING;
35110
35161
  this.addDragListeners();
35111
35162
  }
@@ -35175,6 +35226,18 @@ var DragState;
35175
35226
  }
35176
35227
  const { parentElement } = fragment;
35177
35228
  this.j.s.insertNode(fragment, true, false);
35229
+ // Dropping a non-editable block (e.g. a `<pre>` code sample) can leave an
35230
+ // invisible filler text node beside it. Remove it so the drop does not
35231
+ // introduce a stray empty line (which clean-html would otherwise strip
35232
+ // later, causing a flash).
35233
+ [
35234
+ fragment.previousSibling,
35235
+ fragment.nextSibling
35236
+ ].forEach((node)=>{
35237
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(node)) {
35238
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
35239
+ }
35240
+ });
35178
35241
  if (parentElement && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(parentElement) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell(parentElement)) {
35179
35242
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(parentElement);
35180
35243
  }
@@ -35201,7 +35264,7 @@ var DragState;
35201
35264
  }
35202
35265
  /** @override */ beforeDestruct() {
35203
35266
  this.onDragEnd();
35204
- this.j.e.off('mousedown dragstart', this.onDragStart);
35267
+ this.j.e.off('mousedown dragstart', this.onDragStart).off('startDragElement', this.onStartDragElement);
35205
35268
  this.removeDragListeners();
35206
35269
  }
35207
35270
  constructor(){
@@ -35217,6 +35280,9 @@ var DragState;
35217
35280
  this.state = DragState.IDLE;
35218
35281
  }
35219
35282
  }
35283
+ __decorate([
35284
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
35285
+ ], dragAndDropElement.prototype, "onStartDragElement", null);
35220
35286
  __decorate([
35221
35287
  _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
35222
35288
  ], dragAndDropElement.prototype, "onDragStart", null);
@@ -35703,12 +35769,17 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('dtd', dtd);
35703
35769
  if (beforeEnter !== undefined) {
35704
35770
  return beforeEnter;
35705
35771
  }
35706
- if (!editor.s.isCollapsed()) {
35707
- editor.execCommand('Delete');
35708
- }
35709
- editor.s.focus();
35710
- this.onEnter(event);
35711
- editor.e.fire('afterEnter', event);
35772
+ // Delete-of-selection + new block must be a single history step,
35773
+ // otherwise pressing Enter over a selection needs two Ctrl+Z to undo
35774
+ // (the first only reverts to the intermediate empty state). #1292
35775
+ editor.history.snapshot.transaction(()=>{
35776
+ if (!editor.s.isCollapsed()) {
35777
+ editor.execCommand('Delete');
35778
+ }
35779
+ editor.s.focus();
35780
+ this.onEnter(event);
35781
+ editor.e.fire('afterEnter', event);
35782
+ });
35712
35783
  editor.synchronizeValues(); // fire change
35713
35784
  return false;
35714
35785
  }
@@ -45479,13 +45550,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45479
45550
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
45480
45551
 
45481
45552
  /* unused harmony export select */
45482
- /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
45483
- /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
45484
- /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
45485
- /* harmony import */ var _core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(87058);
45486
- /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50911);
45487
- /* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(67510);
45488
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67215);
45553
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
45554
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
45555
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2748);
45556
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
45557
+ /* harmony import */ var _core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(87058);
45558
+ /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
45559
+ /* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67510);
45560
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(67215);
45489
45561
  /*!
45490
45562
  * Jodit Editor (https://xdsoft.net/jodit/)
45491
45563
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -45503,6 +45575,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45503
45575
 
45504
45576
 
45505
45577
 
45578
+
45506
45579
  /**
45507
45580
  * A utility plugin that allows you to subscribe to a click/mousedown/touchstart/mouseup on an element in DOM order
45508
45581
  *
@@ -45513,7 +45586,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45513
45586
  * console.log(img.src);
45514
45587
  * })
45515
45588
  * ```
45516
- */ class select extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
45589
+ */ class select extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
45517
45590
  afterInit(jodit) {
45518
45591
  this.proxyEventsList.forEach((eventName)=>{
45519
45592
  jodit.e.on(eventName + '.select', this.onStartSelection);
@@ -45528,7 +45601,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45528
45601
  const { j } = this;
45529
45602
  let result, target = e.target;
45530
45603
  while(result === undefined && target && target !== j.editor){
45531
- result = j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_3__.camelCase)(e.type + '_' + target.nodeName.toLowerCase()), target, e);
45604
+ result = j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_4__.camelCase)(e.type + '_' + target.nodeName.toLowerCase()), target, e);
45532
45605
  target = target.parentElement;
45533
45606
  }
45534
45607
  if (e.type === 'click' && result === undefined && target === j.editor) {
@@ -45539,10 +45612,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45539
45612
  * @event outsideClick(e) - when user clicked on the outside of editor
45540
45613
  */ onOutsideClick(e) {
45541
45614
  const node = e.target;
45542
- if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.up(node, (elm)=>elm === this.j.editor)) {
45615
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.up(node, (elm)=>elm === this.j.editor)) {
45543
45616
  return;
45544
45617
  }
45545
- const box = _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__.UIElement.closestElement(node, _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__.Popup);
45618
+ const box = _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.UIElement.closestElement(node, _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.Popup);
45546
45619
  if (!box) {
45547
45620
  this.j.e.fire('outsideClick', e);
45548
45621
  }
@@ -45551,7 +45624,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45551
45624
  const { s } = this.j;
45552
45625
  if (!s.isCollapsed()) {
45553
45626
  const current = s.current();
45554
- if (current && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(this.j.editor, current)) {
45627
+ if (current && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(this.j.editor, current)) {
45555
45628
  this.onCopyNormalizeSelectionBound();
45556
45629
  }
45557
45630
  }
@@ -45570,14 +45643,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45570
45643
  */ onClickRightOfNestedListItem(e) {
45571
45644
  const { s } = this.j;
45572
45645
  const range = s.range;
45573
- if (!range.collapsed || range.startOffset !== 0 || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(range.startContainer)) {
45646
+ if (!range.collapsed || range.startOffset !== 0 || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(range.startContainer)) {
45574
45647
  return;
45575
45648
  }
45576
45649
  const text = range.startContainer;
45577
45650
  const li = text.parentNode;
45578
45651
  // The text must be the direct content of a list item that has a nested
45579
45652
  // list (the last level has no nested list and behaves correctly).
45580
- if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(li, 'li') || !(li.querySelector('ul') || li.querySelector('ol'))) {
45653
+ if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(li, 'li') || !(li.querySelector('ul') || li.querySelector('ol'))) {
45581
45654
  return;
45582
45655
  }
45583
45656
  const measure = this.j.ed.createRange();
@@ -45588,6 +45661,35 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45588
45661
  s.setCursorAfter(text);
45589
45662
  }
45590
45663
  }
45664
+ /**
45665
+ * Keep pending inline formatting after a click. Toggling Bold/Italic/etc. on
45666
+ * a collapsed cursor leaves empty marker elements with the caret inside; a
45667
+ * click puts the caret right before them (outside), so they get cleaned up
45668
+ * and the formatting is lost. Move the caret back into the innermost marker
45669
+ * so the next typed character keeps every pending format (#1291).
45670
+ */ onClickKeepPendingFormat() {
45671
+ var _a, _b;
45672
+ const { s } = this.j;
45673
+ const range = s.range;
45674
+ if (!range.collapsed || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(range.startContainer)) {
45675
+ return;
45676
+ }
45677
+ const text = range.startContainer;
45678
+ // Caret must sit at the very end of the text, right before the markers.
45679
+ if (range.startOffset !== ((_b = (_a = text.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0)) {
45680
+ return;
45681
+ }
45682
+ const marker = text.nextSibling;
45683
+ 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)) {
45684
+ return;
45685
+ }
45686
+ let inner = marker;
45687
+ // Descend into the innermost empty formatting marker.
45688
+ 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)){
45689
+ inner = inner.firstElementChild;
45690
+ }
45691
+ s.setCursorIn(inner);
45692
+ }
45591
45693
  /**
45592
45694
  * Normalize selection after triple click
45593
45695
  */ onTripleClickNormalizeSelection(e) {
@@ -45596,8 +45698,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45596
45698
  }
45597
45699
  const { s } = this.j;
45598
45700
  const { startContainer, startOffset } = s.range;
45599
- if (startOffset === 0 && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(startContainer)) {
45600
- 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);
45701
+ if (startOffset === 0 && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(startContainer)) {
45702
+ 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);
45601
45703
  }
45602
45704
  }
45603
45705
  onCopyNormalizeSelectionBound(e) {
@@ -45605,7 +45707,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45605
45707
  if (!o.select.normalizeSelectionBeforeCutAndCopy || s.isCollapsed()) {
45606
45708
  return;
45607
45709
  }
45608
- 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))) {
45710
+ 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))) {
45609
45711
  return;
45610
45712
  }
45611
45713
  this.jodit.s.expandSelection();
@@ -45622,38 +45724,43 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
45622
45724
  }
45623
45725
  }
45624
45726
  __decorate([
45625
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
45727
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
45626
45728
  ], select.prototype, "onStartSelection", null);
45627
45729
  __decorate([
45628
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)('ow:click')
45730
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)('ow:click')
45629
45731
  ], select.prototype, "onOutsideClick", null);
45630
45732
  __decorate([
45631
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)([
45733
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
45632
45734
  ':beforeCommandCut'
45633
45735
  ])
45634
45736
  ], select.prototype, "beforeCommandCut", null);
45635
45737
  __decorate([
45636
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)([
45738
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
45637
45739
  ':beforeCommandSelectall'
45638
45740
  ])
45639
45741
  ], select.prototype, "beforeCommandSelectAll", null);
45640
45742
  __decorate([
45641
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)([
45743
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
45642
45744
  ':click'
45643
45745
  ])
45644
45746
  ], select.prototype, "onClickRightOfNestedListItem", null);
45645
45747
  __decorate([
45646
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)([
45748
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
45749
+ ':click'
45750
+ ])
45751
+ ], select.prototype, "onClickKeepPendingFormat", null);
45752
+ __decorate([
45753
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
45647
45754
  ':click'
45648
45755
  ])
45649
45756
  ], select.prototype, "onTripleClickNormalizeSelection", null);
45650
45757
  __decorate([
45651
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)([
45758
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
45652
45759
  ':copy',
45653
45760
  ':cut'
45654
45761
  ])
45655
45762
  ], select.prototype, "onCopyNormalizeSelectionBound", null);
45656
- _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('select', select);
45763
+ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('select', select);
45657
45764
 
45658
45765
 
45659
45766
  /***/ }),