jodit-pro 4.18.3 → 4.18.7

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 (384) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +2 -0
  3. package/config.js +1 -0
  4. package/es2015/jodit.css +2 -2
  5. package/es2015/jodit.fat.min.css +1 -1
  6. package/es2015/jodit.fat.min.js +55 -18
  7. package/es2015/jodit.js +1139 -150
  8. package/es2015/jodit.min.css +1 -1
  9. package/es2015/jodit.min.js +34 -9
  10. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  11. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  12. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  13. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  14. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  15. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  16. package/es2015/plugins/backup/backup.css +1 -1
  17. package/es2015/plugins/backup/backup.js +1 -1
  18. package/es2015/plugins/backup/backup.min.js +1 -1
  19. package/es2015/plugins/button-generator/button-generator.css +1 -1
  20. package/es2015/plugins/button-generator/button-generator.js +1 -1
  21. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  22. package/es2015/plugins/change-case/change-case.js +1 -1
  23. package/es2015/plugins/change-case/change-case.min.js +1 -1
  24. package/es2015/plugins/chart/chart.css +173 -0
  25. package/es2015/plugins/chart/chart.js +1479 -0
  26. package/es2015/plugins/chart/chart.min.css +1 -0
  27. package/es2015/plugins/chart/chart.min.js +20 -0
  28. package/es2015/plugins/color-picker/color-picker.css +1 -1
  29. package/es2015/plugins/color-picker/color-picker.js +1 -1
  30. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  31. package/es2015/plugins/emoji/emoji.css +1 -1
  32. package/es2015/plugins/emoji/emoji.js +1 -1
  33. package/es2015/plugins/emoji/emoji.min.js +1 -1
  34. package/es2015/plugins/export-docs/export-docs.js +1 -1
  35. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  36. package/es2015/plugins/finder/finder.css +1 -1
  37. package/es2015/plugins/finder/finder.js +1 -1
  38. package/es2015/plugins/finder/finder.min.js +1 -1
  39. package/es2015/plugins/google-maps/google-maps.css +1 -1
  40. package/es2015/plugins/google-maps/google-maps.js +1 -1
  41. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  42. package/es2015/plugins/google-search/google-search.js +1 -1
  43. package/es2015/plugins/google-search/google-search.min.js +1 -1
  44. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  45. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  46. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  47. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  48. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  49. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  50. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  51. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  52. package/es2015/plugins/keyboard/keyboard.css +1 -1
  53. package/es2015/plugins/keyboard/keyboard.js +1 -1
  54. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  55. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  56. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  57. package/es2015/plugins/page-break/page-break.js +1 -1
  58. package/es2015/plugins/page-break/page-break.min.js +1 -1
  59. package/es2015/plugins/paste-code/paste-code.css +1 -1
  60. package/es2015/plugins/paste-code/paste-code.js +1 -1
  61. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  62. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  63. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  64. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  65. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  66. package/es2015/plugins/style/style.css +1 -1
  67. package/es2015/plugins/style/style.js +1 -1
  68. package/es2015/plugins/style/style.min.js +1 -1
  69. package/es2015/plugins/templates/templates.css +1 -1
  70. package/es2015/plugins/templates/templates.js +1 -1
  71. package/es2015/plugins/templates/templates.min.js +1 -1
  72. package/es2015/plugins/todo-list/todo-list.css +1 -1
  73. package/es2015/plugins/todo-list/todo-list.js +1 -1
  74. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  75. package/es2015/plugins/translate/translate.css +1 -1
  76. package/es2015/plugins/translate/translate.js +1 -1
  77. package/es2015/plugins/translate/translate.min.js +1 -1
  78. package/es2015/plugins/tune-block/tune-block.css +1 -1
  79. package/es2015/plugins/tune-block/tune-block.js +2 -1
  80. package/es2015/plugins/tune-block/tune-block.min.js +2 -2
  81. package/es2018/jodit.fat.min.css +1 -1
  82. package/es2018/jodit.fat.min.js +100 -63
  83. package/es2018/jodit.min.css +1 -1
  84. package/es2018/jodit.min.js +64 -39
  85. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  86. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  87. package/es2018/plugins/backup/backup.min.js +1 -1
  88. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  89. package/es2018/plugins/change-case/change-case.min.js +1 -1
  90. package/es2018/plugins/chart/chart.min.css +1 -0
  91. package/es2018/plugins/chart/chart.min.js +20 -0
  92. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  93. package/es2018/plugins/emoji/emoji.min.js +1 -1
  94. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  95. package/es2018/plugins/finder/finder.min.js +1 -1
  96. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  97. package/es2018/plugins/google-search/google-search.min.js +1 -1
  98. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  99. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  100. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  101. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  102. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  103. package/es2018/plugins/page-break/page-break.min.js +1 -1
  104. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  105. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  106. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  107. package/es2018/plugins/style/style.min.js +1 -1
  108. package/es2018/plugins/templates/templates.min.js +1 -1
  109. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  110. package/es2018/plugins/translate/translate.min.js +1 -1
  111. package/es2018/plugins/tune-block/tune-block.min.js +2 -2
  112. package/es2021/jodit.css +2 -2
  113. package/es2021/jodit.fat.min.css +1 -1
  114. package/es2021/jodit.fat.min.js +51 -14
  115. package/es2021/jodit.js +1139 -150
  116. package/es2021/jodit.min.css +1 -1
  117. package/es2021/jodit.min.js +78 -53
  118. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  119. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  120. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  121. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  122. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  123. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  124. package/es2021/plugins/backup/backup.css +1 -1
  125. package/es2021/plugins/backup/backup.js +1 -1
  126. package/es2021/plugins/backup/backup.min.js +1 -1
  127. package/es2021/plugins/button-generator/button-generator.css +1 -1
  128. package/es2021/plugins/button-generator/button-generator.js +1 -1
  129. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  130. package/es2021/plugins/change-case/change-case.js +1 -1
  131. package/es2021/plugins/change-case/change-case.min.js +1 -1
  132. package/es2021/plugins/chart/chart.css +173 -0
  133. package/es2021/plugins/chart/chart.js +1424 -0
  134. package/es2021/plugins/chart/chart.min.css +1 -0
  135. package/es2021/plugins/chart/chart.min.js +20 -0
  136. package/es2021/plugins/color-picker/color-picker.css +1 -1
  137. package/es2021/plugins/color-picker/color-picker.js +1 -1
  138. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  139. package/es2021/plugins/emoji/emoji.css +1 -1
  140. package/es2021/plugins/emoji/emoji.js +1 -1
  141. package/es2021/plugins/emoji/emoji.min.js +1 -1
  142. package/es2021/plugins/export-docs/export-docs.js +1 -1
  143. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  144. package/es2021/plugins/finder/finder.css +1 -1
  145. package/es2021/plugins/finder/finder.js +1 -1
  146. package/es2021/plugins/finder/finder.min.js +1 -1
  147. package/es2021/plugins/google-maps/google-maps.css +1 -1
  148. package/es2021/plugins/google-maps/google-maps.js +1 -1
  149. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  150. package/es2021/plugins/google-search/google-search.js +1 -1
  151. package/es2021/plugins/google-search/google-search.min.js +1 -1
  152. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  153. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  154. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  155. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  156. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  157. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  158. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  159. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  160. package/es2021/plugins/keyboard/keyboard.css +1 -1
  161. package/es2021/plugins/keyboard/keyboard.js +1 -1
  162. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  163. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  164. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  165. package/es2021/plugins/page-break/page-break.js +1 -1
  166. package/es2021/plugins/page-break/page-break.min.js +1 -1
  167. package/es2021/plugins/paste-code/paste-code.css +1 -1
  168. package/es2021/plugins/paste-code/paste-code.js +1 -1
  169. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  170. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  171. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  172. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  173. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  174. package/es2021/plugins/style/style.css +1 -1
  175. package/es2021/plugins/style/style.js +1 -1
  176. package/es2021/plugins/style/style.min.js +1 -1
  177. package/es2021/plugins/templates/templates.css +1 -1
  178. package/es2021/plugins/templates/templates.js +1 -1
  179. package/es2021/plugins/templates/templates.min.js +1 -1
  180. package/es2021/plugins/todo-list/todo-list.css +1 -1
  181. package/es2021/plugins/todo-list/todo-list.js +1 -1
  182. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  183. package/es2021/plugins/translate/translate.css +1 -1
  184. package/es2021/plugins/translate/translate.js +1 -1
  185. package/es2021/plugins/translate/translate.min.js +1 -1
  186. package/es2021/plugins/tune-block/tune-block.css +1 -1
  187. package/es2021/plugins/tune-block/tune-block.js +2 -1
  188. package/es2021/plugins/tune-block/tune-block.min.js +2 -2
  189. package/es2021.en/jodit.css +2 -2
  190. package/es2021.en/jodit.fat.min.css +1 -1
  191. package/es2021.en/jodit.fat.min.js +54 -17
  192. package/es2021.en/jodit.js +1139 -150
  193. package/es2021.en/jodit.min.css +1 -1
  194. package/es2021.en/jodit.min.js +78 -53
  195. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  196. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  197. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  198. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  199. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  200. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  201. package/es2021.en/plugins/backup/backup.css +1 -1
  202. package/es2021.en/plugins/backup/backup.js +1 -1
  203. package/es2021.en/plugins/backup/backup.min.js +1 -1
  204. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  205. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  206. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  207. package/es2021.en/plugins/change-case/change-case.js +1 -1
  208. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  209. package/es2021.en/plugins/chart/chart.css +173 -0
  210. package/es2021.en/plugins/chart/chart.js +1424 -0
  211. package/es2021.en/plugins/chart/chart.min.css +1 -0
  212. package/es2021.en/plugins/chart/chart.min.js +20 -0
  213. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  214. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  215. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  216. package/es2021.en/plugins/emoji/emoji.css +1 -1
  217. package/es2021.en/plugins/emoji/emoji.js +1 -1
  218. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  219. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  220. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  221. package/es2021.en/plugins/finder/finder.css +1 -1
  222. package/es2021.en/plugins/finder/finder.js +1 -1
  223. package/es2021.en/plugins/finder/finder.min.js +1 -1
  224. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  225. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  226. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  227. package/es2021.en/plugins/google-search/google-search.js +1 -1
  228. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  229. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  230. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  231. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  232. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  233. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  234. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  235. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  236. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  237. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  238. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  239. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  240. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  241. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  242. package/es2021.en/plugins/page-break/page-break.js +1 -1
  243. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  244. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  245. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  246. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  247. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  248. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  249. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  250. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  251. package/es2021.en/plugins/style/style.css +1 -1
  252. package/es2021.en/plugins/style/style.js +1 -1
  253. package/es2021.en/plugins/style/style.min.js +1 -1
  254. package/es2021.en/plugins/templates/templates.css +1 -1
  255. package/es2021.en/plugins/templates/templates.js +1 -1
  256. package/es2021.en/plugins/templates/templates.min.js +1 -1
  257. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  258. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  259. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  260. package/es2021.en/plugins/translate/translate.css +1 -1
  261. package/es2021.en/plugins/translate/translate.js +1 -1
  262. package/es2021.en/plugins/translate/translate.min.js +1 -1
  263. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  264. package/es2021.en/plugins/tune-block/tune-block.js +2 -1
  265. package/es2021.en/plugins/tune-block/tune-block.min.js +2 -2
  266. package/es5/jodit.css +3 -3
  267. package/es5/jodit.fat.min.css +1 -1
  268. package/es5/jodit.fat.min.js +2 -2
  269. package/es5/jodit.js +1521 -153
  270. package/es5/jodit.min.css +3 -3
  271. package/es5/jodit.min.js +2 -2
  272. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  273. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  274. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  275. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  276. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  277. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  278. package/es5/plugins/backup/backup.css +1 -1
  279. package/es5/plugins/backup/backup.js +1 -1
  280. package/es5/plugins/backup/backup.min.js +1 -1
  281. package/es5/plugins/button-generator/button-generator.css +1 -1
  282. package/es5/plugins/button-generator/button-generator.js +1 -1
  283. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  284. package/es5/plugins/change-case/change-case.js +1 -1
  285. package/es5/plugins/change-case/change-case.min.js +1 -1
  286. package/es5/plugins/chart/chart.css +173 -0
  287. package/es5/plugins/chart/chart.js +1661 -0
  288. package/es5/plugins/chart/chart.min.css +1 -0
  289. package/es5/plugins/chart/chart.min.js +8 -0
  290. package/es5/plugins/color-picker/color-picker.css +1 -1
  291. package/es5/plugins/color-picker/color-picker.js +1 -1
  292. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  293. package/es5/plugins/emoji/emoji.css +1 -1
  294. package/es5/plugins/emoji/emoji.js +1 -1
  295. package/es5/plugins/emoji/emoji.min.js +1 -1
  296. package/es5/plugins/export-docs/export-docs.js +1 -1
  297. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  298. package/es5/plugins/finder/finder.css +1 -1
  299. package/es5/plugins/finder/finder.js +1 -1
  300. package/es5/plugins/finder/finder.min.js +1 -1
  301. package/es5/plugins/google-maps/google-maps.css +1 -1
  302. package/es5/plugins/google-maps/google-maps.js +1 -1
  303. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  304. package/es5/plugins/google-search/google-search.js +1 -1
  305. package/es5/plugins/google-search/google-search.min.js +1 -1
  306. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  307. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  308. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  309. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  310. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  311. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  312. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  313. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  314. package/es5/plugins/keyboard/keyboard.css +1 -1
  315. package/es5/plugins/keyboard/keyboard.js +1 -1
  316. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  317. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  318. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  319. package/es5/plugins/page-break/page-break.js +1 -1
  320. package/es5/plugins/page-break/page-break.min.js +1 -1
  321. package/es5/plugins/paste-code/paste-code.css +1 -1
  322. package/es5/plugins/paste-code/paste-code.js +1 -1
  323. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  324. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  325. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  326. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  327. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  328. package/es5/plugins/style/style.css +1 -1
  329. package/es5/plugins/style/style.js +1 -1
  330. package/es5/plugins/style/style.min.js +1 -1
  331. package/es5/plugins/templates/templates.css +1 -1
  332. package/es5/plugins/templates/templates.js +1 -1
  333. package/es5/plugins/templates/templates.min.js +1 -1
  334. package/es5/plugins/todo-list/todo-list.css +1 -1
  335. package/es5/plugins/todo-list/todo-list.js +1 -1
  336. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  337. package/es5/plugins/translate/translate.css +1 -1
  338. package/es5/plugins/translate/translate.js +1 -1
  339. package/es5/plugins/translate/translate.min.js +1 -1
  340. package/es5/plugins/tune-block/tune-block.css +1 -1
  341. package/es5/plugins/tune-block/tune-block.js +2 -1
  342. package/es5/plugins/tune-block/tune-block.min.js +2 -2
  343. package/es5/polyfills.fat.min.js +1 -1
  344. package/es5/polyfills.js +1 -1
  345. package/es5/polyfills.min.js +1 -1
  346. package/esm/config.d.ts +27 -1
  347. package/esm/plugins/all.js +1 -1
  348. package/esm/plugins/chart/assets/chart.svg.js +1 -0
  349. package/esm/plugins/chart/chart.d.ts +56 -0
  350. package/esm/plugins/chart/chart.js +1 -0
  351. package/esm/plugins/chart/config.d.ts +33 -0
  352. package/esm/plugins/chart/config.js +1 -0
  353. package/esm/plugins/chart/helpers.d.ts +22 -0
  354. package/esm/plugins/chart/helpers.js +1 -0
  355. package/esm/plugins/chart/interface.d.ts +34 -0
  356. package/esm/plugins/chart/interface.js +0 -0
  357. package/esm/plugins/chart/render/bar.d.ts +8 -0
  358. package/esm/plugins/chart/render/bar.js +1 -0
  359. package/esm/plugins/chart/render/common.d.ts +40 -0
  360. package/esm/plugins/chart/render/common.js +1 -0
  361. package/esm/plugins/chart/render/index.d.ts +7 -0
  362. package/esm/plugins/chart/render/index.js +1 -0
  363. package/esm/plugins/chart/render/line.d.ts +7 -0
  364. package/esm/plugins/chart/render/line.js +1 -0
  365. package/esm/plugins/chart/render/pie.d.ts +7 -0
  366. package/esm/plugins/chart/render/pie.js +1 -0
  367. package/esm/plugins/chart/render/radar.d.ts +7 -0
  368. package/esm/plugins/chart/render/radar.js +1 -0
  369. package/esm/plugins/chart/ui/editor/editor.d.ts +52 -0
  370. package/esm/plugins/chart/ui/editor/editor.js +13 -0
  371. package/esm/plugins/tune-block/config.js +1 -1
  372. package/package.json +1 -1
  373. package/types/config.d.ts +27 -1
  374. package/types/plugins/chart/chart.d.ts +56 -0
  375. package/types/plugins/chart/config.d.ts +33 -0
  376. package/types/plugins/chart/helpers.d.ts +22 -0
  377. package/types/plugins/chart/interface.d.ts +34 -0
  378. package/types/plugins/chart/render/bar.d.ts +8 -0
  379. package/types/plugins/chart/render/common.d.ts +40 -0
  380. package/types/plugins/chart/render/index.d.ts +7 -0
  381. package/types/plugins/chart/render/line.d.ts +7 -0
  382. package/types/plugins/chart/render/pie.d.ts +7 -0
  383. package/types/plugins/chart/render/radar.d.ts +7 -0
  384. package/types/plugins/chart/ui/editor/editor.d.ts +52 -0
@@ -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.18.3
4
+ * Version: v4.18.7
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -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.18.3
4
+ * Version: v4.18.7
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -55,6 +55,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.tuneBlock = {
55
55
  img: common,
56
56
  blockquote: common,
57
57
  div: common,
58
+ figure: common,
58
59
  pre: [
59
60
  'tune.editPre'
60
61
  ].concat((0,_swc_helpers_to_consumable_array__WEBPACK_IMPORTED_MODULE_0__._)(common)),
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.18.3
4
+ * Version: v4.18.7
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
8
- "use strict";!function(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([[576],{8256:function(e,t,o){var n=o(94899),i=o(6441),r=o(22732),c=o(21537),u=["tune.up","tune.remove","tune.down"],s=["tune.h1","tune.h2","tune.h3","\n","tune.h4","tune.h5","tune.h6","\n"].concat((0,n._)(u));function l(e){return{icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><text dominant-baseline="text-before-edge" style="font: 45px sans-serif" x="0" y="0">'+e.toUpperCase()+"</text></svg>",isActive:function(t,o){var n;return(null==o||null==(n=o.target)?void 0:n.tagName.toLowerCase())===e},exec:function(t,o){if(o){t.selection.save();var n=r.Dom.replace(o,e,t.createInside);t.selection.restore(),t.e.fire("synchro"),t.e.fire("afterExecTune.tune",n)}return!0}}}function a(e){var t=e?"previousSibling":"nextSibling";return{icon:e?"angle-up":"angle-down",isDisabled:function(e,o){var n;return!(null==o||null==(n=o.target)?void 0:n[t])},exec:function(o,n){var i=null==n?void 0:n[t];return n&&i&&(o.selection.save(),(0,c.call)(e?r.Dom.before:r.Dom.after,i,n),o.selection.restore()),o.e.fire("synchro"),o.e.fire("afterExecTune.tune"),!0}}}i.Config.prototype.tuneBlock={popup:{p:u,table:u,img:u,blockquote:u,div:u,pre:["tune.editPre"].concat((0,n._)(u)),h1:s,h2:s,h3:s,h4:s,h5:s,h6:s}},i.Config.prototype.controls.tune={h1:l("h1"),h2:l("h2"),h3:l("h3"),h4:l("h4"),h5:l("h5"),h6:l("h6"),up:a(!0),down:a(!1),editPre:{icon:"pencil",exec:function(e,t){e.e.fire("editPreInPasteCode",t)}},remove:{icon:"bin",exec:function(e,t){r.Dom.safeRemove(t),e.e.fire("synchro"),e.e.fire("closeTuner.tune"),e.e.fire("hideTuner.tune")}}}},13152:function(e,t,o){o.r(t),o.d(t,{tuneBlock:function(){return f}});var n=o(80294),i=o(20616),r=o(67709),c=o(82749),u=o(18766),s=o(31635),l=o(23078);o(8256);var a=o(40104),h=o(65478),p=o(50911),d=o(2692),f=function(e){function t(){var e;return(0,i._)(this,t),e=(0,n._)(this,t,arguments),(0,c._)(e,"tuner",void 0),e}return(0,u._)(t,e),(0,r._)(t,[{key:"afterInit",value:function(e){this.tuner=new a.UITuner(e)}},{key:"hideTuner",value:function(){this.tuner.hide()}},{key:"onChangeSelection",value:function(){this.j.s.isCollapsed()||this.hideTuner()}},{key:"onClickInBlock",value:function(e){this.j.s.isCollapsed()&&this.tuner.show()}},{key:"beforeDestruct",value:function(e){this.tuner.destruct()}}]),t}((0,l._)(p.Plugin));(0,c._)(f,"requires",["license"]),(0,s.__decorate)([(0,h.watch)(":outsideClick :keydown")],f.prototype,"hideTuner",null),(0,s.__decorate)([(0,h.watch)("j.ed:selectionchange"),(0,h.debounce)()],f.prototype,"onChangeSelection",null),(0,s.__decorate)([(0,h.watch)(":click")],f.prototype,"onClickInBlock",null),d.JoditPro.plugins.add("tune-block",f)},40104:function(e,t,o){o.d(t,{UITuner:function(){return f}});var n=o(80294),i=o(20616),r=o(67709),c=o(82749),u=o(18766),s=o(31635),l=o(65478),a=o(22732),h=o(21537),p=o(67510),d=o(21491),f=function(e){function t(){var e;return(0,i._)(this,t),e=(0,n._)(this,t,arguments),(0,c._)(e,"isShown",!1),(0,c._)(e,"toolbar",(0,d.makeCollection)(e.j,e)),(0,c._)(e,"popup",new p.Popup(e.j,!1)),(0,c._)(e,"currentBlock",void 0),e}return(0,u._)(t,e),(0,r._)(t,[{key:"className",value:function(){return"UITuner"}},{key:"render",value:function(){return"<div>\n <div class='&__handle' title='~Click to tune~'/>\n </div>"}},{key:"show",value:function(){var e=this,t=this.j.s.current();if(!t)return this.hide();var o=a.Dom.isBlock(t)?t:a.Dom.closest(t,function(t){return!!(t&&e.j.o.tuneBlock.popup[t.nodeName.toLowerCase()])},this.j.editor);if(!o||o===this.j.editor||!this.j.o.tuneBlock.popup[o.tagName.toLowerCase()])return this.hide();this.currentBlock=o,this.isShown=!0,this.closeToolbar(),this.calcPosition(),this.container.parentNode||this.j.workplace.append(this.container)}},{key:"hide",value:function(){this.isShown&&(this.isShown=!1,a.Dom.safeRemove(this.container),this.closeToolbar())}},{key:"onEditorScroll",value:function(){this.isShown&&this.calcPosition()}},{key:"calcPosition",value:function(){var e=(0,h.css)(this.j.editor,"marginLeft"),t=(0,h.css)(this.j.editor,"paddingLeft"),o=(0,h.css)(this.j.editor,"marginTop"),n=this.currentBlock.offsetWidth-15+e+t,i=this.currentBlock.offsetTop-this.j.editor.scrollTop+o;(0,h.css)(this.container,{transform:"translate3d(".concat(n,"px, ").concat(i,"px, 0)")}),this.popup.isOpened&&this.popup.updatePosition()}},{key:"onAfterExecTune",value:function(e){e&&(this.currentBlock=e),this.calcPosition(),this.openToolbar()}},{key:"onClickPrevent",value:function(e){e.preventDefault(),e.stopPropagation()}},{key:"onTargetClick",value:function(){this.toggleToolbar()}},{key:"openToolbar",value:function(){if(this.setMod("opened",!0),this.toolbar.build(this.j.o.tuneBlock.popup[this.currentBlock.tagName.toLowerCase()],this.currentBlock),this.popup.setContent(this.toolbar.container),!this.popup.isOpened){var e=this.getElm("handle");(0,h.assert)(null!=e,"Handle element does not exist"),this.popup.open(function(){return(0,h.position)(e)})}}},{key:"closeToolbar",value:function(){this.setMod("opened",!1),this.popup.close()}},{key:"toggleToolbar",value:function(){this.getMod("opened")?this.closeToolbar():this.openToolbar()}}]),t}(p.UIElement);(0,s.__decorate)([(0,l.watch)(":hideTuner.tune")],f.prototype,"hide",null),(0,s.__decorate)([(0,l.watch)("j.editor:scroll"),(0,l.throttle)(10)],f.prototype,"onEditorScroll",null),(0,s.__decorate)([(0,l.watch)(":afterExecTune.tune"),(0,l.idle)()],f.prototype,"onAfterExecTune",null),(0,s.__decorate)([(0,l.watch)("container:click container:mousedown")],f.prototype,"onClickPrevent",null),(0,s.__decorate)([(0,l.watch)("handle:click")],f.prototype,"onTargetClick",null),(0,s.__decorate)([(0,l.watch)(":closeTuner.tune")],f.prototype,"closeToolbar",null),f=(0,s.__decorate)([l.component],f)}},function(e){return e(13152)}])});
8
+ "use strict";!function(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([[576],{8256:function(e,t,o){var n=o(94899),i=o(6441),r=o(22732),c=o(21537),u=["tune.up","tune.remove","tune.down"],s=["tune.h1","tune.h2","tune.h3","\n","tune.h4","tune.h5","tune.h6","\n"].concat((0,n._)(u));function l(e){return{icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><text dominant-baseline="text-before-edge" style="font: 45px sans-serif" x="0" y="0">'+e.toUpperCase()+"</text></svg>",isActive:function(t,o){var n;return(null==o||null==(n=o.target)?void 0:n.tagName.toLowerCase())===e},exec:function(t,o){if(o){t.selection.save();var n=r.Dom.replace(o,e,t.createInside);t.selection.restore(),t.e.fire("synchro"),t.e.fire("afterExecTune.tune",n)}return!0}}}function a(e){var t=e?"previousSibling":"nextSibling";return{icon:e?"angle-up":"angle-down",isDisabled:function(e,o){var n;return!(null==o||null==(n=o.target)?void 0:n[t])},exec:function(o,n){var i=null==n?void 0:n[t];return n&&i&&(o.selection.save(),(0,c.call)(e?r.Dom.before:r.Dom.after,i,n),o.selection.restore()),o.e.fire("synchro"),o.e.fire("afterExecTune.tune"),!0}}}i.Config.prototype.tuneBlock={popup:{p:u,table:u,img:u,blockquote:u,div:u,figure:u,pre:["tune.editPre"].concat((0,n._)(u)),h1:s,h2:s,h3:s,h4:s,h5:s,h6:s}},i.Config.prototype.controls.tune={h1:l("h1"),h2:l("h2"),h3:l("h3"),h4:l("h4"),h5:l("h5"),h6:l("h6"),up:a(!0),down:a(!1),editPre:{icon:"pencil",exec:function(e,t){e.e.fire("editPreInPasteCode",t)}},remove:{icon:"bin",exec:function(e,t){r.Dom.safeRemove(t),e.e.fire("synchro"),e.e.fire("closeTuner.tune"),e.e.fire("hideTuner.tune")}}}},13152:function(e,t,o){o.r(t),o.d(t,{tuneBlock:function(){return f}});var n=o(80294),i=o(20616),r=o(67709),c=o(82749),u=o(18766),s=o(31635),l=o(23078);o(8256);var a=o(40104),h=o(65478),p=o(50911),d=o(2692),f=function(e){function t(){var e;return(0,i._)(this,t),e=(0,n._)(this,t,arguments),(0,c._)(e,"tuner",void 0),e}return(0,u._)(t,e),(0,r._)(t,[{key:"afterInit",value:function(e){this.tuner=new a.UITuner(e)}},{key:"hideTuner",value:function(){this.tuner.hide()}},{key:"onChangeSelection",value:function(){this.j.s.isCollapsed()||this.hideTuner()}},{key:"onClickInBlock",value:function(e){this.j.s.isCollapsed()&&this.tuner.show()}},{key:"beforeDestruct",value:function(e){this.tuner.destruct()}}]),t}((0,l._)(p.Plugin));(0,c._)(f,"requires",["license"]),(0,s.__decorate)([(0,h.watch)(":outsideClick :keydown")],f.prototype,"hideTuner",null),(0,s.__decorate)([(0,h.watch)("j.ed:selectionchange"),(0,h.debounce)()],f.prototype,"onChangeSelection",null),(0,s.__decorate)([(0,h.watch)(":click")],f.prototype,"onClickInBlock",null),d.JoditPro.plugins.add("tune-block",f)},40104:function(e,t,o){o.d(t,{UITuner:function(){return f}});var n=o(80294),i=o(20616),r=o(67709),c=o(82749),u=o(18766),s=o(31635),l=o(65478),a=o(22732),h=o(21537),p=o(67510),d=o(21491),f=function(e){function t(){var e;return(0,i._)(this,t),e=(0,n._)(this,t,arguments),(0,c._)(e,"isShown",!1),(0,c._)(e,"toolbar",(0,d.makeCollection)(e.j,e)),(0,c._)(e,"popup",new p.Popup(e.j,!1)),(0,c._)(e,"currentBlock",void 0),e}return(0,u._)(t,e),(0,r._)(t,[{key:"className",value:function(){return"UITuner"}},{key:"render",value:function(){return"<div>\n <div class='&__handle' title='~Click to tune~'/>\n </div>"}},{key:"show",value:function(){var e=this,t=this.j.s.current();if(!t)return this.hide();var o=a.Dom.isBlock(t)?t:a.Dom.closest(t,function(t){return!!(t&&e.j.o.tuneBlock.popup[t.nodeName.toLowerCase()])},this.j.editor);if(!o||o===this.j.editor||!this.j.o.tuneBlock.popup[o.tagName.toLowerCase()])return this.hide();this.currentBlock=o,this.isShown=!0,this.closeToolbar(),this.calcPosition(),this.container.parentNode||this.j.workplace.append(this.container)}},{key:"hide",value:function(){this.isShown&&(this.isShown=!1,a.Dom.safeRemove(this.container),this.closeToolbar())}},{key:"onEditorScroll",value:function(){this.isShown&&this.calcPosition()}},{key:"calcPosition",value:function(){var e=(0,h.css)(this.j.editor,"marginLeft"),t=(0,h.css)(this.j.editor,"paddingLeft"),o=(0,h.css)(this.j.editor,"marginTop"),n=this.currentBlock.offsetWidth-15+e+t,i=this.currentBlock.offsetTop-this.j.editor.scrollTop+o;(0,h.css)(this.container,{transform:"translate3d(".concat(n,"px, ").concat(i,"px, 0)")}),this.popup.isOpened&&this.popup.updatePosition()}},{key:"onAfterExecTune",value:function(e){e&&(this.currentBlock=e),this.calcPosition(),this.openToolbar()}},{key:"onClickPrevent",value:function(e){e.preventDefault(),e.stopPropagation()}},{key:"onTargetClick",value:function(){this.toggleToolbar()}},{key:"openToolbar",value:function(){if(this.setMod("opened",!0),this.toolbar.build(this.j.o.tuneBlock.popup[this.currentBlock.tagName.toLowerCase()],this.currentBlock),this.popup.setContent(this.toolbar.container),!this.popup.isOpened){var e=this.getElm("handle");(0,h.assert)(null!=e,"Handle element does not exist"),this.popup.open(function(){return(0,h.position)(e)})}}},{key:"closeToolbar",value:function(){this.setMod("opened",!1),this.popup.close()}},{key:"toggleToolbar",value:function(){this.getMod("opened")?this.closeToolbar():this.openToolbar()}}]),t}(p.UIElement);(0,s.__decorate)([(0,l.watch)(":hideTuner.tune")],f.prototype,"hide",null),(0,s.__decorate)([(0,l.watch)("j.editor:scroll"),(0,l.throttle)(10)],f.prototype,"onEditorScroll",null),(0,s.__decorate)([(0,l.watch)(":afterExecTune.tune"),(0,l.idle)()],f.prototype,"onAfterExecTune",null),(0,s.__decorate)([(0,l.watch)("container:click container:mousedown")],f.prototype,"onClickPrevent",null),(0,s.__decorate)([(0,l.watch)("handle:click")],f.prototype,"onTargetClick",null),(0,s.__decorate)([(0,l.watch)(":closeTuner.tune")],f.prototype,"closeToolbar",null),f=(0,s.__decorate)([l.component],f)}},function(e){return e(13152)}])});
@@ -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.18.3
4
+ * Version: v4.18.7
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
package/es5/polyfills.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.18.3
4
+ * Version: v4.18.7
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -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.18.3
4
+ * Version: v4.18.7
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
package/esm/config.d.ts CHANGED
@@ -3,6 +3,9 @@ import type { AutoCompleteDisplayMode } from "./plugins/autocomplete/interface";
3
3
  import type { IAutoCompleteItem } from "./plugins/autocomplete/interface";
4
4
  import type { AutoCompleteSource } from "./plugins/autocomplete/interface";
5
5
  import type { ISnapshotStorage } from "./plugins/backup/interface";
6
+ import type { ChartType } from "./plugins/chart/interface";
7
+ import type { IChartPoint } from "./plugins/chart/interface";
8
+ import type { IControlType } from "jodit/esm/types/index";
6
9
  import type { IEmojiData } from "./plugins/emoji/interface";
7
10
  import type { AjaxOptions } from "jodit/esm/types/index";
8
11
  import type { DeepPartial } from "jodit/esm/types/index";
@@ -20,7 +23,6 @@ import type { ButtonGroup } from "jodit/esm/types/index";
20
23
  import type { ILayoutKeys } from "./plugins/keyboard/interface";
21
24
  import type { CanPromise } from "jodit/esm/types/index";
22
25
  import type { IUIOption } from "jodit/esm/types/index";
23
- import type { IControlType } from "jodit/esm/types/index";
24
26
  import type { IStyleDefinition } from "./plugins/style/interface";
25
27
  import type { ITemplateDefinition } from "./plugins/templates/interface";
26
28
  import type { ITranslateProviderFactory } from "./plugins/translate/interface";
@@ -58,6 +60,30 @@ interface Config {
58
60
  formatDate?: (timestamp: string | Date) => string;
59
61
  };
60
62
  }
63
+ interface Config {
64
+ chart: {
65
+ className: string;
66
+ types: ChartType[];
67
+ defaultType: ChartType;
68
+ defaultTitle: string;
69
+ defaultPoints: IChartPoint[];
70
+ colors: string[];
71
+ defaultBackground: string;
72
+ defaultTextColor: string;
73
+ defaultBorderColor: string;
74
+ allowChangeBackground: boolean;
75
+ allowChangeTextColor: boolean;
76
+ allowChangeBorderColor: boolean;
77
+ fontFamily: string;
78
+ width: number;
79
+ height: number;
80
+ popup: Array<IControlType | string>;
81
+ dialog: {
82
+ width: number;
83
+ height: number;
84
+ };
85
+ };
86
+ }
61
87
  interface Config {
62
88
  emoji: {
63
89
  data: () => Promise<IEmojiData>;
@@ -1 +1 @@
1
- import"jodit/esm/plugins/all.js";import"./paste-from-word/paste-from-word.js";import"./license/license.js";import"./autocomplete/autocomplete.impl.js";import"jodit/esm/plugins/speech-recognize/speech-recognize.js";import"./ai-assistant-pro/ai-assistant-pro.js";import"./backup/backup.js";import"./button-generator/button-generator.js";import"./change-case/change-case.js";import"./color-picker/color-picker.js";import"./emoji/emoji.js";import"./export-docs/export-docs.js";import"./finder/finder.js";import"./google-maps/google-maps.js";import"./google-search/google-search.js";import"./highlight-signature/highlight-signature.js";import"./image-editor-pro/image-editor-pro.js";import"./iframe-editor/iframe-editor.js";import"./keyboard/keyboard.js";import"./mobile-view/mobile-view.js";import"./page-break/page-break.js";import"./paste-code/paste-code.js";import"./show-blocks/show-blocks.js";import"./style/style.js";import"./templates/templates.js";import"./todo-list/todo-list.js";import"./translate/translate.js";import"./tune-block/tune-block.js";
1
+ import"jodit/esm/plugins/all.js";import"./paste-from-word/paste-from-word.js";import"./license/license.js";import"./autocomplete/autocomplete.impl.js";import"jodit/esm/plugins/speech-recognize/speech-recognize.js";import"./ai-assistant-pro/ai-assistant-pro.js";import"./backup/backup.js";import"./button-generator/button-generator.js";import"./change-case/change-case.js";import"./chart/chart.js";import"./color-picker/color-picker.js";import"./emoji/emoji.js";import"./export-docs/export-docs.js";import"./finder/finder.js";import"./google-maps/google-maps.js";import"./google-search/google-search.js";import"./highlight-signature/highlight-signature.js";import"./image-editor-pro/image-editor-pro.js";import"./iframe-editor/iframe-editor.js";import"./keyboard/keyboard.js";import"./mobile-view/mobile-view.js";import"./page-break/page-break.js";import"./paste-code/paste-code.js";import"./show-blocks/show-blocks.js";import"./style/style.js";import"./templates/templates.js";import"./todo-list/todo-list.js";import"./translate/translate.js";import"./tune-block/tune-block.js";
@@ -0,0 +1 @@
1
+ var o='<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> <g fill="none"> <path d="M5 20v-7M12 20V4M19 20v-5M3 20h18"/> </g> </svg> ';export{o as default};
@@ -0,0 +1,56 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IJodit, Nullable } from "jodit/esm/types/index";
7
+ import "./config";
8
+ import { Plugin } from "jodit/esm/core/plugin/index";
9
+ /**
10
+ * Inserts self-contained SVG charts (bar, horizontal bar, line, pie, donut)
11
+ * and lets the user edit them in a dialog or remove them from a popup.
12
+ */
13
+ export declare class Chart extends Plugin {
14
+ static requires: string[];
15
+ buttons: Plugin['buttons'];
16
+ private __dialog;
17
+ private __editor;
18
+ private __popup;
19
+ private __toolbar;
20
+ private __target;
21
+ protected afterInit(jodit: IJodit): void;
22
+ protected beforeDestruct(): void;
23
+ /**
24
+ * Opens the editor dialog for a new chart or for an existing one.
25
+ */
26
+ openEditor(target?: Nullable<Node>): void;
27
+ /**
28
+ * Removes the chart that owns the given node.
29
+ */
30
+ removeChart(target?: Nullable<Node>): void;
31
+ private __save;
32
+ private __getDialog;
33
+ /**
34
+ * Handler: clicking a chart opens its popup; clicking elsewhere closes it.
35
+ */
36
+ protected onClick(e: MouseEvent): void;
37
+ protected onDblClick(e: MouseEvent): void;
38
+ protected onOutsideClick(): void;
39
+ /**
40
+ * Shows the contextual popup (edit / delete) above the chart.
41
+ */
42
+ openPopup(figure: HTMLElement): void;
43
+ closePopup(): void;
44
+ /**
45
+ * Decorates charts that arrived with the value (initial load, paste) and
46
+ * re-renders charts whose box was changed by the resizer.
47
+ */
48
+ protected onChange(): void;
49
+ private __decorateAll;
50
+ /**
51
+ * A figure that carries data but no SVG (e.g. content produced by a
52
+ * backend) is rendered on load.
53
+ */
54
+ private __renderMissing;
55
+ private __syncResized;
56
+ }
@@ -0,0 +1 @@
1
+ var C=Object.defineProperty;var f=(h,t)=>C(h,"name",{value:t,configurable:!0});var n=function(h,t,o,e){var i=arguments.length,s=i<3?t:e===null?e=Object.getOwnPropertyDescriptor(t,o):e,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(h,t,o,e);else for(var _=h.length-1;_>=0;_--)(l=h[_])&&(s=(i<3?l(s):i>3?l(t,o,s):l(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s};import"./config.js";import{UIChartEditor as v}from"./ui/editor/editor.js";import{applyChartData as c,CHART_ATTR as y,createChart as b,decorateChart as P,defaultChartData as D,findChart as a,isChartElement as w,pixels as m,readChartData as d}from"./helpers.js";import{autobind as j,debounce as A,watch as p}from"jodit/esm/core/decorators/index.js";import{Dom as E}from"jodit/esm/core/dom/dom.js";import{toArray as R}from"jodit/esm/core/helpers/array/to-array.js";import{position as O}from"jodit/esm/core/helpers/size/position.js";import{Plugin as k}from"jodit/esm/core/plugin/index.js";import{Button as g}from"jodit/esm/core/ui/button/button/button.js";import{Popup as z}from"jodit/esm/core/ui/popup/popup.js";import{Dialog as S}from"jodit/esm/modules/dialog/dialog.js";import{makeCollection as I}from"jodit/esm/modules/toolbar/factory.js";import{JoditPro as q}from"../../jodit-pro.js";const u=class u extends k{constructor(){super(...arguments),this.buttons=[{name:"chart",group:"insert"}],this.__dialog=null,this.__editor=null,this.__popup=null,this.__toolbar=null,this.__target=null}afterInit(t){t.e.on("openChartEditor",this.openEditor).on("removeChart",this.removeChart).on("isChartEditorOpened",()=>{var o;return!!(!((o=this.__dialog)===null||o===void 0)&&o.isOpened)}),t.registerCommand("insertChart",()=>(this.openEditor(),!1)),this.__decorateAll()}beforeDestruct(){var t,o;this.closePopup(),(t=this.__popup)===null||t===void 0||t.destruct(),(o=this.__dialog)===null||o===void 0||o.destruct()}openEditor(t){const o=a(this.j,t??null),e=o&&d(this.j,o)||D(this.j);this.closePopup(),this.j.s.save();const i=this.__getDialog(),s=this.__editor;s&&(s.setData(e),i.setHeader(this.j.i18n(o?"Edit chart":"Insert chart")).setFooter([g(i,"cancel","Cancel","default").onAction(()=>{i.close()}),g(i,"ok",o?"Save":"Insert","primary").onAction(()=>{this.__save(o,s.getData()),i.close()})]).open())}removeChart(t){const o=a(this.j,t??this.__target);this.closePopup(),o&&(this.j.s.setCursorAfter(o),E.safeRemove(o),this.j.synchronizeValues())}__save(t,o){t?c(this.j,t,o):(t=b(this.j,o),this.j.s.restore(),this.j.s.insertNode(t,!1,!1)),this.j.s.setCursorAfter(t),this.j.synchronizeValues()}__getDialog(){if(!this.__dialog){const{dialog:t}=this.j.o.chart;this.__dialog=new S({language:this.j.o.language,theme:this.j.o.theme,shadowRoot:this.j.o.shadowRoot,events:this.j.o.events}),this.__editor=new v(this.j),this.__dialog.setContent(this.__editor).setSize(t.width,t.height),this.__dialog.e.on("beforeClose",()=>{this.j.s.restore()})}return this.__dialog}onClick(t){const o=a(this.j,t.target);o?this.openPopup(o):this.closePopup()}onDblClick(t){const o=a(this.j,t.target);o&&this.openEditor(o)}onOutsideClick(){this.closePopup()}openPopup(t){if(this.j.o.readonly||!this.j.o.chart.popup.length)return;this.__popup||(this.__popup=new z(this.j,!1),this.__toolbar=I(this.j,this.__popup));const o=this.__popup,e=this.__toolbar;e&&(this.__target=t,e.build(this.j.o.chart.popup,t),o.setContent(e.container),o.isOpened?o.updatePosition():o.open(()=>O(t,this.j)))}closePopup(){var t;this.__target=null,(t=this.__popup)===null||t===void 0||t.close()}onChange(){this.__decorateAll(),this.__target&&!this.j.editor.contains(this.__target)&&this.closePopup()}__decorateAll(){let t=!1;R(this.j.editor.querySelectorAll(`figure[${y}]`)).forEach(o=>{w(o,this.j.o.chart.className)&&(P(this.j,o),t=this.__syncResized(o)||t,t=this.__renderMissing(o)||t)}),t&&this.j.synchronizeValues()}__renderMissing(t){if(t.querySelector("svg"))return!1;const o=d(this.j,t);return o?(c(this.j,t,o),!0):!1}__syncResized(t){const o=d(this.j,t);if(!o)return!1;const e=m(t.style.width)||o.width,i=m(t.style.height)||o.height;return e===o.width&&i===o.height?!1:(c(this.j,t,{...o,width:e,height:i}),!0)}};f(u,"Chart");let r=u;r.requires=["license"],n([j],r.prototype,"openEditor",null),n([j],r.prototype,"removeChart",null),n([p(":click")],r.prototype,"onClick",null),n([p(":dblclick")],r.prototype,"onDblClick",null),n([p(":outsideClick")],r.prototype,"onOutsideClick",null),n([p([":change",":afterSetMode"]),A()],r.prototype,"onChange",null),q.plugins.add("chart",r);export{r as Chart};
@@ -0,0 +1,33 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IControlType } from "jodit/esm/types/index";
7
+ import type { ChartType, IChartPoint } from "./interface";
8
+ declare module 'jodit/esm/config' {
9
+ interface Config {
10
+ chart: {
11
+ className: string;
12
+ types: ChartType[];
13
+ defaultType: ChartType;
14
+ defaultTitle: string;
15
+ defaultPoints: IChartPoint[];
16
+ colors: string[];
17
+ defaultBackground: string;
18
+ defaultTextColor: string;
19
+ defaultBorderColor: string;
20
+ allowChangeBackground: boolean;
21
+ allowChangeTextColor: boolean;
22
+ allowChangeBorderColor: boolean;
23
+ fontFamily: string;
24
+ width: number;
25
+ height: number;
26
+ popup: Array<IControlType | string>;
27
+ dialog: {
28
+ width: number;
29
+ height: number;
30
+ };
31
+ };
32
+ }
33
+ }
@@ -0,0 +1 @@
1
+ import a from"./assets/chart.svg.js";import{Config as t}from"jodit/esm/config.js";import{Icon as r}from"jodit/esm/core/ui/icon.js";t.prototype.chart={className:"jodit-chart",types:["bar","horizontalBar","line","area","pie","donut","radar"],defaultType:"bar",defaultTitle:"Sample chart",defaultPoints:[{label:"Item 1",value:10},{label:"Item 2",value:20},{label:"Item 3",value:15},{label:"Item 4",value:25},{label:"Item 5",value:30}],colors:["#2a78d6","#eb6834","#1baf7a","#eda100","#e87ba4","#008300","#6250d6","#e34948"],defaultBackground:"#ffffff",defaultTextColor:"#111827",defaultBorderColor:"#e5e7eb",allowChangeBackground:!0,allowChangeTextColor:!0,allowChangeBorderColor:!0,fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",width:600,height:400,popup:["chartEdit","chartRemove"],dialog:{width:620,height:720}},t.prototype.controls.chart={tooltip:"Insert chart",icon:"chart",isActive(e){return!!e.e.fire("isChartEditorOpened")},exec(e){e.e.fire("openChartEditor")}},t.prototype.controls.chartEdit={tooltip:"Edit chart",icon:"pencil",exec(e,o){e.e.fire("openChartEditor",o)}},t.prototype.controls.chartRemove={tooltip:"Delete chart",icon:"bin",exec(e,o){e.e.fire("removeChart",o)}},t.prototype.allowResizeTags=new Set([...t.prototype.allowResizeTags,"figure"]),r.set("chart",a);
@@ -0,0 +1,22 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IJodit, Nullable } from "jodit/esm/types/index";
7
+ import type { ChartType, IChartData, IChartPoint } from "./interface";
8
+ export declare const CHART_ATTR = "data-jodit-chart";
9
+ export declare const CHART_TYPES: ChartType[];
10
+ export declare const CHART_TYPE_TITLES: Record<ChartType, string>;
11
+ export declare function isChartType(value: unknown): value is ChartType;
12
+ export declare function normalizePoint(raw: Partial<IChartPoint>): IChartPoint;
13
+ export declare function normalizeChartData(raw: Partial<IChartData>, defaults: IChartData): IChartData;
14
+ export declare function cloneChartData(data: IChartData): IChartData;
15
+ export declare function isChartElement(node: Nullable<Node>, className: string): node is HTMLElement;
16
+ export declare function findChart(jodit: IJodit, node: Nullable<Node>): Nullable<HTMLElement>;
17
+ export declare function readChartData(jodit: IJodit, figure: HTMLElement): Nullable<IChartData>;
18
+ export declare function defaultChartData(jodit: IJodit): IChartData;
19
+ export declare function decorateChart(jodit: IJodit, figure: HTMLElement): void;
20
+ export declare function applyChartData(jodit: IJodit, figure: HTMLElement, data: IChartData): void;
21
+ export declare function createChart(jodit: IJodit, data: IChartData): HTMLElement;
22
+ export declare function pixels(value: string): number;
@@ -0,0 +1 @@
1
+ var s=Object.defineProperty;var e=(t,r)=>s(t,"name",{value:r,configurable:!0});import{renderChart as u}from"./render/index.js";import{Dom as p}from"jodit/esm/core/dom/dom.js";import{isString as i}from"jodit/esm/core/helpers/checker/is-string.js";import{attr as a}from"jodit/esm/core/helpers/utils/attr.js";const l="data-jodit-chart",d=["bar","horizontalBar","line","area","pie","donut","radar"],N={bar:"Bar chart",horizontalBar:"Horizontal bar",line:"Line chart",area:"Area chart",pie:"Pie chart",donut:"Donut chart",radar:"Radar chart"};function C(t){return d.includes(t)}e(C,"isChartType");function c(t){var r;const o=Number(t.value),n={label:String((r=t.label)!==null&&r!==void 0?r:""),value:isFinite(o)?o:0};return t.color&&(n.color=String(t.color)),n}e(c,"normalizePoint");function m(t,r){var o;const n=Number(t.width),h=Number(t.height);return{type:C(t.type)?t.type:r.type,title:String((o=t.title)!==null&&o!==void 0?o:r.title),points:Array.isArray(t.points)?t.points.map(c):r.points.map(c),width:n>0?Math.round(n):r.width,height:h>0?Math.round(h):r.height,background:i(t.background)?t.background:r.background,textColor:i(t.textColor)?t.textColor:r.textColor,borderColor:i(t.borderColor)?t.borderColor:r.borderColor}}e(m,"normalizeChartData");function _(t){return{...t,points:t.points.map(r=>({...r}))}}e(_,"cloneChartData");function x(t,r){return p.isTag(t,"figure")&&(t.hasAttribute(l)||t.classList.contains(r))}e(x,"isChartElement");function k(t,r){return p.closest(r,o=>x(o,t.o.chart.className),t.editor)}e(k,"findChart");function v(t,r){const o=a(r,l);if(!o)return null;try{return m(JSON.parse(o),f(t))}catch{return null}}e(v,"readChartData");function f(t){const{chart:r}=t.o;return{type:r.defaultType,title:r.defaultTitle,points:r.defaultPoints.map(c),width:r.width,height:r.height,background:r.defaultBackground,textColor:r.defaultTextColor,borderColor:r.defaultBorderColor}}e(f,"defaultChartData");function b(t,r){a(r,{class:t.o.chart.className,contenteditable:!1})}e(b,"decorateChart");function g(t,r,o){const{chart:n}=t.o;b(t,r),a(r,l,JSON.stringify(o)),r.style.width=o.width+"px",r.style.maxWidth="100%",r.style.height="",r.innerHTML=u(o,{colors:n.colors,fontFamily:n.fontFamily})}e(g,"applyChartData");function z(t,r){const o=t.createInside.element("figure");return g(t,o,r),o}e(z,"createChart");function B(t){return/^\d+(\.\d+)?px$/.test(t)?Math.round(parseFloat(t)):0}e(B,"pixels");export{l as CHART_ATTR,d as CHART_TYPES,N as CHART_TYPE_TITLES,g as applyChartData,_ as cloneChartData,z as createChart,b as decorateChart,f as defaultChartData,k as findChart,x as isChartElement,C as isChartType,m as normalizeChartData,c as normalizePoint,B as pixels,v as readChartData};
@@ -0,0 +1,34 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ export type ChartType = 'bar' | 'horizontalBar' | 'line' | 'area' | 'pie' | 'donut' | 'radar';
7
+ export interface IChartPoint {
8
+ label: string;
9
+ value: number;
10
+ color?: string;
11
+ }
12
+ export interface IChartData {
13
+ type: ChartType;
14
+ title: string;
15
+ points: IChartPoint[];
16
+ width: number;
17
+ height: number;
18
+ background?: string;
19
+ textColor?: string;
20
+ borderColor?: string;
21
+ }
22
+ export interface IChartRenderOptions {
23
+ colors: string[];
24
+ fontFamily: string;
25
+ }
26
+ export interface IChartTheme {
27
+ surface: string;
28
+ transparent: boolean;
29
+ border: string;
30
+ grid: string;
31
+ ink: string;
32
+ inkMuted: string;
33
+ inkSecondary: string;
34
+ }
File without changes
@@ -0,0 +1,8 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IChartData, IChartRenderOptions } from "../interface";
7
+ export declare function renderBar(data: IChartData, options: IChartRenderOptions): string;
8
+ export declare function renderHorizontalBar(data: IChartData, options: IChartRenderOptions): string;
@@ -0,0 +1 @@
1
+ var F=Object.defineProperty;var k=(n,i)=>F(n,"name",{value:i,configurable:!0});import{BAR_RADIUS as z,chartTheme as E,esc as x,formatValue as u,LABEL_FONT as p,num as o,plotBox as T,pointColor as W,roundedBarPath as A,svgClose as C,svgOpen as L,textWidth as M,TICK_FONT as w,ticks as O,truncate as B,valuePill as _}from"./common.js";function N(n,i){const r=O(n.points),y=r[r.length-1],v=Math.max(...r.map(e=>M(u(e),w))),t=T(n,{x:v+12,y:28,width:0,height:28}),l=E(n),s=[L(n,i)];r.forEach(e=>{const h=t.y+t.height-e/y*t.height;s.push(`<line x1="${o(t.x)}" y1="${o(h)}" x2="${o(t.x+t.width)}" y2="${o(h)}" stroke="${l.grid}" stroke-dasharray="3 3"/>`,`<text x="${o(t.x-8)}" y="${o(h+4)}" font-size="${w}" fill="${l.inkMuted}" text-anchor="end">${x(u(e))}</text>`)});const d=n.points.length||1,g=t.width/d,$=Math.max(2,g*.6),c=t.y+t.height;return n.points.forEach((e,h)=>{const f=W(e,h,i),a=(e.value>0?e.value:0)/y*t.height,b=t.x+h*g+(g-$)/2,m=b+$/2;s.push(`<path d="${A(b,c-a,$,a,z,"top")}" fill="${f}"><title>${x(e.label)}: ${x(u(e.value))}</title></path>`,_(m,c-a-18,e.value,f,l),`<text x="${o(m)}" y="${o(c+20)}" font-size="${p}" fill="${l.inkMuted}" text-anchor="middle">${x(B(e.label))}</text>`)}),s.push(`<line x1="${o(t.x)}" y1="${o(c)}" x2="${o(t.x+t.width)}" y2="${o(c)}" stroke="${l.border}"/>`,C()),s.join("")}k(N,"renderBar");function P(n,i){const r=O(n.points),y=r[r.length-1],v=Math.min(160,Math.max(...n.points.map(e=>M(B(e.label),p)))),t=T(n,{x:v+12,y:8,width:56,height:28}),l=E(n),s=[L(n,i)],d=t.y+t.height;r.forEach(e=>{const h=t.x+e/y*t.width;s.push(`<line x1="${o(h)}" y1="${o(t.y)}" x2="${o(h)}" y2="${o(d)}" stroke="${l.grid}" stroke-dasharray="3 3"/>`,`<text x="${o(h)}" y="${o(d+18)}" font-size="${w}" fill="${l.inkMuted}" text-anchor="middle">${x(u(e))}</text>`)});const g=n.points.length||1,$=t.height/g,c=Math.max(2,$*.6);return n.points.forEach((e,h)=>{const f=W(e,h,i),a=(e.value>0?e.value:0)/y*t.width,b=t.y+h*$+($-c)/2,m=b+c/2;s.push(`<path d="${A(t.x,b,a,c,z,"right")}" fill="${f}"><title>${x(e.label)}: ${x(u(e.value))}</title></path>`,_(t.x+a+12+M(u(e.value),p)/2+8,m,e.value,f,l),`<text x="${o(t.x-12)}" y="${o(m+4.5)}" font-size="${p}" fill="${l.inkMuted}" text-anchor="end">${x(B(e.label))}</text>`)}),s.push(`<line x1="${o(t.x)}" y1="${o(t.y)}" x2="${o(t.x)}" y2="${o(d)}" stroke="${l.border}"/>`,C()),s.join("")}k(P,"renderHorizontalBar");export{N as renderBar,P as renderHorizontalBar};
@@ -0,0 +1,40 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IChartData, IChartPoint, IChartRenderOptions, IChartTheme } from "../interface";
7
+ export declare const PAD = 24;
8
+ export declare const TITLE_HEIGHT = 40;
9
+ export declare const LABEL_FONT = 13;
10
+ export declare const TICK_FONT = 12;
11
+ export declare const TICK_COUNT = 4;
12
+ export declare const BAR_RADIUS = 4;
13
+ export declare const MAX_LABEL = 14;
14
+ export declare const DEFAULT_BACKGROUND = "#ffffff";
15
+ export declare const DEFAULT_TEXT_COLOR = "#111827";
16
+ /**
17
+ * Colors derived from the chart background and text color so grids, axes and
18
+ * secondary labels stay readable on light and dark surfaces alike.
19
+ */
20
+ export declare function chartTheme(data: IChartData): IChartTheme;
21
+ export interface IPlotBox {
22
+ x: number;
23
+ y: number;
24
+ width: number;
25
+ height: number;
26
+ }
27
+ export declare function esc(value: string | number): string;
28
+ export declare function num(value: number): string;
29
+ export declare function formatValue(value: number): string;
30
+ export declare function truncate(label: string, max?: number): string;
31
+ export declare function pointColor(point: IChartPoint, index: number, options: IChartRenderOptions): string;
32
+ export declare function niceStep(rawStep: number): number;
33
+ export declare function ticks(points: IChartPoint[]): number[];
34
+ export declare function textWidth(text: string, fontSize: number): number;
35
+ export declare function plotBox(data: IChartData, margin: IPlotBox): IPlotBox;
36
+ export declare function svgOpen(data: IChartData, options: IChartRenderOptions): string;
37
+ export declare function svgClose(): string;
38
+ export declare function renderTitle(data: IChartData, theme: IChartTheme): string;
39
+ export declare function roundedBarPath(x: number, y: number, width: number, height: number, radius: number, side: 'top' | 'right'): string;
40
+ export declare function valuePill(cx: number, cy: number, value: number, color: string, theme: IChartTheme): string;
@@ -0,0 +1 @@
1
+ var x=Object.defineProperty;var c=(t,n)=>x(t,"name",{value:n,configurable:!0});const M=24,_=40,v=13,L=12,w=4,E=4,B=14,p="#ffffff",a="#111827";function l(t,n){const e=/^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(t);if(!e)return t;const[i,s,u]=[e[1],e[2],e[3]].map(r=>parseInt(r,16));return`rgba(${i}, ${s}, ${u}, ${n})`}c(l,"alpha");function h(t){var n;const e=t.textColor||a,i=(n=t.background)!==null&&n!==void 0?n:p;return{surface:i||p,transparent:!i,border:t.borderColor||l(e,.12),grid:l(e,.12),ink:e,inkSecondary:l(e,.8),inkMuted:l(e,.6)}}c(h,"chartTheme");function $(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}c($,"esc");function o(t){return String(Math.round(t*100)/100)}c(o,"num");function g(t){return o(t).replace(/\B(?=(\d{3})+(?!\d))/g,"\u202F")}c(g,"formatValue");function C(t,n=14){return t.length>n?t.slice(0,n-1)+"\u2026":t}c(C,"truncate");function D(t,n,e){const{colors:i}=e;return t.color||i[n%i.length]||"#2a78d6"}c(D,"pointColor");function d(t){var n;if(t<=0)return 1;const e=Math.pow(10,Math.floor(Math.log10(t))),i=t/e;return((n=[1,2,2.5,5,10].find(r=>r>=i))!==null&&n!==void 0?n:10)*e}c(d,"niceStep");function O(t){const n=Math.max(0,...t.map(u=>u.value>0?u.value:0)),e=d((n||1)/4),i=Math.max(e,Math.ceil(n/e)*e),s=[];for(let u=0;u<=i+e/2;u+=e)s.push(Math.round(u*1e3)/1e3);return s}c(O,"ticks");function T(t,n){return t.length*n*.58}c(T,"textWidth");function k(t,n){const e=24+(t.title?40:0)+n.y;return{x:24+n.x,y:e,width:Math.max(10,t.width-48-n.x-n.width),height:Math.max(10,t.height-e-24-n.height)}}c(k,"plotBox");function I(t,n){const e=h(t),i=t.title?` aria-label="${$(t.title)}"`:"",s=e.transparent?"":`<rect x="0.5" y="0.5" width="${t.width-1}" height="${t.height-1}" rx="12" fill="${e.surface}" stroke="${e.border}"/>`;return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${t.width} ${t.height}" width="100%" role="img"${i} font-family="${$(n.fontFamily)}">`+s+A(t,e)}c(I,"svgOpen");function P(){return"</svg>"}c(P,"svgClose");function A(t,n){return t.title?`<text x="24" y="44" font-size="20" font-weight="600" fill="${n.ink}">${$(t.title)}</text>`:""}c(A,"renderTitle");function b(t,n,e,i,s,u){if(i<=0||e<=0)return"";const r=Math.min(s,e/2,i/2);return u==="top"?[`M${o(t)},${o(n+i)}`,`V${o(n+r)}`,`a${o(r)},${o(r)} 0 0 1 ${o(r)},${o(-r)}`,`h${o(e-r*2)}`,`a${o(r)},${o(r)} 0 0 1 ${o(r)},${o(r)}`,`V${o(n+i)}`,"Z"].join(""):[`M${o(t)},${o(n)}`,`H${o(t+e-r)}`,`a${o(r)},${o(r)} 0 0 1 ${o(r)},${o(r)}`,`v${o(i-r*2)}`,`a${o(r)},${o(r)} 0 0 1 ${o(-r)},${o(r)}`,`H${o(t)}`,"Z"].join("")}c(b,"roundedBarPath");function y(t,n,e,i,s){const u=g(e),r=T(u,13)+16,f=22;return`<rect x="${o(t-r/2)}" y="${o(n-f/2)}" width="${o(r)}" height="${f}" rx="6" fill="${i}" fill-opacity="0.14"/><text x="${o(t)}" y="${o(n+4.5)}" font-size="13" font-weight="600" fill="${s.inkSecondary}" text-anchor="middle">${$(u)}</text>`}c(y,"valuePill");export{E as BAR_RADIUS,p as DEFAULT_BACKGROUND,a as DEFAULT_TEXT_COLOR,v as LABEL_FONT,B as MAX_LABEL,M as PAD,w as TICK_COUNT,L as TICK_FONT,_ as TITLE_HEIGHT,h as chartTheme,$ as esc,g as formatValue,d as niceStep,o as num,k as plotBox,D as pointColor,A as renderTitle,b as roundedBarPath,P as svgClose,I as svgOpen,T as textWidth,O as ticks,C as truncate,y as valuePill};
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IChartData, IChartRenderOptions } from "../interface";
7
+ export declare function renderChart(data: IChartData, options: IChartRenderOptions): string;
@@ -0,0 +1 @@
1
+ var c=Object.defineProperty;var n=(r,e)=>c(r,"name",{value:e,configurable:!0});import{renderBar as f,renderHorizontalBar as m}from"./bar.js";import{renderLine as u}from"./line.js";import{renderPie as t}from"./pie.js";import{renderRadar as a}from"./radar.js";function s(r,e){switch(r.type){case"horizontalBar":return m(r,e);case"line":return u(r,e,!1);case"area":return u(r,e,!0);case"radar":return a(r,e);case"pie":return t(r,e,!1);case"donut":return t(r,e,!0);default:return f(r,e)}}n(s,"renderChart");export{s as renderChart};
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IChartData, IChartRenderOptions } from "../interface";
7
+ export declare function renderLine(data: IChartData, options: IChartRenderOptions, area: boolean): string;
@@ -0,0 +1 @@
1
+ var v=Object.defineProperty;var g=(n,$)=>v(n,"name",{value:$,configurable:!0});import{chartTheme as w,esc as p,formatValue as a,LABEL_FONT as M,num as t,plotBox as T,pointColor as j,svgClose as C,svgOpen as E,textWidth as O,TICK_FONT as k,ticks as z,truncate as B,valuePill as F}from"./common.js";function _(n,$,m){const x=z(n.points),d=x[x.length-1],b=Math.max(...x.map(e=>O(a(e),k))),o=T(n,{x:b+12,y:28,width:0,height:28}),i=w(n),r=[E(n,$)],s=o.y+o.height;x.forEach(e=>{const l=s-e/d*o.height;r.push(`<line x1="${t(o.x)}" y1="${t(l)}" x2="${t(o.x+o.width)}" y2="${t(l)}" stroke="${i.grid}" stroke-dasharray="3 3"/>`,`<text x="${t(o.x-8)}" y="${t(l+4)}" font-size="${k}" fill="${i.inkMuted}" text-anchor="end">${p(a(e))}</text>`)});const L=n.points.length||1,f=o.width/L,u=n.points.length?j(n.points[0],0,$):$.colors[0],h=n.points.map((e,l)=>({x:o.x+l*f+f/2,y:s-(e.value>0?e.value:0)/d*o.height}));if(h.length>1){const e=h.map((l,c)=>`${c?"L":"M"}${t(l.x)},${t(l.y)}`).join("");m&&r.push(`<path d="${e}L${t(h[h.length-1].x)},${t(s)}L${t(h[0].x)},${t(s)}Z" fill="${u}" fill-opacity="0.18"/>`),r.push(`<path d="${e}" fill="none" stroke="${u}" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/>`)}return n.points.forEach((e,l)=>{const{x:c,y}=h[l];r.push(`<circle cx="${t(c)}" cy="${t(y)}" r="5" fill="${u}" stroke="${i.surface}" stroke-width="2"><title>${p(e.label)}: ${p(a(e.value))}</title></circle>`,F(c,y-20,e.value,u,i),`<text x="${t(c)}" y="${t(s+20)}" font-size="${M}" fill="${i.inkMuted}" text-anchor="middle">${p(B(e.label))}</text>`)}),r.push(`<line x1="${t(o.x)}" y1="${t(s)}" x2="${t(o.x+o.width)}" y2="${t(s)}" stroke="${i.border}"/>`,C()),r.join("")}g(_,"renderLine");export{_ as renderLine};
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IChartData, IChartRenderOptions } from "../interface";
7
+ export declare function renderPie(data: IChartData, options: IChartRenderOptions, donut: boolean): string;
@@ -0,0 +1 @@
1
+ var D=Object.defineProperty;var d=(e,l)=>D(e,"name",{value:l,configurable:!0});import{chartTheme as H,esc as m,formatValue as _,LABEL_FONT as T,num as t,PAD as i,plotBox as N,pointColor as A,svgClose as O,svgOpen as W,TITLE_HEIGHT as z,truncate as B}from"./common.js";const G=180,p=26,j=420,S=160;function w(e,l,$,h){return`${t(e+$*Math.cos(h))},${t(l+$*Math.sin(h))}`}d(w,"polar");function F(e,l,$,h,s,n){if(n-s>=Math.PI*2-1e-4){const r=h?` M${t(e-h)},${t(l)} a${t(h)},${t(h)} 0 1 0 ${t(h*2)},0 a${t(h)},${t(h)} 0 1 0 ${t(-h*2)},0`:"";return`M${t(e-$)},${t(l)} a${t($)},${t($)} 0 1 0 ${t($*2)},0 a${t($)},${t($)} 0 1 0 ${t(-$*2)},0${r}`}const a=n-s>Math.PI?1:0,c=[`M${w(e,l,$,s)}`,`A${t($)},${t($)} 0 ${a} 1 ${w(e,l,$,n)}`];return h?c.push(`L${w(e,l,h,n)}`,`A${t(h)},${t(h)} 0 ${a} 0 ${w(e,l,h,s)}`):c.push(`L${t(e)},${t(l)}`),c.join("")+"Z"}d(F,"slicePath");function V(e,l,$){const h=e.points.filter(o=>o.value>0),s=h.reduce((o,f)=>o+f.value,0),n=e.width<j,M=n?e.width-i*2:Math.min(G,Math.max(120,e.width*.3)),a=h.length*p;if(n){const o=i*2+(e.title?z:0)+S+a+i/2;e={...e,height:Math.max(e.height,o)}}const c=N(e,{x:0,y:0,width:n?0:M+i,height:n?a+i/2:0}),r=Math.max(10,Math.min(c.width,c.height)/2-4),b=$?r*.58:0,k=c.x+c.width/2,E=c.y+c.height/2,x=H(e),g=[W(e,l)];let v=-Math.PI/2;h.forEach((o,f)=>{const L=A(o,f,l),u=s?o.value/s*Math.PI*2:0,P=s?Math.round(o.value/s*1e3)/10:0;g.push(`<path d="${F(k,E,r,b,v,v+u)}" fill="${L}" stroke="${x.surface}" stroke-width="2" fill-rule="evenodd"><title>${m(o.label)}: ${m(_(o.value))} (${t(P)}%)</title></path>`),v+=u}),$&&s&&g.push(`<text x="${t(k)}" y="${t(E+7)}" font-size="20" font-weight="600" fill="${x.ink}" text-anchor="middle">${m(_(s))}</text>`);const I=n?i:e.width-i-M,y=Math.max(6,Math.floor((M-22-48)/(T*.58))),C=n?c.y+c.height+i/2+p/2:E-a/2+p/2;return h.forEach((o,f)=>{const L=A(o,f,l),u=C+f*p,P=s?Math.round(o.value/s*1e3)/10:0;g.push(`<rect x="${t(I)}" y="${t(u-7)}" width="14" height="14" rx="4" fill="${L}"/>`,`<text x="${t(I+22)}" y="${t(u+4.5)}" font-size="${T}" fill="${x.inkSecondary}">${m(B(o.label,y))}</text>`,`<text x="${t(I+M)}" y="${t(u+4.5)}" font-size="${T}" fill="${x.inkMuted}" text-anchor="end">${t(P)}%</text>`)}),g.push(O()),g.join("")}d(V,"renderPie");export{V as renderPie};
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IChartData, IChartRenderOptions } from "../interface";
7
+ export declare function renderRadar(data: IChartData, options: IChartRenderOptions): string;
@@ -0,0 +1 @@
1
+ var w=Object.defineProperty;var y=(t,r)=>w(t,"name",{value:r,configurable:!0});import{chartTheme as E,esc as g,formatValue as b,LABEL_FONT as j,num as o,plotBox as T,pointColor as _,svgClose as v,svgOpen as A,TICK_FONT as B,ticks as C,truncate as I}from"./common.js";const O=18;function k(t,r,l,p,i){const e=-Math.PI/2+p/i*Math.PI*2;return{x:t+l*Math.cos(e),y:r+l*Math.sin(e),angle:e}}y(k,"spoke");function P(t){const r=Math.cos(t);return Math.abs(r)<.2?"middle":r>0?"start":"end"}y(P,"anchor");function N(t,r){const l=C(t.points),p=l[l.length-1],i=T(t,{x:60,y:24,width:60,height:24}),e=i.x+i.width/2,h=i.y+i.height/2,f=Math.max(10,Math.min(i.width,i.height)/2-4),u=Math.max(1,t.points.length),a=E(t),x=[A(t,r)],m=t.points.length?_(t.points[0],0,r):r.colors[0];l.forEach((n,s)=>{if(!n)return;const c=n/p*f,$=t.points.map((M,L)=>k(e,h,c,L,u)).map((M,L)=>`${L?"L":"M"}${o(M.x)},${o(M.y)}`).join("");x.push(u>2?`<path d="${$}Z" fill="none" stroke="${a.grid}" stroke-dasharray="3 3"/>`:`<circle cx="${o(e)}" cy="${o(h)}" r="${o(c)}" fill="none" stroke="${a.grid}" stroke-dasharray="3 3"/>`,s===l.length-1?`<text x="${o(e+6)}" y="${o(h-c+12)}" font-size="${B}" fill="${a.inkMuted}">${g(b(n))}</text>`:"")}),t.points.forEach((n,s)=>{const c=k(e,h,f,s,u),$=k(e,h,f+O,s,u);x.push(`<line x1="${o(e)}" y1="${o(h)}" x2="${o(c.x)}" y2="${o(c.y)}" stroke="${a.grid}"/>`,`<text x="${o($.x)}" y="${o($.y+4.5)}" font-size="${j}" fill="${a.inkMuted}" text-anchor="${P($.angle)}">${g(I(n.label))}</text>`)});const d=t.points.map((n,s)=>k(e,h,(n.value>0?n.value:0)/p*f,s,u));if(d.length>1){const n=d.map((s,c)=>`${c?"L":"M"}${o(s.x)},${o(s.y)}`).join("");x.push(`<path d="${n}Z" fill="${m}" fill-opacity="0.18" stroke="${m}" stroke-width="2" stroke-linejoin="round"/>`)}return t.points.forEach((n,s)=>{const{x:c,y:$}=d[s];x.push(`<circle cx="${o(c)}" cy="${o($)}" r="5" fill="${m}" stroke="${a.surface}" stroke-width="2"><title>${g(n.label)}: ${g(b(n.value))}</title></circle>`)}),x.push(v()),x.join("")}y(N,"renderRadar");export{N as renderRadar};
@@ -0,0 +1,52 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IJodit } from "jodit/esm/types/index";
7
+ import type { IChartData } from "../../interface";
8
+ import { UIElement } from "jodit/esm/core/ui/index";
9
+ /**
10
+ * Dialog body of the chart editor: live preview, type/title fields and the
11
+ * editable list of data points.
12
+ */
13
+ export declare class UIChartEditor extends UIElement<IJodit> {
14
+ className(): string;
15
+ state: IChartData;
16
+ private typeSelect;
17
+ private titleInput;
18
+ private addButton;
19
+ private backgroundInput;
20
+ private textColorInput;
21
+ private borderColorInput;
22
+ private transparentButton;
23
+ protected render(): string;
24
+ constructor(jodit: IJodit);
25
+ private syncTransparent;
26
+ private createColorInput;
27
+ private colorField;
28
+ /**
29
+ * Loads a copy of the data into the form.
30
+ */
31
+ setData(data: IChartData): void;
32
+ /**
33
+ * Returns a normalized copy of the edited data.
34
+ */
35
+ getData(): IChartData;
36
+ private addPoint;
37
+ private removePoint;
38
+ private rebuildPoints;
39
+ private createPointRow;
40
+ private __dragIndex;
41
+ /**
42
+ * Native drag and drop of a row. The grip is the draggable element so text
43
+ * selection inside the inputs keeps working.
44
+ */
45
+ private bindDragAndDrop;
46
+ /**
47
+ * Moves a point before or after another one and rebuilds the list.
48
+ */
49
+ movePoint(from: number, to: number, after: boolean): void;
50
+ private refresh;
51
+ private __render;
52
+ }
@@ -0,0 +1,13 @@
1
+ var E=Object.defineProperty;var r=(h,t)=>E(h,"name",{value:t,configurable:!0});var l,b=function(h,t,s,e){var i=arguments.length,o=i<3?t:e===null?e=Object.getOwnPropertyDescriptor(t,s):e,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(h,t,s,e);else for(var a=h.length-1;a>=0;a--)(n=h[a])&&(o=(i<3?n(o):i>3?n(t,s,o):n(t,s))||o);return i>3&&o&&Object.defineProperty(t,s,o),o};import{CHART_TYPE_TITLES as I,cloneChartData as F,normalizePoint as T}from"../../helpers.js";import{renderChart as y}from"../../render/index.js";import{DEFAULT_BACKGROUND as x,DEFAULT_TEXT_COLOR as N,formatValue as D,pointColor as B}from"../../render/common.js";import{component as P,debounce as k}from"jodit/esm/core/decorators/index.js";import{Dom as _}from"jodit/esm/core/dom/dom.js";import{assert as d}from"jodit/esm/core/helpers/utils/assert.js";import{attr as g}from"jodit/esm/core/helpers/utils/attr.js";import{Button as C,UIElement as L,UIInput as m,UISelect as A}from"jodit/esm/core/ui/index.js";let p=(l=class extends L{className(){return"UIChartEditor"}render(){return`<div>
2
+ <div class="&__preview">
3
+ <div class="&__colors"></div>
4
+ <div class="&__canvas"></div>
5
+ </div>
6
+ <div class="&__fields"></div>
7
+ <div class="&__points-header">
8
+ <span class="&__points-title">~Data points~</span>
9
+ <span class="&__summary"></span>
10
+ <span class="&__add"></span>
11
+ </div>
12
+ <div class="&__points"></div>
13
+ </div>`}constructor(t){super(t),this.__dragIndex=-1,this.typeSelect=new A(t,{name:"type",label:"Chart type",options:t.o.chart.types.map(n=>({value:n,text:t.i18n(I[n])})),onChange:r(n=>{this.state.type=n,this.refresh()},"onChange")}),this.titleInput=new m(t,{name:"title",label:"Chart title",placeholder:"Optional",onChange:r(n=>{this.state.title=n,this.refresh()},"onChange")}),this.addButton=C(t,"plus","Add point").onAction(this.addPoint.bind(this));const s=this.getElm("fields");d(s!=null,"fields element does not exist"),s.appendChild(this.typeSelect.container),s.appendChild(this.titleInput.container);const e=this.getElm("add");d(e!=null,"add element does not exist"),e.appendChild(this.addButton.container),this.backgroundInput=this.createColorInput("background",n=>{this.state.background=n,this.syncTransparent()}),this.textColorInput=this.createColorInput("textColor",n=>{this.state.textColor=n}),this.borderColorInput=this.createColorInput("borderColor",n=>{this.state.borderColor=n}),this.transparentButton=t.c.element("button",{type:"button",name:"transparent",class:this.getFullElName("transparent")}),t.e.on(this.transparentButton,"click",()=>{this.state.background=this.state.background?"":this.backgroundInput.value,this.syncTransparent(),this.refresh()});const i=this.getElm("colors");d(i!=null,"colors element does not exist");const{chart:o}=t.o;o.allowChangeBackground&&i.appendChild(this.colorField("Background",this.backgroundInput)),o.allowChangeTextColor&&i.appendChild(this.colorField("Text",this.textColorInput)),o.allowChangeBorderColor&&i.appendChild(this.colorField("Border",this.borderColorInput)),o.allowChangeBackground&&i.appendChild(this.colorField("Transparent",this.transparentButton)),i.childNodes.length||_.safeRemove(i)}syncTransparent(){const t=!this.state.background;this.transparentButton.classList.toggle(this.getFullElName("transparent","active"),t),g(this.transparentButton,"aria-pressed",t)}createColorInput(t,s){const e=this.j.c.element("input",{type:"color",name:t,title:this.j.i18n(t==="background"?"Background":"Text color"),class:this.getFullElName("color-input")});return this.j.e.on(e,"input",()=>{s(e.value),this.refresh()}),e}colorField(t,s){return this.j.c.element("label",{class:this.getFullElName("color-field")},[s,this.j.c.span(this.getFullElName("color-label"),this.j.i18n(t))])}setData(t){this.state=F(t),this.typeSelect.value=this.state.type,this.titleInput.value=this.state.title,this.backgroundInput.value=this.state.background||x,this.textColorInput.value=this.state.textColor||N,this.borderColorInput.value=this.state.borderColor||this.j.o.chart.defaultBorderColor,this.syncTransparent(),this.rebuildPoints(),this.__render()}getData(){return{...this.state,title:this.state.title.trim(),points:this.state.points.map(T)}}addPoint(){var t;const{points:s}=this.state;s.push({label:this.j.i18n("Item")+" "+(s.length+1),value:0}),this.rebuildPoints(),this.refresh();const e=this.getElms("point-label"),i=(t=e[e.length-1])===null||t===void 0?void 0:t.querySelector("input");i?.focus()}removePoint(t){this.state.points.splice(t,1),this.rebuildPoints(),this.refresh()}rebuildPoints(){const t=this.getElm("points");d(t!=null,"points element does not exist"),_.detach(t),this.state.points.forEach((s,e)=>{t.appendChild(this.createPointRow(s,e))})}createPointRow(t,s){const{j:e}=this,i=new m(e,{name:"label",label:"Label",value:t.label,className:this.getFullElName("point-label"),onChange:r(u=>{t.label=u,this.refresh()},"onChange")}),o=new m(e,{name:"value",label:"Value",type:"number",value:t.value,className:this.getFullElName("point-value"),onChange:r(u=>{const v=Number(u);t.value=isFinite(v)?v:0,this.refresh()},"onChange")}),n=e.c.element("input",{type:"color",title:e.i18n("Color"),class:this.getFullElName("point-color"),value:B(t,s,{colors:e.o.chart.colors,fontFamily:""})});e.e.on(n,"input",()=>{t.color=n.value,this.refresh()});const a=C(e,"bin","","default").setMod("variant","remove").onAction(()=>this.removePoint(s));g(a.container,"title",e.i18n("Remove point"));const c=e.c.element("span",{class:this.getFullElName("point-grip"),title:e.i18n("Drag to reorder")}),f=e.c.div(this.getFullElName("point"),[c,i.container,o.container,n,a.container]);return this.bindDragAndDrop(f,c,s),f}bindDragAndDrop(t,s,e){const{j:i}=this,o=r(a=>{t.classList.toggle(this.getFullElName("point","drop","before"),a==="before"),t.classList.toggle(this.getFullElName("point","drop","after"),a==="after")},"dropMod"),n=r(a=>{const c=t.getBoundingClientRect();return a.clientY>c.top+c.height/2},"isAfter");g(s,"draggable",!0),i.e.on(s,"dragstart",a=>{this.__dragIndex=e,t.classList.add(this.getFullElName("point","dragging")),a.dataTransfer&&(a.dataTransfer.effectAllowed="move",a.dataTransfer.setData("text/plain",String(e)),a.dataTransfer.setDragImage(t,10,10))}).on(s,"dragend",()=>{this.__dragIndex=-1,t.classList.remove(this.getFullElName("point","dragging")),this.getElms("point").forEach(a=>{a.classList.remove(this.getFullElName("point","drop","before"),this.getFullElName("point","drop","after"))})}),i.e.on(t,"dragover",a=>{this.__dragIndex<0||this.__dragIndex===e||(a.preventDefault(),a.dataTransfer&&(a.dataTransfer.dropEffect="move"),o(n(a)?"after":"before"))}).on(t,"dragleave",()=>o(null)).on(t,"drop",a=>{this.__dragIndex<0||this.__dragIndex===e||(a.preventDefault(),this.movePoint(this.__dragIndex,e,n(a)),this.__dragIndex=-1)})}movePoint(t,s,e){const{points:i}=this.state;if(t===s||!i[t]||!i[s])return;const[o]=i.splice(t,1);let n=t<s?s-1:s;e&&n++,i.splice(n,0,o),this.rebuildPoints(),this.refresh()}refresh(){this.__render()}__render(){const{chart:t}=this.j.o,s=this.getElm("canvas"),e=this.getElm("summary");if(s&&(s.innerHTML=y(this.state,{colors:t.colors,fontFamily:t.fontFamily})),e){const i=this.state.points.reduce((o,n)=>o+n.value,0);e.textContent=this.state.points.length+" "+this.j.i18n("points")+" \xB7 "+this.j.i18n("Total")+": "+D(i)}}},r(l,"UIChartEditor"),l);b([k(50)],p.prototype,"refresh",null),p=b([P],p);export{p as UIChartEditor};
@@ -1,3 +1,3 @@
1
1
  var f=Object.defineProperty;var c=(e,n)=>f(e,"name",{value:n,configurable:!0});import{Config as h}from"jodit/esm/config.js";import{Dom as l}from"jodit/esm/core/dom/index.js";import{call as v}from"jodit/esm/core/helpers/index.js";const i=["tune.up","tune.remove","tune.down"],s=["tune.h1","tune.h2","tune.h3",`
2
2
  `,"tune.h4","tune.h5","tune.h6",`
3
- `,...i];h.prototype.tuneBlock={popup:{p:i,table:i,img:i,blockquote:i,div:i,pre:["tune.editPre",...i],h1:s,h2:s,h3:s,h4:s,h5:s,h6:s}};function u(e){return{icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><text dominant-baseline="text-before-edge" style="font: 45px sans-serif" x="0" y="0">'+e.toUpperCase()+"</text></svg>",isActive(n,r){var o;return((o=r?.target)===null||o===void 0?void 0:o.tagName.toLowerCase())===e},exec(n,r){if(r){n.selection.save();const o=l.replace(r,e,n.createInside);n.selection.restore(),n.e.fire("synchro"),n.e.fire("afterExecTune.tune",o)}return!0}}}c(u,"headerControl");function a(e){const n=e?"previousSibling":"nextSibling";return{icon:e?"angle-up":"angle-down",isDisabled(r,o){var t;return!(!((t=o?.target)===null||t===void 0)&&t[n])},exec(r,o){const t=o?.[n];return o&&t&&(r.selection.save(),v(e?l.before:l.after,t,o),r.selection.restore()),r.e.fire("synchro"),r.e.fire("afterExecTune.tune"),!0}}}c(a,"moveTo"),h.prototype.controls.tune={h1:u("h1"),h2:u("h2"),h3:u("h3"),h4:u("h4"),h5:u("h5"),h6:u("h6"),up:a(!0),down:a(!1),editPre:{icon:"pencil",exec(e,n){e.e.fire("editPreInPasteCode",n)}},remove:{icon:"bin",exec(e,n){l.safeRemove(n),e.e.fire("synchro"),e.e.fire("closeTuner.tune"),e.e.fire("hideTuner.tune")}}};
3
+ `,...i];h.prototype.tuneBlock={popup:{p:i,table:i,img:i,blockquote:i,div:i,figure:i,pre:["tune.editPre",...i],h1:s,h2:s,h3:s,h4:s,h5:s,h6:s}};function u(e){return{icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><text dominant-baseline="text-before-edge" style="font: 45px sans-serif" x="0" y="0">'+e.toUpperCase()+"</text></svg>",isActive(n,r){var o;return((o=r?.target)===null||o===void 0?void 0:o.tagName.toLowerCase())===e},exec(n,r){if(r){n.selection.save();const o=l.replace(r,e,n.createInside);n.selection.restore(),n.e.fire("synchro"),n.e.fire("afterExecTune.tune",o)}return!0}}}c(u,"headerControl");function a(e){const n=e?"previousSibling":"nextSibling";return{icon:e?"angle-up":"angle-down",isDisabled(r,o){var t;return!(!((t=o?.target)===null||t===void 0)&&t[n])},exec(r,o){const t=o?.[n];return o&&t&&(r.selection.save(),v(e?l.before:l.after,t,o),r.selection.restore()),r.e.fire("synchro"),r.e.fire("afterExecTune.tune"),!0}}}c(a,"moveTo"),h.prototype.controls.tune={h1:u("h1"),h2:u("h2"),h3:u("h3"),h4:u("h4"),h5:u("h5"),h6:u("h6"),up:a(!0),down:a(!1),editPre:{icon:"pencil",exec(e,n){e.e.fire("editPreInPasteCode",n)}},remove:{icon:"bin",exec(e,n){l.safeRemove(n),e.e.fire("synchro"),e.e.fire("closeTuner.tune"),e.e.fire("hideTuner.tune")}}};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jodit-pro",
3
- "version": "4.18.3",
3
+ "version": "4.18.7",
4
4
  "author": "Chupurnov Valerii <chupurnov@gmail.com>",
5
5
  "homepage": "https://xdsoft.net/jodit/pro/",
6
6
  "bugs": {