jodit-pro 4.18.6 → 4.18.8

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 (388) hide show
  1. package/CHANGELOG.md +5 -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 +57 -17
  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 +3 -3
  25. package/es2015/plugins/chart/chart.js +1 -1
  26. package/es2015/plugins/chart/chart.min.css +1 -1
  27. package/es2015/plugins/chart/chart.min.js +1 -1
  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/math/math.css +196 -0
  56. package/es2015/plugins/math/math.js +1472 -0
  57. package/es2015/plugins/math/math.min.css +1 -0
  58. package/es2015/plugins/math/math.min.js +23 -0
  59. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  60. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  61. package/es2015/plugins/page-break/page-break.js +1 -1
  62. package/es2015/plugins/page-break/page-break.min.js +1 -1
  63. package/es2015/plugins/paste-code/paste-code.css +1 -1
  64. package/es2015/plugins/paste-code/paste-code.js +1 -1
  65. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  66. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  67. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  68. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  69. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  70. package/es2015/plugins/style/style.css +1 -1
  71. package/es2015/plugins/style/style.js +1 -1
  72. package/es2015/plugins/style/style.min.js +1 -1
  73. package/es2015/plugins/templates/templates.css +1 -1
  74. package/es2015/plugins/templates/templates.js +1 -1
  75. package/es2015/plugins/templates/templates.min.js +1 -1
  76. package/es2015/plugins/todo-list/todo-list.css +1 -1
  77. package/es2015/plugins/todo-list/todo-list.js +1 -1
  78. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  79. package/es2015/plugins/translate/translate.css +1 -1
  80. package/es2015/plugins/translate/translate.js +1 -1
  81. package/es2015/plugins/translate/translate.min.js +1 -1
  82. package/es2015/plugins/tune-block/tune-block.css +1 -1
  83. package/es2015/plugins/tune-block/tune-block.js +1 -1
  84. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  85. package/es2018/jodit.fat.min.css +1 -1
  86. package/es2018/jodit.fat.min.js +79 -39
  87. package/es2018/jodit.min.css +1 -1
  88. package/es2018/jodit.min.js +64 -39
  89. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  90. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  91. package/es2018/plugins/backup/backup.min.js +1 -1
  92. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  93. package/es2018/plugins/change-case/change-case.min.js +1 -1
  94. package/es2018/plugins/chart/chart.min.css +1 -1
  95. package/es2018/plugins/chart/chart.min.js +1 -1
  96. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  97. package/es2018/plugins/emoji/emoji.min.js +1 -1
  98. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  99. package/es2018/plugins/finder/finder.min.js +1 -1
  100. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  101. package/es2018/plugins/google-search/google-search.min.js +1 -1
  102. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  103. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  104. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  105. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  106. package/es2018/plugins/math/math.min.css +1 -0
  107. package/es2018/plugins/math/math.min.js +23 -0
  108. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  109. package/es2018/plugins/page-break/page-break.min.js +1 -1
  110. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  111. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  112. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  113. package/es2018/plugins/style/style.min.js +1 -1
  114. package/es2018/plugins/templates/templates.min.js +1 -1
  115. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  116. package/es2018/plugins/translate/translate.min.js +1 -1
  117. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  118. package/es2021/jodit.css +2 -2
  119. package/es2021/jodit.fat.min.css +1 -1
  120. package/es2021/jodit.fat.min.js +90 -50
  121. package/es2021/jodit.js +1139 -150
  122. package/es2021/jodit.min.css +1 -1
  123. package/es2021/jodit.min.js +78 -53
  124. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  125. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  126. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  127. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  128. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  129. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  130. package/es2021/plugins/backup/backup.css +1 -1
  131. package/es2021/plugins/backup/backup.js +1 -1
  132. package/es2021/plugins/backup/backup.min.js +1 -1
  133. package/es2021/plugins/button-generator/button-generator.css +1 -1
  134. package/es2021/plugins/button-generator/button-generator.js +1 -1
  135. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  136. package/es2021/plugins/change-case/change-case.js +1 -1
  137. package/es2021/plugins/change-case/change-case.min.js +1 -1
  138. package/es2021/plugins/chart/chart.css +3 -3
  139. package/es2021/plugins/chart/chart.js +1 -1
  140. package/es2021/plugins/chart/chart.min.css +1 -1
  141. package/es2021/plugins/chart/chart.min.js +1 -1
  142. package/es2021/plugins/color-picker/color-picker.css +1 -1
  143. package/es2021/plugins/color-picker/color-picker.js +1 -1
  144. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  145. package/es2021/plugins/emoji/emoji.css +1 -1
  146. package/es2021/plugins/emoji/emoji.js +1 -1
  147. package/es2021/plugins/emoji/emoji.min.js +1 -1
  148. package/es2021/plugins/export-docs/export-docs.js +1 -1
  149. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  150. package/es2021/plugins/finder/finder.css +1 -1
  151. package/es2021/plugins/finder/finder.js +1 -1
  152. package/es2021/plugins/finder/finder.min.js +1 -1
  153. package/es2021/plugins/google-maps/google-maps.css +1 -1
  154. package/es2021/plugins/google-maps/google-maps.js +1 -1
  155. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  156. package/es2021/plugins/google-search/google-search.js +1 -1
  157. package/es2021/plugins/google-search/google-search.min.js +1 -1
  158. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  159. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  160. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  161. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  162. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  163. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  164. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  165. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  166. package/es2021/plugins/keyboard/keyboard.css +1 -1
  167. package/es2021/plugins/keyboard/keyboard.js +1 -1
  168. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  169. package/es2021/plugins/math/math.css +196 -0
  170. package/es2021/plugins/math/math.js +1414 -0
  171. package/es2021/plugins/math/math.min.css +1 -0
  172. package/es2021/plugins/math/math.min.js +23 -0
  173. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  174. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  175. package/es2021/plugins/page-break/page-break.js +1 -1
  176. package/es2021/plugins/page-break/page-break.min.js +1 -1
  177. package/es2021/plugins/paste-code/paste-code.css +1 -1
  178. package/es2021/plugins/paste-code/paste-code.js +1 -1
  179. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  180. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  181. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  182. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  183. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  184. package/es2021/plugins/style/style.css +1 -1
  185. package/es2021/plugins/style/style.js +1 -1
  186. package/es2021/plugins/style/style.min.js +1 -1
  187. package/es2021/plugins/templates/templates.css +1 -1
  188. package/es2021/plugins/templates/templates.js +1 -1
  189. package/es2021/plugins/templates/templates.min.js +1 -1
  190. package/es2021/plugins/todo-list/todo-list.css +1 -1
  191. package/es2021/plugins/todo-list/todo-list.js +1 -1
  192. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  193. package/es2021/plugins/translate/translate.css +1 -1
  194. package/es2021/plugins/translate/translate.js +1 -1
  195. package/es2021/plugins/translate/translate.min.js +1 -1
  196. package/es2021/plugins/tune-block/tune-block.css +1 -1
  197. package/es2021/plugins/tune-block/tune-block.js +1 -1
  198. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  199. package/es2021.en/jodit.css +2 -2
  200. package/es2021.en/jodit.fat.min.css +1 -1
  201. package/es2021.en/jodit.fat.min.js +90 -50
  202. package/es2021.en/jodit.js +1139 -150
  203. package/es2021.en/jodit.min.css +1 -1
  204. package/es2021.en/jodit.min.js +78 -53
  205. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  206. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  207. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  208. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  209. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  210. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  211. package/es2021.en/plugins/backup/backup.css +1 -1
  212. package/es2021.en/plugins/backup/backup.js +1 -1
  213. package/es2021.en/plugins/backup/backup.min.js +1 -1
  214. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  215. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  216. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  217. package/es2021.en/plugins/change-case/change-case.js +1 -1
  218. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  219. package/es2021.en/plugins/chart/chart.css +3 -3
  220. package/es2021.en/plugins/chart/chart.js +1 -1
  221. package/es2021.en/plugins/chart/chart.min.css +1 -1
  222. package/es2021.en/plugins/chart/chart.min.js +1 -1
  223. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  224. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  225. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  226. package/es2021.en/plugins/emoji/emoji.css +1 -1
  227. package/es2021.en/plugins/emoji/emoji.js +1 -1
  228. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  229. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  230. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  231. package/es2021.en/plugins/finder/finder.css +1 -1
  232. package/es2021.en/plugins/finder/finder.js +1 -1
  233. package/es2021.en/plugins/finder/finder.min.js +1 -1
  234. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  235. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  236. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  237. package/es2021.en/plugins/google-search/google-search.js +1 -1
  238. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  239. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  240. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  241. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  242. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  243. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  244. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  245. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  246. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  247. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  248. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  249. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  250. package/es2021.en/plugins/math/math.css +196 -0
  251. package/es2021.en/plugins/math/math.js +1414 -0
  252. package/es2021.en/plugins/math/math.min.css +1 -0
  253. package/es2021.en/plugins/math/math.min.js +23 -0
  254. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  255. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  256. package/es2021.en/plugins/page-break/page-break.js +1 -1
  257. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  258. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  259. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  260. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  261. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  262. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  263. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  264. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  265. package/es2021.en/plugins/style/style.css +1 -1
  266. package/es2021.en/plugins/style/style.js +1 -1
  267. package/es2021.en/plugins/style/style.min.js +1 -1
  268. package/es2021.en/plugins/templates/templates.css +1 -1
  269. package/es2021.en/plugins/templates/templates.js +1 -1
  270. package/es2021.en/plugins/templates/templates.min.js +1 -1
  271. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  272. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  273. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  274. package/es2021.en/plugins/translate/translate.css +1 -1
  275. package/es2021.en/plugins/translate/translate.js +1 -1
  276. package/es2021.en/plugins/translate/translate.min.js +1 -1
  277. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  278. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  279. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  280. package/es5/jodit.css +3 -3
  281. package/es5/jodit.fat.min.css +1 -1
  282. package/es5/jodit.fat.min.js +2 -2
  283. package/es5/jodit.js +1521 -153
  284. package/es5/jodit.min.css +3 -3
  285. package/es5/jodit.min.js +2 -2
  286. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  287. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  288. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  289. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  290. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  291. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  292. package/es5/plugins/backup/backup.css +1 -1
  293. package/es5/plugins/backup/backup.js +1 -1
  294. package/es5/plugins/backup/backup.min.js +1 -1
  295. package/es5/plugins/button-generator/button-generator.css +1 -1
  296. package/es5/plugins/button-generator/button-generator.js +1 -1
  297. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  298. package/es5/plugins/change-case/change-case.js +1 -1
  299. package/es5/plugins/change-case/change-case.min.js +1 -1
  300. package/es5/plugins/chart/chart.css +3 -3
  301. package/es5/plugins/chart/chart.js +1 -1
  302. package/es5/plugins/chart/chart.min.css +1 -1
  303. package/es5/plugins/chart/chart.min.js +1 -1
  304. package/es5/plugins/color-picker/color-picker.css +1 -1
  305. package/es5/plugins/color-picker/color-picker.js +1 -1
  306. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  307. package/es5/plugins/emoji/emoji.css +1 -1
  308. package/es5/plugins/emoji/emoji.js +1 -1
  309. package/es5/plugins/emoji/emoji.min.js +1 -1
  310. package/es5/plugins/export-docs/export-docs.js +1 -1
  311. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  312. package/es5/plugins/finder/finder.css +1 -1
  313. package/es5/plugins/finder/finder.js +1 -1
  314. package/es5/plugins/finder/finder.min.js +1 -1
  315. package/es5/plugins/google-maps/google-maps.css +1 -1
  316. package/es5/plugins/google-maps/google-maps.js +1 -1
  317. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  318. package/es5/plugins/google-search/google-search.js +1 -1
  319. package/es5/plugins/google-search/google-search.min.js +1 -1
  320. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  321. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  322. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  323. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  324. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  325. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  326. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  327. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  328. package/es5/plugins/keyboard/keyboard.css +1 -1
  329. package/es5/plugins/keyboard/keyboard.js +1 -1
  330. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  331. package/es5/plugins/math/math.css +196 -0
  332. package/es5/plugins/math/math.js +1624 -0
  333. package/es5/plugins/math/math.min.css +1 -0
  334. package/es5/plugins/math/math.min.js +8 -0
  335. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  336. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  337. package/es5/plugins/page-break/page-break.js +1 -1
  338. package/es5/plugins/page-break/page-break.min.js +1 -1
  339. package/es5/plugins/paste-code/paste-code.css +1 -1
  340. package/es5/plugins/paste-code/paste-code.js +1 -1
  341. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  342. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  343. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  344. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  345. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  346. package/es5/plugins/style/style.css +1 -1
  347. package/es5/plugins/style/style.js +1 -1
  348. package/es5/plugins/style/style.min.js +1 -1
  349. package/es5/plugins/templates/templates.css +1 -1
  350. package/es5/plugins/templates/templates.js +1 -1
  351. package/es5/plugins/templates/templates.min.js +1 -1
  352. package/es5/plugins/todo-list/todo-list.css +1 -1
  353. package/es5/plugins/todo-list/todo-list.js +1 -1
  354. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  355. package/es5/plugins/translate/translate.css +1 -1
  356. package/es5/plugins/translate/translate.js +1 -1
  357. package/es5/plugins/translate/translate.min.js +1 -1
  358. package/es5/plugins/tune-block/tune-block.css +1 -1
  359. package/es5/plugins/tune-block/tune-block.js +1 -1
  360. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  361. package/es5/polyfills.fat.min.js +1 -1
  362. package/es5/polyfills.js +1 -1
  363. package/es5/polyfills.min.js +1 -1
  364. package/esm/config.d.ts +30 -0
  365. package/esm/plugins/all.js +1 -1
  366. package/esm/plugins/math/assets/math-block.svg.js +1 -0
  367. package/esm/plugins/math/assets/math-inline.svg.js +1 -0
  368. package/esm/plugins/math/assets/math.svg.js +1 -0
  369. package/esm/plugins/math/config.d.ts +34 -0
  370. package/esm/plugins/math/config.js +1 -0
  371. package/esm/plugins/math/helpers.d.ts +33 -0
  372. package/esm/plugins/math/helpers.js +1 -0
  373. package/esm/plugins/math/interface.d.ts +45 -0
  374. package/esm/plugins/math/interface.js +0 -0
  375. package/esm/plugins/math/math.d.ts +66 -0
  376. package/esm/plugins/math/math.js +1 -0
  377. package/esm/plugins/math/mathjax.d.ts +17 -0
  378. package/esm/plugins/math/mathjax.js +1 -0
  379. package/esm/plugins/math/ui/editor/editor.d.ts +56 -0
  380. package/esm/plugins/math/ui/editor/editor.js +16 -0
  381. package/package.json +1 -1
  382. package/types/config.d.ts +30 -0
  383. package/types/plugins/math/config.d.ts +34 -0
  384. package/types/plugins/math/helpers.d.ts +33 -0
  385. package/types/plugins/math/interface.d.ts +45 -0
  386. package/types/plugins/math/math.d.ts +66 -0
  387. package/types/plugins/math/mathjax.d.ts +17 -0
  388. package/types/plugins/math/ui/editor/editor.d.ts +56 -0
@@ -0,0 +1,1414 @@
1
+ /*!
2
+ * jodit-pro - PRO Version of Jodit Editor
3
+ * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
+ * Version: v4.18.8
5
+ * Url: https://xdsoft.net/jodit/pro/
6
+ * License(s): SEE LICENSE IN LICENSE.md
7
+ */
8
+
9
+ (function webpackUniversalModuleDefinition(root, factory) {
10
+ if(typeof exports === 'object' && typeof module === 'object')
11
+ module.exports = factory();
12
+ else if(typeof define === 'function' && define.amd)
13
+ define([], factory);
14
+ else {
15
+ var a = factory();
16
+ for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
17
+ }
18
+ })(self, function() {
19
+ return (self["webpackChunkjodit_pro"] = self["webpackChunkjodit_pro"] || []).push([[680],{
20
+
21
+ /***/ 49417:
22
+ /***/ (function(module) {
23
+
24
+ module.exports = "<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=\"M3 4h18M3 20h18M7 9.5l5 5M12 9.5l-5 5M15 10.5h4M15 13.5h4\"/> </g> </svg>"
25
+
26
+ /***/ }),
27
+
28
+ /***/ 92201:
29
+ /***/ (function(module) {
30
+
31
+ module.exports = "<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=\"M3 12h4M17 12h4M9 9.5l4 5M13 9.5l-4 5\"/> </g> </svg>"
32
+
33
+ /***/ }),
34
+
35
+ /***/ 25733:
36
+ /***/ (function(module) {
37
+
38
+ module.exports = "<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=\"M4 8l6 8M10 8l-6 8M14 9.5h6M14 14.5h6\"/> </g> </svg>"
39
+
40
+ /***/ }),
41
+
42
+ /***/ 65664:
43
+ /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
44
+
45
+ "use strict";
46
+ /* harmony import */ var _assets_math_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25733);
47
+ /* harmony import */ var _assets_math_svg__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_math_svg__WEBPACK_IMPORTED_MODULE_0__);
48
+ /* harmony import */ var _assets_math_block_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49417);
49
+ /* harmony import */ var _assets_math_block_svg__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_math_block_svg__WEBPACK_IMPORTED_MODULE_1__);
50
+ /* harmony import */ var _assets_math_inline_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92201);
51
+ /* harmony import */ var _assets_math_inline_svg__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_assets_math_inline_svg__WEBPACK_IMPORTED_MODULE_2__);
52
+ /* harmony import */ var jodit_esm_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6441);
53
+ /* harmony import */ var jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12153);
54
+ /*!
55
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
56
+ * See LICENSE.md in the project root for license information.
57
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
58
+ */
59
+
60
+
61
+
62
+
63
+ jodit_esm_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.math = {
64
+ className: 'jodit-math',
65
+ mathJaxUrl: 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-svg.js',
66
+ defaultFormat: 'latex',
67
+ defaultDisplay: 'block',
68
+ defaultBackground: '',
69
+ defaultTextColor: '',
70
+ defaultBorderColor: '',
71
+ defaultAlign: 'center',
72
+ defaultWrap: false,
73
+ allowChangeBackground: true,
74
+ allowChangeTextColor: true,
75
+ allowChangeBorderColor: true,
76
+ allowChangeAlign: true,
77
+ allowChangeWrap: true,
78
+ symbols: [
79
+ {
80
+ label: '½',
81
+ latex: '\\frac{1}{2}',
82
+ mathml: '<mfrac><mn>1</mn><mn>2</mn></mfrac>'
83
+ },
84
+ {
85
+ label: '√',
86
+ latex: '\\sqrt{x}',
87
+ mathml: '<msqrt><mi>x</mi></msqrt>'
88
+ },
89
+ {
90
+ label: 'ⁿ√',
91
+ latex: '\\sqrt[n]{x}',
92
+ mathml: '<mroot><mi>x</mi><mi>n</mi></mroot>'
93
+ },
94
+ {
95
+ label: 'x²',
96
+ latex: 'x^{2}',
97
+ mathml: '<msup><mi>x</mi><mn>2</mn></msup>'
98
+ },
99
+ {
100
+ label: 'xₙ',
101
+ latex: 'x_{n}',
102
+ mathml: '<msub><mi>x</mi><mi>n</mi></msub>'
103
+ },
104
+ {
105
+ label: 'x̄',
106
+ latex: '\\bar{x}',
107
+ mathml: '<mover><mi>x</mi><mo>¯</mo></mover>'
108
+ },
109
+ {
110
+ label: 'vec',
111
+ latex: '\\vec{x}',
112
+ mathml: '<mover><mi>x</mi><mo>→</mo></mover>'
113
+ },
114
+ {
115
+ label: 'ẋ',
116
+ latex: '\\dot{x}',
117
+ mathml: '<mover><mi>x</mi><mo>˙</mo></mover>'
118
+ },
119
+ {
120
+ label: '|x|',
121
+ latex: '\\left| x \\right|',
122
+ mathml: '<mrow><mo>|</mo><mi>x</mi><mo>|</mo></mrow>'
123
+ },
124
+ {
125
+ label: '( )',
126
+ latex: '\\left( x \\right)',
127
+ mathml: '<mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow>'
128
+ },
129
+ {
130
+ label: 'Σ',
131
+ latex: '\\sum_{i=1}^{n}',
132
+ mathml: '<munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover>'
133
+ },
134
+ {
135
+ label: '∏',
136
+ latex: '\\prod_{i=1}^{n}',
137
+ mathml: '<munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover>'
138
+ },
139
+ {
140
+ label: '∫',
141
+ latex: '\\int_{a}^{b}',
142
+ mathml: '<msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup>'
143
+ },
144
+ {
145
+ label: '∮',
146
+ latex: '\\oint',
147
+ mathml: '<mo>∮</mo>'
148
+ },
149
+ {
150
+ label: 'lim',
151
+ latex: '\\lim_{x \\to \\infty}',
152
+ mathml: '<munder><mo>lim</mo><mrow><mi>x</mi><mo>→</mo><mi>∞</mi></mrow></munder>'
153
+ },
154
+ {
155
+ label: '∂',
156
+ latex: '\\partial',
157
+ mathml: '<mo>∂</mo>'
158
+ },
159
+ {
160
+ label: '∇',
161
+ latex: '\\nabla',
162
+ mathml: '<mo>∇</mo>'
163
+ },
164
+ {
165
+ label: '∞',
166
+ latex: '\\infty',
167
+ mathml: '<mi>∞</mi>'
168
+ },
169
+ {
170
+ label: '±',
171
+ latex: '\\pm',
172
+ mathml: '<mo>±</mo>'
173
+ },
174
+ {
175
+ label: '×',
176
+ latex: '\\times',
177
+ mathml: '<mo>×</mo>'
178
+ },
179
+ {
180
+ label: '·',
181
+ latex: '\\cdot',
182
+ mathml: '<mo>·</mo>'
183
+ },
184
+ {
185
+ label: '÷',
186
+ latex: '\\div',
187
+ mathml: '<mo>÷</mo>'
188
+ },
189
+ {
190
+ label: '≠',
191
+ latex: '\\neq',
192
+ mathml: '<mo>≠</mo>'
193
+ },
194
+ {
195
+ label: '≤',
196
+ latex: '\\leq',
197
+ mathml: '<mo>≤</mo>'
198
+ },
199
+ {
200
+ label: '≥',
201
+ latex: '\\geq',
202
+ mathml: '<mo>≥</mo>'
203
+ },
204
+ {
205
+ label: '≈',
206
+ latex: '\\approx',
207
+ mathml: '<mo>≈</mo>'
208
+ },
209
+ {
210
+ label: '≡',
211
+ latex: '\\equiv',
212
+ mathml: '<mo>≡</mo>'
213
+ },
214
+ {
215
+ label: '∝',
216
+ latex: '\\propto',
217
+ mathml: '<mo>∝</mo>'
218
+ },
219
+ {
220
+ label: '→',
221
+ latex: '\\to',
222
+ mathml: '<mo>→</mo>'
223
+ },
224
+ {
225
+ label: '⇒',
226
+ latex: '\\Rightarrow',
227
+ mathml: '<mo>⇒</mo>'
228
+ },
229
+ {
230
+ label: '°',
231
+ latex: '^{\\circ}',
232
+ mathml: '<mo>°</mo>'
233
+ },
234
+ {
235
+ label: '∈',
236
+ latex: '\\in',
237
+ mathml: '<mo>∈</mo>'
238
+ },
239
+ {
240
+ label: '∉',
241
+ latex: '\\notin',
242
+ mathml: '<mo>∉</mo>'
243
+ },
244
+ {
245
+ label: '⊂',
246
+ latex: '\\subset',
247
+ mathml: '<mo>⊂</mo>'
248
+ },
249
+ {
250
+ label: '∪',
251
+ latex: '\\cup',
252
+ mathml: '<mo>∪</mo>'
253
+ },
254
+ {
255
+ label: '∩',
256
+ latex: '\\cap',
257
+ mathml: '<mo>∩</mo>'
258
+ },
259
+ {
260
+ label: '∀',
261
+ latex: '\\forall',
262
+ mathml: '<mo>∀</mo>'
263
+ },
264
+ {
265
+ label: '∃',
266
+ latex: '\\exists',
267
+ mathml: '<mo>∃</mo>'
268
+ },
269
+ {
270
+ label: '∅',
271
+ latex: '\\emptyset',
272
+ mathml: '<mi>∅</mi>'
273
+ },
274
+ {
275
+ label: 'π',
276
+ latex: '\\pi',
277
+ mathml: '<mi>π</mi>'
278
+ },
279
+ {
280
+ label: 'θ',
281
+ latex: '\\theta',
282
+ mathml: '<mi>θ</mi>'
283
+ },
284
+ {
285
+ label: 'α',
286
+ latex: '\\alpha',
287
+ mathml: '<mi>α</mi>'
288
+ },
289
+ {
290
+ label: 'β',
291
+ latex: '\\beta',
292
+ mathml: '<mi>β</mi>'
293
+ },
294
+ {
295
+ label: 'γ',
296
+ latex: '\\gamma',
297
+ mathml: '<mi>γ</mi>'
298
+ },
299
+ {
300
+ label: 'λ',
301
+ latex: '\\lambda',
302
+ mathml: '<mi>λ</mi>'
303
+ },
304
+ {
305
+ label: 'μ',
306
+ latex: '\\mu',
307
+ mathml: '<mi>μ</mi>'
308
+ },
309
+ {
310
+ label: 'σ',
311
+ latex: '\\sigma',
312
+ mathml: '<mi>σ</mi>'
313
+ },
314
+ {
315
+ label: 'φ',
316
+ latex: '\\varphi',
317
+ mathml: '<mi>φ</mi>'
318
+ },
319
+ {
320
+ label: 'ω',
321
+ latex: '\\omega',
322
+ mathml: '<mi>ω</mi>'
323
+ },
324
+ {
325
+ label: 'Δ',
326
+ latex: '\\Delta',
327
+ mathml: '<mi>Δ</mi>'
328
+ },
329
+ {
330
+ label: 'Ω',
331
+ latex: '\\Omega',
332
+ mathml: '<mi>Ω</mi>'
333
+ },
334
+ {
335
+ label: 'ħ',
336
+ latex: '\\hbar',
337
+ mathml: '<mi>ℏ</mi>'
338
+ },
339
+ {
340
+ label: '[ ]',
341
+ latex: '\\begin{bmatrix} a & b \\\\ c & d \\end{bmatrix}',
342
+ mathml: '<mrow><mo>[</mo><mtable><mtr><mtd><mi>a</mi></mtd><mtd><mi>b</mi></mtd></mtr><mtr><mtd><mi>c</mi></mtd><mtd><mi>d</mi></mtd></mtr></mtable><mo>]</mo></mrow>'
343
+ }
344
+ ],
345
+ templates: [
346
+ {
347
+ title: 'Quadratic formula',
348
+ latex: 'x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}',
349
+ mathml: '<mi>x</mi><mo>=</mo><mfrac><mrow><mo>−</mo><mi>b</mi><mo>±</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>a</mi><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac>'
350
+ },
351
+ {
352
+ title: 'Pythagorean theorem',
353
+ latex: 'a^2 + b^2 = c^2',
354
+ mathml: '<msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup><mo>=</mo><msup><mi>c</mi><mn>2</mn></msup>'
355
+ },
356
+ {
357
+ title: "Euler's identity",
358
+ latex: 'e^{i\\pi} + 1 = 0',
359
+ mathml: '<msup><mi>e</mi><mrow><mi>i</mi><mi>π</mi></mrow></msup><mo>+</mo><mn>1</mn><mo>=</mo><mn>0</mn>'
360
+ },
361
+ {
362
+ title: 'Mass–energy equivalence',
363
+ latex: 'E = mc^2',
364
+ mathml: '<mi>E</mi><mo>=</mo><mi>m</mi><msup><mi>c</mi><mn>2</mn></msup>'
365
+ },
366
+ {
367
+ title: 'Derivative',
368
+ latex: "f'(x) = \\lim_{h \\to 0} \\frac{f(x+h) - f(x)}{h}",
369
+ mathml: '<msup><mi>f</mi><mo>′</mo></msup><mo>(</mo><mi>x</mi><mo>)</mo><mo>=</mo><munder><mo>lim</mo><mrow><mi>h</mi><mo>→</mo><mn>0</mn></mrow></munder><mfrac><mrow><mi>f</mi><mo>(</mo><mi>x</mi><mo>+</mo><mi>h</mi><mo>)</mo><mo>−</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mi>h</mi></mfrac>'
370
+ },
371
+ {
372
+ title: 'Gaussian integral',
373
+ latex: '\\int_{-\\infty}^{\\infty} e^{-x^2}\\,dx = \\sqrt{\\pi}',
374
+ mathml: '<msubsup><mo>∫</mo><mrow><mo>−</mo><mi>∞</mi></mrow><mi>∞</mi></msubsup><msup><mi>e</mi><mrow><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></msup><mi>d</mi><mi>x</mi><mo>=</mo><msqrt><mi>π</mi></msqrt>'
375
+ },
376
+ {
377
+ title: 'Sum of the first n integers',
378
+ latex: '\\sum_{k=1}^{n} k = \\frac{n(n+1)}{2}',
379
+ mathml: '<munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mi>k</mi><mo>=</mo><mfrac><mrow><mi>n</mi><mo>(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mn>2</mn></mfrac>'
380
+ },
381
+ {
382
+ title: 'Binomial theorem',
383
+ latex: '(a+b)^n = \\sum_{k=0}^{n} \\binom{n}{k} a^{n-k} b^{k}',
384
+ mathml: '<msup><mrow><mo>(</mo><mi>a</mi><mo>+</mo><mi>b</mi><mo>)</mo></mrow><mi>n</mi></msup><mo>=</mo><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mi>n</mi></munderover><mrow><mo>(</mo><mfrac linethickness="0"><mi>n</mi><mi>k</mi></mfrac><mo>)</mo></mrow><msup><mi>a</mi><mrow><mi>n</mi><mo>−</mo><mi>k</mi></mrow></msup><msup><mi>b</mi><mi>k</mi></msup>'
385
+ },
386
+ {
387
+ title: 'Normal distribution',
388
+ latex: 'f(x) = \\frac{1}{\\sigma\\sqrt{2\\pi}} e^{-\\frac{(x-\\mu)^2}{2\\sigma^2}}',
389
+ mathml: '<mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo><mo>=</mo><mfrac><mn>1</mn><mrow><mi>σ</mi><msqrt><mn>2</mn><mi>π</mi></msqrt></mrow></mfrac><msup><mi>e</mi><mrow><mo>−</mo><mfrac><msup><mrow><mo>(</mo><mi>x</mi><mo>−</mo><mi>μ</mi><mo>)</mo></mrow><mn>2</mn></msup><mrow><mn>2</mn><msup><mi>σ</mi><mn>2</mn></msup></mrow></mfrac></mrow></msup>'
390
+ },
391
+ {
392
+ title: 'Matrix 2×2',
393
+ latex: '\\begin{pmatrix} a & b \\\\ c & d \\end{pmatrix}',
394
+ mathml: '<mrow><mo>(</mo><mtable><mtr><mtd><mi>a</mi></mtd><mtd><mi>b</mi></mtd></mtr><mtr><mtd><mi>c</mi></mtd><mtd><mi>d</mi></mtd></mtr></mtable><mo>)</mo></mrow>'
395
+ }
396
+ ],
397
+ popup: [
398
+ 'mathEdit',
399
+ 'mathRemove'
400
+ ],
401
+ dialog: {
402
+ width: 620,
403
+ height: 700
404
+ }
405
+ };
406
+ jodit_esm_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.math = {
407
+ tooltip: 'Insert equation',
408
+ icon: 'math',
409
+ list: {
410
+ block: 'Block equation',
411
+ inline: 'Inline equation'
412
+ },
413
+ childTemplate: (editor, key, value)=>`<span class="jodit-math-list-item">${jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_4__.Icon.get(key === 'block' ? 'math-block' : 'math-inline')}<span>${editor.i18n(value)}</span></span>`,
414
+ isActive (editor) {
415
+ return Boolean(editor.e.fire('isMathEditorOpened'));
416
+ },
417
+ exec (editor) {
418
+ editor.e.fire('openMathEditor');
419
+ },
420
+ childExec (editor, target, { control }) {
421
+ const display = String(control.args?.[0] || 'block');
422
+ editor.e.fire('openMathEditor', null, display);
423
+ }
424
+ };
425
+ jodit_esm_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.mathEdit = {
426
+ tooltip: 'Edit equation',
427
+ icon: 'pencil',
428
+ exec (editor, target) {
429
+ editor.e.fire('openMathEditor', target);
430
+ }
431
+ };
432
+ jodit_esm_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.mathRemove = {
433
+ tooltip: 'Delete equation',
434
+ icon: 'bin',
435
+ exec (editor, target) {
436
+ editor.e.fire('removeMath', target);
437
+ }
438
+ };
439
+ // Block formulas are figures so the core resizer can resize them.
440
+ jodit_esm_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.allowResizeTags = new Set([
441
+ ...jodit_esm_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.allowResizeTags,
442
+ 'figure'
443
+ ]);
444
+ jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_4__.Icon.set('math', (_assets_math_svg__WEBPACK_IMPORTED_MODULE_0___default())).set('math-block', (_assets_math_block_svg__WEBPACK_IMPORTED_MODULE_1___default())).set('math-inline', (_assets_math_inline_svg__WEBPACK_IMPORTED_MODULE_2___default()));
445
+
446
+
447
+ /***/ }),
448
+
449
+ /***/ 84853:
450
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
451
+
452
+ "use strict";
453
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
454
+ /* harmony export */ applyMathData: function() { return /* binding */ applyMathData; },
455
+ /* harmony export */ createMath: function() { return /* binding */ createMath; },
456
+ /* harmony export */ decorateMath: function() { return /* binding */ decorateMath; },
457
+ /* harmony export */ defaultMathData: function() { return /* binding */ defaultMathData; },
458
+ /* harmony export */ findMath: function() { return /* binding */ findMath; },
459
+ /* harmony export */ isMathDisplay: function() { return /* binding */ isMathDisplay; },
460
+ /* harmony export */ isMathElement: function() { return /* binding */ isMathElement; },
461
+ /* harmony export */ mathStyle: function() { return /* binding */ mathStyle; },
462
+ /* harmony export */ mathTag: function() { return /* binding */ mathTag; },
463
+ /* harmony export */ pixels: function() { return /* binding */ pixels; },
464
+ /* harmony export */ readMathData: function() { return /* binding */ readMathData; },
465
+ /* harmony export */ wrapMathML: function() { return /* binding */ wrapMathML; }
466
+ /* harmony export */ });
467
+ /* unused harmony exports MATHML_NS, isMathFormat, isMathAlign, normalizeMathData */
468
+ /* harmony import */ var jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
469
+ /* harmony import */ var jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70799);
470
+ /* harmony import */ var jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29960);
471
+ /*!
472
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
473
+ * See LICENSE.md in the project root for license information.
474
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
475
+ */
476
+
477
+
478
+ const MATH_ATTR = 'data-jodit-math';
479
+ const MATHML_NS = 'http://www.w3.org/1998/Math/MathML';
480
+ const FORMAT_TITLES = {
481
+ latex: 'LaTeX',
482
+ mathml: 'MathML'
483
+ };
484
+ function isMathFormat(value) {
485
+ return value === 'latex' || value === 'mathml';
486
+ }
487
+ function isMathDisplay(value) {
488
+ return value === 'block' || value === 'inline';
489
+ }
490
+ function isMathAlign(value) {
491
+ return value === 'left' || value === 'center' || value === 'right';
492
+ }
493
+ function normalizeMathData(raw, defaults) {
494
+ return {
495
+ format: isMathFormat(raw.format) ? raw.format : defaults.format,
496
+ display: isMathDisplay(raw.display) ? raw.display : defaults.display,
497
+ source: (0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__.isString)(raw.source) ? raw.source : defaults.source,
498
+ background: (0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__.isString)(raw.background) ? raw.background : defaults.background,
499
+ textColor: (0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__.isString)(raw.textColor) ? raw.textColor : defaults.textColor,
500
+ borderColor: (0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__.isString)(raw.borderColor) ? raw.borderColor : defaults.borderColor,
501
+ align: isMathAlign(raw.align) ? raw.align : defaults.align,
502
+ wrap: typeof raw.wrap === 'boolean' ? raw.wrap : defaults.wrap,
503
+ width: Number(raw.width) > 0 ? Math.round(Number(raw.width)) : undefined
504
+ };
505
+ }
506
+ function defaultMathData(jodit, display) {
507
+ const { math } = jodit.o;
508
+ return {
509
+ format: math.defaultFormat,
510
+ display: display ?? math.defaultDisplay,
511
+ source: '',
512
+ background: math.defaultBackground,
513
+ textColor: math.defaultTextColor,
514
+ borderColor: math.defaultBorderColor,
515
+ align: math.defaultAlign,
516
+ wrap: math.defaultWrap
517
+ };
518
+ }
519
+ /**
520
+ * Inline style of the formula element: colors and alignment live on the
521
+ * element itself so they survive outside the editor. The SVG uses
522
+ * `currentColor`, so `color` paints the formula.
523
+ */ function mathStyle(data) {
524
+ const rules = [];
525
+ const boxed = Boolean(data.background || data.borderColor);
526
+ if (data.display === 'block') {
527
+ const align = data.align || 'center';
528
+ rules.push('display: block', data.width ? `width: ${data.width}px` : 'width: fit-content', 'max-width: 100%', 'text-align: center');
529
+ // With wrapping on, a left or right formula floats and the text flows
530
+ // around it, as with images; otherwise it is a block at that edge.
531
+ if (align !== 'center' && data.wrap) {
532
+ rules.push(`float: ${align}`, align === 'left' ? 'margin: 0.5em 1.5em 0.5em 0' : 'margin: 0.5em 0 0.5em 1.5em');
533
+ } else {
534
+ const margins = {
535
+ left: '1em auto 1em 0',
536
+ center: '1em auto',
537
+ right: '1em 0 1em auto'
538
+ };
539
+ rules.push(`margin: ${margins[align]}`);
540
+ }
541
+ } else if (boxed) {
542
+ rules.push('display: inline-block');
543
+ }
544
+ if (data.background) {
545
+ rules.push(`background: ${data.background}`);
546
+ }
547
+ if (data.textColor) {
548
+ rules.push(`color: ${data.textColor}`);
549
+ }
550
+ if (data.borderColor) {
551
+ rules.push(`border: 1px solid ${data.borderColor}`);
552
+ }
553
+ if (boxed) {
554
+ rules.push(data.display === 'block' ? 'padding: 12px 16px' : 'padding: 2px 6px', 'border-radius: 6px');
555
+ }
556
+ return rules.join('; ');
557
+ }
558
+ /**
559
+ * MathJax expects a `<math>` root; bare MathML children are wrapped into one.
560
+ */ function wrapMathML(source, display) {
561
+ const trimmed = source.trim();
562
+ if (/^<math[\s>]/i.test(trimmed)) {
563
+ return trimmed;
564
+ }
565
+ return `<math xmlns="${MATHML_NS}" display="${display}">${trimmed}</math>`;
566
+ }
567
+ function isMathElement(node, className) {
568
+ return jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isHTMLElement(node) && (node.hasAttribute(MATH_ATTR) || node.classList.contains(className));
569
+ }
570
+ function findMath(jodit, node) {
571
+ return jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(node, (n)=>isMathElement(n, jodit.o.math.className), jodit.editor);
572
+ }
573
+ function readMathData(jodit, element) {
574
+ const json = (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__.attr)(element, MATH_ATTR);
575
+ if (!json) {
576
+ return null;
577
+ }
578
+ try {
579
+ return normalizeMathData(JSON.parse(json), defaultMathData(jodit));
580
+ } catch {
581
+ return null;
582
+ }
583
+ }
584
+ function decorateMath(jodit, element) {
585
+ const { className } = jodit.o.math;
586
+ const block = !jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(element, 'span');
587
+ (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__.attr)(element, {
588
+ class: block ? `${className} ${className}_block` : className,
589
+ contenteditable: false
590
+ });
591
+ }
592
+ function applyMathData(jodit, element, data, svg) {
593
+ decorateMath(jodit, element);
594
+ (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__.attr)(element, MATH_ATTR, JSON.stringify(data));
595
+ (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__.attr)(element, 'style', mathStyle(data) || null);
596
+ element.innerHTML = svg;
597
+ // A resized block formula fills its figure; the SVG keeps its ratio
598
+ // because only the width is set and the viewBox provides the height.
599
+ const root = element.querySelector('svg');
600
+ if (root && data.display === 'block' && data.width) {
601
+ (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__.attr)(root, {
602
+ width: '100%',
603
+ height: null
604
+ });
605
+ root.style.verticalAlign = '';
606
+ }
607
+ }
608
+ function pixels(value) {
609
+ return /^\d+(\.\d+)?px$/.test(value) ? Math.round(parseFloat(value)) : 0;
610
+ }
611
+ function mathTag(display) {
612
+ return display === 'block' ? 'figure' : 'span';
613
+ }
614
+ function createMath(jodit, data, svg) {
615
+ const element = jodit.createInside.element(mathTag(data.display));
616
+ applyMathData(jodit, element, data, svg);
617
+ return element;
618
+ }
619
+
620
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
621
+ /* harmony export */ "FORMAT_TITLES", 0, /* binding */ FORMAT_TITLES,
622
+ /* harmony export */ "MATH_ATTR", 0, /* binding */ MATH_ATTR
623
+ /* harmony export */ ]);
624
+
625
+
626
+ /***/ }),
627
+
628
+ /***/ 90484:
629
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
630
+
631
+ "use strict";
632
+ __webpack_require__.r(__webpack_exports__);
633
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
634
+ /* harmony export */ MathPlugin: function() { return /* binding */ MathPlugin; }
635
+ /* harmony export */ });
636
+ /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82749);
637
+ /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635);
638
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65664);
639
+ /* harmony import */ var _ui_editor_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(69428);
640
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84853);
641
+ /* harmony import */ var _mathjax__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17517);
642
+ /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(65478);
643
+ /* harmony import */ var jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2748);
644
+ /* harmony import */ var jodit_esm_core_helpers_array_to_array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(4510);
645
+ /* harmony import */ var jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(70799);
646
+ /* harmony import */ var jodit_esm_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(5700);
647
+ /* harmony import */ var jodit_esm_core_plugin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(50911);
648
+ /* harmony import */ var jodit_esm_core_ui_button_button_button__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(10830);
649
+ /* harmony import */ var jodit_esm_core_ui_popup_popup__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(56917);
650
+ /* harmony import */ var jodit_esm_modules_dialog_dialog__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(78584);
651
+ /* harmony import */ var jodit_esm_modules_toolbar_factory__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(21491);
652
+ /* harmony import */ var jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(2692);
653
+ /*!
654
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
655
+ * See LICENSE.md in the project root for license information.
656
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
657
+ */
658
+
659
+
660
+
661
+
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+ /**
676
+ * Inserts LaTeX / MathML formulas rendered by MathJax as standalone SVG,
677
+ * either as a block or inline, and lets the user edit or remove them.
678
+ */ class MathPlugin extends jodit_esm_core_plugin__WEBPACK_IMPORTED_MODULE_11__.Plugin {
679
+ afterInit(jodit) {
680
+ jodit.e.on('openMathEditor', this.openEditor).on('removeMath', this.removeMath).on('isMathEditorOpened', ()=>Boolean(this.__dialog?.isOpened));
681
+ jodit.registerCommand('insertMath', (_c, _v, display)=>{
682
+ this.openEditor(null, display);
683
+ return false;
684
+ });
685
+ this.__decorateAll();
686
+ }
687
+ beforeDestruct() {
688
+ this.closePopup();
689
+ this.__popup?.destruct();
690
+ this.__dialog?.destruct();
691
+ }
692
+ /**
693
+ * Opens the editor dialog for a new formula or for an existing one.
694
+ */ openEditor(target, display) {
695
+ const element = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.findMath)(this.j, target ?? null);
696
+ const data = element && (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.readMathData)(this.j, element) || (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.defaultMathData)(this.j, (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.isMathDisplay)(display) ? display : undefined);
697
+ this.closePopup();
698
+ this.j.s.save();
699
+ // Start fetching MathJax now so the first preview does not wait for
700
+ // the CDN once the user begins typing.
701
+ (0,_mathjax__WEBPACK_IMPORTED_MODULE_5__.loadMathJax)(this.j).catch(()=>null);
702
+ const dialog = this.__getDialog();
703
+ const editor = this.__editor;
704
+ if (!editor) {
705
+ return;
706
+ }
707
+ editor.setData(data);
708
+ const save = (0,jodit_esm_core_ui_button_button_button__WEBPACK_IMPORTED_MODULE_12__.Button)(dialog, 'ok', 'Save', 'primary').onAction(()=>this.__submit(element));
709
+ this.__saveButton = save;
710
+ save.setState({
711
+ disabled: !data.source
712
+ });
713
+ const left = [
714
+ (0,jodit_esm_core_ui_button_button_button__WEBPACK_IMPORTED_MODULE_12__.Button)(dialog, 'cancel', 'Cancel', 'default').onAction(()=>dialog.close())
715
+ ];
716
+ if (element) {
717
+ left.unshift((0,jodit_esm_core_ui_button_button_button__WEBPACK_IMPORTED_MODULE_12__.Button)(dialog, 'bin', '', 'default').onAction(()=>{
718
+ dialog.close();
719
+ this.removeMath(element);
720
+ }));
721
+ }
722
+ dialog.setHeader(this.j.i18n(element ? 'Edit equation' : 'Insert equation')).setFooter([
723
+ left,
724
+ save
725
+ ]).open();
726
+ editor.focus();
727
+ }
728
+ /**
729
+ * Removes the formula that owns the given node.
730
+ */ removeMath(target) {
731
+ const element = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.findMath)(this.j, target ?? this.__target);
732
+ this.closePopup();
733
+ if (element) {
734
+ this.j.s.setCursorAfter(element);
735
+ jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.safeRemove(element);
736
+ this.j.synchronizeValues();
737
+ }
738
+ }
739
+ __submit(element) {
740
+ const editor = this.__editor;
741
+ const dialog = this.__dialog;
742
+ if (!editor || !dialog) {
743
+ return;
744
+ }
745
+ const data = editor.getData();
746
+ if (!data.source) {
747
+ return;
748
+ }
749
+ ;(0,_mathjax__WEBPACK_IMPORTED_MODULE_5__.renderMath)(this.j, data).then((result)=>{
750
+ if (result.error) {
751
+ throw new Error(result.error);
752
+ }
753
+ dialog.close();
754
+ this.__save(element, data, result.svg);
755
+ }).catch((e)=>{
756
+ this.j.message.error(e.message);
757
+ });
758
+ }
759
+ __save(element, data, svg) {
760
+ if (element && !jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.isTag(element, (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.mathTag)(data.display))) {
761
+ element = jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.replace(element, (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.mathTag)(data.display), this.j.createInside);
762
+ }
763
+ if (element) {
764
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.applyMathData)(this.j, element, data, svg);
765
+ } else {
766
+ element = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.createMath)(this.j, data, svg);
767
+ this.j.s.restore();
768
+ this.__insert(element, data.display);
769
+ }
770
+ this.j.s.setCursorAfter(element);
771
+ this.j.synchronizeValues();
772
+ }
773
+ /**
774
+ * A block formula must not stay inside a paragraph, an inline one is
775
+ * inserted at the caret.
776
+ */ __insert(element, display) {
777
+ this.j.s.insertNode(element, false, false);
778
+ if (display !== 'block') {
779
+ return;
780
+ }
781
+ let parent = element.parentElement;
782
+ while(parent && parent !== this.j.editor){
783
+ jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.after(parent, element);
784
+ if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.isBlock(parent)) {
785
+ if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.isEmpty(parent)) {
786
+ jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.safeRemove(parent);
787
+ }
788
+ break;
789
+ }
790
+ parent = element.parentElement;
791
+ }
792
+ }
793
+ __getDialog() {
794
+ if (!this.__dialog) {
795
+ const { dialog } = this.j.o.math;
796
+ this.__dialog = new jodit_esm_modules_dialog_dialog__WEBPACK_IMPORTED_MODULE_14__.Dialog({
797
+ language: this.j.o.language,
798
+ theme: this.j.o.theme,
799
+ shadowRoot: this.j.o.shadowRoot,
800
+ events: this.j.o.events
801
+ });
802
+ this.__editor = new _ui_editor_editor__WEBPACK_IMPORTED_MODULE_3__.UIMathEditor(this.j, {
803
+ onSubmit: ()=>{
804
+ this.__saveButton?.container.click();
805
+ },
806
+ onChange: (data)=>{
807
+ this.__saveButton?.setState({
808
+ disabled: !data.source
809
+ });
810
+ }
811
+ });
812
+ this.__dialog.setContent(this.__editor).setSize(dialog.width, dialog.height);
813
+ this.__dialog.e.on('beforeClose', ()=>{
814
+ this.j.s.restore();
815
+ });
816
+ }
817
+ return this.__dialog;
818
+ }
819
+ onClick(e) {
820
+ const element = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.findMath)(this.j, e.target);
821
+ if (element) {
822
+ this.openPopup(element);
823
+ } else {
824
+ this.closePopup();
825
+ }
826
+ }
827
+ onDblClick(e) {
828
+ const element = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.findMath)(this.j, e.target);
829
+ if (element) {
830
+ this.openEditor(element);
831
+ }
832
+ }
833
+ onOutsideClick() {
834
+ this.closePopup();
835
+ }
836
+ /**
837
+ * Shows the contextual popup (edit / delete) at the formula.
838
+ */ openPopup(element) {
839
+ if (this.j.o.readonly || !this.j.o.math.popup.length) {
840
+ return;
841
+ }
842
+ if (!this.__popup) {
843
+ this.__popup = new jodit_esm_core_ui_popup_popup__WEBPACK_IMPORTED_MODULE_13__.Popup(this.j, false);
844
+ this.__toolbar = (0,jodit_esm_modules_toolbar_factory__WEBPACK_IMPORTED_MODULE_15__.makeCollection)(this.j, this.__popup);
845
+ }
846
+ const popup = this.__popup;
847
+ const toolbar = this.__toolbar;
848
+ if (!toolbar) {
849
+ return;
850
+ }
851
+ this.__target = element;
852
+ toolbar.build(this.j.o.math.popup, element);
853
+ popup.setContent(toolbar.container);
854
+ if (popup.isOpened) {
855
+ popup.updatePosition();
856
+ } else {
857
+ popup.open(()=>(0,jodit_esm_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_10__.position)(element, this.j));
858
+ }
859
+ }
860
+ closePopup() {
861
+ this.__target = null;
862
+ this.__popup?.close();
863
+ }
864
+ /**
865
+ * An inline formula that carries data but no SVG is an empty `<span>`,
866
+ * which the core cleaner drops before MathJax can fill it. The source is
867
+ * written into such elements as a placeholder; the render replaces it.
868
+ */ onBeforeSetValue(value) {
869
+ if (!(0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_9__.isString)(value) || !value.includes(_helpers__WEBPACK_IMPORTED_MODULE_4__.MATH_ATTR)) {
870
+ return;
871
+ }
872
+ const box = this.j.c.div();
873
+ box.innerHTML = value;
874
+ let changed = false;
875
+ (0,jodit_esm_core_helpers_array_to_array__WEBPACK_IMPORTED_MODULE_8__.toArray)(box.querySelectorAll(`[${_helpers__WEBPACK_IMPORTED_MODULE_4__.MATH_ATTR}]`)).forEach((element)=>{
876
+ const data = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.readMathData)(this.j, element);
877
+ if (data && !element.querySelector('svg') && !element.textContent) {
878
+ element.textContent = data.source;
879
+ changed = true;
880
+ }
881
+ });
882
+ return changed ? box.innerHTML : undefined;
883
+ }
884
+ /**
885
+ * Decorates formulas that arrived with the value and renders the ones
886
+ * that carry data but no SVG yet.
887
+ */ onChange() {
888
+ this.__decorateAll();
889
+ if (this.__target && !this.j.editor.contains(this.__target)) {
890
+ this.closePopup();
891
+ }
892
+ }
893
+ __decorateAll() {
894
+ let changed = false;
895
+ (0,jodit_esm_core_helpers_array_to_array__WEBPACK_IMPORTED_MODULE_8__.toArray)(this.j.editor.querySelectorAll(`[${_helpers__WEBPACK_IMPORTED_MODULE_4__.MATH_ATTR}]`)).forEach((element)=>{
896
+ if (!(0,_helpers__WEBPACK_IMPORTED_MODULE_4__.isMathElement)(element, this.j.o.math.className)) {
897
+ return;
898
+ }
899
+ ;(0,_helpers__WEBPACK_IMPORTED_MODULE_4__.decorateMath)(this.j, element);
900
+ if (!element.querySelector('svg')) {
901
+ this.__renderMissing(element);
902
+ } else {
903
+ changed = this.__syncResized(element) || changed;
904
+ }
905
+ });
906
+ if (changed) {
907
+ this.j.synchronizeValues();
908
+ }
909
+ }
910
+ /**
911
+ * The core resizer sets a pixel box on the figure; the width goes into
912
+ * the data and the explicit height is dropped so the SVG keeps its ratio.
913
+ */ __syncResized(element) {
914
+ const data = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.readMathData)(this.j, element);
915
+ if (!data || data.display !== 'block') {
916
+ return false;
917
+ }
918
+ const width = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.pixels)(element.style.width);
919
+ const height = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.pixels)(element.style.height);
920
+ if ((!width || width === data.width) && !height) {
921
+ return false;
922
+ }
923
+ const svg = element.querySelector('svg');
924
+ if (!svg) {
925
+ return false;
926
+ }
927
+ ;(0,_helpers__WEBPACK_IMPORTED_MODULE_4__.applyMathData)(this.j, element, {
928
+ ...data,
929
+ width: width || data.width
930
+ }, svg.outerHTML);
931
+ return true;
932
+ }
933
+ __renderMissing(element) {
934
+ const data = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.readMathData)(this.j, element);
935
+ if (!data || !data.source) {
936
+ return;
937
+ }
938
+ ;(0,_mathjax__WEBPACK_IMPORTED_MODULE_5__.renderMath)(this.j, data).then((result)=>{
939
+ if (this.j.editor.contains(element)) {
940
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.applyMathData)(this.j, element, data, result.svg);
941
+ this.j.synchronizeValues();
942
+ }
943
+ }).catch(()=>null);
944
+ }
945
+ constructor(...args){
946
+ super(...args), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "buttons", [
947
+ {
948
+ name: 'math',
949
+ group: 'insert'
950
+ }
951
+ ]), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__dialog", null), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__editor", null), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__saveButton", null), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__popup", null), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__toolbar", null), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__target", null);
952
+ }
953
+ }
954
+ ;(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(MathPlugin, "requires", [
955
+ 'license'
956
+ ]);
957
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
958
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_6__.autobind
959
+ ], MathPlugin.prototype, "openEditor", null);
960
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
961
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_6__.autobind
962
+ ], MathPlugin.prototype, "removeMath", null);
963
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
964
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_6__.watch)(':click')
965
+ ], MathPlugin.prototype, "onClick", null);
966
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
967
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_6__.watch)(':dblclick')
968
+ ], MathPlugin.prototype, "onDblClick", null);
969
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
970
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_6__.watch)(':outsideClick')
971
+ ], MathPlugin.prototype, "onOutsideClick", null);
972
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
973
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_6__.watch)(':beforeSetValueToEditor')
974
+ ], MathPlugin.prototype, "onBeforeSetValue", null);
975
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
976
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_6__.watch)([
977
+ ':change',
978
+ ':afterSetMode'
979
+ ]),
980
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_6__.debounce)()
981
+ ], MathPlugin.prototype, "onChange", null);
982
+ jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_16__.JoditPro.plugins.add('math', MathPlugin);
983
+
984
+
985
+ /***/ }),
986
+
987
+ /***/ 17517:
988
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
989
+
990
+ "use strict";
991
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
992
+ /* harmony export */ loadMathJax: function() { return /* binding */ loadMathJax; },
993
+ /* harmony export */ renderMath: function() { return /* binding */ renderMath; }
994
+ /* harmony export */ });
995
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84853);
996
+ /* harmony import */ var jodit_esm_core_helpers_utils_append_script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63799);
997
+ /* harmony import */ var jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29960);
998
+ /*!
999
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
1000
+ * See LICENSE.md in the project root for license information.
1001
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
1002
+ */
1003
+
1004
+
1005
+ /**
1006
+ * Resolves the MathJax instance of the owner window, loading it from
1007
+ * `math.mathJaxUrl` on first use. A MathJax that the host page already
1008
+ * loaded is reused as is.
1009
+ */ function loadMathJax(jodit) {
1010
+ const win = jodit.ow;
1011
+ if (win.MathJax?.tex2svg) {
1012
+ return Promise.resolve(win.MathJax);
1013
+ }
1014
+ if (!win.MathJax) {
1015
+ win.MathJax = {
1016
+ svg: {
1017
+ fontCache: 'local'
1018
+ },
1019
+ startup: {
1020
+ typeset: false
1021
+ }
1022
+ };
1023
+ }
1024
+ return (0,jodit_esm_core_helpers_utils_append_script__WEBPACK_IMPORTED_MODULE_1__.appendScriptAsync)(jodit, jodit.o.math.mathJaxUrl).then(()=>win.MathJax?.startup?.promise).then(()=>{
1025
+ if (!win.MathJax?.tex2svg) {
1026
+ throw new Error('MathJax did not initialize');
1027
+ }
1028
+ return win.MathJax;
1029
+ });
1030
+ }
1031
+ /**
1032
+ * Renders the formula to a standalone SVG string.
1033
+ */ function renderMath(jodit, data) {
1034
+ return loadMathJax(jodit).then((mathJax)=>{
1035
+ const display = data.display === 'block';
1036
+ mathJax.texReset?.();
1037
+ const container = data.format === 'mathml' ? mathJax.mathml2svg((0,_helpers__WEBPACK_IMPORTED_MODULE_0__.wrapMathML)(data.source, data.display), {
1038
+ display
1039
+ }) : mathJax.tex2svg(data.source, {
1040
+ display
1041
+ });
1042
+ const svg = container.querySelector('svg');
1043
+ if (!svg) {
1044
+ throw new Error('MathJax did not return an SVG');
1045
+ }
1046
+ const errorNode = svg.querySelector('[data-mjx-error]');
1047
+ const error = errorNode ? (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__.attr)(errorNode, 'data-mjx-error') || 'Syntax error' : undefined;
1048
+ (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__.attr)(svg, {
1049
+ role: 'img',
1050
+ 'aria-label': data.source,
1051
+ focusable: null
1052
+ });
1053
+ return {
1054
+ svg: svg.outerHTML,
1055
+ error
1056
+ };
1057
+ });
1058
+ }
1059
+
1060
+
1061
+ /***/ }),
1062
+
1063
+ /***/ 69428:
1064
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1065
+
1066
+ "use strict";
1067
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1068
+ /* harmony export */ UIMathEditor: function() { return /* binding */ UIMathEditor; }
1069
+ /* harmony export */ });
1070
+ /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82749);
1071
+ /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635);
1072
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84853);
1073
+ /* harmony import */ var _mathjax__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17517);
1074
+ /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65478);
1075
+ /* harmony import */ var jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(38837);
1076
+ /* harmony import */ var jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(29960);
1077
+ /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(67510);
1078
+ /*!
1079
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
1080
+ * See LICENSE.md in the project root for license information.
1081
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
1082
+ */
1083
+
1084
+
1085
+
1086
+
1087
+
1088
+
1089
+
1090
+
1091
+ const FORMATS = [
1092
+ 'latex',
1093
+ 'mathml'
1094
+ ];
1095
+ const PLACEHOLDERS = {
1096
+ latex: 'e.g. x^2 + y^2 = r^2',
1097
+ mathml: 'e.g. <msup><mi>x</mi><mn>2</mn></msup>'
1098
+ };
1099
+ class UIMathEditor extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_7__.UIElement {
1100
+ className() {
1101
+ return 'UIMathEditor';
1102
+ }
1103
+ render() {
1104
+ return `<div>
1105
+ <div class="&__head">
1106
+ <div class="&__tabs"></div>
1107
+ <div class="&__templates"></div>
1108
+ </div>
1109
+ <div class="&__symbols"></div>
1110
+ <div class="&__source"></div>
1111
+ <div class="&__preview-title">~Preview~</div>
1112
+ <div class="&__preview">
1113
+ <div class="&__appearance"></div>
1114
+ <div class="&__canvas">
1115
+ <span class="&__placeholder">~Your equation will render here~</span>
1116
+ </div>
1117
+ </div>
1118
+ <div class="&__error"></div>
1119
+ </div>`;
1120
+ }
1121
+ /**
1122
+ * Color swatches and the alignment switch shown in the preview corner.
1123
+ */ buildAppearance() {
1124
+ const { j } = this;
1125
+ const { math } = j.o;
1126
+ const box = this.getElm('appearance');
1127
+ (0,jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_5__.assert)(box != null, 'appearance element does not exist');
1128
+ const fields = [
1129
+ [
1130
+ 'background',
1131
+ 'Background',
1132
+ math.allowChangeBackground
1133
+ ],
1134
+ [
1135
+ 'textColor',
1136
+ 'Text',
1137
+ math.allowChangeTextColor
1138
+ ],
1139
+ [
1140
+ 'borderColor',
1141
+ 'Border',
1142
+ math.allowChangeBorderColor
1143
+ ]
1144
+ ];
1145
+ fields.forEach(([name, label, allowed])=>{
1146
+ if (allowed) {
1147
+ box.appendChild(this.colorField(name, label));
1148
+ }
1149
+ });
1150
+ if (math.allowChangeAlign) {
1151
+ this.alignBox = j.c.div(this.getFullElName('align'));
1152
+ [
1153
+ 'left',
1154
+ 'center',
1155
+ 'right'
1156
+ ].forEach((align)=>{
1157
+ const button = (0,jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_7__.Button)(j, align, '', 'initial').onAction(()=>{
1158
+ this.state.align = align;
1159
+ this.syncAppearance();
1160
+ this.__render();
1161
+ });
1162
+ (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_6__.attr)(button.container, 'data-align', align);
1163
+ this.alignButtons[align] = button;
1164
+ this.alignBox?.appendChild(button.container);
1165
+ });
1166
+ if (math.allowChangeWrap) {
1167
+ this.wrapButton = (0,jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_7__.Button)(j, '', 'Wrap text', 'initial').onAction(()=>{
1168
+ this.state.wrap = !this.state.wrap;
1169
+ this.syncAppearance();
1170
+ this.__render();
1171
+ });
1172
+ (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_6__.attr)(this.wrapButton.container, 'name', 'wrap');
1173
+ this.alignBox.appendChild(this.wrapButton.container);
1174
+ }
1175
+ box.appendChild(this.alignBox);
1176
+ }
1177
+ if (!box.childNodes.length) {
1178
+ box.remove();
1179
+ }
1180
+ }
1181
+ colorField(name, label) {
1182
+ const { j } = this;
1183
+ const input = j.c.element('input', {
1184
+ type: 'color',
1185
+ name,
1186
+ class: this.getFullElName('color-input')
1187
+ });
1188
+ j.e.on(input, 'input', ()=>{
1189
+ this.state[name] = input.value;
1190
+ this.syncAppearance();
1191
+ this.__render();
1192
+ });
1193
+ const reset = j.c.element('button', {
1194
+ type: 'button',
1195
+ name: `${name}Reset`,
1196
+ title: j.i18n('None'),
1197
+ class: this.getFullElName('color-reset')
1198
+ });
1199
+ reset.textContent = '×';
1200
+ j.e.on(reset, 'click', ()=>{
1201
+ this.state[name] = '';
1202
+ this.syncAppearance();
1203
+ this.__render();
1204
+ });
1205
+ this.colorInputs[name] = input;
1206
+ return j.c.element('label', {
1207
+ class: this.getFullElName('color-field')
1208
+ }, [
1209
+ input,
1210
+ j.c.span(this.getFullElName('color-label'), j.i18n(label)),
1211
+ reset
1212
+ ]);
1213
+ }
1214
+ /**
1215
+ * Mirrors the appearance part of the state into the controls.
1216
+ */ syncAppearance() {
1217
+ Object.keys(this.colorInputs).forEach((name)=>{
1218
+ const input = this.colorInputs[name];
1219
+ if (!input) {
1220
+ return;
1221
+ }
1222
+ const value = this.state[name] || '';
1223
+ input.classList.toggle(this.getFullElName('color-input', 'empty'), !value);
1224
+ if (value) {
1225
+ input.value = value;
1226
+ }
1227
+ });
1228
+ Object.keys(this.alignButtons).forEach((align)=>{
1229
+ this.alignButtons[align]?.setState({
1230
+ variant: this.state.align === align ? 'primary' : 'initial'
1231
+ });
1232
+ });
1233
+ if (this.alignBox) {
1234
+ this.alignBox.style.display = this.state.display === 'block' ? '' : 'none';
1235
+ }
1236
+ if (this.wrapButton) {
1237
+ const floating = this.state.align !== 'center';
1238
+ this.wrapButton.container.style.display = floating ? '' : 'none';
1239
+ this.wrapButton.setState({
1240
+ variant: this.state.wrap && floating ? 'primary' : 'initial'
1241
+ });
1242
+ }
1243
+ }
1244
+ /**
1245
+ * Loads a copy of the data into the form and renders the preview.
1246
+ */ setData(data) {
1247
+ this.state = {
1248
+ ...data
1249
+ };
1250
+ this.drafts = {
1251
+ latex: '',
1252
+ mathml: ''
1253
+ };
1254
+ this.drafts[data.format] = data.source;
1255
+ this.syncAppearance();
1256
+ this.setFormat(data.format);
1257
+ }
1258
+ getData() {
1259
+ return {
1260
+ ...this.state,
1261
+ source: this.state.source.trim()
1262
+ };
1263
+ }
1264
+ focus() {
1265
+ this.source.focus();
1266
+ }
1267
+ setFormat(format) {
1268
+ this.state.format = format;
1269
+ this.state.source = this.drafts[format];
1270
+ FORMATS.forEach((f)=>{
1271
+ this.tabs[f]?.setMod('active', f === format);
1272
+ this.tabs[f]?.setState({
1273
+ variant: f === format ? 'primary' : 'initial'
1274
+ });
1275
+ });
1276
+ this.source.state.label = _helpers__WEBPACK_IMPORTED_MODULE_2__.FORMAT_TITLES[format];
1277
+ this.source.state.placeholder = PLACEHOLDERS[format];
1278
+ this.source.value = this.state.source;
1279
+ this.handlers.onChange(this.getData());
1280
+ this.__render();
1281
+ }
1282
+ /**
1283
+ * Replaces the source with a predefined formula in the active format.
1284
+ */ applyTemplate(value) {
1285
+ const template = this.j.o.math.templates[Number(value)];
1286
+ if (value === '' || !template || !this.templates) {
1287
+ return;
1288
+ }
1289
+ this.source.value = this.state.format === 'mathml' ? template.mathml : template.latex;
1290
+ this.templates.value = '';
1291
+ this.source.focus();
1292
+ }
1293
+ insertSymbol(snippet) {
1294
+ const input = this.source.nativeInput;
1295
+ const start = input.selectionStart ?? input.value.length;
1296
+ const end = input.selectionEnd ?? start;
1297
+ input.setRangeText(snippet, start, end, 'end');
1298
+ input.focus();
1299
+ // The native value already changed, so the input must announce it
1300
+ // itself for the state, the save button and the preview to follow.
1301
+ this.j.e.fire(input, 'input');
1302
+ }
1303
+ refresh() {
1304
+ this.__render();
1305
+ }
1306
+ __render() {
1307
+ const preview = this.getElm('canvas');
1308
+ const error = this.getElm('error');
1309
+ const data = this.getData();
1310
+ const id = ++this.renderId;
1311
+ if (!preview || !error) {
1312
+ return;
1313
+ }
1314
+ error.textContent = '';
1315
+ (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_6__.attr)(preview, 'style', (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.mathStyle)(data) || null);
1316
+ if (!data.source) {
1317
+ preview.innerHTML = `<span class="${this.getFullElName('placeholder')}">${this.j.i18n('Your equation will render here')}</span>`;
1318
+ return;
1319
+ }
1320
+ ;(0,_mathjax__WEBPACK_IMPORTED_MODULE_3__.renderMath)(this.j, data).then((result)=>{
1321
+ if (id !== this.renderId) {
1322
+ return;
1323
+ }
1324
+ preview.innerHTML = result.svg;
1325
+ error.textContent = result.error ?? '';
1326
+ }).catch((e)=>{
1327
+ if (id === this.renderId) {
1328
+ error.textContent = e.message;
1329
+ }
1330
+ });
1331
+ }
1332
+ constructor(jodit, handlers){
1333
+ super(jodit), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "handlers", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "state", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "tabs", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "source", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "templates", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "colorInputs", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "alignButtons", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "alignBox", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "wrapButton", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "drafts", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "renderId", void 0), this.handlers = handlers, this.tabs = {}, this.templates = null, this.colorInputs = {}, this.alignButtons = {}, this.alignBox = null, this.wrapButton = null, this.drafts = {
1334
+ latex: '',
1335
+ mathml: ''
1336
+ }, this.renderId = 0;
1337
+ const tabs = this.getElm('tabs');
1338
+ (0,jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_5__.assert)(tabs != null, 'tabs element does not exist');
1339
+ FORMATS.forEach((format)=>{
1340
+ const button = (0,jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_7__.Button)(jodit, '', _helpers__WEBPACK_IMPORTED_MODULE_2__.FORMAT_TITLES[format]).onAction(()=>this.setFormat(format));
1341
+ (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_6__.attr)(button.container, 'data-format', format);
1342
+ this.tabs[format] = button;
1343
+ tabs.appendChild(button.container);
1344
+ });
1345
+ const templates = this.getElm('templates');
1346
+ (0,jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_5__.assert)(templates != null, 'templates element does not exist');
1347
+ if (jodit.o.math.templates.length) {
1348
+ this.templates = new jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_7__.UISelect(jodit, {
1349
+ name: 'template',
1350
+ options: [
1351
+ {
1352
+ value: '',
1353
+ text: jodit.i18n('Templates')
1354
+ },
1355
+ ...jodit.o.math.templates.map((template, index)=>({
1356
+ value: String(index),
1357
+ text: jodit.i18n(template.title)
1358
+ }))
1359
+ ],
1360
+ onChange: (value)=>this.applyTemplate(value)
1361
+ });
1362
+ templates.appendChild(this.templates.container);
1363
+ }
1364
+ const symbols = this.getElm('symbols');
1365
+ (0,jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_5__.assert)(symbols != null, 'symbols element does not exist');
1366
+ jodit.o.math.symbols.forEach((symbol)=>{
1367
+ const button = (0,jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_7__.Button)(jodit, '', symbol.label).onAction(()=>this.insertSymbol(this.state.format === 'mathml' ? symbol.mathml : symbol.latex));
1368
+ button.container.classList.add(this.getFullElName('symbol'));
1369
+ (0,jodit_esm_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_6__.attr)(button.container, 'title', symbol.latex);
1370
+ symbols.appendChild(button.container);
1371
+ });
1372
+ this.source = new jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_7__.UITextArea(jodit, {
1373
+ name: 'source',
1374
+ label: _helpers__WEBPACK_IMPORTED_MODULE_2__.FORMAT_TITLES.latex,
1375
+ placeholder: PLACEHOLDERS.latex,
1376
+ resizable: true,
1377
+ size: 4,
1378
+ onChange: (value)=>{
1379
+ this.state.source = value;
1380
+ this.drafts[this.state.format] = value;
1381
+ this.handlers.onChange(this.getData());
1382
+ this.refresh();
1383
+ }
1384
+ });
1385
+ jodit.e.on(this.source.nativeInput, 'keydown', (e)=>{
1386
+ if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {
1387
+ e.preventDefault();
1388
+ this.handlers.onSubmit();
1389
+ }
1390
+ });
1391
+ const source = this.getElm('source');
1392
+ (0,jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_5__.assert)(source != null, 'source element does not exist');
1393
+ source.appendChild(this.source.container);
1394
+ this.buildAppearance();
1395
+ }
1396
+ }
1397
+ ;(0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
1398
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_4__.debounce)(300)
1399
+ ], UIMathEditor.prototype, "refresh", null);
1400
+ UIMathEditor = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
1401
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_4__.component
1402
+ ], UIMathEditor);
1403
+
1404
+
1405
+ /***/ })
1406
+
1407
+ },
1408
+ /******/ function(__webpack_require__) { // webpackRuntimeModules
1409
+ /******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(moduleId); }
1410
+ /******/ var __webpack_exports__ = (__webpack_exec__(90484));
1411
+ /******/ return __webpack_exports__;
1412
+ /******/ }
1413
+ ]);
1414
+ });