jodit-pro 1.3.39 → 2.0.0-beta.10

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 (455) hide show
  1. package/.nvmrc +1 -0
  2. package/CHANGELOG.md +982 -0
  3. package/LICENSE.txt +1 -0
  4. package/README.md +27 -27
  5. package/SECURITY.md +10 -0
  6. package/es2015/jodit.css +4945 -0
  7. package/es2015/jodit.fat.min.css +1 -0
  8. package/es2015/jodit.fat.min.js +10 -0
  9. package/es2015/jodit.js +42706 -0
  10. package/es2015/jodit.min.css +1 -0
  11. package/es2015/jodit.min.js +10 -0
  12. package/es2015/plugins/autocomplete/autocomplete.css +26 -0
  13. package/es2015/plugins/autocomplete/autocomplete.js +473 -0
  14. package/es2015/plugins/autocomplete/autocomplete.min.js +10 -0
  15. package/es2015/plugins/backup/backup.css +48 -0
  16. package/es2015/plugins/backup/backup.js +567 -0
  17. package/{build/plugins/backup/backup.css → es2015/plugins/backup/backup.min.css} +1 -1
  18. package/es2015/plugins/backup/backup.min.js +10 -0
  19. package/es2015/plugins/button-generator/button-generator.css +316 -0
  20. package/es2015/plugins/button-generator/button-generator.js +1363 -0
  21. package/es2015/plugins/button-generator/button-generator.min.css +1 -0
  22. package/es2015/plugins/button-generator/button-generator.min.js +10 -0
  23. package/es2015/plugins/change-case/change-case.js +171 -0
  24. package/es2015/plugins/change-case/change-case.min.js +10 -0
  25. package/es2015/plugins/color-picker/color-picker.css +133 -0
  26. package/es2015/plugins/color-picker/color-picker.js +519 -0
  27. package/es2015/plugins/color-picker/color-picker.min.css +1 -0
  28. package/es2015/plugins/color-picker/color-picker.min.js +10 -0
  29. package/es2015/plugins/emoji/emoji.css +108 -0
  30. package/es2015/plugins/emoji/emoji.js +421 -0
  31. package/es2015/plugins/emoji/emoji.min.css +1 -0
  32. package/es2015/plugins/emoji/emoji.min.js +10 -0
  33. package/es2015/plugins/export-docs/export-docs.js +153 -0
  34. package/es2015/plugins/export-docs/export-docs.min.js +10 -0
  35. package/es2015/plugins/finder/finder.css +1342 -0
  36. package/es2015/plugins/finder/finder.js +3175 -0
  37. package/es2015/plugins/finder/finder.min.css +1 -0
  38. package/es2015/plugins/finder/finder.min.js +10 -0
  39. package/es2015/plugins/google-maps/google-maps.css +397 -0
  40. package/es2015/plugins/google-maps/google-maps.js +2492 -0
  41. package/es2015/plugins/google-maps/google-maps.min.css +1 -0
  42. package/es2015/plugins/google-maps/google-maps.min.js +10 -0
  43. package/es2015/plugins/google-search/google-search.js +108 -0
  44. package/es2015/plugins/google-search/google-search.min.js +10 -0
  45. package/es2015/plugins/highlight-signature/highlight-signature.js +233 -0
  46. package/es2015/plugins/highlight-signature/highlight-signature.min.js +10 -0
  47. package/es2015/plugins/iframe-editor/iframe-editor.css +16 -0
  48. package/es2015/plugins/iframe-editor/iframe-editor.js +310 -0
  49. package/es2015/plugins/iframe-editor/iframe-editor.min.js +10 -0
  50. package/es2015/plugins/keyboard/keyboard.css +48 -0
  51. package/es2015/plugins/keyboard/keyboard.js +539 -0
  52. package/es2015/plugins/keyboard/keyboard.min.js +10 -0
  53. package/es2015/plugins/mobile-view/mobile-view.js +170 -0
  54. package/es2015/plugins/mobile-view/mobile-view.min.js +10 -0
  55. package/es2015/plugins/page-break/page-break.js +181 -0
  56. package/es2015/plugins/page-break/page-break.min.js +10 -0
  57. package/es2015/plugins/paste-code/paste-code.css +21 -0
  58. package/es2015/plugins/paste-code/paste-code.js +320 -0
  59. package/es2015/plugins/paste-code/paste-code.min.js +10 -0
  60. package/es2015/plugins/paste-from-word/paste-from-word.js +1541 -0
  61. package/es2015/plugins/paste-from-word/paste-from-word.min.js +10 -0
  62. package/es2015/plugins/show-blocks/show-blocks.js +645 -0
  63. package/es2015/plugins/show-blocks/show-blocks.min.js +10 -0
  64. package/es2015/plugins/todo-list/todo-list.css +77 -0
  65. package/es2015/plugins/todo-list/todo-list.js +314 -0
  66. package/es2015/plugins/todo-list/todo-list.min.css +1 -0
  67. package/es2015/plugins/todo-list/todo-list.min.js +10 -0
  68. package/es2015/plugins/translate/translate.css +91 -0
  69. package/es2015/plugins/translate/translate.js +630 -0
  70. package/es2015/plugins/translate/translate.min.js +10 -0
  71. package/es2015/plugins/tune-block/tune-block.css +37 -0
  72. package/es2015/plugins/tune-block/tune-block.js +387 -0
  73. package/{build/plugins/tune-block/tune-block.css → es2015/plugins/tune-block/tune-block.min.css} +1 -1
  74. package/es2015/plugins/tune-block/tune-block.min.js +10 -0
  75. package/es2018/jodit.css +4945 -0
  76. package/es2018/jodit.fat.min.css +1 -0
  77. package/es2018/jodit.fat.min.js +10 -0
  78. package/es2018/jodit.js +42762 -0
  79. package/es2018/jodit.min.css +1 -0
  80. package/es2018/jodit.min.js +10 -0
  81. package/es2018/plugins/autocomplete/autocomplete.css +26 -0
  82. package/es2018/plugins/autocomplete/autocomplete.js +471 -0
  83. package/es2018/plugins/autocomplete/autocomplete.min.js +10 -0
  84. package/es2018/plugins/backup/backup.css +48 -0
  85. package/es2018/plugins/backup/backup.js +561 -0
  86. package/{build/plugins/backup/backup.es5.css → es2018/plugins/backup/backup.min.css} +1 -1
  87. package/es2018/plugins/backup/backup.min.js +10 -0
  88. package/es2018/plugins/button-generator/button-generator.css +316 -0
  89. package/es2018/plugins/button-generator/button-generator.js +1387 -0
  90. package/es2018/plugins/button-generator/button-generator.min.css +1 -0
  91. package/es2018/plugins/button-generator/button-generator.min.js +10 -0
  92. package/es2018/plugins/change-case/change-case.js +171 -0
  93. package/es2018/plugins/change-case/change-case.min.js +10 -0
  94. package/es2018/plugins/color-picker/color-picker.css +133 -0
  95. package/es2018/plugins/color-picker/color-picker.js +519 -0
  96. package/es2018/plugins/color-picker/color-picker.min.css +1 -0
  97. package/es2018/plugins/color-picker/color-picker.min.js +10 -0
  98. package/es2018/plugins/emoji/emoji.css +108 -0
  99. package/es2018/plugins/emoji/emoji.js +425 -0
  100. package/es2018/plugins/emoji/emoji.min.css +1 -0
  101. package/es2018/plugins/emoji/emoji.min.js +10 -0
  102. package/es2018/plugins/export-docs/export-docs.js +157 -0
  103. package/es2018/plugins/export-docs/export-docs.min.js +10 -0
  104. package/es2018/plugins/finder/finder.css +1342 -0
  105. package/es2018/plugins/finder/finder.js +3160 -0
  106. package/es2018/plugins/finder/finder.min.css +1 -0
  107. package/es2018/plugins/finder/finder.min.js +10 -0
  108. package/es2018/plugins/google-maps/google-maps.css +397 -0
  109. package/es2018/plugins/google-maps/google-maps.js +2556 -0
  110. package/es2018/plugins/google-maps/google-maps.min.css +1 -0
  111. package/es2018/plugins/google-maps/google-maps.min.js +10 -0
  112. package/es2018/plugins/google-search/google-search.js +108 -0
  113. package/es2018/plugins/google-search/google-search.min.js +10 -0
  114. package/es2018/plugins/highlight-signature/highlight-signature.js +233 -0
  115. package/es2018/plugins/highlight-signature/highlight-signature.min.js +10 -0
  116. package/es2018/plugins/iframe-editor/iframe-editor.css +16 -0
  117. package/es2018/plugins/iframe-editor/iframe-editor.js +310 -0
  118. package/es2018/plugins/iframe-editor/iframe-editor.min.js +10 -0
  119. package/es2018/plugins/keyboard/keyboard.css +48 -0
  120. package/es2018/plugins/keyboard/keyboard.js +539 -0
  121. package/es2018/plugins/keyboard/keyboard.min.js +10 -0
  122. package/es2018/plugins/mobile-view/mobile-view.js +170 -0
  123. package/es2018/plugins/mobile-view/mobile-view.min.js +10 -0
  124. package/es2018/plugins/page-break/page-break.js +181 -0
  125. package/es2018/plugins/page-break/page-break.min.js +10 -0
  126. package/es2018/plugins/paste-code/paste-code.css +21 -0
  127. package/es2018/plugins/paste-code/paste-code.js +318 -0
  128. package/es2018/plugins/paste-code/paste-code.min.js +10 -0
  129. package/es2018/plugins/paste-from-word/paste-from-word.js +1541 -0
  130. package/es2018/plugins/paste-from-word/paste-from-word.min.js +10 -0
  131. package/es2018/plugins/show-blocks/show-blocks.js +645 -0
  132. package/es2018/plugins/show-blocks/show-blocks.min.js +10 -0
  133. package/es2018/plugins/todo-list/todo-list.css +77 -0
  134. package/es2018/plugins/todo-list/todo-list.js +314 -0
  135. package/es2018/plugins/todo-list/todo-list.min.css +1 -0
  136. package/es2018/plugins/todo-list/todo-list.min.js +10 -0
  137. package/es2018/plugins/translate/translate.css +91 -0
  138. package/es2018/plugins/translate/translate.js +639 -0
  139. package/es2018/plugins/translate/translate.min.js +10 -0
  140. package/es2018/plugins/tune-block/tune-block.css +37 -0
  141. package/es2018/plugins/tune-block/tune-block.js +387 -0
  142. package/{build/plugins/tune-block/tune-block.es5.css → es2018/plugins/tune-block/tune-block.min.css} +1 -1
  143. package/es2018/plugins/tune-block/tune-block.min.js +10 -0
  144. package/es2021/jodit.css +4945 -0
  145. package/es2021/jodit.fat.min.css +1 -0
  146. package/es2021/jodit.fat.min.js +10 -0
  147. package/es2021/jodit.js +42643 -0
  148. package/es2021/jodit.min.css +1 -0
  149. package/es2021/jodit.min.js +10 -0
  150. package/es2021/plugins/autocomplete/autocomplete.css +26 -0
  151. package/es2021/plugins/autocomplete/autocomplete.js +463 -0
  152. package/es2021/plugins/autocomplete/autocomplete.min.css +1 -0
  153. package/es2021/plugins/autocomplete/autocomplete.min.js +10 -0
  154. package/es2021/plugins/backup/backup.css +48 -0
  155. package/es2021/plugins/backup/backup.js +554 -0
  156. package/es2021/plugins/backup/backup.min.css +1 -0
  157. package/es2021/plugins/backup/backup.min.js +10 -0
  158. package/es2021/plugins/button-generator/button-generator.css +316 -0
  159. package/es2021/plugins/button-generator/button-generator.js +1382 -0
  160. package/es2021/plugins/button-generator/button-generator.min.css +1 -0
  161. package/es2021/plugins/button-generator/button-generator.min.js +10 -0
  162. package/es2021/plugins/change-case/change-case.js +171 -0
  163. package/es2021/plugins/change-case/change-case.min.js +10 -0
  164. package/es2021/plugins/color-picker/color-picker.css +133 -0
  165. package/es2021/plugins/color-picker/color-picker.js +517 -0
  166. package/es2021/plugins/color-picker/color-picker.min.css +1 -0
  167. package/es2021/plugins/color-picker/color-picker.min.js +10 -0
  168. package/es2021/plugins/emoji/emoji.css +108 -0
  169. package/es2021/plugins/emoji/emoji.js +425 -0
  170. package/es2021/plugins/emoji/emoji.min.css +1 -0
  171. package/es2021/plugins/emoji/emoji.min.js +10 -0
  172. package/es2021/plugins/export-docs/export-docs.js +156 -0
  173. package/es2021/plugins/export-docs/export-docs.min.js +10 -0
  174. package/es2021/plugins/finder/finder.css +1342 -0
  175. package/es2021/plugins/finder/finder.js +3152 -0
  176. package/es2021/plugins/finder/finder.min.css +1 -0
  177. package/es2021/plugins/finder/finder.min.js +10 -0
  178. package/es2021/plugins/google-maps/google-maps.css +397 -0
  179. package/es2021/plugins/google-maps/google-maps.js +2540 -0
  180. package/es2021/plugins/google-maps/google-maps.min.css +1 -0
  181. package/es2021/plugins/google-maps/google-maps.min.js +10 -0
  182. package/es2021/plugins/google-search/google-search.js +107 -0
  183. package/es2021/plugins/google-search/google-search.min.js +10 -0
  184. package/es2021/plugins/highlight-signature/highlight-signature.js +231 -0
  185. package/es2021/plugins/highlight-signature/highlight-signature.min.js +10 -0
  186. package/es2021/plugins/iframe-editor/iframe-editor.css +16 -0
  187. package/es2021/plugins/iframe-editor/iframe-editor.js +308 -0
  188. package/es2021/plugins/iframe-editor/iframe-editor.min.css +1 -0
  189. package/es2021/plugins/iframe-editor/iframe-editor.min.js +10 -0
  190. package/es2021/plugins/keyboard/keyboard.css +48 -0
  191. package/es2021/plugins/keyboard/keyboard.js +537 -0
  192. package/es2021/plugins/keyboard/keyboard.min.css +1 -0
  193. package/es2021/plugins/keyboard/keyboard.min.js +10 -0
  194. package/es2021/plugins/mobile-view/mobile-view.js +168 -0
  195. package/es2021/plugins/mobile-view/mobile-view.min.js +10 -0
  196. package/es2021/plugins/page-break/page-break.js +181 -0
  197. package/es2021/plugins/page-break/page-break.min.js +10 -0
  198. package/es2021/plugins/paste-code/paste-code.css +21 -0
  199. package/es2021/plugins/paste-code/paste-code.js +318 -0
  200. package/es2021/plugins/paste-code/paste-code.min.css +1 -0
  201. package/es2021/plugins/paste-code/paste-code.min.js +10 -0
  202. package/es2021/plugins/paste-from-word/paste-from-word.js +1528 -0
  203. package/es2021/plugins/paste-from-word/paste-from-word.min.js +10 -0
  204. package/es2021/plugins/show-blocks/show-blocks.js +645 -0
  205. package/es2021/plugins/show-blocks/show-blocks.min.js +10 -0
  206. package/es2021/plugins/todo-list/todo-list.css +77 -0
  207. package/es2021/plugins/todo-list/todo-list.js +313 -0
  208. package/es2021/plugins/todo-list/todo-list.min.css +1 -0
  209. package/es2021/plugins/todo-list/todo-list.min.js +10 -0
  210. package/es2021/plugins/translate/translate.css +91 -0
  211. package/es2021/plugins/translate/translate.js +636 -0
  212. package/es2021/plugins/translate/translate.min.css +1 -0
  213. package/es2021/plugins/translate/translate.min.js +10 -0
  214. package/es2021/plugins/tune-block/tune-block.css +37 -0
  215. package/es2021/plugins/tune-block/tune-block.js +385 -0
  216. package/es2021/plugins/tune-block/tune-block.min.css +1 -0
  217. package/es2021/plugins/tune-block/tune-block.min.js +10 -0
  218. package/es2021.en/jodit.css +4945 -0
  219. package/es2021.en/jodit.fat.min.css +1 -0
  220. package/es2021.en/jodit.fat.min.js +10 -0
  221. package/es2021.en/jodit.js +40989 -0
  222. package/es2021.en/jodit.min.css +1 -0
  223. package/es2021.en/jodit.min.js +10 -0
  224. package/es2021.en/plugins/autocomplete/autocomplete.css +26 -0
  225. package/es2021.en/plugins/autocomplete/autocomplete.js +463 -0
  226. package/es2021.en/plugins/autocomplete/autocomplete.min.css +1 -0
  227. package/es2021.en/plugins/autocomplete/autocomplete.min.js +10 -0
  228. package/es2021.en/plugins/backup/backup.css +48 -0
  229. package/es2021.en/plugins/backup/backup.js +554 -0
  230. package/es2021.en/plugins/backup/backup.min.css +1 -0
  231. package/es2021.en/plugins/backup/backup.min.js +10 -0
  232. package/es2021.en/plugins/button-generator/button-generator.css +316 -0
  233. package/es2021.en/plugins/button-generator/button-generator.js +1382 -0
  234. package/es2021.en/plugins/button-generator/button-generator.min.css +1 -0
  235. package/es2021.en/plugins/button-generator/button-generator.min.js +10 -0
  236. package/es2021.en/plugins/change-case/change-case.js +171 -0
  237. package/es2021.en/plugins/change-case/change-case.min.js +10 -0
  238. package/es2021.en/plugins/color-picker/color-picker.css +133 -0
  239. package/es2021.en/plugins/color-picker/color-picker.js +517 -0
  240. package/es2021.en/plugins/color-picker/color-picker.min.css +1 -0
  241. package/es2021.en/plugins/color-picker/color-picker.min.js +10 -0
  242. package/es2021.en/plugins/emoji/emoji.css +108 -0
  243. package/es2021.en/plugins/emoji/emoji.js +425 -0
  244. package/es2021.en/plugins/emoji/emoji.min.css +1 -0
  245. package/es2021.en/plugins/emoji/emoji.min.js +10 -0
  246. package/es2021.en/plugins/export-docs/export-docs.js +156 -0
  247. package/es2021.en/plugins/export-docs/export-docs.min.js +10 -0
  248. package/es2021.en/plugins/finder/finder.css +1342 -0
  249. package/es2021.en/plugins/finder/finder.js +3117 -0
  250. package/es2021.en/plugins/finder/finder.min.css +1 -0
  251. package/es2021.en/plugins/finder/finder.min.js +10 -0
  252. package/es2021.en/plugins/google-maps/google-maps.css +397 -0
  253. package/es2021.en/plugins/google-maps/google-maps.js +2540 -0
  254. package/es2021.en/plugins/google-maps/google-maps.min.css +1 -0
  255. package/es2021.en/plugins/google-maps/google-maps.min.js +10 -0
  256. package/es2021.en/plugins/google-search/google-search.js +107 -0
  257. package/es2021.en/plugins/google-search/google-search.min.js +10 -0
  258. package/es2021.en/plugins/highlight-signature/highlight-signature.js +231 -0
  259. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +10 -0
  260. package/es2021.en/plugins/iframe-editor/iframe-editor.css +16 -0
  261. package/es2021.en/plugins/iframe-editor/iframe-editor.js +308 -0
  262. package/es2021.en/plugins/iframe-editor/iframe-editor.min.css +1 -0
  263. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +10 -0
  264. package/es2021.en/plugins/keyboard/keyboard.css +48 -0
  265. package/es2021.en/plugins/keyboard/keyboard.js +537 -0
  266. package/es2021.en/plugins/keyboard/keyboard.min.css +1 -0
  267. package/es2021.en/plugins/keyboard/keyboard.min.js +10 -0
  268. package/es2021.en/plugins/mobile-view/mobile-view.js +168 -0
  269. package/es2021.en/plugins/mobile-view/mobile-view.min.js +10 -0
  270. package/es2021.en/plugins/page-break/page-break.js +181 -0
  271. package/es2021.en/plugins/page-break/page-break.min.js +10 -0
  272. package/es2021.en/plugins/paste-code/paste-code.css +21 -0
  273. package/es2021.en/plugins/paste-code/paste-code.js +318 -0
  274. package/es2021.en/plugins/paste-code/paste-code.min.css +1 -0
  275. package/es2021.en/plugins/paste-code/paste-code.min.js +10 -0
  276. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1528 -0
  277. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +10 -0
  278. package/es2021.en/plugins/show-blocks/show-blocks.js +322 -0
  279. package/es2021.en/plugins/show-blocks/show-blocks.min.js +10 -0
  280. package/es2021.en/plugins/todo-list/todo-list.css +77 -0
  281. package/es2021.en/plugins/todo-list/todo-list.js +313 -0
  282. package/es2021.en/plugins/todo-list/todo-list.min.css +1 -0
  283. package/es2021.en/plugins/todo-list/todo-list.min.js +10 -0
  284. package/es2021.en/plugins/translate/translate.css +91 -0
  285. package/es2021.en/plugins/translate/translate.js +636 -0
  286. package/es2021.en/plugins/translate/translate.min.css +1 -0
  287. package/es2021.en/plugins/translate/translate.min.js +10 -0
  288. package/es2021.en/plugins/tune-block/tune-block.css +37 -0
  289. package/es2021.en/plugins/tune-block/tune-block.js +385 -0
  290. package/es2021.en/plugins/tune-block/tune-block.min.css +1 -0
  291. package/es2021.en/plugins/tune-block/tune-block.min.js +10 -0
  292. package/es5/jodit.css +5956 -0
  293. package/es5/jodit.fat.min.css +1 -0
  294. package/es5/jodit.fat.min.js +10 -0
  295. package/es5/jodit.js +49879 -0
  296. package/es5/jodit.min.css +15 -0
  297. package/es5/jodit.min.js +10 -0
  298. package/es5/plugins/autocomplete/autocomplete.css +26 -0
  299. package/es5/plugins/autocomplete/autocomplete.js +536 -0
  300. package/es5/plugins/autocomplete/autocomplete.min.css +1 -0
  301. package/es5/plugins/autocomplete/autocomplete.min.js +10 -0
  302. package/es5/plugins/backup/backup.css +48 -0
  303. package/es5/plugins/backup/backup.js +599 -0
  304. package/es5/plugins/backup/backup.min.css +1 -0
  305. package/es5/plugins/backup/backup.min.js +10 -0
  306. package/es5/plugins/button-generator/button-generator.css +316 -0
  307. package/es5/plugins/button-generator/button-generator.js +1310 -0
  308. package/es5/plugins/button-generator/button-generator.min.css +1 -0
  309. package/es5/plugins/button-generator/button-generator.min.js +10 -0
  310. package/es5/plugins/change-case/change-case.js +179 -0
  311. package/es5/plugins/change-case/change-case.min.js +10 -0
  312. package/es5/plugins/color-picker/color-picker.css +133 -0
  313. package/es5/plugins/color-picker/color-picker.js +525 -0
  314. package/es5/plugins/color-picker/color-picker.min.css +1 -0
  315. package/es5/plugins/color-picker/color-picker.min.js +10 -0
  316. package/es5/plugins/emoji/emoji.css +108 -0
  317. package/es5/plugins/emoji/emoji.js +459 -0
  318. package/es5/plugins/emoji/emoji.min.css +1 -0
  319. package/es5/plugins/emoji/emoji.min.js +10 -0
  320. package/es5/plugins/export-docs/export-docs.js +174 -0
  321. package/es5/plugins/export-docs/export-docs.min.js +10 -0
  322. package/es5/plugins/finder/finder.css +1342 -0
  323. package/es5/plugins/finder/finder.js +3335 -0
  324. package/es5/plugins/finder/finder.min.css +1 -0
  325. package/es5/plugins/finder/finder.min.js +10 -0
  326. package/es5/plugins/google-maps/google-maps.css +397 -0
  327. package/es5/plugins/google-maps/google-maps.js +2463 -0
  328. package/es5/plugins/google-maps/google-maps.min.css +1 -0
  329. package/es5/plugins/google-maps/google-maps.min.js +10 -0
  330. package/es5/plugins/google-search/google-search.js +113 -0
  331. package/es5/plugins/google-search/google-search.min.js +10 -0
  332. package/es5/plugins/highlight-signature/highlight-signature.js +253 -0
  333. package/es5/plugins/highlight-signature/highlight-signature.min.js +10 -0
  334. package/es5/plugins/iframe-editor/iframe-editor.css +16 -0
  335. package/es5/plugins/iframe-editor/iframe-editor.js +319 -0
  336. package/es5/plugins/iframe-editor/iframe-editor.min.css +1 -0
  337. package/es5/plugins/iframe-editor/iframe-editor.min.js +10 -0
  338. package/es5/plugins/keyboard/keyboard.css +48 -0
  339. package/es5/plugins/keyboard/keyboard.js +556 -0
  340. package/es5/plugins/keyboard/keyboard.min.css +1 -0
  341. package/es5/plugins/keyboard/keyboard.min.js +10 -0
  342. package/es5/plugins/mobile-view/mobile-view.js +176 -0
  343. package/es5/plugins/mobile-view/mobile-view.min.js +10 -0
  344. package/es5/plugins/page-break/page-break.js +169 -0
  345. package/es5/plugins/page-break/page-break.min.js +10 -0
  346. package/es5/plugins/paste-code/paste-code.css +21 -0
  347. package/es5/plugins/paste-code/paste-code.js +348 -0
  348. package/es5/plugins/paste-code/paste-code.min.css +1 -0
  349. package/es5/plugins/paste-code/paste-code.min.js +10 -0
  350. package/es5/plugins/paste-from-word/paste-from-word.js +1670 -0
  351. package/es5/plugins/paste-from-word/paste-from-word.min.js +10 -0
  352. package/es5/plugins/show-blocks/show-blocks.js +649 -0
  353. package/es5/plugins/show-blocks/show-blocks.min.js +10 -0
  354. package/es5/plugins/todo-list/todo-list.css +77 -0
  355. package/es5/plugins/todo-list/todo-list.js +324 -0
  356. package/es5/plugins/todo-list/todo-list.min.css +1 -0
  357. package/es5/plugins/todo-list/todo-list.min.js +10 -0
  358. package/es5/plugins/translate/translate.css +91 -0
  359. package/es5/plugins/translate/translate.js +657 -0
  360. package/es5/plugins/translate/translate.min.css +1 -0
  361. package/es5/plugins/translate/translate.min.js +10 -0
  362. package/es5/plugins/tune-block/tune-block.css +37 -0
  363. package/es5/plugins/tune-block/tune-block.js +397 -0
  364. package/es5/plugins/tune-block/tune-block.min.css +1 -0
  365. package/es5/plugins/tune-block/tune-block.min.js +10 -0
  366. package/examples/arabic.lang.html +8 -8
  367. package/examples/color-picker.html +6 -6
  368. package/examples/custom-icons.html +8 -8
  369. package/examples/custom-toolbar.html +8 -8
  370. package/examples/example.default.html +6 -6
  371. package/examples/fullsize.html +8 -8
  372. package/examples/index.html +6 -6
  373. package/examples/inline-mode.html +8 -8
  374. package/examples/oneinstance.html +8 -8
  375. package/examples/theme.html +6 -6
  376. package/package.json +6 -22
  377. package/LICENSE.md +0 -3
  378. package/build/jodit.css +0 -1
  379. package/build/jodit.es5.css +0 -8
  380. package/build/jodit.es5.js +0 -1
  381. package/build/jodit.fat.css +0 -1
  382. package/build/jodit.fat.es5.css +0 -1
  383. package/build/jodit.fat.es5.js +0 -1
  384. package/build/jodit.fat.js +0 -1
  385. package/build/jodit.js +0 -1
  386. package/build/plugins/autocomplete/autocomplete.es5.js +0 -1
  387. package/build/plugins/autocomplete/autocomplete.js +0 -1
  388. package/build/plugins/backup/backup.es5.js +0 -1
  389. package/build/plugins/backup/backup.js +0 -1
  390. package/build/plugins/button-generator/button-generator.css +0 -1
  391. package/build/plugins/button-generator/button-generator.es5.css +0 -1
  392. package/build/plugins/button-generator/button-generator.es5.js +0 -1
  393. package/build/plugins/button-generator/button-generator.js +0 -1
  394. package/build/plugins/change-case/change-case.es5.js +0 -1
  395. package/build/plugins/change-case/change-case.js +0 -1
  396. package/build/plugins/color-picker/color-picker.css +0 -1
  397. package/build/plugins/color-picker/color-picker.es5.css +0 -1
  398. package/build/plugins/color-picker/color-picker.es5.js +0 -1
  399. package/build/plugins/color-picker/color-picker.js +0 -1
  400. package/build/plugins/emoji/emoji.css +0 -1
  401. package/build/plugins/emoji/emoji.es5.css +0 -1
  402. package/build/plugins/emoji/emoji.es5.js +0 -1
  403. package/build/plugins/emoji/emoji.js +0 -1
  404. package/build/plugins/export-docs/export-docs.es5.js +0 -1
  405. package/build/plugins/export-docs/export-docs.js +0 -1
  406. package/build/plugins/finder/finder.css +0 -1
  407. package/build/plugins/finder/finder.es5.css +0 -1
  408. package/build/plugins/finder/finder.es5.js +0 -1
  409. package/build/plugins/finder/finder.js +0 -1
  410. package/build/plugins/google-maps/google-maps.css +0 -1
  411. package/build/plugins/google-maps/google-maps.es5.css +0 -1
  412. package/build/plugins/google-maps/google-maps.es5.js +0 -1
  413. package/build/plugins/google-maps/google-maps.js +0 -1
  414. package/build/plugins/google-search/google-search.es5.js +0 -1
  415. package/build/plugins/google-search/google-search.js +0 -1
  416. package/build/plugins/highlight-signature/highlight-signature.es5.js +0 -1
  417. package/build/plugins/highlight-signature/highlight-signature.js +0 -1
  418. package/build/plugins/iframe-editor/iframe-editor.es5.js +0 -1
  419. package/build/plugins/iframe-editor/iframe-editor.js +0 -1
  420. package/build/plugins/keyboard/keyboard.es5.js +0 -1
  421. package/build/plugins/keyboard/keyboard.js +0 -1
  422. package/build/plugins/mobile-view/mobile-view.css +0 -0
  423. package/build/plugins/mobile-view/mobile-view.es5.css +0 -0
  424. package/build/plugins/mobile-view/mobile-view.es5.js +0 -1
  425. package/build/plugins/mobile-view/mobile-view.js +0 -1
  426. package/build/plugins/page-break/page-break.css +0 -1
  427. package/build/plugins/page-break/page-break.es5.css +0 -1
  428. package/build/plugins/page-break/page-break.es5.js +0 -1
  429. package/build/plugins/page-break/page-break.js +0 -1
  430. package/build/plugins/paste-code/paste-code.es5.js +0 -1
  431. package/build/plugins/paste-code/paste-code.js +0 -1
  432. package/build/plugins/paste-from-word/paste-from-word.es5.js +0 -1
  433. package/build/plugins/paste-from-word/paste-from-word.js +0 -1
  434. package/build/plugins/show-blocks/show-blocks.es5.js +0 -1
  435. package/build/plugins/show-blocks/show-blocks.js +0 -1
  436. package/build/plugins/todo-list/todo-list.css +0 -1
  437. package/build/plugins/todo-list/todo-list.es5.css +0 -1
  438. package/build/plugins/todo-list/todo-list.es5.js +0 -1
  439. package/build/plugins/todo-list/todo-list.js +0 -1
  440. package/build/plugins/translate/translate.es5.js +0 -1
  441. package/build/plugins/translate/translate.js +0 -1
  442. package/build/plugins/tune-block/tune-block.es5.js +0 -1
  443. package/build/plugins/tune-block/tune-block.js +0 -1
  444. package/index.html +0 -268
  445. /package/{build/config.js → config.js} +0 -0
  446. /package/{build/plugins/autocomplete/autocomplete.css → es2015/plugins/autocomplete/autocomplete.min.css} +0 -0
  447. /package/{build/plugins/iframe-editor/iframe-editor.css → es2015/plugins/iframe-editor/iframe-editor.min.css} +0 -0
  448. /package/{build/plugins/keyboard/keyboard.css → es2015/plugins/keyboard/keyboard.min.css} +0 -0
  449. /package/{build/plugins/paste-code/paste-code.css → es2015/plugins/paste-code/paste-code.min.css} +0 -0
  450. /package/{build/plugins/translate/translate.css → es2015/plugins/translate/translate.min.css} +0 -0
  451. /package/{build/plugins/autocomplete/autocomplete.es5.css → es2018/plugins/autocomplete/autocomplete.min.css} +0 -0
  452. /package/{build/plugins/iframe-editor/iframe-editor.es5.css → es2018/plugins/iframe-editor/iframe-editor.min.css} +0 -0
  453. /package/{build/plugins/keyboard/keyboard.es5.css → es2018/plugins/keyboard/keyboard.min.css} +0 -0
  454. /package/{build/plugins/paste-code/paste-code.es5.css → es2018/plugins/paste-code/paste-code.min.css} +0 -0
  455. /package/{build/plugins/translate/translate.es5.css → es2018/plugins/translate/translate.min.css} +0 -0
@@ -0,0 +1,26 @@
1
+ /*!
2
+ * jodit-pro - PRO Version of Jodit Editor
3
+ * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
+ * Version: v2.0.0-beta.10
5
+ * Url: https://xdsoft.net/jodit/pro/
6
+ * License(s): SEE LICENSE IN LICENSE.md
7
+ */
8
+
9
+ .jodit-autocomplete-item {
10
+ display: flex;
11
+ min-width: 6em;
12
+ align-items: center;
13
+ padding: var(--jd-padding-default) var(--jd-padding-default);
14
+ cursor: default;
15
+ }
16
+ .jodit-autocomplete-item:hover {
17
+ background-color: var(--jd-color-background-button-hover);
18
+ color: var(--jd-color-dark);
19
+ cursor: pointer;
20
+ }
21
+ .jodit-autocomplete-item_active_true:hover,
22
+ .jodit-autocomplete-item_active_true {
23
+ background-color: var(--jd-color-background-active);
24
+ color: var(--jd-color-white);
25
+ }
26
+
@@ -0,0 +1,463 @@
1
+ /*!
2
+ * jodit-pro - PRO Version of Jodit Editor
3
+ * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
+ * Version: v2.0.0-beta.10
5
+ * Url: https://xdsoft.net/jodit/pro/
6
+ * License(s): SEE LICENSE IN LICENSE.md
7
+ */
8
+
9
+ "use strict";
10
+ (function webpackUniversalModuleDefinition(root, factory) {
11
+ if(typeof exports === 'object' && typeof module === 'object')
12
+ module.exports = factory();
13
+ else if(typeof define === 'function' && define.amd)
14
+ define([], factory);
15
+ else {
16
+ var a = factory();
17
+ for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
18
+ }
19
+ })(self, function() {
20
+ return (self["webpackChunkjodit_pro"] = self["webpackChunkjodit_pro"] || []).push([[633],{
21
+
22
+ /***/ 93123:
23
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24
+
25
+ __webpack_require__.r(__webpack_exports__);
26
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
27
+ /* harmony export */ "autocomplete": function() { return /* binding */ autocomplete; }
28
+ /* harmony export */ });
29
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(97582);
30
+ /* harmony import */ var jodit_core_plugin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7324);
31
+ /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77628);
32
+ /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50526);
33
+ /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(95582);
34
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44913);
35
+ /* harmony import */ var jodit_core_ui_popup_popup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19797);
36
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(11612);
37
+ /* harmony import */ var _ui_autocomplete__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(77325);
38
+ /* harmony import */ var _JoditPro__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(88292);
39
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(47325);
40
+ /*!
41
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
42
+ * See LICENSE.md in the project root for license information.
43
+ * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
44
+ */
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+ jodit_config__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.autocomplete = {
57
+ sources: [],
58
+ maxItems: 50,
59
+ isMatchedQuery: (query, value) => value.toLowerCase().indexOf(query.toLowerCase()) === 0,
60
+ itemRenderer: (item) => item.title ?? item.value,
61
+ insertValueRenderer: (item) => item.value + '&nbsp;'
62
+ };
63
+ class autocomplete extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_0__/* .Plugin */ .S {
64
+ constructor() {
65
+ super(...arguments);
66
+ /** @override */
67
+ this.hasStyle = !_JoditPro__WEBPACK_IMPORTED_MODULE_8__/* .JoditPro.fatMode */ .y.fatMode;
68
+ this.sources = [];
69
+ }
70
+ /** @override */
71
+ afterInit(jodit) {
72
+ this.popup = new jodit_core_ui_popup_popup__WEBPACK_IMPORTED_MODULE_5__/* .Popup */ .G(jodit);
73
+ this.popup.setMod('padding', false);
74
+ this.list = new _ui_autocomplete__WEBPACK_IMPORTED_MODULE_7__/* .Autocomplete */ .F(jodit);
75
+ this.popup.setContent(this.list.container);
76
+ jodit.e
77
+ .on('select.autocomplete', (item) => {
78
+ let insertValue = item.value;
79
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isFunction)(item.insertValueRenderer)) {
80
+ insertValue = item.insertValueRenderer(item);
81
+ }
82
+ if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__/* .Dom.isNode */ .i.isNode(insertValue)) {
83
+ insertValue = jodit.createInside.fromHTML(insertValue);
84
+ }
85
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_9__/* .replaceTextLeftOfCursorAfterSpace */ .p)(jodit.s.range, insertValue);
86
+ this.j.s.setCursorAfter(insertValue);
87
+ this.j.synchronizeValues();
88
+ this.popup.close();
89
+ })
90
+ .on('keydown.autocomplete', this.onKeyDown)
91
+ .on('keydown.autocomplete', this.onKeyControlDown, {
92
+ top: true
93
+ })
94
+ .on('beforeEnter.autocomplete', this.onEnter, { top: true })
95
+ .on('autocomplete.autocomplete', this.onAutoComplete)
96
+ .on('registerAutocompleteSource.autocomplete', this.registerAutocompleteSource);
97
+ }
98
+ registerAutocompleteSource(source) {
99
+ this.sources.push(source);
100
+ }
101
+ static isControlKey(key) {
102
+ return (key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.KEY_DOWN ||
103
+ key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.KEY_UP ||
104
+ key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.KEY_ENTER ||
105
+ key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.KEY_TAB);
106
+ }
107
+ async onKeyDown(e) {
108
+ if (e.key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.KEY_ESC) {
109
+ this.popup.isOpened && this.popup.close();
110
+ return;
111
+ }
112
+ const { s } = this.j;
113
+ if (autocomplete.isControlKey(e.key) ||
114
+ !s.isInsideArea ||
115
+ !s.isCollapsed) {
116
+ return;
117
+ }
118
+ const range = this.j.s.sel?.rangeCount
119
+ ? this.j.s.sel?.getRangeAt(0)
120
+ : null;
121
+ const query = range && (0,_helpers__WEBPACK_IMPORTED_MODULE_9__/* .getTextLeftOfCursor */ .Y)(range).split(' ').pop();
122
+ if (query && (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.trim)(query).length) {
123
+ const result = await this.onAutoComplete(query);
124
+ if (result.length) {
125
+ return this.openPopup(result);
126
+ }
127
+ }
128
+ if (this.popup.isOpened) {
129
+ this.popup.close();
130
+ }
131
+ }
132
+ onKeyControlDown(e) {
133
+ if (this.popup.isOpened && autocomplete.isControlKey(e.key)) {
134
+ switch (e.key) {
135
+ case jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.KEY_DOWN:
136
+ this.list.selectNext();
137
+ break;
138
+ case jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.KEY_UP:
139
+ this.list.selectPrevious();
140
+ break;
141
+ case jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.KEY_TAB:
142
+ this.list.select();
143
+ break;
144
+ }
145
+ this.j.e.stopPropagation(e.type);
146
+ return false;
147
+ }
148
+ }
149
+ onEnter() {
150
+ if (this.popup.isOpened) {
151
+ this.list.select();
152
+ return false;
153
+ }
154
+ }
155
+ async onAutoComplete(query) {
156
+ const result = [];
157
+ await Promise.all(this.sources
158
+ .concat(this.j.o.autocomplete.sources)
159
+ .map(async (source) => {
160
+ result.push(...(await this.resolveFeed(query, source)));
161
+ }));
162
+ return result;
163
+ }
164
+ async resolveFeed(query, feed, baseSource) {
165
+ let parts;
166
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isPromise)(feed)) {
167
+ feed = await feed;
168
+ }
169
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isFunction)(feed)) {
170
+ parts = await feed(query);
171
+ }
172
+ else if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isArray)(feed)) {
173
+ const arrayFeed = feed, { isMatchedQuery } = this.j.o.autocomplete;
174
+ parts = arrayFeed
175
+ .filter((item) => {
176
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isString)(item)) {
177
+ return isMatchedQuery(query, item);
178
+ }
179
+ return isMatchedQuery(query, item.value);
180
+ })
181
+ .map((item) => {
182
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isString)(item)) {
183
+ return { title: item, value: item };
184
+ }
185
+ return item;
186
+ });
187
+ }
188
+ else {
189
+ parts = await this.resolveFeed(query, feed.feed, feed);
190
+ }
191
+ if (parts && (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isArray)(parts)) {
192
+ const { itemRenderer, insertValueRenderer, maxItems } = this.j.o.autocomplete;
193
+ parts = parts.map((item) => ({
194
+ itemRenderer: baseSource?.itemRenderer ?? itemRenderer,
195
+ insertValueRenderer: baseSource?.insertValueRenderer ?? insertValueRenderer,
196
+ ...item
197
+ }));
198
+ return parts.slice(0, maxItems);
199
+ }
200
+ return [];
201
+ }
202
+ openPopup(result) {
203
+ this.list.build(result);
204
+ this.popup.open(() => {
205
+ const { j } = this;
206
+ const rect = j.s.range.getBoundingClientRect();
207
+ const bound = {
208
+ left: rect.left,
209
+ top: rect.top,
210
+ height: rect.height,
211
+ width: rect.width
212
+ };
213
+ if (j.o.iframe && j.iframe) {
214
+ const pos = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.position)(j.iframe, j);
215
+ bound.top += pos.top;
216
+ bound.left += pos.left;
217
+ }
218
+ return bound;
219
+ });
220
+ }
221
+ /** @override */
222
+ beforeDestruct(jodit) {
223
+ jodit.e
224
+ .off(this.list)
225
+ .off('keydown.autocomplete', this.onKeyDown)
226
+ .off('autocomplete.autocomplete', this.onAutoComplete)
227
+ .off('.autocomplete');
228
+ this.list.destruct();
229
+ this.popup.destruct();
230
+ }
231
+ }
232
+ /** @override */
233
+ autocomplete.requires = ['enter', 'license'];
234
+ (0,tslib__WEBPACK_IMPORTED_MODULE_10__/* .__decorate */ .gn)([
235
+ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
236
+ ], autocomplete.prototype, "registerAutocompleteSource", null);
237
+ (0,tslib__WEBPACK_IMPORTED_MODULE_10__/* .__decorate */ .gn)([
238
+ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.debounce)()
239
+ ], autocomplete.prototype, "onKeyDown", null);
240
+ (0,tslib__WEBPACK_IMPORTED_MODULE_10__/* .__decorate */ .gn)([
241
+ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
242
+ ], autocomplete.prototype, "onKeyControlDown", null);
243
+ (0,tslib__WEBPACK_IMPORTED_MODULE_10__/* .__decorate */ .gn)([
244
+ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
245
+ ], autocomplete.prototype, "onEnter", null);
246
+ (0,tslib__WEBPACK_IMPORTED_MODULE_10__/* .__decorate */ .gn)([
247
+ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
248
+ ], autocomplete.prototype, "onAutoComplete", null);
249
+ (0,tslib__WEBPACK_IMPORTED_MODULE_10__/* .__decorate */ .gn)([
250
+ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
251
+ ], autocomplete.prototype, "resolveFeed", null);
252
+ _JoditPro__WEBPACK_IMPORTED_MODULE_8__/* .JoditPro.plugins.add */ .y.plugins.add('autocomplete', autocomplete);
253
+
254
+
255
+ /***/ }),
256
+
257
+ /***/ 47325:
258
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
259
+
260
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
261
+ /* harmony export */ "Y": function() { return /* binding */ getTextLeftOfCursor; },
262
+ /* harmony export */ "p": function() { return /* binding */ replaceTextLeftOfCursorAfterSpace; }
263
+ /* harmony export */ });
264
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44913);
265
+ /*!
266
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
267
+ * See LICENSE.md in the project root for license information.
268
+ * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
269
+ */
270
+
271
+ /**
272
+ * For collapsed selection return left text value before cursor
273
+ * @example
274
+ * ```
275
+ * <p><string>test</strong>pop|</p> => pop
276
+ * <p><string>test|</strong>pop</p> => test
277
+ * <p><string>te|st</strong>pop</p> => te
278
+ * ```
279
+ */
280
+ function getTextLeftOfCursor(range) {
281
+ const { startContainer, startOffset } = range;
282
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom.isText */ .i.isText(startContainer)) {
283
+ return startContainer.nodeValue?.substr(0, startOffset) ?? '';
284
+ }
285
+ const node = startContainer.childNodes[startOffset];
286
+ if (!node) {
287
+ return '';
288
+ }
289
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom.isText */ .i.isText(node)) {
290
+ return node.nodeValue ?? '';
291
+ }
292
+ const previous = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom.findNotEmptyNeighbor */ .i.findNotEmptyNeighbor(node, true, startContainer);
293
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom.isText */ .i.isText(previous)) {
294
+ return node.nodeValue ?? '';
295
+ }
296
+ return '';
297
+ }
298
+ /**
299
+ * For collapsed selection replace part of left text value before cursor but started after space
300
+ * @example
301
+ * ```
302
+ * <p><string>test</strong>pap|</p> + pappy = <p><string>test</strong>pappy|</p>
303
+ * <p><string>test</strong>pap| test</p> + pappy = <p><string>test</strong>pappy| test</p>
304
+ * <p><string>test</strong>stat pap| test</p> + pappy = <p><string>test</strong>stat pappy| test</p>
305
+ * ```
306
+ */
307
+ function replaceTextLeftOfCursorAfterSpace(range, elm) {
308
+ // eslint-disable-next-line prefer-const
309
+ let { startContainer, startOffset } = range;
310
+ if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom.isText */ .i.isText(startContainer)) {
311
+ startContainer = startContainer.childNodes[startOffset - 1];
312
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom.isText */ .i.isText(startContainer)) {
313
+ startOffset = startContainer.nodeValue?.length ?? 0;
314
+ }
315
+ }
316
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom.isText */ .i.isText(startContainer)) {
317
+ const value = startContainer.nodeValue ?? '', leftSide = value.substring(0, startOffset), rightSide = value.substring(startOffset);
318
+ const words = leftSide.split(' ');
319
+ words[words.length - 1] = '';
320
+ const newLeftSide = words.join(' ');
321
+ startContainer.nodeValue = newLeftSide + rightSide;
322
+ range.setStart(startContainer, newLeftSide.length);
323
+ range.insertNode(elm);
324
+ return;
325
+ }
326
+ }
327
+
328
+
329
+ /***/ }),
330
+
331
+ /***/ 77325:
332
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
333
+
334
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
335
+ /* harmony export */ "F": function() { return /* binding */ Autocomplete; }
336
+ /* harmony export */ });
337
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(97582);
338
+ /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50526);
339
+ /* harmony import */ var jodit_core_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75004);
340
+ /* harmony import */ var _item__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91381);
341
+ /*!
342
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
343
+ * See LICENSE.md in the project root for license information.
344
+ * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
345
+ */
346
+
347
+
348
+
349
+
350
+
351
+ let Autocomplete = class Autocomplete extends jodit_core_ui__WEBPACK_IMPORTED_MODULE_1__/* .UIGroup */ .qe {
352
+ constructor() {
353
+ super(...arguments);
354
+ this.elements = [];
355
+ this.currentSelection = -1;
356
+ }
357
+ /** @override */
358
+ className() {
359
+ return 'Autocomplete';
360
+ }
361
+ onChangeSelection(_, previous) {
362
+ previous != null && this.elements[previous]?.setMod('active', false);
363
+ this.elements[this.currentSelection].setMod('active', true);
364
+ this.elements[this.currentSelection].container.scrollIntoView(false);
365
+ }
366
+ build(list) {
367
+ this.clear();
368
+ list.forEach((elm, index) => {
369
+ const item = new _item__WEBPACK_IMPORTED_MODULE_2__/* .AutocompleteItem */ .h(this.jodit, elm);
370
+ this.j.e
371
+ .on(item.container, 'mousedown touchstart', (e) => {
372
+ e.preventDefault();
373
+ })
374
+ .on(item.container, 'click', () => {
375
+ this.currentSelection = index;
376
+ this.select();
377
+ });
378
+ this.append(item);
379
+ });
380
+ this.currentSelection = 0;
381
+ this.onChangeSelection();
382
+ }
383
+ selectNext() {
384
+ if (this.currentSelection + 1 <= this.elements.length - 1) {
385
+ this.currentSelection += 1;
386
+ }
387
+ else {
388
+ this.currentSelection = 0;
389
+ }
390
+ }
391
+ selectPrevious() {
392
+ if (this.currentSelection - 1 >= 0) {
393
+ this.currentSelection -= 1;
394
+ }
395
+ else {
396
+ this.currentSelection = this.elements.length - 1;
397
+ }
398
+ }
399
+ select() {
400
+ this.j.e.fire('select.autocomplete', this.elements[this.currentSelection].item);
401
+ }
402
+ };
403
+ (0,tslib__WEBPACK_IMPORTED_MODULE_3__/* .__decorate */ .gn)([
404
+ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_0__.watch)('currentSelection')
405
+ ], Autocomplete.prototype, "onChangeSelection", null);
406
+ Autocomplete = (0,tslib__WEBPACK_IMPORTED_MODULE_3__/* .__decorate */ .gn)([
407
+ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_0__.component
408
+ ], Autocomplete);
409
+
410
+
411
+ /***/ }),
412
+
413
+ /***/ 91381:
414
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
415
+
416
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
417
+ /* harmony export */ "h": function() { return /* binding */ AutocompleteItem; }
418
+ /* harmony export */ });
419
+ /* harmony import */ var jodit_core_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75004);
420
+ /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95582);
421
+ /*!
422
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
423
+ * See LICENSE.md in the project root for license information.
424
+ * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
425
+ */
426
+
427
+
428
+
429
+ class AutocompleteItem extends jodit_core_ui__WEBPACK_IMPORTED_MODULE_0__/* .UIElement */ .u1 {
430
+ /** @override */
431
+ className() {
432
+ return 'AutocompleteItem';
433
+ }
434
+ constructor(jodit, item) {
435
+ super(jodit);
436
+ this.item = item;
437
+ const { container } = this;
438
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.isFunction)(item.itemRenderer)) {
439
+ const elm = item.itemRenderer(item);
440
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.isString)(elm)) {
441
+ container.innerHTML = elm;
442
+ }
443
+ else {
444
+ container.appendChild(elm);
445
+ }
446
+ }
447
+ else {
448
+ container.innerText = item.title ?? item.value;
449
+ }
450
+ }
451
+ }
452
+
453
+
454
+ /***/ })
455
+
456
+ },
457
+ /******/ function(__webpack_require__) { // webpackRuntimeModules
458
+ /******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
459
+ /******/ var __webpack_exports__ = (__webpack_exec__(93123));
460
+ /******/ return __webpack_exports__;
461
+ /******/ }
462
+ ]);
463
+ });
@@ -0,0 +1 @@
1
+ .jodit-autocomplete-item{align-items:center;cursor:default;display:flex;min-width:6em;padding:var(--jd-padding-default) var(--jd-padding-default)}.jodit-autocomplete-item:hover{background-color:var(--jd-color-background-button-hover);color:var(--jd-color-dark);cursor:pointer}.jodit-autocomplete-item_active_true,.jodit-autocomplete-item_active_true:hover{background-color:var(--jd-color-background-active);color:var(--jd-color-white)}
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * jodit-pro - PRO Version of Jodit Editor
3
+ * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
+ * Version: v2.0.0-beta.10
5
+ * Url: https://xdsoft.net/jodit/pro/
6
+ * License(s): SEE LICENSE IN LICENSE.md
7
+ */
8
+
9
+
10
+ "use strict";((e,t)=>{if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}})(self,(function(){return(self.webpackChunkjodit_pro=self.webpackChunkjodit_pro||[]).push([[633],{93123(e,t,o){o.r(t),o.d(t,{autocomplete(){return m}});var n=o(97582),s=o(7324),i=o(77628),r=o(50526),l=o(95582),u=o(44913),c=o(19797),p=o(11612),a=o(77325),h=o(88292),d=o(47325);i.Config.prototype.autocomplete={sources:[],maxItems:50,isMatchedQuery(e,t){return 0===t.toLowerCase().indexOf(e.toLowerCase())},itemRenderer(e){return e.title??e.value},insertValueRenderer(e){return e.value+"&nbsp;"}};class m extends s.S{constructor(){super(...arguments),this.hasStyle=!h.y.fatMode,this.sources=[]}afterInit(e){this.popup=new c.G(e),this.popup.setMod("padding",!1),this.list=new a.F(e),this.popup.setContent(this.list.container),e.e.on("select.autocomplete",(t=>{let o=t.value;(0,l.isFunction)(t.insertValueRenderer)&&(o=t.insertValueRenderer(t)),u.i.isNode(o)||(o=e.createInside.fromHTML(o)),(0,d.p)(e.s.range,o),this.j.s.setCursorAfter(o),this.j.synchronizeValues(),this.popup.close()})).on("keydown.autocomplete",this.onKeyDown).on("keydown.autocomplete",this.onKeyControlDown,{top:!0}).on("beforeEnter.autocomplete",this.onEnter,{top:!0}).on("autocomplete.autocomplete",this.onAutoComplete).on("registerAutocompleteSource.autocomplete",this.registerAutocompleteSource)}registerAutocompleteSource(e){this.sources.push(e)}static isControlKey(e){return e===p.KEY_DOWN||e===p.KEY_UP||e===p.KEY_ENTER||e===p.KEY_TAB}async onKeyDown(e){if(e.key===p.KEY_ESC)return void(this.popup.isOpened&&this.popup.close());const{s:t}=this.j;if(m.isControlKey(e.key)||!t.isInsideArea||!t.isCollapsed)return;const o=this.j.s.sel?.rangeCount?this.j.s.sel?.getRangeAt(0):null,n=o&&(0,d.Y)(o).split(" ").pop();if(n&&(0,l.trim)(n).length){const e=await this.onAutoComplete(n);if(e.length)return this.openPopup(e)}this.popup.isOpened&&this.popup.close()}onKeyControlDown(e){if(this.popup.isOpened&&m.isControlKey(e.key)){switch(e.key){case p.KEY_DOWN:this.list.selectNext();break;case p.KEY_UP:this.list.selectPrevious();break;case p.KEY_TAB:this.list.select()}return this.j.e.stopPropagation(e.type),!1}}onEnter(){if(this.popup.isOpened)return this.list.select(),!1}async onAutoComplete(e){const t=[];return await Promise.all(this.sources.concat(this.j.o.autocomplete.sources).map((async o=>{t.push(...await this.resolveFeed(e,o))}))),t}async resolveFeed(e,t,o){let n;if((0,l.isPromise)(t)&&(t=await t),(0,l.isFunction)(t))n=await t(e);else if((0,l.isArray)(t)){const o=t,{isMatchedQuery:s}=this.j.o.autocomplete;n=o.filter((t=>(0,l.isString)(t)?s(e,t):s(e,t.value))).map((e=>(0,l.isString)(e)?{title:e,value:e}:e))}else n=await this.resolveFeed(e,t.feed,t);if(n&&(0,l.isArray)(n)){const{itemRenderer:e,insertValueRenderer:t,maxItems:s}=this.j.o.autocomplete;return n=n.map((n=>({itemRenderer:o?.itemRenderer??e,insertValueRenderer:o?.insertValueRenderer??t,...n}))),n.slice(0,s)}return[]}openPopup(e){this.list.build(e),this.popup.open((()=>{const{j:e}=this,t=e.s.range.getBoundingClientRect(),o={left:t.left,top:t.top,height:t.height,width:t.width};if(e.o.iframe&&e.iframe){const t=(0,l.position)(e.iframe,e);o.top+=t.top,o.left+=t.left}return o}))}beforeDestruct(e){e.e.off(this.list).off("keydown.autocomplete",this.onKeyDown).off("autocomplete.autocomplete",this.onAutoComplete).off(".autocomplete"),this.list.destruct(),this.popup.destruct()}}m.requires=["enter","license"],(0,n.gn)([r.autobind],m.prototype,"registerAutocompleteSource",null),(0,n.gn)([(0,r.debounce)()],m.prototype,"onKeyDown",null),(0,n.gn)([r.autobind],m.prototype,"onKeyControlDown",null),(0,n.gn)([r.autobind],m.prototype,"onEnter",null),(0,n.gn)([r.autobind],m.prototype,"onAutoComplete",null),(0,n.gn)([r.autobind],m.prototype,"resolveFeed",null),h.y.plugins.add("autocomplete",m)},47325(e,t,o){o.d(t,{Y(){return s},p(){return i}});var n=o(44913);function s(e){const{startContainer:t,startOffset:o}=e;if(n.i.isText(t))return t.nodeValue?.substr(0,o)??"";const s=t.childNodes[o];if(!s)return"";if(n.i.isText(s))return s.nodeValue??"";const i=n.i.findNotEmptyNeighbor(s,!0,t);return n.i.isText(i)?s.nodeValue??"":""}function i(e,t){let{startContainer:o,startOffset:s}=e;if(n.i.isText(o)||(o=o.childNodes[s-1],n.i.isText(o)&&(s=o.nodeValue?.length??0)),n.i.isText(o)){const n=o.nodeValue??"",i=n.substring(0,s),r=n.substring(s),l=i.split(" ");l[l.length-1]="";const u=l.join(" ");return o.nodeValue=u+r,e.setStart(o,u.length),void e.insertNode(t)}}},77325(e,t,o){o.d(t,{F(){return l}});var n=o(97582),s=o(50526),i=o(75004),r=o(91381);let l=class e extends i.qe{constructor(){super(...arguments),this.elements=[],this.currentSelection=-1}className(){return"Autocomplete"}onChangeSelection(e,t){null!=t&&this.elements[t]?.setMod("active",!1),this.elements[this.currentSelection].setMod("active",!0),this.elements[this.currentSelection].container.scrollIntoView(!1)}build(e){this.clear(),e.forEach(((e,t)=>{const o=new r.h(this.jodit,e);this.j.e.on(o.container,"mousedown touchstart",(e=>{e.preventDefault()})).on(o.container,"click",(()=>{this.currentSelection=t,this.select()})),this.append(o)})),this.currentSelection=0,this.onChangeSelection()}selectNext(){this.currentSelection+1>this.elements.length-1?this.currentSelection=0:this.currentSelection+=1}selectPrevious(){0>this.currentSelection-1?this.currentSelection=this.elements.length-1:this.currentSelection-=1}select(){this.j.e.fire("select.autocomplete",this.elements[this.currentSelection].item)}};(0,n.gn)([(0,s.watch)("currentSelection")],l.prototype,"onChangeSelection",null),l=(0,n.gn)([s.component],l)},91381(e,t,o){o.d(t,{h(){return i}});var n=o(75004),s=o(95582);class i extends n.u1{className(){return"AutocompleteItem"}constructor(e,t){super(e),this.item=t;const{container:o}=this;if((0,s.isFunction)(t.itemRenderer)){const e=t.itemRenderer(t);(0,s.isString)(e)?o.innerHTML=e:o.appendChild(e)}else o.innerText=t.title??t.value}}}},e=>e(e.s=93123)])}));
@@ -0,0 +1,48 @@
1
+ /*!
2
+ * jodit-pro - PRO Version of Jodit Editor
3
+ * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
+ * Version: v2.0.0-beta.10
5
+ * Url: https://xdsoft.net/jodit/pro/
6
+ * License(s): SEE LICENSE IN LICENSE.md
7
+ */
8
+
9
+ .jodit-ui-backup-box {
10
+ display: flex;
11
+ height: 100%;
12
+ max-height: 100%;
13
+ justify-content: stretch;
14
+ border-bottom: 1px solid var(--jd-color-border);
15
+ }
16
+ .jodit-ui-backup-box__list {
17
+ overflow: auto;
18
+ min-width: 200px;
19
+ padding: var(--jd-padding-default);
20
+ border-right: 1px solid var(--jd-color-border);
21
+ user-select: none;
22
+ }
23
+ .jodit-ui-backup-box__preview {
24
+ overflow: auto;
25
+ flex: 1;
26
+ padding: var(--jd-padding-default);
27
+ }
28
+ .jodit-ui-backup-box__empty {
29
+ position: relative;
30
+ top: 50%;
31
+ width: 100px;
32
+ height: 30px;
33
+ margin: auto;
34
+ opacity: 0.3;
35
+ }
36
+
37
+ .jodit-ui-backup-item {
38
+ padding: var(--jd-padding-default);
39
+ cursor: pointer;
40
+ }
41
+ .jodit-ui-backup-item:hover {
42
+ background-color: var(--jd-color-background-selection);
43
+ }
44
+ .jodit-ui-backup-item_active_true {
45
+ background-color: var(--jd-color-background-selection-opacity50);
46
+ outline: 1px solid var(--jd-color-border-active);
47
+ }
48
+