jodit-pro 4.18.2 → 4.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.js +16 -16
- package/es2015/jodit.js +465 -131
- package/es2015/jodit.min.js +11 -11
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2015/plugins/autocomplete/autocomplete.css +1 -1
- package/es2015/plugins/autocomplete/autocomplete.js +1 -1
- package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2015/plugins/backup/backup.css +1 -1
- package/es2015/plugins/backup/backup.js +1 -1
- package/es2015/plugins/backup/backup.min.js +1 -1
- package/es2015/plugins/button-generator/button-generator.css +1 -1
- package/es2015/plugins/button-generator/button-generator.js +1 -1
- package/es2015/plugins/button-generator/button-generator.min.js +1 -1
- package/es2015/plugins/change-case/change-case.js +1 -1
- package/es2015/plugins/change-case/change-case.min.js +1 -1
- package/es2015/plugins/color-picker/color-picker.css +1 -1
- package/es2015/plugins/color-picker/color-picker.js +1 -1
- package/es2015/plugins/color-picker/color-picker.min.js +1 -1
- package/es2015/plugins/emoji/emoji.css +1 -1
- package/es2015/plugins/emoji/emoji.js +1 -1
- package/es2015/plugins/emoji/emoji.min.js +1 -1
- package/es2015/plugins/export-docs/export-docs.js +1 -1
- package/es2015/plugins/export-docs/export-docs.min.js +1 -1
- package/es2015/plugins/finder/finder.css +1 -1
- package/es2015/plugins/finder/finder.js +1 -1
- package/es2015/plugins/finder/finder.min.js +1 -1
- package/es2015/plugins/google-maps/google-maps.css +1 -1
- package/es2015/plugins/google-maps/google-maps.js +1 -1
- package/es2015/plugins/google-maps/google-maps.min.js +1 -1
- package/es2015/plugins/google-search/google-search.js +1 -1
- package/es2015/plugins/google-search/google-search.min.js +1 -1
- package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2015/plugins/keyboard/keyboard.css +1 -1
- package/es2015/plugins/keyboard/keyboard.js +1 -1
- package/es2015/plugins/keyboard/keyboard.min.js +1 -1
- package/es2015/plugins/mobile-view/mobile-view.js +1 -1
- package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2015/plugins/page-break/page-break.js +1 -1
- package/es2015/plugins/page-break/page-break.min.js +1 -1
- package/es2015/plugins/paste-code/paste-code.css +1 -1
- package/es2015/plugins/paste-code/paste-code.js +1 -1
- package/es2015/plugins/paste-code/paste-code.min.js +1 -1
- package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2015/plugins/show-blocks/show-blocks.js +1 -1
- package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2015/plugins/style/style.css +1 -1
- package/es2015/plugins/style/style.js +1 -1
- package/es2015/plugins/style/style.min.js +1 -1
- package/es2015/plugins/templates/templates.css +1 -1
- package/es2015/plugins/templates/templates.js +1 -1
- package/es2015/plugins/templates/templates.min.js +1 -1
- package/es2015/plugins/todo-list/todo-list.css +1 -1
- package/es2015/plugins/todo-list/todo-list.js +1 -1
- package/es2015/plugins/todo-list/todo-list.min.js +1 -1
- package/es2015/plugins/translate/translate.css +1 -1
- package/es2015/plugins/translate/translate.js +1 -1
- package/es2015/plugins/translate/translate.min.js +1 -1
- package/es2015/plugins/tune-block/tune-block.css +1 -1
- package/es2015/plugins/tune-block/tune-block.js +1 -1
- package/es2015/plugins/tune-block/tune-block.min.js +1 -1
- package/es2018/jodit.fat.min.js +9 -9
- package/es2018/jodit.min.js +9 -9
- package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2018/plugins/backup/backup.min.js +1 -1
- package/es2018/plugins/button-generator/button-generator.min.js +1 -1
- package/es2018/plugins/change-case/change-case.min.js +1 -1
- package/es2018/plugins/color-picker/color-picker.min.js +1 -1
- package/es2018/plugins/emoji/emoji.min.js +1 -1
- package/es2018/plugins/export-docs/export-docs.min.js +1 -1
- package/es2018/plugins/finder/finder.min.js +1 -1
- package/es2018/plugins/google-maps/google-maps.min.js +1 -1
- package/es2018/plugins/google-search/google-search.min.js +1 -1
- package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2018/plugins/keyboard/keyboard.min.js +1 -1
- package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2018/plugins/page-break/page-break.min.js +1 -1
- package/es2018/plugins/paste-code/paste-code.min.js +1 -1
- package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2018/plugins/style/style.min.js +1 -1
- package/es2018/plugins/templates/templates.min.js +1 -1
- package/es2018/plugins/todo-list/todo-list.min.js +1 -1
- package/es2018/plugins/translate/translate.min.js +1 -1
- package/es2018/plugins/tune-block/tune-block.min.js +1 -1
- package/es2021/jodit.css +1 -1
- package/es2021/jodit.fat.min.js +16 -16
- package/es2021/jodit.js +417 -131
- package/es2021/jodit.min.js +16 -16
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2021/plugins/autocomplete/autocomplete.css +1 -1
- package/es2021/plugins/autocomplete/autocomplete.js +1 -1
- package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2021/plugins/backup/backup.css +1 -1
- package/es2021/plugins/backup/backup.js +1 -1
- package/es2021/plugins/backup/backup.min.js +1 -1
- package/es2021/plugins/button-generator/button-generator.css +1 -1
- package/es2021/plugins/button-generator/button-generator.js +1 -1
- package/es2021/plugins/button-generator/button-generator.min.js +1 -1
- package/es2021/plugins/change-case/change-case.js +1 -1
- package/es2021/plugins/change-case/change-case.min.js +1 -1
- package/es2021/plugins/color-picker/color-picker.css +1 -1
- package/es2021/plugins/color-picker/color-picker.js +1 -1
- package/es2021/plugins/color-picker/color-picker.min.js +1 -1
- package/es2021/plugins/emoji/emoji.css +1 -1
- package/es2021/plugins/emoji/emoji.js +1 -1
- package/es2021/plugins/emoji/emoji.min.js +1 -1
- package/es2021/plugins/export-docs/export-docs.js +1 -1
- package/es2021/plugins/export-docs/export-docs.min.js +1 -1
- package/es2021/plugins/finder/finder.css +1 -1
- package/es2021/plugins/finder/finder.js +1 -1
- package/es2021/plugins/finder/finder.min.js +1 -1
- package/es2021/plugins/google-maps/google-maps.css +1 -1
- package/es2021/plugins/google-maps/google-maps.js +1 -1
- package/es2021/plugins/google-maps/google-maps.min.js +1 -1
- package/es2021/plugins/google-search/google-search.js +1 -1
- package/es2021/plugins/google-search/google-search.min.js +1 -1
- package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2021/plugins/keyboard/keyboard.css +1 -1
- package/es2021/plugins/keyboard/keyboard.js +1 -1
- package/es2021/plugins/keyboard/keyboard.min.js +1 -1
- package/es2021/plugins/mobile-view/mobile-view.js +1 -1
- package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2021/plugins/page-break/page-break.js +1 -1
- package/es2021/plugins/page-break/page-break.min.js +1 -1
- package/es2021/plugins/paste-code/paste-code.css +1 -1
- package/es2021/plugins/paste-code/paste-code.js +1 -1
- package/es2021/plugins/paste-code/paste-code.min.js +1 -1
- package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2021/plugins/show-blocks/show-blocks.js +1 -1
- package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2021/plugins/style/style.css +1 -1
- package/es2021/plugins/style/style.js +1 -1
- package/es2021/plugins/style/style.min.js +1 -1
- package/es2021/plugins/templates/templates.css +1 -1
- package/es2021/plugins/templates/templates.js +1 -1
- package/es2021/plugins/templates/templates.min.js +1 -1
- package/es2021/plugins/todo-list/todo-list.css +1 -1
- package/es2021/plugins/todo-list/todo-list.js +1 -1
- package/es2021/plugins/todo-list/todo-list.min.js +1 -1
- package/es2021/plugins/translate/translate.css +1 -1
- package/es2021/plugins/translate/translate.js +1 -1
- package/es2021/plugins/translate/translate.min.js +1 -1
- package/es2021/plugins/tune-block/tune-block.css +1 -1
- package/es2021/plugins/tune-block/tune-block.js +1 -1
- package/es2021/plugins/tune-block/tune-block.min.js +1 -1
- package/es2021.en/jodit.css +1 -1
- package/es2021.en/jodit.fat.min.js +19 -19
- package/es2021.en/jodit.js +417 -131
- package/es2021.en/jodit.min.js +16 -16
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2021.en/plugins/backup/backup.css +1 -1
- package/es2021.en/plugins/backup/backup.js +1 -1
- package/es2021.en/plugins/backup/backup.min.js +1 -1
- package/es2021.en/plugins/button-generator/button-generator.css +1 -1
- package/es2021.en/plugins/button-generator/button-generator.js +1 -1
- package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
- package/es2021.en/plugins/change-case/change-case.js +1 -1
- package/es2021.en/plugins/change-case/change-case.min.js +1 -1
- package/es2021.en/plugins/color-picker/color-picker.css +1 -1
- package/es2021.en/plugins/color-picker/color-picker.js +1 -1
- package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
- package/es2021.en/plugins/emoji/emoji.css +1 -1
- package/es2021.en/plugins/emoji/emoji.js +1 -1
- package/es2021.en/plugins/emoji/emoji.min.js +1 -1
- package/es2021.en/plugins/export-docs/export-docs.js +1 -1
- package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
- package/es2021.en/plugins/finder/finder.css +1 -1
- package/es2021.en/plugins/finder/finder.js +1 -1
- package/es2021.en/plugins/finder/finder.min.js +1 -1
- package/es2021.en/plugins/google-maps/google-maps.css +1 -1
- package/es2021.en/plugins/google-maps/google-maps.js +1 -1
- package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
- package/es2021.en/plugins/google-search/google-search.js +1 -1
- package/es2021.en/plugins/google-search/google-search.min.js +1 -1
- package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2021.en/plugins/keyboard/keyboard.css +1 -1
- package/es2021.en/plugins/keyboard/keyboard.js +1 -1
- package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
- package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
- package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2021.en/plugins/page-break/page-break.js +1 -1
- package/es2021.en/plugins/page-break/page-break.min.js +1 -1
- package/es2021.en/plugins/paste-code/paste-code.css +1 -1
- package/es2021.en/plugins/paste-code/paste-code.js +1 -1
- package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
- package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
- package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2021.en/plugins/style/style.css +1 -1
- package/es2021.en/plugins/style/style.js +1 -1
- package/es2021.en/plugins/style/style.min.js +1 -1
- package/es2021.en/plugins/templates/templates.css +1 -1
- package/es2021.en/plugins/templates/templates.js +1 -1
- package/es2021.en/plugins/templates/templates.min.js +1 -1
- package/es2021.en/plugins/todo-list/todo-list.css +1 -1
- package/es2021.en/plugins/todo-list/todo-list.js +1 -1
- package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
- package/es2021.en/plugins/translate/translate.css +1 -1
- package/es2021.en/plugins/translate/translate.js +1 -1
- package/es2021.en/plugins/translate/translate.min.js +1 -1
- package/es2021.en/plugins/tune-block/tune-block.css +1 -1
- package/es2021.en/plugins/tune-block/tune-block.js +1 -1
- package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
- package/es5/jodit.css +2 -2
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +529 -135
- package/es5/jodit.min.css +2 -2
- package/es5/jodit.min.js +2 -2
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.css +1 -1
- package/es5/plugins/autocomplete/autocomplete.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es5/plugins/backup/backup.css +1 -1
- package/es5/plugins/backup/backup.js +1 -1
- package/es5/plugins/backup/backup.min.js +1 -1
- package/es5/plugins/button-generator/button-generator.css +1 -1
- package/es5/plugins/button-generator/button-generator.js +1 -1
- package/es5/plugins/button-generator/button-generator.min.js +1 -1
- package/es5/plugins/change-case/change-case.js +1 -1
- package/es5/plugins/change-case/change-case.min.js +1 -1
- package/es5/plugins/color-picker/color-picker.css +1 -1
- package/es5/plugins/color-picker/color-picker.js +1 -1
- package/es5/plugins/color-picker/color-picker.min.js +1 -1
- package/es5/plugins/emoji/emoji.css +1 -1
- package/es5/plugins/emoji/emoji.js +1 -1
- package/es5/plugins/emoji/emoji.min.js +1 -1
- package/es5/plugins/export-docs/export-docs.js +1 -1
- package/es5/plugins/export-docs/export-docs.min.js +1 -1
- package/es5/plugins/finder/finder.css +1 -1
- package/es5/plugins/finder/finder.js +1 -1
- package/es5/plugins/finder/finder.min.js +1 -1
- package/es5/plugins/google-maps/google-maps.css +1 -1
- package/es5/plugins/google-maps/google-maps.js +1 -1
- package/es5/plugins/google-maps/google-maps.min.js +1 -1
- package/es5/plugins/google-search/google-search.js +1 -1
- package/es5/plugins/google-search/google-search.min.js +1 -1
- package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es5/plugins/keyboard/keyboard.css +1 -1
- package/es5/plugins/keyboard/keyboard.js +1 -1
- package/es5/plugins/keyboard/keyboard.min.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es5/plugins/page-break/page-break.js +1 -1
- package/es5/plugins/page-break/page-break.min.js +1 -1
- package/es5/plugins/paste-code/paste-code.css +1 -1
- package/es5/plugins/paste-code/paste-code.js +1 -1
- package/es5/plugins/paste-code/paste-code.min.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es5/plugins/style/style.css +1 -1
- package/es5/plugins/style/style.js +1 -1
- package/es5/plugins/style/style.min.js +1 -1
- package/es5/plugins/templates/templates.css +1 -1
- package/es5/plugins/templates/templates.js +1 -1
- package/es5/plugins/templates/templates.min.js +1 -1
- package/es5/plugins/todo-list/todo-list.css +1 -1
- package/es5/plugins/todo-list/todo-list.js +1 -1
- package/es5/plugins/todo-list/todo-list.min.js +1 -1
- package/es5/plugins/translate/translate.css +1 -1
- package/es5/plugins/translate/translate.js +1 -1
- package/es5/plugins/translate/translate.min.js +1 -1
- package/es5/plugins/tune-block/tune-block.css +1 -1
- package/es5/plugins/tune-block/tune-block.js +1 -1
- package/es5/plugins/tune-block/tune-block.min.js +1 -1
- package/es5/polyfills.fat.min.js +1 -1
- package/es5/polyfills.js +1 -1
- package/es5/polyfills.min.js +1 -1
- package/package.json +1 -1
package/es2021.en/jodit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit-pro - PRO Version of Jodit Editor
|
|
3
3
|
* Author: Chupurnov Valerii <chupurnov@gmail.com>
|
|
4
|
-
* Version: v4.18.
|
|
4
|
+
* Version: v4.18.3
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -1768,7 +1768,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1768
1768
|
* ```
|
|
1769
1769
|
* @packageDocumentation
|
|
1770
1770
|
* @module constants
|
|
1771
|
-
*/ const APP_VERSION = "4.18.
|
|
1771
|
+
*/ const APP_VERSION = "4.18.3";
|
|
1772
1772
|
// prettier-ignore
|
|
1773
1773
|
const ES = "es2021";
|
|
1774
1774
|
const IS_ES_MODERN = true;
|
|
@@ -6418,6 +6418,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6418
6418
|
/* harmony export */ options: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.options; },
|
|
6419
6419
|
/* harmony export */ parseQuery: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.parseQuery; },
|
|
6420
6420
|
/* harmony export */ position: function() { return /* reexport safe */ _size_index_js__WEBPACK_IMPORTED_MODULE_6__.position; },
|
|
6421
|
+
/* harmony export */ prepareEmbedCode: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.prepareEmbedCode; },
|
|
6422
|
+
/* harmony export */ prepareMedia: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.prepareMedia; },
|
|
6421
6423
|
/* harmony export */ previewBox: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.previewBox; },
|
|
6422
6424
|
/* harmony export */ refs: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.refs; },
|
|
6423
6425
|
/* harmony export */ reset: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.reset; },
|
|
@@ -8662,13 +8664,13 @@ const getClassName = (obj)=>{
|
|
|
8662
8664
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
8663
8665
|
|
|
8664
8666
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8665
|
-
/* harmony export */ $$: function() { return /* reexport safe */
|
|
8667
|
+
/* harmony export */ $$: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_26__.$$; },
|
|
8666
8668
|
/* harmony export */ ConfigDeepFlatten: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigDeepFlatten; },
|
|
8667
8669
|
/* harmony export */ ConfigFlatten: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigFlatten; },
|
|
8668
8670
|
/* harmony export */ ConfigMerge: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigMerge; },
|
|
8669
8671
|
/* harmony export */ ConfigProto: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigProto; },
|
|
8670
8672
|
/* harmony export */ ConnectionError: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.ConnectionError; },
|
|
8671
|
-
/* harmony export */ LimitedStack: function() { return /* reexport safe */
|
|
8673
|
+
/* harmony export */ LimitedStack: function() { return /* reexport safe */ _stack_js__WEBPACK_IMPORTED_MODULE_28__.LimitedStack; },
|
|
8672
8674
|
/* harmony export */ OptionsError: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.OptionsError; },
|
|
8673
8675
|
/* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* reexport safe */ _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__.UNSAFE_PROTO_KEYS; },
|
|
8674
8676
|
/* harmony export */ abort: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.abort; },
|
|
@@ -8681,9 +8683,9 @@ const getClassName = (obj)=>{
|
|
|
8681
8683
|
/* harmony export */ attrRaw: function() { return /* reexport safe */ _attr_js__WEBPACK_IMPORTED_MODULE_3__.attrRaw; },
|
|
8682
8684
|
/* harmony export */ browser: function() { return /* reexport safe */ _browser_js__WEBPACK_IMPORTED_MODULE_4__.browser; },
|
|
8683
8685
|
/* harmony export */ buildQuery: function() { return /* reexport safe */ _build_query_js__WEBPACK_IMPORTED_MODULE_5__.buildQuery; },
|
|
8684
|
-
/* harmony export */ call: function() { return /* reexport safe */
|
|
8685
|
-
/* harmony export */ callPromise: function() { return /* reexport safe */
|
|
8686
|
-
/* harmony export */ callThis: function() { return /* reexport safe */
|
|
8686
|
+
/* harmony export */ call: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.call; },
|
|
8687
|
+
/* harmony export */ callPromise: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.callPromise; },
|
|
8688
|
+
/* harmony export */ callThis: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.callThis; },
|
|
8687
8689
|
/* harmony export */ clearAlign: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.clearAlign; },
|
|
8688
8690
|
/* harmony export */ clearCenterAlign: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.clearCenterAlign; },
|
|
8689
8691
|
/* harmony export */ cns: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__.cns; },
|
|
@@ -8693,7 +8695,7 @@ const getClassName = (obj)=>{
|
|
|
8693
8695
|
/* harmony export */ createMediaWrapper: function() { return /* reexport safe */ _media_wrapper_js__WEBPACK_IMPORTED_MODULE_20__.createMediaWrapper; },
|
|
8694
8696
|
/* harmony export */ css: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.css; },
|
|
8695
8697
|
/* harmony export */ cssInline: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.cssInline; },
|
|
8696
|
-
/* harmony export */ cssPath: function() { return /* reexport safe */
|
|
8698
|
+
/* harmony export */ cssPath: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_26__.cssPath; },
|
|
8697
8699
|
/* harmony export */ ctrlKey: function() { return /* reexport safe */ _ctrl_key_js__WEBPACK_IMPORTED_MODULE_10__.ctrlKey; },
|
|
8698
8700
|
/* harmony export */ dataBind: function() { return /* reexport safe */ _data_bind_js__WEBPACK_IMPORTED_MODULE_11__.dataBind; },
|
|
8699
8701
|
/* harmony export */ defaultLanguage: function() { return /* reexport safe */ _default_language_js__WEBPACK_IMPORTED_MODULE_12__.defaultLanguage; },
|
|
@@ -8702,34 +8704,36 @@ const getClassName = (obj)=>{
|
|
|
8702
8704
|
/* harmony export */ get: function() { return /* reexport safe */ _get_js__WEBPACK_IMPORTED_MODULE_15__.get; },
|
|
8703
8705
|
/* harmony export */ getAlignClasses: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.getAlignClasses; },
|
|
8704
8706
|
/* harmony export */ getClassName: function() { return /* reexport safe */ _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__.getClassName; },
|
|
8705
|
-
/* harmony export */ getDataTransfer: function() { return /* reexport safe */
|
|
8707
|
+
/* harmony export */ getDataTransfer: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.getDataTransfer; },
|
|
8706
8708
|
/* harmony export */ getHAlign: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.getHAlign; },
|
|
8707
8709
|
/* harmony export */ getMediaWrapper: function() { return /* reexport safe */ _media_wrapper_js__WEBPACK_IMPORTED_MODULE_20__.getMediaWrapper; },
|
|
8708
|
-
/* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */
|
|
8710
|
+
/* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.getPropertyDescriptor; },
|
|
8709
8711
|
/* harmony export */ getWrappedMedia: function() { return /* reexport safe */ _media_wrapper_js__WEBPACK_IMPORTED_MODULE_20__.getWrappedMedia; },
|
|
8710
|
-
/* harmony export */ getXPathByElement: function() { return /* reexport safe */
|
|
8712
|
+
/* harmony export */ getXPathByElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_26__.getXPathByElement; },
|
|
8711
8713
|
/* harmony export */ hAlignElement: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.hAlignElement; },
|
|
8712
8714
|
/* harmony export */ humanSizeToBytes: function() { return /* reexport safe */ _human_size_to_bytes_js__WEBPACK_IMPORTED_MODULE_17__.humanSizeToBytes; },
|
|
8713
|
-
/* harmony export */ inView: function() { return /* reexport safe */
|
|
8715
|
+
/* harmony export */ inView: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_25__.inView; },
|
|
8714
8716
|
/* harmony export */ isAtom: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.isAtom; },
|
|
8715
8717
|
/* harmony export */ isUnsafeProtoKey: function() { return /* reexport safe */ _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__.isUnsafeProtoKey; },
|
|
8716
8718
|
/* harmony export */ keepNames: function() { return /* reexport safe */ _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__.keepNames; },
|
|
8717
|
-
/* harmony export */ keys: function() { return /* reexport safe */
|
|
8718
|
-
/* harmony export */ loadImage: function() { return /* reexport safe */
|
|
8719
|
+
/* harmony export */ keys: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.keys; },
|
|
8720
|
+
/* harmony export */ loadImage: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.loadImage; },
|
|
8719
8721
|
/* harmony export */ loadNext: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.loadNext; },
|
|
8720
8722
|
/* harmony export */ loadNextStyle: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.loadNextStyle; },
|
|
8721
8723
|
/* harmony export */ markAsAtomic: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.markAsAtomic; },
|
|
8722
8724
|
/* harmony export */ markDeprecated: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__.markDeprecated; },
|
|
8723
|
-
/* harmony export */ markOwner: function() { return /* reexport safe */
|
|
8724
|
-
/* harmony export */ memorizeExec: function() { return /* reexport safe */
|
|
8725
|
+
/* harmony export */ markOwner: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.markOwner; },
|
|
8726
|
+
/* harmony export */ memorizeExec: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.memorizeExec; },
|
|
8725
8727
|
/* harmony export */ options: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.options; },
|
|
8726
8728
|
/* harmony export */ parseQuery: function() { return /* reexport safe */ _parse_query_js__WEBPACK_IMPORTED_MODULE_21__.parseQuery; },
|
|
8727
|
-
/* harmony export */
|
|
8728
|
-
/* harmony export */
|
|
8729
|
-
/* harmony export */
|
|
8730
|
-
/* harmony export */
|
|
8731
|
-
/* harmony export */
|
|
8732
|
-
/* harmony export */
|
|
8729
|
+
/* harmony export */ prepareEmbedCode: function() { return /* reexport safe */ _prepare_media_js__WEBPACK_IMPORTED_MODULE_22__.prepareEmbedCode; },
|
|
8730
|
+
/* harmony export */ prepareMedia: function() { return /* reexport safe */ _prepare_media_js__WEBPACK_IMPORTED_MODULE_22__.prepareMedia; },
|
|
8731
|
+
/* harmony export */ previewBox: function() { return /* reexport safe */ _print_js__WEBPACK_IMPORTED_MODULE_23__.previewBox; },
|
|
8732
|
+
/* harmony export */ refs: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_26__.refs; },
|
|
8733
|
+
/* harmony export */ reset: function() { return /* reexport safe */ _reset_js__WEBPACK_IMPORTED_MODULE_24__.reset; },
|
|
8734
|
+
/* harmony export */ resolveElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_26__.resolveElement; },
|
|
8735
|
+
/* harmony export */ scrollIntoViewIfNeeded: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_25__.scrollIntoViewIfNeeded; },
|
|
8736
|
+
/* harmony export */ set: function() { return /* reexport safe */ _set_js__WEBPACK_IMPORTED_MODULE_27__.set; },
|
|
8733
8737
|
/* harmony export */ wrapMedia: function() { return /* reexport safe */ _media_wrapper_js__WEBPACK_IMPORTED_MODULE_20__.wrapMedia; }
|
|
8734
8738
|
/* harmony export */ });
|
|
8735
8739
|
/* harmony import */ var _align_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25726);
|
|
@@ -8754,13 +8758,14 @@ const getClassName = (obj)=>{
|
|
|
8754
8758
|
/* harmony import */ var _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95942);
|
|
8755
8759
|
/* harmony import */ var _media_wrapper_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(61477);
|
|
8756
8760
|
/* harmony import */ var _parse_query_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(82501);
|
|
8757
|
-
/* harmony import */ var
|
|
8758
|
-
/* harmony import */ var
|
|
8759
|
-
/* harmony import */ var
|
|
8760
|
-
/* harmony import */ var
|
|
8761
|
-
/* harmony import */ var
|
|
8762
|
-
/* harmony import */ var
|
|
8763
|
-
/* harmony import */ var
|
|
8761
|
+
/* harmony import */ var _prepare_media_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(96437);
|
|
8762
|
+
/* harmony import */ var _print_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(11628);
|
|
8763
|
+
/* harmony import */ var _reset_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(58844);
|
|
8764
|
+
/* harmony import */ var _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(26395);
|
|
8765
|
+
/* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(76078);
|
|
8766
|
+
/* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(3703);
|
|
8767
|
+
/* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(50535);
|
|
8768
|
+
/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(37790);
|
|
8764
8769
|
/*!
|
|
8765
8770
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
8766
8771
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -8796,6 +8801,7 @@ const getClassName = (obj)=>{
|
|
|
8796
8801
|
|
|
8797
8802
|
|
|
8798
8803
|
|
|
8804
|
+
|
|
8799
8805
|
|
|
8800
8806
|
|
|
8801
8807
|
/***/ }),
|
|
@@ -8961,6 +8967,45 @@ const isWrapper = (node, wrapper)=>_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.
|
|
|
8961
8967
|
/* harmony export */ ]);
|
|
8962
8968
|
|
|
8963
8969
|
|
|
8970
|
+
/***/ }),
|
|
8971
|
+
|
|
8972
|
+
/***/ 96437:
|
|
8973
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
8974
|
+
|
|
8975
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8976
|
+
/* harmony export */ prepareEmbedCode: function() { return /* binding */ prepareEmbedCode; },
|
|
8977
|
+
/* harmony export */ prepareMedia: function() { return /* binding */ prepareMedia; }
|
|
8978
|
+
/* harmony export */ });
|
|
8979
|
+
/* harmony import */ var _align_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25726);
|
|
8980
|
+
/* harmony import */ var _media_wrapper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61477);
|
|
8981
|
+
/*!
|
|
8982
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
8983
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
8984
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
8985
|
+
*/
|
|
8986
|
+
|
|
8987
|
+
/**
|
|
8988
|
+
* Puts new media in its wrapper (see `mediaWrappers`) and aligns it with
|
|
8989
|
+
* `mediaDefaultAlign`. Returns the wrapper, or `element` when there is none
|
|
8990
|
+
*/ function prepareMedia(jodit, element) {
|
|
8991
|
+
const media = (0,_media_wrapper_js__WEBPACK_IMPORTED_MODULE_1__.wrapMedia)(jodit, element);
|
|
8992
|
+
const { mediaDefaultAlign } = jodit.o;
|
|
8993
|
+
if (mediaDefaultAlign && mediaDefaultAlign !== 'normal') {
|
|
8994
|
+
(0,_align_js__WEBPACK_IMPORTED_MODULE_0__.hAlignElement)(media, mediaDefaultAlign, (0,_align_js__WEBPACK_IMPORTED_MODULE_0__.getAlignClasses)(jodit, media));
|
|
8995
|
+
}
|
|
8996
|
+
return media;
|
|
8997
|
+
}
|
|
8998
|
+
/**
|
|
8999
|
+
* Embed code that is one element is prepared as media (see `prepareMedia`);
|
|
9000
|
+
* other code is returned as it is
|
|
9001
|
+
*/ function prepareEmbedCode(jodit, code) {
|
|
9002
|
+
const box = jodit.createInside.div();
|
|
9003
|
+
box.innerHTML = code.trim();
|
|
9004
|
+
const element = box.firstElementChild;
|
|
9005
|
+
return element && box.childNodes.length === 1 ? prepareMedia(jodit, element) : code;
|
|
9006
|
+
}
|
|
9007
|
+
|
|
9008
|
+
|
|
8964
9009
|
/***/ }),
|
|
8965
9010
|
|
|
8966
9011
|
/***/ 11628:
|
|
@@ -13061,7 +13106,9 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
13061
13106
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(wrapper, fragment);
|
|
13062
13107
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeInsertNode(range, wrapper);
|
|
13063
13108
|
if (style.elementIsBlock) {
|
|
13064
|
-
|
|
13109
|
+
// The wrapped content can bring its own `<br>` (an empty table
|
|
13110
|
+
// cell's), after or inside the temporary `<font>` around the selection
|
|
13111
|
+
if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(wrapper) && !wrapper.querySelector('br')) {
|
|
13065
13112
|
_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(wrapper, ci.element('br'));
|
|
13066
13113
|
}
|
|
13067
13114
|
}
|
|
@@ -28071,28 +28118,20 @@ class FileBrowserTree extends _core_ui_index_js__WEBPACK_IMPORTED_MODULE_0__.UIG
|
|
|
28071
28118
|
/* harmony export */ History: function() { return /* binding */ History; }
|
|
28072
28119
|
/* harmony export */ });
|
|
28073
28120
|
/* harmony import */ var _core_component_view_component_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80480);
|
|
28074
|
-
/* harmony import */ var
|
|
28075
|
-
/* harmony import */ var
|
|
28076
|
-
/* harmony import */ var
|
|
28077
|
-
/* harmony import */ var
|
|
28078
|
-
/* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(57034);
|
|
28121
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6441);
|
|
28122
|
+
/* harmony import */ var _command_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92643);
|
|
28123
|
+
/* harmony import */ var _snapshot_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52604);
|
|
28124
|
+
/* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(57034);
|
|
28079
28125
|
/*!
|
|
28080
28126
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
28081
28127
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
28082
28128
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
28083
|
-
*/
|
|
28084
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
28085
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
28086
|
-
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
28087
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
28088
|
-
};
|
|
28089
|
-
|
|
28090
|
-
|
|
28129
|
+
*/
|
|
28091
28130
|
|
|
28092
28131
|
|
|
28093
28132
|
|
|
28094
28133
|
|
|
28095
|
-
|
|
28134
|
+
_config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.history = {
|
|
28096
28135
|
enable: true,
|
|
28097
28136
|
maxHistoryLength: Infinity,
|
|
28098
28137
|
timeout: 1000
|
|
@@ -28106,27 +28145,31 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
|
|
|
28106
28145
|
/**
|
|
28107
28146
|
* Return state of the WYSIWYG editor to step back
|
|
28108
28147
|
*/ redo() {
|
|
28148
|
+
this.__processPendingChanges();
|
|
28109
28149
|
if (this.__stack.redo()) {
|
|
28110
28150
|
this.startValue = this.snapshot.make();
|
|
28111
28151
|
this.fireChangeStack();
|
|
28112
28152
|
}
|
|
28113
28153
|
}
|
|
28114
28154
|
canRedo() {
|
|
28115
|
-
return this.__stack.canRedo();
|
|
28155
|
+
return !this.__hasPendingChanges && this.__stack.canRedo();
|
|
28116
28156
|
}
|
|
28117
28157
|
/**
|
|
28118
28158
|
* Return the state of the WYSIWYG editor to step forward
|
|
28119
28159
|
*/ undo() {
|
|
28160
|
+
this.__processPendingChanges();
|
|
28120
28161
|
if (this.__stack.undo()) {
|
|
28121
28162
|
this.startValue = this.snapshot.make();
|
|
28122
28163
|
this.fireChangeStack();
|
|
28123
28164
|
}
|
|
28124
28165
|
}
|
|
28125
28166
|
canUndo() {
|
|
28126
|
-
return this.__stack.canUndo();
|
|
28167
|
+
return this.__hasPendingChanges || this.__stack.canUndo();
|
|
28127
28168
|
}
|
|
28128
28169
|
clear() {
|
|
28129
28170
|
this.startValue = this.snapshot.make();
|
|
28171
|
+
this.async.clearTimeout(this.__timer);
|
|
28172
|
+
this.__hasPendingChanges = false;
|
|
28130
28173
|
this.__stack.clear();
|
|
28131
28174
|
this.fireChangeStack();
|
|
28132
28175
|
}
|
|
@@ -28146,9 +28189,29 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
|
|
|
28146
28189
|
this.updateTick += 1;
|
|
28147
28190
|
}
|
|
28148
28191
|
/**
|
|
28149
|
-
* Push new command in stack on some changes
|
|
28192
|
+
* Push new command in stack on some changes. The first change opens a
|
|
28193
|
+
* step, and later ones join it until `history.timeout` has passed,
|
|
28194
|
+
* however close together they come.
|
|
28150
28195
|
*/ onChange() {
|
|
28151
|
-
|
|
28196
|
+
// A transaction is over by the time the step is recorded, so it is
|
|
28197
|
+
// checked now
|
|
28198
|
+
if (this.snapshot.isBlocked || this.__hasPendingChanges) {
|
|
28199
|
+
return;
|
|
28200
|
+
}
|
|
28201
|
+
this.__hasPendingChanges = true;
|
|
28202
|
+
this.__timer = this.async.setTimeout(()=>this.__processPendingChanges(), this.j.o.history.timeout);
|
|
28203
|
+
// With a timeout of 0 the step is already recorded. Otherwise
|
|
28204
|
+
// canUndo and canRedo count it from now
|
|
28205
|
+
if (this.__hasPendingChanges) {
|
|
28206
|
+
this.fireChangeStack();
|
|
28207
|
+
}
|
|
28208
|
+
}
|
|
28209
|
+
/**
|
|
28210
|
+
* Push the open step's changes now
|
|
28211
|
+
*/ __processPendingChanges() {
|
|
28212
|
+
if (this.__hasPendingChanges) {
|
|
28213
|
+
this.__processChanges();
|
|
28214
|
+
}
|
|
28152
28215
|
}
|
|
28153
28216
|
/**
|
|
28154
28217
|
* @internal
|
|
@@ -28156,13 +28219,15 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
|
|
|
28156
28219
|
if (this.snapshot.isBlocked || !this.j.o.history.enable) {
|
|
28157
28220
|
return;
|
|
28158
28221
|
}
|
|
28222
|
+
this.async.clearTimeout(this.__timer);
|
|
28223
|
+
this.__hasPendingChanges = false;
|
|
28159
28224
|
this.updateStack();
|
|
28160
28225
|
}
|
|
28161
28226
|
/**
|
|
28162
28227
|
* Update history stack
|
|
28163
28228
|
*/ updateStack(replace = false) {
|
|
28164
28229
|
const newValue = this.snapshot.make();
|
|
28165
|
-
if (
|
|
28230
|
+
if (_snapshot_js__WEBPACK_IMPORTED_MODULE_3__.Snapshot.equal(newValue, this.startValue)) {
|
|
28166
28231
|
return;
|
|
28167
28232
|
}
|
|
28168
28233
|
// Only the selection moved, for example when the selection markers
|
|
@@ -28172,7 +28237,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
|
|
|
28172
28237
|
this.startValue = newValue;
|
|
28173
28238
|
return;
|
|
28174
28239
|
}
|
|
28175
|
-
const newCommand = new
|
|
28240
|
+
const newCommand = new _command_js__WEBPACK_IMPORTED_MODULE_2__.Command(this.startValue, newValue, this, this.updateTick);
|
|
28176
28241
|
if (replace) {
|
|
28177
28242
|
const command = this.__stack.current();
|
|
28178
28243
|
if (command && this.updateTick === command.tick) {
|
|
@@ -28198,9 +28263,15 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
|
|
|
28198
28263
|
this.snapshot.destruct();
|
|
28199
28264
|
super.destruct();
|
|
28200
28265
|
}
|
|
28201
|
-
constructor(editor, stack = new
|
|
28266
|
+
constructor(editor, stack = new _stack_js__WEBPACK_IMPORTED_MODULE_4__.Stack(editor.o.history.maxHistoryLength), snapshot = new _snapshot_js__WEBPACK_IMPORTED_MODULE_3__.Snapshot(editor)){
|
|
28202
28267
|
super(editor);
|
|
28203
28268
|
this.updateTick = 0;
|
|
28269
|
+
/**
|
|
28270
|
+
* A step is open: changes have come in that are not in the stack yet
|
|
28271
|
+
*/ this.__hasPendingChanges = false;
|
|
28272
|
+
/**
|
|
28273
|
+
* Records the open step `history.timeout` after its first change
|
|
28274
|
+
*/ this.__timer = 0;
|
|
28204
28275
|
this.__stack = stack;
|
|
28205
28276
|
this.snapshot = snapshot;
|
|
28206
28277
|
if (editor.o.history.enable) {
|
|
@@ -28211,6 +28282,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
|
|
|
28211
28282
|
this.startValue = this.snapshot.make();
|
|
28212
28283
|
editor.events// save selection
|
|
28213
28284
|
.on('internalChange internalUpdate', ()=>{
|
|
28285
|
+
this.__processPendingChanges();
|
|
28214
28286
|
this.startValue = this.snapshot.make();
|
|
28215
28287
|
}).on(editor.editor, [
|
|
28216
28288
|
'changeSelection',
|
|
@@ -28224,14 +28296,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
|
|
|
28224
28296
|
if (this.startValue.html === this.j.getNativeEditorValue()) {
|
|
28225
28297
|
this.startValue = this.snapshot.make();
|
|
28226
28298
|
}
|
|
28227
|
-
}).on(this, 'change.history', this.onChange);
|
|
28299
|
+
}).on(this, 'change.history', ()=>this.onChange());
|
|
28228
28300
|
});
|
|
28229
28301
|
}
|
|
28230
28302
|
}
|
|
28231
28303
|
}
|
|
28232
|
-
__decorate([
|
|
28233
|
-
(0,_core_decorators_debounce_debounce_js__WEBPACK_IMPORTED_MODULE_1__.debounce)()
|
|
28234
|
-
], History.prototype, "onChange", null);
|
|
28235
28304
|
|
|
28236
28305
|
|
|
28237
28306
|
/***/ }),
|
|
@@ -29853,7 +29922,9 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
29853
29922
|
const columnsCount = Table.__getColumnsCount(table);
|
|
29854
29923
|
row = create.element('tr');
|
|
29855
29924
|
for(let j = 0; j < columnsCount; j += 1){
|
|
29856
|
-
|
|
29925
|
+
const cell = create.element('td');
|
|
29926
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.append(cell, create.element('br'));
|
|
29927
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.append(row, cell);
|
|
29857
29928
|
}
|
|
29858
29929
|
} else {
|
|
29859
29930
|
row = line.cloneNode(true);
|
|
@@ -29870,6 +29941,7 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
29870
29941
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.each(row, (cell)=>{
|
|
29871
29942
|
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isCell(cell)) {
|
|
29872
29943
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.detach(cell);
|
|
29944
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.append(cell, create.element('br'));
|
|
29873
29945
|
}
|
|
29874
29946
|
});
|
|
29875
29947
|
}
|
|
@@ -29958,6 +30030,7 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
29958
30030
|
const cells = box[i];
|
|
29959
30031
|
if (cells[columnIndex] !== cells[newColumnIndex] || columnIndex === newColumnIndex) {
|
|
29960
30032
|
const cell = this.j.createInside.element('td');
|
|
30033
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.append(cell, this.j.createInside.element('br'));
|
|
29961
30034
|
if (insertAfter) {
|
|
29962
30035
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.after(cells[columnIndex], cell);
|
|
29963
30036
|
} else {
|
|
@@ -30181,7 +30254,7 @@ class Table extends _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewCo
|
|
|
30181
30254
|
Table.__setColumnWidthByDelta(table, first_j, 0, true, __marked);
|
|
30182
30255
|
}
|
|
30183
30256
|
}
|
|
30184
|
-
first.innerHTML = html.join('<br/>');
|
|
30257
|
+
first.innerHTML = html.join('<br/>') || '<br/>';
|
|
30185
30258
|
instance(jodit).addSelection(first);
|
|
30186
30259
|
alreadyMerged.delete(first);
|
|
30187
30260
|
Table.__unmark(__marked);
|
|
@@ -32403,8 +32476,8 @@ _core_ui_index_js__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', _palette_svg_
|
|
|
32403
32476
|
const box = (0,_tabs_tabs_js__WEBPACK_IMPORTED_MODULE_3__.TabsWidget)(editor, tabs);
|
|
32404
32477
|
// Marks this popup so its tabs auto-size to their labels (see
|
|
32405
32478
|
// `.jodit-file-selector` in tabs.less) — long localized tab captions are no
|
|
32406
|
-
// longer clipped — while leaving other tab popups (link
|
|
32407
|
-
//
|
|
32479
|
+
// longer clipped — while leaving other tab popups (link …) untouched. The
|
|
32480
|
+
// video popup, which has an Upload tab too, uses it as well.
|
|
32408
32481
|
box.classList.add('jodit-file-selector');
|
|
32409
32482
|
return box;
|
|
32410
32483
|
};
|
|
@@ -33590,6 +33663,10 @@ class backspace extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugi
|
|
|
33590
33663
|
if (!sel.isFocused()) {
|
|
33591
33664
|
sel.focus();
|
|
33592
33665
|
}
|
|
33666
|
+
// Focused with no range, as WebKit leaves it after a click on an embed
|
|
33667
|
+
if (!sel.isInsideArea) {
|
|
33668
|
+
return;
|
|
33669
|
+
}
|
|
33593
33670
|
if ((0,_cases_check_not_collapsed_js__WEBPACK_IMPORTED_MODULE_7__.checkNotCollapsed)(jodit)) {
|
|
33594
33671
|
jodit.e.fire('backSpaceAfterDelete', backspace);
|
|
33595
33672
|
return false;
|
|
@@ -34784,7 +34861,8 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
|
|
|
34784
34861
|
/* harmony import */ var _core_helpers_html_safe_html_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86518);
|
|
34785
34862
|
/* harmony import */ var _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20356);
|
|
34786
34863
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46776);
|
|
34787
|
-
/* harmony import */ var
|
|
34864
|
+
/* harmony import */ var _helpers_visitor_filters_replace_old_tags_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80973);
|
|
34865
|
+
/* harmony import */ var _helpers_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(59498);
|
|
34788
34866
|
/*!
|
|
34789
34867
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
34790
34868
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -34803,6 +34881,7 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
|
|
|
34803
34881
|
|
|
34804
34882
|
|
|
34805
34883
|
|
|
34884
|
+
|
|
34806
34885
|
/**
|
|
34807
34886
|
* Clean HTML after removeFormat and insertHorizontalRule command
|
|
34808
34887
|
*/ const TRAILING_BR_BLOCKS = 'p, div, li, td, th, h1, h2, h3, h4, h5, h6, blockquote';
|
|
@@ -34827,18 +34906,18 @@ class cleanHtml extends _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_5__.Plug
|
|
|
34827
34906
|
}
|
|
34828
34907
|
startWalker() {
|
|
34829
34908
|
const { jodit } = this;
|
|
34830
|
-
const allow = (0,
|
|
34831
|
-
const deny = (0,
|
|
34832
|
-
this.walker.on('visit', (node)=>(0,
|
|
34909
|
+
const allow = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.getHash)(this.j.o.cleanHTML.allowTags);
|
|
34910
|
+
const deny = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.getHash)(this.j.o.cleanHTML.denyTags);
|
|
34911
|
+
this.walker.on('visit', (node)=>(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.visitNodeWalker)(jodit, node, allow, deny, this.currentSelectionNode)).on('end', (affected)=>{
|
|
34833
34912
|
this.j.e.fire(affected ? 'internalChange finishedCleanHTMLWorker' : 'finishedCleanHTMLWorker');
|
|
34834
34913
|
});
|
|
34835
34914
|
}
|
|
34836
34915
|
beforeCommand(command) {
|
|
34837
34916
|
if (command.toLowerCase() === 'removeformat') {
|
|
34838
34917
|
if (this.j.s.isCollapsed()) {
|
|
34839
|
-
(0,
|
|
34918
|
+
(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.removeFormatForCollapsedSelection)(this.j);
|
|
34840
34919
|
} else {
|
|
34841
|
-
(0,
|
|
34920
|
+
(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.removeFormatForSelection)(this.j);
|
|
34842
34921
|
}
|
|
34843
34922
|
return false;
|
|
34844
34923
|
}
|
|
@@ -34864,6 +34943,7 @@ class cleanHtml extends _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_5__.Plug
|
|
|
34864
34943
|
];
|
|
34865
34944
|
sandBox.innerHTML = data.value;
|
|
34866
34945
|
this.j.e.fire('safeHTML', sandBox);
|
|
34946
|
+
this.__replaceOldTags(sandBox);
|
|
34867
34947
|
data.value = sandBox.innerHTML;
|
|
34868
34948
|
(0,_core_helpers_html_safe_html_js__WEBPACK_IMPORTED_MODULE_4__.safeHTML)(sandBox, {
|
|
34869
34949
|
safeJavaScriptLink: true,
|
|
@@ -34872,6 +34952,20 @@ class cleanHtml extends _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_5__.Plug
|
|
|
34872
34952
|
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(iframe);
|
|
34873
34953
|
return false;
|
|
34874
34954
|
}
|
|
34955
|
+
/**
|
|
34956
|
+
* Replace old tags (`<b>` with `<strong>`, `<i>` with `<em>`) in an
|
|
34957
|
+
* assigned value straight away. The walker would get to them only after
|
|
34958
|
+
* every node before them, seconds later on a long document, and until
|
|
34959
|
+
* then Bold does not treat `<b>` as bold, and the swap can move the caret.
|
|
34960
|
+
*/ __replaceOldTags(box) {
|
|
34961
|
+
const { replaceOldTags: list, disableCleanFilter } = this.j.o.cleanHTML;
|
|
34962
|
+
if (!list || (disableCleanFilter === null || disableCleanFilter === void 0 ? void 0 : disableCleanFilter.has('replaceOldTags'))) {
|
|
34963
|
+
return;
|
|
34964
|
+
}
|
|
34965
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.each(box, (node)=>{
|
|
34966
|
+
;(0,_helpers_visitor_filters_replace_old_tags_js__WEBPACK_IMPORTED_MODULE_7__.replaceOldTags)(this.j, node, false);
|
|
34967
|
+
});
|
|
34968
|
+
}
|
|
34875
34969
|
/**
|
|
34876
34970
|
* Collapse a value that holds only a single empty block (e.g.
|
|
34877
34971
|
* `<p><br></p>` left after deleting all content) to an empty string —
|
|
@@ -35575,10 +35669,33 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
35575
35669
|
}
|
|
35576
35670
|
const tagName = list[oldParent.nodeName.toLowerCase()] || list[oldParent.nodeName];
|
|
35577
35671
|
if (tagName) {
|
|
35578
|
-
|
|
35672
|
+
const restoreSelection = keepSelection(jodit, oldParent);
|
|
35673
|
+
const newParent = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.replace(oldParent, tagName, jodit.createInside, true, false);
|
|
35674
|
+
restoreSelection === null || restoreSelection === void 0 ? void 0 : restoreSelection(newParent);
|
|
35675
|
+
return newParent;
|
|
35579
35676
|
}
|
|
35580
35677
|
return oldParent;
|
|
35581
35678
|
}
|
|
35679
|
+
/**
|
|
35680
|
+
* Moving the children out of an element collapses a selection inside them to
|
|
35681
|
+
* where the element was, so the caret jumps to the start of the text being
|
|
35682
|
+
* typed. Returns a callback that puts the selection back on the same nodes.
|
|
35683
|
+
*
|
|
35684
|
+
* Like `removeEmptyTextNode`, it leaves the selection alone once focus has
|
|
35685
|
+
* left the editor, because selecting would take focus back.
|
|
35686
|
+
*/ function keepSelection(jodit, elm) {
|
|
35687
|
+
const { sel } = jodit.s;
|
|
35688
|
+
if (!(sel === null || sel === void 0 ? void 0 : sel.anchorNode) || !sel.focusNode || !jodit.s.isFocused()) {
|
|
35689
|
+
return null;
|
|
35690
|
+
}
|
|
35691
|
+
const { anchorNode, anchorOffset, focusNode, focusOffset } = sel;
|
|
35692
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isOrContains(elm, anchorNode) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isOrContains(elm, focusNode)) {
|
|
35693
|
+
return null;
|
|
35694
|
+
}
|
|
35695
|
+
return (newElm)=>{
|
|
35696
|
+
sel.setBaseAndExtent(anchorNode === elm ? newElm : anchorNode, anchorOffset, focusNode === elm ? newElm : focusNode, focusOffset);
|
|
35697
|
+
};
|
|
35698
|
+
}
|
|
35582
35699
|
|
|
35583
35700
|
|
|
35584
35701
|
/***/ }),
|
|
@@ -37210,9 +37327,32 @@ const brBoxes = new Set([
|
|
|
37210
37327
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
37211
37328
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
37212
37329
|
*/
|
|
37330
|
+
/**
|
|
37331
|
+
* Moves the cursor out of a block that can't hold the inserted block: before
|
|
37332
|
+
* or after it when the cursor is at its edge, or between its two halves when
|
|
37333
|
+
* the cursor is inside its content. An empty block is removed
|
|
37334
|
+
*/ function moveCursorOutOf(jodit, parent) {
|
|
37335
|
+
var _a;
|
|
37336
|
+
const { s } = jodit;
|
|
37337
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(parent)) {
|
|
37338
|
+
s.setCursorAfter(parent);
|
|
37339
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(parent);
|
|
37340
|
+
return;
|
|
37341
|
+
}
|
|
37342
|
+
if (s.cursorOnTheRight(parent)) {
|
|
37343
|
+
s.setCursorAfter(parent);
|
|
37344
|
+
return;
|
|
37345
|
+
}
|
|
37346
|
+
if (s.cursorOnTheLeft(parent)) {
|
|
37347
|
+
s.setCursorBefore(parent);
|
|
37348
|
+
return;
|
|
37349
|
+
}
|
|
37350
|
+
s.setCursorAfter((_a = s.splitSelection(parent)) !== null && _a !== void 0 ? _a : parent);
|
|
37351
|
+
}
|
|
37213
37352
|
/**
|
|
37214
37353
|
* Checks whether the insertion of an element at the current location is allowed,
|
|
37215
|
-
* if it is not allowed, it deletes an empty block element
|
|
37354
|
+
* if it is not allowed, it deletes an empty block element, moves the cursor
|
|
37355
|
+
* before or after it, or splits it at the cursor
|
|
37216
37356
|
* @internal
|
|
37217
37357
|
*/ function checkBlockNesting(jodit, node) {
|
|
37218
37358
|
var _a, _b;
|
|
@@ -37241,10 +37381,7 @@ const brBoxes = new Set([
|
|
|
37241
37381
|
parent = current;
|
|
37242
37382
|
}
|
|
37243
37383
|
if (parent) {
|
|
37244
|
-
jodit
|
|
37245
|
-
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(parent)) {
|
|
37246
|
-
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(parent);
|
|
37247
|
-
}
|
|
37384
|
+
moveCursorOutOf(jodit, parent);
|
|
37248
37385
|
}
|
|
37249
37386
|
}
|
|
37250
37387
|
}
|
|
@@ -37749,7 +37886,14 @@ function brBefore(start) {
|
|
|
37749
37886
|
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(link, fake);
|
|
37750
37887
|
} else if (s.cursorOnTheLeft(link, fake)) {
|
|
37751
37888
|
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.before(link, fake);
|
|
37889
|
+
} else {
|
|
37890
|
+
return;
|
|
37752
37891
|
}
|
|
37892
|
+
// The block is split at the caret, so the caret leaves the link too:
|
|
37893
|
+
// beside the fake, since Safari mislays a caret inside a removed node
|
|
37894
|
+
const range = s.createRange();
|
|
37895
|
+
range.setStartBefore(fake);
|
|
37896
|
+
s.selectRange(range);
|
|
37753
37897
|
}
|
|
37754
37898
|
}
|
|
37755
37899
|
|
|
@@ -37979,9 +38123,10 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('file', file);
|
|
|
37979
38123
|
/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
|
|
37980
38124
|
|
|
37981
38125
|
/* unused harmony export focus */
|
|
37982
|
-
/* harmony import */ var
|
|
37983
|
-
/* harmony import */ var
|
|
37984
|
-
/* harmony import */ var
|
|
38126
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
38127
|
+
/* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22732);
|
|
38128
|
+
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
|
|
38129
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6441);
|
|
37985
38130
|
/*!
|
|
37986
38131
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
37987
38132
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -37989,15 +38134,16 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('file', file);
|
|
|
37989
38134
|
*/
|
|
37990
38135
|
|
|
37991
38136
|
|
|
38137
|
+
|
|
37992
38138
|
/**
|
|
37993
38139
|
* After loading the page into the editor once the focus is set
|
|
37994
|
-
*/
|
|
38140
|
+
*/ _config_js__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.autofocus = false;
|
|
37995
38141
|
/**
|
|
37996
38142
|
* Cursor position after autofocus
|
|
37997
|
-
*/
|
|
38143
|
+
*/ _config_js__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.cursorAfterAutofocus = 'end';
|
|
37998
38144
|
/**
|
|
37999
38145
|
* Save current selection on blur event
|
|
38000
|
-
*/
|
|
38146
|
+
*/ _config_js__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.saveSelectionOnBlur = true;
|
|
38001
38147
|
function focus(editor) {
|
|
38002
38148
|
if (editor.o.saveSelectionOnBlur) {
|
|
38003
38149
|
// A click that brings focus back places the caret itself, and Chrome
|
|
@@ -38029,10 +38175,10 @@ function focus(editor) {
|
|
|
38029
38175
|
let textNode = null;
|
|
38030
38176
|
switch(editor.o.cursorAfterAutofocus){
|
|
38031
38177
|
case 'start':
|
|
38032
|
-
textNode =
|
|
38178
|
+
textNode = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.first(editor.editor, (node)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(node));
|
|
38033
38179
|
break;
|
|
38034
38180
|
case 'end':
|
|
38035
|
-
textNode =
|
|
38181
|
+
textNode = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.last(editor.editor, (node)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(node));
|
|
38036
38182
|
break;
|
|
38037
38183
|
}
|
|
38038
38184
|
if (textNode) {
|
|
@@ -38050,7 +38196,8 @@ function focus(editor) {
|
|
|
38050
38196
|
});
|
|
38051
38197
|
editor.e.on('afterInit afterAddPlace', ()=>{
|
|
38052
38198
|
editor.e.off(editor.editor, 'mousedown.autofocus').on(editor.editor, 'mousedown.autofocus', (e)=>{
|
|
38053
|
-
|
|
38199
|
+
// An empty block takes the caret, but a video, say, can't hold one
|
|
38200
|
+
if (editor.isEditorMode() && e.target && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(e.target) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(e.target, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) && !e.target.childNodes.length) {
|
|
38054
38201
|
if (editor.editor === e.target) {
|
|
38055
38202
|
editor.s.focus();
|
|
38056
38203
|
} else {
|
|
@@ -38060,7 +38207,7 @@ function focus(editor) {
|
|
|
38060
38207
|
});
|
|
38061
38208
|
});
|
|
38062
38209
|
}
|
|
38063
|
-
|
|
38210
|
+
_core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('focus', focus);
|
|
38064
38211
|
|
|
38065
38212
|
|
|
38066
38213
|
/***/ }),
|
|
@@ -39233,18 +39380,29 @@ function hr(editor) {
|
|
|
39233
39380
|
group: 'insert'
|
|
39234
39381
|
});
|
|
39235
39382
|
editor.registerCommand('insertHorizontalRule', ()=>{
|
|
39383
|
+
var _a;
|
|
39236
39384
|
const elm = editor.createInside.element('hr');
|
|
39237
39385
|
editor.s.insertNode(elm, false, false);
|
|
39238
39386
|
const block = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(elm.parentElement, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock, editor.editor);
|
|
39239
|
-
|
|
39387
|
+
// A block that holds other blocks, such as a list item or a table
|
|
39388
|
+
// cell, keeps the line
|
|
39389
|
+
if (block && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(block) && block !== editor.editor && !((_a = editor.o.dtd) === null || _a === void 0 ? void 0 : _a.blockLimits[block.nodeName.toLowerCase()])) {
|
|
39240
39390
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(block, elm);
|
|
39241
39391
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(block);
|
|
39242
39392
|
}
|
|
39243
|
-
|
|
39244
|
-
if (
|
|
39245
|
-
|
|
39246
|
-
|
|
39393
|
+
const next = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findNotEmptySibling(elm, false);
|
|
39394
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(next)) {
|
|
39395
|
+
editor.s.setCursorIn(next, true);
|
|
39396
|
+
return false;
|
|
39247
39397
|
}
|
|
39398
|
+
// In a list item or a table cell the text goes on after the line, as
|
|
39399
|
+
// it does with the browsers' own command
|
|
39400
|
+
if (next || elm.parentNode !== editor.editor && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findNotEmptySibling(elm, true))) {
|
|
39401
|
+
editor.s.setCursorAfter(elm);
|
|
39402
|
+
return false;
|
|
39403
|
+
}
|
|
39404
|
+
const p = editor.createInside.element(editor.o.enter);
|
|
39405
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(elm, p);
|
|
39248
39406
|
editor.s.setCursorIn(p);
|
|
39249
39407
|
return false;
|
|
39250
39408
|
});
|
|
@@ -39277,7 +39435,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeBaseUrl = '';
|
|
|
39277
39435
|
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeTitle = 'Jodit Editor';
|
|
39278
39436
|
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeDoctype = '<!DOCTYPE html>';
|
|
39279
39437
|
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeDefaultSrc = 'about:blank';
|
|
39280
|
-
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeStyle = 'html{' + 'margin:0;' + 'padding:0;' + 'min-height: 100%;' + '}' + 'body{' + 'box-sizing:border-box;' + 'font-size:13px;' + 'line-height:1.6;' + 'padding:10px;' + 'margin:0;' + 'background:transparent;' + 'color:#000;' + 'position:' + 'relative;' + 'z-index:2;' + 'user-select:auto;' + 'margin:0px;' + 'overflow:auto;' + 'outline:none;' + '}' + 'table{' + 'width:100%;' + 'border:none;' + 'border-collapse:collapse;' + 'empty-cells: show;' + 'max-width: 100%;' + '}' + 'th,td{' + 'padding: 2px 5px;' + 'border:1px solid #ccc;' + '-webkit-user-select:text;' + '-moz-user-select:text;' + '-ms-user-select:text;' + 'user-select:text' + '}' + 'p{' + 'margin-top:0;' + '}' + '
|
|
39438
|
+
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeStyle = 'html{' + 'margin:0;' + 'padding:0;' + 'min-height: 100%;' + '}' + 'body{' + 'box-sizing:border-box;' + 'font-size:13px;' + 'line-height:1.6;' + 'padding:10px;' + 'margin:0;' + 'background:transparent;' + 'color:#000;' + 'position:' + 'relative;' + 'z-index:2;' + 'user-select:auto;' + 'margin:0px;' + 'overflow:auto;' + 'outline:none;' + '}' + 'table{' + 'width:100%;' + 'border:none;' + 'border-collapse:collapse;' + 'empty-cells: show;' + 'max-width: 100%;' + '}' + 'th,td{' + 'padding: 2px 5px;' + 'border:1px solid #ccc;' + '-webkit-user-select:text;' + '-moz-user-select:text;' + '-ms-user-select:text;' + 'user-select:text' + '}' + 'p{' + 'margin-top:0;' + '}' + '[data-jodit_iframe_wrapper]{' + 'display: block;' + 'user-select: none;' + 'position: relative;' + '}' + '[data-jodit_iframe_wrapper] iframe{' + 'position: relative;' + '}' + '[data-jodit_iframe_wrapper]:after {' + 'position:absolute;' + 'content:"";' + 'z-index:1;' + 'top:0;' + 'left:0;' + 'right: 0;' + 'bottom: 0;' + 'cursor: pointer;' + 'display: block;' + 'background: rgba(0, 0, 0, 0);' + '} ' + '[data-jodit_iframe_wrapper][data-jodit-wrapper_active=true] iframe{' + 'z-index: 2;' + '}' + '.jodit-wysiwyg_image-selected::selection,' + '.jodit-wysiwyg_image-selected *:not(img)::selection{' + 'background:transparent' + '}' + '.jodit_disabled{' + 'user-select: none;' + '-o-user-select: none;' + '-moz-user-select: none;' + '-khtml-user-select: none;' + '-webkit-user-select: none;' + '-ms-user-select: none' + '}';
|
|
39281
39439
|
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeCSSLinks = [];
|
|
39282
39440
|
_config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeSandbox = null;
|
|
39283
39441
|
|
|
@@ -42037,10 +42195,30 @@ const align = {
|
|
|
42037
42195
|
// A media wrapper kept in the content gets the media popup
|
|
42038
42196
|
const type = mediaWrapper ? 'jodit-media' : target === null || target === void 0 ? void 0 : target.nodeName.toLowerCase();
|
|
42039
42197
|
if (target && type && this.canShowPopupForType(type)) {
|
|
42040
|
-
|
|
42198
|
+
const isMedia = type === 'jodit-media';
|
|
42199
|
+
// Beside the media in a wrapper kept in the content, which can fill
|
|
42200
|
+
// the line
|
|
42201
|
+
const bound = mediaWrapper && (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.getWrappedMedia)(this.j, mediaWrapper) || target;
|
|
42202
|
+
this.showPopup(()=>this.__bound(bound, isMedia), type, target);
|
|
42041
42203
|
return false;
|
|
42042
42204
|
}
|
|
42043
42205
|
}
|
|
42206
|
+
/**
|
|
42207
|
+
* The box the popup opens beside: the target's, with room for the
|
|
42208
|
+
* resizer's handles when the target gets them, so it doesn't cover them
|
|
42209
|
+
*/ __bound(target, isMedia) {
|
|
42210
|
+
const bound = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(target, this.j);
|
|
42211
|
+
const resizable = this.j.o.allowResizeTags;
|
|
42212
|
+
if (!isMedia && !(resizable && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(target, resizable))) {
|
|
42213
|
+
return bound;
|
|
42214
|
+
}
|
|
42215
|
+
const room = parseInt(this.j.ow.getComputedStyle(this.j.container).getPropertyValue('--jd-resizer-handle-size'), 10) / 2 || 0;
|
|
42216
|
+
return {
|
|
42217
|
+
...bound,
|
|
42218
|
+
top: bound.top - room,
|
|
42219
|
+
height: bound.height + room * 2
|
|
42220
|
+
};
|
|
42221
|
+
}
|
|
42044
42222
|
/**
|
|
42045
42223
|
* Show inline popup with some toolbar
|
|
42046
42224
|
*
|
|
@@ -42986,7 +43164,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
|
|
|
42986
43164
|
height: (_d = jodit.o.video) === null || _d === void 0 ? void 0 : _d.defaultHeight
|
|
42987
43165
|
});
|
|
42988
43166
|
if (embed !== html) {
|
|
42989
|
-
|
|
43167
|
+
const media = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.prepareEmbedCode)(jodit, embed);
|
|
43168
|
+
return (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.isString)(media) ? jodit.createInside.fromHTML(media) : media;
|
|
42990
43169
|
}
|
|
42991
43170
|
}
|
|
42992
43171
|
if (jodit.s.isCollapsed()) {
|
|
@@ -43464,10 +43643,27 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.mediaWrappers = {};
|
|
|
43464
43643
|
} else {
|
|
43465
43644
|
return;
|
|
43466
43645
|
}
|
|
43646
|
+
// Selected, as an image is, so Delete and Backspace remove it
|
|
43467
43647
|
editor.e.off(element, 'mousedown.select touchstart.select').on(element, 'mousedown.select touchstart.select', ()=>{
|
|
43468
|
-
editor.s.
|
|
43648
|
+
editor.s.select(element);
|
|
43469
43649
|
});
|
|
43470
43650
|
};
|
|
43651
|
+
// Media in a wrapper kept in the content let clicks through to it, as
|
|
43652
|
+
// jodit-media covers its media, so a click selects the media rather than
|
|
43653
|
+
// playing it. An inline wrapper holds it as an inline-block, unless its
|
|
43654
|
+
// classes or style give it a display of their own
|
|
43655
|
+
const wrappers = Object.values(mediaWrappers);
|
|
43656
|
+
if (wrappers.length) {
|
|
43657
|
+
editor.e.on('afterInit', ()=>{
|
|
43658
|
+
const selectors = (list)=>[
|
|
43659
|
+
...new Set(list)
|
|
43660
|
+
].join(',');
|
|
43661
|
+
const scoped = ({ tag, className })=>`.jodit-wysiwyg ${tag}.${className}`;
|
|
43662
|
+
const inline = selectors(wrappers.filter(({ tag })=>_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE.test(tag)).map(scoped));
|
|
43663
|
+
const media = selectors(wrappers.flatMap((wrapper)=>mediaBlocks.map((tag)=>`${scoped(wrapper)}>${tag}`)));
|
|
43664
|
+
(0,_core_global_js__WEBPACK_IMPORTED_MODULE_2__.getContainer)(editor, 'media-wrappers', 'style', true).innerHTML = (inline ? `:where(${inline}){display:inline-block}` : '') + `${media}{pointer-events:none}`;
|
|
43665
|
+
});
|
|
43666
|
+
}
|
|
43471
43667
|
if (mediaInFakeBlock || Object.keys(mediaWrappers).length) {
|
|
43472
43668
|
editor.e.on('afterGetValueFromEditor', (data)=>{
|
|
43473
43669
|
const rxp = new RegExp(`<${mediaFakeTag}[^>]+data-${keyFake}[^>]+>([^]+?)</${mediaFakeTag}>`, 'ig');
|
|
@@ -44360,12 +44556,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
44360
44556
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
44361
44557
|
/* harmony export */ askInsertTypeDialog: function() { return /* binding */ askInsertTypeDialog; },
|
|
44362
44558
|
/* harmony export */ getAllTypes: function() { return /* binding */ getAllTypes; },
|
|
44363
|
-
/* harmony export */ pasteInsertHtml: function() { return /* binding */ pasteInsertHtml; }
|
|
44559
|
+
/* harmony export */ pasteInsertHtml: function() { return /* binding */ pasteInsertHtml; },
|
|
44560
|
+
/* harmony export */ removeGoogleDocsWrapper: function() { return /* binding */ removeGoogleDocsWrapper; }
|
|
44364
44561
|
/* harmony export */ });
|
|
44365
44562
|
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
44366
44563
|
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
|
|
44367
|
-
/* harmony import */ var
|
|
44368
|
-
/* harmony import */ var
|
|
44564
|
+
/* harmony import */ var _core_helpers_array_to_array_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4510);
|
|
44565
|
+
/* harmony import */ var _core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(27613);
|
|
44566
|
+
/* harmony import */ var _core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10830);
|
|
44369
44567
|
/*!
|
|
44370
44568
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
44371
44569
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -44374,6 +44572,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
44374
44572
|
|
|
44375
44573
|
|
|
44376
44574
|
|
|
44575
|
+
|
|
44377
44576
|
/**
|
|
44378
44577
|
* Remove special HTML comments
|
|
44379
44578
|
* @private
|
|
@@ -44389,6 +44588,21 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
44389
44588
|
}
|
|
44390
44589
|
return html;
|
|
44391
44590
|
}
|
|
44591
|
+
/**
|
|
44592
|
+
* Google Docs wraps the copied content in
|
|
44593
|
+
* `<b style="font-weight:normal;" id="docs-internal-guid-…">`. Kept, the
|
|
44594
|
+
* wrapper holds the pasted blocks, and without its style it makes the whole
|
|
44595
|
+
* paste bold
|
|
44596
|
+
* @private
|
|
44597
|
+
*/ function removeGoogleDocsWrapper(html) {
|
|
44598
|
+
if (!/<b\s[^>]*docs-internal-guid-/i.test(html)) {
|
|
44599
|
+
return html;
|
|
44600
|
+
}
|
|
44601
|
+
// An inert document: images don't load and handlers don't run
|
|
44602
|
+
const { body } = new DOMParser().parseFromString(html, 'text/html');
|
|
44603
|
+
(0,_core_helpers_array_to_array_js__WEBPACK_IMPORTED_MODULE_2__.toArray)(body.querySelectorAll('b[id^="docs-internal-guid-"]')).forEach(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap);
|
|
44604
|
+
return body.innerHTML;
|
|
44605
|
+
}
|
|
44392
44606
|
/**
|
|
44393
44607
|
* @private
|
|
44394
44608
|
*/ function isDragEvent(e) {
|
|
@@ -44405,11 +44619,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
44405
44619
|
editor.s.insertCursorAtPoint(e.clientX, e.clientY);
|
|
44406
44620
|
}
|
|
44407
44621
|
const result = editor.e.fire('beforePasteInsert', html);
|
|
44408
|
-
if (!(0,
|
|
44622
|
+
if (!(0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isVoid)(result) && ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isString)(result) || (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(result) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isNode(result))) {
|
|
44409
44623
|
html = result;
|
|
44410
44624
|
}
|
|
44411
|
-
if ((0,
|
|
44412
|
-
html = removeExtraFragments(html);
|
|
44625
|
+
if ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isString)(html)) {
|
|
44626
|
+
html = removeExtraFragments(removeGoogleDocsWrapper(html));
|
|
44413
44627
|
}
|
|
44414
44628
|
editor.s.insertHTML(html);
|
|
44415
44629
|
}
|
|
@@ -44419,7 +44633,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
44419
44633
|
*/ function getAllTypes(dt) {
|
|
44420
44634
|
const types = dt.types;
|
|
44421
44635
|
let types_str = '';
|
|
44422
|
-
if ((0,
|
|
44636
|
+
if ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isArray)(types) || ({}).toString.call(types) === '[object DOMStringList]') {
|
|
44423
44637
|
for(let i = 0; i < types.length; i += 1){
|
|
44424
44638
|
types_str += types[i] + ';';
|
|
44425
44639
|
}
|
|
@@ -44436,7 +44650,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
44436
44650
|
return;
|
|
44437
44651
|
}
|
|
44438
44652
|
const dialog = jodit.confirm(`<div style="word-break: normal; white-space: normal">${jodit.i18n(msg)}</div>`, jodit.i18n(title));
|
|
44439
|
-
const buttons = buttonList.map(({ text, value })=>(0,
|
|
44653
|
+
const buttons = buttonList.map(({ text, value })=>(0,_core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_4__.Button)(jodit, {
|
|
44440
44654
|
text,
|
|
44441
44655
|
name: text.toLowerCase(),
|
|
44442
44656
|
tabIndex: 0
|
|
@@ -44452,7 +44666,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
44452
44666
|
}
|
|
44453
44667
|
jodit.e.fire('afterClosePasteDialog', dialog);
|
|
44454
44668
|
});
|
|
44455
|
-
const cancel = (0,
|
|
44669
|
+
const cancel = (0,_core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_4__.Button)(jodit, {
|
|
44456
44670
|
text: 'Cancel',
|
|
44457
44671
|
tabIndex: 0
|
|
44458
44672
|
}).onAction(()=>{
|
|
@@ -44601,7 +44815,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
44601
44815
|
this.j.buffer.set(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, html);
|
|
44602
44816
|
switch(action){
|
|
44603
44817
|
case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSERT_CLEAR_HTML:
|
|
44604
|
-
html = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.cleanFromWord)(html);
|
|
44818
|
+
html = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.cleanFromWord)((0,_helpers_js__WEBPACK_IMPORTED_MODULE_7__.removeGoogleDocsWrapper)(html));
|
|
44605
44819
|
break;
|
|
44606
44820
|
case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSERT_ONLY_TEXT:
|
|
44607
44821
|
html = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.stripTags)(html, this.j.ed, new Set(this.j.o.pasteExcludeStripTags), this.j.o.nl2brInPlainText);
|
|
@@ -45751,7 +45965,7 @@ const keyBInd = '__jodit-resizer_binded';
|
|
|
45751
45965
|
addEventListeners() {
|
|
45752
45966
|
const editor = this.j;
|
|
45753
45967
|
editor.e.off(editor.editor, '.resizer').off(editor.ow, '.resizer').on(editor.editor, 'keydown.resizer', (e)=>{
|
|
45754
|
-
if (this.isShown && e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DELETE && this.element && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(this.element, 'table')) {
|
|
45968
|
+
if (this.isShown && (e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DELETE || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_BACKSPACE) && this.element && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(this.element, 'table')) {
|
|
45755
45969
|
this.onDelete(e);
|
|
45756
45970
|
}
|
|
45757
45971
|
}).on(editor.ow, 'resize.resizer', this.updateSize).on('resize.resizer', this.updateSize).on([
|
|
@@ -45958,8 +46172,12 @@ const keyBInd = '__jodit-resizer_binded';
|
|
|
45958
46172
|
this.j.e.off(element, 'mousedown.select touchstart.select').on(element, 'mousedown.select touchstart.select', ()=>{
|
|
45959
46173
|
this.j.s.select(element);
|
|
45960
46174
|
}).off(element, 'changesize').on(element, 'changesize', ()=>{
|
|
45961
|
-
|
|
45962
|
-
|
|
46175
|
+
// Only a resize sets the embed's size, and as the plain numbers
|
|
46176
|
+
// the attributes take, so a click leaves `width="100%"` alone
|
|
46177
|
+
if (this.isResizeMode) {
|
|
46178
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(iframe, 'width', element.offsetWidth);
|
|
46179
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(iframe, 'height', element.offsetHeight);
|
|
46180
|
+
}
|
|
45963
46181
|
});
|
|
45964
46182
|
}
|
|
45965
46183
|
this.j.e.on(element, 'dragstart', this.hide);
|
|
@@ -47333,15 +47551,23 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
47333
47551
|
this.__tableModule.mergeSelected(table);
|
|
47334
47552
|
break;
|
|
47335
47553
|
case 'empty':
|
|
47336
|
-
cells.forEach((td)=>
|
|
47554
|
+
cells.forEach((td)=>{
|
|
47555
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.detach(td);
|
|
47556
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(td, this.j.createInside.element('br'));
|
|
47557
|
+
});
|
|
47337
47558
|
break;
|
|
47338
47559
|
case 'bin':
|
|
47339
|
-
|
|
47560
|
+
this.__removeTable(table);
|
|
47340
47561
|
break;
|
|
47341
47562
|
case 'binrow':
|
|
47342
|
-
|
|
47343
|
-
|
|
47344
|
-
|
|
47563
|
+
{
|
|
47564
|
+
const rows = new Set(cells.map((td)=>td.parentNode));
|
|
47565
|
+
const next = this.__nearestCell(table, cell, (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.toArray)(rows).map((row)=>row.rowIndex), true);
|
|
47566
|
+
rows.forEach((row)=>{
|
|
47567
|
+
this.__tableModule.removeRow(table, row.rowIndex);
|
|
47568
|
+
});
|
|
47569
|
+
next && this.j.s.setCursorIn(next);
|
|
47570
|
+
}
|
|
47345
47571
|
break;
|
|
47346
47572
|
case 'bincolumn':
|
|
47347
47573
|
{
|
|
@@ -47354,9 +47580,11 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
47354
47580
|
columnsSet.add(col);
|
|
47355
47581
|
}
|
|
47356
47582
|
});
|
|
47583
|
+
const next = this.__nearestCell(table, cell, columns, false);
|
|
47357
47584
|
columns.sort((a, b)=>b - a).forEach((col)=>{
|
|
47358
47585
|
this.__tableModule.removeColumn(table, col);
|
|
47359
47586
|
});
|
|
47587
|
+
next && this.j.s.setCursorIn(next);
|
|
47360
47588
|
}
|
|
47361
47589
|
break;
|
|
47362
47590
|
case 'addcolumnafter':
|
|
@@ -47368,10 +47596,36 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
47368
47596
|
this.__tableModule.appendRow(table, cell.parentNode, command === 'addrowafter');
|
|
47369
47597
|
break;
|
|
47370
47598
|
}
|
|
47599
|
+
if (/^bin(row|column)$/.test(command) && !this.__tableModule.getColumnsCount(table)) {
|
|
47600
|
+
this.__removeTable(table);
|
|
47601
|
+
}
|
|
47371
47602
|
}
|
|
47372
47603
|
return false;
|
|
47373
47604
|
}
|
|
47374
47605
|
}
|
|
47606
|
+
/**
|
|
47607
|
+
* The cell that takes the caret when rows or columns are deleted: the next
|
|
47608
|
+
* one in the same column (or row) that is not deleted, else the previous one
|
|
47609
|
+
*/ __nearestCell(table, cell, deleted, isRow) {
|
|
47610
|
+
const box = this.__tableModule.formalMatrix(table);
|
|
47611
|
+
const [row, column] = this.__tableModule.formalCoordinate(table, cell);
|
|
47612
|
+
const start = isRow ? row : column;
|
|
47613
|
+
const count = isRow ? box.length : box[row].length;
|
|
47614
|
+
const find = (i)=>!deleted.includes(i) && (isRow ? box[i][column] : box[row][i]) || null;
|
|
47615
|
+
for(let i = start + 1; i < count; i += 1){
|
|
47616
|
+
const next = find(i);
|
|
47617
|
+
if (next) {
|
|
47618
|
+
return next;
|
|
47619
|
+
}
|
|
47620
|
+
}
|
|
47621
|
+
for(let i = start - 1; i >= 0; i -= 1){
|
|
47622
|
+
const prev = find(i);
|
|
47623
|
+
if (prev) {
|
|
47624
|
+
return prev;
|
|
47625
|
+
}
|
|
47626
|
+
}
|
|
47627
|
+
return null;
|
|
47628
|
+
}
|
|
47375
47629
|
/**
|
|
47376
47630
|
* Add some align after native command
|
|
47377
47631
|
*/ onAfterCommand(command) {
|
|
@@ -47379,6 +47633,14 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
47379
47633
|
this.__tableModule.getAllSelectedCells().forEach((elm)=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.alignElement)(command, elm));
|
|
47380
47634
|
}
|
|
47381
47635
|
}
|
|
47636
|
+
/**
|
|
47637
|
+
* Remove the table and put the caret where it stood: at the start of what
|
|
47638
|
+
* follows it, else at the end of what precedes it
|
|
47639
|
+
*/ __removeTable(table) {
|
|
47640
|
+
const parent = table.parentNode, next = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.findNotEmptySibling(table, false), prev = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.findNotEmptySibling(table, true);
|
|
47641
|
+
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(table);
|
|
47642
|
+
this.j.s.setCursorIn(next || prev || parent, Boolean(next));
|
|
47643
|
+
}
|
|
47382
47644
|
/** @override */ beforeDestruct(jodit) {
|
|
47383
47645
|
this.__onRemoveSelection();
|
|
47384
47646
|
jodit.e.off('.select-cells');
|
|
@@ -50562,7 +50824,7 @@ const WORK_KEYS = new Set([
|
|
|
50562
50824
|
_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(next, first);
|
|
50563
50825
|
editor.s.setCursorBefore(first);
|
|
50564
50826
|
} else {
|
|
50565
|
-
if (key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_TAB) {
|
|
50827
|
+
if (key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_TAB && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(next)) {
|
|
50566
50828
|
editor.s.select(next, true);
|
|
50567
50829
|
} else {
|
|
50568
50830
|
editor.s.setCursorIn(next, key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT || key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN);
|
|
@@ -50626,6 +50888,37 @@ _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.table = {
|
|
|
50626
50888
|
useExtraClassesOptions: false
|
|
50627
50889
|
};
|
|
50628
50890
|
_core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('table', _table_svg_js__WEBPACK_IMPORTED_MODULE_6__["default"]);
|
|
50891
|
+
/**
|
|
50892
|
+
* Elements in `dtd.blockLimits` that hold only rows, cells or list items, so
|
|
50893
|
+
* a table can't go directly inside them
|
|
50894
|
+
*/ const ROW_AND_ITEM_HOLDERS = new Set([
|
|
50895
|
+
'table',
|
|
50896
|
+
'thead',
|
|
50897
|
+
'tbody',
|
|
50898
|
+
'tfoot',
|
|
50899
|
+
'tr',
|
|
50900
|
+
'ul',
|
|
50901
|
+
'ol',
|
|
50902
|
+
'dl'
|
|
50903
|
+
]);
|
|
50904
|
+
/**
|
|
50905
|
+
* The nearest block around the cursor that can hold the new table: an element
|
|
50906
|
+
* in `dtd.blockLimits`, such as a table cell, a list item or a `<div>`. The
|
|
50907
|
+
* cursor's own block of the `enter` tag is a line, not a container, as in the
|
|
50908
|
+
* dtd plugin's `checkBlockNesting`
|
|
50909
|
+
*/ function findTableContainer(editor, current) {
|
|
50910
|
+
const line = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(current, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, editor.editor);
|
|
50911
|
+
const container = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(current, (node)=>{
|
|
50912
|
+
var _a;
|
|
50913
|
+
if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) || node === line && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, editor.o.enter)) {
|
|
50914
|
+
return false;
|
|
50915
|
+
}
|
|
50916
|
+
const tag = node.nodeName.toLowerCase();
|
|
50917
|
+
return Boolean((_a = editor.o.dtd) === null || _a === void 0 ? void 0 : _a.blockLimits[tag]) && !ROW_AND_ITEM_HOLDERS.has(tag);
|
|
50918
|
+
}, editor.editor);
|
|
50919
|
+
// With the cursor between two rows, `current` is the next row's text
|
|
50920
|
+
return container && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(container, editor.s.range.startContainer) ? container : null;
|
|
50921
|
+
}
|
|
50629
50922
|
_config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.table = {
|
|
50630
50923
|
data: {
|
|
50631
50924
|
cols: 10,
|
|
@@ -50723,7 +51016,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.table = {
|
|
|
50723
51016
|
editor.s.removeMarkers();
|
|
50724
51017
|
editor.editor.normalize();
|
|
50725
51018
|
editor.history.snapshot.restore(snapshot);
|
|
50726
|
-
const
|
|
51019
|
+
const current = editor.s.current();
|
|
51020
|
+
// The table goes into the cell, list item or box holding the
|
|
51021
|
+
// cursor, and only a block inside it is split
|
|
51022
|
+
const container = findTableContainer(editor, current);
|
|
51023
|
+
const block = container === current ? null : _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.furthest(current, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, container !== null && container !== void 0 ? container : editor.editor);
|
|
50727
51024
|
if (block && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(block)) {
|
|
50728
51025
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.replace(block, table, undefined, false, true);
|
|
50729
51026
|
} else {
|
|
@@ -50745,6 +51042,9 @@ _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.table = {
|
|
|
50745
51042
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(block, table);
|
|
50746
51043
|
}
|
|
50747
51044
|
}
|
|
51045
|
+
} else if (container && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(container) && !editor.o.table.splitBlockOnInsertTable) {
|
|
51046
|
+
// With no block to go after, the table goes after the text
|
|
51047
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(container, table);
|
|
50748
51048
|
} else {
|
|
50749
51049
|
editor.s.insertNode(table, false);
|
|
50750
51050
|
}
|
|
@@ -51003,33 +51303,15 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_4__.pluginSystem.add('toolbarNavigation
|
|
|
51003
51303
|
|
|
51004
51304
|
|
|
51005
51305
|
|
|
51006
|
-
// Media the popup inserts go in their wrapper (see `mediaWrappers`), aligned
|
|
51007
|
-
// with `mediaDefaultAlign`
|
|
51008
|
-
function prepareMedia(jodit, element) {
|
|
51009
|
-
const media = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.wrapMedia)(jodit, element);
|
|
51010
|
-
const { mediaDefaultAlign } = jodit.o;
|
|
51011
|
-
if (mediaDefaultAlign && mediaDefaultAlign !== 'normal') {
|
|
51012
|
-
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.hAlignElement)(media, mediaDefaultAlign, (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.getAlignClasses)(jodit, media));
|
|
51013
|
-
}
|
|
51014
|
-
return media;
|
|
51015
|
-
}
|
|
51016
51306
|
function insertVideos(data) {
|
|
51017
51307
|
var _a;
|
|
51018
51308
|
(_a = data.files) === null || _a === void 0 ? void 0 : _a.forEach((file)=>{
|
|
51019
|
-
this.s.insertNode(prepareMedia(this, this.createInside.element('video', {
|
|
51309
|
+
this.s.insertNode((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.prepareMedia)(this, this.createInside.element('video', {
|
|
51020
51310
|
controls: '',
|
|
51021
51311
|
src: data.baseurl + file
|
|
51022
51312
|
})));
|
|
51023
51313
|
});
|
|
51024
51314
|
}
|
|
51025
|
-
// Embed code that is one element is prepared as media; other code goes in as
|
|
51026
|
-
// it is
|
|
51027
|
-
function prepareEmbedCode(jodit, code) {
|
|
51028
|
-
const box = jodit.createInside.div();
|
|
51029
|
-
box.innerHTML = code.trim();
|
|
51030
|
-
const element = box.firstElementChild;
|
|
51031
|
-
return element && box.childNodes.length === 1 ? prepareMedia(jodit, element) : code;
|
|
51032
|
-
}
|
|
51033
51315
|
_config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.video = {
|
|
51034
51316
|
parseUrlToVideoEmbed: _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.convertMediaUrlToVideoEmbed,
|
|
51035
51317
|
defaultWidth: 400,
|
|
@@ -51067,7 +51349,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.video = {
|
|
|
51067
51349
|
])
|
|
51068
51350
|
]), tabs = [], insertCode = (code)=>{
|
|
51069
51351
|
jodit.s.restore();
|
|
51070
|
-
jodit.s.insertHTML(prepareEmbedCode(jodit, code));
|
|
51352
|
+
jodit.s.insertHTML((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.prepareEmbedCode)(jodit, code));
|
|
51071
51353
|
close();
|
|
51072
51354
|
};
|
|
51073
51355
|
jodit.s.save();
|
|
@@ -51102,7 +51384,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.video = {
|
|
|
51102
51384
|
formCode.onSubmit((data)=>{
|
|
51103
51385
|
insertCode(data.code);
|
|
51104
51386
|
});
|
|
51105
|
-
|
|
51387
|
+
const box = (0,_modules_widget_index_js__WEBPACK_IMPORTED_MODULE_5__.TabsWidget)(jodit, tabs);
|
|
51388
|
+
// Its tabs are sized to their labels, as the file selector's are, since
|
|
51389
|
+
// "Upload" doesn't fit a third of the popup
|
|
51390
|
+
box.classList.add('jodit-file-selector');
|
|
51391
|
+
return box;
|
|
51106
51392
|
},
|
|
51107
51393
|
tags: [
|
|
51108
51394
|
'iframe'
|