jodit-pro 4.18.7 → 4.18.9
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/CHANGELOG.md +5 -0
- package/README.md +2 -0
- package/config.js +1 -0
- package/es2015/jodit.css +2 -2
- package/es2015/jodit.fat.min.css +1 -1
- package/es2015/jodit.fat.min.js +41 -26
- package/es2015/jodit.js +1117 -197
- package/es2015/jodit.min.css +1 -1
- package/es2015/jodit.min.js +11 -11
- 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 +3 -3
- package/es2015/plugins/chart/chart.js +1 -1
- package/es2015/plugins/chart/chart.min.css +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 +196 -0
- package/es2015/plugins/math/math.js +1472 -0
- package/es2015/plugins/math/math.min.css +1 -0
- package/es2015/plugins/math/math.min.js +23 -0
- 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.css +1 -1
- package/es2018/jodit.fat.min.js +57 -42
- package/es2018/jodit.min.css +1 -1
- package/es2018/jodit.min.js +21 -21
- 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.css +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.css +1 -0
- package/es2018/plugins/math/math.min.js +23 -0
- 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 +2 -2
- package/es2021/jodit.fat.min.css +1 -1
- package/es2021/jodit.fat.min.js +69 -54
- package/es2021/jodit.js +1092 -197
- package/es2021/jodit.min.css +1 -1
- package/es2021/jodit.min.js +14 -14
- 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 +3 -3
- package/es2021/plugins/chart/chart.js +1 -1
- package/es2021/plugins/chart/chart.min.css +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 +196 -0
- package/es2021/plugins/math/math.js +1414 -0
- package/es2021/plugins/math/math.min.css +1 -0
- package/es2021/plugins/math/math.min.js +23 -0
- 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 +2 -2
- package/es2021.en/jodit.fat.min.css +1 -1
- package/es2021.en/jodit.fat.min.js +69 -54
- package/es2021.en/jodit.js +1092 -197
- package/es2021.en/jodit.min.css +1 -1
- package/es2021.en/jodit.min.js +30 -30
- 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 +3 -3
- package/es2021.en/plugins/chart/chart.js +1 -1
- package/es2021.en/plugins/chart/chart.min.css +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 +196 -0
- package/es2021.en/plugins/math/math.js +1414 -0
- package/es2021.en/plugins/math/math.min.css +1 -0
- package/es2021.en/plugins/math/math.min.js +23 -0
- 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 +3 -3
- package/es5/jodit.fat.min.css +1 -1
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +1254 -207
- package/es5/jodit.min.css +3 -3
- 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 +3 -3
- package/es5/plugins/chart/chart.js +1 -1
- package/es5/plugins/chart/chart.min.css +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 +196 -0
- package/es5/plugins/math/math.js +1624 -0
- package/es5/plugins/math/math.min.css +1 -0
- package/es5/plugins/math/math.min.js +8 -0
- package/es5/plugins/mobile-view/mobile-view.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es5/plugins/page-break/page-break.js +1 -1
- package/es5/plugins/page-break/page-break.min.js +1 -1
- package/es5/plugins/paste-code/paste-code.css +1 -1
- package/es5/plugins/paste-code/paste-code.js +1 -1
- package/es5/plugins/paste-code/paste-code.min.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es5/plugins/style/style.css +1 -1
- package/es5/plugins/style/style.js +1 -1
- package/es5/plugins/style/style.min.js +1 -1
- package/es5/plugins/templates/templates.css +1 -1
- package/es5/plugins/templates/templates.js +1 -1
- package/es5/plugins/templates/templates.min.js +1 -1
- package/es5/plugins/todo-list/todo-list.css +1 -1
- package/es5/plugins/todo-list/todo-list.js +1 -1
- package/es5/plugins/todo-list/todo-list.min.js +1 -1
- package/es5/plugins/translate/translate.css +1 -1
- package/es5/plugins/translate/translate.js +1 -1
- package/es5/plugins/translate/translate.min.js +1 -1
- package/es5/plugins/tune-block/tune-block.css +1 -1
- package/es5/plugins/tune-block/tune-block.js +1 -1
- package/es5/plugins/tune-block/tune-block.min.js +1 -1
- package/es5/polyfills.fat.min.js +1 -1
- package/es5/polyfills.js +1 -1
- package/es5/polyfills.min.js +1 -1
- package/esm/config.d.ts +30 -0
- package/esm/plugins/all.js +1 -1
- package/esm/plugins/math/assets/math-block.svg.js +1 -0
- package/esm/plugins/math/assets/math-inline.svg.js +1 -0
- package/esm/plugins/math/assets/math.svg.js +1 -0
- package/esm/plugins/math/config.d.ts +34 -0
- package/esm/plugins/math/config.js +1 -0
- package/esm/plugins/math/helpers.d.ts +33 -0
- package/esm/plugins/math/helpers.js +1 -0
- package/esm/plugins/math/interface.d.ts +45 -0
- package/esm/plugins/math/interface.js +0 -0
- package/esm/plugins/math/math.d.ts +66 -0
- package/esm/plugins/math/math.js +1 -0
- package/esm/plugins/math/mathjax.d.ts +17 -0
- package/esm/plugins/math/mathjax.js +1 -0
- package/esm/plugins/math/ui/editor/editor.d.ts +56 -0
- package/esm/plugins/math/ui/editor/editor.js +16 -0
- package/package.json +1 -1
- package/types/config.d.ts +30 -0
- package/types/plugins/math/config.d.ts +34 -0
- package/types/plugins/math/helpers.d.ts +33 -0
- package/types/plugins/math/interface.d.ts +45 -0
- package/types/plugins/math/math.d.ts +66 -0
- package/types/plugins/math/mathjax.d.ts +17 -0
- package/types/plugins/math/ui/editor/editor.d.ts +56 -0
package/es2021.en/jodit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit-pro - PRO Version of Jodit Editor
|
|
3
3
|
* Author: Chupurnov Valerii <chupurnov@gmail.com>
|
|
4
|
-
* Version: v4.18.
|
|
4
|
+
* Version: v4.18.9
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -1766,7 +1766,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1766
1766
|
* ```
|
|
1767
1767
|
* @packageDocumentation
|
|
1768
1768
|
* @module constants
|
|
1769
|
-
*/ const APP_VERSION = "4.18.
|
|
1769
|
+
*/ const APP_VERSION = "4.18.9";
|
|
1770
1770
|
// prettier-ignore
|
|
1771
1771
|
const ES = "es2021";
|
|
1772
1772
|
const IS_ES_MODERN = true;
|
|
@@ -5686,10 +5686,11 @@ const isLicense = (license)=>(0,_is_string_js__WEBPACK_IMPORTED_MODULE_0__.isStr
|
|
|
5686
5686
|
/* harmony export */ });
|
|
5687
5687
|
/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
5688
5688
|
/* harmony import */ var _dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
|
|
5689
|
-
/* harmony import */ var
|
|
5690
|
-
/* harmony import */ var
|
|
5691
|
-
/* harmony import */ var
|
|
5692
|
-
/* harmony import */ var
|
|
5689
|
+
/* harmony import */ var _word_lists_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(90723);
|
|
5690
|
+
/* harmony import */ var _string_trim_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49055);
|
|
5691
|
+
/* harmony import */ var _utils_attr_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29960);
|
|
5692
|
+
/* harmony import */ var _utils_css_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41180);
|
|
5693
|
+
/* harmony import */ var _utils_selector_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(76078);
|
|
5693
5694
|
/*!
|
|
5694
5695
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
5695
5696
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -5702,6 +5703,7 @@ const isLicense = (license)=>(0,_is_string_js__WEBPACK_IMPORTED_MODULE_0__.isStr
|
|
|
5702
5703
|
|
|
5703
5704
|
|
|
5704
5705
|
|
|
5706
|
+
|
|
5705
5707
|
function normalizeCSS(s) {
|
|
5706
5708
|
return s.replace(/mso-[a-z-]+:[\s]*[^;]+;/gi, '').replace(/mso-[a-z-]+:[\s]*[^";']+$/gi, '').replace(/border[a-z-]*:[\s]*[^;]+;/gi, '').replace(/([0-9.]+)(pt|cm)/gi, (match, units, metrics)=>{
|
|
5707
5709
|
switch(metrics.toLowerCase()){
|
|
@@ -5735,7 +5737,7 @@ function normalizeCSS(s) {
|
|
|
5735
5737
|
html = html.substring(0, closeIndex + '</html>'.length);
|
|
5736
5738
|
}
|
|
5737
5739
|
const iframe = _constants_js__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('iframe');
|
|
5738
|
-
(0,
|
|
5740
|
+
(0,_utils_css_js__WEBPACK_IMPORTED_MODULE_5__.css)(iframe, 'display', 'none');
|
|
5739
5741
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(_constants_js__WEBPACK_IMPORTED_MODULE_0__.globalDocument.body, iframe);
|
|
5740
5742
|
let convertedString = '', collection;
|
|
5741
5743
|
try {
|
|
@@ -5744,13 +5746,14 @@ function normalizeCSS(s) {
|
|
|
5744
5746
|
iframeDoc.open();
|
|
5745
5747
|
iframeDoc.write(html);
|
|
5746
5748
|
iframeDoc.close();
|
|
5749
|
+
const listItems = (0,_word_lists_js__WEBPACK_IMPORTED_MODULE_2__.readWordListItems)(iframeDoc.body);
|
|
5747
5750
|
// Word marks its auto-generated list markers (the literal
|
|
5748
5751
|
// bullet/number, e.g. `1.` or `·`) with `mso-list:Ignore`.
|
|
5749
5752
|
// They are display-only and must not be imported, otherwise
|
|
5750
5753
|
// the marker text leaks into the content. Drop them before any
|
|
5751
5754
|
// style normalization strips the `mso-list` hint. See #948
|
|
5752
5755
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.each(iframeDoc.body, (node)=>{
|
|
5753
|
-
if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && /mso-list:\s*ignore/i.test((0,
|
|
5756
|
+
if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && /mso-list:\s*ignore/i.test((0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__.attr)(node, 'style') || '')) {
|
|
5754
5757
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
5755
5758
|
}
|
|
5756
5759
|
});
|
|
@@ -5761,7 +5764,7 @@ function normalizeCSS(s) {
|
|
|
5761
5764
|
if (rules[idx].selectorText === '') {
|
|
5762
5765
|
continue;
|
|
5763
5766
|
}
|
|
5764
|
-
collection = (0,
|
|
5767
|
+
collection = (0,_utils_selector_js__WEBPACK_IMPORTED_MODULE_6__.$$)(rules[idx].selectorText, iframeDoc.body);
|
|
5765
5768
|
// `style.cssText` on purpose: the CSSOM parses the text,
|
|
5766
5769
|
// drops invalid declarations and re-serializes it. The raw
|
|
5767
5770
|
// `style` attribute would keep Word-only junk verbatim
|
|
@@ -5775,18 +5778,19 @@ function normalizeCSS(s) {
|
|
|
5775
5778
|
throw e;
|
|
5776
5779
|
}
|
|
5777
5780
|
}
|
|
5781
|
+
;(0,_word_lists_js__WEBPACK_IMPORTED_MODULE_2__.wrapWordListItems)(listItems);
|
|
5778
5782
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.each(iframeDoc.body, (node)=>{
|
|
5779
5783
|
if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node)) {
|
|
5780
|
-
const cssText = (0,
|
|
5784
|
+
const cssText = (0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__.attr)(node, 'style');
|
|
5781
5785
|
if (cssText) {
|
|
5782
5786
|
node.style.cssText = normalizeCSS(cssText);
|
|
5783
5787
|
}
|
|
5784
|
-
if (!(0,
|
|
5785
|
-
(0,
|
|
5788
|
+
if (!(0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__.attr)(node, 'style')) {
|
|
5789
|
+
(0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__.attr)(node, 'style', null);
|
|
5786
5790
|
}
|
|
5787
5791
|
}
|
|
5788
5792
|
});
|
|
5789
|
-
convertedString = iframeDoc.firstChild ? (0,
|
|
5793
|
+
convertedString = iframeDoc.firstChild ? (0,_string_trim_js__WEBPACK_IMPORTED_MODULE_3__.trim)(iframeDoc.body.innerHTML) : '';
|
|
5790
5794
|
}
|
|
5791
5795
|
} catch (_a) {} finally{
|
|
5792
5796
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(iframe);
|
|
@@ -5794,7 +5798,7 @@ function normalizeCSS(s) {
|
|
|
5794
5798
|
if (convertedString) {
|
|
5795
5799
|
html = convertedString;
|
|
5796
5800
|
}
|
|
5797
|
-
return (0,
|
|
5801
|
+
return (0,_string_trim_js__WEBPACK_IMPORTED_MODULE_3__.trim)(html.replace(/<(\/)?(html|colgroup|col|o:p)[^>]*>/g, '').replace(/<!--[^>]*>/g, ''));
|
|
5798
5802
|
}
|
|
5799
5803
|
|
|
5800
5804
|
|
|
@@ -5809,8 +5813,9 @@ function normalizeCSS(s) {
|
|
|
5809
5813
|
/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
5810
5814
|
/* harmony import */ var _dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
|
|
5811
5815
|
/* harmony import */ var _array_to_array_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4510);
|
|
5812
|
-
/* harmony import */ var
|
|
5813
|
-
/* harmony import */ var
|
|
5816
|
+
/* harmony import */ var _word_lists_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(90723);
|
|
5817
|
+
/* harmony import */ var _string_trim_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49055);
|
|
5818
|
+
/* harmony import */ var _utils_attr_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29960);
|
|
5814
5819
|
/*!
|
|
5815
5820
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
5816
5821
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -5822,6 +5827,7 @@ function normalizeCSS(s) {
|
|
|
5822
5827
|
|
|
5823
5828
|
|
|
5824
5829
|
|
|
5830
|
+
|
|
5825
5831
|
/**
|
|
5826
5832
|
* The method automatically cleans up content from Microsoft Word and other HTML sources to ensure clean, compliant
|
|
5827
5833
|
* content that matches the look and feel of the site.
|
|
@@ -5835,6 +5841,7 @@ function normalizeCSS(s) {
|
|
|
5835
5841
|
const div = _constants_js__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('div');
|
|
5836
5842
|
div.innerHTML = html;
|
|
5837
5843
|
const marks = [];
|
|
5844
|
+
const listItems = (0,_word_lists_js__WEBPACK_IMPORTED_MODULE_3__.readWordListItems)(div);
|
|
5838
5845
|
if (div.firstChild) {
|
|
5839
5846
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.each(div, (node)=>{
|
|
5840
5847
|
if (!node) {
|
|
@@ -5859,7 +5866,7 @@ function normalizeCSS(s) {
|
|
|
5859
5866
|
// with `mso-list:Ignore`. They are display-only
|
|
5860
5867
|
// and must not be imported, otherwise the marker
|
|
5861
5868
|
// text leaks into the content. See #948
|
|
5862
|
-
if (/mso-list:\s*ignore/i.test((0,
|
|
5869
|
+
if (/mso-list:\s*ignore/i.test((0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attr)(node, 'style') || '')) {
|
|
5863
5870
|
marks.push(node);
|
|
5864
5871
|
break;
|
|
5865
5872
|
}
|
|
@@ -5873,7 +5880,7 @@ function normalizeCSS(s) {
|
|
|
5873
5880
|
// `attrRaw`: SVG keeps camelCase names
|
|
5874
5881
|
// (`viewBox`), `attr()` would kebab-case
|
|
5875
5882
|
// them and silently skip the removal
|
|
5876
|
-
(0,
|
|
5883
|
+
(0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attrRaw)(node, attribute.name, null);
|
|
5877
5884
|
}
|
|
5878
5885
|
});
|
|
5879
5886
|
}
|
|
@@ -5886,12 +5893,13 @@ function normalizeCSS(s) {
|
|
|
5886
5893
|
});
|
|
5887
5894
|
}
|
|
5888
5895
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove.apply(null, marks);
|
|
5896
|
+
(0,_word_lists_js__WEBPACK_IMPORTED_MODULE_3__.wrapWordListItems)(listItems);
|
|
5889
5897
|
convertedString = div.innerHTML;
|
|
5890
5898
|
} catch (e) {}
|
|
5891
5899
|
if (convertedString) {
|
|
5892
5900
|
html = convertedString;
|
|
5893
5901
|
}
|
|
5894
|
-
html = html.split(/(\n)/).filter(
|
|
5902
|
+
html = html.split(/(\n)/).filter(_string_trim_js__WEBPACK_IMPORTED_MODULE_4__.trim).join('\n');
|
|
5895
5903
|
return html.replace(/<(\/)?(html|colgroup|col|o:p)[^>]*>/g, '').replace(/<!--[^>]*>/g, '');
|
|
5896
5904
|
}
|
|
5897
5905
|
|
|
@@ -6226,7 +6234,14 @@ const NEW_LINE_TAGS = new Set([
|
|
|
6226
6234
|
'h4',
|
|
6227
6235
|
'h5',
|
|
6228
6236
|
'h6',
|
|
6229
|
-
'hr'
|
|
6237
|
+
'hr',
|
|
6238
|
+
'ul',
|
|
6239
|
+
'ol',
|
|
6240
|
+
'li'
|
|
6241
|
+
]);
|
|
6242
|
+
const LIST_TAGS = new Set([
|
|
6243
|
+
'ul',
|
|
6244
|
+
'ol'
|
|
6230
6245
|
]);
|
|
6231
6246
|
const INVISIBLE_TAGS = new Set([
|
|
6232
6247
|
'script',
|
|
@@ -6252,6 +6267,16 @@ const ALONE_TAGS = new Set([
|
|
|
6252
6267
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.each(tmp, (node)=>{
|
|
6253
6268
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(node) && all.push(node);
|
|
6254
6269
|
});
|
|
6270
|
+
// By default blocks are joined with a single space (single-line
|
|
6271
|
+
// plain text). When `blockBr` is set, separate them with a line
|
|
6272
|
+
// break instead, so paragraph structure survives — e.g. the
|
|
6273
|
+
// "Insert only Text" paste option. See #1232
|
|
6274
|
+
const separators = new Set();
|
|
6275
|
+
const separator = ()=>{
|
|
6276
|
+
const text = doc.createTextNode(blockBr ? '%%%jodit-single-br%%%' : ' ');
|
|
6277
|
+
separators.add(text);
|
|
6278
|
+
return text;
|
|
6279
|
+
};
|
|
6255
6280
|
all.forEach((p)=>{
|
|
6256
6281
|
const pr = p.parentNode;
|
|
6257
6282
|
if (!pr) {
|
|
@@ -6271,16 +6296,17 @@ const ALONE_TAGS = new Set([
|
|
|
6271
6296
|
if (!_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(p, NEW_LINE_TAGS)) {
|
|
6272
6297
|
return;
|
|
6273
6298
|
}
|
|
6299
|
+
const pv = p.previousSibling;
|
|
6300
|
+
// A nested list starts on a new line after its item's own text
|
|
6301
|
+
if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(p, LIST_TAGS) && pv && !separators.has(pv) && !(_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isText(pv) && /\s$/.test(pv.nodeValue || ''))) {
|
|
6302
|
+
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.before(p, separator());
|
|
6303
|
+
}
|
|
6274
6304
|
const nx = p.nextSibling;
|
|
6275
6305
|
if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isText(nx) && /^\s/.test(nx.nodeValue || '')) {
|
|
6276
6306
|
return;
|
|
6277
6307
|
}
|
|
6278
6308
|
if (nx) {
|
|
6279
|
-
|
|
6280
|
-
// plain text). When `blockBr` is set, separate them with a line
|
|
6281
|
-
// break instead, so paragraph structure survives — e.g. the
|
|
6282
|
-
// "Insert only Text" paste option. See #1232
|
|
6283
|
-
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.before(nx, doc.createTextNode(blockBr ? '%%%jodit-single-br%%%' : ' '));
|
|
6309
|
+
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.before(nx, separator());
|
|
6284
6310
|
}
|
|
6285
6311
|
});
|
|
6286
6312
|
return restoreTags((0,_string_trim_js__WEBPACK_IMPORTED_MODULE_2__.trim)(tmp.innerText));
|
|
@@ -6290,6 +6316,180 @@ function restoreTags(content) {
|
|
|
6290
6316
|
}
|
|
6291
6317
|
|
|
6292
6318
|
|
|
6319
|
+
/***/ }),
|
|
6320
|
+
|
|
6321
|
+
/***/ 90723:
|
|
6322
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
6323
|
+
|
|
6324
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
6325
|
+
/* harmony export */ readWordListItems: function() { return /* binding */ readWordListItems; },
|
|
6326
|
+
/* harmony export */ wrapWordListItems: function() { return /* binding */ wrapWordListItems; }
|
|
6327
|
+
/* harmony export */ });
|
|
6328
|
+
/* harmony import */ var _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
|
|
6329
|
+
/* harmony import */ var _array_to_array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4510);
|
|
6330
|
+
/* harmony import */ var _utils_attr_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29960);
|
|
6331
|
+
/*!
|
|
6332
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
6333
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
6334
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
6335
|
+
*/ /**
|
|
6336
|
+
* @module helpers/html
|
|
6337
|
+
*/
|
|
6338
|
+
|
|
6339
|
+
|
|
6340
|
+
const ROMAN = {
|
|
6341
|
+
i: 1,
|
|
6342
|
+
v: 5,
|
|
6343
|
+
x: 10,
|
|
6344
|
+
l: 50,
|
|
6345
|
+
c: 100,
|
|
6346
|
+
d: 500,
|
|
6347
|
+
m: 1000
|
|
6348
|
+
};
|
|
6349
|
+
function romanValue(roman) {
|
|
6350
|
+
let value = 0;
|
|
6351
|
+
for(let i = 0; i < roman.length; i += 1){
|
|
6352
|
+
const current = ROMAN[roman[i]], next = ROMAN[roman[i + 1]] || 0;
|
|
6353
|
+
value += current < next ? -current : current;
|
|
6354
|
+
}
|
|
6355
|
+
return value;
|
|
6356
|
+
}
|
|
6357
|
+
/**
|
|
6358
|
+
* Word's marker text (`1.`, `b)`, `iv.`, `·`, `o`, `§`) decides the list type
|
|
6359
|
+
*/ function parseMarker(marker) {
|
|
6360
|
+
const text = marker.replace(/\s+/g, '');
|
|
6361
|
+
const decimal = /^\(?(?:\d+\.)*(\d+)[.)]?$/.exec(text);
|
|
6362
|
+
if (decimal) {
|
|
6363
|
+
return {
|
|
6364
|
+
tag: 'ol',
|
|
6365
|
+
listStyleType: null,
|
|
6366
|
+
start: Number(decimal[1])
|
|
6367
|
+
};
|
|
6368
|
+
}
|
|
6369
|
+
const letters = /^\(?([a-z]+|[A-Z]+)[.)]$/.exec(text);
|
|
6370
|
+
if (letters) {
|
|
6371
|
+
const value = letters[1], lower = value.toLowerCase(), upper = value !== lower;
|
|
6372
|
+
if (/^[ivxlcdm]+$/.test(lower) && (lower.length > 1 || lower === 'i')) {
|
|
6373
|
+
return {
|
|
6374
|
+
tag: 'ol',
|
|
6375
|
+
listStyleType: upper ? 'upper-roman' : 'lower-roman',
|
|
6376
|
+
start: romanValue(lower)
|
|
6377
|
+
};
|
|
6378
|
+
}
|
|
6379
|
+
// Word continues a lettered list with aa, bb, ...
|
|
6380
|
+
if (/^([a-z])\1*$/.test(lower)) {
|
|
6381
|
+
return {
|
|
6382
|
+
tag: 'ol',
|
|
6383
|
+
listStyleType: upper ? 'upper-alpha' : 'lower-alpha',
|
|
6384
|
+
start: (lower.length - 1) * 26 + lower.charCodeAt(0) - 96
|
|
6385
|
+
};
|
|
6386
|
+
}
|
|
6387
|
+
}
|
|
6388
|
+
return {
|
|
6389
|
+
tag: 'ul',
|
|
6390
|
+
listStyleType: null,
|
|
6391
|
+
start: 1
|
|
6392
|
+
};
|
|
6393
|
+
}
|
|
6394
|
+
/**
|
|
6395
|
+
* Removes the marker and the wrappers it leaves empty
|
|
6396
|
+
*/ function removeMarker(marker, paragraph) {
|
|
6397
|
+
let parent = marker.parentNode;
|
|
6398
|
+
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(marker);
|
|
6399
|
+
while(parent && parent !== paragraph && _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(parent) && _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(parent)){
|
|
6400
|
+
const next = parent.parentNode;
|
|
6401
|
+
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(parent);
|
|
6402
|
+
parent = next;
|
|
6403
|
+
}
|
|
6404
|
+
}
|
|
6405
|
+
/**
|
|
6406
|
+
* Finds Word's list paragraphs (`<p style="mso-list:l0 level1 lfo1">`), reads
|
|
6407
|
+
* their list, level and type from the `mso-list:Ignore` marker, and removes the
|
|
6408
|
+
* marker. Call it before anything strips the `mso-list` styles, then pass the
|
|
6409
|
+
* result to {@link wrapWordListItems}
|
|
6410
|
+
*/ function readWordListItems(root) {
|
|
6411
|
+
const items = [];
|
|
6412
|
+
(0,_array_to_array_js__WEBPACK_IMPORTED_MODULE_1__.toArray)(root.querySelectorAll('p')).forEach((paragraph)=>{
|
|
6413
|
+
const match = /mso-list:\s*l(\d+)\s+level(\d+)(?:\s+lfo(\d+))?/i.exec((0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_2__.attr)(paragraph, 'style') || '');
|
|
6414
|
+
if (!match) {
|
|
6415
|
+
return;
|
|
6416
|
+
}
|
|
6417
|
+
const marker = (0,_array_to_array_js__WEBPACK_IMPORTED_MODULE_1__.toArray)(paragraph.querySelectorAll('[style]')).find((elm)=>/mso-list:\s*ignore/i.test((0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_2__.attr)(elm, 'style') || ''));
|
|
6418
|
+
items.push({
|
|
6419
|
+
paragraph,
|
|
6420
|
+
list: `${match[1]}:${match[3] || ''}`,
|
|
6421
|
+
level: Number(match[2]),
|
|
6422
|
+
...parseMarker((marker === null || marker === void 0 ? void 0 : marker.textContent) || '')
|
|
6423
|
+
});
|
|
6424
|
+
if (marker) {
|
|
6425
|
+
removeMarker(marker, paragraph);
|
|
6426
|
+
}
|
|
6427
|
+
});
|
|
6428
|
+
return items;
|
|
6429
|
+
}
|
|
6430
|
+
function isAdjacent(prev, item) {
|
|
6431
|
+
return _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(item.paragraph, true, (n)=>!_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmptyTextNode(n) && !_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isComment(n)) === prev.paragraph;
|
|
6432
|
+
}
|
|
6433
|
+
/**
|
|
6434
|
+
* Turns the paragraphs found by {@link readWordListItems} into `<ul>`/`<ol>`
|
|
6435
|
+
* lists, nesting them by level. Each paragraph becomes an `<li>` without Word's
|
|
6436
|
+
* hanging indent
|
|
6437
|
+
*/ function wrapWordListItems(items) {
|
|
6438
|
+
let stack = [];
|
|
6439
|
+
const continues = items.map((item, index)=>index > 0 && isAdjacent(items[index - 1], item));
|
|
6440
|
+
items.forEach((item, index)=>{
|
|
6441
|
+
const { paragraph } = item;
|
|
6442
|
+
if (!continues[index]) {
|
|
6443
|
+
stack = [];
|
|
6444
|
+
}
|
|
6445
|
+
while(stack.length && stack[stack.length - 1].level > item.level){
|
|
6446
|
+
stack.pop();
|
|
6447
|
+
}
|
|
6448
|
+
let top = stack[stack.length - 1];
|
|
6449
|
+
if (top && top.level === item.level && top.list !== item.list) {
|
|
6450
|
+
stack.pop();
|
|
6451
|
+
top = stack[stack.length - 1];
|
|
6452
|
+
}
|
|
6453
|
+
const doc = paragraph.ownerDocument;
|
|
6454
|
+
if (!top || top.level < item.level) {
|
|
6455
|
+
const element = doc.createElement(item.tag);
|
|
6456
|
+
if (item.listStyleType) {
|
|
6457
|
+
element.style.listStyleType = item.listStyleType;
|
|
6458
|
+
}
|
|
6459
|
+
if (item.tag === 'ol' && item.start !== 1) {
|
|
6460
|
+
(0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_2__.attr)(element, 'start', item.start);
|
|
6461
|
+
}
|
|
6462
|
+
if (top && top.li) {
|
|
6463
|
+
top.li.appendChild(element);
|
|
6464
|
+
} else {
|
|
6465
|
+
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.before(paragraph, element);
|
|
6466
|
+
}
|
|
6467
|
+
top = {
|
|
6468
|
+
level: item.level,
|
|
6469
|
+
list: item.list,
|
|
6470
|
+
element
|
|
6471
|
+
};
|
|
6472
|
+
stack.push(top);
|
|
6473
|
+
}
|
|
6474
|
+
const li = doc.createElement('li');
|
|
6475
|
+
(0,_array_to_array_js__WEBPACK_IMPORTED_MODULE_1__.toArray)(paragraph.attributes).forEach((attribute)=>{
|
|
6476
|
+
if (attribute.name !== 'class') {
|
|
6477
|
+
li.setAttribute(attribute.name, attribute.value);
|
|
6478
|
+
}
|
|
6479
|
+
});
|
|
6480
|
+
li.style.removeProperty('margin-left');
|
|
6481
|
+
li.style.removeProperty('text-indent');
|
|
6482
|
+
if (!(0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_2__.attr)(li, 'style')) {
|
|
6483
|
+
(0,_utils_attr_js__WEBPACK_IMPORTED_MODULE_2__.attr)(li, 'style', null);
|
|
6484
|
+
}
|
|
6485
|
+
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.moveContent(paragraph, li);
|
|
6486
|
+
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(paragraph);
|
|
6487
|
+
top.element.appendChild(li);
|
|
6488
|
+
top.li = li;
|
|
6489
|
+
});
|
|
6490
|
+
}
|
|
6491
|
+
|
|
6492
|
+
|
|
6293
6493
|
/***/ }),
|
|
6294
6494
|
|
|
6295
6495
|
/***/ 21537:
|
|
@@ -10557,13 +10757,15 @@ function usable(ranges, shadowRoot) {
|
|
|
10557
10757
|
/* harmony export */ composedRanges: function() { return /* reexport safe */ _composed_ranges_js__WEBPACK_IMPORTED_MODULE_2__.composedRanges; },
|
|
10558
10758
|
/* harmony export */ cursorInTheEdgeOfString: function() { return /* binding */ cursorInTheEdgeOfString; },
|
|
10559
10759
|
/* harmony export */ findCorrectCurrentNode: function() { return /* binding */ findCorrectCurrentNode; },
|
|
10560
|
-
/* harmony export */
|
|
10760
|
+
/* harmony export */ isMoved: function() { return /* reexport safe */ _is_moved_js__WEBPACK_IMPORTED_MODULE_3__.isMoved; },
|
|
10761
|
+
/* harmony export */ moveNodeInsideStart: function() { return /* reexport safe */ _move_node_inside_start_js__WEBPACK_IMPORTED_MODULE_4__.moveNodeInsideStart; }
|
|
10561
10762
|
/* harmony export */ });
|
|
10562
10763
|
/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
10563
10764
|
/* harmony import */ var _dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
|
|
10564
10765
|
/* harmony import */ var _composed_ranges_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79505);
|
|
10565
|
-
/* harmony import */ var
|
|
10566
|
-
/* harmony import */ var
|
|
10766
|
+
/* harmony import */ var _is_moved_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12604);
|
|
10767
|
+
/* harmony import */ var _move_node_inside_start_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(26716);
|
|
10768
|
+
/* harmony import */ var _move_the_node_along_the_edge_outward_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(43463);
|
|
10567
10769
|
/*!
|
|
10568
10770
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
10569
10771
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -10575,6 +10777,7 @@ function usable(ranges, shadowRoot) {
|
|
|
10575
10777
|
|
|
10576
10778
|
|
|
10577
10779
|
|
|
10780
|
+
|
|
10578
10781
|
/**
|
|
10579
10782
|
* Despite the name, returns `true` when the cursor is NOT at the checked edge
|
|
10580
10783
|
* of the text node: there is significant (non invisible-space) text between
|
|
@@ -10630,6 +10833,33 @@ function findCorrectCurrentNode(node, range, rightMode, isCollapsed, checkChild,
|
|
|
10630
10833
|
}
|
|
10631
10834
|
|
|
10632
10835
|
|
|
10836
|
+
/***/ }),
|
|
10837
|
+
|
|
10838
|
+
/***/ 12604:
|
|
10839
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
10840
|
+
|
|
10841
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10842
|
+
/* harmony export */ isMoved: function() { return /* binding */ isMoved; }
|
|
10843
|
+
/* harmony export */ });
|
|
10844
|
+
/*!
|
|
10845
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
10846
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
10847
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
10848
|
+
*/ /**
|
|
10849
|
+
* Whether the selection, `before` as it was when a key went down, has since
|
|
10850
|
+
* moved to somewhere else in the editor
|
|
10851
|
+
* @private
|
|
10852
|
+
*/ function isMoved(jodit, before) {
|
|
10853
|
+
const { s } = jodit;
|
|
10854
|
+
// Selecting table cells, for one, removes the selection altogether
|
|
10855
|
+
if (!before || !s.isInsideArea) {
|
|
10856
|
+
return false;
|
|
10857
|
+
}
|
|
10858
|
+
const { range } = s;
|
|
10859
|
+
return range.startContainer !== before.startContainer || range.startOffset !== before.startOffset || range.endContainer !== before.endContainer || range.endOffset !== before.endOffset;
|
|
10860
|
+
}
|
|
10861
|
+
|
|
10862
|
+
|
|
10633
10863
|
/***/ }),
|
|
10634
10864
|
|
|
10635
10865
|
/***/ 26716:
|
|
@@ -12673,11 +12903,13 @@ function elementsEqualAttributes(elm1, elm2) {
|
|
|
12673
12903
|
/* harmony export */ toggleOrderedList: function() { return /* binding */ toggleOrderedList; }
|
|
12674
12904
|
/* harmony export */ });
|
|
12675
12905
|
/* harmony import */ var _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
|
|
12676
|
-
/* harmony import */ var
|
|
12677
|
-
/* harmony import */ var
|
|
12678
|
-
/* harmony import */ var
|
|
12679
|
-
/* harmony import */ var
|
|
12680
|
-
/* harmony import */ var
|
|
12906
|
+
/* harmony import */ var _helpers_size_object_size_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21496);
|
|
12907
|
+
/* harmony import */ var _helpers_utils_assert_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38837);
|
|
12908
|
+
/* harmony import */ var _extract_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32526);
|
|
12909
|
+
/* harmony import */ var _is_same_attributes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(94466);
|
|
12910
|
+
/* harmony import */ var _toggle_attributes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44253);
|
|
12911
|
+
/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(77361);
|
|
12912
|
+
/* harmony import */ var _wrap_list_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(82515);
|
|
12681
12913
|
/*!
|
|
12682
12914
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
12683
12915
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -12688,6 +12920,8 @@ function elementsEqualAttributes(elm1, elm2) {
|
|
|
12688
12920
|
|
|
12689
12921
|
|
|
12690
12922
|
|
|
12923
|
+
|
|
12924
|
+
|
|
12691
12925
|
/**
|
|
12692
12926
|
* Replaces `ul->ol` or `ol->ul`, apply styles to the list, or remove a list item from it
|
|
12693
12927
|
* @private
|
|
@@ -12699,39 +12933,69 @@ function elementsEqualAttributes(elm1, elm2) {
|
|
|
12699
12933
|
if (!list) {
|
|
12700
12934
|
return mode;
|
|
12701
12935
|
}
|
|
12702
|
-
const result = jodit.e.fire(`${
|
|
12936
|
+
const result = jodit.e.fire(`${_constants_js__WEBPACK_IMPORTED_MODULE_6__._PREFIX}BeforeToggleList`, mode, commitStyle, list);
|
|
12703
12937
|
if (result !== undefined) {
|
|
12704
12938
|
return result;
|
|
12705
12939
|
}
|
|
12706
|
-
const hook = jodit.e.fire.bind(jodit.e, `${
|
|
12940
|
+
const hook = jodit.e.fire.bind(jodit.e, `${_constants_js__WEBPACK_IMPORTED_MODULE_6__._PREFIX}AfterToggleList`);
|
|
12707
12941
|
if (mode !== (/* inlined export .UNWRAP */"unwrap")) {
|
|
12708
|
-
const isChangeMode = (0,
|
|
12942
|
+
const isChangeMode = (0,_toggle_attributes_js__WEBPACK_IMPORTED_MODULE_5__.toggleAttributes)(commitStyle, li.parentElement, jodit, _constants_js__WEBPACK_IMPORTED_MODULE_6__.INITIAL, true) === (/* inlined export .CHANGE */"change");
|
|
12943
|
+
const isSameList = _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(list, commitStyle.element);
|
|
12944
|
+
// ol => ol[style="list-style-type: lower-roman"]: a list's style
|
|
12945
|
+
// belongs to the whole list, so it is changed without splitting it
|
|
12946
|
+
if (isSameList && isChangeMode && mode !== _constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE && changesStyleOnly(commitStyle)) {
|
|
12947
|
+
(0,_toggle_attributes_js__WEBPACK_IMPORTED_MODULE_5__.toggleAttributes)(commitStyle, list, jodit, (/* inlined export .CHANGE */"change"));
|
|
12948
|
+
hook((/* inlined export .CHANGE */"change"), joinPrevious(commitStyle, list, mode), commitStyle);
|
|
12949
|
+
return (/* inlined export .CHANGE */"change");
|
|
12950
|
+
}
|
|
12951
|
+
// Restyled already, for an earlier part of the selection
|
|
12952
|
+
if (isSameList && mode === (/* inlined export .CHANGE */"change")) {
|
|
12953
|
+
return (/* inlined export .CHANGE */"change");
|
|
12954
|
+
}
|
|
12709
12955
|
// ul => ol, ol => ul or ul => ul.class1
|
|
12710
|
-
if (mode ===
|
|
12711
|
-
const wrapper = unwrapList(
|
|
12712
|
-
const newList = (0,
|
|
12713
|
-
hook(
|
|
12714
|
-
return
|
|
12956
|
+
if (mode === _constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE || isChangeMode || !isSameList) {
|
|
12957
|
+
const wrapper = unwrapList(_constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE, list, li, jodit, commitStyle);
|
|
12958
|
+
const newList = (0,_wrap_list_js__WEBPACK_IMPORTED_MODULE_7__.wrapList)(commitStyle, wrapper, jodit);
|
|
12959
|
+
hook(_constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE, newList, commitStyle);
|
|
12960
|
+
return _constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE;
|
|
12715
12961
|
}
|
|
12716
12962
|
}
|
|
12717
12963
|
const wrapper = unwrapList((/* inlined export .UNWRAP */"unwrap"), list, li, jodit, commitStyle);
|
|
12718
12964
|
hook((/* inlined export .UNWRAP */"unwrap"), wrapper, commitStyle);
|
|
12719
12965
|
return (/* inlined export .UNWRAP */"unwrap");
|
|
12720
12966
|
}
|
|
12967
|
+
/**
|
|
12968
|
+
* Other attributes, such as a class, still move the items into a new list,
|
|
12969
|
+
* where the `beforeWrapList` hook can add markup to each of them
|
|
12970
|
+
*/ function changesStyleOnly({ options: { attributes } }) {
|
|
12971
|
+
return Boolean(attributes === null || attributes === void 0 ? void 0 : attributes.style) && (0,_helpers_size_object_size_js__WEBPACK_IMPORTED_MODULE_1__.size)(attributes) === 1;
|
|
12972
|
+
}
|
|
12973
|
+
/**
|
|
12974
|
+
* Joins a restyled list to the list before it, when the selection runs on
|
|
12975
|
+
* from that list and the two now match
|
|
12976
|
+
*/ function joinPrevious(commitStyle, list, mode) {
|
|
12977
|
+
const prev = _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(list, true);
|
|
12978
|
+
if (mode !== (/* inlined export .CHANGE */"change") || !_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(prev, commitStyle.element) || !(0,_is_same_attributes_js__WEBPACK_IMPORTED_MODULE_4__.elementsEqualAttributes)(prev, list)) {
|
|
12979
|
+
return list;
|
|
12980
|
+
}
|
|
12981
|
+
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(prev, Array.from(list.childNodes));
|
|
12982
|
+
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(list);
|
|
12983
|
+
return prev;
|
|
12984
|
+
}
|
|
12721
12985
|
function unwrapList(mode, list, li, jodit, cs) {
|
|
12722
|
-
const result = jodit.e.fire(`${
|
|
12986
|
+
const result = jodit.e.fire(`${_constants_js__WEBPACK_IMPORTED_MODULE_6__._PREFIX}BeforeUnwrapList`, mode, list, cs);
|
|
12723
12987
|
if (result) {
|
|
12724
|
-
(0,
|
|
12988
|
+
(0,_helpers_utils_assert_js__WEBPACK_IMPORTED_MODULE_2__.assert)(_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isHTMLElement(result), `${_constants_js__WEBPACK_IMPORTED_MODULE_6__._PREFIX}BeforeUnwrapList hook must return HTMLElement`);
|
|
12725
12989
|
return result;
|
|
12726
12990
|
}
|
|
12727
|
-
;(0,
|
|
12728
|
-
(0,
|
|
12991
|
+
;(0,_extract_js__WEBPACK_IMPORTED_MODULE_3__.extractSelectedPart)(list, li, jodit);
|
|
12992
|
+
(0,_helpers_utils_assert_js__WEBPACK_IMPORTED_MODULE_2__.assert)(_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isHTMLElement(li.parentElement), 'Element should be inside the list');
|
|
12729
12993
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.unwrap(li.parentElement);
|
|
12730
12994
|
// In the REPLACE mode the content will be immediately wrapped in a `li`
|
|
12731
12995
|
// of the new list inside `wrapList`, so it should stay in the document.
|
|
12732
12996
|
// Replacing it with a fragment here would dissolve the content
|
|
12733
12997
|
// (with `enter: 'br'`) and the new list would never be inserted.
|
|
12734
|
-
if (mode ===
|
|
12998
|
+
if (mode === _constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE) {
|
|
12735
12999
|
return li;
|
|
12736
13000
|
}
|
|
12737
13001
|
return _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.replace(li, jodit.o.enter.toLowerCase() !== 'br' ? jodit.o.enter : jodit.createInside.fragment(), jodit.createInside);
|
|
@@ -13429,7 +13693,7 @@ const transactions = {
|
|
|
13429
13693
|
[states.LIST]: {
|
|
13430
13694
|
exec (value) {
|
|
13431
13695
|
const { element, jodit, mode } = value;
|
|
13432
|
-
if (mode !== _constants_js__WEBPACK_IMPORTED_MODULE_4__.INITIAL && mode !== (/* inlined export .UNWRAP */"unwrap") && mode !== _constants_js__WEBPACK_IMPORTED_MODULE_4__.REPLACE) {
|
|
13696
|
+
if (mode !== _constants_js__WEBPACK_IMPORTED_MODULE_4__.INITIAL && mode !== (/* inlined export .UNWRAP */"unwrap") && mode !== _constants_js__WEBPACK_IMPORTED_MODULE_4__.REPLACE && mode !== (/* inlined export .CHANGE */"change")) {
|
|
13433
13697
|
return {
|
|
13434
13698
|
...value,
|
|
13435
13699
|
next: states.END
|
|
@@ -19212,7 +19476,10 @@ function addClassNames(className, elm) {
|
|
|
19212
19476
|
Autoplay: 'تشغيل تلقائي',
|
|
19213
19477
|
Loop: 'تكرار',
|
|
19214
19478
|
Muted: 'مكتوم الصوت',
|
|
19215
|
-
Controls: 'عناصر التحكم'
|
|
19479
|
+
Controls: 'عناصر التحكم',
|
|
19480
|
+
'Start at...': 'البدء من...',
|
|
19481
|
+
'Start numbering at': 'بدء الترقيم من',
|
|
19482
|
+
'Number for the first item': 'رقم العنصر الأول'
|
|
19216
19483
|
});
|
|
19217
19484
|
|
|
19218
19485
|
|
|
@@ -19453,7 +19720,10 @@ function addClassNames(className, elm) {
|
|
|
19453
19720
|
Autoplay: 'Avtomatik oynatma',
|
|
19454
19721
|
Loop: 'Təkrarla',
|
|
19455
19722
|
Muted: 'Səssiz',
|
|
19456
|
-
Controls: 'İdarəetmə elementləri'
|
|
19723
|
+
Controls: 'İdarəetmə elementləri',
|
|
19724
|
+
'Start at...': 'Başlanğıc nömrəsi...',
|
|
19725
|
+
'Start numbering at': 'Nömrələmənin başlanğıcı',
|
|
19726
|
+
'Number for the first item': 'Birinci bəndin nömrəsi'
|
|
19457
19727
|
});
|
|
19458
19728
|
|
|
19459
19729
|
|
|
@@ -19686,7 +19956,10 @@ function addClassNames(className, elm) {
|
|
|
19686
19956
|
Autoplay: 'Automatické přehrávání',
|
|
19687
19957
|
Loop: 'Opakovat',
|
|
19688
19958
|
Muted: 'Ztlumeno',
|
|
19689
|
-
Controls: 'Ovládací prvky'
|
|
19959
|
+
Controls: 'Ovládací prvky',
|
|
19960
|
+
'Start at...': 'Začít od...',
|
|
19961
|
+
'Start numbering at': 'Začít číslování od',
|
|
19962
|
+
'Number for the first item': 'Číslo první položky'
|
|
19690
19963
|
});
|
|
19691
19964
|
|
|
19692
19965
|
|
|
@@ -19923,7 +20196,10 @@ function addClassNames(className, elm) {
|
|
|
19923
20196
|
Autoplay: 'Automatische Wiedergabe',
|
|
19924
20197
|
Loop: 'Wiederholen',
|
|
19925
20198
|
Muted: 'Stumm',
|
|
19926
|
-
Controls: 'Steuerelemente'
|
|
20199
|
+
Controls: 'Steuerelemente',
|
|
20200
|
+
'Start at...': 'Beginnen bei...',
|
|
20201
|
+
'Start numbering at': 'Nummerierung beginnen bei',
|
|
20202
|
+
'Number for the first item': 'Nummer des ersten Eintrags'
|
|
19927
20203
|
});
|
|
19928
20204
|
|
|
19929
20205
|
|
|
@@ -20177,7 +20453,10 @@ function addClassNames(className, elm) {
|
|
|
20177
20453
|
Autoplay: 'Reproducción automática',
|
|
20178
20454
|
Loop: 'Repetir',
|
|
20179
20455
|
Muted: 'Silenciado',
|
|
20180
|
-
Controls: 'Controles'
|
|
20456
|
+
Controls: 'Controles',
|
|
20457
|
+
'Start at...': 'Empezar en...',
|
|
20458
|
+
'Start numbering at': 'Empezar la numeración en',
|
|
20459
|
+
'Number for the first item': 'Número del primer elemento'
|
|
20181
20460
|
});
|
|
20182
20461
|
|
|
20183
20462
|
|
|
@@ -20409,7 +20688,10 @@ function addClassNames(className, elm) {
|
|
|
20409
20688
|
Autoplay: 'پخش خودکار',
|
|
20410
20689
|
Loop: 'تکرار',
|
|
20411
20690
|
Muted: 'بیصدا',
|
|
20412
|
-
Controls: 'کنترلها'
|
|
20691
|
+
Controls: 'کنترلها',
|
|
20692
|
+
'Start at...': 'شروع از...',
|
|
20693
|
+
'Start numbering at': 'شروع شمارهگذاری از',
|
|
20694
|
+
'Number for the first item': 'شمارهی نخستین مورد'
|
|
20413
20695
|
});
|
|
20414
20696
|
|
|
20415
20697
|
|
|
@@ -20647,7 +20929,10 @@ function addClassNames(className, elm) {
|
|
|
20647
20929
|
Autoplay: 'Automaattinen toisto',
|
|
20648
20930
|
Loop: 'Toista uudelleen',
|
|
20649
20931
|
Muted: 'Mykistetty',
|
|
20650
|
-
Controls: 'Säätimet'
|
|
20932
|
+
Controls: 'Säätimet',
|
|
20933
|
+
'Start at...': 'Aloita numerosta...',
|
|
20934
|
+
'Start numbering at': 'Aloita numerointi numerosta',
|
|
20935
|
+
'Number for the first item': 'Ensimmäisen kohdan numero'
|
|
20651
20936
|
});
|
|
20652
20937
|
|
|
20653
20938
|
|
|
@@ -20879,7 +21164,10 @@ function addClassNames(className, elm) {
|
|
|
20879
21164
|
Autoplay: 'Lecture automatique',
|
|
20880
21165
|
Loop: 'Lecture en boucle',
|
|
20881
21166
|
Muted: 'Muet',
|
|
20882
|
-
Controls: 'Commandes'
|
|
21167
|
+
Controls: 'Commandes',
|
|
21168
|
+
'Start at...': 'Commencer à...',
|
|
21169
|
+
'Start numbering at': 'Commencer la numérotation à',
|
|
21170
|
+
'Number for the first item': 'Numéro du premier élément'
|
|
20883
21171
|
});
|
|
20884
21172
|
|
|
20885
21173
|
|
|
@@ -21111,7 +21399,10 @@ function addClassNames(className, elm) {
|
|
|
21111
21399
|
Autoplay: 'ניגון אוטומטי',
|
|
21112
21400
|
Loop: 'הפעלה חוזרת',
|
|
21113
21401
|
Muted: 'מושתק',
|
|
21114
|
-
Controls: 'פקדים'
|
|
21402
|
+
Controls: 'פקדים',
|
|
21403
|
+
'Start at...': 'התחל מ...',
|
|
21404
|
+
'Start numbering at': 'התחל מספור מ',
|
|
21405
|
+
'Number for the first item': 'מספר הפריט הראשון'
|
|
21115
21406
|
});
|
|
21116
21407
|
|
|
21117
21408
|
|
|
@@ -21345,7 +21636,10 @@ function addClassNames(className, elm) {
|
|
|
21345
21636
|
Autoplay: 'Automatikus lejátszás',
|
|
21346
21637
|
Loop: 'Ismétlés',
|
|
21347
21638
|
Muted: 'Némítva',
|
|
21348
|
-
Controls: 'Vezérlők'
|
|
21639
|
+
Controls: 'Vezérlők',
|
|
21640
|
+
'Start at...': 'Kezdőszám...',
|
|
21641
|
+
'Start numbering at': 'Számozás kezdőértéke',
|
|
21642
|
+
'Number for the first item': 'Az első elem száma'
|
|
21349
21643
|
});
|
|
21350
21644
|
|
|
21351
21645
|
|
|
@@ -21578,7 +21872,10 @@ function addClassNames(className, elm) {
|
|
|
21578
21872
|
Autoplay: 'Putar otomatis',
|
|
21579
21873
|
Loop: 'Ulangi',
|
|
21580
21874
|
Muted: 'Dibisukan',
|
|
21581
|
-
Controls: 'Kontrol'
|
|
21875
|
+
Controls: 'Kontrol',
|
|
21876
|
+
'Start at...': 'Mulai dari...',
|
|
21877
|
+
'Start numbering at': 'Mulai penomoran dari',
|
|
21878
|
+
'Number for the first item': 'Nomor untuk item pertama'
|
|
21582
21879
|
});
|
|
21583
21880
|
|
|
21584
21881
|
|
|
@@ -21815,7 +22112,10 @@ function addClassNames(className, elm) {
|
|
|
21815
22112
|
Autoplay: 'Riproduzione automatica',
|
|
21816
22113
|
Loop: 'Ripeti',
|
|
21817
22114
|
Muted: 'Muto',
|
|
21818
|
-
Controls: 'Controlli'
|
|
22115
|
+
Controls: 'Controlli',
|
|
22116
|
+
'Start at...': 'Inizia da...',
|
|
22117
|
+
'Start numbering at': 'Inizia la numerazione da',
|
|
22118
|
+
'Number for the first item': 'Numero del primo elemento'
|
|
21819
22119
|
});
|
|
21820
22120
|
|
|
21821
22121
|
|
|
@@ -22052,7 +22352,10 @@ function addClassNames(className, elm) {
|
|
|
22052
22352
|
Autoplay: '自動再生',
|
|
22053
22353
|
Loop: 'ループ再生',
|
|
22054
22354
|
Muted: 'ミュート',
|
|
22055
|
-
Controls: 'コントロール'
|
|
22355
|
+
Controls: 'コントロール',
|
|
22356
|
+
'Start at...': '開始番号...',
|
|
22357
|
+
'Start numbering at': '番号の開始値',
|
|
22358
|
+
'Number for the first item': '最初の項目の番号'
|
|
22056
22359
|
});
|
|
22057
22360
|
|
|
22058
22361
|
|
|
@@ -22295,7 +22598,10 @@ function addClassNames(className, elm) {
|
|
|
22295
22598
|
Autoplay: '자동 재생',
|
|
22296
22599
|
Loop: '반복 재생',
|
|
22297
22600
|
Muted: '음소거',
|
|
22298
|
-
Controls: '컨트롤'
|
|
22601
|
+
Controls: '컨트롤',
|
|
22602
|
+
'Start at...': '시작 번호...',
|
|
22603
|
+
'Start numbering at': '번호 매기기 시작 값',
|
|
22604
|
+
'Number for the first item': '첫 번째 항목의 번호'
|
|
22299
22605
|
});
|
|
22300
22606
|
|
|
22301
22607
|
|
|
@@ -22527,7 +22833,10 @@ function addClassNames(className, elm) {
|
|
|
22527
22833
|
Autoplay: 'Автоматаар тоглуулах',
|
|
22528
22834
|
Loop: 'Давтах',
|
|
22529
22835
|
Muted: 'Дуугүй',
|
|
22530
|
-
Controls: 'Удирдлага'
|
|
22836
|
+
Controls: 'Удирдлага',
|
|
22837
|
+
'Start at...': 'Эхлэх дугаар...',
|
|
22838
|
+
'Start numbering at': 'Дугаарлалт эхлэх',
|
|
22839
|
+
'Number for the first item': 'Эхний зүйлийн дугаар'
|
|
22531
22840
|
});
|
|
22532
22841
|
|
|
22533
22842
|
|
|
@@ -22760,7 +23069,10 @@ function addClassNames(className, elm) {
|
|
|
22760
23069
|
Autoplay: 'Automatisch afspelen',
|
|
22761
23070
|
Loop: 'Herhalen',
|
|
22762
23071
|
Muted: 'Gedempt',
|
|
22763
|
-
Controls: 'Bedieningselementen'
|
|
23072
|
+
Controls: 'Bedieningselementen',
|
|
23073
|
+
'Start at...': 'Beginnen bij...',
|
|
23074
|
+
'Start numbering at': 'Nummering beginnen bij',
|
|
23075
|
+
'Number for the first item': 'Nummer van het eerste item'
|
|
22764
23076
|
});
|
|
22765
23077
|
|
|
22766
23078
|
|
|
@@ -23001,7 +23313,10 @@ function addClassNames(className, elm) {
|
|
|
23001
23313
|
Autoplay: 'Automatisk avspilling',
|
|
23002
23314
|
Loop: 'Gjenta',
|
|
23003
23315
|
Muted: 'Dempet',
|
|
23004
|
-
Controls: 'Kontroller'
|
|
23316
|
+
Controls: 'Kontroller',
|
|
23317
|
+
'Start at...': 'Start på...',
|
|
23318
|
+
'Start numbering at': 'Start nummereringen på',
|
|
23319
|
+
'Number for the first item': 'Nummer for første punkt'
|
|
23005
23320
|
});
|
|
23006
23321
|
|
|
23007
23322
|
|
|
@@ -23233,7 +23548,10 @@ function addClassNames(className, elm) {
|
|
|
23233
23548
|
Autoplay: 'Autoodtwarzanie',
|
|
23234
23549
|
Loop: 'Zapętlenie',
|
|
23235
23550
|
Muted: 'Wyciszony',
|
|
23236
|
-
Controls: 'Elementy sterujące'
|
|
23551
|
+
Controls: 'Elementy sterujące',
|
|
23552
|
+
'Start at...': 'Zacznij od...',
|
|
23553
|
+
'Start numbering at': 'Rozpocznij numerowanie od',
|
|
23554
|
+
'Number for the first item': 'Numer pierwszego elementu'
|
|
23237
23555
|
});
|
|
23238
23556
|
|
|
23239
23557
|
|
|
@@ -23470,7 +23788,10 @@ function addClassNames(className, elm) {
|
|
|
23470
23788
|
Autoplay: 'Reprodução automática',
|
|
23471
23789
|
Loop: 'Repetir',
|
|
23472
23790
|
Muted: 'Sem som',
|
|
23473
|
-
Controls: 'Controles'
|
|
23791
|
+
Controls: 'Controles',
|
|
23792
|
+
'Start at...': 'Começar em...',
|
|
23793
|
+
'Start numbering at': 'Começar a numeração em',
|
|
23794
|
+
'Number for the first item': 'Número do primeiro item'
|
|
23474
23795
|
});
|
|
23475
23796
|
|
|
23476
23797
|
|
|
@@ -23701,7 +24022,10 @@ function addClassNames(className, elm) {
|
|
|
23701
24022
|
Autoplay: 'Автовоспроизведение',
|
|
23702
24023
|
Loop: 'Повтор',
|
|
23703
24024
|
Muted: 'Без звука',
|
|
23704
|
-
Controls: 'Элементы управления'
|
|
24025
|
+
Controls: 'Элементы управления',
|
|
24026
|
+
'Start at...': 'Начать с...',
|
|
24027
|
+
'Start numbering at': 'Начать нумерацию с',
|
|
24028
|
+
'Number for the first item': 'Номер первого пункта'
|
|
23705
24029
|
});
|
|
23706
24030
|
|
|
23707
24031
|
|
|
@@ -23940,7 +24264,10 @@ function addClassNames(className, elm) {
|
|
|
23940
24264
|
Autoplay: 'Automatické prehrávanie',
|
|
23941
24265
|
Loop: 'Opakovať',
|
|
23942
24266
|
Muted: 'Stlmené',
|
|
23943
|
-
Controls: 'Ovládacie prvky'
|
|
24267
|
+
Controls: 'Ovládacie prvky',
|
|
24268
|
+
'Start at...': 'Začať od...',
|
|
24269
|
+
'Start numbering at': 'Začať číslovanie od',
|
|
24270
|
+
'Number for the first item': 'Číslo prvej položky'
|
|
23944
24271
|
});
|
|
23945
24272
|
|
|
23946
24273
|
|
|
@@ -24180,7 +24507,10 @@ function addClassNames(className, elm) {
|
|
|
24180
24507
|
Autoplay: 'Automatisk uppspelning',
|
|
24181
24508
|
Loop: 'Upprepa',
|
|
24182
24509
|
Muted: 'Ljudlös',
|
|
24183
|
-
Controls: 'Kontroller'
|
|
24510
|
+
Controls: 'Kontroller',
|
|
24511
|
+
'Start at...': 'Börja på...',
|
|
24512
|
+
'Start numbering at': 'Börja numreringen på',
|
|
24513
|
+
'Number for the first item': 'Nummer för första punkten'
|
|
24184
24514
|
});
|
|
24185
24515
|
|
|
24186
24516
|
|
|
@@ -24412,7 +24742,10 @@ function addClassNames(className, elm) {
|
|
|
24412
24742
|
Autoplay: 'Otomatik oynat',
|
|
24413
24743
|
Loop: 'Döngü',
|
|
24414
24744
|
Muted: 'Sessiz',
|
|
24415
|
-
Controls: 'Kontroller'
|
|
24745
|
+
Controls: 'Kontroller',
|
|
24746
|
+
'Start at...': 'Başlangıç numarası...',
|
|
24747
|
+
'Start numbering at': 'Numaralandırma başlangıcı',
|
|
24748
|
+
'Number for the first item': 'İlk öğenin numarası'
|
|
24416
24749
|
});
|
|
24417
24750
|
|
|
24418
24751
|
|
|
@@ -24643,7 +24976,10 @@ function addClassNames(className, elm) {
|
|
|
24643
24976
|
Autoplay: 'Автовідтворення',
|
|
24644
24977
|
Loop: 'Повтор',
|
|
24645
24978
|
Muted: 'Без звуку',
|
|
24646
|
-
Controls: 'Елементи керування'
|
|
24979
|
+
Controls: 'Елементи керування',
|
|
24980
|
+
'Start at...': 'Почати з...',
|
|
24981
|
+
'Start numbering at': 'Почати нумерацію з',
|
|
24982
|
+
'Number for the first item': 'Номер першого пункту'
|
|
24647
24983
|
});
|
|
24648
24984
|
|
|
24649
24985
|
|
|
@@ -24876,7 +25212,10 @@ function addClassNames(className, elm) {
|
|
|
24876
25212
|
Autoplay: '自动播放',
|
|
24877
25213
|
Loop: '循环播放',
|
|
24878
25214
|
Muted: '静音',
|
|
24879
|
-
Controls: '播放控件'
|
|
25215
|
+
Controls: '播放控件',
|
|
25216
|
+
'Start at...': '起始于...',
|
|
25217
|
+
'Start numbering at': '编号起始值',
|
|
25218
|
+
'Number for the first item': '第一项的编号'
|
|
24880
25219
|
});
|
|
24881
25220
|
|
|
24882
25221
|
|
|
@@ -25108,7 +25447,10 @@ function addClassNames(className, elm) {
|
|
|
25108
25447
|
Autoplay: '自動播放',
|
|
25109
25448
|
Loop: '循環播放',
|
|
25110
25449
|
Muted: '靜音',
|
|
25111
|
-
Controls: '播放控制項'
|
|
25450
|
+
Controls: '播放控制項',
|
|
25451
|
+
'Start at...': '起始於...',
|
|
25452
|
+
'Start numbering at': '編號起始值',
|
|
25453
|
+
'Number for the first item': '第一項的編號'
|
|
25112
25454
|
});
|
|
25113
25455
|
|
|
25114
25456
|
|
|
@@ -25619,7 +25961,12 @@ _config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.controls.dialog = {
|
|
|
25619
25961
|
}
|
|
25620
25962
|
}
|
|
25621
25963
|
__onResizerMouseDown(e) {
|
|
25622
|
-
var _a, _b
|
|
25964
|
+
var _a, _b;
|
|
25965
|
+
// As for the header: otherwise Safari selects the dialog's text as
|
|
25966
|
+
// the pointer moves
|
|
25967
|
+
if (e.cancelable) {
|
|
25968
|
+
e.preventDefault();
|
|
25969
|
+
}
|
|
25623
25970
|
this.resizable = true;
|
|
25624
25971
|
this.startX = e.clientX;
|
|
25625
25972
|
this.startY = e.clientY;
|
|
@@ -25631,8 +25978,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.controls.dialog = {
|
|
|
25631
25978
|
// the content area does not shrink below its CSS `min-height`,
|
|
25632
25979
|
// so it is part of the smallest height the panel can take
|
|
25633
25980
|
const contentMinHeight = content ? parseFloat(this.ow.getComputedStyle(content).minHeight) || 0 : 0;
|
|
25634
|
-
this.minSize.w = (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_6__.isNumber)(this.o.minWidth) ? this.o.minWidth : Math.max(100,
|
|
25635
|
-
this.minSize.h = (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_6__.isNumber)(this.o.minHeight) ? this.o.minHeight : ((
|
|
25981
|
+
this.minSize.w = (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_6__.isNumber)(this.o.minWidth) ? this.o.minWidth : Math.max(100, header ? this.__contentWidth(header) : 0, footer ? this.__contentWidth(footer) : 0);
|
|
25982
|
+
this.minSize.h = (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_6__.isNumber)(this.o.minHeight) ? this.o.minHeight : ((_a = header === null || header === void 0 ? void 0 : header.offsetHeight) !== null && _a !== void 0 ? _a : 0) + ((_b = footer === null || footer === void 0 ? void 0 : footer.offsetHeight) !== null && _b !== void 0 ? _b : 0) + contentMinHeight + this.resizer.offsetHeight;
|
|
25636
25983
|
this.lockSelect();
|
|
25637
25984
|
this.__addGlobalResizeListeners();
|
|
25638
25985
|
if (this.e) {
|
|
@@ -25641,13 +25988,25 @@ _config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.controls.dialog = {
|
|
|
25641
25988
|
*/ this.e.fire(this, 'startResize');
|
|
25642
25989
|
}
|
|
25643
25990
|
}
|
|
25991
|
+
/**
|
|
25992
|
+
* The width `box` takes with its content on one line. The header and
|
|
25993
|
+
* footer are flex rows as wide as the dialog, so the footer's
|
|
25994
|
+
* `scrollWidth` was the dialog's width and kept it from getting any
|
|
25995
|
+
* narrower
|
|
25996
|
+
*/ __contentWidth(box) {
|
|
25997
|
+
const { width } = box.style;
|
|
25998
|
+
box.style.width = 'max-content';
|
|
25999
|
+
const contentWidth = box.offsetWidth;
|
|
26000
|
+
box.style.width = width;
|
|
26001
|
+
return contentWidth;
|
|
26002
|
+
}
|
|
25644
26003
|
__addGlobalResizeListeners() {
|
|
25645
26004
|
const self1 = this;
|
|
25646
26005
|
self1.e.on(self1.ow, 'pointermove touchmove', self1.__onMouseMove).on(self1.ow, 'pointerup touchend', self1.__onMouseUp);
|
|
25647
26006
|
}
|
|
25648
26007
|
__removeGlobalResizeListeners() {
|
|
25649
26008
|
const self1 = this;
|
|
25650
|
-
self1.e.off(self1.ow, '
|
|
26009
|
+
self1.e.off(self1.ow, 'pointermove touchmove', self1.__onMouseMove).off(self1.ow, 'pointerup touchend', self1.__onMouseUp);
|
|
25651
26010
|
}
|
|
25652
26011
|
/**
|
|
25653
26012
|
* Specifies the size of the window
|
|
@@ -29948,23 +30307,15 @@ StatusBar = __decorate([
|
|
|
29948
30307
|
/* harmony export */ });
|
|
29949
30308
|
/* harmony import */ var _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91907);
|
|
29950
30309
|
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82758);
|
|
29951
|
-
/* harmony import */ var
|
|
29952
|
-
/* harmony import */ var
|
|
29953
|
-
/* harmony import */ var
|
|
29954
|
-
/* harmony import */ var
|
|
29955
|
-
/* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41180);
|
|
30310
|
+
/* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22732);
|
|
30311
|
+
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
|
|
30312
|
+
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21537);
|
|
30313
|
+
/* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41180);
|
|
29956
30314
|
/*!
|
|
29957
30315
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
29958
30316
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
29959
30317
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
29960
|
-
*/
|
|
29961
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
29962
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
29963
|
-
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
29964
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
29965
|
-
};
|
|
29966
|
-
|
|
29967
|
-
|
|
30318
|
+
*/
|
|
29968
30319
|
|
|
29969
30320
|
|
|
29970
30321
|
|
|
@@ -29975,19 +30326,10 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
29975
30326
|
/** @override */ className() {
|
|
29976
30327
|
return 'Table';
|
|
29977
30328
|
}
|
|
29978
|
-
__recalculateStyles() {
|
|
29979
|
-
const style = (0,_core_global_js__WEBPACK_IMPORTED_MODULE_4__.getContainer)(this.j, Table, 'style', true);
|
|
29980
|
-
const selectors = [];
|
|
29981
|
-
this.selected.forEach((td)=>{
|
|
29982
|
-
const selector = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_5__.cssPath)(td);
|
|
29983
|
-
selector && selectors.push(selector);
|
|
29984
|
-
});
|
|
29985
|
-
style.innerHTML = selectors.length ? selectors.join(',') + `{${this.jodit.options.table.selectionCellStyle}}` : '';
|
|
29986
|
-
}
|
|
29987
30329
|
addSelection(td) {
|
|
29988
30330
|
this.selected.add(td);
|
|
29989
30331
|
this.__recalculateStyles();
|
|
29990
|
-
const table =
|
|
30332
|
+
const table = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(td, 'table', this.j.editor);
|
|
29991
30333
|
if (table) {
|
|
29992
30334
|
const cells = Table.__selectedByTable.get(table) || new Set();
|
|
29993
30335
|
cells.add(td);
|
|
@@ -29997,7 +30339,7 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
29997
30339
|
removeSelection(td) {
|
|
29998
30340
|
this.selected.delete(td);
|
|
29999
30341
|
this.__recalculateStyles();
|
|
30000
|
-
const table =
|
|
30342
|
+
const table = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(td, 'table', this.j.editor);
|
|
30001
30343
|
if (table) {
|
|
30002
30344
|
const cells = Table.__selectedByTable.get(table);
|
|
30003
30345
|
if (cells) {
|
|
@@ -30011,11 +30353,11 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30011
30353
|
/**
|
|
30012
30354
|
* Returns array of selected cells
|
|
30013
30355
|
*/ getAllSelectedCells() {
|
|
30014
|
-
return (0,
|
|
30356
|
+
return (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.toArray)(this.selected);
|
|
30015
30357
|
}
|
|
30016
30358
|
static __getSelectedCellsByTable(table) {
|
|
30017
30359
|
const cells = Table.__selectedByTable.get(table);
|
|
30018
|
-
return cells ? (0,
|
|
30360
|
+
return cells ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.toArray)(cells) : [];
|
|
30019
30361
|
}
|
|
30020
30362
|
/** @override **/ destruct() {
|
|
30021
30363
|
this.selected.clear();
|
|
@@ -30042,7 +30384,7 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30042
30384
|
const matrix = [
|
|
30043
30385
|
[]
|
|
30044
30386
|
];
|
|
30045
|
-
const rows = (0,
|
|
30387
|
+
const rows = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.toArray)(table.rows);
|
|
30046
30388
|
const setCell = (cell, i)=>{
|
|
30047
30389
|
if (matrix[i] === undefined) {
|
|
30048
30390
|
matrix[i] = [];
|
|
@@ -30065,7 +30407,7 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30065
30407
|
}
|
|
30066
30408
|
};
|
|
30067
30409
|
for(let i = 0; i < rows.length; i += 1){
|
|
30068
|
-
const cells = (0,
|
|
30410
|
+
const cells = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.toArray)(rows[i].cells);
|
|
30069
30411
|
for(let j = 0; j < cells.length; j += 1){
|
|
30070
30412
|
if (setCell(cells[j], i) === false) {
|
|
30071
30413
|
return matrix;
|
|
@@ -30115,34 +30457,34 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30115
30457
|
row = create.element('tr');
|
|
30116
30458
|
for(let j = 0; j < columnsCount; j += 1){
|
|
30117
30459
|
const cell = create.element('td');
|
|
30118
|
-
|
|
30119
|
-
|
|
30460
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(cell, create.element('br'));
|
|
30461
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(row, cell);
|
|
30120
30462
|
}
|
|
30121
30463
|
} else {
|
|
30122
30464
|
row = line.cloneNode(true);
|
|
30123
|
-
|
|
30124
|
-
if (!
|
|
30465
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.each(line, (cell)=>{
|
|
30466
|
+
if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isCell(cell)) {
|
|
30125
30467
|
return;
|
|
30126
30468
|
}
|
|
30127
|
-
const rowspan = (0,
|
|
30469
|
+
const rowspan = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(cell, 'rowspan');
|
|
30128
30470
|
if (rowspan && parseInt(rowspan, 10) > 1) {
|
|
30129
30471
|
const newRowSpan = parseInt(rowspan, 10) - 1;
|
|
30130
|
-
(0,
|
|
30472
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(cell, 'rowspan', newRowSpan > 1 ? newRowSpan : null);
|
|
30131
30473
|
}
|
|
30132
30474
|
});
|
|
30133
|
-
|
|
30134
|
-
if (
|
|
30135
|
-
|
|
30136
|
-
|
|
30475
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.each(row, (cell)=>{
|
|
30476
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isCell(cell)) {
|
|
30477
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.detach(cell);
|
|
30478
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(cell, create.element('br'));
|
|
30137
30479
|
}
|
|
30138
30480
|
});
|
|
30139
30481
|
}
|
|
30140
30482
|
if (after && line && line.nextSibling) {
|
|
30141
|
-
|
|
30483
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.after(line, row);
|
|
30142
30484
|
} else if (!after && line) {
|
|
30143
|
-
|
|
30485
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.before(line, row);
|
|
30144
30486
|
} else {
|
|
30145
|
-
|
|
30487
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.first(table, (node)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(node, 'tbody')) || table, row);
|
|
30146
30488
|
}
|
|
30147
30489
|
}
|
|
30148
30490
|
/**
|
|
@@ -30170,7 +30512,7 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30170
30512
|
while(box[rowIndex + 1][nextCell] === cell){
|
|
30171
30513
|
nextCell += 1;
|
|
30172
30514
|
}
|
|
30173
|
-
const nextRow =
|
|
30515
|
+
const nextRow = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.next(cell.parentNode, (elm)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(elm, 'tr'), table);
|
|
30174
30516
|
if (nextRow) {
|
|
30175
30517
|
// `box[rowIndex + 1][nextCell]` is the cell that
|
|
30176
30518
|
// logically follows the moved cell in the next row, but
|
|
@@ -30187,21 +30529,21 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30187
30529
|
}
|
|
30188
30530
|
}
|
|
30189
30531
|
if (referenceCell) {
|
|
30190
|
-
|
|
30532
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.before(referenceCell, cell);
|
|
30191
30533
|
} else {
|
|
30192
|
-
|
|
30534
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(nextRow, cell);
|
|
30193
30535
|
}
|
|
30194
30536
|
}
|
|
30195
30537
|
}
|
|
30196
30538
|
} else {
|
|
30197
|
-
|
|
30539
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(cell);
|
|
30198
30540
|
}
|
|
30199
30541
|
if (dec && (cell.parentNode === row || cell !== box[rowIndex][j - 1])) {
|
|
30200
30542
|
const rowSpan = cell.rowSpan;
|
|
30201
|
-
(0,
|
|
30543
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(cell, 'rowspan', rowSpan - 1 > 1 ? rowSpan - 1 : null);
|
|
30202
30544
|
}
|
|
30203
30545
|
});
|
|
30204
|
-
|
|
30546
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(row);
|
|
30205
30547
|
}
|
|
30206
30548
|
/**
|
|
30207
30549
|
* Remove row
|
|
@@ -30212,7 +30554,7 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30212
30554
|
* Insert column before / after all the columns containing the selected cells
|
|
30213
30555
|
*/ appendColumn(table, selectedCell, insertAfter = true) {
|
|
30214
30556
|
const box = Table.__formalMatrix(table);
|
|
30215
|
-
if (!insertAfter &&
|
|
30557
|
+
if (!insertAfter && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isCell(selectedCell.previousElementSibling)) {
|
|
30216
30558
|
return this.appendColumn(table, selectedCell.previousElementSibling, true);
|
|
30217
30559
|
}
|
|
30218
30560
|
const [, formalCol] = Table.__formalCoordinate(table, selectedCell, insertAfter);
|
|
@@ -30222,11 +30564,11 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30222
30564
|
const cells = box[i];
|
|
30223
30565
|
if (cells[columnIndex] !== cells[newColumnIndex] || columnIndex === newColumnIndex) {
|
|
30224
30566
|
const cell = this.j.createInside.element('td');
|
|
30225
|
-
|
|
30567
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(cell, this.j.createInside.element('br'));
|
|
30226
30568
|
if (insertAfter) {
|
|
30227
|
-
|
|
30569
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.after(cells[columnIndex], cell);
|
|
30228
30570
|
} else {
|
|
30229
|
-
|
|
30571
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.before(cells[columnIndex], cell);
|
|
30230
30572
|
}
|
|
30231
30573
|
if (cells[columnIndex].rowSpan > 1) {
|
|
30232
30574
|
cell.rowSpan = cells[columnIndex].rowSpan;
|
|
@@ -30248,11 +30590,11 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30248
30590
|
} else if (j + 1 < cells.length && box[i][j + 1] === td) {
|
|
30249
30591
|
dec = true;
|
|
30250
30592
|
} else {
|
|
30251
|
-
|
|
30593
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(td);
|
|
30252
30594
|
}
|
|
30253
30595
|
if (dec && (i - 1 < 0 || td !== box[i - 1][j])) {
|
|
30254
30596
|
const colSpan = td.colSpan;
|
|
30255
|
-
(0,
|
|
30597
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(td, 'colspan', colSpan - 1 > 1 ? (colSpan - 1).toString() : null);
|
|
30256
30598
|
}
|
|
30257
30599
|
});
|
|
30258
30600
|
}
|
|
@@ -30329,13 +30671,13 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30329
30671
|
continue; // broken table
|
|
30330
30672
|
}
|
|
30331
30673
|
if (box[i][j].hasAttribute('rowspan') && box[i][j].rowSpan === 1) {
|
|
30332
|
-
(0,
|
|
30674
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(box[i][j], 'rowspan', null);
|
|
30333
30675
|
}
|
|
30334
30676
|
if (box[i][j].hasAttribute('colspan') && box[i][j].colSpan === 1) {
|
|
30335
|
-
(0,
|
|
30677
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(box[i][j], 'colspan', null);
|
|
30336
30678
|
}
|
|
30337
|
-
if (box[i][j].hasAttribute('class') && !(0,
|
|
30338
|
-
(0,
|
|
30679
|
+
if (box[i][j].hasAttribute('class') && !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(box[i][j], 'class')) {
|
|
30680
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(box[i][j], 'class', null);
|
|
30339
30681
|
}
|
|
30340
30682
|
}
|
|
30341
30683
|
}
|
|
@@ -30409,10 +30751,10 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30409
30751
|
return;
|
|
30410
30752
|
}
|
|
30411
30753
|
alreadyMerged.add(td);
|
|
30412
|
-
if (i === bound[0][0] && (0,
|
|
30754
|
+
if (i === bound[0][0] && (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_5__.cssInline)(td, 'width')) {
|
|
30413
30755
|
w += td.offsetWidth;
|
|
30414
30756
|
}
|
|
30415
|
-
if ((0,
|
|
30757
|
+
if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.trim)(cell.innerHTML.replace(/<br(\/)?>/g, '')) !== '') {
|
|
30416
30758
|
html.push(cell.innerHTML);
|
|
30417
30759
|
}
|
|
30418
30760
|
if (cs > 1) {
|
|
@@ -30451,9 +30793,9 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30451
30793
|
alreadyMerged.delete(first);
|
|
30452
30794
|
Table.__unmark(__marked);
|
|
30453
30795
|
Table.__normalizeTable(table);
|
|
30454
|
-
(0,
|
|
30796
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.toArray)(table.rows).forEach((tr)=>{
|
|
30455
30797
|
if (!tr.cells.length) {
|
|
30456
|
-
|
|
30798
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(tr);
|
|
30457
30799
|
}
|
|
30458
30800
|
});
|
|
30459
30801
|
}
|
|
@@ -30469,7 +30811,7 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30469
30811
|
const __marked = [];
|
|
30470
30812
|
Table.__getSelectedCellsByTable(table).forEach((cell)=>{
|
|
30471
30813
|
td = jodit.createInside.element('td');
|
|
30472
|
-
|
|
30814
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(td, jodit.createInside.element('br'));
|
|
30473
30815
|
tr = jodit.createInside.element('tr');
|
|
30474
30816
|
coord = Table.__formalCoordinate(table, cell);
|
|
30475
30817
|
if (cell.rowSpan < 2) {
|
|
@@ -30478,8 +30820,8 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30478
30820
|
Table.__mark(tdElm, 'rowspan', tdElm.rowSpan + 1, __marked);
|
|
30479
30821
|
}
|
|
30480
30822
|
});
|
|
30481
|
-
|
|
30482
|
-
|
|
30823
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.after(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(cell, 'tr', table), tr);
|
|
30824
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(tr, td);
|
|
30483
30825
|
} else {
|
|
30484
30826
|
Table.__mark(cell, 'rowspan', cell.rowSpan - 1, __marked);
|
|
30485
30827
|
Table.__formalMatrix(table, (tdElm, i, j)=>{
|
|
@@ -30491,9 +30833,9 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30491
30833
|
}
|
|
30492
30834
|
});
|
|
30493
30835
|
if (after) {
|
|
30494
|
-
|
|
30836
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.after(after, td);
|
|
30495
30837
|
} else {
|
|
30496
|
-
|
|
30838
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.prepend(parent, td);
|
|
30497
30839
|
}
|
|
30498
30840
|
}
|
|
30499
30841
|
if (cell.colSpan > 1) {
|
|
@@ -30524,12 +30866,12 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30524
30866
|
Table.__mark(cell, 'colspan', cell.colSpan - 1, __marked);
|
|
30525
30867
|
}
|
|
30526
30868
|
td = jodit.createInside.element('td');
|
|
30527
|
-
|
|
30869
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(td, jodit.createInside.element('br'));
|
|
30528
30870
|
if (cell.rowSpan > 1) {
|
|
30529
30871
|
Table.__mark(td, 'rowspan', cell.rowSpan, __marked);
|
|
30530
30872
|
}
|
|
30531
30873
|
const oldWidth = cell.offsetWidth; // get old width
|
|
30532
|
-
|
|
30874
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.after(cell, td);
|
|
30533
30875
|
percentage = oldWidth / table.offsetWidth / 2;
|
|
30534
30876
|
Table.__mark(cell, 'width', (percentage * 100).toFixed(_core_constants_js__WEBPACK_IMPORTED_MODULE_1__.ACCURACY) + '%', __marked);
|
|
30535
30877
|
Table.__mark(td, 'width', (percentage * 100).toFixed(_core_constants_js__WEBPACK_IMPORTED_MODULE_1__.ACCURACY) + '%', __marked);
|
|
@@ -30585,22 +30927,22 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30585
30927
|
const value = dict[key];
|
|
30586
30928
|
switch(key){
|
|
30587
30929
|
case 'remove':
|
|
30588
|
-
|
|
30930
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(cell);
|
|
30589
30931
|
break;
|
|
30590
30932
|
case 'rowspan':
|
|
30591
|
-
(0,
|
|
30933
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(cell, 'rowspan', (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.isNumber)(value) && value > 1 ? value : null);
|
|
30592
30934
|
break;
|
|
30593
30935
|
case 'colspan':
|
|
30594
|
-
(0,
|
|
30936
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(cell, 'colspan', (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.isNumber)(value) && value > 1 ? value : null);
|
|
30595
30937
|
break;
|
|
30596
30938
|
case 'width':
|
|
30597
30939
|
if (value == null) {
|
|
30598
30940
|
cell.style.removeProperty('width');
|
|
30599
|
-
if (!(0,
|
|
30600
|
-
(0,
|
|
30941
|
+
if (!(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(cell, 'style')) {
|
|
30942
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(cell, 'style', null);
|
|
30601
30943
|
}
|
|
30602
30944
|
} else {
|
|
30603
|
-
(0,
|
|
30945
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.css)(cell, 'width', value.toString());
|
|
30604
30946
|
}
|
|
30605
30947
|
break;
|
|
30606
30948
|
}
|
|
@@ -30613,12 +30955,23 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30613
30955
|
constructor(){
|
|
30614
30956
|
super(...arguments);
|
|
30615
30957
|
this.selected = new Set();
|
|
30958
|
+
/**
|
|
30959
|
+
* Rewrite the `<style>` that marks the selected cells once for all the
|
|
30960
|
+
* cells (un)selected in one go: a drag over a block of cells unmarks and
|
|
30961
|
+
* marks every one of them on each move. `@debounce()` was never applied,
|
|
30962
|
+
* as a Table never reaches `ready`
|
|
30963
|
+
*/ this.__recalculateStyles = this.async.microDebounce(()=>{
|
|
30964
|
+
const style = (0,_core_global_js__WEBPACK_IMPORTED_MODULE_3__.getContainer)(this.j, Table, 'style', true);
|
|
30965
|
+
const selectors = [];
|
|
30966
|
+
this.selected.forEach((td)=>{
|
|
30967
|
+
const selector = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.cssPath)(td);
|
|
30968
|
+
selector && selectors.push(selector);
|
|
30969
|
+
});
|
|
30970
|
+
style.innerHTML = selectors.length ? selectors.join(',') + `{${this.jodit.options.table.selectionCellStyle}}` : '';
|
|
30971
|
+
});
|
|
30616
30972
|
}
|
|
30617
30973
|
}
|
|
30618
30974
|
Table.__selectedByTable = new WeakMap();
|
|
30619
|
-
__decorate([
|
|
30620
|
-
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_2__.debounce)()
|
|
30621
|
-
], Table.prototype, "__recalculateStyles", null);
|
|
30622
30975
|
const instance = (j)=>j.getInstance('Table', j.o);
|
|
30623
30976
|
|
|
30624
30977
|
|
|
@@ -33961,6 +34314,10 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
33961
34314
|
mainClosestBox = nextBox;
|
|
33962
34315
|
}
|
|
33963
34316
|
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(mainClosestBox) && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(mainClosestBox, jodit.editor)) {
|
|
34317
|
+
// A table cell is never joined with its neighbour
|
|
34318
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.up(fakeNode, _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell, mainClosestBox, true)) {
|
|
34319
|
+
return false;
|
|
34320
|
+
}
|
|
33964
34321
|
const sibling = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(mainClosestBox, backspace);
|
|
33965
34322
|
// A line break before the cursor is a single unit: remove it instead of
|
|
33966
34323
|
// merging the current element into the (void) `<br>`, which used to move
|
|
@@ -33970,13 +34327,48 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
33970
34327
|
jodit.s.setCursorBefore(fakeNode);
|
|
33971
34328
|
return true;
|
|
33972
34329
|
}
|
|
33973
|
-
|
|
34330
|
+
// Backspace leaves a block after a table alone, as Word does, rather
|
|
34331
|
+
// than moving its text into the last cell
|
|
34332
|
+
if (backspace && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, 'table')) {
|
|
34333
|
+
jodit.s.setCursorBefore(fakeNode);
|
|
34334
|
+
return true;
|
|
34335
|
+
}
|
|
34336
|
+
const box = findCaretBox(fakeNode, mainClosestBox);
|
|
34337
|
+
if (sibling && (checkPullNextLine(jodit, fakeNode, box, sibling, backspace) || checkMoveListContent(jodit, box, sibling, backspace) || moveContentAndRemoveEmpty(jodit, box, findEdgeBlock(resolveTableSibling(sibling, backspace), backspace, jodit.editor), backspace))) {
|
|
33974
34338
|
jodit.s.setCursorBefore(fakeNode);
|
|
33975
34339
|
return true;
|
|
33976
34340
|
}
|
|
33977
34341
|
}
|
|
33978
34342
|
return false;
|
|
33979
34343
|
}
|
|
34344
|
+
/**
|
|
34345
|
+
* The block holding the caret inside the box that has the sibling, so
|
|
34346
|
+
* `<p>one</p><div><p>|two</p></div>` joins the two paragraphs instead of
|
|
34347
|
+
* moving the whole `<div>` into the first one. For a list item that is its
|
|
34348
|
+
* list, which the list cases handle.
|
|
34349
|
+
*/ function findCaretBox(fakeNode, mainClosestBox) {
|
|
34350
|
+
const block = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.up(fakeNode, _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, mainClosestBox);
|
|
34351
|
+
if (!block) {
|
|
34352
|
+
return mainClosestBox;
|
|
34353
|
+
}
|
|
34354
|
+
return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(block) && block.parentElement ? block.parentElement : block;
|
|
34355
|
+
}
|
|
34356
|
+
/**
|
|
34357
|
+
* The innermost block on the sibling's edge facing the caret, so the
|
|
34358
|
+
* content is joined to text: `<div><p>one</p></div><p>|two</p>` gives
|
|
34359
|
+
* `<div><p>one|two</p></div>`
|
|
34360
|
+
*/ function findEdgeBlock(sibling, backspace, root) {
|
|
34361
|
+
let block = sibling;
|
|
34362
|
+
while(block){
|
|
34363
|
+
const edge = backspace ? block.lastChild : block.firstChild;
|
|
34364
|
+
const child = edge && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(edge) ? _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(edge, backspace) : edge;
|
|
34365
|
+
if (!_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__.INSEPARABLE_TAGS) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(child, 'table') || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(child, root)) {
|
|
34366
|
+
return block;
|
|
34367
|
+
}
|
|
34368
|
+
block = child;
|
|
34369
|
+
}
|
|
34370
|
+
return block;
|
|
34371
|
+
}
|
|
33980
34372
|
/**
|
|
33981
34373
|
* Content cannot be merged into the `<table>` element itself — it would land
|
|
33982
34374
|
* between the table sections (after `</tbody>`), which is invalid HTML and
|
|
@@ -33993,6 +34385,40 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
33993
34385
|
});
|
|
33994
34386
|
return cells.length ? cells[backspace ? cells.length - 1 : 0] : null;
|
|
33995
34387
|
}
|
|
34388
|
+
/**
|
|
34389
|
+
* Delete at the edge of a list pulls the next line up to the caret, as the
|
|
34390
|
+
* browsers do, instead of moving the caret's line into the next block:
|
|
34391
|
+
* `<ul><li>one|</li></ul><p>two</p>` gives `<ul><li>one|two</li></ul>`, and
|
|
34392
|
+
* `<p>one|</p><ul><li>two</li></ul>` gives `<p>one|two</p>`
|
|
34393
|
+
* @private
|
|
34394
|
+
*/ function checkPullNextLine(jodit, fakeNode, box, sibling, backspace) {
|
|
34395
|
+
if (backspace || !(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(box) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(sibling))) {
|
|
34396
|
+
return false;
|
|
34397
|
+
}
|
|
34398
|
+
const target = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.up(fakeNode, _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, box, true);
|
|
34399
|
+
const source = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(sibling) ? sibling.firstElementChild : sibling;
|
|
34400
|
+
if (!target || !source || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(source, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(source, 'table')) {
|
|
34401
|
+
return false;
|
|
34402
|
+
}
|
|
34403
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(source)) {
|
|
34404
|
+
const line = [];
|
|
34405
|
+
for(let node = source.firstChild; node && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node); node = node.nextSibling){
|
|
34406
|
+
line.push(node);
|
|
34407
|
+
}
|
|
34408
|
+
if (!line.length) {
|
|
34409
|
+
return false;
|
|
34410
|
+
}
|
|
34411
|
+
const filter = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_2__.getMoveFilter)(jodit);
|
|
34412
|
+
line.forEach((node)=>filter(node) ? _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(target, node) : _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node));
|
|
34413
|
+
}
|
|
34414
|
+
let remove = source;
|
|
34415
|
+
while(remove && remove !== jodit.editor && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(remove)){
|
|
34416
|
+
const parent = remove.parentElement;
|
|
34417
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(remove);
|
|
34418
|
+
remove = parent;
|
|
34419
|
+
}
|
|
34420
|
+
return true;
|
|
34421
|
+
}
|
|
33996
34422
|
function checkMoveListContent(jodit, mainClosestBox, sibling, backspace) {
|
|
33997
34423
|
// Process UL/LI/OL cases
|
|
33998
34424
|
const siblingIsList = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.LIST_TAGS);
|
|
@@ -35098,6 +35524,19 @@ class cleanHtml extends _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_5__.Plug
|
|
|
35098
35524
|
this.walker.setWork(editor.editor);
|
|
35099
35525
|
this.currentSelectionNode = editor.s.current();
|
|
35100
35526
|
}
|
|
35527
|
+
/**
|
|
35528
|
+
* Typing into an empty block (`<p><br></p>`) replaces its `<br>`, but the
|
|
35529
|
+
* browser keeps the `<br>` when the caret is in an invisible-space text
|
|
35530
|
+
* node in front of it, as Jodit leaves the caret in many of the empty
|
|
35531
|
+
* blocks it makes (a cleared editor, a heading in an empty table cell).
|
|
35532
|
+
* See #1632
|
|
35533
|
+
*/ onInputRemovePlaceholderBr(event) {
|
|
35534
|
+
var _a;
|
|
35535
|
+
if (!this.isEditMode || event.type === 'input' && (event.isComposing || !((_a = event.inputType) === null || _a === void 0 ? void 0 : _a.startsWith('insert')))) {
|
|
35536
|
+
return;
|
|
35537
|
+
}
|
|
35538
|
+
;(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.removePlaceholderBr)(this.j);
|
|
35539
|
+
}
|
|
35101
35540
|
startWalker() {
|
|
35102
35541
|
const { jodit } = this;
|
|
35103
35542
|
const allow = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.getHash)(this.j.o.cleanHTML.allowTags);
|
|
@@ -35270,6 +35709,12 @@ __decorate([
|
|
|
35270
35709
|
':keydown'
|
|
35271
35710
|
])
|
|
35272
35711
|
], cleanHtml.prototype, "onChangeCleanHTML", null);
|
|
35712
|
+
__decorate([
|
|
35713
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)([
|
|
35714
|
+
':input',
|
|
35715
|
+
'jodit.editor:compositionend'
|
|
35716
|
+
])
|
|
35717
|
+
], cleanHtml.prototype, "onInputRemovePlaceholderBr", null);
|
|
35273
35718
|
__decorate([
|
|
35274
35719
|
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.hook)('ready')
|
|
35275
35720
|
], cleanHtml.prototype, "startWalker", null);
|
|
@@ -35401,12 +35846,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.controls.eraser = {
|
|
|
35401
35846
|
/* harmony export */ getHash: function() { return /* reexport safe */ _get_hash_js__WEBPACK_IMPORTED_MODULE_0__.getHash; },
|
|
35402
35847
|
/* harmony export */ removeFormatForCollapsedSelection: function() { return /* reexport safe */ _remove_format_remove_format_for_collapsed_selection_js__WEBPACK_IMPORTED_MODULE_1__.removeFormatForCollapsedSelection; },
|
|
35403
35848
|
/* harmony export */ removeFormatForSelection: function() { return /* reexport safe */ _remove_format_remove_format_for_selection_js__WEBPACK_IMPORTED_MODULE_2__.removeFormatForSelection; },
|
|
35404
|
-
/* harmony export */
|
|
35849
|
+
/* harmony export */ removePlaceholderBr: function() { return /* reexport safe */ _remove_placeholder_br_js__WEBPACK_IMPORTED_MODULE_3__.removePlaceholderBr; },
|
|
35850
|
+
/* harmony export */ visitNodeWalker: function() { return /* reexport safe */ _visitor_visit_node_walker_js__WEBPACK_IMPORTED_MODULE_4__.visitNodeWalker; }
|
|
35405
35851
|
/* harmony export */ });
|
|
35406
35852
|
/* harmony import */ var _get_hash_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(83447);
|
|
35407
35853
|
/* harmony import */ var _remove_format_remove_format_for_collapsed_selection_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84272);
|
|
35408
35854
|
/* harmony import */ var _remove_format_remove_format_for_selection_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42312);
|
|
35409
|
-
/* harmony import */ var
|
|
35855
|
+
/* harmony import */ var _remove_placeholder_br_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56385);
|
|
35856
|
+
/* harmony import */ var _visitor_visit_node_walker_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(39516);
|
|
35410
35857
|
/*!
|
|
35411
35858
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
35412
35859
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -35420,6 +35867,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.controls.eraser = {
|
|
|
35420
35867
|
|
|
35421
35868
|
|
|
35422
35869
|
|
|
35870
|
+
|
|
35423
35871
|
/***/ }),
|
|
35424
35872
|
|
|
35425
35873
|
/***/ 15908:
|
|
@@ -35572,6 +36020,62 @@ const VIMEO_EMBED = /^(https?:)?\/\/player\.vimeo\.com\/video\//i;
|
|
|
35572
36020
|
}
|
|
35573
36021
|
|
|
35574
36022
|
|
|
36023
|
+
/***/ }),
|
|
36024
|
+
|
|
36025
|
+
/***/ 56385:
|
|
36026
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
36027
|
+
|
|
36028
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
36029
|
+
/* harmony export */ removePlaceholderBr: function() { return /* binding */ removePlaceholderBr; }
|
|
36030
|
+
/* harmony export */ });
|
|
36031
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
36032
|
+
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
|
|
36033
|
+
/* harmony import */ var _core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49055);
|
|
36034
|
+
/*!
|
|
36035
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
36036
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
36037
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
36038
|
+
*/
|
|
36039
|
+
|
|
36040
|
+
|
|
36041
|
+
function lastNode(node) {
|
|
36042
|
+
let last = node.lastChild;
|
|
36043
|
+
while(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(last) && !last.nodeValue){
|
|
36044
|
+
last = last.previousSibling;
|
|
36045
|
+
}
|
|
36046
|
+
return last;
|
|
36047
|
+
}
|
|
36048
|
+
/**
|
|
36049
|
+
* Remove the `<br>` that kept the block with the caret open while it was
|
|
36050
|
+
* empty, once text has gone into the block: when the block is one line of
|
|
36051
|
+
* text that ends in that `<br>`, the `<br>` adds nothing to it
|
|
36052
|
+
* @private
|
|
36053
|
+
*/ function removePlaceholderBr(jodit) {
|
|
36054
|
+
var _a;
|
|
36055
|
+
const block = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(jodit.s.current(), _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, jodit.editor);
|
|
36056
|
+
if (!block || !(0,_core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_2__.trim)((_a = block.textContent) !== null && _a !== void 0 ? _a : '')) {
|
|
36057
|
+
return;
|
|
36058
|
+
}
|
|
36059
|
+
let br = lastNode(block);
|
|
36060
|
+
while(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(br) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(br, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(br)){
|
|
36061
|
+
br = lastNode(br);
|
|
36062
|
+
}
|
|
36063
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(br, 'br')) {
|
|
36064
|
+
return;
|
|
36065
|
+
}
|
|
36066
|
+
// Another line break, a block, an image or an embed means the `<br>` may
|
|
36067
|
+
// end an empty line, or give the caret a place after the embed
|
|
36068
|
+
const isOneLineOfText = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.each(block, (node)=>{
|
|
36069
|
+
if (node !== br && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isHTMLElement(node) && !node.isContentEditable)) {
|
|
36070
|
+
return false;
|
|
36071
|
+
}
|
|
36072
|
+
});
|
|
36073
|
+
if (isOneLineOfText) {
|
|
36074
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(br);
|
|
36075
|
+
}
|
|
36076
|
+
}
|
|
36077
|
+
|
|
36078
|
+
|
|
35575
36079
|
/***/ }),
|
|
35576
36080
|
|
|
35577
36081
|
/***/ 82558:
|
|
@@ -36879,6 +37383,11 @@ class deleteCommand extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.P
|
|
|
36879
37383
|
}
|
|
36880
37384
|
jodit.s.expandSelection();
|
|
36881
37385
|
const range = jodit.s.range;
|
|
37386
|
+
const caret = this.__clearSelectedCells(range);
|
|
37387
|
+
if (caret && range.collapsed) {
|
|
37388
|
+
jodit.s.selectRange(caret);
|
|
37389
|
+
return false;
|
|
37390
|
+
}
|
|
36882
37391
|
range.deleteContents();
|
|
36883
37392
|
const fake = jodit.createInside.fake();
|
|
36884
37393
|
range.insertNode(fake);
|
|
@@ -36888,21 +37397,98 @@ class deleteCommand extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.P
|
|
|
36888
37397
|
range.setStartBefore(fake);
|
|
36889
37398
|
range.collapse(true);
|
|
36890
37399
|
this.__moveCursorInEditableSibling(jodit, leftSibling, fake, range);
|
|
36891
|
-
this.__addBrInEmptyBlock(fake,
|
|
37400
|
+
this.__addBrInEmptyBlock(fake, range);
|
|
36892
37401
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(fake);
|
|
36893
|
-
jodit.s.selectRange(range);
|
|
37402
|
+
jodit.s.selectRange(caret !== null && caret !== void 0 ? caret : range);
|
|
36894
37403
|
return false;
|
|
36895
37404
|
}
|
|
37405
|
+
/**
|
|
37406
|
+
* A selection that starts or ends in a table cell clears the selected part
|
|
37407
|
+
* of each cell it covers and keeps the cells, as the browsers do.
|
|
37408
|
+
* `deleteContents` would remove the cells it fully covers, and the cells
|
|
37409
|
+
* it cuts would then be merged as blocks. The range is moved out of those
|
|
37410
|
+
* tables, so only the content between them is left to delete.
|
|
37411
|
+
*
|
|
37412
|
+
* Returns where the caret goes, or null when no table is involved
|
|
37413
|
+
*/ __clearSelectedCells(range) {
|
|
37414
|
+
const { editor, createInside } = this.j;
|
|
37415
|
+
const startCell = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(range.startContainer, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isCell, editor);
|
|
37416
|
+
const endCell = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(range.endContainer, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isCell, editor);
|
|
37417
|
+
if (startCell === endCell) {
|
|
37418
|
+
return null;
|
|
37419
|
+
}
|
|
37420
|
+
const startTable = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(startCell, 'table', editor);
|
|
37421
|
+
const endTable = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(endCell, 'table', editor);
|
|
37422
|
+
const caret = range.cloneRange();
|
|
37423
|
+
caret.collapse(true);
|
|
37424
|
+
const parts = [];
|
|
37425
|
+
const addParts = (table)=>{
|
|
37426
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.toArray)(table.rows).flatMap((row)=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.toArray)(row.cells)).filter((cell)=>range.intersectsNode(cell)).forEach((cell)=>{
|
|
37427
|
+
const part = range.cloneRange();
|
|
37428
|
+
if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isOrContains(cell, range.startContainer)) {
|
|
37429
|
+
part.setStart(cell, 0);
|
|
37430
|
+
}
|
|
37431
|
+
if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isOrContains(cell, range.endContainer)) {
|
|
37432
|
+
part.setEnd(cell, cell.childNodes.length);
|
|
37433
|
+
}
|
|
37434
|
+
parts.push([
|
|
37435
|
+
cell,
|
|
37436
|
+
part
|
|
37437
|
+
]);
|
|
37438
|
+
});
|
|
37439
|
+
};
|
|
37440
|
+
if (startTable) {
|
|
37441
|
+
addParts(startTable);
|
|
37442
|
+
if (startTable === endTable) {
|
|
37443
|
+
range.collapse(true);
|
|
37444
|
+
} else {
|
|
37445
|
+
range.setStartAfter(startTable);
|
|
37446
|
+
}
|
|
37447
|
+
}
|
|
37448
|
+
if (endTable && endTable !== startTable) {
|
|
37449
|
+
addParts(endTable);
|
|
37450
|
+
range.setEndBefore(endTable);
|
|
37451
|
+
}
|
|
37452
|
+
parts.forEach(([cell, part])=>{
|
|
37453
|
+
part.deleteContents();
|
|
37454
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(cell)) {
|
|
37455
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.detach(cell);
|
|
37456
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(cell, createInside.element('br'));
|
|
37457
|
+
}
|
|
37458
|
+
});
|
|
37459
|
+
return startTable ? caret : null;
|
|
37460
|
+
}
|
|
36896
37461
|
__moveContentInLeftSibling(fake, leftSibling, rightSibling) {
|
|
36897
37462
|
leftSibling = this.__defineRightLeftBox(leftSibling);
|
|
37463
|
+
// Nothing is moved into a table, and a block left empty after it goes
|
|
37464
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(leftSibling, 'table')) {
|
|
37465
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(rightSibling) && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(rightSibling)) {
|
|
37466
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(rightSibling);
|
|
37467
|
+
}
|
|
37468
|
+
return;
|
|
37469
|
+
}
|
|
36898
37470
|
if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isList(rightSibling) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(rightSibling, 'table') && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(rightSibling) && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(leftSibling)) {
|
|
36899
37471
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(leftSibling, fake);
|
|
36900
37472
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.moveContent(rightSibling, leftSibling);
|
|
36901
37473
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(rightSibling);
|
|
36902
37474
|
}
|
|
36903
|
-
|
|
36904
|
-
|
|
36905
|
-
|
|
37475
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isList(rightSibling) && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(rightSibling.firstElementChild)) {
|
|
37476
|
+
const item = rightSibling.firstElementChild;
|
|
37477
|
+
// What's left of the right list's first item joins the left block,
|
|
37478
|
+
// up to a list nested in the item
|
|
37479
|
+
if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(item) && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(leftSibling)) {
|
|
37480
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(leftSibling, fake);
|
|
37481
|
+
while(item.firstChild && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(item.firstChild)){
|
|
37482
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(leftSibling, item.firstChild);
|
|
37483
|
+
}
|
|
37484
|
+
}
|
|
37485
|
+
// Remove empty right LI
|
|
37486
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(item)) {
|
|
37487
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(item);
|
|
37488
|
+
}
|
|
37489
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(rightSibling)) {
|
|
37490
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(rightSibling);
|
|
37491
|
+
}
|
|
36906
37492
|
}
|
|
36907
37493
|
}
|
|
36908
37494
|
/**
|
|
@@ -36919,8 +37505,8 @@ class deleteCommand extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.P
|
|
|
36919
37505
|
return lastLeaf;
|
|
36920
37506
|
}
|
|
36921
37507
|
/**
|
|
36922
|
-
* Add BR in empty
|
|
36923
|
-
*/ __addBrInEmptyBlock(fake,
|
|
37508
|
+
* Add BR in the empty block left at the caret
|
|
37509
|
+
*/ __addBrInEmptyBlock(fake, range) {
|
|
36924
37510
|
const jodit = this.j;
|
|
36925
37511
|
if (fake.isConnected && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(fake.parentNode) && !fake.nextSibling && !fake.previousSibling) {
|
|
36926
37512
|
const br = jodit.createInside.element('br');
|
|
@@ -36928,13 +37514,6 @@ class deleteCommand extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.P
|
|
|
36928
37514
|
range.setStartBefore(br);
|
|
36929
37515
|
range.collapse(true);
|
|
36930
37516
|
}
|
|
36931
|
-
// Add BR in the right empty table cell
|
|
36932
|
-
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(rightSibling, 'table')) {
|
|
36933
|
-
const firstCell = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.$$)('td,th', rightSibling).shift();
|
|
36934
|
-
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isCell(firstCell) && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(firstCell)) {
|
|
36935
|
-
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(firstCell, jodit.createInside.element('br'));
|
|
36936
|
-
}
|
|
36937
|
-
}
|
|
36938
37517
|
}
|
|
36939
37518
|
__moveCursorInEditableSibling(jodit, leftSibling, fake, range) {
|
|
36940
37519
|
var _a;
|
|
@@ -38382,7 +38961,18 @@ function focus(editor) {
|
|
|
38382
38961
|
editor.e.on('afterInit', ()=>{
|
|
38383
38962
|
if (editor.o.autofocus) {
|
|
38384
38963
|
if (editor.defaultTimeout) {
|
|
38385
|
-
editor
|
|
38964
|
+
// A click or key in the editor during the delay has put the
|
|
38965
|
+
// caret where the user wants it, so autofocus leaves it there
|
|
38966
|
+
const userInput = 'mousedown touchstart keydown';
|
|
38967
|
+
const cancel = ()=>{
|
|
38968
|
+
editor.async.clearTimeout(timeout);
|
|
38969
|
+
editor.e.off(userInput, cancel);
|
|
38970
|
+
};
|
|
38971
|
+
const timeout = editor.async.setTimeout(()=>{
|
|
38972
|
+
editor.e.off(userInput, cancel);
|
|
38973
|
+
focus();
|
|
38974
|
+
}, 300);
|
|
38975
|
+
editor.e.on(userInput, cancel);
|
|
38386
38976
|
} else {
|
|
38387
38977
|
focus();
|
|
38388
38978
|
}
|
|
@@ -39629,7 +40219,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeBaseUrl = '';
|
|
|
39629
40219
|
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeTitle = 'Jodit Editor';
|
|
39630
40220
|
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeDoctype = '<!DOCTYPE html>';
|
|
39631
40221
|
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeDefaultSrc = 'about:blank';
|
|
39632
|
-
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeStyle = 'html{' + 'margin:0;' + 'padding:0;' + 'min-height: 100%;' + '}' + 'body{' + 'box-sizing:border-box;' + 'font-size:13px;' + 'line-height:1.6;' + 'padding:10px;' + 'margin:0;' + 'background:transparent;' + 'color:#000;' + 'position:' + 'relative;' + 'z-index:2;' + 'user-select:auto;' + 'margin:0px;' + 'overflow:auto;' + 'outline:none;' + '}' + 'table{' + 'width:100%;' + 'border:none;' + 'border-collapse:collapse;' + 'empty-cells: show;' + 'max-width: 100%;' + '}' + 'th,td{' + 'padding: 2px 5px;' + 'border:1px solid #ccc;' + '-webkit-user-select:text;' + '-moz-user-select:text;' + '-ms-user-select:text;' + 'user-select:text' + '}' + 'p{' + 'margin-top:0;' + '}' + '
|
|
40222
|
+
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeStyle = 'html{' + 'margin:0;' + 'padding:0;' + 'min-height: 100%;' + '}' + 'body{' + 'box-sizing:border-box;' + 'font-size:13px;' + 'line-height:1.6;' + 'padding:10px;' + 'margin:0;' + 'background:transparent;' + 'color:#000;' + 'position:' + 'relative;' + 'z-index:2;' + 'user-select:auto;' + 'margin:0px;' + 'overflow:auto;' + 'outline:none;' + '}' + 'table{' + 'width:100%;' + 'border:none;' + 'border-collapse:collapse;' + 'empty-cells: show;' + 'max-width: 100%;' + '}' + 'th,td{' + 'padding: 2px 5px;' + 'border:1px solid #ccc;' + '-webkit-user-select:text;' + '-moz-user-select:text;' + '-ms-user-select:text;' + 'user-select:text' + '}' + 'p{' + 'margin-top:0;' + '}' + '.jodit_disabled{' + 'user-select: none;' + '-o-user-select: none;' + '-moz-user-select: none;' + '-khtml-user-select: none;' + '-webkit-user-select: none;' + '-ms-user-select: none' + '}';
|
|
39633
40223
|
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeCSSLinks = [];
|
|
39634
40224
|
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeSandbox = null;
|
|
39635
40225
|
|
|
@@ -39675,6 +40265,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeSandbox = null;
|
|
|
39675
40265
|
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'rel', 'stylesheet');
|
|
39676
40266
|
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'href', href);
|
|
39677
40267
|
doc.head && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(doc.head, link);
|
|
40268
|
+
// What plugins measured in the editing document changes once it's styled
|
|
40269
|
+
jodit.e.on(link, 'load', ()=>jodit.e.fire('resize'));
|
|
39678
40270
|
});
|
|
39679
40271
|
}
|
|
39680
40272
|
if (opt.iframeStyle) {
|
|
@@ -39712,6 +40304,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeSandbox = null;
|
|
|
39712
40304
|
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(doc.body, 'contenteditable', editor.getMode() !== _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.MODE_SOURCE && !editor.getReadOnly() || null);
|
|
39713
40305
|
};
|
|
39714
40306
|
const clearMarkers = (html)=>{
|
|
40307
|
+
// The plugins' own styles, from `getContainer`, aren't part of the value
|
|
40308
|
+
html = html.replace(/<style[^>]+jodit-box[^>]*>[\s\S]*?<\/style>/gi, '');
|
|
39715
40309
|
const bodyReg = /<body.*<\/body>/im, bodyMarker = '{%%BODY%%}', body = bodyReg.exec(html);
|
|
39716
40310
|
if (body) {
|
|
39717
40311
|
// remove markers
|
|
@@ -39736,7 +40330,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeSandbox = null;
|
|
|
39736
40330
|
*/ const replaceDocument = (html)=>{
|
|
39737
40331
|
const inert = new DOMParser().parseFromString(html, 'text/html');
|
|
39738
40332
|
editor.e.fire('safeHTML', inert.documentElement);
|
|
40333
|
+
// The plugins' own styles stay, as the value leaves them out
|
|
40334
|
+
const styles = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)('style.jodit-box', doc.head);
|
|
39739
40335
|
doc.replaceChild(doc.adoptNode(inert.documentElement), doc.documentElement);
|
|
40336
|
+
styles.forEach((style)=>_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(doc.head, style));
|
|
39740
40337
|
};
|
|
39741
40338
|
if (docMode) {
|
|
39742
40339
|
const tag = editor.element.tagName;
|
|
@@ -39878,6 +40475,9 @@ const SELECTED_TAGS = new Set([
|
|
|
39878
40475
|
*/ class imageProcessor extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
39879
40476
|
afterInit(jodit) {
|
|
39880
40477
|
jodit.e.on(jodit.ed, 'selectionchange', this.onSelectionChange);
|
|
40478
|
+
// Over the highlight in `styles/reset.less`; the image keeps its own. It goes
|
|
40479
|
+
// in the editing document, so iframe mode has it whatever `iframeStyle` holds
|
|
40480
|
+
(0,_core_global_js__WEBPACK_IMPORTED_MODULE_3__.getContainer)(jodit, 'image-processor', 'style', true).textContent = `.jodit-wysiwyg.${IMAGE_SELECTED}::selection,` + `.jodit-wysiwyg.${IMAGE_SELECTED} *:not(img)::selection{background:transparent}`;
|
|
39881
40481
|
}
|
|
39882
40482
|
beforeDestruct(jodit) {
|
|
39883
40483
|
jodit.e.off(jodit.ed, 'selectionchange', this.onSelectionChange);
|
|
@@ -42374,10 +42974,11 @@ const align = {
|
|
|
42374
42974
|
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
|
|
42375
42975
|
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
|
|
42376
42976
|
/* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50911);
|
|
42377
|
-
/* harmony import */ var
|
|
42378
|
-
/* harmony import */ var
|
|
42379
|
-
/* harmony import */ var
|
|
42380
|
-
/* harmony import */ var
|
|
42977
|
+
/* harmony import */ var _core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(45124);
|
|
42978
|
+
/* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67510);
|
|
42979
|
+
/* harmony import */ var _core_ui_popup_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61259);
|
|
42980
|
+
/* harmony import */ var _modules_toolbar_factory_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21491);
|
|
42981
|
+
/* harmony import */ var _config_config_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(24526);
|
|
42381
42982
|
/*!
|
|
42382
42983
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
42383
42984
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -42397,14 +42998,15 @@ const align = {
|
|
|
42397
42998
|
|
|
42398
42999
|
|
|
42399
43000
|
|
|
43001
|
+
|
|
42400
43002
|
/**
|
|
42401
43003
|
* Plugin for show inline popup dialog
|
|
42402
43004
|
*/ class inlinePopup extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
|
|
42403
43005
|
get popup() {
|
|
42404
|
-
return new
|
|
43006
|
+
return new _core_ui_popup_index_js__WEBPACK_IMPORTED_MODULE_7__.Popup(this.jodit, false);
|
|
42405
43007
|
}
|
|
42406
43008
|
get toolbar() {
|
|
42407
|
-
return (0,
|
|
43009
|
+
return (0,_modules_toolbar_factory_js__WEBPACK_IMPORTED_MODULE_8__.makeCollection)(this.jodit, this.popup);
|
|
42408
43010
|
}
|
|
42409
43011
|
onClick(node) {
|
|
42410
43012
|
const elements = this.elmsList, mediaWrapper = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.getMediaWrapper)(this.j, node), target = mediaWrapper !== null && mediaWrapper !== void 0 ? mediaWrapper : _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, 'img') ? node : _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(node, elements, this.j.editor);
|
|
@@ -42478,6 +43080,33 @@ const align = {
|
|
|
42478
43080
|
onOutsideClick() {
|
|
42479
43081
|
this.popup.close();
|
|
42480
43082
|
}
|
|
43083
|
+
/**
|
|
43084
|
+
* A key that moves the caret off an element closes its popup, and one
|
|
43085
|
+
* that moves the caret into an element with a popup (a link) opens it,
|
|
43086
|
+
* as clicks do
|
|
43087
|
+
*/ onKeyUp() {
|
|
43088
|
+
this.__followCaret();
|
|
43089
|
+
}
|
|
43090
|
+
__followCaret() {
|
|
43091
|
+
if (!(0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_5__.isMoved)(this.j, this.snapRange)) {
|
|
43092
|
+
return;
|
|
43093
|
+
}
|
|
43094
|
+
const { range } = this.j.s;
|
|
43095
|
+
const target = this.previousTarget;
|
|
43096
|
+
if (this.popup.isOpened && this.type !== 'selection' && target && !range.intersectsNode(target)) {
|
|
43097
|
+
this.popup.close();
|
|
43098
|
+
}
|
|
43099
|
+
const node = range.startContainer;
|
|
43100
|
+
const element = this.__elementAt(node);
|
|
43101
|
+
if (range.collapsed && element && element !== this.__keyDownElement) {
|
|
43102
|
+
this.onClick(node);
|
|
43103
|
+
}
|
|
43104
|
+
}
|
|
43105
|
+
/**
|
|
43106
|
+
* The element with a popup that holds `node`
|
|
43107
|
+
*/ __elementAt(node) {
|
|
43108
|
+
return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(node, this.elmsList, this.j.editor);
|
|
43109
|
+
}
|
|
42481
43110
|
/**
|
|
42482
43111
|
* Can show popup for this type
|
|
42483
43112
|
*/ canShowPopupForType(type) {
|
|
@@ -42517,12 +43146,28 @@ const align = {
|
|
|
42517
43146
|
], 'mousedown touchstart', this.__onDocumentMouseDown).on('closeAllPopups', this.__onCloseAllPopups);
|
|
42518
43147
|
this.addListenersForElements();
|
|
42519
43148
|
}
|
|
43149
|
+
onRecalcPositionPopup() {
|
|
43150
|
+
if (this.popup.isOpened && this.type !== 'selection' && this.previousTarget) {
|
|
43151
|
+
this.__reopenFor = this.previousTarget;
|
|
43152
|
+
}
|
|
43153
|
+
}
|
|
42520
43154
|
__onDocumentMouseDown(e) {
|
|
42521
|
-
|
|
43155
|
+
this.__reopenFor = null;
|
|
43156
|
+
if (this.popup.isOpened && this.type === 'selection' && e.target && _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.UIElement.closestElement(e.target, _core_ui_popup_index_js__WEBPACK_IMPORTED_MODULE_7__.Popup)) {
|
|
42522
43157
|
this.__reopenSelectionPopup = true;
|
|
42523
43158
|
}
|
|
42524
43159
|
}
|
|
42525
43160
|
__onCloseAllPopups() {
|
|
43161
|
+
const target = this.__reopenFor;
|
|
43162
|
+
if (target) {
|
|
43163
|
+
this.__reopenFor = null;
|
|
43164
|
+
// After the popup's own `closeAllPopups` handler, as below
|
|
43165
|
+
this.j.async.setTimeout(()=>{
|
|
43166
|
+
if (this.j.editor.contains(target)) {
|
|
43167
|
+
this.onClick(target);
|
|
43168
|
+
}
|
|
43169
|
+
}, 1);
|
|
43170
|
+
}
|
|
42526
43171
|
if (!this.__reopenSelectionPopup) {
|
|
42527
43172
|
return;
|
|
42528
43173
|
}
|
|
@@ -42559,11 +43204,16 @@ const align = {
|
|
|
42559
43204
|
height: rect.height
|
|
42560
43205
|
};
|
|
42561
43206
|
}
|
|
42562
|
-
onSelectionStart() {
|
|
43207
|
+
onSelectionStart(event) {
|
|
43208
|
+
// A key held down moves the caret on every repeat, with one keyup
|
|
43209
|
+
if (event === null || event === void 0 ? void 0 : event.repeat) {
|
|
43210
|
+
this.__followCaret();
|
|
43211
|
+
}
|
|
42563
43212
|
this.snapRange = this.j.s.range.cloneRange();
|
|
43213
|
+
this.__keyDownElement = this.__elementAt(this.snapRange.startContainer);
|
|
42564
43214
|
}
|
|
42565
43215
|
onSelectionEnd(e) {
|
|
42566
|
-
if (e && e.target &&
|
|
43216
|
+
if (e && e.target && _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.UIElement.closestElement(e.target, _core_ui_popup_index_js__WEBPACK_IMPORTED_MODULE_7__.Popup)) {
|
|
42567
43217
|
return;
|
|
42568
43218
|
}
|
|
42569
43219
|
const { snapRange } = this, { range } = this.j.s;
|
|
@@ -42647,7 +43297,13 @@ const align = {
|
|
|
42647
43297
|
* command fires `closeAllPopups`, the toolbar should be shown again
|
|
42648
43298
|
* while the selection is still there. See #1238
|
|
42649
43299
|
*/ this.__reopenSelectionPopup = false;
|
|
43300
|
+
/**
|
|
43301
|
+
* The alignment controls fire `recalcPositionPopup` once they have moved
|
|
43302
|
+
* the element, and their button then fires `closeAllPopups`. The popup
|
|
43303
|
+
* opens again beside the element, as the selection toolbar does
|
|
43304
|
+
*/ this.__reopenFor = null;
|
|
42650
43305
|
this.snapRange = null;
|
|
43306
|
+
this.__keyDownElement = null;
|
|
42651
43307
|
this.elmsList = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.keys)(this.j.o.popup, false).filter((s)=>!this.isExcludedTarget(s));
|
|
42652
43308
|
}
|
|
42653
43309
|
}
|
|
@@ -42677,6 +43333,12 @@ __decorate([
|
|
|
42677
43333
|
__decorate([
|
|
42678
43334
|
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':outsideClick')
|
|
42679
43335
|
], inlinePopup.prototype, "onOutsideClick", null);
|
|
43336
|
+
__decorate([
|
|
43337
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':keyup')
|
|
43338
|
+
], inlinePopup.prototype, "onKeyUp", null);
|
|
43339
|
+
__decorate([
|
|
43340
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':recalcPositionPopup')
|
|
43341
|
+
], inlinePopup.prototype, "onRecalcPositionPopup", null);
|
|
42680
43342
|
__decorate([
|
|
42681
43343
|
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
|
|
42682
43344
|
], inlinePopup.prototype, "__onDocumentMouseDown", null);
|
|
@@ -44235,6 +44897,7 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('mobile', mobile);
|
|
|
44235
44897
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6441);
|
|
44236
44898
|
/* harmony import */ var _icons_ol_svg_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13465);
|
|
44237
44899
|
/* harmony import */ var _icons_ul_svg_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50267);
|
|
44900
|
+
/* harmony import */ var _start_dialog_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83086);
|
|
44238
44901
|
/*!
|
|
44239
44902
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
44240
44903
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -44244,11 +44907,19 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('mobile', mobile);
|
|
|
44244
44907
|
|
|
44245
44908
|
|
|
44246
44909
|
|
|
44910
|
+
|
|
44911
|
+
/**
|
|
44912
|
+
* The `ol` dropdown item that asks for the list's start number
|
|
44913
|
+
*/ const START = 'start';
|
|
44247
44914
|
const memoExec = (jodit, _, { control })=>{
|
|
44248
44915
|
var _a;
|
|
44249
44916
|
const key = `button${control.command}`;
|
|
44250
44917
|
const value = (_a = control.args && control.args[0]) !== null && _a !== void 0 ? _a : (0,_core_helpers_utils_data_bind_js__WEBPACK_IMPORTED_MODULE_0__.dataBind)(jodit, key);
|
|
44251
|
-
(
|
|
44918
|
+
if (value === START) {
|
|
44919
|
+
(0,_start_dialog_js__WEBPACK_IMPORTED_MODULE_5__.openStartDialog)(jodit);
|
|
44920
|
+
return;
|
|
44921
|
+
}
|
|
44922
|
+
;(0,_core_helpers_utils_data_bind_js__WEBPACK_IMPORTED_MODULE_0__.dataBind)(jodit, key, value);
|
|
44252
44923
|
jodit.execCommand(control.command, false, value === 'default' ? null : value);
|
|
44253
44924
|
};
|
|
44254
44925
|
_core_ui_icon_js__WEBPACK_IMPORTED_MODULE_1__.Icon.set('ol', _icons_ol_svg_js__WEBPACK_IMPORTED_MODULE_3__["default"]).set('ul', _icons_ul_svg_js__WEBPACK_IMPORTED_MODULE_4__["default"]);
|
|
@@ -44278,9 +44949,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.ol = {
|
|
|
44278
44949
|
'lower-greek': 'Lower Greek',
|
|
44279
44950
|
'lower-roman': 'Lower Roman',
|
|
44280
44951
|
'upper-alpha': 'Upper Alpha',
|
|
44281
|
-
'upper-roman': 'Upper Roman'
|
|
44952
|
+
'upper-roman': 'Upper Roman',
|
|
44953
|
+
[START]: 'Start at...'
|
|
44282
44954
|
},
|
|
44283
|
-
exec: memoExec
|
|
44955
|
+
exec: memoExec,
|
|
44956
|
+
isChildDisabled: (jodit, button)=>{
|
|
44957
|
+
var _a;
|
|
44958
|
+
return ((_a = button.control.args) === null || _a === void 0 ? void 0 : _a[0]) === START && !(0,_start_dialog_js__WEBPACK_IMPORTED_MODULE_5__.closestOrderedList)(jodit);
|
|
44959
|
+
}
|
|
44284
44960
|
};
|
|
44285
44961
|
|
|
44286
44962
|
|
|
@@ -44363,6 +45039,83 @@ __decorate([
|
|
|
44363
45039
|
_core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('orderedList', orderedList);
|
|
44364
45040
|
|
|
44365
45041
|
|
|
45042
|
+
/***/ }),
|
|
45043
|
+
|
|
45044
|
+
/***/ 83086:
|
|
45045
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
45046
|
+
|
|
45047
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
45048
|
+
/* harmony export */ closestOrderedList: function() { return /* binding */ closestOrderedList; },
|
|
45049
|
+
/* harmony export */ openStartDialog: function() { return /* binding */ openStartDialog; }
|
|
45050
|
+
/* harmony export */ });
|
|
45051
|
+
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
|
|
45052
|
+
/* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29960);
|
|
45053
|
+
/* harmony import */ var _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62843);
|
|
45054
|
+
/* harmony import */ var _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2525);
|
|
45055
|
+
/*!
|
|
45056
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
45057
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
45058
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
45059
|
+
*/
|
|
45060
|
+
|
|
45061
|
+
|
|
45062
|
+
|
|
45063
|
+
/**
|
|
45064
|
+
* The numbered list the selection is in
|
|
45065
|
+
*/ function closestOrderedList(jodit) {
|
|
45066
|
+
const current = jodit.s.current();
|
|
45067
|
+
return current ? _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(current, 'ol', jodit.editor) : null;
|
|
45068
|
+
}
|
|
45069
|
+
/**
|
|
45070
|
+
* Asks for the number of the first item of the list the selection is in,
|
|
45071
|
+
* and sets the list's `start`. The selection is put back when the dialog
|
|
45072
|
+
* closes, however it closes.
|
|
45073
|
+
*/ function openStartDialog(jodit) {
|
|
45074
|
+
const list = closestOrderedList(jodit);
|
|
45075
|
+
if (!list) {
|
|
45076
|
+
return;
|
|
45077
|
+
}
|
|
45078
|
+
const dialog = jodit.dlg({
|
|
45079
|
+
resizable: false,
|
|
45080
|
+
closeOnClickOverlay: true
|
|
45081
|
+
});
|
|
45082
|
+
const input = new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_3__.UIInput(jodit, {
|
|
45083
|
+
name: 'start',
|
|
45084
|
+
type: 'number',
|
|
45085
|
+
label: 'Number for the first item',
|
|
45086
|
+
value: list.start
|
|
45087
|
+
});
|
|
45088
|
+
const form = new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_3__.UIForm(jodit, [
|
|
45089
|
+
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_3__.UIBlock(jodit, [
|
|
45090
|
+
input
|
|
45091
|
+
])
|
|
45092
|
+
]);
|
|
45093
|
+
form.container.classList.add('jodit-dialog_alert');
|
|
45094
|
+
form.onSubmit(({ start })=>{
|
|
45095
|
+
const value = start === '' ? 1 : parseInt(start, 10);
|
|
45096
|
+
if (isNaN(value)) {
|
|
45097
|
+
input.focus();
|
|
45098
|
+
return false;
|
|
45099
|
+
}
|
|
45100
|
+
dialog.close();
|
|
45101
|
+
(0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(list, 'start', value === 1 ? null : value);
|
|
45102
|
+
jodit.synchronizeValues();
|
|
45103
|
+
});
|
|
45104
|
+
jodit.s.save();
|
|
45105
|
+
dialog.e.on(dialog, 'afterClose', ()=>{
|
|
45106
|
+
jodit.s.focus();
|
|
45107
|
+
jodit.s.restore();
|
|
45108
|
+
});
|
|
45109
|
+
dialog.setFooter([
|
|
45110
|
+
(0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_2__.Button)(jodit, 'cancel', 'Cancel').onAction(()=>dialog.close()),
|
|
45111
|
+
(0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_2__.Button)(jodit, 'ok', 'Apply', 'primary').onAction(()=>form.submit())
|
|
45112
|
+
]);
|
|
45113
|
+
dialog.open(form, jodit.i18n('Start numbering at'), true, true);
|
|
45114
|
+
input.focus();
|
|
45115
|
+
input.nativeInput.select();
|
|
45116
|
+
}
|
|
45117
|
+
|
|
45118
|
+
|
|
44366
45119
|
/***/ }),
|
|
44367
45120
|
|
|
44368
45121
|
/***/ 71842:
|
|
@@ -45155,6 +45908,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.useInputsPlaceholder =
|
|
|
45155
45908
|
return true;
|
|
45156
45909
|
}
|
|
45157
45910
|
const first = root.firstChild;
|
|
45911
|
+
// Firefox pads an empty editable body with a bare <br>
|
|
45912
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(first, 'br') && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.next(first, Boolean, root)) {
|
|
45913
|
+
return true;
|
|
45914
|
+
}
|
|
45158
45915
|
if (_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS.has((_a = first.nodeName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || /^(TABLE)$/i.test(first.nodeName)) {
|
|
45159
45916
|
return false;
|
|
45160
45917
|
}
|
|
@@ -45203,11 +45960,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.useInputsPlaceholder =
|
|
|
45203
45960
|
marginTop = parseInt(style2.getPropertyValue('margin-top'), 10);
|
|
45204
45961
|
marginLeft = parseInt(style2.getPropertyValue('margin-left'), 10);
|
|
45205
45962
|
(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.placeholderElm, {
|
|
45963
|
+
fontFamily: style2.getPropertyValue('font-family'),
|
|
45206
45964
|
fontSize: parseInt(style2.getPropertyValue('font-size'), 10),
|
|
45207
45965
|
lineHeight: style2.getPropertyValue('line-height')
|
|
45208
45966
|
});
|
|
45209
45967
|
} else {
|
|
45210
45968
|
(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.placeholderElm, {
|
|
45969
|
+
fontFamily: style.getPropertyValue('font-family'),
|
|
45211
45970
|
fontSize: parseInt(style.getPropertyValue('font-size'), 10),
|
|
45212
45971
|
lineHeight: style.getPropertyValue('line-height')
|
|
45213
45972
|
});
|
|
@@ -45255,7 +46014,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.useInputsPlaceholder =
|
|
|
45255
46014
|
this.placeholderElm.innerHTML = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attr)(editor.element, 'placeholder') || '';
|
|
45256
46015
|
}
|
|
45257
46016
|
editor.e.fire('placeholder', this.placeholderElm.innerHTML);
|
|
45258
|
-
editor.e.off('.placeholder').on('changePlace.placeholder', this.addNativeListeners).on('change.placeholder focus.placeholder keyup.placeholder mouseup.placeholder keydown.placeholder ' + 'mousedown.placeholder afterSetMode.placeholder changePlace.placeholder ' + 'internalChange.placeholder afterCommand.placeholder', this.toggle).on(window, 'load', this.toggle);
|
|
46017
|
+
editor.e.off('.placeholder').on('changePlace.placeholder', this.addNativeListeners).on('change.placeholder focus.placeholder keyup.placeholder mouseup.placeholder keydown.placeholder ' + 'mousedown.placeholder afterSetMode.placeholder changePlace.placeholder ' + 'internalChange.placeholder afterCommand.placeholder resize.placeholder', this.toggle).on(window, 'load', this.toggle);
|
|
45259
46018
|
this.addNativeListeners();
|
|
45260
46019
|
this.toggle();
|
|
45261
46020
|
};
|
|
@@ -46109,7 +46868,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.resizer = {
|
|
|
46109
46868
|
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21537);
|
|
46110
46869
|
/* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41180);
|
|
46111
46870
|
/* harmony import */ var _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20356);
|
|
46112
|
-
/* harmony import */ var
|
|
46871
|
+
/* harmony import */ var _core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(45124);
|
|
46872
|
+
/* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(67510);
|
|
46873
|
+
/* harmony import */ var _core_ui_popup_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(61259);
|
|
46874
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(71675);
|
|
46113
46875
|
/*!
|
|
46114
46876
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
46115
46877
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -46129,6 +46891,9 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.resizer = {
|
|
|
46129
46891
|
|
|
46130
46892
|
|
|
46131
46893
|
|
|
46894
|
+
|
|
46895
|
+
|
|
46896
|
+
|
|
46132
46897
|
const keyBInd = '__jodit-resizer_binded';
|
|
46133
46898
|
/**
|
|
46134
46899
|
* Reads a plain pixel value out of a `width`/`height` attribute.
|
|
@@ -46148,11 +46913,19 @@ const keyBInd = '__jodit-resizer_binded';
|
|
|
46148
46913
|
*/ function heightFollowsWidth(element) {
|
|
46149
46914
|
return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(element, 'video') && !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(element, 'height') && !(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_5__.cssInline)(element, 'height');
|
|
46150
46915
|
}
|
|
46916
|
+
const IFRAME_WRAPPER = '[data-jodit_iframe_wrapper]';
|
|
46917
|
+
/**
|
|
46918
|
+
* A click on an embed lands on its wrapper, so it selects the embed, until the
|
|
46919
|
+
* wrapper is active. While the editor is locked, as during resizing, the
|
|
46920
|
+
* wrapper takes the mouse again.
|
|
46921
|
+
*/ const EMBED_WRAPPER_STYLE = `${IFRAME_WRAPPER}{position:relative;display:block;user-select:none}` + `${IFRAME_WRAPPER} iframe{position:relative}` + `${IFRAME_WRAPPER}::after{position:absolute;z-index:1;display:block;background:transparent;content:'';cursor:pointer;inset:0}` + `${IFRAME_WRAPPER}[data-jodit-wrapper_active=true] iframe{z-index:2}` + `.jodit_lock ${IFRAME_WRAPPER}[data-jodit-wrapper_active=true] iframe{z-index:1}`;
|
|
46151
46922
|
/**
|
|
46152
46923
|
* The module creates a supporting frame for resizing of the elements img and table
|
|
46153
46924
|
*/ class resizer extends _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_6__.Plugin {
|
|
46154
46925
|
/** @override */ afterInit(editor) {
|
|
46155
|
-
|
|
46926
|
+
// It goes in the editing document, so iframe mode has it whatever `iframeStyle` holds
|
|
46927
|
+
(0,_core_global_js__WEBPACK_IMPORTED_MODULE_3__.getContainer)(editor, 'resizer', 'style', true).textContent = EMBED_WRAPPER_STYLE;
|
|
46928
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.$$)('div', this.rect).forEach((resizeHandle)=>{
|
|
46156
46929
|
editor.e.on(resizeHandle, 'mousedown.resizer touchstart.resizer', this.onStartResizing.bind(this, resizeHandle));
|
|
46157
46930
|
});
|
|
46158
46931
|
_core_global_js__WEBPACK_IMPORTED_MODULE_3__.eventEmitter.on('hideHelpers', this.hide);
|
|
@@ -46160,7 +46933,11 @@ const keyBInd = '__jodit-resizer_binded';
|
|
|
46160
46933
|
if (isReadOnly) {
|
|
46161
46934
|
this.hide();
|
|
46162
46935
|
}
|
|
46163
|
-
}).on('afterInit changePlace', this.addEventListeners.bind(this))
|
|
46936
|
+
}).on('afterInit changePlace', this.addEventListeners.bind(this))// Handlers without a namespace run first, ahead of those that
|
|
46937
|
+
// move the caret, as table-keyboard-navigation's do
|
|
46938
|
+
.on('keydown', this.onEditorKeyDown, {
|
|
46939
|
+
top: true
|
|
46940
|
+
}).on('afterGetValueFromEditor.resizer', (data)=>{
|
|
46164
46941
|
const rgx = /<jodit[^>]+data-jodit_iframe_wrapper[^>]+>(.*?<iframe[^>]*>.*?<\/iframe>.*?)<\/jodit>/gi;
|
|
46165
46942
|
if (rgx.test(data.value)) {
|
|
46166
46943
|
data.value = data.value.replace(rgx, '$1');
|
|
@@ -46305,6 +47082,38 @@ const keyBInd = '__jodit-resizer_binded';
|
|
|
46305
47082
|
e.stopImmediatePropagation();
|
|
46306
47083
|
}
|
|
46307
47084
|
}
|
|
47085
|
+
onEditorKeyDown(event) {
|
|
47086
|
+
// A key held down moves the caret on every repeat, with one keyup
|
|
47087
|
+
if (event === null || event === void 0 ? void 0 : event.repeat) {
|
|
47088
|
+
this.__followCaret();
|
|
47089
|
+
}
|
|
47090
|
+
this.__keyDownRange = this.j.s.range.cloneRange();
|
|
47091
|
+
this.__keyDownTable = this.__caretTable();
|
|
47092
|
+
}
|
|
47093
|
+
__caretTable() {
|
|
47094
|
+
return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(this.j.s.range.startContainer, 'table', this.j.editor);
|
|
47095
|
+
}
|
|
47096
|
+
/**
|
|
47097
|
+
* Hide the frame once a key has moved the caret off its element, and
|
|
47098
|
+
* frame a table the caret has moved into, as clicks do
|
|
47099
|
+
*/ onEditorKeyUp() {
|
|
47100
|
+
this.__followCaret();
|
|
47101
|
+
}
|
|
47102
|
+
__followCaret() {
|
|
47103
|
+
const before = this.__keyDownRange;
|
|
47104
|
+
this.__keyDownRange = null;
|
|
47105
|
+
if (!(0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_7__.isMoved)(this.j, before)) {
|
|
47106
|
+
return;
|
|
47107
|
+
}
|
|
47108
|
+
if (this.isShown && this.element && !this.j.s.range.intersectsNode(this.element)) {
|
|
47109
|
+
this.hide();
|
|
47110
|
+
}
|
|
47111
|
+
const table = this.__caretTable();
|
|
47112
|
+
if (table && table !== this.__keyDownTable && this.j.o.allowResizeTags.has('table')) {
|
|
47113
|
+
this.__bind(table);
|
|
47114
|
+
this.onClickElement(table);
|
|
47115
|
+
}
|
|
47116
|
+
}
|
|
46308
47117
|
onKeyDown(e) {
|
|
46309
47118
|
this.isAltMode = e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ALT;
|
|
46310
47119
|
if (!this.isAltMode && this.isResizeMode) {
|
|
@@ -46326,6 +47135,11 @@ const keyBInd = '__jodit-resizer_binded';
|
|
|
46326
47135
|
return;
|
|
46327
47136
|
}
|
|
46328
47137
|
if (!this.isResizeMode) {
|
|
47138
|
+
// A click in the element's popup, or in a list it opens, works on
|
|
47139
|
+
// the element, so it keeps its frame
|
|
47140
|
+
if ((e === null || e === void 0 ? void 0 : e.target) && _core_ui_index_js__WEBPACK_IMPORTED_MODULE_8__.UIElement.closestElement(e.target, _core_ui_popup_index_js__WEBPACK_IMPORTED_MODULE_9__.Popup)) {
|
|
47141
|
+
return;
|
|
47142
|
+
}
|
|
46329
47143
|
return this.hide();
|
|
46330
47144
|
}
|
|
46331
47145
|
e.stopImmediatePropagation();
|
|
@@ -46492,7 +47306,7 @@ const keyBInd = '__jodit-resizer_binded';
|
|
|
46492
47306
|
this.hide();
|
|
46493
47307
|
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(this.layer);
|
|
46494
47308
|
_core_global_js__WEBPACK_IMPORTED_MODULE_3__.eventEmitter.off('hideHelpers', this.hide);
|
|
46495
|
-
jodit.e.off(this.j.ow, '.resizer').off('.resizer');
|
|
47309
|
+
jodit.e.off(this.j.ow, '.resizer').off('.resizer').off('keydown', this.onEditorKeyDown);
|
|
46496
47310
|
}
|
|
46497
47311
|
constructor(){
|
|
46498
47312
|
super(...arguments);
|
|
@@ -46517,6 +47331,8 @@ const keyBInd = '__jodit-resizer_binded';
|
|
|
46517
47331
|
this.sizeViewer = this.rect.getElementsByTagName('span')[0];
|
|
46518
47332
|
this.pointerX = 0;
|
|
46519
47333
|
this.pointerY = 0;
|
|
47334
|
+
this.__keyDownRange = null;
|
|
47335
|
+
this.__keyDownTable = null;
|
|
46520
47336
|
this.isAltMode = false;
|
|
46521
47337
|
this.onClickElement = (element)=>{
|
|
46522
47338
|
if (this.isResizeMode) {
|
|
@@ -46578,6 +47394,12 @@ __decorate([
|
|
|
46578
47394
|
__decorate([
|
|
46579
47395
|
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
46580
47396
|
], resizer.prototype, "onResize", null);
|
|
47397
|
+
__decorate([
|
|
47398
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
47399
|
+
], resizer.prototype, "onEditorKeyDown", null);
|
|
47400
|
+
__decorate([
|
|
47401
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':keyup')
|
|
47402
|
+
], resizer.prototype, "onEditorKeyUp", null);
|
|
46581
47403
|
__decorate([
|
|
46582
47404
|
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
46583
47405
|
], resizer.prototype, "onKeyDown", null);
|
|
@@ -47528,8 +48350,9 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.tableAllowCellSelection
|
|
|
47528
48350
|
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
|
|
47529
48351
|
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21537);
|
|
47530
48352
|
/* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
|
|
47531
|
-
/* harmony import */ var
|
|
47532
|
-
/* harmony import */ var
|
|
48353
|
+
/* harmony import */ var _core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45124);
|
|
48354
|
+
/* harmony import */ var _modules_table_table_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(76014);
|
|
48355
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(55311);
|
|
47533
48356
|
/*!
|
|
47534
48357
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
47535
48358
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -47548,19 +48371,24 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.tableAllowCellSelection
|
|
|
47548
48371
|
|
|
47549
48372
|
|
|
47550
48373
|
|
|
48374
|
+
|
|
47551
48375
|
const key = 'table_processor_observer';
|
|
47552
48376
|
const MOUSE_MOVE_LABEL = 'onMoveTableSelectCell';
|
|
47553
48377
|
class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
47554
48378
|
/**
|
|
47555
48379
|
* Shortcut for Jodit.modules.Table
|
|
47556
48380
|
*/ get __tableModule() {
|
|
47557
|
-
return this.j.getInstance(
|
|
48381
|
+
return this.j.getInstance(_modules_table_table_js__WEBPACK_IMPORTED_MODULE_7__.Table, this.j.o);
|
|
47558
48382
|
}
|
|
47559
48383
|
afterInit(jodit) {
|
|
47560
48384
|
if (!jodit.o.tableAllowCellSelection) {
|
|
47561
48385
|
return;
|
|
47562
48386
|
}
|
|
47563
|
-
jodit.e
|
|
48387
|
+
jodit.e// Handlers without a namespace run first, ahead of those that
|
|
48388
|
+
// move the caret, as table-keyboard-navigation's do
|
|
48389
|
+
.on('keydown', this.__onKeyDown, {
|
|
48390
|
+
top: true
|
|
48391
|
+
}).on('keydown.select-cells', (event)=>{
|
|
47564
48392
|
if (event.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_TAB) {
|
|
47565
48393
|
this.unselectCells();
|
|
47566
48394
|
}
|
|
@@ -47584,6 +48412,59 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
47584
48412
|
}
|
|
47585
48413
|
});
|
|
47586
48414
|
}
|
|
48415
|
+
__onKeyDown(event) {
|
|
48416
|
+
// A key held down moves the caret on every repeat, with one keyup
|
|
48417
|
+
if (event === null || event === void 0 ? void 0 : event.repeat) {
|
|
48418
|
+
this.__followCaret();
|
|
48419
|
+
}
|
|
48420
|
+
this.__keyDownCell = this.__caretCell();
|
|
48421
|
+
this.__keyDownRange = this.j.s.range.cloneRange();
|
|
48422
|
+
this.__keyDownInLink = this.__isInLink();
|
|
48423
|
+
}
|
|
48424
|
+
__isInLink() {
|
|
48425
|
+
return Boolean(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(this.j.s.range.startContainer, 'a', this.j.editor));
|
|
48426
|
+
}
|
|
48427
|
+
/**
|
|
48428
|
+
* Where the selection starts rather than `s.current()`, which finds the
|
|
48429
|
+
* first cell when the caret is just before the table
|
|
48430
|
+
*/ __caretCell() {
|
|
48431
|
+
return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(this.j.s.range.startContainer, _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isCell, this.j.editor);
|
|
48432
|
+
}
|
|
48433
|
+
/**
|
|
48434
|
+
* A key that moves the caret into a cell, from another cell or from
|
|
48435
|
+
* outside the table, marks that cell and opens its popup, as a click on
|
|
48436
|
+
* it does. One that moves the caret out of the table unmarks the cells
|
|
48437
|
+
*/ onKeyUp() {
|
|
48438
|
+
this.__followCaret();
|
|
48439
|
+
}
|
|
48440
|
+
__followCaret() {
|
|
48441
|
+
const before = this.__keyDownRange;
|
|
48442
|
+
this.__keyDownRange = null;
|
|
48443
|
+
if (this.j.o.readonly || !(0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.isMoved)(this.j, before)) {
|
|
48444
|
+
return;
|
|
48445
|
+
}
|
|
48446
|
+
const cell = this.__caretCell();
|
|
48447
|
+
const hasLeftLink = this.__keyDownInLink && !this.__isInLink();
|
|
48448
|
+
if (cell === this.__keyDownCell && !(cell && hasLeftLink)) {
|
|
48449
|
+
return;
|
|
48450
|
+
}
|
|
48451
|
+
const hadMarked = this.__tableModule.getAllSelectedCells().length > 0;
|
|
48452
|
+
this.unselectCells();
|
|
48453
|
+
if (!cell) {
|
|
48454
|
+
if (hadMarked) {
|
|
48455
|
+
this.j.e.fire('hidePopup', 'cells');
|
|
48456
|
+
}
|
|
48457
|
+
return;
|
|
48458
|
+
}
|
|
48459
|
+
const table = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(cell, 'table', this.j.editor);
|
|
48460
|
+
if (!table) {
|
|
48461
|
+
return;
|
|
48462
|
+
}
|
|
48463
|
+
// As after a click, the first change to the cell keeps the mark
|
|
48464
|
+
this.__selectedCell = cell;
|
|
48465
|
+
this.__tableModule.addSelection(cell);
|
|
48466
|
+
this.j.e.fire('showPopup', table, ()=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.position)(cell, this.j), 'cells');
|
|
48467
|
+
}
|
|
47587
48468
|
/**
|
|
47588
48469
|
* Mouse click inside the table
|
|
47589
48470
|
*/ onStartSelection(cell, event) {
|
|
@@ -47905,10 +48786,17 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
47905
48786
|
}
|
|
47906
48787
|
/** @override */ beforeDestruct(jodit) {
|
|
47907
48788
|
this.__onRemoveSelection();
|
|
47908
|
-
jodit.e.off('.select-cells');
|
|
48789
|
+
jodit.e.off('.select-cells').off('keydown', this.__onKeyDown);
|
|
47909
48790
|
}
|
|
47910
48791
|
constructor(){
|
|
47911
48792
|
super(...arguments);
|
|
48793
|
+
/**
|
|
48794
|
+
* The cell with the caret, and the selection, when a key went down
|
|
48795
|
+
*/ this.__keyDownCell = null;
|
|
48796
|
+
this.__keyDownRange = null;
|
|
48797
|
+
/**
|
|
48798
|
+
* A link's popup replaces the cell's while the caret is in the link
|
|
48799
|
+
*/ this.__keyDownInLink = false;
|
|
47912
48800
|
/**
|
|
47913
48801
|
* First selected cell
|
|
47914
48802
|
*/ this.__selectedCell = null;
|
|
@@ -47920,6 +48808,12 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
47920
48808
|
selectCells.requires = [
|
|
47921
48809
|
'select'
|
|
47922
48810
|
];
|
|
48811
|
+
__decorate([
|
|
48812
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
48813
|
+
], selectCells.prototype, "__onKeyDown", null);
|
|
48814
|
+
__decorate([
|
|
48815
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':keyup')
|
|
48816
|
+
], selectCells.prototype, "onKeyUp", null);
|
|
47923
48817
|
__decorate([
|
|
47924
48818
|
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
47925
48819
|
], selectCells.prototype, "onStartSelection", null);
|
|
@@ -51054,7 +51948,9 @@ const WORK_KEYS = new Set([
|
|
|
51054
51948
|
case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_LEFT:
|
|
51055
51949
|
{
|
|
51056
51950
|
next = getNextCell();
|
|
51057
|
-
|
|
51951
|
+
// Left in the first cell leaves the table, as Up in the
|
|
51952
|
+
// top row does
|
|
51953
|
+
if (!next && key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_TAB) {
|
|
51058
51954
|
tableModule.appendRow(table, !isPrev ? false : _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.first(table, (node)=>_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, 'tr')), !isPrev);
|
|
51059
51955
|
next = getNextCell();
|
|
51060
51956
|
}
|
|
@@ -51080,7 +51976,6 @@ const WORK_KEYS = new Set([
|
|
|
51080
51976
|
if (!next) {
|
|
51081
51977
|
return;
|
|
51082
51978
|
}
|
|
51083
|
-
editor.e.fire('hidePopup hideResizer');
|
|
51084
51979
|
if (!next.firstChild) {
|
|
51085
51980
|
const first = editor.createInside.element('br');
|
|
51086
51981
|
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(next, first);
|