jodit-pro 4.15.7 → 4.15.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.js +4 -4
- package/es2015/jodit.js +95 -7
- package/es2015/jodit.min.js +10 -10
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2015/plugins/autocomplete/autocomplete.css +1 -1
- package/es2015/plugins/autocomplete/autocomplete.js +1 -1
- package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2015/plugins/backup/backup.css +1 -1
- package/es2015/plugins/backup/backup.js +1 -1
- package/es2015/plugins/backup/backup.min.js +1 -1
- package/es2015/plugins/button-generator/button-generator.css +1 -1
- package/es2015/plugins/button-generator/button-generator.js +1 -1
- package/es2015/plugins/button-generator/button-generator.min.js +1 -1
- package/es2015/plugins/change-case/change-case.js +1 -1
- package/es2015/plugins/change-case/change-case.min.js +1 -1
- package/es2015/plugins/color-picker/color-picker.css +1 -1
- package/es2015/plugins/color-picker/color-picker.js +1 -1
- package/es2015/plugins/color-picker/color-picker.min.js +1 -1
- package/es2015/plugins/emoji/emoji.css +1 -1
- package/es2015/plugins/emoji/emoji.js +1 -1
- package/es2015/plugins/emoji/emoji.min.js +1 -1
- package/es2015/plugins/export-docs/export-docs.js +1 -1
- package/es2015/plugins/export-docs/export-docs.min.js +1 -1
- package/es2015/plugins/finder/finder.css +1 -1
- package/es2015/plugins/finder/finder.js +1 -1
- package/es2015/plugins/finder/finder.min.js +1 -1
- package/es2015/plugins/google-maps/google-maps.css +1 -1
- package/es2015/plugins/google-maps/google-maps.js +1 -1
- package/es2015/plugins/google-maps/google-maps.min.js +1 -1
- package/es2015/plugins/google-search/google-search.js +1 -1
- package/es2015/plugins/google-search/google-search.min.js +1 -1
- package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2015/plugins/keyboard/keyboard.css +1 -1
- package/es2015/plugins/keyboard/keyboard.js +1 -1
- package/es2015/plugins/keyboard/keyboard.min.js +1 -1
- package/es2015/plugins/mobile-view/mobile-view.js +1 -1
- package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2015/plugins/page-break/page-break.js +1 -1
- package/es2015/plugins/page-break/page-break.min.js +1 -1
- package/es2015/plugins/paste-code/paste-code.css +1 -1
- package/es2015/plugins/paste-code/paste-code.js +1 -1
- package/es2015/plugins/paste-code/paste-code.min.js +1 -1
- package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2015/plugins/show-blocks/show-blocks.js +1 -1
- package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2015/plugins/style/style.css +1 -1
- package/es2015/plugins/style/style.js +1 -1
- package/es2015/plugins/style/style.min.js +1 -1
- package/es2015/plugins/templates/templates.css +1 -1
- package/es2015/plugins/templates/templates.js +1 -1
- package/es2015/plugins/templates/templates.min.js +1 -1
- package/es2015/plugins/todo-list/todo-list.css +1 -1
- package/es2015/plugins/todo-list/todo-list.js +1 -1
- package/es2015/plugins/todo-list/todo-list.min.js +1 -1
- package/es2015/plugins/translate/translate.css +1 -1
- package/es2015/plugins/translate/translate.js +1 -1
- package/es2015/plugins/translate/translate.min.js +1 -1
- package/es2015/plugins/tune-block/tune-block.css +1 -1
- package/es2015/plugins/tune-block/tune-block.js +1 -1
- package/es2015/plugins/tune-block/tune-block.min.js +1 -1
- package/es2018/jodit.fat.min.js +4 -4
- package/es2018/jodit.min.js +4 -4
- package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2018/plugins/backup/backup.min.js +1 -1
- package/es2018/plugins/button-generator/button-generator.min.js +1 -1
- package/es2018/plugins/change-case/change-case.min.js +1 -1
- package/es2018/plugins/color-picker/color-picker.min.js +1 -1
- package/es2018/plugins/emoji/emoji.min.js +1 -1
- package/es2018/plugins/export-docs/export-docs.min.js +1 -1
- package/es2018/plugins/finder/finder.min.js +1 -1
- package/es2018/plugins/google-maps/google-maps.min.js +1 -1
- package/es2018/plugins/google-search/google-search.min.js +1 -1
- package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2018/plugins/keyboard/keyboard.min.js +1 -1
- package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2018/plugins/page-break/page-break.min.js +1 -1
- package/es2018/plugins/paste-code/paste-code.min.js +1 -1
- package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2018/plugins/style/style.min.js +1 -1
- package/es2018/plugins/templates/templates.min.js +1 -1
- package/es2018/plugins/todo-list/todo-list.min.js +1 -1
- package/es2018/plugins/translate/translate.min.js +1 -1
- package/es2018/plugins/tune-block/tune-block.min.js +1 -1
- package/es2021/jodit.css +1 -1
- package/es2021/jodit.fat.min.js +4 -4
- package/es2021/jodit.js +95 -7
- package/es2021/jodit.min.js +4 -4
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2021/plugins/autocomplete/autocomplete.css +1 -1
- package/es2021/plugins/autocomplete/autocomplete.js +1 -1
- package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2021/plugins/backup/backup.css +1 -1
- package/es2021/plugins/backup/backup.js +1 -1
- package/es2021/plugins/backup/backup.min.js +1 -1
- package/es2021/plugins/button-generator/button-generator.css +1 -1
- package/es2021/plugins/button-generator/button-generator.js +1 -1
- package/es2021/plugins/button-generator/button-generator.min.js +1 -1
- package/es2021/plugins/change-case/change-case.js +1 -1
- package/es2021/plugins/change-case/change-case.min.js +1 -1
- package/es2021/plugins/color-picker/color-picker.css +1 -1
- package/es2021/plugins/color-picker/color-picker.js +1 -1
- package/es2021/plugins/color-picker/color-picker.min.js +1 -1
- package/es2021/plugins/emoji/emoji.css +1 -1
- package/es2021/plugins/emoji/emoji.js +1 -1
- package/es2021/plugins/emoji/emoji.min.js +1 -1
- package/es2021/plugins/export-docs/export-docs.js +1 -1
- package/es2021/plugins/export-docs/export-docs.min.js +1 -1
- package/es2021/plugins/finder/finder.css +1 -1
- package/es2021/plugins/finder/finder.js +1 -1
- package/es2021/plugins/finder/finder.min.js +1 -1
- package/es2021/plugins/google-maps/google-maps.css +1 -1
- package/es2021/plugins/google-maps/google-maps.js +1 -1
- package/es2021/plugins/google-maps/google-maps.min.js +1 -1
- package/es2021/plugins/google-search/google-search.js +1 -1
- package/es2021/plugins/google-search/google-search.min.js +1 -1
- package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2021/plugins/keyboard/keyboard.css +1 -1
- package/es2021/plugins/keyboard/keyboard.js +1 -1
- package/es2021/plugins/keyboard/keyboard.min.js +1 -1
- package/es2021/plugins/mobile-view/mobile-view.js +1 -1
- package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2021/plugins/page-break/page-break.js +1 -1
- package/es2021/plugins/page-break/page-break.min.js +1 -1
- package/es2021/plugins/paste-code/paste-code.css +1 -1
- package/es2021/plugins/paste-code/paste-code.js +1 -1
- package/es2021/plugins/paste-code/paste-code.min.js +1 -1
- package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2021/plugins/show-blocks/show-blocks.js +1 -1
- package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2021/plugins/style/style.css +1 -1
- package/es2021/plugins/style/style.js +1 -1
- package/es2021/plugins/style/style.min.js +1 -1
- package/es2021/plugins/templates/templates.css +1 -1
- package/es2021/plugins/templates/templates.js +1 -1
- package/es2021/plugins/templates/templates.min.js +1 -1
- package/es2021/plugins/todo-list/todo-list.css +1 -1
- package/es2021/plugins/todo-list/todo-list.js +1 -1
- package/es2021/plugins/todo-list/todo-list.min.js +1 -1
- package/es2021/plugins/translate/translate.css +1 -1
- package/es2021/plugins/translate/translate.js +1 -1
- package/es2021/plugins/translate/translate.min.js +1 -1
- package/es2021/plugins/tune-block/tune-block.css +1 -1
- package/es2021/plugins/tune-block/tune-block.js +1 -1
- package/es2021/plugins/tune-block/tune-block.min.js +1 -1
- package/es2021.en/jodit.css +1 -1
- package/es2021.en/jodit.fat.min.js +4 -4
- package/es2021.en/jodit.js +95 -7
- package/es2021.en/jodit.min.js +4 -4
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2021.en/plugins/backup/backup.css +1 -1
- package/es2021.en/plugins/backup/backup.js +1 -1
- package/es2021.en/plugins/backup/backup.min.js +1 -1
- package/es2021.en/plugins/button-generator/button-generator.css +1 -1
- package/es2021.en/plugins/button-generator/button-generator.js +1 -1
- package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
- package/es2021.en/plugins/change-case/change-case.js +1 -1
- package/es2021.en/plugins/change-case/change-case.min.js +1 -1
- package/es2021.en/plugins/color-picker/color-picker.css +1 -1
- package/es2021.en/plugins/color-picker/color-picker.js +1 -1
- package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
- package/es2021.en/plugins/emoji/emoji.css +1 -1
- package/es2021.en/plugins/emoji/emoji.js +1 -1
- package/es2021.en/plugins/emoji/emoji.min.js +1 -1
- package/es2021.en/plugins/export-docs/export-docs.js +1 -1
- package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
- package/es2021.en/plugins/finder/finder.css +1 -1
- package/es2021.en/plugins/finder/finder.js +1 -1
- package/es2021.en/plugins/finder/finder.min.js +1 -1
- package/es2021.en/plugins/google-maps/google-maps.css +1 -1
- package/es2021.en/plugins/google-maps/google-maps.js +1 -1
- package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
- package/es2021.en/plugins/google-search/google-search.js +1 -1
- package/es2021.en/plugins/google-search/google-search.min.js +1 -1
- package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2021.en/plugins/keyboard/keyboard.css +1 -1
- package/es2021.en/plugins/keyboard/keyboard.js +1 -1
- package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
- package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
- package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2021.en/plugins/page-break/page-break.js +1 -1
- package/es2021.en/plugins/page-break/page-break.min.js +1 -1
- package/es2021.en/plugins/paste-code/paste-code.css +1 -1
- package/es2021.en/plugins/paste-code/paste-code.js +1 -1
- package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
- package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
- package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2021.en/plugins/style/style.css +1 -1
- package/es2021.en/plugins/style/style.js +1 -1
- package/es2021.en/plugins/style/style.min.js +1 -1
- package/es2021.en/plugins/templates/templates.css +1 -1
- package/es2021.en/plugins/templates/templates.js +1 -1
- package/es2021.en/plugins/templates/templates.min.js +1 -1
- package/es2021.en/plugins/todo-list/todo-list.css +1 -1
- package/es2021.en/plugins/todo-list/todo-list.js +1 -1
- package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
- package/es2021.en/plugins/translate/translate.css +1 -1
- package/es2021.en/plugins/translate/translate.js +1 -1
- package/es2021.en/plugins/translate/translate.min.js +1 -1
- package/es2021.en/plugins/tune-block/tune-block.css +1 -1
- package/es2021.en/plugins/tune-block/tune-block.js +1 -1
- package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
- package/es5/jodit.css +2 -2
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +119 -7
- package/es5/jodit.min.css +2 -2
- package/es5/jodit.min.js +2 -2
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.css +1 -1
- package/es5/plugins/autocomplete/autocomplete.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es5/plugins/backup/backup.css +1 -1
- package/es5/plugins/backup/backup.js +1 -1
- package/es5/plugins/backup/backup.min.js +1 -1
- package/es5/plugins/button-generator/button-generator.css +1 -1
- package/es5/plugins/button-generator/button-generator.js +1 -1
- package/es5/plugins/button-generator/button-generator.min.js +1 -1
- package/es5/plugins/change-case/change-case.js +1 -1
- package/es5/plugins/change-case/change-case.min.js +1 -1
- package/es5/plugins/color-picker/color-picker.css +1 -1
- package/es5/plugins/color-picker/color-picker.js +1 -1
- package/es5/plugins/color-picker/color-picker.min.js +1 -1
- package/es5/plugins/emoji/emoji.css +1 -1
- package/es5/plugins/emoji/emoji.js +1 -1
- package/es5/plugins/emoji/emoji.min.js +1 -1
- package/es5/plugins/export-docs/export-docs.js +1 -1
- package/es5/plugins/export-docs/export-docs.min.js +1 -1
- package/es5/plugins/finder/finder.css +1 -1
- package/es5/plugins/finder/finder.js +1 -1
- package/es5/plugins/finder/finder.min.js +1 -1
- package/es5/plugins/google-maps/google-maps.css +1 -1
- package/es5/plugins/google-maps/google-maps.js +1 -1
- package/es5/plugins/google-maps/google-maps.min.js +1 -1
- package/es5/plugins/google-search/google-search.js +1 -1
- package/es5/plugins/google-search/google-search.min.js +1 -1
- package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es5/plugins/keyboard/keyboard.css +1 -1
- package/es5/plugins/keyboard/keyboard.js +1 -1
- package/es5/plugins/keyboard/keyboard.min.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es5/plugins/page-break/page-break.js +1 -1
- package/es5/plugins/page-break/page-break.min.js +1 -1
- package/es5/plugins/paste-code/paste-code.css +1 -1
- package/es5/plugins/paste-code/paste-code.js +1 -1
- package/es5/plugins/paste-code/paste-code.min.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es5/plugins/style/style.css +1 -1
- package/es5/plugins/style/style.js +1 -1
- package/es5/plugins/style/style.min.js +1 -1
- package/es5/plugins/templates/templates.css +1 -1
- package/es5/plugins/templates/templates.js +1 -1
- package/es5/plugins/templates/templates.min.js +1 -1
- package/es5/plugins/todo-list/todo-list.css +1 -1
- package/es5/plugins/todo-list/todo-list.js +1 -1
- package/es5/plugins/todo-list/todo-list.min.js +1 -1
- package/es5/plugins/translate/translate.css +1 -1
- package/es5/plugins/translate/translate.js +1 -1
- package/es5/plugins/translate/translate.min.js +1 -1
- package/es5/plugins/tune-block/tune-block.css +1 -1
- package/es5/plugins/tune-block/tune-block.js +1 -1
- package/es5/plugins/tune-block/tune-block.min.js +1 -1
- package/es5/polyfills.fat.min.js +1 -1
- package/es5/polyfills.js +1 -1
- package/es5/polyfills.min.js +1 -1
- 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.
|
|
4
|
+
* Version: v4.15.10
|
|
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.
|
|
1774
|
+
*/ const APP_VERSION = "4.15.10";
|
|
1775
1775
|
// prettier-ignore
|
|
1776
1776
|
const ES = "es2015";
|
|
1777
1777
|
const IS_ES_MODERN = true;
|
|
@@ -35195,7 +35195,8 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
|
|
|
35195
35195
|
|
|
35196
35196
|
/**
|
|
35197
35197
|
* Clean HTML after removeFormat and insertHorizontalRule command
|
|
35198
|
-
*/
|
|
35198
|
+
*/ const TRAILING_BR_BLOCKS = 'p, div, li, td, th, h1, h2, h3, h4, h5, h6, blockquote';
|
|
35199
|
+
class cleanHtml extends _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
35199
35200
|
/** @override */ afterInit(jodit) {}
|
|
35200
35201
|
get isEditMode() {
|
|
35201
35202
|
return !(this.j.isInDestruct || !this.j.isEditorMode() || this.j.getReadOnly());
|
|
@@ -35253,6 +35254,8 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
|
|
|
35253
35254
|
* `<p><br></p>` left after deleting all content) to an empty string —
|
|
35254
35255
|
* opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
|
|
35255
35256
|
*/ onAfterGetValueFromEditor(data) {
|
|
35257
|
+
this.__singleQuotesInFontFamily(data);
|
|
35258
|
+
this.__removeTrailingBr(data);
|
|
35256
35259
|
if (!this.j.o.cleanHTML.collapseEmptyValueToEmptyString) {
|
|
35257
35260
|
return;
|
|
35258
35261
|
}
|
|
@@ -35260,6 +35263,59 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
|
|
|
35260
35263
|
data.value = '';
|
|
35261
35264
|
}
|
|
35262
35265
|
}
|
|
35266
|
+
/**
|
|
35267
|
+
* Rewrite double-quoted font names inside `style` attributes with single
|
|
35268
|
+
* quotes. The DOM always serialises them as `"…"`, and back ends
|
|
35269
|
+
* that HTML-decode the value before storing it then produce
|
|
35270
|
+
* `style="font-family: "Open Sans", …"` — broken markup. Single quotes
|
|
35271
|
+
* survive that round trip. Names that already contain an apostrophe are
|
|
35272
|
+
* left alone.
|
|
35273
|
+
*/ /**
|
|
35274
|
+
* Drop a `<br>` that is the last node of a block (or of the value) and
|
|
35275
|
+
* follows other content — the caret placeholder browsers leave behind
|
|
35276
|
+
* after typing into an empty block. An empty block (`<p><br></p>`) and a
|
|
35277
|
+
* deliberate empty line (`text<br><br>`) are kept.
|
|
35278
|
+
*/ __removeTrailingBr(data) {
|
|
35279
|
+
if (!this.j.o.cleanHTML.removeTrailingBr || !/<br/i.test(data.value)) {
|
|
35280
|
+
return;
|
|
35281
|
+
}
|
|
35282
|
+
const box = this.j.c.div();
|
|
35283
|
+
box.innerHTML = data.value;
|
|
35284
|
+
const blocks = [
|
|
35285
|
+
box,
|
|
35286
|
+
...box.querySelectorAll(TRAILING_BR_BLOCKS)
|
|
35287
|
+
];
|
|
35288
|
+
blocks.forEach((block)=>{
|
|
35289
|
+
var _a;
|
|
35290
|
+
const last = block.lastChild;
|
|
35291
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(last, 'br')) {
|
|
35292
|
+
return;
|
|
35293
|
+
}
|
|
35294
|
+
const prev = last.previousSibling;
|
|
35295
|
+
if (!prev || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(prev, 'br')) {
|
|
35296
|
+
return;
|
|
35297
|
+
}
|
|
35298
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(prev) && !((_a = prev.nodeValue) === null || _a === void 0 ? void 0 : _a.trim()) && !prev.previousSibling) {
|
|
35299
|
+
return;
|
|
35300
|
+
}
|
|
35301
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(last);
|
|
35302
|
+
});
|
|
35303
|
+
data.value = box.innerHTML;
|
|
35304
|
+
}
|
|
35305
|
+
__singleQuotesInFontFamily(data) {
|
|
35306
|
+
if (!this.j.o.cleanHTML.singleQuotesInFontFamily || !data.value.includes('"')) {
|
|
35307
|
+
return;
|
|
35308
|
+
}
|
|
35309
|
+
data.value = data.value.replace(/\sstyle="([^"]*)"/gi, (attribute, css)=>{
|
|
35310
|
+
if (!css.includes('"') || !/font-family/i.test(css)) {
|
|
35311
|
+
return attribute;
|
|
35312
|
+
}
|
|
35313
|
+
const normalized = css.replace(// `"` itself ends with `;`, so the entity has to be
|
|
35314
|
+
// consumed as a unit or the declaration stops inside it.
|
|
35315
|
+
/font-family\s*:(?:"|[^;])*/gi, (declaration)=>declaration.includes("'") ? declaration : declaration.replace(/"/g, "'"));
|
|
35316
|
+
return attribute.replace(css, normalized);
|
|
35317
|
+
});
|
|
35318
|
+
}
|
|
35263
35319
|
onSafeHTML(sandBox) {
|
|
35264
35320
|
const sanitizer = this.j.o.cleanHTML.sanitizer;
|
|
35265
35321
|
if (sanitizer) {
|
|
@@ -35331,6 +35387,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
|
|
|
35331
35387
|
removeEmptyElements: true,
|
|
35332
35388
|
fillEmptyParagraph: true,
|
|
35333
35389
|
collapseEmptyValueToEmptyString: false,
|
|
35390
|
+
singleQuotesInFontFamily: true,
|
|
35391
|
+
removeTrailingBr: false,
|
|
35334
35392
|
replaceNBSP: true,
|
|
35335
35393
|
replaceOldTags: {
|
|
35336
35394
|
i: 'em',
|
|
@@ -37419,6 +37477,11 @@ var DragState;
|
|
|
37419
37477
|
this.state = DragState.DRAGGING;
|
|
37420
37478
|
}
|
|
37421
37479
|
this.j.e.fire('hidePopup hideResizer');
|
|
37480
|
+
// The ghost lives in the top document (position: fixed), but the
|
|
37481
|
+
// mousemove comes from the editor document. In iframe mode those are
|
|
37482
|
+
// different viewports, so the iframe's own offset has to be added or
|
|
37483
|
+
// the ghost trails the pointer by exactly that distance (#1455).
|
|
37484
|
+
const offset = this.__ghostOffset();
|
|
37422
37485
|
if (!this.draggable.parentNode) {
|
|
37423
37486
|
const target = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target');
|
|
37424
37487
|
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.draggable, {
|
|
@@ -37428,19 +37491,35 @@ var DragState;
|
|
|
37428
37491
|
position: 'fixed',
|
|
37429
37492
|
opacity: 0.7,
|
|
37430
37493
|
display: 'inline-block',
|
|
37431
|
-
left: event.clientX,
|
|
37432
|
-
top: event.clientY,
|
|
37494
|
+
left: event.clientX + offset.left,
|
|
37495
|
+
top: event.clientY + offset.top,
|
|
37433
37496
|
width: (_a = target === null || target === void 0 ? void 0 : target.offsetWidth) !== null && _a !== void 0 ? _a : 100,
|
|
37434
37497
|
height: (_b = target === null || target === void 0 ? void 0 : target.offsetHeight) !== null && _b !== void 0 ? _b : 100
|
|
37435
37498
|
});
|
|
37436
37499
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append((0,_core_global_js__WEBPACK_IMPORTED_MODULE_2__.getContainer)(this.j, dragAndDropElement), this.draggable);
|
|
37437
37500
|
}
|
|
37438
37501
|
;(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.draggable, {
|
|
37439
|
-
left: event.clientX,
|
|
37440
|
-
top: event.clientY
|
|
37502
|
+
left: event.clientX + offset.left,
|
|
37503
|
+
top: event.clientY + offset.top
|
|
37441
37504
|
});
|
|
37505
|
+
// The caret goes into the editor document, so it keeps the raw
|
|
37506
|
+
// (iframe-relative) coordinates.
|
|
37442
37507
|
this.j.s.insertCursorAtPoint(event.clientX, event.clientY);
|
|
37443
37508
|
}
|
|
37509
|
+
__ghostOffset() {
|
|
37510
|
+
const iframe = this.j.iframe;
|
|
37511
|
+
if (!iframe) {
|
|
37512
|
+
return {
|
|
37513
|
+
left: 0,
|
|
37514
|
+
top: 0
|
|
37515
|
+
};
|
|
37516
|
+
}
|
|
37517
|
+
const rect = iframe.getBoundingClientRect();
|
|
37518
|
+
return {
|
|
37519
|
+
left: rect.left,
|
|
37520
|
+
top: rect.top
|
|
37521
|
+
};
|
|
37522
|
+
}
|
|
37444
37523
|
/**
|
|
37445
37524
|
* Mouseup handler in any place
|
|
37446
37525
|
*/ onDragEnd() {
|
|
@@ -43753,6 +43832,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
|
|
|
43753
43832
|
jodit.history.snapshot.restore(snapshot);
|
|
43754
43833
|
const textWasChanged = getSelectionText() !== content_input.value.trim();
|
|
43755
43834
|
const ci = jodit.createInside;
|
|
43835
|
+
let caretAfter = null;
|
|
43756
43836
|
if (!link || !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(jodit.editor, link)) {
|
|
43757
43837
|
if (!jodit.s.isCollapsed()) {
|
|
43758
43838
|
const node = jodit.s.current();
|
|
@@ -43769,6 +43849,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
|
|
|
43769
43849
|
links = [
|
|
43770
43850
|
a
|
|
43771
43851
|
];
|
|
43852
|
+
caretAfter = a;
|
|
43772
43853
|
}
|
|
43773
43854
|
links.forEach((link)=>jodit.s.select(link));
|
|
43774
43855
|
} else {
|
|
@@ -43801,6 +43882,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
|
|
|
43801
43882
|
}
|
|
43802
43883
|
jodit.e.fire('applyLink', jodit, a, form);
|
|
43803
43884
|
});
|
|
43885
|
+
// A brand-new link inserted at a collapsed caret used to stay
|
|
43886
|
+
// *selected*. Safari does not paint that selection, so the next
|
|
43887
|
+
// Enter silently replaced the link instead of starting a new line.
|
|
43888
|
+
// Put the caret right after the link instead.
|
|
43889
|
+
if (caretAfter) {
|
|
43890
|
+
jodit.s.setCursorAfter(caretAfter);
|
|
43891
|
+
}
|
|
43804
43892
|
jodit.synchronizeValues();
|
|
43805
43893
|
close();
|
|
43806
43894
|
return false;
|