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/es2015/jodit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit-pro - PRO Version of Jodit Editor
|
|
3
3
|
* Author: Chupurnov Valerii <chupurnov@gmail.com>
|
|
4
|
-
* Version: v4.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
|
*/
|
|
@@ -1696,6 +1696,14 @@ class ViewComponent extends _component_js__WEBPACK_IMPORTED_MODULE_0__.Component
|
|
|
1696
1696
|
* Attach component to View
|
|
1697
1697
|
*/ setParentView(jodit) {
|
|
1698
1698
|
this.jodit = jodit;
|
|
1699
|
+
// Inherit the owner window from the parent view — for an editor
|
|
1700
|
+
// created with a custom `ownerWindow` (e.g. inside an iframe) the
|
|
1701
|
+
// component default (the global `window`) is wrong: outside-click
|
|
1702
|
+
// handlers of dropdowns/popups listened to the wrong window. See
|
|
1703
|
+
// https://github.com/xdan/jodit/issues/965
|
|
1704
|
+
if (jodit.ow) {
|
|
1705
|
+
this.ownerWindow = jodit.ow;
|
|
1706
|
+
}
|
|
1699
1707
|
jodit.components.add(this);
|
|
1700
1708
|
return this;
|
|
1701
1709
|
}
|
|
@@ -1797,7 +1805,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1797
1805
|
* ```
|
|
1798
1806
|
* @packageDocumentation
|
|
1799
1807
|
* @module constants
|
|
1800
|
-
*/ const APP_VERSION = "4.12.
|
|
1808
|
+
*/ const APP_VERSION = "4.12.32";
|
|
1801
1809
|
// prettier-ignore
|
|
1802
1810
|
const ES = "es2015";
|
|
1803
1811
|
const IS_ES_MODERN = true;
|
|
@@ -5081,9 +5089,15 @@ function isFastEqual(a, b) {
|
|
|
5081
5089
|
*/ /**
|
|
5082
5090
|
* @module helpers/checker
|
|
5083
5091
|
*/ /**
|
|
5084
|
-
* Detect if string is HTML from MS Word or
|
|
5092
|
+
* Detect if string is HTML from MS Word, Excel or LibreOffice/OpenOffice
|
|
5085
5093
|
*/ function isHtmlFromWord(data) {
|
|
5086
|
-
return data.search(/<meta.*?Microsoft Excel\s[\d].*?>/) !== -1 || data.search(/<meta.*?Microsoft Word\s[\d].*?>/) !== -1 ||
|
|
5094
|
+
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
|
|
5095
|
+
// unquoted in the raw Word clipboard fragment
|
|
5096
|
+
data.search(/<meta[^>]*?ProgId[^>]*?(Word|Excel)\./i) !== -1 || // LibreOffice/OpenOffice Writer & Calc
|
|
5097
|
+
data.search(/<meta[^>]*?(LibreOffice|OpenOffice)/i) !== -1 || // Office namespaces on the root element of the clipboard fragment
|
|
5098
|
+
data.search(/urn:schemas-microsoft-com:office:(word|excel)/) !== -1 || // `class=MsoNormal` and friends (unquoted/quoted)
|
|
5099
|
+
data.search(/<\w[^>]*\sclass=("|')?Mso/) !== -1 || // the raw Word clipboard uses SINGLE quotes: style='mso-…'
|
|
5100
|
+
data.search(/style='[^']*mso-/) !== -1 || data.search(/style="[^"]*mso-/) !== -1 && data.search(/<font/) !== -1;
|
|
5087
5101
|
}
|
|
5088
5102
|
|
|
5089
5103
|
|
|
@@ -6125,6 +6139,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6125
6139
|
/* harmony export */ LimitedStack: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.LimitedStack; },
|
|
6126
6140
|
/* harmony export */ NUMBER_FIELDS_REG: function() { return /* reexport safe */ _normalize_index_js__WEBPACK_IMPORTED_MODULE_5__.NUMBER_FIELDS_REG; },
|
|
6127
6141
|
/* harmony export */ OptionsError: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.OptionsError; },
|
|
6142
|
+
/* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.UNSAFE_PROTO_KEYS; },
|
|
6128
6143
|
/* harmony export */ abort: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.abort; },
|
|
6129
6144
|
/* harmony export */ alignElement: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.alignElement; },
|
|
6130
6145
|
/* harmony export */ alreadyLoadedList: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.alreadyLoadedList; },
|
|
@@ -6197,6 +6212,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6197
6212
|
/* harmony export */ isString: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isString; },
|
|
6198
6213
|
/* harmony export */ isStringArray: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isStringArray; },
|
|
6199
6214
|
/* harmony export */ isURL: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isURL; },
|
|
6215
|
+
/* harmony export */ isUnsafeProtoKey: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.isUnsafeProtoKey; },
|
|
6200
6216
|
/* harmony export */ isValidName: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isValidName; },
|
|
6201
6217
|
/* harmony export */ isViewObject: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isViewObject; },
|
|
6202
6218
|
/* harmony export */ isVoid: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isVoid; },
|
|
@@ -7603,7 +7619,8 @@ const completeUrl = (url)=>{
|
|
|
7603
7619
|
/* harmony import */ var _checker_is_void_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86068);
|
|
7604
7620
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6441);
|
|
7605
7621
|
/* harmony import */ var _extend_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97735);
|
|
7606
|
-
/* harmony import */ var
|
|
7622
|
+
/* harmony import */ var _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(69175);
|
|
7623
|
+
/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(37790);
|
|
7607
7624
|
/*!
|
|
7608
7625
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
7609
7626
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -7615,18 +7632,7 @@ const completeUrl = (url)=>{
|
|
|
7615
7632
|
|
|
7616
7633
|
|
|
7617
7634
|
|
|
7618
|
-
|
|
7619
|
-
* Keys that must never be copied from a (potentially untrusted) config object —
|
|
7620
|
-
* assigning them during a recursive merge can reach and mutate
|
|
7621
|
-
* `Object.prototype` (prototype pollution, CWE-1321).
|
|
7622
|
-
*/ const UNSAFE_PROTO_KEYS = [
|
|
7623
|
-
'__proto__',
|
|
7624
|
-
'constructor',
|
|
7625
|
-
'prototype'
|
|
7626
|
-
];
|
|
7627
|
-
function isUnsafeProtoKey(key) {
|
|
7628
|
-
return UNSAFE_PROTO_KEYS.indexOf(key) !== -1;
|
|
7629
|
-
}
|
|
7635
|
+
|
|
7630
7636
|
/**
|
|
7631
7637
|
* @example
|
|
7632
7638
|
* ```js
|
|
@@ -7675,7 +7681,7 @@ function isUnsafeProtoKey(key) {
|
|
|
7675
7681
|
}
|
|
7676
7682
|
const newOpt = {};
|
|
7677
7683
|
Object.keys(options).forEach((key)=>{
|
|
7678
|
-
if (isUnsafeProtoKey(key)) {
|
|
7684
|
+
if ((0,_is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_6__.isUnsafeProtoKey)(key)) {
|
|
7679
7685
|
return;
|
|
7680
7686
|
}
|
|
7681
7687
|
const opt = options[key], protoKey = proto ? proto[key] : null;
|
|
@@ -7697,7 +7703,7 @@ function isUnsafeProtoKey(key) {
|
|
|
7697
7703
|
return newOpt;
|
|
7698
7704
|
}
|
|
7699
7705
|
function ConfigFlatten(obj) {
|
|
7700
|
-
return (0,
|
|
7706
|
+
return (0,_utils_js__WEBPACK_IMPORTED_MODULE_7__.keys)(obj, false).reduce((app, key)=>{
|
|
7701
7707
|
app[key] = obj[key];
|
|
7702
7708
|
return app;
|
|
7703
7709
|
}, {});
|
|
@@ -7739,7 +7745,7 @@ function ConfigFlatten(obj) {
|
|
|
7739
7745
|
* @see {@link ConfigProto} for the prototype-chain variant used at editor creation time
|
|
7740
7746
|
*/ function ConfigMerge(target, source) {
|
|
7741
7747
|
Object.keys(source).forEach((key)=>{
|
|
7742
|
-
if (isUnsafeProtoKey(key)) {
|
|
7748
|
+
if ((0,_is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_6__.isUnsafeProtoKey)(key)) {
|
|
7743
7749
|
return;
|
|
7744
7750
|
}
|
|
7745
7751
|
const srcVal = source[key];
|
|
@@ -7752,7 +7758,7 @@ function ConfigFlatten(obj) {
|
|
|
7752
7758
|
});
|
|
7753
7759
|
}
|
|
7754
7760
|
function ConfigDeepFlatten(obj) {
|
|
7755
|
-
return (0,
|
|
7761
|
+
return (0,_utils_js__WEBPACK_IMPORTED_MODULE_7__.keys)(obj, false).reduce((app, key)=>{
|
|
7756
7762
|
app[key] = (0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(obj[key]) ? ConfigDeepFlatten(obj[key]) : obj[key];
|
|
7757
7763
|
return app;
|
|
7758
7764
|
}, {});
|
|
@@ -8325,14 +8331,15 @@ const getClassName = (obj)=>{
|
|
|
8325
8331
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
8326
8332
|
|
|
8327
8333
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8328
|
-
/* harmony export */ $$: function() { return /* reexport safe */
|
|
8334
|
+
/* harmony export */ $$: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.$$; },
|
|
8329
8335
|
/* harmony export */ ConfigDeepFlatten: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigDeepFlatten; },
|
|
8330
8336
|
/* harmony export */ ConfigFlatten: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigFlatten; },
|
|
8331
8337
|
/* harmony export */ ConfigMerge: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigMerge; },
|
|
8332
8338
|
/* harmony export */ ConfigProto: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigProto; },
|
|
8333
8339
|
/* harmony export */ ConnectionError: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.ConnectionError; },
|
|
8334
|
-
/* harmony export */ LimitedStack: function() { return /* reexport safe */
|
|
8340
|
+
/* harmony export */ LimitedStack: function() { return /* reexport safe */ _stack_js__WEBPACK_IMPORTED_MODULE_26__.LimitedStack; },
|
|
8335
8341
|
/* harmony export */ OptionsError: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.OptionsError; },
|
|
8342
|
+
/* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* reexport safe */ _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__.UNSAFE_PROTO_KEYS; },
|
|
8336
8343
|
/* harmony export */ abort: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.abort; },
|
|
8337
8344
|
/* harmony export */ alignElement: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.alignElement; },
|
|
8338
8345
|
/* harmony export */ alreadyLoadedList: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.alreadyLoadedList; },
|
|
@@ -8342,17 +8349,17 @@ const getClassName = (obj)=>{
|
|
|
8342
8349
|
/* harmony export */ attr: function() { return /* reexport safe */ _attr_js__WEBPACK_IMPORTED_MODULE_3__.attr; },
|
|
8343
8350
|
/* harmony export */ browser: function() { return /* reexport safe */ _browser_js__WEBPACK_IMPORTED_MODULE_4__.browser; },
|
|
8344
8351
|
/* harmony export */ buildQuery: function() { return /* reexport safe */ _build_query_js__WEBPACK_IMPORTED_MODULE_5__.buildQuery; },
|
|
8345
|
-
/* harmony export */ call: function() { return /* reexport safe */
|
|
8346
|
-
/* harmony export */ callPromise: function() { return /* reexport safe */
|
|
8347
|
-
/* harmony export */ callThis: function() { return /* reexport safe */
|
|
8352
|
+
/* harmony export */ call: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.call; },
|
|
8353
|
+
/* harmony export */ callPromise: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.callPromise; },
|
|
8354
|
+
/* harmony export */ callThis: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.callThis; },
|
|
8348
8355
|
/* harmony export */ clearAlign: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.clearAlign; },
|
|
8349
8356
|
/* harmony export */ clearCenterAlign: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.clearCenterAlign; },
|
|
8350
|
-
/* harmony export */ cns: function() { return /* reexport safe */
|
|
8357
|
+
/* harmony export */ cns: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__.cns; },
|
|
8351
8358
|
/* harmony export */ completeUrl: function() { return /* reexport safe */ _complete_url_js__WEBPACK_IMPORTED_MODULE_6__.completeUrl; },
|
|
8352
8359
|
/* harmony export */ connection: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.connection; },
|
|
8353
8360
|
/* harmony export */ convertMediaUrlToVideoEmbed: function() { return /* reexport safe */ _convert_media_url_to_video_embed_js__WEBPACK_IMPORTED_MODULE_8__.convertMediaUrlToVideoEmbed; },
|
|
8354
8361
|
/* harmony export */ css: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.css; },
|
|
8355
|
-
/* harmony export */ cssPath: function() { return /* reexport safe */
|
|
8362
|
+
/* harmony export */ cssPath: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.cssPath; },
|
|
8356
8363
|
/* harmony export */ ctrlKey: function() { return /* reexport safe */ _ctrl_key_js__WEBPACK_IMPORTED_MODULE_10__.ctrlKey; },
|
|
8357
8364
|
/* harmony export */ dataBind: function() { return /* reexport safe */ _data_bind_js__WEBPACK_IMPORTED_MODULE_11__.dataBind; },
|
|
8358
8365
|
/* harmony export */ defaultLanguage: function() { return /* reexport safe */ _default_language_js__WEBPACK_IMPORTED_MODULE_12__.defaultLanguage; },
|
|
@@ -8360,30 +8367,31 @@ const getClassName = (obj)=>{
|
|
|
8360
8367
|
/* harmony export */ fastClone: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.fastClone; },
|
|
8361
8368
|
/* harmony export */ get: function() { return /* reexport safe */ _get_js__WEBPACK_IMPORTED_MODULE_15__.get; },
|
|
8362
8369
|
/* harmony export */ getClassName: function() { return /* reexport safe */ _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__.getClassName; },
|
|
8363
|
-
/* harmony export */ getDataTransfer: function() { return /* reexport safe */
|
|
8364
|
-
/* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */
|
|
8365
|
-
/* harmony export */ getXPathByElement: function() { return /* reexport safe */
|
|
8370
|
+
/* harmony export */ getDataTransfer: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.getDataTransfer; },
|
|
8371
|
+
/* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.getPropertyDescriptor; },
|
|
8372
|
+
/* harmony export */ getXPathByElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.getXPathByElement; },
|
|
8366
8373
|
/* harmony export */ hAlignElement: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.hAlignElement; },
|
|
8367
8374
|
/* harmony export */ humanSizeToBytes: function() { return /* reexport safe */ _human_size_to_bytes_js__WEBPACK_IMPORTED_MODULE_17__.humanSizeToBytes; },
|
|
8368
|
-
/* harmony export */ inView: function() { return /* reexport safe */
|
|
8375
|
+
/* harmony export */ inView: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_23__.inView; },
|
|
8369
8376
|
/* harmony export */ isAtom: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.isAtom; },
|
|
8377
|
+
/* harmony export */ isUnsafeProtoKey: function() { return /* reexport safe */ _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__.isUnsafeProtoKey; },
|
|
8370
8378
|
/* harmony export */ keepNames: function() { return /* reexport safe */ _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__.keepNames; },
|
|
8371
|
-
/* harmony export */ keys: function() { return /* reexport safe */
|
|
8372
|
-
/* harmony export */ loadImage: function() { return /* reexport safe */
|
|
8379
|
+
/* harmony export */ keys: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.keys; },
|
|
8380
|
+
/* harmony export */ loadImage: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.loadImage; },
|
|
8373
8381
|
/* harmony export */ loadNext: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.loadNext; },
|
|
8374
8382
|
/* harmony export */ loadNextStyle: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.loadNextStyle; },
|
|
8375
8383
|
/* harmony export */ markAsAtomic: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.markAsAtomic; },
|
|
8376
|
-
/* harmony export */ markDeprecated: function() { return /* reexport safe */
|
|
8377
|
-
/* harmony export */ markOwner: function() { return /* reexport safe */
|
|
8378
|
-
/* harmony export */ memorizeExec: function() { return /* reexport safe */
|
|
8384
|
+
/* harmony export */ markDeprecated: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__.markDeprecated; },
|
|
8385
|
+
/* harmony export */ markOwner: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.markOwner; },
|
|
8386
|
+
/* harmony export */ memorizeExec: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.memorizeExec; },
|
|
8379
8387
|
/* harmony export */ options: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.options; },
|
|
8380
|
-
/* harmony export */ parseQuery: function() { return /* reexport safe */
|
|
8381
|
-
/* harmony export */ previewBox: function() { return /* reexport safe */
|
|
8382
|
-
/* harmony export */ refs: function() { return /* reexport safe */
|
|
8383
|
-
/* harmony export */ reset: function() { return /* reexport safe */
|
|
8384
|
-
/* harmony export */ resolveElement: function() { return /* reexport safe */
|
|
8385
|
-
/* harmony export */ scrollIntoViewIfNeeded: function() { return /* reexport safe */
|
|
8386
|
-
/* harmony export */ set: function() { return /* reexport safe */
|
|
8388
|
+
/* harmony export */ parseQuery: function() { return /* reexport safe */ _parse_query_js__WEBPACK_IMPORTED_MODULE_20__.parseQuery; },
|
|
8389
|
+
/* harmony export */ previewBox: function() { return /* reexport safe */ _print_js__WEBPACK_IMPORTED_MODULE_21__.previewBox; },
|
|
8390
|
+
/* harmony export */ refs: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.refs; },
|
|
8391
|
+
/* harmony export */ reset: function() { return /* reexport safe */ _reset_js__WEBPACK_IMPORTED_MODULE_22__.reset; },
|
|
8392
|
+
/* harmony export */ resolveElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.resolveElement; },
|
|
8393
|
+
/* harmony export */ scrollIntoViewIfNeeded: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_23__.scrollIntoViewIfNeeded; },
|
|
8394
|
+
/* harmony export */ set: function() { return /* reexport safe */ _set_js__WEBPACK_IMPORTED_MODULE_25__.set; }
|
|
8387
8395
|
/* harmony export */ });
|
|
8388
8396
|
/* harmony import */ var _align_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25726);
|
|
8389
8397
|
/* harmony import */ var _append_script_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63799);
|
|
@@ -8403,15 +8411,16 @@ const getClassName = (obj)=>{
|
|
|
8403
8411
|
/* harmony import */ var _get_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(94643);
|
|
8404
8412
|
/* harmony import */ var _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(80568);
|
|
8405
8413
|
/* harmony import */ var _human_size_to_bytes_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(38420);
|
|
8406
|
-
/* harmony import */ var
|
|
8407
|
-
/* harmony import */ var
|
|
8408
|
-
/* harmony import */ var
|
|
8409
|
-
/* harmony import */ var
|
|
8410
|
-
/* harmony import */ var
|
|
8411
|
-
/* harmony import */ var
|
|
8412
|
-
/* harmony import */ var
|
|
8413
|
-
/* harmony import */ var
|
|
8414
|
-
/* harmony import */ var
|
|
8414
|
+
/* harmony import */ var _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(69175);
|
|
8415
|
+
/* harmony import */ var _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95942);
|
|
8416
|
+
/* harmony import */ var _parse_query_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(82501);
|
|
8417
|
+
/* harmony import */ var _print_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(11628);
|
|
8418
|
+
/* harmony import */ var _reset_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(58844);
|
|
8419
|
+
/* harmony import */ var _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(26395);
|
|
8420
|
+
/* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(76078);
|
|
8421
|
+
/* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(3703);
|
|
8422
|
+
/* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(50535);
|
|
8423
|
+
/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(37790);
|
|
8415
8424
|
/*!
|
|
8416
8425
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
8417
8426
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -8445,6 +8454,38 @@ const getClassName = (obj)=>{
|
|
|
8445
8454
|
|
|
8446
8455
|
|
|
8447
8456
|
|
|
8457
|
+
|
|
8458
|
+
|
|
8459
|
+
|
|
8460
|
+
/***/ }),
|
|
8461
|
+
|
|
8462
|
+
/***/ 69175:
|
|
8463
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
8464
|
+
|
|
8465
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8466
|
+
/* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* binding */ UNSAFE_PROTO_KEYS; },
|
|
8467
|
+
/* harmony export */ isUnsafeProtoKey: function() { return /* binding */ isUnsafeProtoKey; }
|
|
8468
|
+
/* harmony export */ });
|
|
8469
|
+
/*!
|
|
8470
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
8471
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
8472
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
8473
|
+
*/ /**
|
|
8474
|
+
* @module helpers/utils
|
|
8475
|
+
*/ /**
|
|
8476
|
+
* Keys that must never be written from a (potentially untrusted) source —
|
|
8477
|
+
* assigning them while walking/merging an object can reach and mutate
|
|
8478
|
+
* `Object.prototype` (prototype pollution, CWE-1321).
|
|
8479
|
+
*/ const UNSAFE_PROTO_KEYS = [
|
|
8480
|
+
'__proto__',
|
|
8481
|
+
'constructor',
|
|
8482
|
+
'prototype'
|
|
8483
|
+
];
|
|
8484
|
+
/**
|
|
8485
|
+
* Check whether a key can be used to pollute the prototype chain.
|
|
8486
|
+
*/ function isUnsafeProtoKey(key) {
|
|
8487
|
+
return UNSAFE_PROTO_KEYS.indexOf(key) !== -1;
|
|
8488
|
+
}
|
|
8448
8489
|
|
|
8449
8490
|
|
|
8450
8491
|
/***/ }),
|
|
@@ -8917,6 +8958,7 @@ const $$temp = ()=>{
|
|
|
8917
8958
|
/* harmony import */ var _checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29807);
|
|
8918
8959
|
/* harmony import */ var _checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72430);
|
|
8919
8960
|
/* harmony import */ var _checker_is_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70799);
|
|
8961
|
+
/* harmony import */ var _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69175);
|
|
8920
8962
|
/*!
|
|
8921
8963
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
8922
8964
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -8925,6 +8967,7 @@ const $$temp = ()=>{
|
|
|
8925
8967
|
|
|
8926
8968
|
|
|
8927
8969
|
|
|
8970
|
+
|
|
8928
8971
|
/**
|
|
8929
8972
|
* Safe access in tree object
|
|
8930
8973
|
*
|
|
@@ -8942,6 +8985,9 @@ const $$temp = ()=>{
|
|
|
8942
8985
|
return;
|
|
8943
8986
|
}
|
|
8944
8987
|
const parts = chain.split('.');
|
|
8988
|
+
if (parts.some(_is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_4__.isUnsafeProtoKey)) {
|
|
8989
|
+
return;
|
|
8990
|
+
}
|
|
8945
8991
|
let result = obj, key = parts[0];
|
|
8946
8992
|
for(let i = 0; i < parts.length - 1; i += 1){
|
|
8947
8993
|
key = parts[i];
|
|
@@ -12302,8 +12348,9 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12302
12348
|
/* harmony export */ });
|
|
12303
12349
|
/* harmony import */ var _dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
|
|
12304
12350
|
/* harmony import */ var _helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29960);
|
|
12305
|
-
/* harmony import */ var
|
|
12306
|
-
/* harmony import */ var
|
|
12351
|
+
/* harmony import */ var _helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41180);
|
|
12352
|
+
/* harmony import */ var _list_wrap_list_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(82515);
|
|
12353
|
+
/* harmony import */ var _wrap_unwrapped_text_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6980);
|
|
12307
12354
|
/*!
|
|
12308
12355
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
12309
12356
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -12312,12 +12359,29 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12312
12359
|
|
|
12313
12360
|
|
|
12314
12361
|
|
|
12362
|
+
|
|
12315
12363
|
/**
|
|
12316
12364
|
* Replaces the parent tag with the applicable one, or wraps the text and also replaces the tag
|
|
12317
12365
|
* @private
|
|
12318
12366
|
*/ function wrap(commitStyle, font, jodit) {
|
|
12319
12367
|
const wrapper = findOrCreateWrapper(commitStyle, font, jodit);
|
|
12320
|
-
|
|
12368
|
+
if (commitStyle.elementIsList) {
|
|
12369
|
+
return (0,_list_wrap_list_js__WEBPACK_IMPORTED_MODULE_3__.wrapList)(commitStyle, wrapper, jodit);
|
|
12370
|
+
}
|
|
12371
|
+
const newWrapper = _dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.replace(wrapper, commitStyle.element, jodit.createInside, true);
|
|
12372
|
+
if (commitStyle.elementIsBlock) {
|
|
12373
|
+
// Inline font styles left over from pasted content visually override
|
|
12374
|
+
// the new block format — e.g. an h2 with `font-weight: normal;
|
|
12375
|
+
// font-size: 24px` does not look like a heading at all, so the
|
|
12376
|
+
// command seems to do nothing. See
|
|
12377
|
+
// https://github.com/xdan/jodit/issues/1063
|
|
12378
|
+
(0,_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(newWrapper, 'fontSize', null);
|
|
12379
|
+
(0,_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(newWrapper, 'fontWeight', null);
|
|
12380
|
+
if (!(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(newWrapper, 'style')) {
|
|
12381
|
+
(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(newWrapper, 'style', null);
|
|
12382
|
+
}
|
|
12383
|
+
}
|
|
12384
|
+
return newWrapper;
|
|
12321
12385
|
}
|
|
12322
12386
|
const WRAP_NODES = new Set([
|
|
12323
12387
|
'td',
|
|
@@ -12338,7 +12402,7 @@ const WRAP_NODES = new Set([
|
|
|
12338
12402
|
if (box) {
|
|
12339
12403
|
return box;
|
|
12340
12404
|
}
|
|
12341
|
-
return (0,
|
|
12405
|
+
return (0,_wrap_unwrapped_text_js__WEBPACK_IMPORTED_MODULE_4__.wrapUnwrappedText)(commitStyle, font, jodit);
|
|
12342
12406
|
}
|
|
12343
12407
|
(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(font, 'size', null);
|
|
12344
12408
|
return font;
|
|
@@ -16332,8 +16396,11 @@ class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_7__.UIGroup {
|
|
|
16332
16396
|
/**
|
|
16333
16397
|
* Calculate static bound for point
|
|
16334
16398
|
*/ getKeepBound(getBound) {
|
|
16399
|
+
var _a;
|
|
16335
16400
|
const oldBound = getBound();
|
|
16336
|
-
|
|
16401
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
16402
|
+
// host, so the lookup must start from the shadow root
|
|
16403
|
+
const elmUnderCursor = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.od).elementFromPoint(oldBound.left, oldBound.top);
|
|
16337
16404
|
if (!elmUnderCursor) {
|
|
16338
16405
|
return getBound;
|
|
16339
16406
|
}
|
|
@@ -18118,6 +18185,17 @@ let Jodit = Jodit_1 = class Jodit extends _modules_index_js__WEBPACK_IMPORTED_MO
|
|
|
18118
18185
|
const init = ()=>{
|
|
18119
18186
|
if (opt.enableDragAndDropFileToEditor && opt.uploader && (opt.uploader.url || opt.uploader.insertImageAsBase64URI)) {
|
|
18120
18187
|
this.uploader.bind(this.editor);
|
|
18188
|
+
} else if (!opt.enableDragAndDropFileToEditor) {
|
|
18189
|
+
// Without a bound uploader nobody cancels a file drop, and
|
|
18190
|
+
// Firefox inserts the dropped image natively — the option
|
|
18191
|
+
// must mean "do nothing". See
|
|
18192
|
+
// https://github.com/xdan/jodit/issues/1077
|
|
18193
|
+
this.e.on(editor, 'drop', (e)=>{
|
|
18194
|
+
var _a, _b;
|
|
18195
|
+
if ((_b = (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b.length) {
|
|
18196
|
+
e.preventDefault();
|
|
18197
|
+
}
|
|
18198
|
+
});
|
|
18121
18199
|
}
|
|
18122
18200
|
// in initEditor - the editor could change
|
|
18123
18201
|
if (!this.__elementToPlace.get(this.editor)) {
|
|
@@ -27719,12 +27797,17 @@ const TABS = {
|
|
|
27719
27797
|
self.j.alert('The name should not be empty');
|
|
27720
27798
|
return false;
|
|
27721
27799
|
}
|
|
27800
|
+
self.j.e.fire('afterImageEditorSave', data, name);
|
|
27722
27801
|
self.onSave(name, data, self.hide, (e)=>{
|
|
27723
27802
|
self.j.alert(e.message);
|
|
27724
27803
|
});
|
|
27725
27804
|
});
|
|
27726
27805
|
break;
|
|
27727
27806
|
case self.buttons.save:
|
|
27807
|
+
// Notify listeners that a crop/resize was applied,
|
|
27808
|
+
// passing the action box (action + box dimensions).
|
|
27809
|
+
// See https://github.com/xdan/jodit/issues/820
|
|
27810
|
+
self.j.e.fire('afterImageEditorSave', data);
|
|
27728
27811
|
self.onSave(undefined, data, self.hide, (e)=>{
|
|
27729
27812
|
self.j.alert(e.message);
|
|
27730
27813
|
});
|
|
@@ -29535,13 +29618,35 @@ let ToolbarContent = class ToolbarContent extends _core_ui_button_index_js__WEBP
|
|
|
29535
29618
|
return 'ToolbarContent';
|
|
29536
29619
|
}
|
|
29537
29620
|
/** @override */ update() {
|
|
29538
|
-
|
|
29621
|
+
var _a, _b, _c;
|
|
29622
|
+
const { control } = this;
|
|
29623
|
+
const content = control.getContent(this.j, this);
|
|
29539
29624
|
if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(content) || content.parentNode !== this.container) {
|
|
29540
29625
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.detach(this.container);
|
|
29541
29626
|
this.container.appendChild((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(content) ? this.j.create.fromHTML(content) : content);
|
|
29542
29627
|
}
|
|
29628
|
+
// Content controls never went through the ToolbarButton status
|
|
29629
|
+
// calculation, so `isDisabled`/`isActive`/`update` declared on the
|
|
29630
|
+
// control were silently ignored (e.g. the FileBrowser Upload button
|
|
29631
|
+
// ignored the backend permissions). See
|
|
29632
|
+
// https://github.com/xdan/jodit/issues/1094
|
|
29633
|
+
this.state.disabled = Boolean((_a = control.isDisabled) === null || _a === void 0 ? void 0 : _a.call(control, this.j, this));
|
|
29634
|
+
this.state.activated = Boolean((_b = control.isActive) === null || _b === void 0 ? void 0 : _b.call(control, this.j, this));
|
|
29635
|
+
(_c = control.update) === null || _c === void 0 ? void 0 : _c.call(control, this.j, this);
|
|
29636
|
+
// The first update() runs before the state watchers are attached, so
|
|
29637
|
+
// apply the calculated state explicitly (the calls are idempotent)
|
|
29638
|
+
this.onChangeDisabled();
|
|
29639
|
+
this.onChangeActivated();
|
|
29543
29640
|
super.update();
|
|
29544
29641
|
}
|
|
29642
|
+
/**
|
|
29643
|
+
* The content is arbitrary HTML — propagate the disabled state to the
|
|
29644
|
+
* nested form controls (e.g. the file input of the Upload button),
|
|
29645
|
+
* otherwise they stay interactive.
|
|
29646
|
+
*/ onChangeDisabled() {
|
|
29647
|
+
super.onChangeDisabled();
|
|
29648
|
+
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));
|
|
29649
|
+
}
|
|
29545
29650
|
/** @override */ createContainer() {
|
|
29546
29651
|
return this.j.c.span(this.componentName);
|
|
29547
29652
|
}
|
|
@@ -30243,6 +30348,15 @@ function processOldBrowserDrag(self, cData, handlerSuccess, handlerError, onFina
|
|
|
30243
30348
|
if (!fileList.length) {
|
|
30244
30349
|
return Promise.reject((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.error)('Need files'));
|
|
30245
30350
|
}
|
|
30351
|
+
// Client-side validation hook — returning `false` aborts the upload.
|
|
30352
|
+
// See https://github.com/xdan/jodit/issues/1329
|
|
30353
|
+
if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.isFunction)(o.beforeUpload)) {
|
|
30354
|
+
if (o.beforeUpload.call(uploader, fileList) === false) {
|
|
30355
|
+
const err = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.error)('Upload canceled');
|
|
30356
|
+
(handlerError || o.defaultHandlerError).call(uploader, err);
|
|
30357
|
+
return Promise.reject(err);
|
|
30358
|
+
}
|
|
30359
|
+
}
|
|
30246
30360
|
const promises = [];
|
|
30247
30361
|
if (o.insertImageAsBase64URI) {
|
|
30248
30362
|
readImagesWithReader(fileList, o.imagesExtensions, promises, uploader, handlerSuccess, o.defaultHandlerSuccess);
|
|
@@ -31155,8 +31269,11 @@ const ns = 'addnewline';
|
|
|
31155
31269
|
}
|
|
31156
31270
|
}
|
|
31157
31271
|
__onMouseMove(e) {
|
|
31272
|
+
var _a;
|
|
31158
31273
|
const editor = this.j;
|
|
31159
|
-
|
|
31274
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
31275
|
+
// host, so the lookup must start from the shadow root
|
|
31276
|
+
let currentElement = ((_a = editor.o.shadowRoot) !== null && _a !== void 0 ? _a : editor.ed).elementFromPoint(e.clientX, e.clientY);
|
|
31160
31277
|
if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isOrContains(editor.editor, currentElement)) {
|
|
31161
31278
|
return;
|
|
31162
31279
|
}
|
|
@@ -31384,7 +31501,13 @@ function _async_to_generator(fn) {
|
|
|
31384
31501
|
return new _ui_ui_ai_assistant_js__WEBPACK_IMPORTED_MODULE_6__.UiAiAssistant(jodit, {
|
|
31385
31502
|
onInsertAfter (html) {
|
|
31386
31503
|
jodit.s.focus();
|
|
31387
|
-
|
|
31504
|
+
// `current()` returns a node of the selection START, so with
|
|
31505
|
+
// several selected paragraphs the result landed after the
|
|
31506
|
+
// first one — collapse the range to the END of the selection
|
|
31507
|
+
// instead. See https://github.com/xdan/jodit/issues/1263
|
|
31508
|
+
const range = jodit.s.range;
|
|
31509
|
+
range.collapse(false);
|
|
31510
|
+
jodit.s.selectRange(range);
|
|
31388
31511
|
jodit.s.insertHTML(html);
|
|
31389
31512
|
__dialog.close();
|
|
31390
31513
|
},
|
|
@@ -32064,10 +32187,14 @@ class backspace extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugi
|
|
|
32064
32187
|
return false;
|
|
32065
32188
|
}
|
|
32066
32189
|
(0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_5__.moveNodeInsideStart)(jodit, fakeNode, backspace);
|
|
32067
|
-
|
|
32190
|
+
const disabled = jodit.o.delete.disableCases;
|
|
32191
|
+
if (_cases_index_js__WEBPACK_IMPORTED_MODULE_8__.casesMap.some(([key, func])=>{
|
|
32192
|
+
if (disabled && disabled.has(key)) {
|
|
32193
|
+
return;
|
|
32194
|
+
}
|
|
32068
32195
|
if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_3__.isFunction)(func) && func(jodit, fakeNode, backspace, mode)) {
|
|
32069
32196
|
if (!_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD) {
|
|
32070
|
-
console.info('Remove case:',
|
|
32197
|
+
console.info('Remove case:', key);
|
|
32071
32198
|
}
|
|
32072
32199
|
return true;
|
|
32073
32200
|
}
|
|
@@ -32154,13 +32281,26 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
32154
32281
|
jodit.s.setCursorBefore(fakeNode);
|
|
32155
32282
|
return true;
|
|
32156
32283
|
}
|
|
32157
|
-
if (sibling && (checkMoveListContent(jodit, mainClosestBox, sibling, backspace) || moveContentAndRemoveEmpty(jodit, mainClosestBox, sibling, backspace))) {
|
|
32284
|
+
if (sibling && (checkMoveListContent(jodit, mainClosestBox, sibling, backspace) || moveContentAndRemoveEmpty(jodit, mainClosestBox, resolveTableSibling(sibling, backspace), backspace))) {
|
|
32158
32285
|
jodit.s.setCursorBefore(fakeNode);
|
|
32159
32286
|
return true;
|
|
32160
32287
|
}
|
|
32161
32288
|
}
|
|
32162
32289
|
return false;
|
|
32163
32290
|
}
|
|
32291
|
+
/**
|
|
32292
|
+
* Content cannot be merged into the `<table>` element itself — it would land
|
|
32293
|
+
* between the table sections (after `</tbody>`), which is invalid HTML and
|
|
32294
|
+
* gets foster-parented out of the table on the next parse. Merge into the
|
|
32295
|
+
* edge cell instead. See https://github.com/xdan/jodit/issues/1064
|
|
32296
|
+
* @private
|
|
32297
|
+
*/ function resolveTableSibling(sibling, backspace) {
|
|
32298
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, 'table')) {
|
|
32299
|
+
return sibling;
|
|
32300
|
+
}
|
|
32301
|
+
const cells = sibling.querySelectorAll('td,th');
|
|
32302
|
+
return cells.length ? cells[backspace ? cells.length - 1 : 0] : null;
|
|
32303
|
+
}
|
|
32164
32304
|
function checkMoveListContent(jodit, mainClosestBox, sibling, backspace) {
|
|
32165
32305
|
// Process UL/LI/OL cases
|
|
32166
32306
|
const siblingIsList = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.LIST_TAGS);
|
|
@@ -32716,8 +32856,9 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
32716
32856
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
32717
32857
|
|
|
32718
32858
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
32719
|
-
/* harmony export */
|
|
32859
|
+
/* harmony export */ casesMap: function() { return /* binding */ casesMap; }
|
|
32720
32860
|
/* harmony export */ });
|
|
32861
|
+
/* unused harmony export cases */
|
|
32721
32862
|
/* harmony import */ var _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62845);
|
|
32722
32863
|
/* harmony import */ var _check_join_two_lists_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(91748);
|
|
32723
32864
|
/* harmony import */ var _check_remove_char_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73792);
|
|
@@ -32731,8 +32872,6 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
32731
32872
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
32732
32873
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
32733
32874
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
32734
|
-
*/ /**
|
|
32735
|
-
* @module plugins/backspace
|
|
32736
32875
|
*/
|
|
32737
32876
|
|
|
32738
32877
|
|
|
@@ -32743,18 +32882,52 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
|
|
|
32743
32882
|
|
|
32744
32883
|
|
|
32745
32884
|
/**
|
|
32885
|
+
* Ordered delete/backspace cases with stable keys. The first one returning
|
|
32886
|
+
* `true` wins. The keys are stable across minified builds (function names are
|
|
32887
|
+
* mangled by terser) so they can be referenced by `delete.disableCases`.
|
|
32746
32888
|
* @private
|
|
32747
|
-
*/ const
|
|
32748
|
-
|
|
32749
|
-
|
|
32750
|
-
|
|
32751
|
-
|
|
32752
|
-
|
|
32753
|
-
|
|
32754
|
-
|
|
32755
|
-
|
|
32756
|
-
|
|
32889
|
+
*/ const casesMap = [
|
|
32890
|
+
[
|
|
32891
|
+
'remove-unbreakable',
|
|
32892
|
+
_check_remove_unbreakable_element_js__WEBPACK_IMPORTED_MODULE_6__.checkRemoveUnbreakableElement
|
|
32893
|
+
],
|
|
32894
|
+
[
|
|
32895
|
+
'remove-not-editable',
|
|
32896
|
+
_check_remove_content_not_editable_js__WEBPACK_IMPORTED_MODULE_3__.checkRemoveContentNotEditable
|
|
32897
|
+
],
|
|
32898
|
+
[
|
|
32899
|
+
'remove-char',
|
|
32900
|
+
_check_remove_char_js__WEBPACK_IMPORTED_MODULE_2__.checkRemoveChar
|
|
32901
|
+
],
|
|
32902
|
+
[
|
|
32903
|
+
'table-cell',
|
|
32904
|
+
_check_table_cell_js__WEBPACK_IMPORTED_MODULE_7__.checkTableCell
|
|
32905
|
+
],
|
|
32906
|
+
[
|
|
32907
|
+
'remove-empty-parent',
|
|
32908
|
+
_check_remove_empty_parent_js__WEBPACK_IMPORTED_MODULE_5__.checkRemoveEmptyParent
|
|
32909
|
+
],
|
|
32910
|
+
[
|
|
32911
|
+
'remove-empty-neighbor',
|
|
32912
|
+
_check_remove_empty_neighbor_js__WEBPACK_IMPORTED_MODULE_4__.checkRemoveEmptyNeighbor
|
|
32913
|
+
],
|
|
32914
|
+
[
|
|
32915
|
+
'join-two-lists',
|
|
32916
|
+
_check_join_two_lists_js__WEBPACK_IMPORTED_MODULE_1__.checkJoinTwoLists
|
|
32917
|
+
],
|
|
32918
|
+
[
|
|
32919
|
+
'join-neighbors',
|
|
32920
|
+
_check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_0__.checkJoinNeighbors
|
|
32921
|
+
],
|
|
32922
|
+
[
|
|
32923
|
+
'unwrap-first-list-item',
|
|
32924
|
+
_check_unwrap_first_list_item_js__WEBPACK_IMPORTED_MODULE_8__.checkUnwrapFirstListItem
|
|
32925
|
+
]
|
|
32757
32926
|
];
|
|
32927
|
+
/**
|
|
32928
|
+
* @private
|
|
32929
|
+
* @deprecated Use `casesMap` to also get the stable case keys.
|
|
32930
|
+
*/ const cases = casesMap.map(([, fn])=>fn);
|
|
32758
32931
|
|
|
32759
32932
|
|
|
32760
32933
|
/***/ }),
|
|
@@ -33290,6 +33463,18 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
|
|
|
33290
33463
|
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(iframe);
|
|
33291
33464
|
return false;
|
|
33292
33465
|
}
|
|
33466
|
+
/**
|
|
33467
|
+
* Collapse a value that holds only a single empty block (e.g.
|
|
33468
|
+
* `<p><br></p>` left after deleting all content) to an empty string —
|
|
33469
|
+
* opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
|
|
33470
|
+
*/ onAfterGetValueFromEditor(data) {
|
|
33471
|
+
if (!this.j.o.cleanHTML.collapseEmptyValueToEmptyString) {
|
|
33472
|
+
return;
|
|
33473
|
+
}
|
|
33474
|
+
if (/^<([a-z][a-z0-9]*)\b[^>]*>(?:<br\/?>)?<\/\1>$/i.test(data.value.trim())) {
|
|
33475
|
+
data.value = '';
|
|
33476
|
+
}
|
|
33477
|
+
}
|
|
33293
33478
|
onSafeHTML(sandBox) {
|
|
33294
33479
|
const sanitizer = this.j.o.cleanHTML.sanitizer;
|
|
33295
33480
|
if (sanitizer) {
|
|
@@ -33332,6 +33517,9 @@ __decorate([
|
|
|
33332
33517
|
__decorate([
|
|
33333
33518
|
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':beforeSetNativeEditorValue')
|
|
33334
33519
|
], cleanHtml.prototype, "onBeforeSetNativeEditorValue", null);
|
|
33520
|
+
__decorate([
|
|
33521
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':afterGetValueFromEditor')
|
|
33522
|
+
], cleanHtml.prototype, "onAfterGetValueFromEditor", null);
|
|
33335
33523
|
__decorate([
|
|
33336
33524
|
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':safeHTML')
|
|
33337
33525
|
], cleanHtml.prototype, "onSafeHTML", null);
|
|
@@ -33357,6 +33545,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
|
|
|
33357
33545
|
timeout: 300,
|
|
33358
33546
|
removeEmptyElements: true,
|
|
33359
33547
|
fillEmptyParagraph: true,
|
|
33548
|
+
collapseEmptyValueToEmptyString: false,
|
|
33360
33549
|
replaceNBSP: true,
|
|
33361
33550
|
replaceOldTags: {
|
|
33362
33551
|
i: 'em',
|
|
@@ -34360,26 +34549,35 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_0__.Icon.set('copy', _icons_copy_svg_j
|
|
|
34360
34549
|
group: 'color'
|
|
34361
34550
|
});
|
|
34362
34551
|
const callback = (command, second, third)=>{
|
|
34552
|
+
var _a;
|
|
34363
34553
|
const colorHEX = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.normalizeColor)(third);
|
|
34364
|
-
|
|
34365
|
-
|
|
34366
|
-
|
|
34367
|
-
|
|
34368
|
-
|
|
34369
|
-
|
|
34370
|
-
|
|
34371
|
-
|
|
34372
|
-
|
|
34373
|
-
|
|
34374
|
-
|
|
34554
|
+
const value = !colorHEX ? '' : colorHEX;
|
|
34555
|
+
const style = command === 'background' ? {
|
|
34556
|
+
backgroundColor: value
|
|
34557
|
+
} : {
|
|
34558
|
+
color: value
|
|
34559
|
+
};
|
|
34560
|
+
// Cells selected with the `select-cells` plugin drop or collapse the
|
|
34561
|
+
// native range, so `commitStyle` would paint a pending caret format
|
|
34562
|
+
// outside the table instead of the selection the user sees. Apply the
|
|
34563
|
+
// style to the content of every selected cell instead. See #1250
|
|
34564
|
+
const selectedCells = editor.getInstance('Table', editor.o).getAllSelectedCells();
|
|
34565
|
+
if (selectedCells.length && editor.s.isCollapsed()) {
|
|
34566
|
+
selectedCells.forEach((cell)=>{
|
|
34567
|
+
editor.s.select(cell, true);
|
|
34375
34568
|
editor.s.commitStyle({
|
|
34376
34569
|
attributes: {
|
|
34377
|
-
style
|
|
34378
|
-
color: !colorHEX ? '' : colorHEX
|
|
34379
|
-
}
|
|
34570
|
+
style
|
|
34380
34571
|
}
|
|
34381
34572
|
});
|
|
34382
|
-
|
|
34573
|
+
});
|
|
34574
|
+
(_a = editor.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
34575
|
+
} else {
|
|
34576
|
+
editor.s.commitStyle({
|
|
34577
|
+
attributes: {
|
|
34578
|
+
style
|
|
34579
|
+
}
|
|
34580
|
+
});
|
|
34383
34581
|
}
|
|
34384
34582
|
editor.synchronizeValues();
|
|
34385
34583
|
return false;
|
|
@@ -36738,6 +36936,25 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.font = _object
|
|
|
36738
36936
|
return v.toLowerCase().replace(/['"]+/g, '').replace(/[^a-z0-9-]+/g, ',');
|
|
36739
36937
|
}
|
|
36740
36938
|
},
|
|
36939
|
+
// When no font is explicitly set, the computed font-family equals the
|
|
36940
|
+
// editor's own default (e.g. `-apple-system, …`). Return '' so the
|
|
36941
|
+
// button shows the `Default` list entry instead of that raw stack.
|
|
36942
|
+
// See #1370
|
|
36943
|
+
value: (editor)=>{
|
|
36944
|
+
const current = editor.s.current();
|
|
36945
|
+
if (!current) {
|
|
36946
|
+
return;
|
|
36947
|
+
}
|
|
36948
|
+
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);
|
|
36949
|
+
if (!box) {
|
|
36950
|
+
return;
|
|
36951
|
+
}
|
|
36952
|
+
const value = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(box, 'font-family').toString();
|
|
36953
|
+
if (value === (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(editor.editor, 'font-family').toString()) {
|
|
36954
|
+
return '';
|
|
36955
|
+
}
|
|
36956
|
+
return value;
|
|
36957
|
+
},
|
|
36741
36958
|
tooltip: 'Font family'
|
|
36742
36959
|
});
|
|
36743
36960
|
|
|
@@ -40311,10 +40528,30 @@ const align = {
|
|
|
40311
40528
|
this.j.async.setTimeout(()=>{
|
|
40312
40529
|
const sel = this.j.s.sel;
|
|
40313
40530
|
if (sel && !sel.isCollapsed) {
|
|
40314
|
-
this.showPopup(()=>this.
|
|
40531
|
+
this.showPopup(()=>this.__selectionBound(), 'selection');
|
|
40315
40532
|
}
|
|
40316
40533
|
}, 1);
|
|
40317
40534
|
}
|
|
40535
|
+
/**
|
|
40536
|
+
* The selection rect comes from the editor document — in iframe mode its
|
|
40537
|
+
* coordinates are iframe-local, while the popup lives in the host
|
|
40538
|
+
* document, so the iframe offset must be added. See
|
|
40539
|
+
* https://github.com/xdan/jodit/issues/1058
|
|
40540
|
+
*/ __selectionBound() {
|
|
40541
|
+
const rect = this.j.s.range.getBoundingClientRect();
|
|
40542
|
+
let { left, top } = rect;
|
|
40543
|
+
if (this.j.iframe) {
|
|
40544
|
+
const offset = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(this.j.iframe, this.j, true);
|
|
40545
|
+
left += offset.left;
|
|
40546
|
+
top += offset.top;
|
|
40547
|
+
}
|
|
40548
|
+
return {
|
|
40549
|
+
left,
|
|
40550
|
+
top,
|
|
40551
|
+
width: rect.width,
|
|
40552
|
+
height: rect.height
|
|
40553
|
+
};
|
|
40554
|
+
}
|
|
40318
40555
|
onSelectionStart() {
|
|
40319
40556
|
this.snapRange = this.j.s.range.cloneRange();
|
|
40320
40557
|
}
|
|
@@ -40346,7 +40583,7 @@ const align = {
|
|
|
40346
40583
|
if (!node) {
|
|
40347
40584
|
return;
|
|
40348
40585
|
}
|
|
40349
|
-
this.showPopup(()=>
|
|
40586
|
+
this.showPopup(()=>this.__selectionBound(), type);
|
|
40350
40587
|
}
|
|
40351
40588
|
/**
|
|
40352
40589
|
* In not collapsed selection - only one image
|
|
@@ -41364,6 +41601,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.link = {
|
|
|
41364
41601
|
noFollowCheckbox: true,
|
|
41365
41602
|
openInNewTabCheckbox: true,
|
|
41366
41603
|
openInNewTabCheckboxDefaultChecked: false,
|
|
41604
|
+
ariaLabelInput: false,
|
|
41367
41605
|
modeClassName: 'input',
|
|
41368
41606
|
selectMultipleClassName: true,
|
|
41369
41607
|
preventReadOnlyNavigation: true,
|
|
@@ -41533,7 +41771,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
|
|
|
41533
41771
|
const currentElement = current;
|
|
41534
41772
|
const isImageContent = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isImage(currentElement);
|
|
41535
41773
|
let { content_input } = elements;
|
|
41536
|
-
const { className_input } = elements, { className_select } = elements;
|
|
41774
|
+
const { className_input } = elements, { className_select } = elements, { aria_label_input } = elements;
|
|
41537
41775
|
if (!content_input) {
|
|
41538
41776
|
content_input = jodit.c.element('input', {
|
|
41539
41777
|
type: 'hidden',
|
|
@@ -41556,6 +41794,9 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
|
|
|
41556
41794
|
if (!isImageContent && current) {
|
|
41557
41795
|
content_input.value = getSelectionText();
|
|
41558
41796
|
}
|
|
41797
|
+
if (aria_label_input) {
|
|
41798
|
+
aria_label_input.value = link ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'aria-label') || '' : '';
|
|
41799
|
+
}
|
|
41559
41800
|
if (link) {
|
|
41560
41801
|
url_input.value = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'href') || '';
|
|
41561
41802
|
if (modeClassName) {
|
|
@@ -41643,6 +41884,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
|
|
|
41643
41884
|
}
|
|
41644
41885
|
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'rel', relParts.length ? relParts.join(' ') : null);
|
|
41645
41886
|
}
|
|
41887
|
+
if (aria_label_input) {
|
|
41888
|
+
const ariaLabel = aria_label_input.value.trim();
|
|
41889
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'aria-label', ariaLabel || null);
|
|
41890
|
+
}
|
|
41646
41891
|
jodit.e.fire('applyLink', jodit, a, form);
|
|
41647
41892
|
});
|
|
41648
41893
|
jodit.synchronizeValues();
|
|
@@ -41781,7 +42026,7 @@ function writeImage(a, content_input, textWasChanged, url_input) {
|
|
|
41781
42026
|
*/
|
|
41782
42027
|
|
|
41783
42028
|
const formTemplate = (editor)=>{
|
|
41784
|
-
const { openInNewTabCheckbox, noFollowCheckbox, modeClassName, selectSizeClassName, selectMultipleClassName, selectOptionsClassName } = editor.o.link;
|
|
42029
|
+
const { openInNewTabCheckbox, noFollowCheckbox, ariaLabelInput, modeClassName, selectSizeClassName, selectMultipleClassName, selectOptionsClassName } = editor.o.link;
|
|
41785
42030
|
return new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIForm(editor, [
|
|
41786
42031
|
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
|
|
41787
42032
|
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
|
|
@@ -41793,6 +42038,13 @@ const formTemplate = (editor)=>{
|
|
|
41793
42038
|
required: true
|
|
41794
42039
|
})
|
|
41795
42040
|
]),
|
|
42041
|
+
ariaLabelInput ? new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
|
|
42042
|
+
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
|
|
42043
|
+
name: 'ariaLabel',
|
|
42044
|
+
ref: 'aria_label_input',
|
|
42045
|
+
label: 'Aria label'
|
|
42046
|
+
})
|
|
42047
|
+
]) : null,
|
|
41796
42048
|
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
|
|
41797
42049
|
new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
|
|
41798
42050
|
name: 'content',
|
|
@@ -42681,6 +42933,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
42681
42933
|
tooltip: 'Paste from clipboard',
|
|
42682
42934
|
exec (_0, _1, _2) {
|
|
42683
42935
|
return _async_to_generator(function*(editor, _, { control }) {
|
|
42936
|
+
var _a;
|
|
42684
42937
|
if (control.name === psKey) {
|
|
42685
42938
|
editor.execCommand('showPasteStorage');
|
|
42686
42939
|
return;
|
|
@@ -42691,7 +42944,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
42691
42944
|
try {
|
|
42692
42945
|
const items = yield navigator.clipboard.read();
|
|
42693
42946
|
if (items && items.length) {
|
|
42694
|
-
const
|
|
42947
|
+
const item = items[0];
|
|
42948
|
+
// Prefer the HTML flavor so the button behaves like the
|
|
42949
|
+
// Ctrl+V shortcut (which receives text/html from the
|
|
42950
|
+
// native paste event). See
|
|
42951
|
+
// https://github.com/xdan/jodit/issues/1061
|
|
42952
|
+
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;
|
|
42953
|
+
const textBlob = yield item.getType(type);
|
|
42695
42954
|
text = yield new Response(textBlob).text();
|
|
42696
42955
|
}
|
|
42697
42956
|
error = false;
|
|
@@ -45378,20 +45637,30 @@ let UISearch = class UISearch extends _core_ui_index_js__WEBPACK_IMPORTED_MODULE
|
|
|
45378
45637
|
return false;
|
|
45379
45638
|
}).on(this.queryInput, 'input', ()=>{
|
|
45380
45639
|
this.setMod('empty-query', !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.trim)(this.queryInput.value).length);
|
|
45381
|
-
}).on(this.queryInput, 'keydown',
|
|
45382
|
-
|
|
45383
|
-
|
|
45384
|
-
|
|
45385
|
-
|
|
45386
|
-
|
|
45387
|
-
|
|
45388
|
-
|
|
45389
|
-
|
|
45390
|
-
|
|
45391
|
-
|
|
45392
|
-
|
|
45640
|
+
}).on(this.queryInput, 'keydown', (()=>{
|
|
45641
|
+
const debounced = this.j.async.debounce((e)=>_async_to_generator(function*() {
|
|
45642
|
+
switch(e.key){
|
|
45643
|
+
case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER:
|
|
45644
|
+
if (yield jodit.e.fire('searchNext')) {
|
|
45645
|
+
_this.close();
|
|
45646
|
+
}
|
|
45647
|
+
break;
|
|
45648
|
+
default:
|
|
45649
|
+
jodit.e.fire(_this, 'needUpdateCounters');
|
|
45650
|
+
break;
|
|
45651
|
+
}
|
|
45652
|
+
})(), this.j.defaultTimeout);
|
|
45653
|
+
return (e)=>{
|
|
45654
|
+
// Must be canceled synchronously — inside the debounced
|
|
45655
|
+
// handler the browser has already submitted the parent
|
|
45656
|
+
// form. See https://github.com/xdan/jodit/issues/918
|
|
45657
|
+
if (e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER) {
|
|
45658
|
+
e.preventDefault();
|
|
45659
|
+
e.stopImmediatePropagation();
|
|
45393
45660
|
}
|
|
45394
|
-
|
|
45661
|
+
debounced(e);
|
|
45662
|
+
};
|
|
45663
|
+
})());
|
|
45395
45664
|
}
|
|
45396
45665
|
};
|
|
45397
45666
|
__decorate([
|
|
@@ -45501,15 +45770,37 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
45501
45770
|
}
|
|
45502
45771
|
/**
|
|
45503
45772
|
* Mouse click inside the table
|
|
45504
|
-
*/ onStartSelection(cell) {
|
|
45773
|
+
*/ onStartSelection(cell, event) {
|
|
45774
|
+
var _a;
|
|
45505
45775
|
if (this.j.o.readonly) {
|
|
45506
45776
|
return;
|
|
45507
45777
|
}
|
|
45778
|
+
const table = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(cell, 'table', this.j.editor);
|
|
45779
|
+
// Ctrl/Cmd + click toggles a single cell into the existing selection
|
|
45780
|
+
// instead of resetting it — non-contiguous multi-cell selection.
|
|
45781
|
+
// See https://github.com/xdan/jodit/issues/1163
|
|
45782
|
+
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)) {
|
|
45783
|
+
if (this.__tableModule.getAllSelectedCells().includes(cell)) {
|
|
45784
|
+
this.__tableModule.removeSelection(cell);
|
|
45785
|
+
} else {
|
|
45786
|
+
if (!cell.firstChild) {
|
|
45787
|
+
cell.appendChild(this.j.createInside.element('br'));
|
|
45788
|
+
}
|
|
45789
|
+
this.__tableModule.addSelection(cell);
|
|
45790
|
+
}
|
|
45791
|
+
this.__selectedCell = cell;
|
|
45792
|
+
(_a = this.j.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
45793
|
+
if (this.__tableModule.getAllSelectedCells().length) {
|
|
45794
|
+
this.j.e.fire('showPopup', table, ()=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.position)(cell, this.j), 'cells');
|
|
45795
|
+
} else {
|
|
45796
|
+
this.j.e.fire('hidePopup', 'cells');
|
|
45797
|
+
}
|
|
45798
|
+
return false;
|
|
45799
|
+
}
|
|
45508
45800
|
this.unselectCells();
|
|
45509
45801
|
if (cell === this.j.editor) {
|
|
45510
45802
|
return;
|
|
45511
45803
|
}
|
|
45512
|
-
const table = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(cell, 'table', this.j.editor);
|
|
45513
45804
|
if (!cell || !table) {
|
|
45514
45805
|
return;
|
|
45515
45806
|
}
|
|
@@ -45538,14 +45829,16 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
45538
45829
|
/**
|
|
45539
45830
|
* Mouse move inside the table
|
|
45540
45831
|
*/ __onMove(table, e) {
|
|
45541
|
-
var _a;
|
|
45832
|
+
var _a, _b;
|
|
45542
45833
|
if (this.j.o.readonly && !this.j.isLocked) {
|
|
45543
45834
|
return;
|
|
45544
45835
|
}
|
|
45545
45836
|
if (this.j.isLockedNotBy(key)) {
|
|
45546
45837
|
return;
|
|
45547
45838
|
}
|
|
45548
|
-
|
|
45839
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
45840
|
+
// host, so the lookup must start from the shadow root
|
|
45841
|
+
const node = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.j.ed).elementFromPoint(e.clientX, e.clientY);
|
|
45549
45842
|
if (!node) {
|
|
45550
45843
|
return;
|
|
45551
45844
|
}
|
|
@@ -45571,7 +45864,7 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
45571
45864
|
}
|
|
45572
45865
|
const cellsCount = this.__tableModule.getAllSelectedCells().length;
|
|
45573
45866
|
if (cellsCount > 1) {
|
|
45574
|
-
(
|
|
45867
|
+
(_b = this.j.s.sel) === null || _b === void 0 ? void 0 : _b.removeAllRanges();
|
|
45575
45868
|
}
|
|
45576
45869
|
this.j.e.fire('hidePopup');
|
|
45577
45870
|
e.stopPropagation();
|
|
@@ -45601,13 +45894,15 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
45601
45894
|
/**
|
|
45602
45895
|
* Stop a selection process
|
|
45603
45896
|
*/ __onStopSelection(table, e) {
|
|
45604
|
-
var _a, _b;
|
|
45897
|
+
var _a, _b, _c;
|
|
45605
45898
|
if (!this.__selectedCell) {
|
|
45606
45899
|
return;
|
|
45607
45900
|
}
|
|
45608
45901
|
this.__isSelectionMode = false;
|
|
45609
45902
|
this.j.unlock();
|
|
45610
|
-
|
|
45903
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
45904
|
+
// host, so the lookup must start from the shadow root
|
|
45905
|
+
const node = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.j.ed).elementFromPoint(e.clientX, e.clientY);
|
|
45611
45906
|
if (!node) {
|
|
45612
45907
|
return;
|
|
45613
45908
|
}
|
|
@@ -45626,7 +45921,7 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
45626
45921
|
cell,
|
|
45627
45922
|
this.__selectedCell
|
|
45628
45923
|
]), box = this.__tableModule.formalMatrix(table);
|
|
45629
|
-
const max = (
|
|
45924
|
+
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]];
|
|
45630
45925
|
// `getSelectedBound` keeps its `Infinity` sentinel when none of the
|
|
45631
45926
|
// selected cells belong to this table's matrix — e.g. after a
|
|
45632
45927
|
// drag-and-drop that moved/removed the cells, leaving a stale anchor and
|
|
@@ -46284,7 +46579,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.sourceEditorNativeOptio
|
|
|
46284
46579
|
*/ highlightActiveLine: true
|
|
46285
46580
|
};
|
|
46286
46581
|
_config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.sourceEditorCDNUrlsJS = [
|
|
46287
|
-
'https://cdnjs.cloudflare.com/ajax/libs/ace/1.
|
|
46582
|
+
'https://cdnjs.cloudflare.com/ajax/libs/ace/1.43.3/ace.js'
|
|
46288
46583
|
];
|
|
46289
46584
|
_config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.beautifyHTMLCDNUrlsJS = [
|
|
46290
46585
|
'https://cdnjs.cloudflare.com/ajax/libs/js-beautify/1.14.4/beautify.min.js',
|
|
@@ -51288,10 +51583,9 @@ class JoditPro extends jodit_esm_index__WEBPACK_IMPORTED_MODULE_4__.Jodit {
|
|
|
51288
51583
|
|
|
51289
51584
|
/***/ }),
|
|
51290
51585
|
|
|
51291
|
-
/***/
|
|
51586
|
+
/***/ 49934:
|
|
51292
51587
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
51293
51588
|
|
|
51294
|
-
__webpack_require__.r(__webpack_exports__);
|
|
51295
51589
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
51296
51590
|
/* harmony export */ autocomplete: function() { return /* binding */ autocomplete; }
|
|
51297
51591
|
/* harmony export */ });
|
|
@@ -51868,7 +52162,7 @@ AutocompleteItem = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__de
|
|
|
51868
52162
|
/* harmony import */ var jodit_esm_plugins_all__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25187);
|
|
51869
52163
|
/* harmony import */ var jodit_pro_plugins_paste_from_word_paste_from_word__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58858);
|
|
51870
52164
|
/* harmony import */ var jodit_pro_plugins_license_license__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21246);
|
|
51871
|
-
/* harmony import */ var
|
|
52165
|
+
/* harmony import */ var jodit_pro_plugins_autocomplete_autocomplete_impl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49934);
|
|
51872
52166
|
/* harmony import */ var jodit_esm_plugins_speech_recognize_speech_recognize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3115);
|
|
51873
52167
|
/*!
|
|
51874
52168
|
* Jodit Editor PRO (https://xdsoft.net/jodit/)
|
|
@@ -51877,6 +52171,9 @@ AutocompleteItem = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__de
|
|
|
51877
52171
|
*/
|
|
51878
52172
|
|
|
51879
52173
|
|
|
52174
|
+
// `.impl` (not the standalone entry) — the entry additionally carries the
|
|
52175
|
+
// standalone stylesheet that must stay OUT of the main bundle so webpack
|
|
52176
|
+
// emits plugins/autocomplete/autocomplete.min.css. See #1308
|
|
51880
52177
|
|
|
51881
52178
|
|
|
51882
52179
|
|