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/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
|
/***/ }),
|
|
@@ -34358,6 +34412,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
34358
34412
|
* Check if two separate elements can be connected
|
|
34359
34413
|
* @private
|
|
34360
34414
|
*/ function checkJoinNeighbors(jodit, fakeNode, backspace) {
|
|
34415
|
+
if (checkJoinBareText(jodit, fakeNode, backspace)) {
|
|
34416
|
+
return true;
|
|
34417
|
+
}
|
|
34361
34418
|
let nextBox = fakeNode, mainClosestBox = nextBox;
|
|
34362
34419
|
// Find the main big closest element
|
|
34363
34420
|
while(nextBox && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(nextBox, backspace) && nextBox.parentElement !== jodit.editor){
|
|
@@ -34385,7 +34442,7 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
34385
34442
|
return true;
|
|
34386
34443
|
}
|
|
34387
34444
|
const box = findCaretBox(fakeNode, mainClosestBox);
|
|
34388
|
-
if (sibling && (checkPullNextLine(jodit, fakeNode, box, sibling, backspace) || checkMoveListContent(jodit, box, sibling, backspace) || moveContentAndRemoveEmpty(jodit, box, findEdgeBlock(resolveTableSibling(sibling, backspace), backspace, jodit.editor), backspace))) {
|
|
34445
|
+
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))) {
|
|
34389
34446
|
jodit.s.setCursorBefore(fakeNode);
|
|
34390
34447
|
return true;
|
|
34391
34448
|
}
|
|
@@ -34470,6 +34527,70 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
34470
34527
|
}
|
|
34471
34528
|
return true;
|
|
34472
34529
|
}
|
|
34530
|
+
/**
|
|
34531
|
+
* A block next to bare text in the same parent joins that text, as the
|
|
34532
|
+
* browsers do: `<li>one<p>|two</p></li>` gives `<li>one|two</li>`, and
|
|
34533
|
+
* `<li><p>one|</p>two</li>` gives `<li><p>one|two</p></li>`
|
|
34534
|
+
* @private
|
|
34535
|
+
*/ function checkJoinInlineSibling(jodit, box, sibling, backspace) {
|
|
34536
|
+
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>`
|
|
34537
|
+
box.parentNode !== sibling.parentNode || Array.from(box.childNodes).some((node)=>_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node))) {
|
|
34538
|
+
return false;
|
|
34539
|
+
}
|
|
34540
|
+
if (backspace) {
|
|
34541
|
+
// Text after the block keeps its own line
|
|
34542
|
+
const next = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(box, false);
|
|
34543
|
+
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')) {
|
|
34544
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(box, jodit.createInside.element('br'));
|
|
34545
|
+
}
|
|
34546
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(box);
|
|
34547
|
+
return true;
|
|
34548
|
+
}
|
|
34549
|
+
const filter = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_2__.getMoveFilter)(jodit);
|
|
34550
|
+
for(let node = sibling; node && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node);){
|
|
34551
|
+
const next = node.nextSibling;
|
|
34552
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, 'br')) {
|
|
34553
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
34554
|
+
break;
|
|
34555
|
+
}
|
|
34556
|
+
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);
|
|
34557
|
+
node = next;
|
|
34558
|
+
}
|
|
34559
|
+
return true;
|
|
34560
|
+
}
|
|
34561
|
+
/**
|
|
34562
|
+
* Bare text next to a block in the same parent, as the browsers join them:
|
|
34563
|
+
* Backspace in `<div><p>a</p>|b</div>` gives `<div><p>a|b</p></div>`, Delete
|
|
34564
|
+
* in `<div>a|<p>b</p>c</div>` gives `<div>a|b<br>c</div>`
|
|
34565
|
+
*/ function checkJoinBareText(jodit, fakeNode, backspace) {
|
|
34566
|
+
const block = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(fakeNode, backspace);
|
|
34567
|
+
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))) {
|
|
34568
|
+
return false;
|
|
34569
|
+
}
|
|
34570
|
+
const filter = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_2__.getMoveFilter)(jodit);
|
|
34571
|
+
if (backspace) {
|
|
34572
|
+
// The caret's line goes to the end of the block before it
|
|
34573
|
+
for(let node = fakeNode; node && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node);){
|
|
34574
|
+
const next = node.nextSibling;
|
|
34575
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, 'br')) {
|
|
34576
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
34577
|
+
break;
|
|
34578
|
+
}
|
|
34579
|
+
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);
|
|
34580
|
+
node = next;
|
|
34581
|
+
}
|
|
34582
|
+
} else {
|
|
34583
|
+
// The block's content joins the caret's line, and text after the
|
|
34584
|
+
// block keeps its own line
|
|
34585
|
+
const next = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(block, false);
|
|
34586
|
+
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')) {
|
|
34587
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(block, jodit.createInside.element('br'));
|
|
34588
|
+
}
|
|
34589
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(block);
|
|
34590
|
+
}
|
|
34591
|
+
jodit.s.setCursorBefore(fakeNode);
|
|
34592
|
+
return true;
|
|
34593
|
+
}
|
|
34473
34594
|
function checkMoveListContent(jodit, mainClosestBox, sibling, backspace) {
|
|
34474
34595
|
// Process UL/LI/OL cases
|
|
34475
34596
|
const siblingIsList = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.LIST_TAGS);
|
|
@@ -34611,9 +34732,10 @@ function moveContentAndRemoveEmpty(jodit, mainClosestBox, sibling, backspace) {
|
|
|
34611
34732
|
* ```html
|
|
34612
34733
|
* t|st
|
|
34613
34734
|
* ```
|
|
34735
|
+
* With `stopBeforeSpace`, nothing is removed when the next char is a space.
|
|
34614
34736
|
* @private
|
|
34615
34737
|
*/ // eslint-disable-next-line complexity
|
|
34616
|
-
function checkRemoveChar(jodit, fakeNode, backspace, mode) {
|
|
34738
|
+
function checkRemoveChar(jodit, fakeNode, backspace, mode, stopBeforeSpace = false) {
|
|
34617
34739
|
var _a, _b;
|
|
34618
34740
|
const step = backspace ? -1 : 1;
|
|
34619
34741
|
const anotherSibling = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.sibling(fakeNode, !backspace);
|
|
@@ -34632,6 +34754,9 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode) {
|
|
|
34632
34754
|
break;
|
|
34633
34755
|
}
|
|
34634
34756
|
if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
|
|
34757
|
+
if (stopBeforeSpace && isSpace(nextChar(sibling.nodeValue, backspace))) {
|
|
34758
|
+
break;
|
|
34759
|
+
}
|
|
34635
34760
|
removed = tryRemoveChar(sibling, backspace, step, anotherSibling);
|
|
34636
34761
|
if (!sibling.nodeValue.length && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isInlineBlock(sibling.parentNode)) {
|
|
34637
34762
|
sibling.nodeValue = _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE;
|
|
@@ -34669,10 +34794,11 @@ function getNextInlineSibling(sibling, backspace, root) {
|
|
|
34669
34794
|
let nextSibling = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.sibling(sibling, backspace);
|
|
34670
34795
|
if (!nextSibling && sibling.parentNode && sibling.parentNode !== root) {
|
|
34671
34796
|
nextSibling = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_3__.findMostNestedNeighbor)(sibling, !backspace, root, true);
|
|
34672
|
-
// Do not cross a
|
|
34673
|
-
// neighbor can be the text of the parent/previous item
|
|
34674
|
-
//
|
|
34675
|
-
|
|
34797
|
+
// Do not cross a block boundary. At the start of a list item the
|
|
34798
|
+
// neighbor can be the text of the parent/previous item (#1277), and at
|
|
34799
|
+
// the start of a paragraph the text before it in the same parent
|
|
34800
|
+
// (#1693); deleting a char there is wrong — the join cases handle them.
|
|
34801
|
+
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)) {
|
|
34676
34802
|
return null;
|
|
34677
34803
|
}
|
|
34678
34804
|
}
|
|
@@ -34739,10 +34865,26 @@ function replaceSpaceOnNBSP(anotherSibling, backspace, value) {
|
|
|
34739
34865
|
}
|
|
34740
34866
|
function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed, jodit) {
|
|
34741
34867
|
;(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);
|
|
34742
|
-
|
|
34743
|
-
|
|
34868
|
+
const wordChar = mode === 'word' && !isSpace(removed);
|
|
34869
|
+
// Backspace by word removes the spaces before the caret, then the word, and keeps the space in front of it
|
|
34870
|
+
if (mode === 'sentence' || wordChar || mode === 'word' && backspace) {
|
|
34871
|
+
checkRemoveChar(jodit, fakeNode, backspace, mode, wordChar && backspace);
|
|
34744
34872
|
}
|
|
34745
34873
|
}
|
|
34874
|
+
/**
|
|
34875
|
+
* The char tryRemoveChar would remove next
|
|
34876
|
+
*/ function nextChar(value, backspace) {
|
|
34877
|
+
const chars = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.toArray)(value);
|
|
34878
|
+
const step = backspace ? -1 : 1;
|
|
34879
|
+
let index = backspace ? chars.length - 1 : 0;
|
|
34880
|
+
while(chars[index] === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE){
|
|
34881
|
+
index += step;
|
|
34882
|
+
}
|
|
34883
|
+
return chars[index];
|
|
34884
|
+
}
|
|
34885
|
+
function isSpace(char) {
|
|
34886
|
+
return char === ' ' || char === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.NBSP_SPACE;
|
|
34887
|
+
}
|
|
34746
34888
|
|
|
34747
34889
|
|
|
34748
34890
|
/***/ }),
|
|
@@ -35018,6 +35160,66 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
35018
35160
|
}
|
|
35019
35161
|
|
|
35020
35162
|
|
|
35163
|
+
/***/ }),
|
|
35164
|
+
|
|
35165
|
+
/***/ 70921:
|
|
35166
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
35167
|
+
|
|
35168
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
35169
|
+
/* harmony export */ checkUnwrapListItem: function() { return /* binding */ checkUnwrapListItem; }
|
|
35170
|
+
/* harmony export */ });
|
|
35171
|
+
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
|
|
35172
|
+
/*!
|
|
35173
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
35174
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
35175
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
35176
|
+
*/
|
|
35177
|
+
/**
|
|
35178
|
+
* Backspace at the start of a later list item takes the bullet off, as Word
|
|
35179
|
+
* does: the item becomes a paragraph where it was, and the list is split
|
|
35180
|
+
* around it. A split `<ol>` carries its numbering on with `start`.
|
|
35181
|
+
*
|
|
35182
|
+
* @example
|
|
35183
|
+
* ```html
|
|
35184
|
+
* <ol><li>first</li><li>|second</li><li>third</li></ol>
|
|
35185
|
+
* ```
|
|
35186
|
+
* Result
|
|
35187
|
+
* ```html
|
|
35188
|
+
* <ol><li>first</li></ol><p>|second</p><ol start="2"><li>third</li></ol>
|
|
35189
|
+
* ```
|
|
35190
|
+
*
|
|
35191
|
+
* @private
|
|
35192
|
+
*/ function checkUnwrapListItem(jodit, fakeNode, backspace) {
|
|
35193
|
+
if (!backspace) {
|
|
35194
|
+
return false;
|
|
35195
|
+
}
|
|
35196
|
+
const li = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(fakeNode, 'li', jodit.editor);
|
|
35197
|
+
const list = li ? li.parentElement : null;
|
|
35198
|
+
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)) {
|
|
35199
|
+
return false;
|
|
35200
|
+
}
|
|
35201
|
+
const p = jodit.createInside.element(jodit.o.enterBlock);
|
|
35202
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(list, p);
|
|
35203
|
+
if (li.nextElementSibling) {
|
|
35204
|
+
const rest = list.cloneNode(false);
|
|
35205
|
+
// Two lists cannot share one id
|
|
35206
|
+
rest.removeAttribute('id');
|
|
35207
|
+
while(li.nextSibling){
|
|
35208
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(rest, li.nextSibling);
|
|
35209
|
+
}
|
|
35210
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(list, 'ol')) {
|
|
35211
|
+
const start = parseInt(list.getAttribute('start') || '1', 10) || 1;
|
|
35212
|
+
rest.setAttribute('start', String(start + list.children.length - 1));
|
|
35213
|
+
}
|
|
35214
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(p, rest);
|
|
35215
|
+
}
|
|
35216
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.moveContent(li, p);
|
|
35217
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(li);
|
|
35218
|
+
jodit.s.setCursorBefore(fakeNode);
|
|
35219
|
+
return true;
|
|
35220
|
+
}
|
|
35221
|
+
|
|
35222
|
+
|
|
35021
35223
|
/***/ }),
|
|
35022
35224
|
|
|
35023
35225
|
/***/ 14630:
|
|
@@ -35033,6 +35235,7 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
35033
35235
|
/* harmony import */ var _check_remove_unbreakable_element_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(56825);
|
|
35034
35236
|
/* harmony import */ var _check_table_cell_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90240);
|
|
35035
35237
|
/* harmony import */ var _check_unwrap_first_list_item_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(68034);
|
|
35238
|
+
/* harmony import */ var _check_unwrap_list_item_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(70921);
|
|
35036
35239
|
/*!
|
|
35037
35240
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
35038
35241
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -35046,6 +35249,7 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
35046
35249
|
|
|
35047
35250
|
|
|
35048
35251
|
|
|
35252
|
+
|
|
35049
35253
|
/**
|
|
35050
35254
|
* Ordered delete/backspace cases with stable keys. The first one returning
|
|
35051
35255
|
* `true` wins. The keys are stable across minified builds (function names are
|
|
@@ -35080,6 +35284,10 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
35080
35284
|
'join-two-lists',
|
|
35081
35285
|
_check_join_two_lists_js__WEBPACK_IMPORTED_MODULE_1__.checkJoinTwoLists
|
|
35082
35286
|
],
|
|
35287
|
+
[
|
|
35288
|
+
'unwrap-list-item',
|
|
35289
|
+
_check_unwrap_list_item_js__WEBPACK_IMPORTED_MODULE_9__.checkUnwrapListItem
|
|
35290
|
+
],
|
|
35083
35291
|
[
|
|
35084
35292
|
'join-neighbors',
|
|
35085
35293
|
_check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_0__.checkJoinNeighbors
|
|
@@ -35104,7 +35312,8 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
35104
35312
|
/***/ 32496:
|
|
35105
35313
|
/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
|
|
35106
35314
|
|
|
35107
|
-
/* harmony import */ var
|
|
35315
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
35316
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6441);
|
|
35108
35317
|
/*!
|
|
35109
35318
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
35110
35319
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -35112,13 +35321,18 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
35112
35321
|
*/ /**
|
|
35113
35322
|
* @module plugins/backspace
|
|
35114
35323
|
*/
|
|
35115
|
-
|
|
35324
|
+
|
|
35325
|
+
_config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.delete = {
|
|
35116
35326
|
hotkeys: {
|
|
35117
|
-
delete: [
|
|
35327
|
+
delete: _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_MAC ? [
|
|
35328
|
+
'delete'
|
|
35329
|
+
] : [
|
|
35118
35330
|
'delete',
|
|
35119
35331
|
'cmd+backspace'
|
|
35120
35332
|
],
|
|
35121
|
-
deleteWord: [
|
|
35333
|
+
deleteWord: _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_MAC ? [
|
|
35334
|
+
'ctrl+delete'
|
|
35335
|
+
] : [
|
|
35122
35336
|
'ctrl+delete',
|
|
35123
35337
|
'cmd+alt+backspace',
|
|
35124
35338
|
'ctrl+alt+backspace'
|
|
@@ -35130,7 +35344,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.delete = {
|
|
|
35130
35344
|
backspace: [
|
|
35131
35345
|
'backspace'
|
|
35132
35346
|
],
|
|
35133
|
-
backspaceWord: [
|
|
35347
|
+
backspaceWord: _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_MAC ? [] : [
|
|
35134
35348
|
'ctrl+backspace'
|
|
35135
35349
|
],
|
|
35136
35350
|
backspaceSentence: [
|
|
@@ -38742,7 +38956,7 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('dtd', dtd);
|
|
|
38742
38956
|
]);
|
|
38743
38957
|
let block = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.getBlockWrapper)(fake, jodit);
|
|
38744
38958
|
const isLi = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isLeaf(block);
|
|
38745
|
-
// if use <br> defaultTag for break line or when was entered SHIFt key or in <td
|
|
38959
|
+
// if use <br> defaultTag for break line or when was entered SHIFt key or in <td>, <th> or <blockquote> without an inner block
|
|
38746
38960
|
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)) {
|
|
38747
38961
|
return false;
|
|
38748
38962
|
}
|
|
@@ -38803,10 +39017,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('enter', enter);
|
|
|
38803
39017
|
* Checks the possibility and necessity of inserting a BR instead of a block
|
|
38804
39018
|
* @private
|
|
38805
39019
|
*/ function checkBR(fake, jodit, shiftKeyPressed, block) {
|
|
38806
|
-
|
|
38807
|
-
|
|
38808
|
-
|
|
38809
|
-
], jodit.editor));
|
|
39020
|
+
// Text in a <pre>, or bare text in a quote, gets a BR. A real block inside
|
|
39021
|
+
// a quote (<p>, <h3>, ...) is split like anywhere else, as in a cell below.
|
|
39022
|
+
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)));
|
|
38810
39023
|
// A cell itself can't be split into two cells, so bare cell content gets
|
|
38811
39024
|
// a BR. But when the cell already holds a real block (<p>, <h3>, ...) that
|
|
38812
39025
|
// block is split like anywhere else, otherwise every line of the cell
|
|
@@ -38816,7 +39029,7 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('enter', enter);
|
|
|
38816
39029
|
'th'
|
|
38817
39030
|
], jodit.editor)));
|
|
38818
39031
|
const isBRMode = jodit.o.enter.toLowerCase() === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.BR.toLowerCase();
|
|
38819
|
-
// if you use <br> defaultTag for break line or when was entered SHIFt key or in <td
|
|
39032
|
+
// if you use <br> defaultTag for break line or when was entered SHIFt key or in <td>, <th> or <blockquote> without an inner block
|
|
38820
39033
|
if (isBRMode || isCell || shiftKeyPressed && !isMultiLineBlock || !shiftKeyPressed && isMultiLineBlock) {
|
|
38821
39034
|
// 2 BR before
|
|
38822
39035
|
if (isMultiLineBlock && checkSeveralBR(fake)) {
|
|
@@ -41115,8 +41328,12 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.image = {
|
|
|
41115
41328
|
dialog.close();
|
|
41116
41329
|
});
|
|
41117
41330
|
buttons.remove.onAction(()=>{
|
|
41331
|
+
const caret = j.s.createRange();
|
|
41332
|
+
caret.setStartBefore(this.state.sourceImage);
|
|
41333
|
+
caret.collapse(true);
|
|
41118
41334
|
j.s.removeNode(this.state.sourceImage);
|
|
41119
41335
|
dialog.close();
|
|
41336
|
+
j.s.selectRange(caret);
|
|
41120
41337
|
});
|
|
41121
41338
|
buttons.cancel.onAction(()=>{
|
|
41122
41339
|
dialog.close();
|
|
@@ -41130,10 +41347,20 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.image = {
|
|
|
41130
41347
|
],
|
|
41131
41348
|
buttons.check
|
|
41132
41349
|
]);
|
|
41133
|
-
|
|
41134
|
-
|
|
41135
|
-
|
|
41350
|
+
// The dialog fires `afterClose` on its own emitter, not the editor's
|
|
41351
|
+
dialog.e.on(dialog, 'afterClose', ()=>{
|
|
41352
|
+
const { sourceImage } = this.state;
|
|
41353
|
+
if (j.isInDestruct || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(j.editor, sourceImage)) {
|
|
41354
|
+
return;
|
|
41355
|
+
}
|
|
41356
|
+
if (j.o.image.selectImageAfterClose) {
|
|
41357
|
+
j.s.select(sourceImage);
|
|
41358
|
+
return;
|
|
41136
41359
|
}
|
|
41360
|
+
const caret = j.s.createRange();
|
|
41361
|
+
caret.setStartAfter(sourceImage);
|
|
41362
|
+
caret.collapse(true);
|
|
41363
|
+
j.s.selectRange(caret);
|
|
41137
41364
|
});
|
|
41138
41365
|
dialog.setSize(j.o.image.dialogWidth);
|
|
41139
41366
|
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.markOwner)(j, dialog.container);
|
|
@@ -41164,6 +41391,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.image = {
|
|
|
41164
41391
|
this.activeTabState.activeTab = 'Image';
|
|
41165
41392
|
this.__lock();
|
|
41166
41393
|
this.dialog.open().setModal(true).setPosition();
|
|
41394
|
+
this.__focusFirstField();
|
|
41167
41395
|
this.async.promise((resolve, reject)=>(0,_readers_index_js__WEBPACK_IMPORTED_MODULE_10__.readValuesFromImage)(this.j, this.state).then(resolve, reject)).catch((e)=>{
|
|
41168
41396
|
if (!(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.isAbortError)(e)) {
|
|
41169
41397
|
this.dialog.message.error(e.message);
|
|
@@ -41171,6 +41399,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.image = {
|
|
|
41171
41399
|
}).finally(()=>this.__unlock());
|
|
41172
41400
|
return false;
|
|
41173
41401
|
}
|
|
41402
|
+
/**
|
|
41403
|
+
* Keys typed while the dialog is open must not reach the editor behind it,
|
|
41404
|
+
* so focus the active tab's first field, or else the first field shown
|
|
41405
|
+
*/ __focusFirstField() {
|
|
41406
|
+
var _a;
|
|
41407
|
+
const fields = (box)=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(box.querySelectorAll('input, select, textarea'));
|
|
41408
|
+
(_a = fields(this.form.getElm('tabsBox')).concat(fields(this.form.container)).find((field)=>field.offsetParent != null)) === null || _a === void 0 ? void 0 : _a.focus();
|
|
41409
|
+
}
|
|
41174
41410
|
__lock() {
|
|
41175
41411
|
this.dialog.lock();
|
|
41176
41412
|
this.form.setMod('lock', true);
|
|
@@ -45585,9 +45821,11 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
|
|
|
45585
45821
|
return cleaned;
|
|
45586
45822
|
}
|
|
45587
45823
|
/**
|
|
45588
|
-
* The width that decides which breakpoint set the toolbar uses
|
|
45589
|
-
*
|
|
45590
|
-
*
|
|
45824
|
+
* The width that decides which breakpoint set the toolbar uses: the editor's
|
|
45825
|
+
* own width, or its parent's while the editor has none yet (for example
|
|
45826
|
+
* while hidden at init). A toolbar rendered into an external container
|
|
45827
|
+
* (`toolbar` set to an element or a selector) lays out in that container, so
|
|
45828
|
+
* its width is what matters there.
|
|
45591
45829
|
*/ function adaptiveWidth(editor) {
|
|
45592
45830
|
var _a;
|
|
45593
45831
|
const { toolbar } = editor.o;
|
|
@@ -45597,7 +45835,7 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
|
|
|
45597
45835
|
return width;
|
|
45598
45836
|
}
|
|
45599
45837
|
}
|
|
45600
|
-
return ((_a = editor.container.parentElement) !== null && _a !== void 0 ? _a : editor.container).offsetWidth;
|
|
45838
|
+
return editor.container.offsetWidth || ((_a = editor.container.parentElement) !== null && _a !== void 0 ? _a : editor.container).offsetWidth;
|
|
45601
45839
|
}
|
|
45602
45840
|
/**
|
|
45603
45841
|
* Rebuild toolbar in depends on editor's width
|