jodit-pro 4.18.9 → 4.18.12
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 +13 -13
- package/es2015/jodit.js +286 -48
- package/es2015/jodit.min.js +14 -14
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +19 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +3 -3
- 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 +14 -7
- package/es2015/plugins/backup/backup.min.js +2 -2
- package/es2015/plugins/button-generator/button-generator.css +1 -1
- package/es2015/plugins/button-generator/button-generator.js +26 -19
- package/es2015/plugins/button-generator/button-generator.min.js +3 -3
- package/es2015/plugins/change-case/change-case.js +1 -1
- package/es2015/plugins/change-case/change-case.min.js +1 -1
- package/es2015/plugins/chart/chart.css +1 -1
- package/es2015/plugins/chart/chart.js +1 -1
- package/es2015/plugins/chart/chart.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/math/math.css +1 -1
- package/es2015/plugins/math/math.js +1 -1
- package/es2015/plugins/math/math.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 +16 -16
- package/es2018/jodit.min.js +8 -8
- package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +3 -3
- package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2018/plugins/backup/backup.min.js +2 -2
- package/es2018/plugins/button-generator/button-generator.min.js +3 -3
- package/es2018/plugins/change-case/change-case.min.js +1 -1
- package/es2018/plugins/chart/chart.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/math/math.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 +19 -19
- package/es2021/jodit.js +286 -48
- package/es2021/jodit.min.js +8 -8
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +19 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +3 -3
- 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 +14 -7
- package/es2021/plugins/backup/backup.min.js +2 -2
- package/es2021/plugins/button-generator/button-generator.css +1 -1
- package/es2021/plugins/button-generator/button-generator.js +26 -19
- package/es2021/plugins/button-generator/button-generator.min.js +3 -3
- package/es2021/plugins/change-case/change-case.js +1 -1
- package/es2021/plugins/change-case/change-case.min.js +1 -1
- package/es2021/plugins/chart/chart.css +1 -1
- package/es2021/plugins/chart/chart.js +1 -1
- package/es2021/plugins/chart/chart.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/math/math.css +1 -1
- package/es2021/plugins/math/math.js +1 -1
- package/es2021/plugins/math/math.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 +17 -17
- package/es2021.en/jodit.js +286 -48
- package/es2021.en/jodit.min.js +8 -8
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +19 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +26 -26
- 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 +14 -7
- package/es2021.en/plugins/backup/backup.min.js +2 -2
- package/es2021.en/plugins/button-generator/button-generator.css +1 -1
- package/es2021.en/plugins/button-generator/button-generator.js +26 -19
- package/es2021.en/plugins/button-generator/button-generator.min.js +3 -3
- 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/chart/chart.css +1 -1
- package/es2021.en/plugins/chart/chart.js +1 -1
- package/es2021.en/plugins/chart/chart.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/math/math.css +1 -1
- package/es2021.en/plugins/math/math.js +1 -1
- package/es2021.en/plugins/math/math.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 +298 -44
- 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 +19 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +2 -2
- 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 +14 -7
- package/es5/plugins/backup/backup.min.js +2 -2
- package/es5/plugins/button-generator/button-generator.css +1 -1
- package/es5/plugins/button-generator/button-generator.js +26 -19
- package/es5/plugins/button-generator/button-generator.min.js +2 -2
- package/es5/plugins/change-case/change-case.js +1 -1
- package/es5/plugins/change-case/change-case.min.js +1 -1
- package/es5/plugins/chart/chart.css +1 -1
- package/es5/plugins/chart/chart.js +1 -1
- package/es5/plugins/chart/chart.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/math/math.css +1 -1
- package/es5/plugins/math/math.js +1 -1
- package/es5/plugins/math/math.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/esm/plugins/ai-assistant-pro/ai-assistant-pro.js +2 -2
- package/esm/plugins/ai-assistant-pro/core/panel-resize.d.ts +4 -0
- package/esm/plugins/ai-assistant-pro/core/panel-resize.js +1 -1
- package/esm/plugins/backup/ui/item.js +1 -1
- package/esm/plugins/button-generator/ui/form/form.js +2 -2
- package/package.json +1 -1
- package/types/plugins/ai-assistant-pro/core/panel-resize.d.ts +4 -0
package/es2021.en/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.18.
|
|
4
|
+
* Version: v4.18.12
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -1766,7 +1766,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1766
1766
|
* ```
|
|
1767
1767
|
* @packageDocumentation
|
|
1768
1768
|
* @module constants
|
|
1769
|
-
*/ const APP_VERSION = "4.18.
|
|
1769
|
+
*/ const APP_VERSION = "4.18.12";
|
|
1770
1770
|
// prettier-ignore
|
|
1771
1771
|
const ES = "es2021";
|
|
1772
1772
|
const IS_ES_MODERN = true;
|
|
@@ -2484,6 +2484,8 @@ function cacheHTML(target, _, descriptor) {
|
|
|
2484
2484
|
*/
|
|
2485
2485
|
|
|
2486
2486
|
const componentRegistry = new Map();
|
|
2487
|
+
const decoratedClasses = new WeakSet();
|
|
2488
|
+
const warnedClasses = new WeakSet();
|
|
2487
2489
|
/**
|
|
2488
2490
|
* Decorate components and set status isReady after constructor
|
|
2489
2491
|
* @param constructorFunction - Component constructor class
|
|
@@ -2500,9 +2502,16 @@ const componentRegistry = new Map();
|
|
|
2500
2502
|
Object.setPrototypeOf(this, newConstructorFunction.prototype);
|
|
2501
2503
|
}
|
|
2502
2504
|
this.setStatus('ready');
|
|
2505
|
+
} else if (!_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD && !decoratedClasses.has(this.constructor) && !warnedClasses.has(this.constructor)) {
|
|
2506
|
+
// Only the outermost class's decorator sets `ready`, so a subclass
|
|
2507
|
+
// without its own decorator stays in `beforeInit`. See #1685
|
|
2508
|
+
warnedClasses.add(this.constructor);
|
|
2509
|
+
console.warn(`Component "${this.constructor.name || (0,_helpers_utils_get_class_name_js__WEBPACK_IMPORTED_MODULE_1__.getClassName)(this)}" extends a @component class without being decorated itself, so it never becomes ready and its @watch, @debounce, @throttle and @hook handlers never run`);
|
|
2503
2510
|
}
|
|
2504
2511
|
}
|
|
2505
2512
|
}
|
|
2513
|
+
decoratedClasses.add(constructorFunction);
|
|
2514
|
+
decoratedClasses.add(newConstructorFunction);
|
|
2506
2515
|
const name = (0,_helpers_utils_get_class_name_js__WEBPACK_IMPORTED_MODULE_1__.getClassName)(constructorFunction.prototype);
|
|
2507
2516
|
if (componentRegistry.has(name) && !_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD) {
|
|
2508
2517
|
throw new Error(`Component with name "${name}" is already registered`);
|
|
@@ -16944,6 +16953,7 @@ Icon.__cache = new Map();
|
|
|
16944
16953
|
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
16945
16954
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
16946
16955
|
};
|
|
16956
|
+
var Popup_1;
|
|
16947
16957
|
|
|
16948
16958
|
|
|
16949
16959
|
|
|
@@ -16960,7 +16970,7 @@ const EVENTS_FOR_AUTOCLOSE = [
|
|
|
16960
16970
|
'backSpaceAfterDelete',
|
|
16961
16971
|
'beforeCommandDelete'
|
|
16962
16972
|
];
|
|
16963
|
-
class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_8__.UIGroup {
|
|
16973
|
+
let Popup = Popup_1 = class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_8__.UIGroup {
|
|
16964
16974
|
className() {
|
|
16965
16975
|
return 'Popup';
|
|
16966
16976
|
}
|
|
@@ -16970,7 +16980,7 @@ class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_8__.UIGroup {
|
|
|
16970
16980
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(content, childContainer);
|
|
16971
16981
|
}
|
|
16972
16982
|
updateParentElement(target) {
|
|
16973
|
-
if (target !== this && _component_component_js__WEBPACK_IMPORTED_MODULE_0__.Component.isInstanceOf(target,
|
|
16983
|
+
if (target !== this && _component_component_js__WEBPACK_IMPORTED_MODULE_0__.Component.isInstanceOf(target, Popup_1)) {
|
|
16974
16984
|
this.__childrenPopups.forEach((popup)=>{
|
|
16975
16985
|
if (!target.closest(popup) && popup.isOpened) {
|
|
16976
16986
|
popup.close();
|
|
@@ -17012,7 +17022,7 @@ class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_8__.UIGroup {
|
|
|
17012
17022
|
if (parentContainer) {
|
|
17013
17023
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(parentContainer, this.container);
|
|
17014
17024
|
} else {
|
|
17015
|
-
const popupContainer = (0,_global_js__WEBPACK_IMPORTED_MODULE_3__.getContainer)(this.jodit,
|
|
17025
|
+
const popupContainer = (0,_global_js__WEBPACK_IMPORTED_MODULE_3__.getContainer)(this.jodit, Popup_1);
|
|
17016
17026
|
if (parentContainer !== this.container.parentElement) {
|
|
17017
17027
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(popupContainer, this.container);
|
|
17018
17028
|
}
|
|
@@ -17125,11 +17135,11 @@ class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_8__.UIGroup {
|
|
|
17125
17135
|
};
|
|
17126
17136
|
const getMatchStrategy = (inBox)=>{
|
|
17127
17137
|
let strategy;
|
|
17128
|
-
if (
|
|
17138
|
+
if (Popup_1.boxInView(getPointByStrategy(defaultStrategy), inBox)) {
|
|
17129
17139
|
strategy = defaultStrategy;
|
|
17130
17140
|
} else {
|
|
17131
17141
|
strategy = list.find((key)=>{
|
|
17132
|
-
if (
|
|
17142
|
+
if (Popup_1.boxInView(getPointByStrategy(key), inBox)) {
|
|
17133
17143
|
return key;
|
|
17134
17144
|
}
|
|
17135
17145
|
return;
|
|
@@ -17140,7 +17150,7 @@ class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_8__.UIGroup {
|
|
|
17140
17150
|
// Try to find match position inside Jodit.container
|
|
17141
17151
|
let strategy = getMatchStrategy((0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.position)(this.j.container, this.j));
|
|
17142
17152
|
// If not found or is not inside window view
|
|
17143
|
-
if (!strategy || !
|
|
17153
|
+
if (!strategy || !Popup_1.boxInView(getPointByStrategy(strategy), view)) {
|
|
17144
17154
|
// Find match strategy inside window view
|
|
17145
17155
|
strategy = getMatchStrategy(view) || strategy || defaultStrategy;
|
|
17146
17156
|
}
|
|
@@ -17190,7 +17200,7 @@ class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_8__.UIGroup {
|
|
|
17190
17200
|
if (!e.target) {
|
|
17191
17201
|
return false;
|
|
17192
17202
|
}
|
|
17193
|
-
const box = _element_js__WEBPACK_IMPORTED_MODULE_7__.UIElement.closestElement(e.target,
|
|
17203
|
+
const box = _element_js__WEBPACK_IMPORTED_MODULE_7__.UIElement.closestElement(e.target, Popup_1);
|
|
17194
17204
|
return Boolean(box && (this === box || box.closest(this)));
|
|
17195
17205
|
}
|
|
17196
17206
|
__addGlobalListeners() {
|
|
@@ -17245,7 +17255,7 @@ class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_8__.UIGroup {
|
|
|
17245
17255
|
this.__childrenPopups = new Set();
|
|
17246
17256
|
(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(this.container, 'role', 'popup');
|
|
17247
17257
|
}
|
|
17248
|
-
}
|
|
17258
|
+
};
|
|
17249
17259
|
__decorate([
|
|
17250
17260
|
_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
17251
17261
|
], Popup.prototype, "updatePosition", null);
|
|
@@ -17259,6 +17269,10 @@ __decorate([
|
|
|
17259
17269
|
__decorate([
|
|
17260
17270
|
_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
17261
17271
|
], Popup.prototype, "__closeOnOutsideClick", null);
|
|
17272
|
+
Popup = Popup_1 = __decorate([
|
|
17273
|
+
_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.component
|
|
17274
|
+
], Popup);
|
|
17275
|
+
|
|
17262
17276
|
|
|
17263
17277
|
|
|
17264
17278
|
/***/ }),
|
|
@@ -18456,7 +18470,7 @@ let Jodit = Jodit_1 = class Jodit extends _modules_index_js__WEBPACK_IMPORTED_MO
|
|
|
18456
18470
|
commands.push(command);
|
|
18457
18471
|
if (!(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.isFunction)(command)) {
|
|
18458
18472
|
const hotkeys = this.o.commandToHotkeys[commandName] || this.o.commandToHotkeys[commandNameOriginal] || command.hotkeys;
|
|
18459
|
-
if (hotkeys) {
|
|
18473
|
+
if (hotkeys && hotkeys.length) {
|
|
18460
18474
|
this.registerHotkeyToCommand(hotkeys, commandName, options === null || options === void 0 ? void 0 : options.stopPropagation);
|
|
18461
18475
|
}
|
|
18462
18476
|
}
|
|
@@ -18465,6 +18479,10 @@ let Jodit = Jodit_1 = class Jodit extends _modules_index_js__WEBPACK_IMPORTED_MO
|
|
|
18465
18479
|
/**
|
|
18466
18480
|
* Register hotkey for command
|
|
18467
18481
|
*/ registerHotkeyToCommand(hotkeys, commandName, shouldStop = true) {
|
|
18482
|
+
// An empty list (e.g. `commandToHotkeys: { cmd: [] }`) turns the key off
|
|
18483
|
+
if (!hotkeys || !hotkeys.length) {
|
|
18484
|
+
return;
|
|
18485
|
+
}
|
|
18468
18486
|
const shortcuts = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.asArray)(hotkeys).map(_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.normalizeKeyAliases).map((hotkey)=>hotkey + '.hotkey').join(' ');
|
|
18469
18487
|
this.e.off(shortcuts).on(shortcuts, (type, stop)=>{
|
|
18470
18488
|
if (stop) {
|
|
@@ -25822,6 +25840,9 @@ var Dialog_1;
|
|
|
25822
25840
|
|
|
25823
25841
|
|
|
25824
25842
|
|
|
25843
|
+
/**
|
|
25844
|
+
* A position from 0 up to `max`, or 0 when the panel is larger than the window
|
|
25845
|
+
*/ const clampToWindow = (value, max)=>Math.max(0, Math.min(value, max));
|
|
25825
25846
|
_config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.dialog = {
|
|
25826
25847
|
namespace: '',
|
|
25827
25848
|
extraButtons: [],
|
|
@@ -25914,6 +25935,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.controls.dialog = {
|
|
|
25914
25935
|
this.startY = e.clientY;
|
|
25915
25936
|
this.startPoint.x = (0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_8__.css)(this.dialog, 'left');
|
|
25916
25937
|
this.startPoint.y = (0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_8__.css)(this.dialog, 'top');
|
|
25938
|
+
// Rounded up: at the right edge a fraction of a pixel less room would
|
|
25939
|
+
// wrap the header of a panel that has no width of its own
|
|
25940
|
+
const { width, height } = this.dialog.getBoundingClientRect();
|
|
25941
|
+
this.startPoint.w = Math.ceil(width);
|
|
25942
|
+
this.startPoint.h = Math.ceil(height);
|
|
25917
25943
|
this.setMaxZIndex();
|
|
25918
25944
|
if (e.cancelable) {
|
|
25919
25945
|
e.preventDefault();
|
|
@@ -25929,7 +25955,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.controls.dialog = {
|
|
|
25929
25955
|
}
|
|
25930
25956
|
__onMouseMove(e) {
|
|
25931
25957
|
if (this.draggable && this.o.draggable) {
|
|
25932
|
-
|
|
25958
|
+
const { documentElement } = this.od;
|
|
25959
|
+
// Keep the whole panel in the window at the size it had when the
|
|
25960
|
+
// drag began. A panel with no width of its own would otherwise
|
|
25961
|
+
// shrink as it neared the right edge, and then leave the window
|
|
25962
|
+
this.setPosition(clampToWindow(this.startPoint.x + e.clientX - this.startX, (documentElement.clientWidth || this.ow.innerWidth) - this.startPoint.w), clampToWindow(this.startPoint.y + e.clientY - this.startY, (documentElement.clientHeight || this.ow.innerHeight) - this.startPoint.h));
|
|
25933
25963
|
if (this.e) {
|
|
25934
25964
|
/**
|
|
25935
25965
|
* Fired when dialog box is moved
|
|
@@ -26055,8 +26085,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.controls.dialog = {
|
|
|
26055
26085
|
}
|
|
26056
26086
|
// strings on purpose: `css()` would truncate fractional pixels
|
|
26057
26087
|
;(0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_8__.css)(this.dialog, {
|
|
26058
|
-
left: (x
|
|
26059
|
-
top: (y
|
|
26088
|
+
left: (x !== null && x !== void 0 ? x : left) + 'px',
|
|
26089
|
+
top: (y !== null && y !== void 0 ? y : top) + 'px'
|
|
26060
26090
|
});
|
|
26061
26091
|
return this;
|
|
26062
26092
|
}
|
|
@@ -28577,17 +28607,29 @@ const DEFAULT_SOURCE_NAME = 'default';
|
|
|
28577
28607
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
28578
28608
|
/* harmony export */ FileBrowserFiles: function() { return /* binding */ FileBrowserFiles; }
|
|
28579
28609
|
/* harmony export */ });
|
|
28580
|
-
/* harmony import */ var
|
|
28610
|
+
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
|
|
28611
|
+
/* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67510);
|
|
28581
28612
|
/*!
|
|
28582
28613
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
28583
28614
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
28584
28615
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
28585
|
-
*/
|
|
28586
|
-
|
|
28616
|
+
*/ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
|
|
28617
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
28618
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
28619
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
28620
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
28621
|
+
};
|
|
28622
|
+
|
|
28623
|
+
|
|
28624
|
+
let FileBrowserFiles = class FileBrowserFiles extends _core_ui_index_js__WEBPACK_IMPORTED_MODULE_1__.UIGroup {
|
|
28587
28625
|
className() {
|
|
28588
28626
|
return 'FileBrowserFiles';
|
|
28589
28627
|
}
|
|
28590
|
-
}
|
|
28628
|
+
};
|
|
28629
|
+
FileBrowserFiles = __decorate([
|
|
28630
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.component
|
|
28631
|
+
], FileBrowserFiles);
|
|
28632
|
+
|
|
28591
28633
|
|
|
28592
28634
|
|
|
28593
28635
|
/***/ }),
|
|
@@ -28619,17 +28661,29 @@ class FileBrowserFiles extends _core_ui_index_js__WEBPACK_IMPORTED_MODULE_0__.UI
|
|
|
28619
28661
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
28620
28662
|
/* harmony export */ FileBrowserTree: function() { return /* binding */ FileBrowserTree; }
|
|
28621
28663
|
/* harmony export */ });
|
|
28622
|
-
/* harmony import */ var
|
|
28664
|
+
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
|
|
28665
|
+
/* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67510);
|
|
28623
28666
|
/*!
|
|
28624
28667
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
28625
28668
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
28626
28669
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
28627
|
-
*/
|
|
28628
|
-
|
|
28670
|
+
*/ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
|
|
28671
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
28672
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
28673
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
28674
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
28675
|
+
};
|
|
28676
|
+
|
|
28677
|
+
|
|
28678
|
+
let FileBrowserTree = class FileBrowserTree extends _core_ui_index_js__WEBPACK_IMPORTED_MODULE_1__.UIGroup {
|
|
28629
28679
|
className() {
|
|
28630
28680
|
return 'FileBrowserTree';
|
|
28631
28681
|
}
|
|
28632
|
-
}
|
|
28682
|
+
};
|
|
28683
|
+
FileBrowserTree = __decorate([
|
|
28684
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.component
|
|
28685
|
+
], FileBrowserTree);
|
|
28686
|
+
|
|
28633
28687
|
|
|
28634
28688
|
|
|
28635
28689
|
/***/ }),
|
|
@@ -34307,6 +34361,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
34307
34361
|
* Check if two separate elements can be connected
|
|
34308
34362
|
* @private
|
|
34309
34363
|
*/ function checkJoinNeighbors(jodit, fakeNode, backspace) {
|
|
34364
|
+
if (checkJoinBareText(jodit, fakeNode, backspace)) {
|
|
34365
|
+
return true;
|
|
34366
|
+
}
|
|
34310
34367
|
let nextBox = fakeNode, mainClosestBox = nextBox;
|
|
34311
34368
|
// Find the main big closest element
|
|
34312
34369
|
while(nextBox && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(nextBox, backspace) && nextBox.parentElement !== jodit.editor){
|
|
@@ -34334,7 +34391,7 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
34334
34391
|
return true;
|
|
34335
34392
|
}
|
|
34336
34393
|
const box = findCaretBox(fakeNode, mainClosestBox);
|
|
34337
|
-
if (sibling && (checkPullNextLine(jodit, fakeNode, box, sibling, backspace) || checkMoveListContent(jodit, box, sibling, backspace) || moveContentAndRemoveEmpty(jodit, box, findEdgeBlock(resolveTableSibling(sibling, backspace), backspace, jodit.editor), backspace))) {
|
|
34394
|
+
if (sibling && (checkPullNextLine(jodit, fakeNode, box, sibling, backspace) || checkMoveListContent(jodit, box, sibling, backspace) || checkJoinInlineSibling(jodit, box, sibling, backspace) || moveContentAndRemoveEmpty(jodit, box, findEdgeBlock(resolveTableSibling(sibling, backspace), backspace, jodit.editor), backspace))) {
|
|
34338
34395
|
jodit.s.setCursorBefore(fakeNode);
|
|
34339
34396
|
return true;
|
|
34340
34397
|
}
|
|
@@ -34419,6 +34476,70 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
34419
34476
|
}
|
|
34420
34477
|
return true;
|
|
34421
34478
|
}
|
|
34479
|
+
/**
|
|
34480
|
+
* A block next to bare text in the same parent joins that text, as the
|
|
34481
|
+
* browsers do: `<li>one<p>|two</p></li>` gives `<li>one|two</li>`, and
|
|
34482
|
+
* `<li><p>one|</p>two</li>` gives `<li><p>one|two</p></li>`
|
|
34483
|
+
* @private
|
|
34484
|
+
*/ function checkJoinInlineSibling(jodit, box, sibling, backspace) {
|
|
34485
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(sibling) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(box) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(box) || // The caret's block is nested deeper than the text: `text<div><p>|x</p></div>`
|
|
34486
|
+
box.parentNode !== sibling.parentNode || Array.from(box.childNodes).some((node)=>_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node))) {
|
|
34487
|
+
return false;
|
|
34488
|
+
}
|
|
34489
|
+
if (backspace) {
|
|
34490
|
+
// Text after the block keeps its own line
|
|
34491
|
+
const next = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(box, false);
|
|
34492
|
+
if (next && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(next) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(next, 'br')) {
|
|
34493
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(box, jodit.createInside.element('br'));
|
|
34494
|
+
}
|
|
34495
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(box);
|
|
34496
|
+
return true;
|
|
34497
|
+
}
|
|
34498
|
+
const filter = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_2__.getMoveFilter)(jodit);
|
|
34499
|
+
for(let node = sibling; node && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node);){
|
|
34500
|
+
const next = node.nextSibling;
|
|
34501
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, 'br')) {
|
|
34502
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
34503
|
+
break;
|
|
34504
|
+
}
|
|
34505
|
+
filter(node) ? _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(box, node) : _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
34506
|
+
node = next;
|
|
34507
|
+
}
|
|
34508
|
+
return true;
|
|
34509
|
+
}
|
|
34510
|
+
/**
|
|
34511
|
+
* Bare text next to a block in the same parent, as the browsers join them:
|
|
34512
|
+
* Backspace in `<div><p>a</p>|b</div>` gives `<div><p>a|b</p></div>`, Delete
|
|
34513
|
+
* in `<div>a|<p>b</p>c</div>` gives `<div>a|b<br>c</div>`
|
|
34514
|
+
*/ function checkJoinBareText(jodit, fakeNode, backspace) {
|
|
34515
|
+
const block = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(fakeNode, backspace);
|
|
34516
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(block) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(block) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(block) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(block, 'table') || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell(block) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(block, jodit.editor) || Array.from(block.childNodes).some((node)=>_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node))) {
|
|
34517
|
+
return false;
|
|
34518
|
+
}
|
|
34519
|
+
const filter = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_2__.getMoveFilter)(jodit);
|
|
34520
|
+
if (backspace) {
|
|
34521
|
+
// The caret's line goes to the end of the block before it
|
|
34522
|
+
for(let node = fakeNode; node && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node);){
|
|
34523
|
+
const next = node.nextSibling;
|
|
34524
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, 'br')) {
|
|
34525
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
34526
|
+
break;
|
|
34527
|
+
}
|
|
34528
|
+
filter(node) ? _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(block, node) : _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
34529
|
+
node = next;
|
|
34530
|
+
}
|
|
34531
|
+
} else {
|
|
34532
|
+
// The block's content joins the caret's line, and text after the
|
|
34533
|
+
// block keeps its own line
|
|
34534
|
+
const next = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(block, false);
|
|
34535
|
+
if (next && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(next) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(next, 'br')) {
|
|
34536
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(block, jodit.createInside.element('br'));
|
|
34537
|
+
}
|
|
34538
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(block);
|
|
34539
|
+
}
|
|
34540
|
+
jodit.s.setCursorBefore(fakeNode);
|
|
34541
|
+
return true;
|
|
34542
|
+
}
|
|
34422
34543
|
function checkMoveListContent(jodit, mainClosestBox, sibling, backspace) {
|
|
34423
34544
|
// Process UL/LI/OL cases
|
|
34424
34545
|
const siblingIsList = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.LIST_TAGS);
|
|
@@ -34560,9 +34681,10 @@ function moveContentAndRemoveEmpty(jodit, mainClosestBox, sibling, backspace) {
|
|
|
34560
34681
|
* ```html
|
|
34561
34682
|
* t|st
|
|
34562
34683
|
* ```
|
|
34684
|
+
* With `stopBeforeSpace`, nothing is removed when the next char is a space.
|
|
34563
34685
|
* @private
|
|
34564
34686
|
*/ // eslint-disable-next-line complexity
|
|
34565
|
-
function checkRemoveChar(jodit, fakeNode, backspace, mode) {
|
|
34687
|
+
function checkRemoveChar(jodit, fakeNode, backspace, mode, stopBeforeSpace = false) {
|
|
34566
34688
|
var _a, _b;
|
|
34567
34689
|
const step = backspace ? -1 : 1;
|
|
34568
34690
|
const anotherSibling = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.sibling(fakeNode, !backspace);
|
|
@@ -34581,6 +34703,9 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode) {
|
|
|
34581
34703
|
break;
|
|
34582
34704
|
}
|
|
34583
34705
|
if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
|
|
34706
|
+
if (stopBeforeSpace && isSpace(nextChar(sibling.nodeValue, backspace))) {
|
|
34707
|
+
break;
|
|
34708
|
+
}
|
|
34584
34709
|
removed = tryRemoveChar(sibling, backspace, step, anotherSibling);
|
|
34585
34710
|
if (!sibling.nodeValue.length && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isInlineBlock(sibling.parentNode)) {
|
|
34586
34711
|
sibling.nodeValue = _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE;
|
|
@@ -34618,10 +34743,11 @@ function getNextInlineSibling(sibling, backspace, root) {
|
|
|
34618
34743
|
let nextSibling = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.sibling(sibling, backspace);
|
|
34619
34744
|
if (!nextSibling && sibling.parentNode && sibling.parentNode !== root) {
|
|
34620
34745
|
nextSibling = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_3__.findMostNestedNeighbor)(sibling, !backspace, root, true);
|
|
34621
|
-
// Do not cross a
|
|
34622
|
-
// neighbor can be the text of the parent/previous item
|
|
34623
|
-
//
|
|
34624
|
-
|
|
34746
|
+
// Do not cross a block boundary. At the start of a list item the
|
|
34747
|
+
// neighbor can be the text of the parent/previous item (#1277), and at
|
|
34748
|
+
// the start of a paragraph the text before it in the same parent
|
|
34749
|
+
// (#1693); deleting a char there is wrong — the join cases handle them.
|
|
34750
|
+
if (nextSibling && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(sibling, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, root) !== _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(nextSibling, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, root)) {
|
|
34625
34751
|
return null;
|
|
34626
34752
|
}
|
|
34627
34753
|
}
|
|
@@ -34688,10 +34814,26 @@ function replaceSpaceOnNBSP(anotherSibling, backspace, value) {
|
|
|
34688
34814
|
}
|
|
34689
34815
|
function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed, jodit) {
|
|
34690
34816
|
;(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.call)(backspace ? _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after : _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before, sibling, fakeNode);
|
|
34691
|
-
|
|
34692
|
-
|
|
34817
|
+
const wordChar = mode === 'word' && !isSpace(removed);
|
|
34818
|
+
// Backspace by word removes the spaces before the caret, then the word, and keeps the space in front of it
|
|
34819
|
+
if (mode === 'sentence' || wordChar || mode === 'word' && backspace) {
|
|
34820
|
+
checkRemoveChar(jodit, fakeNode, backspace, mode, wordChar && backspace);
|
|
34693
34821
|
}
|
|
34694
34822
|
}
|
|
34823
|
+
/**
|
|
34824
|
+
* The char tryRemoveChar would remove next
|
|
34825
|
+
*/ function nextChar(value, backspace) {
|
|
34826
|
+
const chars = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.toArray)(value);
|
|
34827
|
+
const step = backspace ? -1 : 1;
|
|
34828
|
+
let index = backspace ? chars.length - 1 : 0;
|
|
34829
|
+
while(chars[index] === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE){
|
|
34830
|
+
index += step;
|
|
34831
|
+
}
|
|
34832
|
+
return chars[index];
|
|
34833
|
+
}
|
|
34834
|
+
function isSpace(char) {
|
|
34835
|
+
return char === ' ' || char === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.NBSP_SPACE;
|
|
34836
|
+
}
|
|
34695
34837
|
|
|
34696
34838
|
|
|
34697
34839
|
/***/ }),
|
|
@@ -34967,6 +35109,66 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
34967
35109
|
}
|
|
34968
35110
|
|
|
34969
35111
|
|
|
35112
|
+
/***/ }),
|
|
35113
|
+
|
|
35114
|
+
/***/ 70921:
|
|
35115
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
35116
|
+
|
|
35117
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
35118
|
+
/* harmony export */ checkUnwrapListItem: function() { return /* binding */ checkUnwrapListItem; }
|
|
35119
|
+
/* harmony export */ });
|
|
35120
|
+
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
|
|
35121
|
+
/*!
|
|
35122
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
35123
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
35124
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
35125
|
+
*/
|
|
35126
|
+
/**
|
|
35127
|
+
* Backspace at the start of a later list item takes the bullet off, as Word
|
|
35128
|
+
* does: the item becomes a paragraph where it was, and the list is split
|
|
35129
|
+
* around it. A split `<ol>` carries its numbering on with `start`.
|
|
35130
|
+
*
|
|
35131
|
+
* @example
|
|
35132
|
+
* ```html
|
|
35133
|
+
* <ol><li>first</li><li>|second</li><li>third</li></ol>
|
|
35134
|
+
* ```
|
|
35135
|
+
* Result
|
|
35136
|
+
* ```html
|
|
35137
|
+
* <ol><li>first</li></ol><p>|second</p><ol start="2"><li>third</li></ol>
|
|
35138
|
+
* ```
|
|
35139
|
+
*
|
|
35140
|
+
* @private
|
|
35141
|
+
*/ function checkUnwrapListItem(jodit, fakeNode, backspace) {
|
|
35142
|
+
if (!backspace) {
|
|
35143
|
+
return false;
|
|
35144
|
+
}
|
|
35145
|
+
const li = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(fakeNode, 'li', jodit.editor);
|
|
35146
|
+
const list = li ? li.parentElement : null;
|
|
35147
|
+
if (!li || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isList(list) || !li.previousElementSibling || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(li) || Array.from(li.childNodes).some((node)=>_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(node)) || !jodit.s.cursorInTheEdge(true, li)) {
|
|
35148
|
+
return false;
|
|
35149
|
+
}
|
|
35150
|
+
const p = jodit.createInside.element(jodit.o.enterBlock);
|
|
35151
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(list, p);
|
|
35152
|
+
if (li.nextElementSibling) {
|
|
35153
|
+
const rest = list.cloneNode(false);
|
|
35154
|
+
// Two lists cannot share one id
|
|
35155
|
+
rest.removeAttribute('id');
|
|
35156
|
+
while(li.nextSibling){
|
|
35157
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(rest, li.nextSibling);
|
|
35158
|
+
}
|
|
35159
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(list, 'ol')) {
|
|
35160
|
+
const start = parseInt(list.getAttribute('start') || '1', 10) || 1;
|
|
35161
|
+
rest.setAttribute('start', String(start + list.children.length - 1));
|
|
35162
|
+
}
|
|
35163
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(p, rest);
|
|
35164
|
+
}
|
|
35165
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.moveContent(li, p);
|
|
35166
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(li);
|
|
35167
|
+
jodit.s.setCursorBefore(fakeNode);
|
|
35168
|
+
return true;
|
|
35169
|
+
}
|
|
35170
|
+
|
|
35171
|
+
|
|
34970
35172
|
/***/ }),
|
|
34971
35173
|
|
|
34972
35174
|
/***/ 14630:
|
|
@@ -34982,6 +35184,7 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
34982
35184
|
/* harmony import */ var _check_remove_unbreakable_element_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(56825);
|
|
34983
35185
|
/* harmony import */ var _check_table_cell_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90240);
|
|
34984
35186
|
/* harmony import */ var _check_unwrap_first_list_item_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(68034);
|
|
35187
|
+
/* harmony import */ var _check_unwrap_list_item_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(70921);
|
|
34985
35188
|
/*!
|
|
34986
35189
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
34987
35190
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -34995,6 +35198,7 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
34995
35198
|
|
|
34996
35199
|
|
|
34997
35200
|
|
|
35201
|
+
|
|
34998
35202
|
/**
|
|
34999
35203
|
* Ordered delete/backspace cases with stable keys. The first one returning
|
|
35000
35204
|
* `true` wins. The keys are stable across minified builds (function names are
|
|
@@ -35029,6 +35233,10 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
35029
35233
|
'join-two-lists',
|
|
35030
35234
|
_check_join_two_lists_js__WEBPACK_IMPORTED_MODULE_1__.checkJoinTwoLists
|
|
35031
35235
|
],
|
|
35236
|
+
[
|
|
35237
|
+
'unwrap-list-item',
|
|
35238
|
+
_check_unwrap_list_item_js__WEBPACK_IMPORTED_MODULE_9__.checkUnwrapListItem
|
|
35239
|
+
],
|
|
35032
35240
|
[
|
|
35033
35241
|
'join-neighbors',
|
|
35034
35242
|
_check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_0__.checkJoinNeighbors
|
|
@@ -35053,7 +35261,8 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
35053
35261
|
/***/ 32496:
|
|
35054
35262
|
/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
|
|
35055
35263
|
|
|
35056
|
-
/* harmony import */ var
|
|
35264
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
35265
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6441);
|
|
35057
35266
|
/*!
|
|
35058
35267
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
35059
35268
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -35061,13 +35270,18 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
35061
35270
|
*/ /**
|
|
35062
35271
|
* @module plugins/backspace
|
|
35063
35272
|
*/
|
|
35064
|
-
|
|
35273
|
+
|
|
35274
|
+
_config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.delete = {
|
|
35065
35275
|
hotkeys: {
|
|
35066
|
-
delete: [
|
|
35276
|
+
delete: _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_MAC ? [
|
|
35277
|
+
'delete'
|
|
35278
|
+
] : [
|
|
35067
35279
|
'delete',
|
|
35068
35280
|
'cmd+backspace'
|
|
35069
35281
|
],
|
|
35070
|
-
deleteWord: [
|
|
35282
|
+
deleteWord: _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_MAC ? [
|
|
35283
|
+
'ctrl+delete'
|
|
35284
|
+
] : [
|
|
35071
35285
|
'ctrl+delete',
|
|
35072
35286
|
'cmd+alt+backspace',
|
|
35073
35287
|
'ctrl+alt+backspace'
|
|
@@ -35079,7 +35293,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.delete = {
|
|
|
35079
35293
|
backspace: [
|
|
35080
35294
|
'backspace'
|
|
35081
35295
|
],
|
|
35082
|
-
backspaceWord: [
|
|
35296
|
+
backspaceWord: _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_MAC ? [] : [
|
|
35083
35297
|
'ctrl+backspace'
|
|
35084
35298
|
],
|
|
35085
35299
|
backspaceSentence: [
|
|
@@ -38357,7 +38571,7 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('dtd', dtd);
|
|
|
38357
38571
|
]);
|
|
38358
38572
|
let block = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.getBlockWrapper)(fake, jodit);
|
|
38359
38573
|
const isLi = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isLeaf(block);
|
|
38360
|
-
// if use <br> defaultTag for break line or when was entered SHIFt key or in <td
|
|
38574
|
+
// if use <br> defaultTag for break line or when was entered SHIFt key or in <td>, <th> or <blockquote> without an inner block
|
|
38361
38575
|
if ((!isLi || (event === null || event === void 0 ? void 0 : event.shiftKey)) && (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.checkBR)(fake, jodit, event === null || event === void 0 ? void 0 : event.shiftKey, block)) {
|
|
38362
38576
|
return false;
|
|
38363
38577
|
}
|
|
@@ -38418,10 +38632,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('enter', enter);
|
|
|
38418
38632
|
* Checks the possibility and necessity of inserting a BR instead of a block
|
|
38419
38633
|
* @private
|
|
38420
38634
|
*/ function checkBR(fake, jodit, shiftKeyPressed, block) {
|
|
38421
|
-
|
|
38422
|
-
|
|
38423
|
-
|
|
38424
|
-
], jodit.editor));
|
|
38635
|
+
// Text in a <pre>, or bare text in a quote, gets a BR. A real block inside
|
|
38636
|
+
// a quote (<p>, <h3>, ...) is split like anywhere else, as in a cell below.
|
|
38637
|
+
const isMultiLineBlock = Boolean(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, 'pre', jodit.editor)) || (block ? _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(block, 'blockquote') : Boolean(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, 'blockquote', jodit.editor)));
|
|
38425
38638
|
// A cell itself can't be split into two cells, so bare cell content gets
|
|
38426
38639
|
// a BR. But when the cell already holds a real block (<p>, <h3>, ...) that
|
|
38427
38640
|
// block is split like anywhere else, otherwise every line of the cell
|
|
@@ -38431,7 +38644,7 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('enter', enter);
|
|
|
38431
38644
|
'th'
|
|
38432
38645
|
], jodit.editor)));
|
|
38433
38646
|
const isBRMode = jodit.o.enter.toLowerCase() === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.BR.toLowerCase();
|
|
38434
|
-
// if you use <br> defaultTag for break line or when was entered SHIFt key or in <td
|
|
38647
|
+
// if you use <br> defaultTag for break line or when was entered SHIFt key or in <td>, <th> or <blockquote> without an inner block
|
|
38435
38648
|
if (isBRMode || isCell || shiftKeyPressed && !isMultiLineBlock || !shiftKeyPressed && isMultiLineBlock) {
|
|
38436
38649
|
// 2 BR before
|
|
38437
38650
|
if (isMultiLineBlock && checkSeveralBR(fake)) {
|
|
@@ -40730,8 +40943,12 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.image = {
|
|
|
40730
40943
|
dialog.close();
|
|
40731
40944
|
});
|
|
40732
40945
|
buttons.remove.onAction(()=>{
|
|
40946
|
+
const caret = j.s.createRange();
|
|
40947
|
+
caret.setStartBefore(this.state.sourceImage);
|
|
40948
|
+
caret.collapse(true);
|
|
40733
40949
|
j.s.removeNode(this.state.sourceImage);
|
|
40734
40950
|
dialog.close();
|
|
40951
|
+
j.s.selectRange(caret);
|
|
40735
40952
|
});
|
|
40736
40953
|
buttons.cancel.onAction(()=>{
|
|
40737
40954
|
dialog.close();
|
|
@@ -40745,10 +40962,20 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.image = {
|
|
|
40745
40962
|
],
|
|
40746
40963
|
buttons.check
|
|
40747
40964
|
]);
|
|
40748
|
-
|
|
40749
|
-
|
|
40750
|
-
|
|
40965
|
+
// The dialog fires `afterClose` on its own emitter, not the editor's
|
|
40966
|
+
dialog.e.on(dialog, 'afterClose', ()=>{
|
|
40967
|
+
const { sourceImage } = this.state;
|
|
40968
|
+
if (j.isInDestruct || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(j.editor, sourceImage)) {
|
|
40969
|
+
return;
|
|
40970
|
+
}
|
|
40971
|
+
if (j.o.image.selectImageAfterClose) {
|
|
40972
|
+
j.s.select(sourceImage);
|
|
40973
|
+
return;
|
|
40751
40974
|
}
|
|
40975
|
+
const caret = j.s.createRange();
|
|
40976
|
+
caret.setStartAfter(sourceImage);
|
|
40977
|
+
caret.collapse(true);
|
|
40978
|
+
j.s.selectRange(caret);
|
|
40752
40979
|
});
|
|
40753
40980
|
dialog.setSize(j.o.image.dialogWidth);
|
|
40754
40981
|
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.markOwner)(j, dialog.container);
|
|
@@ -40779,6 +41006,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.image = {
|
|
|
40779
41006
|
this.activeTabState.activeTab = 'Image';
|
|
40780
41007
|
this.__lock();
|
|
40781
41008
|
this.dialog.open().setModal(true).setPosition();
|
|
41009
|
+
this.__focusFirstField();
|
|
40782
41010
|
this.async.promise((resolve, reject)=>(0,_readers_index_js__WEBPACK_IMPORTED_MODULE_10__.readValuesFromImage)(this.j, this.state).then(resolve, reject)).catch((e)=>{
|
|
40783
41011
|
if (!(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.isAbortError)(e)) {
|
|
40784
41012
|
this.dialog.message.error(e.message);
|
|
@@ -40786,6 +41014,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.image = {
|
|
|
40786
41014
|
}).finally(()=>this.__unlock());
|
|
40787
41015
|
return false;
|
|
40788
41016
|
}
|
|
41017
|
+
/**
|
|
41018
|
+
* Keys typed while the dialog is open must not reach the editor behind it,
|
|
41019
|
+
* so focus the active tab's first field, or else the first field shown
|
|
41020
|
+
*/ __focusFirstField() {
|
|
41021
|
+
var _a;
|
|
41022
|
+
const fields = (box)=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(box.querySelectorAll('input, select, textarea'));
|
|
41023
|
+
(_a = fields(this.form.getElm('tabsBox')).concat(fields(this.form.container)).find((field)=>field.offsetParent != null)) === null || _a === void 0 ? void 0 : _a.focus();
|
|
41024
|
+
}
|
|
40789
41025
|
__lock() {
|
|
40790
41026
|
this.dialog.lock();
|
|
40791
41027
|
this.form.setMod('lock', true);
|
|
@@ -44811,9 +45047,11 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
|
|
|
44811
45047
|
return cleaned;
|
|
44812
45048
|
}
|
|
44813
45049
|
/**
|
|
44814
|
-
* The width that decides which breakpoint set the toolbar uses
|
|
44815
|
-
*
|
|
44816
|
-
*
|
|
45050
|
+
* The width that decides which breakpoint set the toolbar uses: the editor's
|
|
45051
|
+
* own width, or its parent's while the editor has none yet (for example
|
|
45052
|
+
* while hidden at init). A toolbar rendered into an external container
|
|
45053
|
+
* (`toolbar` set to an element or a selector) lays out in that container, so
|
|
45054
|
+
* its width is what matters there.
|
|
44817
45055
|
*/ function adaptiveWidth(editor) {
|
|
44818
45056
|
var _a;
|
|
44819
45057
|
const { toolbar } = editor.o;
|
|
@@ -44823,7 +45061,7 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
|
|
|
44823
45061
|
return width;
|
|
44824
45062
|
}
|
|
44825
45063
|
}
|
|
44826
|
-
return ((_a = editor.container.parentElement) !== null && _a !== void 0 ? _a : editor.container).offsetWidth;
|
|
45064
|
+
return editor.container.offsetWidth || ((_a = editor.container.parentElement) !== null && _a !== void 0 ? _a : editor.container).offsetWidth;
|
|
44827
45065
|
}
|
|
44828
45066
|
/**
|
|
44829
45067
|
* Rebuild toolbar in depends on editor's width
|