jodit-pro 4.15.6 → 4.15.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 (316) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.js +13 -13
  3. package/es2015/jodit.js +90 -27
  4. package/es2015/jodit.min.js +4 -4
  5. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  8. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  9. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  11. package/es2015/plugins/backup/backup.css +1 -1
  12. package/es2015/plugins/backup/backup.js +1 -1
  13. package/es2015/plugins/backup/backup.min.js +1 -1
  14. package/es2015/plugins/button-generator/button-generator.css +1 -1
  15. package/es2015/plugins/button-generator/button-generator.js +1 -1
  16. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  17. package/es2015/plugins/change-case/change-case.js +1 -1
  18. package/es2015/plugins/change-case/change-case.min.js +1 -1
  19. package/es2015/plugins/color-picker/color-picker.css +1 -1
  20. package/es2015/plugins/color-picker/color-picker.js +1 -1
  21. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  22. package/es2015/plugins/emoji/emoji.css +1 -1
  23. package/es2015/plugins/emoji/emoji.js +1 -1
  24. package/es2015/plugins/emoji/emoji.min.js +1 -1
  25. package/es2015/plugins/export-docs/export-docs.js +1 -1
  26. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  27. package/es2015/plugins/finder/finder.css +1 -1
  28. package/es2015/plugins/finder/finder.js +1 -1
  29. package/es2015/plugins/finder/finder.min.js +1 -1
  30. package/es2015/plugins/google-maps/google-maps.css +1 -1
  31. package/es2015/plugins/google-maps/google-maps.js +1 -1
  32. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  33. package/es2015/plugins/google-search/google-search.js +1 -1
  34. package/es2015/plugins/google-search/google-search.min.js +1 -1
  35. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  36. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  37. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  38. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  39. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  40. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  41. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  42. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  43. package/es2015/plugins/keyboard/keyboard.css +1 -1
  44. package/es2015/plugins/keyboard/keyboard.js +1 -1
  45. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  46. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  47. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  48. package/es2015/plugins/page-break/page-break.js +1 -1
  49. package/es2015/plugins/page-break/page-break.min.js +1 -1
  50. package/es2015/plugins/paste-code/paste-code.css +1 -1
  51. package/es2015/plugins/paste-code/paste-code.js +1 -1
  52. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  53. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  54. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  55. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  56. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  57. package/es2015/plugins/style/style.css +1 -1
  58. package/es2015/plugins/style/style.js +1 -1
  59. package/es2015/plugins/style/style.min.js +1 -1
  60. package/es2015/plugins/templates/templates.css +1 -1
  61. package/es2015/plugins/templates/templates.js +1 -1
  62. package/es2015/plugins/templates/templates.min.js +1 -1
  63. package/es2015/plugins/todo-list/todo-list.css +1 -1
  64. package/es2015/plugins/todo-list/todo-list.js +1 -1
  65. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  66. package/es2015/plugins/translate/translate.css +1 -1
  67. package/es2015/plugins/translate/translate.js +1 -1
  68. package/es2015/plugins/translate/translate.min.js +1 -1
  69. package/es2015/plugins/tune-block/tune-block.css +1 -1
  70. package/es2015/plugins/tune-block/tune-block.js +1 -1
  71. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  72. package/es2018/jodit.fat.min.js +4 -4
  73. package/es2018/jodit.min.js +4 -4
  74. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  75. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  76. package/es2018/plugins/backup/backup.min.js +1 -1
  77. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  78. package/es2018/plugins/change-case/change-case.min.js +1 -1
  79. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  80. package/es2018/plugins/emoji/emoji.min.js +1 -1
  81. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  82. package/es2018/plugins/finder/finder.min.js +1 -1
  83. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  84. package/es2018/plugins/google-search/google-search.min.js +1 -1
  85. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  86. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  87. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  88. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  89. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  90. package/es2018/plugins/page-break/page-break.min.js +1 -1
  91. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  92. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  93. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  94. package/es2018/plugins/style/style.min.js +1 -1
  95. package/es2018/plugins/templates/templates.min.js +1 -1
  96. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  97. package/es2018/plugins/translate/translate.min.js +1 -1
  98. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  99. package/es2021/jodit.css +1 -1
  100. package/es2021/jodit.fat.min.js +4 -4
  101. package/es2021/jodit.js +90 -27
  102. package/es2021/jodit.min.js +4 -4
  103. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  104. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  105. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  106. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  107. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  108. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  109. package/es2021/plugins/backup/backup.css +1 -1
  110. package/es2021/plugins/backup/backup.js +1 -1
  111. package/es2021/plugins/backup/backup.min.js +1 -1
  112. package/es2021/plugins/button-generator/button-generator.css +1 -1
  113. package/es2021/plugins/button-generator/button-generator.js +1 -1
  114. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  115. package/es2021/plugins/change-case/change-case.js +1 -1
  116. package/es2021/plugins/change-case/change-case.min.js +1 -1
  117. package/es2021/plugins/color-picker/color-picker.css +1 -1
  118. package/es2021/plugins/color-picker/color-picker.js +1 -1
  119. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  120. package/es2021/plugins/emoji/emoji.css +1 -1
  121. package/es2021/plugins/emoji/emoji.js +1 -1
  122. package/es2021/plugins/emoji/emoji.min.js +1 -1
  123. package/es2021/plugins/export-docs/export-docs.js +1 -1
  124. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  125. package/es2021/plugins/finder/finder.css +1 -1
  126. package/es2021/plugins/finder/finder.js +1 -1
  127. package/es2021/plugins/finder/finder.min.js +1 -1
  128. package/es2021/plugins/google-maps/google-maps.css +1 -1
  129. package/es2021/plugins/google-maps/google-maps.js +1 -1
  130. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  131. package/es2021/plugins/google-search/google-search.js +1 -1
  132. package/es2021/plugins/google-search/google-search.min.js +1 -1
  133. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  134. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  135. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  136. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  137. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  138. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  139. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  140. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  141. package/es2021/plugins/keyboard/keyboard.css +1 -1
  142. package/es2021/plugins/keyboard/keyboard.js +1 -1
  143. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  144. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  145. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  146. package/es2021/plugins/page-break/page-break.js +1 -1
  147. package/es2021/plugins/page-break/page-break.min.js +1 -1
  148. package/es2021/plugins/paste-code/paste-code.css +1 -1
  149. package/es2021/plugins/paste-code/paste-code.js +1 -1
  150. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  151. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  152. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  153. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  154. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  155. package/es2021/plugins/style/style.css +1 -1
  156. package/es2021/plugins/style/style.js +1 -1
  157. package/es2021/plugins/style/style.min.js +1 -1
  158. package/es2021/plugins/templates/templates.css +1 -1
  159. package/es2021/plugins/templates/templates.js +1 -1
  160. package/es2021/plugins/templates/templates.min.js +1 -1
  161. package/es2021/plugins/todo-list/todo-list.css +1 -1
  162. package/es2021/plugins/todo-list/todo-list.js +1 -1
  163. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  164. package/es2021/plugins/translate/translate.css +1 -1
  165. package/es2021/plugins/translate/translate.js +1 -1
  166. package/es2021/plugins/translate/translate.min.js +1 -1
  167. package/es2021/plugins/tune-block/tune-block.css +1 -1
  168. package/es2021/plugins/tune-block/tune-block.js +1 -1
  169. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  170. package/es2021.en/jodit.css +1 -1
  171. package/es2021.en/jodit.fat.min.js +4 -4
  172. package/es2021.en/jodit.js +90 -27
  173. package/es2021.en/jodit.min.js +4 -4
  174. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  175. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  176. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  177. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  178. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  179. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  180. package/es2021.en/plugins/backup/backup.css +1 -1
  181. package/es2021.en/plugins/backup/backup.js +1 -1
  182. package/es2021.en/plugins/backup/backup.min.js +1 -1
  183. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  184. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  185. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  186. package/es2021.en/plugins/change-case/change-case.js +1 -1
  187. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  188. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  189. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  190. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  191. package/es2021.en/plugins/emoji/emoji.css +1 -1
  192. package/es2021.en/plugins/emoji/emoji.js +1 -1
  193. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  194. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  195. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  196. package/es2021.en/plugins/finder/finder.css +1 -1
  197. package/es2021.en/plugins/finder/finder.js +1 -1
  198. package/es2021.en/plugins/finder/finder.min.js +1 -1
  199. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  200. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  201. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  202. package/es2021.en/plugins/google-search/google-search.js +1 -1
  203. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  204. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  205. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  206. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  207. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  208. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  209. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  210. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  211. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  212. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  213. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  214. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  215. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  216. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  217. package/es2021.en/plugins/page-break/page-break.js +1 -1
  218. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  219. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  220. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  221. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  222. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  223. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  224. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  225. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  226. package/es2021.en/plugins/style/style.css +1 -1
  227. package/es2021.en/plugins/style/style.js +1 -1
  228. package/es2021.en/plugins/style/style.min.js +1 -1
  229. package/es2021.en/plugins/templates/templates.css +1 -1
  230. package/es2021.en/plugins/templates/templates.js +1 -1
  231. package/es2021.en/plugins/templates/templates.min.js +1 -1
  232. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  233. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  234. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  235. package/es2021.en/plugins/translate/translate.css +1 -1
  236. package/es2021.en/plugins/translate/translate.js +1 -1
  237. package/es2021.en/plugins/translate/translate.min.js +1 -1
  238. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  239. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  240. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  241. package/es5/jodit.css +2 -2
  242. package/es5/jodit.fat.min.js +2 -2
  243. package/es5/jodit.js +95 -27
  244. package/es5/jodit.min.css +2 -2
  245. package/es5/jodit.min.js +2 -2
  246. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  247. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  248. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  249. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  250. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  251. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  252. package/es5/plugins/backup/backup.css +1 -1
  253. package/es5/plugins/backup/backup.js +1 -1
  254. package/es5/plugins/backup/backup.min.js +1 -1
  255. package/es5/plugins/button-generator/button-generator.css +1 -1
  256. package/es5/plugins/button-generator/button-generator.js +1 -1
  257. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  258. package/es5/plugins/change-case/change-case.js +1 -1
  259. package/es5/plugins/change-case/change-case.min.js +1 -1
  260. package/es5/plugins/color-picker/color-picker.css +1 -1
  261. package/es5/plugins/color-picker/color-picker.js +1 -1
  262. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  263. package/es5/plugins/emoji/emoji.css +1 -1
  264. package/es5/plugins/emoji/emoji.js +1 -1
  265. package/es5/plugins/emoji/emoji.min.js +1 -1
  266. package/es5/plugins/export-docs/export-docs.js +1 -1
  267. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  268. package/es5/plugins/finder/finder.css +1 -1
  269. package/es5/plugins/finder/finder.js +1 -1
  270. package/es5/plugins/finder/finder.min.js +1 -1
  271. package/es5/plugins/google-maps/google-maps.css +1 -1
  272. package/es5/plugins/google-maps/google-maps.js +1 -1
  273. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  274. package/es5/plugins/google-search/google-search.js +1 -1
  275. package/es5/plugins/google-search/google-search.min.js +1 -1
  276. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  277. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  278. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  279. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  280. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  281. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  282. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  283. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  284. package/es5/plugins/keyboard/keyboard.css +1 -1
  285. package/es5/plugins/keyboard/keyboard.js +1 -1
  286. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  287. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  288. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  289. package/es5/plugins/page-break/page-break.js +1 -1
  290. package/es5/plugins/page-break/page-break.min.js +1 -1
  291. package/es5/plugins/paste-code/paste-code.css +1 -1
  292. package/es5/plugins/paste-code/paste-code.js +1 -1
  293. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  294. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  295. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  296. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  297. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  298. package/es5/plugins/style/style.css +1 -1
  299. package/es5/plugins/style/style.js +1 -1
  300. package/es5/plugins/style/style.min.js +1 -1
  301. package/es5/plugins/templates/templates.css +1 -1
  302. package/es5/plugins/templates/templates.js +1 -1
  303. package/es5/plugins/templates/templates.min.js +1 -1
  304. package/es5/plugins/todo-list/todo-list.css +1 -1
  305. package/es5/plugins/todo-list/todo-list.js +1 -1
  306. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  307. package/es5/plugins/translate/translate.css +1 -1
  308. package/es5/plugins/translate/translate.js +1 -1
  309. package/es5/plugins/translate/translate.min.js +1 -1
  310. package/es5/plugins/tune-block/tune-block.css +1 -1
  311. package/es5/plugins/tune-block/tune-block.js +1 -1
  312. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  313. package/es5/polyfills.fat.min.js +1 -1
  314. package/es5/polyfills.js +1 -1
  315. package/es5/polyfills.min.js +1 -1
  316. package/package.json +1 -1
package/es2015/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.15.6
4
+ * Version: v4.15.8
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1771,7 +1771,7 @@ __webpack_require__.r(__webpack_exports__);
1771
1771
  * ```
1772
1772
  * @packageDocumentation
1773
1773
  * @module constants
1774
- */ const APP_VERSION = "4.15.6";
1774
+ */ const APP_VERSION = "4.15.8";
1775
1775
  // prettier-ignore
1776
1776
  const ES = "es2015";
1777
1777
  const IS_ES_MODERN = true;
@@ -26945,15 +26945,18 @@ _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.filebrowser =
26945
26945
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26946
26946
  /* harmony export */ "default": function() { return /* binding */ DataProvider; }
26947
26947
  /* harmony export */ });
26948
+ /* unused harmony export assertSourcesAnswer */
26948
26949
  /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
26949
26950
  /* harmony import */ var _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45219);
26950
- /* harmony import */ var _core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23282);
26951
- /* harmony import */ var _core_helpers_normalize_normalize_relative_path_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70091);
26952
- /* harmony import */ var _core_helpers_utils_config_proto_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(68934);
26953
- /* harmony import */ var _core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(89890);
26954
- /* harmony import */ var _core_helpers_utils_set_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3703);
26955
- /* harmony import */ var _core_request_ajax_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54079);
26956
- /* harmony import */ var _builders_item_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(159);
26951
+ /* harmony import */ var _core_helpers_checker_is_array_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(68345);
26952
+ /* harmony import */ var _core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23282);
26953
+ /* harmony import */ var _core_helpers_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(72430);
26954
+ /* harmony import */ var _core_helpers_normalize_normalize_relative_path_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(70091);
26955
+ /* harmony import */ var _core_helpers_utils_config_proto_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(68934);
26956
+ /* harmony import */ var _core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(89890);
26957
+ /* harmony import */ var _core_helpers_utils_set_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(3703);
26958
+ /* harmony import */ var _core_request_ajax_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(54079);
26959
+ /* harmony import */ var _builders_item_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(159);
26957
26960
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
26958
26961
  try {
26959
26962
  var info = gen[key](arg);
@@ -27048,6 +27051,8 @@ function _object_spread_props(target, source) {
27048
27051
 
27049
27052
 
27050
27053
 
27054
+
27055
+
27051
27056
  const DEFAULT_SOURCE_NAME = 'default';
27052
27057
  const possibleRules = new Set([
27053
27058
  'allowFiles',
@@ -27064,6 +27069,38 @@ const possibleRules = new Set([
27064
27069
  'allowImageResize',
27065
27070
  'allowImageCrop'
27066
27071
  ]);
27072
+ const DOCS_URL = 'https://xdsoft.net/jodit/docs/modules/file_browser.html';
27073
+ /**
27074
+ * Validate the connector answer for the `files` / `folders` actions and
27075
+ * normalise it. A hand-written backend that returns the wrong shape used to
27076
+ * crash deep inside the UI with a bare `TypeError: ... reading 'forEach'`;
27077
+ * now it fails right here with a message that names the action, the option
27078
+ * and the missing field. Missing `files` / `folders` lists are treated as
27079
+ * empty instead of throwing.
27080
+ */ function assertSourcesAnswer(resp, action, option) {
27081
+ const fail = (what)=>{
27082
+ throw new Error(`File browser: the connector answer for action "${action}" (option "filebrowser.${option}") ${what}. See ${DOCS_URL}`);
27083
+ };
27084
+ if (!(0,_core_helpers_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_4__.isPlainObject)(resp) || !(0,_core_helpers_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_4__.isPlainObject)(resp.data)) {
27085
+ return fail('has no "data" object');
27086
+ }
27087
+ const { sources } = resp.data;
27088
+ if (!(0,_core_helpers_checker_is_array_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(sources)) {
27089
+ return fail(sources === undefined ? 'has no "data.sources" array' : `must contain "data.sources" as an array of sources, got ${(0,_core_helpers_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_4__.isPlainObject)(sources) ? 'an object keyed by source name' : typeof sources}`);
27090
+ }
27091
+ sources.forEach((source, index)=>{
27092
+ if (!(0,_core_helpers_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_4__.isPlainObject)(source)) {
27093
+ return fail(`has a non-object entry at "data.sources[${index}]"`);
27094
+ }
27095
+ if (!(0,_core_helpers_checker_is_array_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(source.files)) {
27096
+ source.files = [];
27097
+ }
27098
+ if (!(0,_core_helpers_checker_is_array_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(source.folders)) {
27099
+ source.folders = [];
27100
+ }
27101
+ });
27102
+ return resp;
27103
+ }
27067
27104
  class DataProvider {
27068
27105
  /**
27069
27106
  * Alias for options
@@ -27077,13 +27114,13 @@ class DataProvider {
27077
27114
  ajax === null || ajax === void 0 ? void 0 : ajax.abort();
27078
27115
  instances.delete(name);
27079
27116
  }
27080
- const opts = (0,_core_helpers_utils_config_proto_js__WEBPACK_IMPORTED_MODULE_4__.ConfigProto)(this.options[name] !== undefined ? this.options[name] : {}, (0,_core_helpers_utils_config_proto_js__WEBPACK_IMPORTED_MODULE_4__.ConfigProto)({
27117
+ const opts = (0,_core_helpers_utils_config_proto_js__WEBPACK_IMPORTED_MODULE_6__.ConfigProto)(this.options[name] !== undefined ? this.options[name] : {}, (0,_core_helpers_utils_config_proto_js__WEBPACK_IMPORTED_MODULE_6__.ConfigProto)({
27081
27118
  onProgress: this.progressHandler
27082
27119
  }, this.o.ajax));
27083
27120
  if (opts.prepareData) {
27084
27121
  opts.data = opts.prepareData.call(this, opts.data);
27085
27122
  }
27086
- const ajax = new _core_request_ajax_js__WEBPACK_IMPORTED_MODULE_7__.Ajax(opts);
27123
+ const ajax = new _core_request_ajax_js__WEBPACK_IMPORTED_MODULE_9__.Ajax(opts);
27087
27124
  instances.set(name, ajax);
27088
27125
  const promise = ajax.send();
27089
27126
  promise.finally(()=>{
@@ -27112,8 +27149,9 @@ class DataProvider {
27112
27149
  this.o.permissions.data.source = source;
27113
27150
  if (this.o.permissions.url) {
27114
27151
  return this.get('permissions').then((resp)=>{
27152
+ var _a;
27115
27153
  if (this.parent.isInDestruct) {
27116
- throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.abort)();
27154
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_7__.abort)();
27117
27155
  }
27118
27156
  let process = this.o.permissions.process;
27119
27157
  if (!process) {
@@ -27121,7 +27159,9 @@ class DataProvider {
27121
27159
  }
27122
27160
  if (process) {
27123
27161
  const respData = process.call(self, resp);
27124
- if (respData.data.permissions) {
27162
+ // The permissions answer is optional and may come back without
27163
+ // a `data` object at all from a minimal backend.
27164
+ if ((_a = respData === null || respData === void 0 ? void 0 : respData.data) === null || _a === void 0 ? void 0 : _a.permissions) {
27125
27165
  this.parent.events.fire(this, 'changePermissions', this.__currentPermissions, respData.data.permissions);
27126
27166
  this.__currentPermissions = respData.data.permissions;
27127
27167
  }
@@ -27136,7 +27176,7 @@ class DataProvider {
27136
27176
  const rule = 'allow' + action;
27137
27177
  if (!_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD) {
27138
27178
  if (!possibleRules.has(rule)) {
27139
- throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)('Wrong action ' + action);
27179
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_7__.error)('Wrong action ' + action);
27140
27180
  }
27141
27181
  }
27142
27182
  const presetValue = this.o.permissionsPresets[rule];
@@ -27161,7 +27201,7 @@ class DataProvider {
27161
27201
  if (process) {
27162
27202
  resp = process.call(self, resp);
27163
27203
  }
27164
- return onResult(resp);
27204
+ return onResult(assertSourcesAnswer(resp, 'files', 'items'));
27165
27205
  });
27166
27206
  }
27167
27207
  /**
@@ -27188,12 +27228,12 @@ class DataProvider {
27188
27228
  sources.forEach((source)=>{
27189
27229
  if (source.files && source.files.length) {
27190
27230
  const { sort } = this.o;
27191
- if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_2__.isFunction)(sort) && mods.sortBy) {
27231
+ if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_3__.isFunction)(sort) && mods.sortBy) {
27192
27232
  source.files.sort((a, b)=>sort(a, b, mods.sortBy));
27193
27233
  }
27194
27234
  source.files.forEach((item)=>{
27195
27235
  if (inFilter(item) && canBeFile(item)) {
27196
- elements.push(_builders_item_js__WEBPACK_IMPORTED_MODULE_8__.FileBrowserItem.create(_object_spread_props(_object_spread({}, item), {
27236
+ elements.push(_builders_item_js__WEBPACK_IMPORTED_MODULE_10__.FileBrowserItem.create(_object_spread_props(_object_spread({}, item), {
27197
27237
  sourceName: source.name,
27198
27238
  source
27199
27239
  })));
@@ -27205,7 +27245,7 @@ class DataProvider {
27205
27245
  }
27206
27246
  tree(path, source) {
27207
27247
  return _async_to_generator(function*() {
27208
- path = (0,_core_helpers_normalize_normalize_relative_path_js__WEBPACK_IMPORTED_MODULE_3__.normalizeRelativePath)(path);
27248
+ path = (0,_core_helpers_normalize_normalize_relative_path_js__WEBPACK_IMPORTED_MODULE_5__.normalizeRelativePath)(path);
27209
27249
  if (!this.o.folder) {
27210
27250
  return Promise.reject(Error('Set Folder Api options'));
27211
27251
  }
@@ -27220,19 +27260,19 @@ class DataProvider {
27220
27260
  if (process) {
27221
27261
  resp = process.call(self, resp);
27222
27262
  }
27223
- return resp.data.sources;
27263
+ return assertSourcesAnswer(resp, 'folders', 'folder').data.sources;
27224
27264
  });
27225
27265
  }).call(this);
27226
27266
  }
27227
27267
  /**
27228
27268
  * Get path by url. You can use this method in another modules
27229
27269
  */ getPathByUrl(url) {
27230
- ;(0,_core_helpers_utils_set_js__WEBPACK_IMPORTED_MODULE_6__.set)('options.getLocalFileByUrl.data.url', url, this);
27270
+ ;(0,_core_helpers_utils_set_js__WEBPACK_IMPORTED_MODULE_8__.set)('options.getLocalFileByUrl.data.url', url, this);
27231
27271
  return this.get('getLocalFileByUrl').then((resp)=>{
27232
27272
  if (this.isSuccess(resp)) {
27233
27273
  return resp.data;
27234
27274
  }
27235
- throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(this.getMessage(resp));
27275
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_7__.error)(this.getMessage(resp));
27236
27276
  });
27237
27277
  }
27238
27278
  /**
@@ -27244,7 +27284,7 @@ class DataProvider {
27244
27284
  */ createFolder(name, path, source) {
27245
27285
  const { create } = this.o;
27246
27286
  if (!create) {
27247
- throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)('Set Create api options');
27287
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_7__.error)('Set Create api options');
27248
27288
  }
27249
27289
  create.data.source = source;
27250
27290
  create.data.path = path;
@@ -27253,7 +27293,7 @@ class DataProvider {
27253
27293
  if (this.isSuccess(resp)) {
27254
27294
  return true;
27255
27295
  }
27256
- throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(this.getMessage(resp));
27296
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_7__.error)(this.getMessage(resp));
27257
27297
  });
27258
27298
  }
27259
27299
  /**
@@ -27265,7 +27305,7 @@ class DataProvider {
27265
27305
  const mode = isFile ? 'fileMove' : 'folderMove';
27266
27306
  const option = this.options[mode];
27267
27307
  if (!option) {
27268
- throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)('Set Move api options');
27308
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_7__.error)('Set Move api options');
27269
27309
  }
27270
27310
  option.data.from = filepath;
27271
27311
  option.data.path = path;
@@ -27274,7 +27314,7 @@ class DataProvider {
27274
27314
  if (this.isSuccess(resp)) {
27275
27315
  return true;
27276
27316
  }
27277
- throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(this.getMessage(resp));
27317
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_7__.error)(this.getMessage(resp));
27278
27318
  });
27279
27319
  }
27280
27320
  /**
@@ -27286,7 +27326,7 @@ class DataProvider {
27286
27326
  */ __remove(action, path, file, source) {
27287
27327
  const fr = this.o[action];
27288
27328
  if (!fr) {
27289
- throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(`Set "${action}" api options`);
27329
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_7__.error)(`Set "${action}" api options`);
27290
27330
  }
27291
27331
  fr.data.path = path;
27292
27332
  fr.data.name = file;
@@ -27326,7 +27366,7 @@ class DataProvider {
27326
27366
  */ __rename(action, path, name, newname, source) {
27327
27367
  const fr = this.o[action];
27328
27368
  if (!fr) {
27329
- throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(`Set "${action}" api options`);
27369
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_7__.error)(`Set "${action}" api options`);
27330
27370
  }
27331
27371
  fr.data.path = path;
27332
27372
  fr.data.name = name;
@@ -35213,6 +35253,7 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
35213
35253
  * `<p><br></p>` left after deleting all content) to an empty string —
35214
35254
  * opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
35215
35255
  */ onAfterGetValueFromEditor(data) {
35256
+ this.__singleQuotesInFontFamily(data);
35216
35257
  if (!this.j.o.cleanHTML.collapseEmptyValueToEmptyString) {
35217
35258
  return;
35218
35259
  }
@@ -35220,6 +35261,27 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
35220
35261
  data.value = '';
35221
35262
  }
35222
35263
  }
35264
+ /**
35265
+ * Rewrite double-quoted font names inside `style` attributes with single
35266
+ * quotes. The DOM always serialises them as `&quot;…&quot;`, and back ends
35267
+ * that HTML-decode the value before storing it then produce
35268
+ * `style="font-family: "Open Sans", …"` — broken markup. Single quotes
35269
+ * survive that round trip. Names that already contain an apostrophe are
35270
+ * left alone.
35271
+ */ __singleQuotesInFontFamily(data) {
35272
+ if (!this.j.o.cleanHTML.singleQuotesInFontFamily || !data.value.includes('&quot;')) {
35273
+ return;
35274
+ }
35275
+ data.value = data.value.replace(/\sstyle="([^"]*)"/gi, (attribute, css)=>{
35276
+ if (!css.includes('&quot;') || !/font-family/i.test(css)) {
35277
+ return attribute;
35278
+ }
35279
+ const normalized = css.replace(// `&quot;` itself ends with `;`, so the entity has to be
35280
+ // consumed as a unit or the declaration stops inside it.
35281
+ /font-family\s*:(?:&quot;|[^;])*/gi, (declaration)=>declaration.includes("'") ? declaration : declaration.replace(/&quot;/g, "'"));
35282
+ return attribute.replace(css, normalized);
35283
+ });
35284
+ }
35223
35285
  onSafeHTML(sandBox) {
35224
35286
  const sanitizer = this.j.o.cleanHTML.sanitizer;
35225
35287
  if (sanitizer) {
@@ -35291,6 +35353,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
35291
35353
  removeEmptyElements: true,
35292
35354
  fillEmptyParagraph: true,
35293
35355
  collapseEmptyValueToEmptyString: false,
35356
+ singleQuotesInFontFamily: true,
35294
35357
  replaceNBSP: true,
35295
35358
  replaceOldTags: {
35296
35359
  i: 'em',