jodit-pro 4.12.26 → 4.12.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.css +1 -1
- package/es2015/jodit.fat.min.js +16 -14
- package/es2015/jodit.js +419 -122
- 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 +62 -0
- package/es2015/plugins/autocomplete/autocomplete.js +29 -2
- package/es2015/plugins/autocomplete/autocomplete.min.css +1 -0
- package/es2015/plugins/autocomplete/autocomplete.min.js +2 -2
- 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/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/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/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 +23 -2
- package/es2015/plugins/page-break/page-break.min.js +2 -2
- package/es2015/plugins/paste-code/paste-code.css +28 -1
- package/es2015/plugins/paste-code/paste-code.js +489 -64
- package/es2015/plugins/paste-code/paste-code.min.css +1 -1
- package/es2015/plugins/paste-code/paste-code.min.js +4 -2
- 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 +9 -1
- package/es2015/plugins/todo-list/todo-list.min.js +2 -2
- 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 +16 -14
- package/es2018/jodit.min.js +11 -11
- package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2018/plugins/autocomplete/autocomplete.min.css +1 -0
- package/es2018/plugins/autocomplete/autocomplete.min.js +2 -2
- 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/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/keyboard/keyboard.min.js +1 -1
- package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2018/plugins/page-break/page-break.min.js +2 -2
- package/es2018/plugins/paste-code/paste-code.min.css +1 -1
- package/es2018/plugins/paste-code/paste-code.min.js +4 -2
- 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 +2 -2
- package/es2018/plugins/translate/translate.min.js +1 -1
- package/es2018/plugins/tune-block/tune-block.min.js +1 -1
- package/es2021/jodit.css +1 -1
- package/es2021/jodit.fat.min.css +1 -1
- package/es2021/jodit.fat.min.js +19 -17
- package/es2021/jodit.js +418 -121
- 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 +62 -0
- package/es2021/plugins/autocomplete/autocomplete.js +29 -2
- package/es2021/plugins/autocomplete/autocomplete.min.css +1 -0
- package/es2021/plugins/autocomplete/autocomplete.min.js +2 -2
- 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/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/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/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 +23 -2
- package/es2021/plugins/page-break/page-break.min.js +2 -2
- package/es2021/plugins/paste-code/paste-code.css +28 -1
- package/es2021/plugins/paste-code/paste-code.js +488 -64
- package/es2021/plugins/paste-code/paste-code.min.css +1 -1
- package/es2021/plugins/paste-code/paste-code.min.js +4 -2
- 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 +9 -1
- package/es2021/plugins/todo-list/todo-list.min.js +2 -2
- package/es2021/plugins/translate/translate.css +1 -1
- package/es2021/plugins/translate/translate.js +1 -1
- package/es2021/plugins/translate/translate.min.js +1 -1
- package/es2021/plugins/tune-block/tune-block.css +1 -1
- package/es2021/plugins/tune-block/tune-block.js +1 -1
- package/es2021/plugins/tune-block/tune-block.min.js +1 -1
- package/es2021.en/jodit.css +1 -1
- package/es2021.en/jodit.fat.min.css +1 -1
- package/es2021.en/jodit.fat.min.js +31 -29
- package/es2021.en/jodit.js +418 -121
- package/es2021.en/jodit.min.js +14 -14
- 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 +62 -0
- package/es2021.en/plugins/autocomplete/autocomplete.js +29 -2
- package/es2021.en/plugins/autocomplete/autocomplete.min.css +1 -0
- package/es2021.en/plugins/autocomplete/autocomplete.min.js +2 -2
- 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/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/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/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 +23 -2
- package/es2021.en/plugins/page-break/page-break.min.js +2 -2
- package/es2021.en/plugins/paste-code/paste-code.css +28 -1
- package/es2021.en/plugins/paste-code/paste-code.js +488 -64
- package/es2021.en/plugins/paste-code/paste-code.min.css +1 -1
- package/es2021.en/plugins/paste-code/paste-code.min.js +4 -2
- 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 +9 -1
- package/es2021.en/plugins/todo-list/todo-list.min.js +2 -2
- package/es2021.en/plugins/translate/translate.css +1 -1
- package/es2021.en/plugins/translate/translate.js +1 -1
- package/es2021.en/plugins/translate/translate.min.js +1 -1
- package/es2021.en/plugins/tune-block/tune-block.css +1 -1
- package/es2021.en/plugins/tune-block/tune-block.js +1 -1
- package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
- package/es5/jodit.css +2 -2
- package/es5/jodit.fat.min.css +1 -1
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +565 -157
- package/es5/jodit.min.css +2 -2
- package/es5/jodit.min.js +2 -2
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.css +62 -0
- package/es5/plugins/autocomplete/autocomplete.js +29 -2
- package/es5/plugins/autocomplete/autocomplete.min.css +1 -0
- package/es5/plugins/autocomplete/autocomplete.min.js +2 -2
- 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/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/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/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 +23 -2
- package/es5/plugins/page-break/page-break.min.js +2 -2
- package/es5/plugins/paste-code/paste-code.css +28 -1
- package/es5/plugins/paste-code/paste-code.js +586 -66
- package/es5/plugins/paste-code/paste-code.min.css +1 -1
- package/es5/plugins/paste-code/paste-code.min.js +2 -2
- 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 +9 -1
- package/es5/plugins/todo-list/todo-list.min.js +2 -2
- 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 +6 -1
- package/esm/plugins/all.d.ts +1 -1
- package/esm/plugins/all.js +1 -1
- package/esm/plugins/autocomplete/autocomplete.d.ts +2 -26
- package/esm/plugins/autocomplete/autocomplete.impl.d.ts +31 -0
- package/esm/plugins/autocomplete/autocomplete.impl.js +1 -0
- package/esm/plugins/autocomplete/autocomplete.js +1 -1
- package/esm/plugins/index.d.ts +1 -1
- package/esm/plugins/index.js +1 -1
- package/esm/plugins/page-break/page-break.js +1 -1
- package/esm/plugins/paste-code/config.d.ts +6 -1
- package/esm/plugins/paste-code/config.js +1 -1
- package/esm/plugins/paste-code/helpers.d.ts +25 -0
- package/esm/plugins/paste-code/helpers.js +1 -0
- package/esm/plugins/paste-code/paste-code.d.ts +9 -0
- package/esm/plugins/paste-code/paste-code.js +1 -1
- package/esm/plugins/paste-code/ui/code-tuner/code-tuner.d.ts +87 -0
- package/esm/plugins/paste-code/ui/code-tuner/code-tuner.js +3 -0
- package/esm/plugins/paste-code/ui/code-tuner/drag.svg.js +1 -0
- package/esm/plugins/todo-list/todo-list.js +1 -1
- package/package.json +1 -1
- package/types/config.d.ts +6 -1
- package/types/plugins/autocomplete/autocomplete.d.ts +2 -26
- package/types/plugins/autocomplete/autocomplete.impl.d.ts +31 -0
- package/types/plugins/index.d.ts +1 -1
- package/types/plugins/paste-code/config.d.ts +6 -1
- package/types/plugins/paste-code/helpers.d.ts +25 -0
- package/types/plugins/paste-code/paste-code.d.ts +9 -0
- package/types/plugins/paste-code/ui/code-tuner/code-tuner.d.ts +87 -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.12.
|
|
4
|
+
* Version: v4.12.32
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -1645,6 +1645,14 @@ class ViewComponent extends _component_js__WEBPACK_IMPORTED_MODULE_0__.Component
|
|
|
1645
1645
|
* Attach component to View
|
|
1646
1646
|
*/ setParentView(jodit) {
|
|
1647
1647
|
this.jodit = jodit;
|
|
1648
|
+
// Inherit the owner window from the parent view — for an editor
|
|
1649
|
+
// created with a custom `ownerWindow` (e.g. inside an iframe) the
|
|
1650
|
+
// component default (the global `window`) is wrong: outside-click
|
|
1651
|
+
// handlers of dropdowns/popups listened to the wrong window. See
|
|
1652
|
+
// https://github.com/xdan/jodit/issues/965
|
|
1653
|
+
if (jodit.ow) {
|
|
1654
|
+
this.ownerWindow = jodit.ow;
|
|
1655
|
+
}
|
|
1648
1656
|
jodit.components.add(this);
|
|
1649
1657
|
return this;
|
|
1650
1658
|
}
|
|
@@ -1746,7 +1754,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1746
1754
|
* ```
|
|
1747
1755
|
* @packageDocumentation
|
|
1748
1756
|
* @module constants
|
|
1749
|
-
*/ const APP_VERSION = "4.12.
|
|
1757
|
+
*/ const APP_VERSION = "4.12.32";
|
|
1750
1758
|
// prettier-ignore
|
|
1751
1759
|
const ES = "es2021";
|
|
1752
1760
|
const IS_ES_MODERN = true;
|
|
@@ -5030,9 +5038,15 @@ function isFastEqual(a, b) {
|
|
|
5030
5038
|
*/ /**
|
|
5031
5039
|
* @module helpers/checker
|
|
5032
5040
|
*/ /**
|
|
5033
|
-
* Detect if string is HTML from MS Word or
|
|
5041
|
+
* Detect if string is HTML from MS Word, Excel or LibreOffice/OpenOffice
|
|
5034
5042
|
*/ function isHtmlFromWord(data) {
|
|
5035
|
-
return data.search(/<meta.*?Microsoft Excel\s[\d].*?>/) !== -1 || data.search(/<meta.*?Microsoft Word\s[\d].*?>/) !== -1 ||
|
|
5043
|
+
return data.search(/<meta.*?Microsoft Excel\s[\d].*?>/) !== -1 || data.search(/<meta.*?Microsoft Word\s[\d].*?>/) !== -1 || // `<meta name=ProgId content=Word.Document>` — attribute values are
|
|
5044
|
+
// unquoted in the raw Word clipboard fragment
|
|
5045
|
+
data.search(/<meta[^>]*?ProgId[^>]*?(Word|Excel)\./i) !== -1 || // LibreOffice/OpenOffice Writer & Calc
|
|
5046
|
+
data.search(/<meta[^>]*?(LibreOffice|OpenOffice)/i) !== -1 || // Office namespaces on the root element of the clipboard fragment
|
|
5047
|
+
data.search(/urn:schemas-microsoft-com:office:(word|excel)/) !== -1 || // `class=MsoNormal` and friends (unquoted/quoted)
|
|
5048
|
+
data.search(/<\w[^>]*\sclass=("|')?Mso/) !== -1 || // the raw Word clipboard uses SINGLE quotes: style='mso-…'
|
|
5049
|
+
data.search(/style='[^']*mso-/) !== -1 || data.search(/style="[^"]*mso-/) !== -1 && data.search(/<font/) !== -1;
|
|
5036
5050
|
}
|
|
5037
5051
|
|
|
5038
5052
|
|
|
@@ -6074,6 +6088,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6074
6088
|
/* harmony export */ LimitedStack: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.LimitedStack; },
|
|
6075
6089
|
/* harmony export */ NUMBER_FIELDS_REG: function() { return /* reexport safe */ _normalize_index_js__WEBPACK_IMPORTED_MODULE_5__.NUMBER_FIELDS_REG; },
|
|
6076
6090
|
/* harmony export */ OptionsError: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.OptionsError; },
|
|
6091
|
+
/* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.UNSAFE_PROTO_KEYS; },
|
|
6077
6092
|
/* harmony export */ abort: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.abort; },
|
|
6078
6093
|
/* harmony export */ alignElement: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.alignElement; },
|
|
6079
6094
|
/* harmony export */ alreadyLoadedList: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.alreadyLoadedList; },
|
|
@@ -6146,6 +6161,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6146
6161
|
/* harmony export */ isString: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isString; },
|
|
6147
6162
|
/* harmony export */ isStringArray: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isStringArray; },
|
|
6148
6163
|
/* harmony export */ isURL: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isURL; },
|
|
6164
|
+
/* harmony export */ isUnsafeProtoKey: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.isUnsafeProtoKey; },
|
|
6149
6165
|
/* harmony export */ isValidName: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isValidName; },
|
|
6150
6166
|
/* harmony export */ isViewObject: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isViewObject; },
|
|
6151
6167
|
/* harmony export */ isVoid: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isVoid; },
|
|
@@ -7552,7 +7568,8 @@ const completeUrl = (url)=>{
|
|
|
7552
7568
|
/* harmony import */ var _checker_is_void_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86068);
|
|
7553
7569
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6441);
|
|
7554
7570
|
/* harmony import */ var _extend_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97735);
|
|
7555
|
-
/* harmony import */ var
|
|
7571
|
+
/* harmony import */ var _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(69175);
|
|
7572
|
+
/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(37790);
|
|
7556
7573
|
/*!
|
|
7557
7574
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
7558
7575
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -7564,18 +7581,7 @@ const completeUrl = (url)=>{
|
|
|
7564
7581
|
|
|
7565
7582
|
|
|
7566
7583
|
|
|
7567
|
-
|
|
7568
|
-
* Keys that must never be copied from a (potentially untrusted) config object —
|
|
7569
|
-
* assigning them during a recursive merge can reach and mutate
|
|
7570
|
-
* `Object.prototype` (prototype pollution, CWE-1321).
|
|
7571
|
-
*/ const UNSAFE_PROTO_KEYS = [
|
|
7572
|
-
'__proto__',
|
|
7573
|
-
'constructor',
|
|
7574
|
-
'prototype'
|
|
7575
|
-
];
|
|
7576
|
-
function isUnsafeProtoKey(key) {
|
|
7577
|
-
return UNSAFE_PROTO_KEYS.indexOf(key) !== -1;
|
|
7578
|
-
}
|
|
7584
|
+
|
|
7579
7585
|
/**
|
|
7580
7586
|
* @example
|
|
7581
7587
|
* ```js
|
|
@@ -7624,7 +7630,7 @@ function isUnsafeProtoKey(key) {
|
|
|
7624
7630
|
}
|
|
7625
7631
|
const newOpt = {};
|
|
7626
7632
|
Object.keys(options).forEach((key)=>{
|
|
7627
|
-
if (isUnsafeProtoKey(key)) {
|
|
7633
|
+
if ((0,_is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_6__.isUnsafeProtoKey)(key)) {
|
|
7628
7634
|
return;
|
|
7629
7635
|
}
|
|
7630
7636
|
const opt = options[key], protoKey = proto ? proto[key] : null;
|
|
@@ -7646,7 +7652,7 @@ function isUnsafeProtoKey(key) {
|
|
|
7646
7652
|
return newOpt;
|
|
7647
7653
|
}
|
|
7648
7654
|
function ConfigFlatten(obj) {
|
|
7649
|
-
return (0,
|
|
7655
|
+
return (0,_utils_js__WEBPACK_IMPORTED_MODULE_7__.keys)(obj, false).reduce((app, key)=>{
|
|
7650
7656
|
app[key] = obj[key];
|
|
7651
7657
|
return app;
|
|
7652
7658
|
}, {});
|
|
@@ -7688,7 +7694,7 @@ function ConfigFlatten(obj) {
|
|
|
7688
7694
|
* @see {@link ConfigProto} for the prototype-chain variant used at editor creation time
|
|
7689
7695
|
*/ function ConfigMerge(target, source) {
|
|
7690
7696
|
Object.keys(source).forEach((key)=>{
|
|
7691
|
-
if (isUnsafeProtoKey(key)) {
|
|
7697
|
+
if ((0,_is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_6__.isUnsafeProtoKey)(key)) {
|
|
7692
7698
|
return;
|
|
7693
7699
|
}
|
|
7694
7700
|
const srcVal = source[key];
|
|
@@ -7701,7 +7707,7 @@ function ConfigFlatten(obj) {
|
|
|
7701
7707
|
});
|
|
7702
7708
|
}
|
|
7703
7709
|
function ConfigDeepFlatten(obj) {
|
|
7704
|
-
return (0,
|
|
7710
|
+
return (0,_utils_js__WEBPACK_IMPORTED_MODULE_7__.keys)(obj, false).reduce((app, key)=>{
|
|
7705
7711
|
app[key] = (0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(obj[key]) ? ConfigDeepFlatten(obj[key]) : obj[key];
|
|
7706
7712
|
return app;
|
|
7707
7713
|
}, {});
|
|
@@ -8274,14 +8280,15 @@ const getClassName = (obj)=>{
|
|
|
8274
8280
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
8275
8281
|
|
|
8276
8282
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8277
|
-
/* harmony export */ $$: function() { return /* reexport safe */
|
|
8283
|
+
/* harmony export */ $$: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.$$; },
|
|
8278
8284
|
/* harmony export */ ConfigDeepFlatten: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigDeepFlatten; },
|
|
8279
8285
|
/* harmony export */ ConfigFlatten: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigFlatten; },
|
|
8280
8286
|
/* harmony export */ ConfigMerge: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigMerge; },
|
|
8281
8287
|
/* harmony export */ ConfigProto: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigProto; },
|
|
8282
8288
|
/* harmony export */ ConnectionError: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.ConnectionError; },
|
|
8283
|
-
/* harmony export */ LimitedStack: function() { return /* reexport safe */
|
|
8289
|
+
/* harmony export */ LimitedStack: function() { return /* reexport safe */ _stack_js__WEBPACK_IMPORTED_MODULE_26__.LimitedStack; },
|
|
8284
8290
|
/* harmony export */ OptionsError: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.OptionsError; },
|
|
8291
|
+
/* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* reexport safe */ _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__.UNSAFE_PROTO_KEYS; },
|
|
8285
8292
|
/* harmony export */ abort: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.abort; },
|
|
8286
8293
|
/* harmony export */ alignElement: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.alignElement; },
|
|
8287
8294
|
/* harmony export */ alreadyLoadedList: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.alreadyLoadedList; },
|
|
@@ -8291,17 +8298,17 @@ const getClassName = (obj)=>{
|
|
|
8291
8298
|
/* harmony export */ attr: function() { return /* reexport safe */ _attr_js__WEBPACK_IMPORTED_MODULE_3__.attr; },
|
|
8292
8299
|
/* harmony export */ browser: function() { return /* reexport safe */ _browser_js__WEBPACK_IMPORTED_MODULE_4__.browser; },
|
|
8293
8300
|
/* harmony export */ buildQuery: function() { return /* reexport safe */ _build_query_js__WEBPACK_IMPORTED_MODULE_5__.buildQuery; },
|
|
8294
|
-
/* harmony export */ call: function() { return /* reexport safe */
|
|
8295
|
-
/* harmony export */ callPromise: function() { return /* reexport safe */
|
|
8296
|
-
/* harmony export */ callThis: function() { return /* reexport safe */
|
|
8301
|
+
/* harmony export */ call: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.call; },
|
|
8302
|
+
/* harmony export */ callPromise: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.callPromise; },
|
|
8303
|
+
/* harmony export */ callThis: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.callThis; },
|
|
8297
8304
|
/* harmony export */ clearAlign: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.clearAlign; },
|
|
8298
8305
|
/* harmony export */ clearCenterAlign: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.clearCenterAlign; },
|
|
8299
|
-
/* harmony export */ cns: function() { return /* reexport safe */
|
|
8306
|
+
/* harmony export */ cns: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__.cns; },
|
|
8300
8307
|
/* harmony export */ completeUrl: function() { return /* reexport safe */ _complete_url_js__WEBPACK_IMPORTED_MODULE_6__.completeUrl; },
|
|
8301
8308
|
/* harmony export */ connection: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.connection; },
|
|
8302
8309
|
/* harmony export */ convertMediaUrlToVideoEmbed: function() { return /* reexport safe */ _convert_media_url_to_video_embed_js__WEBPACK_IMPORTED_MODULE_8__.convertMediaUrlToVideoEmbed; },
|
|
8303
8310
|
/* harmony export */ css: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.css; },
|
|
8304
|
-
/* harmony export */ cssPath: function() { return /* reexport safe */
|
|
8311
|
+
/* harmony export */ cssPath: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.cssPath; },
|
|
8305
8312
|
/* harmony export */ ctrlKey: function() { return /* reexport safe */ _ctrl_key_js__WEBPACK_IMPORTED_MODULE_10__.ctrlKey; },
|
|
8306
8313
|
/* harmony export */ dataBind: function() { return /* reexport safe */ _data_bind_js__WEBPACK_IMPORTED_MODULE_11__.dataBind; },
|
|
8307
8314
|
/* harmony export */ defaultLanguage: function() { return /* reexport safe */ _default_language_js__WEBPACK_IMPORTED_MODULE_12__.defaultLanguage; },
|
|
@@ -8309,30 +8316,31 @@ const getClassName = (obj)=>{
|
|
|
8309
8316
|
/* harmony export */ fastClone: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.fastClone; },
|
|
8310
8317
|
/* harmony export */ get: function() { return /* reexport safe */ _get_js__WEBPACK_IMPORTED_MODULE_15__.get; },
|
|
8311
8318
|
/* harmony export */ getClassName: function() { return /* reexport safe */ _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__.getClassName; },
|
|
8312
|
-
/* harmony export */ getDataTransfer: function() { return /* reexport safe */
|
|
8313
|
-
/* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */
|
|
8314
|
-
/* harmony export */ getXPathByElement: function() { return /* reexport safe */
|
|
8319
|
+
/* harmony export */ getDataTransfer: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.getDataTransfer; },
|
|
8320
|
+
/* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.getPropertyDescriptor; },
|
|
8321
|
+
/* harmony export */ getXPathByElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.getXPathByElement; },
|
|
8315
8322
|
/* harmony export */ hAlignElement: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.hAlignElement; },
|
|
8316
8323
|
/* harmony export */ humanSizeToBytes: function() { return /* reexport safe */ _human_size_to_bytes_js__WEBPACK_IMPORTED_MODULE_17__.humanSizeToBytes; },
|
|
8317
|
-
/* harmony export */ inView: function() { return /* reexport safe */
|
|
8324
|
+
/* harmony export */ inView: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_23__.inView; },
|
|
8318
8325
|
/* harmony export */ isAtom: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.isAtom; },
|
|
8326
|
+
/* harmony export */ isUnsafeProtoKey: function() { return /* reexport safe */ _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__.isUnsafeProtoKey; },
|
|
8319
8327
|
/* harmony export */ keepNames: function() { return /* reexport safe */ _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__.keepNames; },
|
|
8320
|
-
/* harmony export */ keys: function() { return /* reexport safe */
|
|
8321
|
-
/* harmony export */ loadImage: function() { return /* reexport safe */
|
|
8328
|
+
/* harmony export */ keys: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.keys; },
|
|
8329
|
+
/* harmony export */ loadImage: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.loadImage; },
|
|
8322
8330
|
/* harmony export */ loadNext: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.loadNext; },
|
|
8323
8331
|
/* harmony export */ loadNextStyle: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.loadNextStyle; },
|
|
8324
8332
|
/* harmony export */ markAsAtomic: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.markAsAtomic; },
|
|
8325
|
-
/* harmony export */ markDeprecated: function() { return /* reexport safe */
|
|
8326
|
-
/* harmony export */ markOwner: function() { return /* reexport safe */
|
|
8327
|
-
/* harmony export */ memorizeExec: function() { return /* reexport safe */
|
|
8333
|
+
/* harmony export */ markDeprecated: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__.markDeprecated; },
|
|
8334
|
+
/* harmony export */ markOwner: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.markOwner; },
|
|
8335
|
+
/* harmony export */ memorizeExec: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.memorizeExec; },
|
|
8328
8336
|
/* harmony export */ options: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.options; },
|
|
8329
|
-
/* harmony export */ parseQuery: function() { return /* reexport safe */
|
|
8330
|
-
/* harmony export */ previewBox: function() { return /* reexport safe */
|
|
8331
|
-
/* harmony export */ refs: function() { return /* reexport safe */
|
|
8332
|
-
/* harmony export */ reset: function() { return /* reexport safe */
|
|
8333
|
-
/* harmony export */ resolveElement: function() { return /* reexport safe */
|
|
8334
|
-
/* harmony export */ scrollIntoViewIfNeeded: function() { return /* reexport safe */
|
|
8335
|
-
/* harmony export */ set: function() { return /* reexport safe */
|
|
8337
|
+
/* harmony export */ parseQuery: function() { return /* reexport safe */ _parse_query_js__WEBPACK_IMPORTED_MODULE_20__.parseQuery; },
|
|
8338
|
+
/* harmony export */ previewBox: function() { return /* reexport safe */ _print_js__WEBPACK_IMPORTED_MODULE_21__.previewBox; },
|
|
8339
|
+
/* harmony export */ refs: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.refs; },
|
|
8340
|
+
/* harmony export */ reset: function() { return /* reexport safe */ _reset_js__WEBPACK_IMPORTED_MODULE_22__.reset; },
|
|
8341
|
+
/* harmony export */ resolveElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.resolveElement; },
|
|
8342
|
+
/* harmony export */ scrollIntoViewIfNeeded: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_23__.scrollIntoViewIfNeeded; },
|
|
8343
|
+
/* harmony export */ set: function() { return /* reexport safe */ _set_js__WEBPACK_IMPORTED_MODULE_25__.set; }
|
|
8336
8344
|
/* harmony export */ });
|
|
8337
8345
|
/* harmony import */ var _align_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25726);
|
|
8338
8346
|
/* harmony import */ var _append_script_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63799);
|
|
@@ -8352,15 +8360,16 @@ const getClassName = (obj)=>{
|
|
|
8352
8360
|
/* harmony import */ var _get_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(94643);
|
|
8353
8361
|
/* harmony import */ var _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(80568);
|
|
8354
8362
|
/* harmony import */ var _human_size_to_bytes_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(38420);
|
|
8355
|
-
/* harmony import */ var
|
|
8356
|
-
/* harmony import */ var
|
|
8357
|
-
/* harmony import */ var
|
|
8358
|
-
/* harmony import */ var
|
|
8359
|
-
/* harmony import */ var
|
|
8360
|
-
/* harmony import */ var
|
|
8361
|
-
/* harmony import */ var
|
|
8362
|
-
/* harmony import */ var
|
|
8363
|
-
/* harmony import */ var
|
|
8363
|
+
/* harmony import */ var _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(69175);
|
|
8364
|
+
/* harmony import */ var _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95942);
|
|
8365
|
+
/* harmony import */ var _parse_query_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(82501);
|
|
8366
|
+
/* harmony import */ var _print_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(11628);
|
|
8367
|
+
/* harmony import */ var _reset_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(58844);
|
|
8368
|
+
/* harmony import */ var _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(26395);
|
|
8369
|
+
/* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(76078);
|
|
8370
|
+
/* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(3703);
|
|
8371
|
+
/* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(50535);
|
|
8372
|
+
/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(37790);
|
|
8364
8373
|
/*!
|
|
8365
8374
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
8366
8375
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -8394,6 +8403,38 @@ const getClassName = (obj)=>{
|
|
|
8394
8403
|
|
|
8395
8404
|
|
|
8396
8405
|
|
|
8406
|
+
|
|
8407
|
+
|
|
8408
|
+
|
|
8409
|
+
/***/ }),
|
|
8410
|
+
|
|
8411
|
+
/***/ 69175:
|
|
8412
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
8413
|
+
|
|
8414
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8415
|
+
/* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* binding */ UNSAFE_PROTO_KEYS; },
|
|
8416
|
+
/* harmony export */ isUnsafeProtoKey: function() { return /* binding */ isUnsafeProtoKey; }
|
|
8417
|
+
/* harmony export */ });
|
|
8418
|
+
/*!
|
|
8419
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
8420
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
8421
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
8422
|
+
*/ /**
|
|
8423
|
+
* @module helpers/utils
|
|
8424
|
+
*/ /**
|
|
8425
|
+
* Keys that must never be written from a (potentially untrusted) source —
|
|
8426
|
+
* assigning them while walking/merging an object can reach and mutate
|
|
8427
|
+
* `Object.prototype` (prototype pollution, CWE-1321).
|
|
8428
|
+
*/ const UNSAFE_PROTO_KEYS = [
|
|
8429
|
+
'__proto__',
|
|
8430
|
+
'constructor',
|
|
8431
|
+
'prototype'
|
|
8432
|
+
];
|
|
8433
|
+
/**
|
|
8434
|
+
* Check whether a key can be used to pollute the prototype chain.
|
|
8435
|
+
*/ function isUnsafeProtoKey(key) {
|
|
8436
|
+
return UNSAFE_PROTO_KEYS.indexOf(key) !== -1;
|
|
8437
|
+
}
|
|
8397
8438
|
|
|
8398
8439
|
|
|
8399
8440
|
/***/ }),
|
|
@@ -8866,6 +8907,7 @@ const $$temp = ()=>{
|
|
|
8866
8907
|
/* harmony import */ var _checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29807);
|
|
8867
8908
|
/* harmony import */ var _checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72430);
|
|
8868
8909
|
/* harmony import */ var _checker_is_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70799);
|
|
8910
|
+
/* harmony import */ var _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69175);
|
|
8869
8911
|
/*!
|
|
8870
8912
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
8871
8913
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -8874,6 +8916,7 @@ const $$temp = ()=>{
|
|
|
8874
8916
|
|
|
8875
8917
|
|
|
8876
8918
|
|
|
8919
|
+
|
|
8877
8920
|
/**
|
|
8878
8921
|
* Safe access in tree object
|
|
8879
8922
|
*
|
|
@@ -8891,6 +8934,9 @@ const $$temp = ()=>{
|
|
|
8891
8934
|
return;
|
|
8892
8935
|
}
|
|
8893
8936
|
const parts = chain.split('.');
|
|
8937
|
+
if (parts.some(_is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_4__.isUnsafeProtoKey)) {
|
|
8938
|
+
return;
|
|
8939
|
+
}
|
|
8894
8940
|
let result = obj, key = parts[0];
|
|
8895
8941
|
for(let i = 0; i < parts.length - 1; i += 1){
|
|
8896
8942
|
key = parts[i];
|
|
@@ -12045,8 +12091,9 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12045
12091
|
/* harmony export */ });
|
|
12046
12092
|
/* harmony import */ var _dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
|
|
12047
12093
|
/* harmony import */ var _helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29960);
|
|
12048
|
-
/* harmony import */ var
|
|
12049
|
-
/* harmony import */ var
|
|
12094
|
+
/* harmony import */ var _helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41180);
|
|
12095
|
+
/* harmony import */ var _list_wrap_list_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(82515);
|
|
12096
|
+
/* harmony import */ var _wrap_unwrapped_text_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6980);
|
|
12050
12097
|
/*!
|
|
12051
12098
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
12052
12099
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -12055,12 +12102,29 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12055
12102
|
|
|
12056
12103
|
|
|
12057
12104
|
|
|
12105
|
+
|
|
12058
12106
|
/**
|
|
12059
12107
|
* Replaces the parent tag with the applicable one, or wraps the text and also replaces the tag
|
|
12060
12108
|
* @private
|
|
12061
12109
|
*/ function wrap(commitStyle, font, jodit) {
|
|
12062
12110
|
const wrapper = findOrCreateWrapper(commitStyle, font, jodit);
|
|
12063
|
-
|
|
12111
|
+
if (commitStyle.elementIsList) {
|
|
12112
|
+
return (0,_list_wrap_list_js__WEBPACK_IMPORTED_MODULE_3__.wrapList)(commitStyle, wrapper, jodit);
|
|
12113
|
+
}
|
|
12114
|
+
const newWrapper = _dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.replace(wrapper, commitStyle.element, jodit.createInside, true);
|
|
12115
|
+
if (commitStyle.elementIsBlock) {
|
|
12116
|
+
// Inline font styles left over from pasted content visually override
|
|
12117
|
+
// the new block format — e.g. an h2 with `font-weight: normal;
|
|
12118
|
+
// font-size: 24px` does not look like a heading at all, so the
|
|
12119
|
+
// command seems to do nothing. See
|
|
12120
|
+
// https://github.com/xdan/jodit/issues/1063
|
|
12121
|
+
(0,_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(newWrapper, 'fontSize', null);
|
|
12122
|
+
(0,_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(newWrapper, 'fontWeight', null);
|
|
12123
|
+
if (!(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(newWrapper, 'style')) {
|
|
12124
|
+
(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(newWrapper, 'style', null);
|
|
12125
|
+
}
|
|
12126
|
+
}
|
|
12127
|
+
return newWrapper;
|
|
12064
12128
|
}
|
|
12065
12129
|
const WRAP_NODES = new Set([
|
|
12066
12130
|
'td',
|
|
@@ -12081,7 +12145,7 @@ const WRAP_NODES = new Set([
|
|
|
12081
12145
|
if (box) {
|
|
12082
12146
|
return box;
|
|
12083
12147
|
}
|
|
12084
|
-
return (0,
|
|
12148
|
+
return (0,_wrap_unwrapped_text_js__WEBPACK_IMPORTED_MODULE_4__.wrapUnwrappedText)(commitStyle, font, jodit);
|
|
12085
12149
|
}
|
|
12086
12150
|
(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(font, 'size', null);
|
|
12087
12151
|
return font;
|
|
@@ -15628,8 +15692,11 @@ class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_7__.UIGroup {
|
|
|
15628
15692
|
/**
|
|
15629
15693
|
* Calculate static bound for point
|
|
15630
15694
|
*/ getKeepBound(getBound) {
|
|
15695
|
+
var _a;
|
|
15631
15696
|
const oldBound = getBound();
|
|
15632
|
-
|
|
15697
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
15698
|
+
// host, so the lookup must start from the shadow root
|
|
15699
|
+
const elmUnderCursor = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.od).elementFromPoint(oldBound.left, oldBound.top);
|
|
15633
15700
|
if (!elmUnderCursor) {
|
|
15634
15701
|
return getBound;
|
|
15635
15702
|
}
|
|
@@ -17387,6 +17454,17 @@ let Jodit = Jodit_1 = class Jodit extends _modules_index_js__WEBPACK_IMPORTED_MO
|
|
|
17387
17454
|
const init = ()=>{
|
|
17388
17455
|
if (opt.enableDragAndDropFileToEditor && opt.uploader && (opt.uploader.url || opt.uploader.insertImageAsBase64URI)) {
|
|
17389
17456
|
this.uploader.bind(this.editor);
|
|
17457
|
+
} else if (!opt.enableDragAndDropFileToEditor) {
|
|
17458
|
+
// Without a bound uploader nobody cancels a file drop, and
|
|
17459
|
+
// Firefox inserts the dropped image natively — the option
|
|
17460
|
+
// must mean "do nothing". See
|
|
17461
|
+
// https://github.com/xdan/jodit/issues/1077
|
|
17462
|
+
this.e.on(editor, 'drop', (e)=>{
|
|
17463
|
+
var _a, _b;
|
|
17464
|
+
if ((_b = (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b.length) {
|
|
17465
|
+
e.preventDefault();
|
|
17466
|
+
}
|
|
17467
|
+
});
|
|
17390
17468
|
}
|
|
17391
17469
|
// in initEditor - the editor could change
|
|
17392
17470
|
if (!this.__elementToPlace.get(this.editor)) {
|
|
@@ -26743,12 +26821,17 @@ const TABS = {
|
|
|
26743
26821
|
self.j.alert('The name should not be empty');
|
|
26744
26822
|
return false;
|
|
26745
26823
|
}
|
|
26824
|
+
self.j.e.fire('afterImageEditorSave', data, name);
|
|
26746
26825
|
self.onSave(name, data, self.hide, (e)=>{
|
|
26747
26826
|
self.j.alert(e.message);
|
|
26748
26827
|
});
|
|
26749
26828
|
});
|
|
26750
26829
|
break;
|
|
26751
26830
|
case self.buttons.save:
|
|
26831
|
+
// Notify listeners that a crop/resize was applied,
|
|
26832
|
+
// passing the action box (action + box dimensions).
|
|
26833
|
+
// See https://github.com/xdan/jodit/issues/820
|
|
26834
|
+
self.j.e.fire('afterImageEditorSave', data);
|
|
26752
26835
|
self.onSave(undefined, data, self.hide, (e)=>{
|
|
26753
26836
|
self.j.alert(e.message);
|
|
26754
26837
|
});
|
|
@@ -28512,13 +28595,35 @@ let ToolbarContent = class ToolbarContent extends _core_ui_button_index_js__WEBP
|
|
|
28512
28595
|
return 'ToolbarContent';
|
|
28513
28596
|
}
|
|
28514
28597
|
/** @override */ update() {
|
|
28515
|
-
|
|
28598
|
+
var _a, _b, _c;
|
|
28599
|
+
const { control } = this;
|
|
28600
|
+
const content = control.getContent(this.j, this);
|
|
28516
28601
|
if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(content) || content.parentNode !== this.container) {
|
|
28517
28602
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.detach(this.container);
|
|
28518
28603
|
this.container.appendChild((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(content) ? this.j.create.fromHTML(content) : content);
|
|
28519
28604
|
}
|
|
28605
|
+
// Content controls never went through the ToolbarButton status
|
|
28606
|
+
// calculation, so `isDisabled`/`isActive`/`update` declared on the
|
|
28607
|
+
// control were silently ignored (e.g. the FileBrowser Upload button
|
|
28608
|
+
// ignored the backend permissions). See
|
|
28609
|
+
// https://github.com/xdan/jodit/issues/1094
|
|
28610
|
+
this.state.disabled = Boolean((_a = control.isDisabled) === null || _a === void 0 ? void 0 : _a.call(control, this.j, this));
|
|
28611
|
+
this.state.activated = Boolean((_b = control.isActive) === null || _b === void 0 ? void 0 : _b.call(control, this.j, this));
|
|
28612
|
+
(_c = control.update) === null || _c === void 0 ? void 0 : _c.call(control, this.j, this);
|
|
28613
|
+
// The first update() runs before the state watchers are attached, so
|
|
28614
|
+
// apply the calculated state explicitly (the calls are idempotent)
|
|
28615
|
+
this.onChangeDisabled();
|
|
28616
|
+
this.onChangeActivated();
|
|
28520
28617
|
super.update();
|
|
28521
28618
|
}
|
|
28619
|
+
/**
|
|
28620
|
+
* The content is arbitrary HTML — propagate the disabled state to the
|
|
28621
|
+
* nested form controls (e.g. the file input of the Upload button),
|
|
28622
|
+
* otherwise they stay interactive.
|
|
28623
|
+
*/ onChangeDisabled() {
|
|
28624
|
+
super.onChangeDisabled();
|
|
28625
|
+
this.container.querySelectorAll('input,button,select,textarea').forEach((elm)=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.attr)(elm, 'disabled', this.state.disabled || null));
|
|
28626
|
+
}
|
|
28522
28627
|
/** @override */ createContainer() {
|
|
28523
28628
|
return this.j.c.span(this.componentName);
|
|
28524
28629
|
}
|
|
@@ -29220,6 +29325,15 @@ function processOldBrowserDrag(self, cData, handlerSuccess, handlerError, onFina
|
|
|
29220
29325
|
if (!fileList.length) {
|
|
29221
29326
|
return Promise.reject((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.error)('Need files'));
|
|
29222
29327
|
}
|
|
29328
|
+
// Client-side validation hook — returning `false` aborts the upload.
|
|
29329
|
+
// See https://github.com/xdan/jodit/issues/1329
|
|
29330
|
+
if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.isFunction)(o.beforeUpload)) {
|
|
29331
|
+
if (o.beforeUpload.call(uploader, fileList) === false) {
|
|
29332
|
+
const err = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.error)('Upload canceled');
|
|
29333
|
+
(handlerError || o.defaultHandlerError).call(uploader, err);
|
|
29334
|
+
return Promise.reject(err);
|
|
29335
|
+
}
|
|
29336
|
+
}
|
|
29223
29337
|
const promises = [];
|
|
29224
29338
|
if (o.insertImageAsBase64URI) {
|
|
29225
29339
|
readImagesWithReader(fileList, o.imagesExtensions, promises, uploader, handlerSuccess, o.defaultHandlerSuccess);
|
|
@@ -30132,8 +30246,11 @@ const ns = 'addnewline';
|
|
|
30132
30246
|
}
|
|
30133
30247
|
}
|
|
30134
30248
|
__onMouseMove(e) {
|
|
30249
|
+
var _a;
|
|
30135
30250
|
const editor = this.j;
|
|
30136
|
-
|
|
30251
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
30252
|
+
// host, so the lookup must start from the shadow root
|
|
30253
|
+
let currentElement = ((_a = editor.o.shadowRoot) !== null && _a !== void 0 ? _a : editor.ed).elementFromPoint(e.clientX, e.clientY);
|
|
30137
30254
|
if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isOrContains(editor.editor, currentElement)) {
|
|
30138
30255
|
return;
|
|
30139
30256
|
}
|
|
@@ -30332,7 +30449,13 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_0__.Icon.set('enter', _enter_svg_js__W
|
|
|
30332
30449
|
return new _ui_ui_ai_assistant_js__WEBPACK_IMPORTED_MODULE_6__.UiAiAssistant(jodit, {
|
|
30333
30450
|
onInsertAfter (html) {
|
|
30334
30451
|
jodit.s.focus();
|
|
30335
|
-
|
|
30452
|
+
// `current()` returns a node of the selection START, so with
|
|
30453
|
+
// several selected paragraphs the result landed after the
|
|
30454
|
+
// first one — collapse the range to the END of the selection
|
|
30455
|
+
// instead. See https://github.com/xdan/jodit/issues/1263
|
|
30456
|
+
const range = jodit.s.range;
|
|
30457
|
+
range.collapse(false);
|
|
30458
|
+
jodit.s.selectRange(range);
|
|
30336
30459
|
jodit.s.insertHTML(html);
|
|
30337
30460
|
__dialog.close();
|
|
30338
30461
|
},
|
|
@@ -30961,10 +31084,14 @@ class backspace extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugi
|
|
|
30961
31084
|
return false;
|
|
30962
31085
|
}
|
|
30963
31086
|
(0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_5__.moveNodeInsideStart)(jodit, fakeNode, backspace);
|
|
30964
|
-
|
|
31087
|
+
const disabled = jodit.o.delete.disableCases;
|
|
31088
|
+
if (_cases_index_js__WEBPACK_IMPORTED_MODULE_8__.casesMap.some(([key, func])=>{
|
|
31089
|
+
if (disabled && disabled.has(key)) {
|
|
31090
|
+
return;
|
|
31091
|
+
}
|
|
30965
31092
|
if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_3__.isFunction)(func) && func(jodit, fakeNode, backspace, mode)) {
|
|
30966
31093
|
if (!_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD) {
|
|
30967
|
-
console.info('Remove case:',
|
|
31094
|
+
console.info('Remove case:', key);
|
|
30968
31095
|
}
|
|
30969
31096
|
return true;
|
|
30970
31097
|
}
|
|
@@ -31051,13 +31178,26 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
31051
31178
|
jodit.s.setCursorBefore(fakeNode);
|
|
31052
31179
|
return true;
|
|
31053
31180
|
}
|
|
31054
|
-
if (sibling && (checkMoveListContent(jodit, mainClosestBox, sibling, backspace) || moveContentAndRemoveEmpty(jodit, mainClosestBox, sibling, backspace))) {
|
|
31181
|
+
if (sibling && (checkMoveListContent(jodit, mainClosestBox, sibling, backspace) || moveContentAndRemoveEmpty(jodit, mainClosestBox, resolveTableSibling(sibling, backspace), backspace))) {
|
|
31055
31182
|
jodit.s.setCursorBefore(fakeNode);
|
|
31056
31183
|
return true;
|
|
31057
31184
|
}
|
|
31058
31185
|
}
|
|
31059
31186
|
return false;
|
|
31060
31187
|
}
|
|
31188
|
+
/**
|
|
31189
|
+
* Content cannot be merged into the `<table>` element itself — it would land
|
|
31190
|
+
* between the table sections (after `</tbody>`), which is invalid HTML and
|
|
31191
|
+
* gets foster-parented out of the table on the next parse. Merge into the
|
|
31192
|
+
* edge cell instead. See https://github.com/xdan/jodit/issues/1064
|
|
31193
|
+
* @private
|
|
31194
|
+
*/ function resolveTableSibling(sibling, backspace) {
|
|
31195
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, 'table')) {
|
|
31196
|
+
return sibling;
|
|
31197
|
+
}
|
|
31198
|
+
const cells = sibling.querySelectorAll('td,th');
|
|
31199
|
+
return cells.length ? cells[backspace ? cells.length - 1 : 0] : null;
|
|
31200
|
+
}
|
|
31061
31201
|
function checkMoveListContent(jodit, mainClosestBox, sibling, backspace) {
|
|
31062
31202
|
// Process UL/LI/OL cases
|
|
31063
31203
|
const siblingIsList = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.LIST_TAGS);
|
|
@@ -31613,8 +31753,9 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
31613
31753
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
31614
31754
|
|
|
31615
31755
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
31616
|
-
/* harmony export */
|
|
31756
|
+
/* harmony export */ casesMap: function() { return /* binding */ casesMap; }
|
|
31617
31757
|
/* harmony export */ });
|
|
31758
|
+
/* unused harmony export cases */
|
|
31618
31759
|
/* harmony import */ var _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62845);
|
|
31619
31760
|
/* harmony import */ var _check_join_two_lists_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(91748);
|
|
31620
31761
|
/* harmony import */ var _check_remove_char_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73792);
|
|
@@ -31628,8 +31769,6 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
31628
31769
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
31629
31770
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
31630
31771
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
31631
|
-
*/ /**
|
|
31632
|
-
* @module plugins/backspace
|
|
31633
31772
|
*/
|
|
31634
31773
|
|
|
31635
31774
|
|
|
@@ -31640,18 +31779,52 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
31640
31779
|
|
|
31641
31780
|
|
|
31642
31781
|
/**
|
|
31782
|
+
* Ordered delete/backspace cases with stable keys. The first one returning
|
|
31783
|
+
* `true` wins. The keys are stable across minified builds (function names are
|
|
31784
|
+
* mangled by terser) so they can be referenced by `delete.disableCases`.
|
|
31643
31785
|
* @private
|
|
31644
|
-
*/ const
|
|
31645
|
-
|
|
31646
|
-
|
|
31647
|
-
|
|
31648
|
-
|
|
31649
|
-
|
|
31650
|
-
|
|
31651
|
-
|
|
31652
|
-
|
|
31653
|
-
|
|
31786
|
+
*/ const casesMap = [
|
|
31787
|
+
[
|
|
31788
|
+
'remove-unbreakable',
|
|
31789
|
+
_check_remove_unbreakable_element_js__WEBPACK_IMPORTED_MODULE_6__.checkRemoveUnbreakableElement
|
|
31790
|
+
],
|
|
31791
|
+
[
|
|
31792
|
+
'remove-not-editable',
|
|
31793
|
+
_check_remove_content_not_editable_js__WEBPACK_IMPORTED_MODULE_3__.checkRemoveContentNotEditable
|
|
31794
|
+
],
|
|
31795
|
+
[
|
|
31796
|
+
'remove-char',
|
|
31797
|
+
_check_remove_char_js__WEBPACK_IMPORTED_MODULE_2__.checkRemoveChar
|
|
31798
|
+
],
|
|
31799
|
+
[
|
|
31800
|
+
'table-cell',
|
|
31801
|
+
_check_table_cell_js__WEBPACK_IMPORTED_MODULE_7__.checkTableCell
|
|
31802
|
+
],
|
|
31803
|
+
[
|
|
31804
|
+
'remove-empty-parent',
|
|
31805
|
+
_check_remove_empty_parent_js__WEBPACK_IMPORTED_MODULE_5__.checkRemoveEmptyParent
|
|
31806
|
+
],
|
|
31807
|
+
[
|
|
31808
|
+
'remove-empty-neighbor',
|
|
31809
|
+
_check_remove_empty_neighbor_js__WEBPACK_IMPORTED_MODULE_4__.checkRemoveEmptyNeighbor
|
|
31810
|
+
],
|
|
31811
|
+
[
|
|
31812
|
+
'join-two-lists',
|
|
31813
|
+
_check_join_two_lists_js__WEBPACK_IMPORTED_MODULE_1__.checkJoinTwoLists
|
|
31814
|
+
],
|
|
31815
|
+
[
|
|
31816
|
+
'join-neighbors',
|
|
31817
|
+
_check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_0__.checkJoinNeighbors
|
|
31818
|
+
],
|
|
31819
|
+
[
|
|
31820
|
+
'unwrap-first-list-item',
|
|
31821
|
+
_check_unwrap_first_list_item_js__WEBPACK_IMPORTED_MODULE_8__.checkUnwrapFirstListItem
|
|
31822
|
+
]
|
|
31654
31823
|
];
|
|
31824
|
+
/**
|
|
31825
|
+
* @private
|
|
31826
|
+
* @deprecated Use `casesMap` to also get the stable case keys.
|
|
31827
|
+
*/ const cases = casesMap.map(([, fn])=>fn);
|
|
31655
31828
|
|
|
31656
31829
|
|
|
31657
31830
|
/***/ }),
|
|
@@ -32161,6 +32334,18 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
|
|
|
32161
32334
|
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(iframe);
|
|
32162
32335
|
return false;
|
|
32163
32336
|
}
|
|
32337
|
+
/**
|
|
32338
|
+
* Collapse a value that holds only a single empty block (e.g.
|
|
32339
|
+
* `<p><br></p>` left after deleting all content) to an empty string —
|
|
32340
|
+
* opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
|
|
32341
|
+
*/ onAfterGetValueFromEditor(data) {
|
|
32342
|
+
if (!this.j.o.cleanHTML.collapseEmptyValueToEmptyString) {
|
|
32343
|
+
return;
|
|
32344
|
+
}
|
|
32345
|
+
if (/^<([a-z][a-z0-9]*)\b[^>]*>(?:<br\/?>)?<\/\1>$/i.test(data.value.trim())) {
|
|
32346
|
+
data.value = '';
|
|
32347
|
+
}
|
|
32348
|
+
}
|
|
32164
32349
|
onSafeHTML(sandBox) {
|
|
32165
32350
|
const sanitizer = this.j.o.cleanHTML.sanitizer;
|
|
32166
32351
|
if (sanitizer) {
|
|
@@ -32203,6 +32388,9 @@ __decorate([
|
|
|
32203
32388
|
__decorate([
|
|
32204
32389
|
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':beforeSetNativeEditorValue')
|
|
32205
32390
|
], cleanHtml.prototype, "onBeforeSetNativeEditorValue", null);
|
|
32391
|
+
__decorate([
|
|
32392
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':afterGetValueFromEditor')
|
|
32393
|
+
], cleanHtml.prototype, "onAfterGetValueFromEditor", null);
|
|
32206
32394
|
__decorate([
|
|
32207
32395
|
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':safeHTML')
|
|
32208
32396
|
], cleanHtml.prototype, "onSafeHTML", null);
|
|
@@ -32228,6 +32416,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
|
|
|
32228
32416
|
timeout: 300,
|
|
32229
32417
|
removeEmptyElements: true,
|
|
32230
32418
|
fillEmptyParagraph: true,
|
|
32419
|
+
collapseEmptyValueToEmptyString: false,
|
|
32231
32420
|
replaceNBSP: true,
|
|
32232
32421
|
replaceOldTags: {
|
|
32233
32422
|
i: 'em',
|
|
@@ -33231,26 +33420,35 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_0__.Icon.set('copy', _icons_copy_svg_j
|
|
|
33231
33420
|
group: 'color'
|
|
33232
33421
|
});
|
|
33233
33422
|
const callback = (command, second, third)=>{
|
|
33423
|
+
var _a;
|
|
33234
33424
|
const colorHEX = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.normalizeColor)(third);
|
|
33235
|
-
|
|
33236
|
-
|
|
33237
|
-
|
|
33238
|
-
|
|
33239
|
-
|
|
33240
|
-
|
|
33241
|
-
|
|
33242
|
-
|
|
33243
|
-
|
|
33244
|
-
|
|
33245
|
-
|
|
33425
|
+
const value = !colorHEX ? '' : colorHEX;
|
|
33426
|
+
const style = command === 'background' ? {
|
|
33427
|
+
backgroundColor: value
|
|
33428
|
+
} : {
|
|
33429
|
+
color: value
|
|
33430
|
+
};
|
|
33431
|
+
// Cells selected with the `select-cells` plugin drop or collapse the
|
|
33432
|
+
// native range, so `commitStyle` would paint a pending caret format
|
|
33433
|
+
// outside the table instead of the selection the user sees. Apply the
|
|
33434
|
+
// style to the content of every selected cell instead. See #1250
|
|
33435
|
+
const selectedCells = editor.getInstance('Table', editor.o).getAllSelectedCells();
|
|
33436
|
+
if (selectedCells.length && editor.s.isCollapsed()) {
|
|
33437
|
+
selectedCells.forEach((cell)=>{
|
|
33438
|
+
editor.s.select(cell, true);
|
|
33246
33439
|
editor.s.commitStyle({
|
|
33247
33440
|
attributes: {
|
|
33248
|
-
style
|
|
33249
|
-
color: !colorHEX ? '' : colorHEX
|
|
33250
|
-
}
|
|
33441
|
+
style
|
|
33251
33442
|
}
|
|
33252
33443
|
});
|
|
33253
|
-
|
|
33444
|
+
});
|
|
33445
|
+
(_a = editor.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
33446
|
+
} else {
|
|
33447
|
+
editor.s.commitStyle({
|
|
33448
|
+
attributes: {
|
|
33449
|
+
style
|
|
33450
|
+
}
|
|
33451
|
+
});
|
|
33254
33452
|
}
|
|
33255
33453
|
editor.synchronizeValues();
|
|
33256
33454
|
return false;
|
|
@@ -35224,6 +35422,25 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.font = {
|
|
|
35224
35422
|
return v.toLowerCase().replace(/['"]+/g, '').replace(/[^a-z0-9-]+/g, ',');
|
|
35225
35423
|
}
|
|
35226
35424
|
},
|
|
35425
|
+
// When no font is explicitly set, the computed font-family equals the
|
|
35426
|
+
// editor's own default (e.g. `-apple-system, …`). Return '' so the
|
|
35427
|
+
// button shows the `Default` list entry instead of that raw stack.
|
|
35428
|
+
// See #1370
|
|
35429
|
+
value: (editor)=>{
|
|
35430
|
+
const current = editor.s.current();
|
|
35431
|
+
if (!current) {
|
|
35432
|
+
return;
|
|
35433
|
+
}
|
|
35434
|
+
const box = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(current, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement, editor.editor);
|
|
35435
|
+
if (!box) {
|
|
35436
|
+
return;
|
|
35437
|
+
}
|
|
35438
|
+
const value = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(box, 'font-family').toString();
|
|
35439
|
+
if (value === (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(editor.editor, 'font-family').toString()) {
|
|
35440
|
+
return '';
|
|
35441
|
+
}
|
|
35442
|
+
return value;
|
|
35443
|
+
},
|
|
35227
35444
|
tooltip: 'Font family'
|
|
35228
35445
|
};
|
|
35229
35446
|
|
|
@@ -38584,10 +38801,30 @@ const align = {
|
|
|
38584
38801
|
this.j.async.setTimeout(()=>{
|
|
38585
38802
|
const sel = this.j.s.sel;
|
|
38586
38803
|
if (sel && !sel.isCollapsed) {
|
|
38587
|
-
this.showPopup(()=>this.
|
|
38804
|
+
this.showPopup(()=>this.__selectionBound(), 'selection');
|
|
38588
38805
|
}
|
|
38589
38806
|
}, 1);
|
|
38590
38807
|
}
|
|
38808
|
+
/**
|
|
38809
|
+
* The selection rect comes from the editor document — in iframe mode its
|
|
38810
|
+
* coordinates are iframe-local, while the popup lives in the host
|
|
38811
|
+
* document, so the iframe offset must be added. See
|
|
38812
|
+
* https://github.com/xdan/jodit/issues/1058
|
|
38813
|
+
*/ __selectionBound() {
|
|
38814
|
+
const rect = this.j.s.range.getBoundingClientRect();
|
|
38815
|
+
let { left, top } = rect;
|
|
38816
|
+
if (this.j.iframe) {
|
|
38817
|
+
const offset = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(this.j.iframe, this.j, true);
|
|
38818
|
+
left += offset.left;
|
|
38819
|
+
top += offset.top;
|
|
38820
|
+
}
|
|
38821
|
+
return {
|
|
38822
|
+
left,
|
|
38823
|
+
top,
|
|
38824
|
+
width: rect.width,
|
|
38825
|
+
height: rect.height
|
|
38826
|
+
};
|
|
38827
|
+
}
|
|
38591
38828
|
onSelectionStart() {
|
|
38592
38829
|
this.snapRange = this.j.s.range.cloneRange();
|
|
38593
38830
|
}
|
|
@@ -38619,7 +38856,7 @@ const align = {
|
|
|
38619
38856
|
if (!node) {
|
|
38620
38857
|
return;
|
|
38621
38858
|
}
|
|
38622
|
-
this.showPopup(()=>
|
|
38859
|
+
this.showPopup(()=>this.__selectionBound(), type);
|
|
38623
38860
|
}
|
|
38624
38861
|
/**
|
|
38625
38862
|
* In not collapsed selection - only one image
|
|
@@ -39265,6 +39502,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.link = {
|
|
|
39265
39502
|
noFollowCheckbox: true,
|
|
39266
39503
|
openInNewTabCheckbox: true,
|
|
39267
39504
|
openInNewTabCheckboxDefaultChecked: false,
|
|
39505
|
+
ariaLabelInput: false,
|
|
39268
39506
|
modeClassName: 'input',
|
|
39269
39507
|
selectMultipleClassName: true,
|
|
39270
39508
|
preventReadOnlyNavigation: true,
|
|
@@ -39434,7 +39672,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
|
|
|
39434
39672
|
const currentElement = current;
|
|
39435
39673
|
const isImageContent = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isImage(currentElement);
|
|
39436
39674
|
let { content_input } = elements;
|
|
39437
|
-
const { className_input } = elements, { className_select } = elements;
|
|
39675
|
+
const { className_input } = elements, { className_select } = elements, { aria_label_input } = elements;
|
|
39438
39676
|
if (!content_input) {
|
|
39439
39677
|
content_input = jodit.c.element('input', {
|
|
39440
39678
|
type: 'hidden',
|
|
@@ -39457,6 +39695,9 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
|
|
|
39457
39695
|
if (!isImageContent && current) {
|
|
39458
39696
|
content_input.value = getSelectionText();
|
|
39459
39697
|
}
|
|
39698
|
+
if (aria_label_input) {
|
|
39699
|
+
aria_label_input.value = link ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'aria-label') || '' : '';
|
|
39700
|
+
}
|
|
39460
39701
|
if (link) {
|
|
39461
39702
|
url_input.value = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'href') || '';
|
|
39462
39703
|
if (modeClassName) {
|
|
@@ -39544,6 +39785,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
|
|
|
39544
39785
|
}
|
|
39545
39786
|
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'rel', relParts.length ? relParts.join(' ') : null);
|
|
39546
39787
|
}
|
|
39788
|
+
if (aria_label_input) {
|
|
39789
|
+
const ariaLabel = aria_label_input.value.trim();
|
|
39790
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'aria-label', ariaLabel || null);
|
|
39791
|
+
}
|
|
39547
39792
|
jodit.e.fire('applyLink', jodit, a, form);
|
|
39548
39793
|
});
|
|
39549
39794
|
jodit.synchronizeValues();
|
|
@@ -39682,7 +39927,7 @@ function writeImage(a, content_input, textWasChanged, url_input) {
|
|
|
39682
39927
|
*/
|
|
39683
39928
|
|
|
39684
39929
|
const formTemplate = (editor)=>{
|
|
39685
|
-
const { openInNewTabCheckbox, noFollowCheckbox, modeClassName, selectSizeClassName, selectMultipleClassName, selectOptionsClassName } = editor.o.link;
|
|
39930
|
+
const { openInNewTabCheckbox, noFollowCheckbox, ariaLabelInput, modeClassName, selectSizeClassName, selectMultipleClassName, selectOptionsClassName } = editor.o.link;
|
|
39686
39931
|
return new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIForm(editor, [
|
|
39687
39932
|
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
|
|
39688
39933
|
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
|
|
@@ -39694,6 +39939,13 @@ const formTemplate = (editor)=>{
|
|
|
39694
39939
|
required: true
|
|
39695
39940
|
})
|
|
39696
39941
|
]),
|
|
39942
|
+
ariaLabelInput ? new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
|
|
39943
|
+
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
|
|
39944
|
+
name: 'ariaLabel',
|
|
39945
|
+
ref: 'aria_label_input',
|
|
39946
|
+
label: 'Aria label'
|
|
39947
|
+
})
|
|
39948
|
+
]) : null,
|
|
39697
39949
|
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
|
|
39698
39950
|
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
|
|
39699
39951
|
name: 'content',
|
|
@@ -40552,6 +40804,7 @@ const psKey = 'pasteStorage';
|
|
|
40552
40804
|
_config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
40553
40805
|
tooltip: 'Paste from clipboard',
|
|
40554
40806
|
async exec (editor, _, { control }) {
|
|
40807
|
+
var _a;
|
|
40555
40808
|
if (control.name === psKey) {
|
|
40556
40809
|
editor.execCommand('showPasteStorage');
|
|
40557
40810
|
return;
|
|
@@ -40562,7 +40815,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
40562
40815
|
try {
|
|
40563
40816
|
const items = await navigator.clipboard.read();
|
|
40564
40817
|
if (items && items.length) {
|
|
40565
|
-
const
|
|
40818
|
+
const item = items[0];
|
|
40819
|
+
// Prefer the HTML flavor so the button behaves like the
|
|
40820
|
+
// Ctrl+V shortcut (which receives text/html from the
|
|
40821
|
+
// native paste event). See
|
|
40822
|
+
// https://github.com/xdan/jodit/issues/1061
|
|
40823
|
+
const type = ((_a = item.types) === null || _a === void 0 ? void 0 : _a.includes(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_HTML)) ? _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_HTML : _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN;
|
|
40824
|
+
const textBlob = await item.getType(type);
|
|
40566
40825
|
text = await new Response(textBlob).text();
|
|
40567
40826
|
}
|
|
40568
40827
|
error = false;
|
|
@@ -43175,20 +43434,30 @@ let UISearch = class UISearch extends _core_ui_index_js__WEBPACK_IMPORTED_MODULE
|
|
|
43175
43434
|
return false;
|
|
43176
43435
|
}).on(this.queryInput, 'input', ()=>{
|
|
43177
43436
|
this.setMod('empty-query', !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.trim)(this.queryInput.value).length);
|
|
43178
|
-
}).on(this.queryInput, 'keydown',
|
|
43179
|
-
|
|
43180
|
-
|
|
43437
|
+
}).on(this.queryInput, 'keydown', (()=>{
|
|
43438
|
+
const debounced = this.j.async.debounce(async (e)=>{
|
|
43439
|
+
switch(e.key){
|
|
43440
|
+
case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER:
|
|
43441
|
+
if (await jodit.e.fire('searchNext')) {
|
|
43442
|
+
this.close();
|
|
43443
|
+
}
|
|
43444
|
+
break;
|
|
43445
|
+
default:
|
|
43446
|
+
jodit.e.fire(this, 'needUpdateCounters');
|
|
43447
|
+
break;
|
|
43448
|
+
}
|
|
43449
|
+
}, this.j.defaultTimeout);
|
|
43450
|
+
return (e)=>{
|
|
43451
|
+
// Must be canceled synchronously — inside the debounced
|
|
43452
|
+
// handler the browser has already submitted the parent
|
|
43453
|
+
// form. See https://github.com/xdan/jodit/issues/918
|
|
43454
|
+
if (e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER) {
|
|
43181
43455
|
e.preventDefault();
|
|
43182
43456
|
e.stopImmediatePropagation();
|
|
43183
|
-
|
|
43184
|
-
|
|
43185
|
-
|
|
43186
|
-
|
|
43187
|
-
default:
|
|
43188
|
-
jodit.e.fire(this, 'needUpdateCounters');
|
|
43189
|
-
break;
|
|
43190
|
-
}
|
|
43191
|
-
}, this.j.defaultTimeout));
|
|
43457
|
+
}
|
|
43458
|
+
debounced(e);
|
|
43459
|
+
};
|
|
43460
|
+
})());
|
|
43192
43461
|
}
|
|
43193
43462
|
};
|
|
43194
43463
|
__decorate([
|
|
@@ -43298,15 +43567,37 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
43298
43567
|
}
|
|
43299
43568
|
/**
|
|
43300
43569
|
* Mouse click inside the table
|
|
43301
|
-
*/ onStartSelection(cell) {
|
|
43570
|
+
*/ onStartSelection(cell, event) {
|
|
43571
|
+
var _a;
|
|
43302
43572
|
if (this.j.o.readonly) {
|
|
43303
43573
|
return;
|
|
43304
43574
|
}
|
|
43575
|
+
const table = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(cell, 'table', this.j.editor);
|
|
43576
|
+
// Ctrl/Cmd + click toggles a single cell into the existing selection
|
|
43577
|
+
// instead of resetting it — non-contiguous multi-cell selection.
|
|
43578
|
+
// See https://github.com/xdan/jodit/issues/1163
|
|
43579
|
+
if (((event === null || event === void 0 ? void 0 : event.ctrlKey) || (event === null || event === void 0 ? void 0 : event.metaKey)) && cell !== this.j.editor && table && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isCell(cell)) {
|
|
43580
|
+
if (this.__tableModule.getAllSelectedCells().includes(cell)) {
|
|
43581
|
+
this.__tableModule.removeSelection(cell);
|
|
43582
|
+
} else {
|
|
43583
|
+
if (!cell.firstChild) {
|
|
43584
|
+
cell.appendChild(this.j.createInside.element('br'));
|
|
43585
|
+
}
|
|
43586
|
+
this.__tableModule.addSelection(cell);
|
|
43587
|
+
}
|
|
43588
|
+
this.__selectedCell = cell;
|
|
43589
|
+
(_a = this.j.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
43590
|
+
if (this.__tableModule.getAllSelectedCells().length) {
|
|
43591
|
+
this.j.e.fire('showPopup', table, ()=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.position)(cell, this.j), 'cells');
|
|
43592
|
+
} else {
|
|
43593
|
+
this.j.e.fire('hidePopup', 'cells');
|
|
43594
|
+
}
|
|
43595
|
+
return false;
|
|
43596
|
+
}
|
|
43305
43597
|
this.unselectCells();
|
|
43306
43598
|
if (cell === this.j.editor) {
|
|
43307
43599
|
return;
|
|
43308
43600
|
}
|
|
43309
|
-
const table = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(cell, 'table', this.j.editor);
|
|
43310
43601
|
if (!cell || !table) {
|
|
43311
43602
|
return;
|
|
43312
43603
|
}
|
|
@@ -43335,14 +43626,16 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
43335
43626
|
/**
|
|
43336
43627
|
* Mouse move inside the table
|
|
43337
43628
|
*/ __onMove(table, e) {
|
|
43338
|
-
var _a;
|
|
43629
|
+
var _a, _b;
|
|
43339
43630
|
if (this.j.o.readonly && !this.j.isLocked) {
|
|
43340
43631
|
return;
|
|
43341
43632
|
}
|
|
43342
43633
|
if (this.j.isLockedNotBy(key)) {
|
|
43343
43634
|
return;
|
|
43344
43635
|
}
|
|
43345
|
-
|
|
43636
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
43637
|
+
// host, so the lookup must start from the shadow root
|
|
43638
|
+
const node = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.j.ed).elementFromPoint(e.clientX, e.clientY);
|
|
43346
43639
|
if (!node) {
|
|
43347
43640
|
return;
|
|
43348
43641
|
}
|
|
@@ -43368,7 +43661,7 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
43368
43661
|
}
|
|
43369
43662
|
const cellsCount = this.__tableModule.getAllSelectedCells().length;
|
|
43370
43663
|
if (cellsCount > 1) {
|
|
43371
|
-
(
|
|
43664
|
+
(_b = this.j.s.sel) === null || _b === void 0 ? void 0 : _b.removeAllRanges();
|
|
43372
43665
|
}
|
|
43373
43666
|
this.j.e.fire('hidePopup');
|
|
43374
43667
|
e.stopPropagation();
|
|
@@ -43398,13 +43691,15 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
43398
43691
|
/**
|
|
43399
43692
|
* Stop a selection process
|
|
43400
43693
|
*/ __onStopSelection(table, e) {
|
|
43401
|
-
var _a, _b;
|
|
43694
|
+
var _a, _b, _c;
|
|
43402
43695
|
if (!this.__selectedCell) {
|
|
43403
43696
|
return;
|
|
43404
43697
|
}
|
|
43405
43698
|
this.__isSelectionMode = false;
|
|
43406
43699
|
this.j.unlock();
|
|
43407
|
-
|
|
43700
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
43701
|
+
// host, so the lookup must start from the shadow root
|
|
43702
|
+
const node = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.j.ed).elementFromPoint(e.clientX, e.clientY);
|
|
43408
43703
|
if (!node) {
|
|
43409
43704
|
return;
|
|
43410
43705
|
}
|
|
@@ -43423,7 +43718,7 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
43423
43718
|
cell,
|
|
43424
43719
|
this.__selectedCell
|
|
43425
43720
|
]), box = this.__tableModule.formalMatrix(table);
|
|
43426
|
-
const max = (
|
|
43721
|
+
const max = (_b = box[bound[1][0]]) === null || _b === void 0 ? void 0 : _b[bound[1][1]], min = (_c = box[bound[0][0]]) === null || _c === void 0 ? void 0 : _c[bound[0][1]];
|
|
43427
43722
|
// `getSelectedBound` keeps its `Infinity` sentinel when none of the
|
|
43428
43723
|
// selected cells belong to this table's matrix — e.g. after a
|
|
43429
43724
|
// drag-and-drop that moved/removed the cells, leaving a stale anchor and
|
|
@@ -44081,7 +44376,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.sourceEditorNativeOptio
|
|
|
44081
44376
|
*/ highlightActiveLine: true
|
|
44082
44377
|
};
|
|
44083
44378
|
_config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.sourceEditorCDNUrlsJS = [
|
|
44084
|
-
'https://cdnjs.cloudflare.com/ajax/libs/ace/1.
|
|
44379
|
+
'https://cdnjs.cloudflare.com/ajax/libs/ace/1.43.3/ace.js'
|
|
44085
44380
|
];
|
|
44086
44381
|
_config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.beautifyHTMLCDNUrlsJS = [
|
|
44087
44382
|
'https://cdnjs.cloudflare.com/ajax/libs/js-beautify/1.14.4/beautify.min.js',
|
|
@@ -47788,10 +48083,9 @@ class JoditPro extends jodit_esm_index__WEBPACK_IMPORTED_MODULE_3__.Jodit {
|
|
|
47788
48083
|
|
|
47789
48084
|
/***/ }),
|
|
47790
48085
|
|
|
47791
|
-
/***/
|
|
48086
|
+
/***/ 49934:
|
|
47792
48087
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
47793
48088
|
|
|
47794
|
-
__webpack_require__.r(__webpack_exports__);
|
|
47795
48089
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
47796
48090
|
/* harmony export */ autocomplete: function() { return /* binding */ autocomplete; }
|
|
47797
48091
|
/* harmony export */ });
|
|
@@ -48343,7 +48637,7 @@ AutocompleteItem = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__de
|
|
|
48343
48637
|
/* harmony import */ var jodit_esm_plugins_all__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25187);
|
|
48344
48638
|
/* harmony import */ var jodit_pro_plugins_paste_from_word_paste_from_word__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58858);
|
|
48345
48639
|
/* harmony import */ var jodit_pro_plugins_license_license__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21246);
|
|
48346
|
-
/* harmony import */ var
|
|
48640
|
+
/* harmony import */ var jodit_pro_plugins_autocomplete_autocomplete_impl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49934);
|
|
48347
48641
|
/* harmony import */ var jodit_esm_plugins_speech_recognize_speech_recognize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3115);
|
|
48348
48642
|
/*!
|
|
48349
48643
|
* Jodit Editor PRO (https://xdsoft.net/jodit/)
|
|
@@ -48352,6 +48646,9 @@ AutocompleteItem = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__de
|
|
|
48352
48646
|
*/
|
|
48353
48647
|
|
|
48354
48648
|
|
|
48649
|
+
// `.impl` (not the standalone entry) — the entry additionally carries the
|
|
48650
|
+
// standalone stylesheet that must stay OUT of the main bundle so webpack
|
|
48651
|
+
// emits plugins/autocomplete/autocomplete.min.css. See #1308
|
|
48355
48652
|
|
|
48356
48653
|
|
|
48357
48654
|
|