jodit-pro 4.18.13 → 4.18.15
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 +5 -5
- package/es2015/jodit.js +331 -73
- package/es2015/jodit.min.js +9 -9
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2015/plugins/autocomplete/autocomplete.css +1 -1
- package/es2015/plugins/autocomplete/autocomplete.js +1 -1
- package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2015/plugins/backup/backup.css +1 -1
- package/es2015/plugins/backup/backup.js +1 -1
- package/es2015/plugins/backup/backup.min.js +1 -1
- package/es2015/plugins/button-generator/button-generator.css +1 -1
- package/es2015/plugins/button-generator/button-generator.js +1 -1
- package/es2015/plugins/button-generator/button-generator.min.js +1 -1
- package/es2015/plugins/change-case/change-case.js +1 -1
- package/es2015/plugins/change-case/change-case.min.js +1 -1
- package/es2015/plugins/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 +13 -13
- package/es2018/jodit.min.js +5 -5
- package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2018/plugins/backup/backup.min.js +1 -1
- package/es2018/plugins/button-generator/button-generator.min.js +1 -1
- package/es2018/plugins/change-case/change-case.min.js +1 -1
- package/es2018/plugins/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 +14 -14
- package/es2021/jodit.js +331 -73
- package/es2021/jodit.min.js +6 -6
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2021/plugins/autocomplete/autocomplete.css +1 -1
- package/es2021/plugins/autocomplete/autocomplete.js +1 -1
- package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2021/plugins/backup/backup.css +1 -1
- package/es2021/plugins/backup/backup.js +1 -1
- package/es2021/plugins/backup/backup.min.js +1 -1
- package/es2021/plugins/button-generator/button-generator.css +1 -1
- package/es2021/plugins/button-generator/button-generator.js +1 -1
- package/es2021/plugins/button-generator/button-generator.min.js +1 -1
- package/es2021/plugins/change-case/change-case.js +1 -1
- package/es2021/plugins/change-case/change-case.min.js +1 -1
- package/es2021/plugins/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 +6 -6
- package/es2021.en/jodit.js +331 -73
- package/es2021.en/jodit.min.js +9 -9
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2021.en/plugins/backup/backup.css +1 -1
- package/es2021.en/plugins/backup/backup.js +1 -1
- package/es2021.en/plugins/backup/backup.min.js +1 -1
- package/es2021.en/plugins/button-generator/button-generator.css +1 -1
- package/es2021.en/plugins/button-generator/button-generator.js +1 -1
- package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
- package/es2021.en/plugins/change-case/change-case.js +1 -1
- package/es2021.en/plugins/change-case/change-case.min.js +1 -1
- package/es2021.en/plugins/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 +378 -74
- package/es5/jodit.min.css +2 -2
- package/es5/jodit.min.js +2 -2
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.css +1 -1
- package/es5/plugins/autocomplete/autocomplete.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es5/plugins/backup/backup.css +1 -1
- package/es5/plugins/backup/backup.js +1 -1
- package/es5/plugins/backup/backup.min.js +1 -1
- package/es5/plugins/button-generator/button-generator.css +1 -1
- package/es5/plugins/button-generator/button-generator.js +1 -1
- package/es5/plugins/button-generator/button-generator.min.js +1 -1
- package/es5/plugins/change-case/change-case.js +1 -1
- package/es5/plugins/change-case/change-case.min.js +1 -1
- package/es5/plugins/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/package.json +1 -1
package/es2015/jodit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit-pro - PRO Version of Jodit Editor
|
|
3
3
|
* Author: Chupurnov Valerii <chupurnov@gmail.com>
|
|
4
|
-
* Version: v4.18.
|
|
4
|
+
* Version: v4.18.15
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -1453,7 +1453,8 @@ class Async {
|
|
|
1453
1453
|
this.__requestsIdle.forEach((key)=>this.cancelIdleCallback(key));
|
|
1454
1454
|
this.__requestsRaf.forEach((key)=>this.cancelAnimationFrame(key));
|
|
1455
1455
|
this.__controllers.forEach((controller)=>controller.abort());
|
|
1456
|
-
|
|
1456
|
+
// A labelled timer is kept under its label, so clear by the value
|
|
1457
|
+
this.timers.forEach((timer)=>(0,_helpers_async_index_js__WEBPACK_IMPORTED_MODULE_1__.clearTimeout)(timer));
|
|
1457
1458
|
this.timers.clear();
|
|
1458
1459
|
this.promisesRejections.forEach((reject)=>reject());
|
|
1459
1460
|
this.promisesRejections.clear();
|
|
@@ -1814,7 +1815,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1814
1815
|
* ```
|
|
1815
1816
|
* @packageDocumentation
|
|
1816
1817
|
* @module constants
|
|
1817
|
-
*/ const APP_VERSION = "4.18.
|
|
1818
|
+
*/ const APP_VERSION = "4.18.15";
|
|
1818
1819
|
// prettier-ignore
|
|
1819
1820
|
const ES = "es2015";
|
|
1820
1821
|
const IS_ES_MODERN = true;
|
|
@@ -7134,8 +7135,10 @@ function normalizeCssValue(key, value) {
|
|
|
7134
7135
|
* ancestor's top-left corner. The returned offset should be subtracted from
|
|
7135
7136
|
* the desired viewport coordinates before applying them.
|
|
7136
7137
|
*
|
|
7137
|
-
*
|
|
7138
|
-
*
|
|
7138
|
+
* Without such an ancestor the containing block is the layout viewport. Its
|
|
7139
|
+
* offset is `{ x: 0, y: 0 }` in most browsers, but WebKit measures client
|
|
7140
|
+
* rects from the visual viewport, so once the page is pinch-zoomed and panned
|
|
7141
|
+
* the layout viewport starts above and to the left of the client origin.
|
|
7139
7142
|
*/ function getFixedPositionOffset(elm) {
|
|
7140
7143
|
var _a;
|
|
7141
7144
|
const win = (_a = elm.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
|
|
@@ -7150,6 +7153,15 @@ function normalizeCssValue(key, value) {
|
|
|
7150
7153
|
}
|
|
7151
7154
|
node = node.parentElement;
|
|
7152
7155
|
}
|
|
7156
|
+
const vv = win === null || win === void 0 ? void 0 : win.visualViewport;
|
|
7157
|
+
// WebKit's `scrollX`/`scrollY` follow the visual viewport too (truncated),
|
|
7158
|
+
// where Blink's and Gecko's follow the layout viewport
|
|
7159
|
+
if (win && vv && (vv.offsetLeft || vv.offsetTop) && Math.abs(vv.pageLeft - win.scrollX) < 1 && Math.abs(vv.pageTop - win.scrollY) < 1) {
|
|
7160
|
+
return {
|
|
7161
|
+
x: -Math.round(vv.offsetLeft),
|
|
7162
|
+
y: -Math.round(vv.offsetTop)
|
|
7163
|
+
};
|
|
7164
|
+
}
|
|
7153
7165
|
return {
|
|
7154
7166
|
x: 0,
|
|
7155
7167
|
y: 0
|
|
@@ -34357,12 +34369,13 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__.Icon.set('about', _about_svg_js__W
|
|
|
34357
34369
|
/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
|
|
34358
34370
|
|
|
34359
34371
|
/* unused harmony export addNewLine */
|
|
34360
|
-
/* harmony import */ var
|
|
34361
|
-
/* harmony import */ var
|
|
34362
|
-
/* harmony import */ var
|
|
34363
|
-
/* harmony import */ var
|
|
34364
|
-
/* harmony import */ var
|
|
34365
|
-
/* harmony import */ var
|
|
34372
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
34373
|
+
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
|
|
34374
|
+
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
|
|
34375
|
+
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
|
|
34376
|
+
/* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41180);
|
|
34377
|
+
/* harmony import */ var _modules_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41409);
|
|
34378
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4604);
|
|
34366
34379
|
/*!
|
|
34367
34380
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
34368
34381
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -34379,10 +34392,11 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__.Icon.set('about', _about_svg_js__W
|
|
|
34379
34392
|
|
|
34380
34393
|
|
|
34381
34394
|
|
|
34395
|
+
|
|
34382
34396
|
const ns = 'addnewline';
|
|
34383
34397
|
/**
|
|
34384
34398
|
* Create helper for adding new paragraph(Jodit.defaultOptions.enter tag) before iframe, table or image
|
|
34385
|
-
*/ class addNewLine extends
|
|
34399
|
+
*/ class addNewLine extends _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
34386
34400
|
__show() {
|
|
34387
34401
|
if (this.j.o.readonly || this.j.isLocked) {
|
|
34388
34402
|
return;
|
|
@@ -34392,8 +34406,8 @@ const ns = 'addnewline';
|
|
|
34392
34406
|
return;
|
|
34393
34407
|
}
|
|
34394
34408
|
this.__isShown = true;
|
|
34395
|
-
|
|
34396
|
-
(0,
|
|
34409
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(this.j.container, this.__line);
|
|
34410
|
+
(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.__line, 'width', this.j.container.clientWidth);
|
|
34397
34411
|
}
|
|
34398
34412
|
onLock(isLocked) {
|
|
34399
34413
|
if (isLocked && this.__isShown) {
|
|
@@ -34431,16 +34445,43 @@ const ns = 'addnewline';
|
|
|
34431
34445
|
editor.editor
|
|
34432
34446
|
], 'scroll' + '.' + ns, this.__hideForce).on('finishedCleanHTMLWorker' + '.' + ns, this.__hideForce).on(editor.editor, 'click' + '.' + ns, this.__hide).on(editor.container, 'mouseleave' + '.' + ns, this.__hide).on(editor.editor, 'mousemove' + '.' + ns, this.__onMouseMove);
|
|
34433
34447
|
}
|
|
34448
|
+
/**
|
|
34449
|
+
* A paragraph holding only an embed has no place for the caret, so the
|
|
34450
|
+
* arrow keys can't get past one that ends the content, or before one that
|
|
34451
|
+
* starts it. When an arrow key leaves the caret where it was and there is
|
|
34452
|
+
* content beyond it, a new line goes there, as when the line is clicked.
|
|
34453
|
+
*/ onArrowKey(e) {
|
|
34454
|
+
const editor = this.j;
|
|
34455
|
+
const forward = e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT;
|
|
34456
|
+
if (!editor.o.addNewLine || editor.o.readonly || editor.isLocked || e.shiftKey || !(forward || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_UP || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_LEFT) || !editor.s.isCollapsed()) {
|
|
34457
|
+
return;
|
|
34458
|
+
}
|
|
34459
|
+
const { startContainer, startOffset } = editor.s.range;
|
|
34460
|
+
// Once the browser has moved the caret, if it could. With a 0 timeout
|
|
34461
|
+
// Jodit would run this at once, before the browser moves it
|
|
34462
|
+
editor.async.setTimeout(()=>{
|
|
34463
|
+
const { range } = editor.s;
|
|
34464
|
+
const block = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.closest(startContainer, _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock, editor.editor);
|
|
34465
|
+
if (e.defaultPrevented || !editor.s.isInsideArea || !range.collapsed || range.startContainer !== startContainer || range.startOffset !== startOffset || !block || !_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.findNotEmptyNeighbor(block, !forward, editor.editor)) {
|
|
34466
|
+
return;
|
|
34467
|
+
}
|
|
34468
|
+
const p = editor.createInside.element(editor.o.enter);
|
|
34469
|
+
forward ? _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p) : _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
|
|
34470
|
+
editor.s.setCursorIn(p);
|
|
34471
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
|
|
34472
|
+
editor.synchronizeValues();
|
|
34473
|
+
}, 1);
|
|
34474
|
+
}
|
|
34434
34475
|
onDblClickEditor(e) {
|
|
34435
34476
|
const editor = this.j;
|
|
34436
34477
|
if (!editor.o.readonly && editor.o.addNewLineOnDBLClick && e.target === editor.editor && editor.s.isCollapsed()) {
|
|
34437
|
-
const editorBound = (0,
|
|
34478
|
+
const editorBound = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.offset)(editor.editor, editor, editor.ed);
|
|
34438
34479
|
const top = e.pageY - editor.ew.scrollX;
|
|
34439
34480
|
const p = editor.createInside.element(editor.o.enter);
|
|
34440
34481
|
if (Math.abs(top - editorBound.top) < Math.abs(top - (editorBound.height + editorBound.top)) && editor.editor.firstChild) {
|
|
34441
|
-
|
|
34482
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
|
|
34442
34483
|
} else {
|
|
34443
|
-
|
|
34484
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p);
|
|
34444
34485
|
}
|
|
34445
34486
|
editor.s.setCursorIn(p);
|
|
34446
34487
|
editor.synchronizeValues();
|
|
@@ -34454,27 +34495,27 @@ const ns = 'addnewline';
|
|
|
34454
34495
|
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
34455
34496
|
// host, so the lookup must start from the shadow root
|
|
34456
34497
|
let currentElement = ((_a = editor.o.shadowRoot) !== null && _a !== void 0 ? _a : editor.ed).elementFromPoint(e.clientX, e.clientY);
|
|
34457
|
-
if (!
|
|
34498
|
+
if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isOrContains(editor.editor, currentElement)) {
|
|
34458
34499
|
return;
|
|
34459
34500
|
}
|
|
34460
34501
|
if (editor.editor !== currentElement && !this.__isMatchedTag(currentElement)) {
|
|
34461
|
-
currentElement =
|
|
34502
|
+
currentElement = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.closest(currentElement, this.__isMatchedTag, editor.editor);
|
|
34462
34503
|
}
|
|
34463
34504
|
if (!currentElement) {
|
|
34464
34505
|
this.__hide();
|
|
34465
34506
|
return;
|
|
34466
34507
|
}
|
|
34467
34508
|
if (this.__isMatchedTag(currentElement)) {
|
|
34468
|
-
const parentBox =
|
|
34509
|
+
const parentBox = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.up(currentElement, _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock, editor.editor);
|
|
34469
34510
|
if (parentBox && parentBox !== editor.editor) {
|
|
34470
34511
|
currentElement = parentBox;
|
|
34471
34512
|
}
|
|
34472
34513
|
}
|
|
34473
|
-
const pos = (0,
|
|
34514
|
+
const pos = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(currentElement, this.j);
|
|
34474
34515
|
let top = false;
|
|
34475
34516
|
let { clientY, clientX } = e;
|
|
34476
34517
|
if (this.j.iframe) {
|
|
34477
|
-
const { top, left } = (0,
|
|
34518
|
+
const { top, left } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(this.j.iframe, this.j, true);
|
|
34478
34519
|
clientY += top;
|
|
34479
34520
|
clientX += left;
|
|
34480
34521
|
}
|
|
@@ -34487,8 +34528,8 @@ const ns = 'addnewline';
|
|
|
34487
34528
|
this.__isBeforeContent = false;
|
|
34488
34529
|
}
|
|
34489
34530
|
const isEditor = editor.editor === currentElement;
|
|
34490
|
-
if (top !== false && (isEditor && !this.__isBeforeContent || !isEditor && !(0,
|
|
34491
|
-
(0,
|
|
34531
|
+
if (top !== false && (isEditor && !this.__isBeforeContent || !isEditor && !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.call)(this.__isBeforeContent ? _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prev : _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.next, currentElement, this.__canGetFocus, editor.editor))) {
|
|
34532
|
+
(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.__line, 'top', top);
|
|
34492
34533
|
this.__current = currentElement;
|
|
34493
34534
|
this.__show();
|
|
34494
34535
|
this.__line.style.setProperty('--jd-anl-handle-offset', clientX - pos.left - 10 + 'px');
|
|
@@ -34500,7 +34541,7 @@ const ns = 'addnewline';
|
|
|
34500
34541
|
/** @override */ beforeDestruct() {
|
|
34501
34542
|
this.j.async.clearTimeout(this.__timeout);
|
|
34502
34543
|
this.j.e.off(this.__line).off('changePlace', this.__addEventListeners);
|
|
34503
|
-
|
|
34544
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(this.__line);
|
|
34504
34545
|
this.j.e.off([
|
|
34505
34546
|
this.j.ow,
|
|
34506
34547
|
this.j.ew,
|
|
@@ -34509,7 +34550,7 @@ const ns = 'addnewline';
|
|
|
34509
34550
|
}
|
|
34510
34551
|
constructor(){
|
|
34511
34552
|
super(...arguments);
|
|
34512
|
-
this.__line = this.j.c.fromHTML(`<div role="button" tabindex="-1" title="${this.j.i18n('Break')}" class="jodit-add-new-line"><span>${
|
|
34553
|
+
this.__line = this.j.c.fromHTML(`<div role="button" tabindex="-1" title="${this.j.i18n('Break')}" class="jodit-add-new-line"><span>${_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Icon.get('enter')}</span></div>`);
|
|
34513
34554
|
this.__isMatchedTag = (node)=>Boolean(node && this.j.o.addNewLineTagsTriggers.includes(node.nodeName.toLowerCase()));
|
|
34514
34555
|
this.__isBeforeContent = false;
|
|
34515
34556
|
this.__lineInFocus = false;
|
|
@@ -34521,26 +34562,26 @@ const ns = 'addnewline';
|
|
|
34521
34562
|
this.__isShown = false;
|
|
34522
34563
|
this.j.async.clearTimeout(this.__timeout);
|
|
34523
34564
|
this.__lineInFocus = false;
|
|
34524
|
-
|
|
34565
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(this.__line);
|
|
34525
34566
|
this.__line.style.setProperty('--jd-anl-handle-offset', '0');
|
|
34526
34567
|
};
|
|
34527
34568
|
this.__canGetFocus = (elm)=>{
|
|
34528
|
-
return elm != null &&
|
|
34569
|
+
return elm != null && _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock(elm) && !/^(img|table|iframe|hr)$/i.test(elm.nodeName);
|
|
34529
34570
|
};
|
|
34530
34571
|
this.__onClickLine = (e)=>{
|
|
34531
34572
|
const editor = this.j;
|
|
34532
34573
|
const p = editor.createInside.element(editor.o.enter);
|
|
34533
34574
|
if (this.__isBeforeContent && this.__current && this.__current.parentNode) {
|
|
34534
34575
|
if (this.__current === editor.editor) {
|
|
34535
|
-
|
|
34576
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
|
|
34536
34577
|
} else {
|
|
34537
|
-
|
|
34578
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.before(this.__current, p);
|
|
34538
34579
|
}
|
|
34539
34580
|
} else {
|
|
34540
|
-
|
|
34581
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p);
|
|
34541
34582
|
}
|
|
34542
34583
|
editor.s.setCursorIn(p);
|
|
34543
|
-
(0,
|
|
34584
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
|
|
34544
34585
|
editor.synchronizeValues();
|
|
34545
34586
|
this.__hideForce();
|
|
34546
34587
|
e.preventDefault();
|
|
@@ -34548,18 +34589,21 @@ const ns = 'addnewline';
|
|
|
34548
34589
|
}
|
|
34549
34590
|
}
|
|
34550
34591
|
__decorate([
|
|
34551
|
-
(0,
|
|
34592
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':lock')
|
|
34552
34593
|
], addNewLine.prototype, "onLock", null);
|
|
34553
34594
|
__decorate([
|
|
34554
|
-
|
|
34595
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
34555
34596
|
], addNewLine.prototype, "__hide", null);
|
|
34556
34597
|
__decorate([
|
|
34557
|
-
(0,
|
|
34598
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':keydown')
|
|
34599
|
+
], addNewLine.prototype, "onArrowKey", null);
|
|
34600
|
+
__decorate([
|
|
34601
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':dblclick')
|
|
34558
34602
|
], addNewLine.prototype, "onDblClickEditor", null);
|
|
34559
34603
|
__decorate([
|
|
34560
|
-
(0,
|
|
34604
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.throttle)((ctx)=>ctx.defaultTimeout)
|
|
34561
34605
|
], addNewLine.prototype, "__onMouseMove", null);
|
|
34562
|
-
|
|
34606
|
+
_core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('addNewLine', addNewLine);
|
|
34563
34607
|
|
|
34564
34608
|
|
|
34565
34609
|
/***/ }),
|
|
@@ -35317,6 +35361,7 @@ UiAiAssistant = __decorate([
|
|
|
35317
35361
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32496);
|
|
35318
35362
|
/* harmony import */ var _cases_check_not_collapsed_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11338);
|
|
35319
35363
|
/* harmony import */ var _cases_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14630);
|
|
35364
|
+
/* harmony import */ var _helpers_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(63785);
|
|
35320
35365
|
/*!
|
|
35321
35366
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
35322
35367
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -35330,6 +35375,7 @@ UiAiAssistant = __decorate([
|
|
|
35330
35375
|
|
|
35331
35376
|
|
|
35332
35377
|
|
|
35378
|
+
|
|
35333
35379
|
class backspace extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
|
|
35334
35380
|
afterInit(jodit) {
|
|
35335
35381
|
jodit.registerCommand('deleteButton', {
|
|
@@ -35407,19 +35453,53 @@ class backspace extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugi
|
|
|
35407
35453
|
throw e;
|
|
35408
35454
|
} finally{
|
|
35409
35455
|
jodit.e.fire('backSpaceAfterDelete', backspace, fakeNode);
|
|
35456
|
+
this.moveCaretToTextBefore(fakeNode);
|
|
35410
35457
|
this.safeRemoveEmptyNode(fakeNode);
|
|
35411
35458
|
}
|
|
35412
35459
|
return false;
|
|
35413
35460
|
}
|
|
35461
|
+
/**
|
|
35462
|
+
* The browser types at the end of the text before the caret on its line,
|
|
35463
|
+
* in that text's formatting, but not inside a link. Moving the caret there
|
|
35464
|
+
* too makes a paste and the toolbar agree with what's typed:
|
|
35465
|
+
* `<p>one</p><p><b>|two</b></p>` joins to `<p>one|<b>two</b></p>`
|
|
35466
|
+
*/ moveCaretToTextBefore(fakeNode) {
|
|
35467
|
+
var _a, _b;
|
|
35468
|
+
const { jodit } = this;
|
|
35469
|
+
const { range } = jodit.s;
|
|
35470
|
+
// A case may have merged the fake node away (#1722)
|
|
35471
|
+
if (!fakeNode.parentNode) {
|
|
35472
|
+
return;
|
|
35473
|
+
}
|
|
35474
|
+
const around = jodit.ed.createRange();
|
|
35475
|
+
around.selectNode(fakeNode);
|
|
35476
|
+
if (!range.collapsed || !around.isPointInRange(range.startContainer, range.startOffset)) {
|
|
35477
|
+
return;
|
|
35478
|
+
}
|
|
35479
|
+
const text = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_9__.findMostNestedNeighbor)(fakeNode, false, jodit.editor, true);
|
|
35480
|
+
const link = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(text, 'a', jodit.editor);
|
|
35481
|
+
if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(text) || !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(text, jodit.editor) || link && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(link, fakeNode) || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(text, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, jodit.editor) !== _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fakeNode, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, jodit.editor)) {
|
|
35482
|
+
return;
|
|
35483
|
+
}
|
|
35484
|
+
range.setStart(text, (_b = (_a = text.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
|
|
35485
|
+
range.collapse(true);
|
|
35486
|
+
jodit.s.selectRange(range);
|
|
35487
|
+
}
|
|
35414
35488
|
/**
|
|
35415
35489
|
* Remove node and replace cursor position out of it
|
|
35416
35490
|
*/ safeRemoveEmptyNode(fakeNode) {
|
|
35417
|
-
var _a, _b;
|
|
35491
|
+
var _a, _b, _c;
|
|
35418
35492
|
const { range } = this.j.s;
|
|
35493
|
+
// wrap-nodes normalizes the line it wraps, which can merge the text
|
|
35494
|
+
// after the fake node into it: remove only the fake node's own space
|
|
35495
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(fakeNode) && fakeNode.nodeValue !== _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE && ((_a = fakeNode.nodeValue) === null || _a === void 0 ? void 0 : _a.startsWith(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE))) {
|
|
35496
|
+
fakeNode.deleteData(0, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE.length);
|
|
35497
|
+
return;
|
|
35498
|
+
}
|
|
35419
35499
|
if (range.startContainer === fakeNode) {
|
|
35420
35500
|
if (fakeNode.previousSibling) {
|
|
35421
35501
|
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(fakeNode.previousSibling)) {
|
|
35422
|
-
range.setStart(fakeNode.previousSibling, (
|
|
35502
|
+
range.setStart(fakeNode.previousSibling, (_c = (_b = fakeNode.previousSibling.nodeValue) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0);
|
|
35423
35503
|
} else {
|
|
35424
35504
|
range.setStartAfter(fakeNode.previousSibling);
|
|
35425
35505
|
}
|
|
@@ -35464,6 +35544,11 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
35464
35544
|
* Check if two separate elements can be connected
|
|
35465
35545
|
* @private
|
|
35466
35546
|
*/ function checkJoinNeighbors(jodit, fakeNode, backspace) {
|
|
35547
|
+
return joinNeighbors(jodit, fakeNode, backspace, false);
|
|
35548
|
+
}
|
|
35549
|
+
/**
|
|
35550
|
+
* `moved` is set on the one re-entrant pass after `moveToNextLine`
|
|
35551
|
+
*/ function joinNeighbors(jodit, fakeNode, backspace, moved) {
|
|
35467
35552
|
if (checkJoinBareText(jodit, fakeNode, backspace)) {
|
|
35468
35553
|
return true;
|
|
35469
35554
|
}
|
|
@@ -35479,6 +35564,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
35479
35564
|
return false;
|
|
35480
35565
|
}
|
|
35481
35566
|
const sibling = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(mainClosestBox, backspace);
|
|
35567
|
+
if (moveInlinesInside(jodit, fakeNode, sibling)) {
|
|
35568
|
+
return joinNeighbors(jodit, fakeNode, backspace, moved);
|
|
35569
|
+
}
|
|
35482
35570
|
// A line break before the cursor is a single unit: remove it instead of
|
|
35483
35571
|
// merging the current element into the (void) `<br>`, which used to move
|
|
35484
35572
|
// the whole element's content into the `<br>` and delete it (#1282).
|
|
@@ -35493,7 +35581,19 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
35493
35581
|
jodit.s.setCursorBefore(fakeNode);
|
|
35494
35582
|
return true;
|
|
35495
35583
|
}
|
|
35584
|
+
// A non-editable sibling is removed by remove-not-editable, never joined
|
|
35585
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(sibling) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(sibling, jodit.editor)) {
|
|
35586
|
+
return false;
|
|
35587
|
+
}
|
|
35496
35588
|
const box = findCaretBox(fakeNode, mainClosestBox);
|
|
35589
|
+
// One pass only: the line now sits beside the next one, so the
|
|
35590
|
+
// cases below join them. The DOM has changed either way
|
|
35591
|
+
if (!moved && sibling && moveToNextLine(jodit, fakeNode, box, sibling, backspace)) {
|
|
35592
|
+
if (!joinNeighbors(jodit, fakeNode, backspace, true)) {
|
|
35593
|
+
jodit.s.setCursorBefore(fakeNode);
|
|
35594
|
+
}
|
|
35595
|
+
return true;
|
|
35596
|
+
}
|
|
35497
35597
|
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))) {
|
|
35498
35598
|
jodit.s.setCursorBefore(fakeNode);
|
|
35499
35599
|
return true;
|
|
@@ -35513,6 +35613,60 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
35513
35613
|
}
|
|
35514
35614
|
return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(block) && block.parentElement ? block.parentElement : block;
|
|
35515
35615
|
}
|
|
35616
|
+
/**
|
|
35617
|
+
* With an inline element round the caret's line or the one it joins moved
|
|
35618
|
+
* inside its blocks, the cases join the lines as they join any two, and its
|
|
35619
|
+
* styles stay with its text. One round both lines is left as it is.
|
|
35620
|
+
*/ function moveInlinesInside(jodit, fakeNode, sibling) {
|
|
35621
|
+
if (!sibling) {
|
|
35622
|
+
return false;
|
|
35623
|
+
}
|
|
35624
|
+
const around = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.furthest(fakeNode, (node)=>_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, sibling), jodit.editor);
|
|
35625
|
+
return moveInlineInside(around, jodit.editor) || moveInlineInside(sibling, jodit.editor);
|
|
35626
|
+
}
|
|
35627
|
+
/**
|
|
35628
|
+
* Old content can have an inline element round blocks. This moves it inside
|
|
35629
|
+
* them, and gives the text, images and line breaks beside them a copy of
|
|
35630
|
+
* their own: `<span style="…"><p>one</p><br><p>two</p></span>` becomes
|
|
35631
|
+
* `<p><span style="…">one</span></p><span style="…"><br></span><p><span style="…">two</span></p>`
|
|
35632
|
+
*/ function moveInlineInside(node, root) {
|
|
35633
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node)) {
|
|
35634
|
+
return false;
|
|
35635
|
+
}
|
|
35636
|
+
// Embedded content, such as the `<iframe>` in a video's wrapper, counts
|
|
35637
|
+
// as a block in `Dom.isBlock`, but stays with the text beside it
|
|
35638
|
+
const isBlock = (child)=>_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(child) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(child, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.NO_EMPTY_TAGS);
|
|
35639
|
+
// The inner one first: `<span><strong><p>one</p></strong></span>`
|
|
35640
|
+
Array.from(node.childNodes).forEach((child)=>moveInlineInside(child, root));
|
|
35641
|
+
const children = Array.from(node.childNodes);
|
|
35642
|
+
if (!children.some(isBlock)) {
|
|
35643
|
+
return false;
|
|
35644
|
+
}
|
|
35645
|
+
let run = null;
|
|
35646
|
+
for (const child of children){
|
|
35647
|
+
if (!isBlock(child)) {
|
|
35648
|
+
// Blank text between blocks stays where it is
|
|
35649
|
+
if (!run && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(child)) {
|
|
35650
|
+
run = node.cloneNode(false);
|
|
35651
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(child, run);
|
|
35652
|
+
}
|
|
35653
|
+
run && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(run, child);
|
|
35654
|
+
continue;
|
|
35655
|
+
}
|
|
35656
|
+
run = null;
|
|
35657
|
+
// Nothing goes inside a rule or a non-editable block
|
|
35658
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(child, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(child, root)) {
|
|
35659
|
+
continue;
|
|
35660
|
+
}
|
|
35661
|
+
const inner = node.cloneNode(false);
|
|
35662
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.moveContent(child, inner);
|
|
35663
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(child, inner);
|
|
35664
|
+
// A list or a table: on down to its items or cells
|
|
35665
|
+
moveInlineInside(inner, root);
|
|
35666
|
+
}
|
|
35667
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(node);
|
|
35668
|
+
return true;
|
|
35669
|
+
}
|
|
35516
35670
|
/**
|
|
35517
35671
|
* The innermost block on the sibling's edge facing the caret, so the
|
|
35518
35672
|
* content is joined to text: `<div><p>one</p></div><p>|two</p>` gives
|
|
@@ -35545,6 +35699,68 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
35545
35699
|
});
|
|
35546
35700
|
return cells.length ? cells[backspace ? cells.length - 1 : 0] : null;
|
|
35547
35701
|
}
|
|
35702
|
+
/**
|
|
35703
|
+
* On Delete, Word joins two lines where the next one is, inside or outside
|
|
35704
|
+
* its box or quote, and the joined line keeps the caret line's kind, list item
|
|
35705
|
+
* or paragraph. Two paragraphs already join that way. When either line is a
|
|
35706
|
+
* list item, this moves the caret's line beside the next one, and the usual
|
|
35707
|
+
* cases then join them: `<p>one|</p><div><ul><li>two</li></ul></div>` becomes
|
|
35708
|
+
* `<div><p>one|</p><ul><li>two</li></ul></div>`
|
|
35709
|
+
* @private
|
|
35710
|
+
*/ function moveToNextLine(jodit, fakeNode, box, sibling, backspace) {
|
|
35711
|
+
if (backspace || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, 'table') || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(sibling, jodit.editor)) {
|
|
35712
|
+
return false;
|
|
35713
|
+
}
|
|
35714
|
+
const line = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.up(fakeNode, _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, box, true);
|
|
35715
|
+
const next = findEdgeBlock(sibling, false, jodit.editor);
|
|
35716
|
+
if (!line || !next || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(next, jodit.editor) || !(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(line) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(next)) || // A paragraph inside a list item is left as it is
|
|
35717
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(line.parentElement) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(next.parentElement) || boxOf(line) === boxOf(next)) {
|
|
35718
|
+
return false;
|
|
35719
|
+
}
|
|
35720
|
+
const from = line.parentElement;
|
|
35721
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(line) && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(next)) {
|
|
35722
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(next, line);
|
|
35723
|
+
} else if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(line)) {
|
|
35724
|
+
// A list item keeps its bullet, in a list of its own
|
|
35725
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(next, ownList(line));
|
|
35726
|
+
} else {
|
|
35727
|
+
// A paragraph can't go inside a list, so it goes in front of it
|
|
35728
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(next.parentElement, line);
|
|
35729
|
+
}
|
|
35730
|
+
let remove = from;
|
|
35731
|
+
while(remove && remove !== jodit.editor && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(remove)){
|
|
35732
|
+
const parent = remove.parentElement;
|
|
35733
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(remove);
|
|
35734
|
+
remove = parent;
|
|
35735
|
+
}
|
|
35736
|
+
return true;
|
|
35737
|
+
}
|
|
35738
|
+
/**
|
|
35739
|
+
* The box or quote a line is in, past its lists
|
|
35740
|
+
*/ function boxOf(line) {
|
|
35741
|
+
let box = line.parentElement;
|
|
35742
|
+
while(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(box) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(box)){
|
|
35743
|
+
box = box.parentElement;
|
|
35744
|
+
}
|
|
35745
|
+
return box;
|
|
35746
|
+
}
|
|
35747
|
+
/**
|
|
35748
|
+
* Moves a list item into a list of its own, which carries on its numbering
|
|
35749
|
+
*/ function ownList(item) {
|
|
35750
|
+
const list = item.parentElement;
|
|
35751
|
+
const own = list.cloneNode(false);
|
|
35752
|
+
const index = Array.from(list.children).indexOf(item);
|
|
35753
|
+
if (index) {
|
|
35754
|
+
// Two lists cannot share one id
|
|
35755
|
+
own.removeAttribute('id');
|
|
35756
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(list, 'ol')) {
|
|
35757
|
+
const start = parseInt(list.getAttribute('start') || '1', 10) || 1;
|
|
35758
|
+
own.setAttribute('start', String(start + index));
|
|
35759
|
+
}
|
|
35760
|
+
}
|
|
35761
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(own, item);
|
|
35762
|
+
return own;
|
|
35763
|
+
}
|
|
35548
35764
|
/**
|
|
35549
35765
|
* Delete at the edge of a list pulls the next line up to the caret, as the
|
|
35550
35766
|
* browsers do, instead of moving the caret's line into the next block:
|
|
@@ -35802,7 +36018,9 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode, stopBeforeSpace = fal
|
|
|
35802
36018
|
while(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isInlineBlock(sibling)){
|
|
35803
36019
|
sibling = backspace ? sibling === null || sibling === void 0 ? void 0 : sibling.lastChild : sibling === null || sibling === void 0 ? void 0 : sibling.firstChild;
|
|
35804
36020
|
}
|
|
35805
|
-
|
|
36021
|
+
// A block inside an inline element, such as the `<p>` in
|
|
36022
|
+
// `<span><p>…</p></span>`, isn't a char: the join cases handle it
|
|
36023
|
+
if (!sibling || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(sibling)) {
|
|
35806
36024
|
break;
|
|
35807
36025
|
}
|
|
35808
36026
|
if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
|
|
@@ -35950,6 +36168,7 @@ function isSpace(char) {
|
|
|
35950
36168
|
/* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
|
|
35951
36169
|
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21537);
|
|
35952
36170
|
/* harmony import */ var _core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45124);
|
|
36171
|
+
/* harmony import */ var _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62845);
|
|
35953
36172
|
/*!
|
|
35954
36173
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
35955
36174
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -35957,23 +36176,48 @@ function isSpace(char) {
|
|
|
35957
36176
|
*/
|
|
35958
36177
|
|
|
35959
36178
|
|
|
36179
|
+
|
|
35960
36180
|
/**
|
|
35961
|
-
* Checks if a non-editable element can be deleted
|
|
36181
|
+
* Checks if a non-editable element can be deleted. A non-editable block goes
|
|
36182
|
+
* whole, and the lines either side of it then join, as the spec's tests do:
|
|
36183
|
+
* `<ul><li>one|</li></ul><div contenteditable="false">x</div><p>two</p>`
|
|
36184
|
+
* gives `<ul><li>one|two</li></ul>`
|
|
35962
36185
|
* @private
|
|
35963
36186
|
*/ function checkRemoveContentNotEditable(jodit, fakeNode, backspace) {
|
|
35964
|
-
let
|
|
35965
|
-
|
|
35966
|
-
|
|
35967
|
-
|
|
35968
|
-
|
|
35969
|
-
|
|
35970
|
-
|
|
35971
|
-
|
|
35972
|
-
(
|
|
36187
|
+
let node = fakeNode;
|
|
36188
|
+
let neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(node, backspace);
|
|
36189
|
+
// Past the edges of the blocks the caret is at, but not into a table cell
|
|
36190
|
+
while(!neighbor && node.parentElement && node.parentElement !== jodit.editor && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isCell(node.parentElement)){
|
|
36191
|
+
node = node.parentElement;
|
|
36192
|
+
neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(node, backspace);
|
|
36193
|
+
// At the start of a list item, Backspace takes the bullet off first,
|
|
36194
|
+
// unless the item before it is a non-editable one to remove
|
|
36195
|
+
if (backspace && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(node) && !(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(neighbor) && isNotEditable(jodit, neighbor))) {
|
|
36196
|
+
return false;
|
|
36197
|
+
}
|
|
36198
|
+
}
|
|
36199
|
+
if (isNotEditable(jodit, neighbor)) {
|
|
36200
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(neighbor)) {
|
|
36201
|
+
// Backspace after a removed list item leaves the items apart: the
|
|
36202
|
+
// next press takes the bullet off, as for any later item
|
|
36203
|
+
const joinLines = !(backspace && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(neighbor));
|
|
36204
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
|
|
36205
|
+
if (joinLines) {
|
|
36206
|
+
(0,_check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_3__.checkJoinNeighbors)(jodit, fakeNode, backspace);
|
|
36207
|
+
}
|
|
36208
|
+
} else {
|
|
36209
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.before : _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after, neighbor, fakeNode);
|
|
36210
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
|
|
36211
|
+
(0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.moveNodeInsideStart)(jodit, fakeNode, backspace);
|
|
36212
|
+
}
|
|
36213
|
+
;(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? jodit.s.setCursorBefore : jodit.s.setCursorAfter, fakeNode);
|
|
35973
36214
|
return true;
|
|
35974
36215
|
}
|
|
35975
36216
|
return false;
|
|
35976
36217
|
}
|
|
36218
|
+
function isNotEditable(jodit, node) {
|
|
36219
|
+
return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(node) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isContentEditable(node, jodit.editor);
|
|
36220
|
+
}
|
|
35977
36221
|
|
|
35978
36222
|
|
|
35979
36223
|
/***/ }),
|
|
@@ -57112,12 +57356,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
|
|
|
57112
57356
|
/***/ 72253:
|
|
57113
57357
|
/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
|
|
57114
57358
|
|
|
57115
|
-
/* harmony import */ var
|
|
57116
|
-
/* harmony import */ var
|
|
57117
|
-
/* harmony import */ var
|
|
57118
|
-
/* harmony import */ var
|
|
57119
|
-
/* harmony import */ var
|
|
57120
|
-
/* harmony import */ var
|
|
57359
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
57360
|
+
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
|
|
57361
|
+
/* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22732);
|
|
57362
|
+
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
|
|
57363
|
+
/* harmony import */ var _core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70799);
|
|
57364
|
+
/* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
|
|
57365
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(96967);
|
|
57121
57366
|
/*!
|
|
57122
57367
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
57123
57368
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -57134,9 +57379,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
|
|
|
57134
57379
|
|
|
57135
57380
|
|
|
57136
57381
|
|
|
57382
|
+
|
|
57137
57383
|
/**
|
|
57138
57384
|
* Wrap single text nodes in block wrapper
|
|
57139
|
-
*/ class wrapNodes extends
|
|
57385
|
+
*/ class wrapNodes extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
57140
57386
|
/** @override **/ afterInit(jodit) {
|
|
57141
57387
|
if (jodit.o.enter.toLowerCase() === 'br') {
|
|
57142
57388
|
return;
|
|
@@ -57165,10 +57411,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
|
|
|
57165
57411
|
}
|
|
57166
57412
|
isChanged = true;
|
|
57167
57413
|
const box = jodit.createInside.element(jodit.o.enter);
|
|
57168
|
-
|
|
57169
|
-
|
|
57414
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.before(child, box);
|
|
57415
|
+
// `exclude` keeps a <br> from starting a box, but one between loose lines stays with them
|
|
57416
|
+
while(child && (this.isSuitable(child) || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(child, 'br'))){
|
|
57170
57417
|
const next = child.nextSibling;
|
|
57171
|
-
|
|
57418
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(box, child);
|
|
57172
57419
|
child = next;
|
|
57173
57420
|
}
|
|
57174
57421
|
box.normalize();
|
|
@@ -57192,8 +57439,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
|
|
|
57192
57439
|
}
|
|
57193
57440
|
const box = jodit.createInside.element(jodit.o.enter);
|
|
57194
57441
|
const br = jodit.createInside.element('br');
|
|
57195
|
-
|
|
57196
|
-
|
|
57442
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(box, br);
|
|
57443
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(jodit.editor, box);
|
|
57197
57444
|
if (jodit.s.isFocused() || jodit.e.current === 'backSpaceAfterDelete') {
|
|
57198
57445
|
jodit.s.setCursorBefore(br);
|
|
57199
57446
|
}
|
|
@@ -57205,32 +57452,43 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
|
|
|
57205
57452
|
* Found Node which should be wrapped
|
|
57206
57453
|
*/ this.isSuitableStart = (n)=>{
|
|
57207
57454
|
var _a;
|
|
57208
|
-
return
|
|
57455
|
+
return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(n) && (0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_4__.isString)(n.nodeValue) && (/[^\s]/.test(n.nodeValue) || ((_a = n.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === n && this.isSuitable(n.nextSibling)) || this.isNotWrapped(n) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTemporary(n);
|
|
57209
57456
|
};
|
|
57210
57457
|
/**
|
|
57211
57458
|
* Node should add in a block element
|
|
57212
|
-
*/ this.isSuitable = (n)=>
|
|
57459
|
+
*/ this.isSuitable = (n)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(n) || this.isNotWrapped(n);
|
|
57213
57460
|
/**
|
|
57214
57461
|
* Some element which needs to append in block
|
|
57215
|
-
*/ this.isNotWrapped = (n)=>
|
|
57462
|
+
*/ this.isNotWrapped = (n)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(n) && !(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isBlock(n) || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(n, this.j.o.wrapNodes.exclude) || holdsBlock(n));
|
|
57216
57463
|
}
|
|
57217
57464
|
}
|
|
57218
57465
|
__decorate([
|
|
57219
|
-
|
|
57466
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
57220
57467
|
], wrapNodes.prototype, "postProcessSetEditorValue", null);
|
|
57221
57468
|
__decorate([
|
|
57222
|
-
|
|
57469
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
57223
57470
|
], wrapNodes.prototype, "preprocessInput", null);
|
|
57471
|
+
/**
|
|
57472
|
+
* A block can't go in a paragraph, so neither can an element that holds one,
|
|
57473
|
+
* such as a `<span>` round a `<p>`. Embedded content such as an `<iframe>` can.
|
|
57474
|
+
*/ function holdsBlock(elm) {
|
|
57475
|
+
for (const node of _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.eachGen(elm)){
|
|
57476
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isBlock(node) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(node, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.NO_EMPTY_TAGS)) {
|
|
57477
|
+
return true;
|
|
57478
|
+
}
|
|
57479
|
+
}
|
|
57480
|
+
return false;
|
|
57481
|
+
}
|
|
57224
57482
|
function checkAloneListLeaf(child, jodit) {
|
|
57225
57483
|
let result = child;
|
|
57226
57484
|
let next = child;
|
|
57227
57485
|
do {
|
|
57228
|
-
if (
|
|
57229
|
-
const nextChild =
|
|
57230
|
-
if (
|
|
57231
|
-
|
|
57486
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(next) && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isLeaf(next) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isList(next.parentElement)) {
|
|
57487
|
+
const nextChild = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.findNotEmptySibling(next, false);
|
|
57488
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(result, 'ul')) {
|
|
57489
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(result, next);
|
|
57232
57490
|
} else {
|
|
57233
|
-
result =
|
|
57491
|
+
result = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.wrap(next, 'ul', jodit.createInside);
|
|
57234
57492
|
}
|
|
57235
57493
|
next = nextChild;
|
|
57236
57494
|
} else {
|
|
@@ -57239,7 +57497,7 @@ function checkAloneListLeaf(child, jodit) {
|
|
|
57239
57497
|
}while (next)
|
|
57240
57498
|
return result;
|
|
57241
57499
|
}
|
|
57242
|
-
|
|
57500
|
+
_core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('wrapNodes', wrapNodes);
|
|
57243
57501
|
|
|
57244
57502
|
|
|
57245
57503
|
/***/ }),
|