jodit-pro 4.18.14 → 4.18.17
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 +281 -78
- package/es2015/jodit.min.js +5 -5
- 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 +5 -5
- 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 +7 -7
- package/es2021/jodit.js +281 -78
- package/es2021/jodit.min.js +7 -7
- 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 +7 -7
- package/es2021.en/jodit.js +281 -78
- package/es2021.en/jodit.min.js +10 -10
- 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 +353 -79
- 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.17
|
|
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.17";
|
|
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
|
|
@@ -13202,7 +13214,7 @@ function elementsEqualAttributes(elm1, elm2) {
|
|
|
13202
13214
|
/**
|
|
13203
13215
|
* Replaces `ul->ol` or `ol->ul`, apply styles to the list, or remove a list item from it
|
|
13204
13216
|
* @private
|
|
13205
|
-
*/ function toggleOrderedList(commitStyle, li, jodit, mode) {
|
|
13217
|
+
*/ function toggleOrderedList(commitStyle, li, jodit, mode, collapsed = false) {
|
|
13206
13218
|
if (!li) {
|
|
13207
13219
|
return mode;
|
|
13208
13220
|
}
|
|
@@ -13231,16 +13243,36 @@ function elementsEqualAttributes(elm1, elm2) {
|
|
|
13231
13243
|
}
|
|
13232
13244
|
// ul => ol, ol => ul or ul => ul.class1
|
|
13233
13245
|
if (mode === _constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE || isChangeMode || !isSameList) {
|
|
13234
|
-
|
|
13235
|
-
const
|
|
13246
|
+
// With just a caret, Word converts the whole list
|
|
13247
|
+
const items = collapsed && !isSameList ? Array.from(list.children).filter((item)=>_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(item)) : [
|
|
13248
|
+
li
|
|
13249
|
+
];
|
|
13250
|
+
let newList;
|
|
13251
|
+
for (const item of items){
|
|
13252
|
+
newList = keepNumbering(item, (itemList)=>(0,_wrap_list_js__WEBPACK_IMPORTED_MODULE_7__.wrapList)(commitStyle, unwrapList(_constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE, itemList, item, jodit, commitStyle), jodit));
|
|
13253
|
+
}
|
|
13236
13254
|
hook(_constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE, newList, commitStyle);
|
|
13237
13255
|
return _constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE;
|
|
13238
13256
|
}
|
|
13239
13257
|
}
|
|
13240
|
-
const wrapper = unwrapList((/* inlined export .UNWRAP */"unwrap"),
|
|
13258
|
+
const wrapper = keepNumbering(li, (itemList)=>unwrapList((/* inlined export .UNWRAP */"unwrap"), itemList, li, jodit, commitStyle));
|
|
13241
13259
|
hook((/* inlined export .UNWRAP */"unwrap"), wrapper, commitStyle);
|
|
13242
13260
|
return (/* inlined export .UNWRAP */"unwrap");
|
|
13243
13261
|
}
|
|
13262
|
+
/**
|
|
13263
|
+
* Takes `item` out of its list with `takeOut`, and carries a numbered list's
|
|
13264
|
+
* count on past it, as Word does: 1, a bullet, then 2
|
|
13265
|
+
*/ function keepNumbering(item, takeOut) {
|
|
13266
|
+
const list = item.parentElement;
|
|
13267
|
+
const rest = item.nextElementSibling;
|
|
13268
|
+
const next = _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(list, 'ol') ? (parseInt(list.getAttribute('start') || '1', 10) || 1) + Array.from(list.children).indexOf(item) : 0;
|
|
13269
|
+
const result = takeOut(list);
|
|
13270
|
+
const restList = rest === null || rest === void 0 ? void 0 : rest.parentElement;
|
|
13271
|
+
if (next && _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(restList, 'ol')) {
|
|
13272
|
+
next > 1 ? restList.setAttribute('start', String(next)) : restList.removeAttribute('start');
|
|
13273
|
+
}
|
|
13274
|
+
return result;
|
|
13275
|
+
}
|
|
13244
13276
|
/**
|
|
13245
13277
|
* Other attributes, such as a class, still move the items into a new list,
|
|
13246
13278
|
* where the `beforeWrapList` hook can add markup to each of them
|
|
@@ -14040,7 +14072,7 @@ const transactions = {
|
|
|
14040
14072
|
[states.TOGGLE_LIST]: {
|
|
14041
14073
|
exec (value) {
|
|
14042
14074
|
return _object_spread_props(_object_spread({}, value), {
|
|
14043
|
-
mode: (0,_api_index_js__WEBPACK_IMPORTED_MODULE_3__.toggleOrderedList)(value.style, value.element, value.jodit, value.mode),
|
|
14075
|
+
mode: (0,_api_index_js__WEBPACK_IMPORTED_MODULE_3__.toggleOrderedList)(value.style, value.element, value.jodit, value.mode, value.collapsed),
|
|
14044
14076
|
next: states.END
|
|
14045
14077
|
});
|
|
14046
14078
|
}
|
|
@@ -34357,12 +34389,13 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__.Icon.set('about', _about_svg_js__W
|
|
|
34357
34389
|
/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
|
|
34358
34390
|
|
|
34359
34391
|
/* 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
|
|
34392
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
34393
|
+
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
|
|
34394
|
+
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
|
|
34395
|
+
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
|
|
34396
|
+
/* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41180);
|
|
34397
|
+
/* harmony import */ var _modules_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41409);
|
|
34398
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4604);
|
|
34366
34399
|
/*!
|
|
34367
34400
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
34368
34401
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -34379,10 +34412,11 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__.Icon.set('about', _about_svg_js__W
|
|
|
34379
34412
|
|
|
34380
34413
|
|
|
34381
34414
|
|
|
34415
|
+
|
|
34382
34416
|
const ns = 'addnewline';
|
|
34383
34417
|
/**
|
|
34384
34418
|
* Create helper for adding new paragraph(Jodit.defaultOptions.enter tag) before iframe, table or image
|
|
34385
|
-
*/ class addNewLine extends
|
|
34419
|
+
*/ class addNewLine extends _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
34386
34420
|
__show() {
|
|
34387
34421
|
if (this.j.o.readonly || this.j.isLocked) {
|
|
34388
34422
|
return;
|
|
@@ -34392,8 +34426,8 @@ const ns = 'addnewline';
|
|
|
34392
34426
|
return;
|
|
34393
34427
|
}
|
|
34394
34428
|
this.__isShown = true;
|
|
34395
|
-
|
|
34396
|
-
(0,
|
|
34429
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(this.j.container, this.__line);
|
|
34430
|
+
(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.__line, 'width', this.j.container.clientWidth);
|
|
34397
34431
|
}
|
|
34398
34432
|
onLock(isLocked) {
|
|
34399
34433
|
if (isLocked && this.__isShown) {
|
|
@@ -34431,16 +34465,43 @@ const ns = 'addnewline';
|
|
|
34431
34465
|
editor.editor
|
|
34432
34466
|
], '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
34467
|
}
|
|
34468
|
+
/**
|
|
34469
|
+
* A paragraph holding only an embed has no place for the caret, so the
|
|
34470
|
+
* arrow keys can't get past one that ends the content, or before one that
|
|
34471
|
+
* starts it. When an arrow key leaves the caret where it was and there is
|
|
34472
|
+
* content beyond it, a new line goes there, as when the line is clicked.
|
|
34473
|
+
*/ onArrowKey(e) {
|
|
34474
|
+
const editor = this.j;
|
|
34475
|
+
const forward = e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT;
|
|
34476
|
+
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()) {
|
|
34477
|
+
return;
|
|
34478
|
+
}
|
|
34479
|
+
const { startContainer, startOffset } = editor.s.range;
|
|
34480
|
+
// Once the browser has moved the caret, if it could. With a 0 timeout
|
|
34481
|
+
// Jodit would run this at once, before the browser moves it
|
|
34482
|
+
editor.async.setTimeout(()=>{
|
|
34483
|
+
const { range } = editor.s;
|
|
34484
|
+
const block = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.closest(startContainer, _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock, editor.editor);
|
|
34485
|
+
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)) {
|
|
34486
|
+
return;
|
|
34487
|
+
}
|
|
34488
|
+
const p = editor.createInside.element(editor.o.enter);
|
|
34489
|
+
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);
|
|
34490
|
+
editor.s.setCursorIn(p);
|
|
34491
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
|
|
34492
|
+
editor.synchronizeValues();
|
|
34493
|
+
}, 1);
|
|
34494
|
+
}
|
|
34434
34495
|
onDblClickEditor(e) {
|
|
34435
34496
|
const editor = this.j;
|
|
34436
34497
|
if (!editor.o.readonly && editor.o.addNewLineOnDBLClick && e.target === editor.editor && editor.s.isCollapsed()) {
|
|
34437
|
-
const editorBound = (0,
|
|
34498
|
+
const editorBound = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.offset)(editor.editor, editor, editor.ed);
|
|
34438
34499
|
const top = e.pageY - editor.ew.scrollX;
|
|
34439
34500
|
const p = editor.createInside.element(editor.o.enter);
|
|
34440
34501
|
if (Math.abs(top - editorBound.top) < Math.abs(top - (editorBound.height + editorBound.top)) && editor.editor.firstChild) {
|
|
34441
|
-
|
|
34502
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
|
|
34442
34503
|
} else {
|
|
34443
|
-
|
|
34504
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p);
|
|
34444
34505
|
}
|
|
34445
34506
|
editor.s.setCursorIn(p);
|
|
34446
34507
|
editor.synchronizeValues();
|
|
@@ -34454,27 +34515,27 @@ const ns = 'addnewline';
|
|
|
34454
34515
|
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
34455
34516
|
// host, so the lookup must start from the shadow root
|
|
34456
34517
|
let currentElement = ((_a = editor.o.shadowRoot) !== null && _a !== void 0 ? _a : editor.ed).elementFromPoint(e.clientX, e.clientY);
|
|
34457
|
-
if (!
|
|
34518
|
+
if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isOrContains(editor.editor, currentElement)) {
|
|
34458
34519
|
return;
|
|
34459
34520
|
}
|
|
34460
34521
|
if (editor.editor !== currentElement && !this.__isMatchedTag(currentElement)) {
|
|
34461
|
-
currentElement =
|
|
34522
|
+
currentElement = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.closest(currentElement, this.__isMatchedTag, editor.editor);
|
|
34462
34523
|
}
|
|
34463
34524
|
if (!currentElement) {
|
|
34464
34525
|
this.__hide();
|
|
34465
34526
|
return;
|
|
34466
34527
|
}
|
|
34467
34528
|
if (this.__isMatchedTag(currentElement)) {
|
|
34468
|
-
const parentBox =
|
|
34529
|
+
const parentBox = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.up(currentElement, _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock, editor.editor);
|
|
34469
34530
|
if (parentBox && parentBox !== editor.editor) {
|
|
34470
34531
|
currentElement = parentBox;
|
|
34471
34532
|
}
|
|
34472
34533
|
}
|
|
34473
|
-
const pos = (0,
|
|
34534
|
+
const pos = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(currentElement, this.j);
|
|
34474
34535
|
let top = false;
|
|
34475
34536
|
let { clientY, clientX } = e;
|
|
34476
34537
|
if (this.j.iframe) {
|
|
34477
|
-
const { top, left } = (0,
|
|
34538
|
+
const { top, left } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(this.j.iframe, this.j, true);
|
|
34478
34539
|
clientY += top;
|
|
34479
34540
|
clientX += left;
|
|
34480
34541
|
}
|
|
@@ -34487,8 +34548,8 @@ const ns = 'addnewline';
|
|
|
34487
34548
|
this.__isBeforeContent = false;
|
|
34488
34549
|
}
|
|
34489
34550
|
const isEditor = editor.editor === currentElement;
|
|
34490
|
-
if (top !== false && (isEditor && !this.__isBeforeContent || !isEditor && !(0,
|
|
34491
|
-
(0,
|
|
34551
|
+
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))) {
|
|
34552
|
+
(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.__line, 'top', top);
|
|
34492
34553
|
this.__current = currentElement;
|
|
34493
34554
|
this.__show();
|
|
34494
34555
|
this.__line.style.setProperty('--jd-anl-handle-offset', clientX - pos.left - 10 + 'px');
|
|
@@ -34500,7 +34561,7 @@ const ns = 'addnewline';
|
|
|
34500
34561
|
/** @override */ beforeDestruct() {
|
|
34501
34562
|
this.j.async.clearTimeout(this.__timeout);
|
|
34502
34563
|
this.j.e.off(this.__line).off('changePlace', this.__addEventListeners);
|
|
34503
|
-
|
|
34564
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(this.__line);
|
|
34504
34565
|
this.j.e.off([
|
|
34505
34566
|
this.j.ow,
|
|
34506
34567
|
this.j.ew,
|
|
@@ -34509,7 +34570,7 @@ const ns = 'addnewline';
|
|
|
34509
34570
|
}
|
|
34510
34571
|
constructor(){
|
|
34511
34572
|
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>${
|
|
34573
|
+
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
34574
|
this.__isMatchedTag = (node)=>Boolean(node && this.j.o.addNewLineTagsTriggers.includes(node.nodeName.toLowerCase()));
|
|
34514
34575
|
this.__isBeforeContent = false;
|
|
34515
34576
|
this.__lineInFocus = false;
|
|
@@ -34521,26 +34582,26 @@ const ns = 'addnewline';
|
|
|
34521
34582
|
this.__isShown = false;
|
|
34522
34583
|
this.j.async.clearTimeout(this.__timeout);
|
|
34523
34584
|
this.__lineInFocus = false;
|
|
34524
|
-
|
|
34585
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(this.__line);
|
|
34525
34586
|
this.__line.style.setProperty('--jd-anl-handle-offset', '0');
|
|
34526
34587
|
};
|
|
34527
34588
|
this.__canGetFocus = (elm)=>{
|
|
34528
|
-
return elm != null &&
|
|
34589
|
+
return elm != null && _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock(elm) && !/^(img|table|iframe|hr)$/i.test(elm.nodeName);
|
|
34529
34590
|
};
|
|
34530
34591
|
this.__onClickLine = (e)=>{
|
|
34531
34592
|
const editor = this.j;
|
|
34532
34593
|
const p = editor.createInside.element(editor.o.enter);
|
|
34533
34594
|
if (this.__isBeforeContent && this.__current && this.__current.parentNode) {
|
|
34534
34595
|
if (this.__current === editor.editor) {
|
|
34535
|
-
|
|
34596
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
|
|
34536
34597
|
} else {
|
|
34537
|
-
|
|
34598
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.before(this.__current, p);
|
|
34538
34599
|
}
|
|
34539
34600
|
} else {
|
|
34540
|
-
|
|
34601
|
+
_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p);
|
|
34541
34602
|
}
|
|
34542
34603
|
editor.s.setCursorIn(p);
|
|
34543
|
-
(0,
|
|
34604
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
|
|
34544
34605
|
editor.synchronizeValues();
|
|
34545
34606
|
this.__hideForce();
|
|
34546
34607
|
e.preventDefault();
|
|
@@ -34548,18 +34609,21 @@ const ns = 'addnewline';
|
|
|
34548
34609
|
}
|
|
34549
34610
|
}
|
|
34550
34611
|
__decorate([
|
|
34551
|
-
(0,
|
|
34612
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':lock')
|
|
34552
34613
|
], addNewLine.prototype, "onLock", null);
|
|
34553
34614
|
__decorate([
|
|
34554
|
-
|
|
34615
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
34555
34616
|
], addNewLine.prototype, "__hide", null);
|
|
34556
34617
|
__decorate([
|
|
34557
|
-
(0,
|
|
34618
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':keydown')
|
|
34619
|
+
], addNewLine.prototype, "onArrowKey", null);
|
|
34620
|
+
__decorate([
|
|
34621
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':dblclick')
|
|
34558
34622
|
], addNewLine.prototype, "onDblClickEditor", null);
|
|
34559
34623
|
__decorate([
|
|
34560
|
-
(0,
|
|
34624
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.throttle)((ctx)=>ctx.defaultTimeout)
|
|
34561
34625
|
], addNewLine.prototype, "__onMouseMove", null);
|
|
34562
|
-
|
|
34626
|
+
_core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('addNewLine', addNewLine);
|
|
34563
34627
|
|
|
34564
34628
|
|
|
34565
34629
|
/***/ }),
|
|
@@ -35317,6 +35381,7 @@ UiAiAssistant = __decorate([
|
|
|
35317
35381
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32496);
|
|
35318
35382
|
/* harmony import */ var _cases_check_not_collapsed_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11338);
|
|
35319
35383
|
/* harmony import */ var _cases_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14630);
|
|
35384
|
+
/* harmony import */ var _helpers_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(63785);
|
|
35320
35385
|
/*!
|
|
35321
35386
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
35322
35387
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -35330,6 +35395,7 @@ UiAiAssistant = __decorate([
|
|
|
35330
35395
|
|
|
35331
35396
|
|
|
35332
35397
|
|
|
35398
|
+
|
|
35333
35399
|
class backspace extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
|
|
35334
35400
|
afterInit(jodit) {
|
|
35335
35401
|
jodit.registerCommand('deleteButton', {
|
|
@@ -35407,19 +35473,53 @@ class backspace extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugi
|
|
|
35407
35473
|
throw e;
|
|
35408
35474
|
} finally{
|
|
35409
35475
|
jodit.e.fire('backSpaceAfterDelete', backspace, fakeNode);
|
|
35476
|
+
this.moveCaretToTextBefore(fakeNode);
|
|
35410
35477
|
this.safeRemoveEmptyNode(fakeNode);
|
|
35411
35478
|
}
|
|
35412
35479
|
return false;
|
|
35413
35480
|
}
|
|
35481
|
+
/**
|
|
35482
|
+
* The browser types at the end of the text before the caret on its line,
|
|
35483
|
+
* in that text's formatting, but not inside a link. Moving the caret there
|
|
35484
|
+
* too makes a paste and the toolbar agree with what's typed:
|
|
35485
|
+
* `<p>one</p><p><b>|two</b></p>` joins to `<p>one|<b>two</b></p>`
|
|
35486
|
+
*/ moveCaretToTextBefore(fakeNode) {
|
|
35487
|
+
var _a, _b;
|
|
35488
|
+
const { jodit } = this;
|
|
35489
|
+
const { range } = jodit.s;
|
|
35490
|
+
// A case may have merged the fake node away (#1722)
|
|
35491
|
+
if (!fakeNode.parentNode) {
|
|
35492
|
+
return;
|
|
35493
|
+
}
|
|
35494
|
+
const around = jodit.ed.createRange();
|
|
35495
|
+
around.selectNode(fakeNode);
|
|
35496
|
+
if (!range.collapsed || !around.isPointInRange(range.startContainer, range.startOffset)) {
|
|
35497
|
+
return;
|
|
35498
|
+
}
|
|
35499
|
+
const text = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_9__.findMostNestedNeighbor)(fakeNode, false, jodit.editor, true);
|
|
35500
|
+
const link = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(text, 'a', jodit.editor);
|
|
35501
|
+
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)) {
|
|
35502
|
+
return;
|
|
35503
|
+
}
|
|
35504
|
+
range.setStart(text, (_b = (_a = text.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
|
|
35505
|
+
range.collapse(true);
|
|
35506
|
+
jodit.s.selectRange(range);
|
|
35507
|
+
}
|
|
35414
35508
|
/**
|
|
35415
35509
|
* Remove node and replace cursor position out of it
|
|
35416
35510
|
*/ safeRemoveEmptyNode(fakeNode) {
|
|
35417
|
-
var _a, _b;
|
|
35511
|
+
var _a, _b, _c;
|
|
35418
35512
|
const { range } = this.j.s;
|
|
35513
|
+
// wrap-nodes normalizes the line it wraps, which can merge the text
|
|
35514
|
+
// after the fake node into it: remove only the fake node's own space
|
|
35515
|
+
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))) {
|
|
35516
|
+
fakeNode.deleteData(0, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE.length);
|
|
35517
|
+
return;
|
|
35518
|
+
}
|
|
35419
35519
|
if (range.startContainer === fakeNode) {
|
|
35420
35520
|
if (fakeNode.previousSibling) {
|
|
35421
35521
|
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(fakeNode.previousSibling)) {
|
|
35422
|
-
range.setStart(fakeNode.previousSibling, (
|
|
35522
|
+
range.setStart(fakeNode.previousSibling, (_c = (_b = fakeNode.previousSibling.nodeValue) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0);
|
|
35423
35523
|
} else {
|
|
35424
35524
|
range.setStartAfter(fakeNode.previousSibling);
|
|
35425
35525
|
}
|
|
@@ -35484,6 +35584,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
35484
35584
|
return false;
|
|
35485
35585
|
}
|
|
35486
35586
|
const sibling = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(mainClosestBox, backspace);
|
|
35587
|
+
if (moveInlinesInside(jodit, fakeNode, sibling)) {
|
|
35588
|
+
return joinNeighbors(jodit, fakeNode, backspace, moved);
|
|
35589
|
+
}
|
|
35487
35590
|
// A line break before the cursor is a single unit: remove it instead of
|
|
35488
35591
|
// merging the current element into the (void) `<br>`, which used to move
|
|
35489
35592
|
// the whole element's content into the `<br>` and delete it (#1282).
|
|
@@ -35498,6 +35601,10 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
35498
35601
|
jodit.s.setCursorBefore(fakeNode);
|
|
35499
35602
|
return true;
|
|
35500
35603
|
}
|
|
35604
|
+
// A non-editable sibling is removed by remove-not-editable, never joined
|
|
35605
|
+
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)) {
|
|
35606
|
+
return false;
|
|
35607
|
+
}
|
|
35501
35608
|
const box = findCaretBox(fakeNode, mainClosestBox);
|
|
35502
35609
|
// One pass only: the line now sits beside the next one, so the
|
|
35503
35610
|
// cases below join them. The DOM has changed either way
|
|
@@ -35526,6 +35633,60 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
35526
35633
|
}
|
|
35527
35634
|
return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(block) && block.parentElement ? block.parentElement : block;
|
|
35528
35635
|
}
|
|
35636
|
+
/**
|
|
35637
|
+
* With an inline element round the caret's line or the one it joins moved
|
|
35638
|
+
* inside its blocks, the cases join the lines as they join any two, and its
|
|
35639
|
+
* styles stay with its text. One round both lines is left as it is.
|
|
35640
|
+
*/ function moveInlinesInside(jodit, fakeNode, sibling) {
|
|
35641
|
+
if (!sibling) {
|
|
35642
|
+
return false;
|
|
35643
|
+
}
|
|
35644
|
+
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);
|
|
35645
|
+
return moveInlineInside(around, jodit.editor) || moveInlineInside(sibling, jodit.editor);
|
|
35646
|
+
}
|
|
35647
|
+
/**
|
|
35648
|
+
* Old content can have an inline element round blocks. This moves it inside
|
|
35649
|
+
* them, and gives the text, images and line breaks beside them a copy of
|
|
35650
|
+
* their own: `<span style="…"><p>one</p><br><p>two</p></span>` becomes
|
|
35651
|
+
* `<p><span style="…">one</span></p><span style="…"><br></span><p><span style="…">two</span></p>`
|
|
35652
|
+
*/ function moveInlineInside(node, root) {
|
|
35653
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node)) {
|
|
35654
|
+
return false;
|
|
35655
|
+
}
|
|
35656
|
+
// Embedded content, such as the `<iframe>` in a video's wrapper, counts
|
|
35657
|
+
// as a block in `Dom.isBlock`, but stays with the text beside it
|
|
35658
|
+
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);
|
|
35659
|
+
// The inner one first: `<span><strong><p>one</p></strong></span>`
|
|
35660
|
+
Array.from(node.childNodes).forEach((child)=>moveInlineInside(child, root));
|
|
35661
|
+
const children = Array.from(node.childNodes);
|
|
35662
|
+
if (!children.some(isBlock)) {
|
|
35663
|
+
return false;
|
|
35664
|
+
}
|
|
35665
|
+
let run = null;
|
|
35666
|
+
for (const child of children){
|
|
35667
|
+
if (!isBlock(child)) {
|
|
35668
|
+
// Blank text between blocks stays where it is
|
|
35669
|
+
if (!run && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(child)) {
|
|
35670
|
+
run = node.cloneNode(false);
|
|
35671
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(child, run);
|
|
35672
|
+
}
|
|
35673
|
+
run && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(run, child);
|
|
35674
|
+
continue;
|
|
35675
|
+
}
|
|
35676
|
+
run = null;
|
|
35677
|
+
// Nothing goes inside a rule or a non-editable block
|
|
35678
|
+
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)) {
|
|
35679
|
+
continue;
|
|
35680
|
+
}
|
|
35681
|
+
const inner = node.cloneNode(false);
|
|
35682
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.moveContent(child, inner);
|
|
35683
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(child, inner);
|
|
35684
|
+
// A list or a table: on down to its items or cells
|
|
35685
|
+
moveInlineInside(inner, root);
|
|
35686
|
+
}
|
|
35687
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(node);
|
|
35688
|
+
return true;
|
|
35689
|
+
}
|
|
35529
35690
|
/**
|
|
35530
35691
|
* The innermost block on the sibling's edge facing the caret, so the
|
|
35531
35692
|
* content is joined to text: `<div><p>one</p></div><p>|two</p>` gives
|
|
@@ -35877,7 +36038,9 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode, stopBeforeSpace = fal
|
|
|
35877
36038
|
while(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isInlineBlock(sibling)){
|
|
35878
36039
|
sibling = backspace ? sibling === null || sibling === void 0 ? void 0 : sibling.lastChild : sibling === null || sibling === void 0 ? void 0 : sibling.firstChild;
|
|
35879
36040
|
}
|
|
35880
|
-
|
|
36041
|
+
// A block inside an inline element, such as the `<p>` in
|
|
36042
|
+
// `<span><p>…</p></span>`, isn't a char: the join cases handle it
|
|
36043
|
+
if (!sibling || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(sibling)) {
|
|
35881
36044
|
break;
|
|
35882
36045
|
}
|
|
35883
36046
|
if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
|
|
@@ -36025,6 +36188,7 @@ function isSpace(char) {
|
|
|
36025
36188
|
/* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
|
|
36026
36189
|
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21537);
|
|
36027
36190
|
/* harmony import */ var _core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45124);
|
|
36191
|
+
/* harmony import */ var _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62845);
|
|
36028
36192
|
/*!
|
|
36029
36193
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
36030
36194
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -36032,23 +36196,48 @@ function isSpace(char) {
|
|
|
36032
36196
|
*/
|
|
36033
36197
|
|
|
36034
36198
|
|
|
36199
|
+
|
|
36035
36200
|
/**
|
|
36036
|
-
* Checks if a non-editable element can be deleted
|
|
36201
|
+
* Checks if a non-editable element can be deleted. A non-editable block goes
|
|
36202
|
+
* whole, and the lines either side of it then join, as the spec's tests do:
|
|
36203
|
+
* `<ul><li>one|</li></ul><div contenteditable="false">x</div><p>two</p>`
|
|
36204
|
+
* gives `<ul><li>one|two</li></ul>`
|
|
36037
36205
|
* @private
|
|
36038
36206
|
*/ function checkRemoveContentNotEditable(jodit, fakeNode, backspace) {
|
|
36039
|
-
let
|
|
36040
|
-
|
|
36041
|
-
|
|
36042
|
-
|
|
36043
|
-
|
|
36044
|
-
|
|
36045
|
-
|
|
36046
|
-
|
|
36047
|
-
(
|
|
36207
|
+
let node = fakeNode;
|
|
36208
|
+
let neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(node, backspace);
|
|
36209
|
+
// Past the edges of the blocks the caret is at, but not into a table cell
|
|
36210
|
+
while(!neighbor && node.parentElement && node.parentElement !== jodit.editor && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isCell(node.parentElement)){
|
|
36211
|
+
node = node.parentElement;
|
|
36212
|
+
neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(node, backspace);
|
|
36213
|
+
// At the start of a list item, Backspace takes the bullet off first,
|
|
36214
|
+
// unless the item before it is a non-editable one to remove
|
|
36215
|
+
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))) {
|
|
36216
|
+
return false;
|
|
36217
|
+
}
|
|
36218
|
+
}
|
|
36219
|
+
if (isNotEditable(jodit, neighbor)) {
|
|
36220
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(neighbor)) {
|
|
36221
|
+
// Backspace after a removed list item leaves the items apart: the
|
|
36222
|
+
// next press takes the bullet off, as for any later item
|
|
36223
|
+
const joinLines = !(backspace && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(neighbor));
|
|
36224
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
|
|
36225
|
+
if (joinLines) {
|
|
36226
|
+
(0,_check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_3__.checkJoinNeighbors)(jodit, fakeNode, backspace);
|
|
36227
|
+
}
|
|
36228
|
+
} else {
|
|
36229
|
+
(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);
|
|
36230
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
|
|
36231
|
+
(0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.moveNodeInsideStart)(jodit, fakeNode, backspace);
|
|
36232
|
+
}
|
|
36233
|
+
;(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? jodit.s.setCursorBefore : jodit.s.setCursorAfter, fakeNode);
|
|
36048
36234
|
return true;
|
|
36049
36235
|
}
|
|
36050
36236
|
return false;
|
|
36051
36237
|
}
|
|
36238
|
+
function isNotEditable(jodit, node) {
|
|
36239
|
+
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);
|
|
36240
|
+
}
|
|
36052
36241
|
|
|
36053
36242
|
|
|
36054
36243
|
/***/ }),
|
|
@@ -57187,12 +57376,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
|
|
|
57187
57376
|
/***/ 72253:
|
|
57188
57377
|
/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
|
|
57189
57378
|
|
|
57190
|
-
/* harmony import */ var
|
|
57191
|
-
/* harmony import */ var
|
|
57192
|
-
/* harmony import */ var
|
|
57193
|
-
/* harmony import */ var
|
|
57194
|
-
/* harmony import */ var
|
|
57195
|
-
/* harmony import */ var
|
|
57379
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
57380
|
+
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
|
|
57381
|
+
/* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22732);
|
|
57382
|
+
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
|
|
57383
|
+
/* harmony import */ var _core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70799);
|
|
57384
|
+
/* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
|
|
57385
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(96967);
|
|
57196
57386
|
/*!
|
|
57197
57387
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
57198
57388
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -57209,9 +57399,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
|
|
|
57209
57399
|
|
|
57210
57400
|
|
|
57211
57401
|
|
|
57402
|
+
|
|
57212
57403
|
/**
|
|
57213
57404
|
* Wrap single text nodes in block wrapper
|
|
57214
|
-
*/ class wrapNodes extends
|
|
57405
|
+
*/ class wrapNodes extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
57215
57406
|
/** @override **/ afterInit(jodit) {
|
|
57216
57407
|
if (jodit.o.enter.toLowerCase() === 'br') {
|
|
57217
57408
|
return;
|
|
@@ -57240,10 +57431,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
|
|
|
57240
57431
|
}
|
|
57241
57432
|
isChanged = true;
|
|
57242
57433
|
const box = jodit.createInside.element(jodit.o.enter);
|
|
57243
|
-
|
|
57244
|
-
|
|
57434
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.before(child, box);
|
|
57435
|
+
// `exclude` keeps a <br> from starting a box, but one between loose lines stays with them
|
|
57436
|
+
while(child && (this.isSuitable(child) || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(child, 'br'))){
|
|
57245
57437
|
const next = child.nextSibling;
|
|
57246
|
-
|
|
57438
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(box, child);
|
|
57247
57439
|
child = next;
|
|
57248
57440
|
}
|
|
57249
57441
|
box.normalize();
|
|
@@ -57267,8 +57459,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
|
|
|
57267
57459
|
}
|
|
57268
57460
|
const box = jodit.createInside.element(jodit.o.enter);
|
|
57269
57461
|
const br = jodit.createInside.element('br');
|
|
57270
|
-
|
|
57271
|
-
|
|
57462
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(box, br);
|
|
57463
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(jodit.editor, box);
|
|
57272
57464
|
if (jodit.s.isFocused() || jodit.e.current === 'backSpaceAfterDelete') {
|
|
57273
57465
|
jodit.s.setCursorBefore(br);
|
|
57274
57466
|
}
|
|
@@ -57280,32 +57472,43 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
|
|
|
57280
57472
|
* Found Node which should be wrapped
|
|
57281
57473
|
*/ this.isSuitableStart = (n)=>{
|
|
57282
57474
|
var _a;
|
|
57283
|
-
return
|
|
57475
|
+
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);
|
|
57284
57476
|
};
|
|
57285
57477
|
/**
|
|
57286
57478
|
* Node should add in a block element
|
|
57287
|
-
*/ this.isSuitable = (n)=>
|
|
57479
|
+
*/ this.isSuitable = (n)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(n) || this.isNotWrapped(n);
|
|
57288
57480
|
/**
|
|
57289
57481
|
* Some element which needs to append in block
|
|
57290
|
-
*/ this.isNotWrapped = (n)=>
|
|
57482
|
+
*/ 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));
|
|
57291
57483
|
}
|
|
57292
57484
|
}
|
|
57293
57485
|
__decorate([
|
|
57294
|
-
|
|
57486
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
57295
57487
|
], wrapNodes.prototype, "postProcessSetEditorValue", null);
|
|
57296
57488
|
__decorate([
|
|
57297
|
-
|
|
57489
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
57298
57490
|
], wrapNodes.prototype, "preprocessInput", null);
|
|
57491
|
+
/**
|
|
57492
|
+
* A block can't go in a paragraph, so neither can an element that holds one,
|
|
57493
|
+
* such as a `<span>` round a `<p>`. Embedded content such as an `<iframe>` can.
|
|
57494
|
+
*/ function holdsBlock(elm) {
|
|
57495
|
+
for (const node of _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.eachGen(elm)){
|
|
57496
|
+
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)) {
|
|
57497
|
+
return true;
|
|
57498
|
+
}
|
|
57499
|
+
}
|
|
57500
|
+
return false;
|
|
57501
|
+
}
|
|
57299
57502
|
function checkAloneListLeaf(child, jodit) {
|
|
57300
57503
|
let result = child;
|
|
57301
57504
|
let next = child;
|
|
57302
57505
|
do {
|
|
57303
|
-
if (
|
|
57304
|
-
const nextChild =
|
|
57305
|
-
if (
|
|
57306
|
-
|
|
57506
|
+
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)) {
|
|
57507
|
+
const nextChild = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.findNotEmptySibling(next, false);
|
|
57508
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(result, 'ul')) {
|
|
57509
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(result, next);
|
|
57307
57510
|
} else {
|
|
57308
|
-
result =
|
|
57511
|
+
result = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.wrap(next, 'ul', jodit.createInside);
|
|
57309
57512
|
}
|
|
57310
57513
|
next = nextChild;
|
|
57311
57514
|
} else {
|
|
@@ -57314,7 +57517,7 @@ function checkAloneListLeaf(child, jodit) {
|
|
|
57314
57517
|
}while (next)
|
|
57315
57518
|
return result;
|
|
57316
57519
|
}
|
|
57317
|
-
|
|
57520
|
+
_core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('wrapNodes', wrapNodes);
|
|
57318
57521
|
|
|
57319
57522
|
|
|
57320
57523
|
/***/ }),
|