jodit-pro 4.12.24 → 4.12.26
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 +7 -7
- package/es2015/jodit.js +156 -35
- package/es2015/jodit.min.js +38 -38
- 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.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/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 +7 -7
- 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/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 +11 -11
- package/es2021/jodit.js +156 -35
- package/es2021/jodit.min.js +8 -8
- 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.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/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 +8 -8
- package/es2021.en/jodit.js +156 -35
- package/es2021.en/jodit.min.js +8 -8
- 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.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/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 +165 -35
- 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.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/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/jodit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit-pro - PRO Version of Jodit Editor
|
|
3
3
|
* Author: Chupurnov Valerii <chupurnov@gmail.com>
|
|
4
|
-
* Version: v4.12.
|
|
4
|
+
* Version: v4.12.26
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -1746,7 +1746,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1746
1746
|
* ```
|
|
1747
1747
|
* @packageDocumentation
|
|
1748
1748
|
* @module constants
|
|
1749
|
-
*/ const APP_VERSION = "4.12.
|
|
1749
|
+
*/ const APP_VERSION = "4.12.26";
|
|
1750
1750
|
// prettier-ignore
|
|
1751
1751
|
const ES = "es2021";
|
|
1752
1752
|
const IS_ES_MODERN = true;
|
|
@@ -3101,12 +3101,12 @@ function wait(condition) {
|
|
|
3101
3101
|
/**
|
|
3102
3102
|
* Check if element is element node
|
|
3103
3103
|
*/ static isElement(node) {
|
|
3104
|
-
var _a;
|
|
3105
3104
|
if (!Dom.isNode(node)) {
|
|
3106
3105
|
return false;
|
|
3107
3106
|
}
|
|
3108
|
-
|
|
3109
|
-
|
|
3107
|
+
// no `defaultView` requirement — nodes of an inert document
|
|
3108
|
+
// (`DOMParser`, `implementation.createHTMLDocument`) are still elements
|
|
3109
|
+
return node.nodeType === Node.ELEMENT_NODE;
|
|
3110
3110
|
}
|
|
3111
3111
|
/**
|
|
3112
3112
|
* Check if element is document fragment
|
|
@@ -3125,8 +3125,10 @@ function wait(condition) {
|
|
|
3125
3125
|
if (!Dom.isNode(node)) {
|
|
3126
3126
|
return false;
|
|
3127
3127
|
}
|
|
3128
|
+
// an inert document has no browsing context (`defaultView` is null),
|
|
3129
|
+
// but its nodes are same-realm HTMLElements
|
|
3128
3130
|
const win = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
|
|
3129
|
-
return
|
|
3131
|
+
return node instanceof (win ? win.HTMLElement : HTMLElement);
|
|
3130
3132
|
}
|
|
3131
3133
|
/**
|
|
3132
3134
|
* Check element is inline block
|
|
@@ -21932,7 +21934,7 @@ function addClassNames(className, elm) {
|
|
|
21932
21934
|
Clean: 'Temizle',
|
|
21933
21935
|
'Insert as Text': 'Yazı olarak ekle',
|
|
21934
21936
|
'Word Paste Detected': 'Word biçiminde yapıştırma algılandı',
|
|
21935
|
-
'The pasted content is coming from a Microsoft Word/Excel document. Do you want to keep the format or clean it up?': '
|
|
21937
|
+
'The pasted content is coming from a Microsoft Word/Excel document. Do you want to keep the format or clean it up?': 'Yapıştırılan içerik bir Microsoft Word/Excel belgesinden geliyor. Formatı korumak mı yoksa temizlemek mi istiyorsunuz?',
|
|
21936
21938
|
'Insert only Text': 'Sadece yazıyı ekle',
|
|
21937
21939
|
'File Browser': 'Dosya Listeleyici',
|
|
21938
21940
|
'Error on load list': 'Liste yüklenirken hata oluştu',
|
|
@@ -23210,7 +23212,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.controls.dialog = {
|
|
|
23210
23212
|
e.stopImmediatePropagation();
|
|
23211
23213
|
}
|
|
23212
23214
|
if (this.resizable && this.o.resizable) {
|
|
23213
|
-
this.setSize(this.startPoint.w + e.clientX - this.startX, this.startPoint.h + e.clientY - this.startY);
|
|
23215
|
+
this.setSize(Math.max(this.startPoint.w + e.clientX - this.startX, this.minSize.w), Math.max(this.startPoint.h + e.clientY - this.startY, this.minSize.h));
|
|
23214
23216
|
if (this.e) {
|
|
23215
23217
|
/**
|
|
23216
23218
|
* Fired when dialog box is resized
|
|
@@ -23233,11 +23235,20 @@ _config_js__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.controls.dialog = {
|
|
|
23233
23235
|
}
|
|
23234
23236
|
}
|
|
23235
23237
|
__onResizerMouseDown(e) {
|
|
23238
|
+
var _a, _b, _c;
|
|
23236
23239
|
this.resizable = true;
|
|
23237
23240
|
this.startX = e.clientX;
|
|
23238
23241
|
this.startY = e.clientY;
|
|
23239
23242
|
this.startPoint.w = this.dialog.offsetWidth;
|
|
23240
23243
|
this.startPoint.h = this.dialog.offsetHeight;
|
|
23244
|
+
const header = this.getElm('header');
|
|
23245
|
+
const footer = this.getElm('footer');
|
|
23246
|
+
const content = this.getElm('content');
|
|
23247
|
+
// the content area does not shrink below its CSS `min-height`,
|
|
23248
|
+
// so it is part of the smallest height the panel can take
|
|
23249
|
+
const contentMinHeight = content ? parseFloat(this.ow.getComputedStyle(content).minHeight) || 0 : 0;
|
|
23250
|
+
this.minSize.w = (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_6__.isNumber)(this.o.minWidth) ? this.o.minWidth : Math.max(100, (_a = footer === null || footer === void 0 ? void 0 : footer.scrollWidth) !== null && _a !== void 0 ? _a : 0);
|
|
23251
|
+
this.minSize.h = (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_6__.isNumber)(this.o.minHeight) ? this.o.minHeight : ((_b = header === null || header === void 0 ? void 0 : header.offsetHeight) !== null && _b !== void 0 ? _b : 0) + ((_c = footer === null || footer === void 0 ? void 0 : footer.offsetHeight) !== null && _c !== void 0 ? _c : 0) + contentMinHeight + this.resizer.offsetHeight;
|
|
23241
23252
|
this.lockSelect();
|
|
23242
23253
|
this.__addGlobalResizeListeners();
|
|
23243
23254
|
if (this.e) {
|
|
@@ -23543,6 +23554,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.controls.dialog = {
|
|
|
23543
23554
|
this.setPosition();
|
|
23544
23555
|
}
|
|
23545
23556
|
};
|
|
23557
|
+
/**
|
|
23558
|
+
* Minimal size the dialog can be resized to — the header and the footer
|
|
23559
|
+
* (with its buttons) must always stay inside the panel
|
|
23560
|
+
*/ this.minSize = {
|
|
23561
|
+
w: 0,
|
|
23562
|
+
h: 0
|
|
23563
|
+
};
|
|
23546
23564
|
this.isModal = false;
|
|
23547
23565
|
/**
|
|
23548
23566
|
* True, if dialog was opened
|
|
@@ -32178,10 +32196,14 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
|
|
|
32178
32196
|
* Event handler when manually assigning a value to the HTML editor.
|
|
32179
32197
|
*/ onBeforeSetNativeEditorValue(data) {
|
|
32180
32198
|
const [sandBox, iframe] = this.j.o.cleanHTML.useIframeSandbox ? this.j.createInside.sandbox() : [
|
|
32181
|
-
|
|
32199
|
+
// an inert document never loads sub-resources, so the
|
|
32200
|
+
// images in the value are not re-requested from the
|
|
32201
|
+
// server on every assignment (e.g. on each change in
|
|
32202
|
+
// jodit-react). See #1237
|
|
32203
|
+
this.j.od.implementation.createHTMLDocument('').body
|
|
32182
32204
|
];
|
|
32183
32205
|
sandBox.innerHTML = data.value;
|
|
32184
|
-
this.
|
|
32206
|
+
this.j.e.fire('safeHTML', sandBox);
|
|
32185
32207
|
data.value = sandBox.innerHTML;
|
|
32186
32208
|
(0,_core_helpers_html_safe_html_js__WEBPACK_IMPORTED_MODULE_4__.safeHTML)(sandBox, {
|
|
32187
32209
|
safeJavaScriptLink: true,
|
|
@@ -32510,12 +32532,19 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_0__.Icon.set('eraser', _eraser_svg_js_
|
|
|
32510
32532
|
/**
|
|
32511
32533
|
* @private
|
|
32512
32534
|
*/ function allowAttributes(jodit, nodeElm, hadEffect, allow) {
|
|
32513
|
-
|
|
32535
|
+
const allowedForTag = allow && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(nodeElm) && allow[nodeElm.nodeName];
|
|
32536
|
+
if (allow && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(nodeElm) && allowedForTag !== true) {
|
|
32537
|
+
// the tag is not in the allow list at all — attributes do not matter,
|
|
32538
|
+
// the element itself will be removed by the tags filter. Without this
|
|
32539
|
+
// check `allow[nodeName][attr]` threw on e.g. `<meta charset>`. See #1224
|
|
32540
|
+
if (!allowedForTag) {
|
|
32541
|
+
return hadEffect;
|
|
32542
|
+
}
|
|
32514
32543
|
const attrs = nodeElm.attributes;
|
|
32515
32544
|
if (attrs && attrs.length) {
|
|
32516
32545
|
const removeAttrs = [];
|
|
32517
32546
|
for(let i = 0; i < attrs.length; i += 1){
|
|
32518
|
-
const attr =
|
|
32547
|
+
const attr = allowedForTag[attrs[i].name];
|
|
32519
32548
|
if (!attr || attr !== true && attr !== attrs[i].value) {
|
|
32520
32549
|
removeAttrs.push(attrs[i].name);
|
|
32521
32550
|
}
|
|
@@ -33057,9 +33086,10 @@ const keys = Object.keys(_filters_index_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
33057
33086
|
/* unused harmony export clipboard */
|
|
33058
33087
|
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
33059
33088
|
/* harmony import */ var _core_decorators_cache_cache_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33433);
|
|
33060
|
-
/* harmony import */ var
|
|
33061
|
-
/* harmony import */ var
|
|
33062
|
-
/* harmony import */ var
|
|
33089
|
+
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2748);
|
|
33090
|
+
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
|
|
33091
|
+
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21537);
|
|
33092
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(79419);
|
|
33063
33093
|
/*!
|
|
33064
33094
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
33065
33095
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -33069,6 +33099,7 @@ const keys = Object.keys(_filters_index_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
33069
33099
|
|
|
33070
33100
|
|
|
33071
33101
|
|
|
33102
|
+
|
|
33072
33103
|
/**
|
|
33073
33104
|
* Clipboard plugin - cut and copy functionality
|
|
33074
33105
|
*/ class clipboard {
|
|
@@ -33077,10 +33108,10 @@ const keys = Object.keys(_filters_index_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
33077
33108
|
(_a = this.buttons) === null || _a === void 0 ? void 0 : _a.forEach((btn)=>editor.registerButton(btn));
|
|
33078
33109
|
editor.e.off(`copy.${_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID} cut.${_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID}`).on(`copy.${_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID} cut.${_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID}`, (event)=>{
|
|
33079
33110
|
var _a;
|
|
33080
|
-
const selectedText = editor.s.html;
|
|
33081
|
-
const clipboardData = (0,
|
|
33111
|
+
const selectedText = wrapWithInlineAncestors(editor, editor.s.html);
|
|
33112
|
+
const clipboardData = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.getDataTransfer)(event) || (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.getDataTransfer)(editor.ew) || (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.getDataTransfer)(event.originalEvent);
|
|
33082
33113
|
if (clipboardData) {
|
|
33083
|
-
clipboardData.setData(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN, (0,
|
|
33114
|
+
clipboardData.setData(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN, (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.stripTags)(selectedText));
|
|
33084
33115
|
clipboardData.setData(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_HTML, selectedText);
|
|
33085
33116
|
}
|
|
33086
33117
|
editor.buffer.set(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, selectedText);
|
|
@@ -33122,7 +33153,30 @@ const keys = Object.keys(_filters_index_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
33122
33153
|
];
|
|
33123
33154
|
}
|
|
33124
33155
|
}
|
|
33125
|
-
|
|
33156
|
+
/**
|
|
33157
|
+
* `Selection.html` clones only the range contents — when the selection sits
|
|
33158
|
+
* entirely inside the text of a formatted element (`<strong>te|st|</strong>`),
|
|
33159
|
+
* the clone is bare text and the formatting would be lost on paste. Native
|
|
33160
|
+
* browser copy keeps that context, so the interception must restore it: wrap
|
|
33161
|
+
* the fragment in shallow clones of the inline ancestors of the range. See #1202
|
|
33162
|
+
*/ function wrapWithInlineAncestors(editor, html) {
|
|
33163
|
+
if (!html || editor.s.isCollapsed()) {
|
|
33164
|
+
return html;
|
|
33165
|
+
}
|
|
33166
|
+
let node = editor.s.range.commonAncestorContainer;
|
|
33167
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(node)) {
|
|
33168
|
+
node = node.parentElement;
|
|
33169
|
+
}
|
|
33170
|
+
let result = html;
|
|
33171
|
+
while(node && node !== editor.editor && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(node) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isBlock(node)){
|
|
33172
|
+
const shell = node.cloneNode(false);
|
|
33173
|
+
shell.innerHTML = result;
|
|
33174
|
+
result = shell.outerHTML;
|
|
33175
|
+
node = node.parentElement;
|
|
33176
|
+
}
|
|
33177
|
+
return result;
|
|
33178
|
+
}
|
|
33179
|
+
_core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('clipboard', clipboard);
|
|
33126
33180
|
|
|
33127
33181
|
|
|
33128
33182
|
/***/ }),
|
|
@@ -38891,9 +38945,34 @@ const align = {
|
|
|
38891
38945
|
}).on([
|
|
38892
38946
|
this.j.ew,
|
|
38893
38947
|
this.j.ow
|
|
38894
|
-
], 'mouseup keyup', this.onSelectionEnd)
|
|
38948
|
+
], 'mouseup keyup', this.onSelectionEnd).on([
|
|
38949
|
+
this.j.ew,
|
|
38950
|
+
this.j.ow
|
|
38951
|
+
], 'mousedown touchstart', this.__onDocumentMouseDown).on('closeAllPopups', this.__onCloseAllPopups);
|
|
38895
38952
|
this.addListenersForElements();
|
|
38896
38953
|
}
|
|
38954
|
+
__onDocumentMouseDown(e) {
|
|
38955
|
+
if (this.popup.isOpened && this.type === 'selection' && e.target && _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__.UIElement.closestElement(e.target, _core_ui_popup_index_js__WEBPACK_IMPORTED_MODULE_6__.Popup)) {
|
|
38956
|
+
this.__reopenSelectionPopup = true;
|
|
38957
|
+
}
|
|
38958
|
+
}
|
|
38959
|
+
__onCloseAllPopups() {
|
|
38960
|
+
if (!this.__reopenSelectionPopup) {
|
|
38961
|
+
return;
|
|
38962
|
+
}
|
|
38963
|
+
this.__reopenSelectionPopup = false;
|
|
38964
|
+
if (!this.j.o.toolbarInlineForSelection) {
|
|
38965
|
+
return;
|
|
38966
|
+
}
|
|
38967
|
+
// a zero timeout would run synchronously — before the popup's own
|
|
38968
|
+
// `closeAllPopups` handler closes it; defer to the next macrotask
|
|
38969
|
+
this.j.async.setTimeout(()=>{
|
|
38970
|
+
const sel = this.j.s.sel;
|
|
38971
|
+
if (sel && !sel.isCollapsed) {
|
|
38972
|
+
this.showPopup(()=>this.j.s.range.getBoundingClientRect(), 'selection');
|
|
38973
|
+
}
|
|
38974
|
+
}, 1);
|
|
38975
|
+
}
|
|
38897
38976
|
onSelectionStart() {
|
|
38898
38977
|
this.snapRange = this.j.s.range.cloneRange();
|
|
38899
38978
|
}
|
|
@@ -38942,7 +39021,10 @@ const align = {
|
|
|
38942
39021
|
jodit.e.off('showPopup').off([
|
|
38943
39022
|
this.j.ew,
|
|
38944
39023
|
this.j.ow
|
|
38945
|
-
], 'mouseup keyup', this.onSelectionEnd)
|
|
39024
|
+
], 'mouseup keyup', this.onSelectionEnd).off([
|
|
39025
|
+
this.j.ew,
|
|
39026
|
+
this.j.ow
|
|
39027
|
+
], 'mousedown touchstart', this.__onDocumentMouseDown).off('closeAllPopups', this.__onCloseAllPopups);
|
|
38946
39028
|
this.removeListenersForElements();
|
|
38947
39029
|
}
|
|
38948
39030
|
_eventsList() {
|
|
@@ -38969,6 +39051,11 @@ const align = {
|
|
|
38969
39051
|
constructor(){
|
|
38970
39052
|
super(...arguments);
|
|
38971
39053
|
this.type = null;
|
|
39054
|
+
/**
|
|
39055
|
+
* The user pressed a button inside the selection toolbar — after the
|
|
39056
|
+
* command fires `closeAllPopups`, the toolbar should be shown again
|
|
39057
|
+
* while the selection is still there. See #1238
|
|
39058
|
+
*/ this.__reopenSelectionPopup = false;
|
|
38972
39059
|
this.snapRange = null;
|
|
38973
39060
|
this.elmsList = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.keys)(this.j.o.popup, false).filter((s)=>!this.isExcludedTarget(s));
|
|
38974
39061
|
}
|
|
@@ -38999,6 +39086,12 @@ __decorate([
|
|
|
38999
39086
|
__decorate([
|
|
39000
39087
|
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':outsideClick')
|
|
39001
39088
|
], inlinePopup.prototype, "onOutsideClick", null);
|
|
39089
|
+
__decorate([
|
|
39090
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
|
|
39091
|
+
], inlinePopup.prototype, "__onDocumentMouseDown", null);
|
|
39092
|
+
__decorate([
|
|
39093
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
|
|
39094
|
+
], inlinePopup.prototype, "__onCloseAllPopups", null);
|
|
39002
39095
|
__decorate([
|
|
39003
39096
|
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
|
|
39004
39097
|
], inlinePopup.prototype, "onSelectionStart", null);
|
|
@@ -39284,7 +39377,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.limitHTML = false;
|
|
|
39284
39377
|
jodit.e.fire('denyWords.limit limit.limit');
|
|
39285
39378
|
return true;
|
|
39286
39379
|
}
|
|
39287
|
-
|
|
39380
|
+
// with `countTextSpaces` enabled the limiter counts characters the
|
|
39381
|
+
// same way as the `stat` plugin's counter — including spaces. See #1144
|
|
39382
|
+
const charsCount = jodit.o.countTextSpaces ? text.replace((0,_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP)(), '').replace(/[\r\n]/g, '').length : words.join('').length;
|
|
39383
|
+
const should = Boolean(limitChars && isGt(charsCount, limitChars, strict));
|
|
39288
39384
|
if (should) {
|
|
39289
39385
|
jodit.e.fire('denyChars.limit limit.limit');
|
|
39290
39386
|
}
|
|
@@ -41423,9 +41519,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
41423
41519
|
*/ class paste extends _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
41424
41520
|
/** @override **/ afterInit(jodit) {
|
|
41425
41521
|
jodit.e.on('paste.paste', this.onPaste).on('pasteStack.paste', (item)=>this.pasteStack.push(item));
|
|
41426
|
-
|
|
41427
|
-
this.j.e.on('processPaste.paste', this.onProcessPasteReplaceNl2Br);
|
|
41428
|
-
}
|
|
41522
|
+
this.j.e.on('processPaste.paste', this.onProcessPasteReplaceNl2Br);
|
|
41429
41523
|
}
|
|
41430
41524
|
/** @override **/ beforeDestruct(jodit) {
|
|
41431
41525
|
jodit.e.off('paste.paste', this.onPaste).off('processPaste.paste', this.onProcessPasteReplaceNl2Br).off('.paste');
|
|
@@ -41545,10 +41639,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
41545
41639
|
(0,_helpers_js__WEBPACK_IMPORTED_MODULE_7__.pasteInsertHtml)(e, this.j, html);
|
|
41546
41640
|
}
|
|
41547
41641
|
/**
|
|
41548
|
-
*
|
|
41642
|
+
* Escape plain text and replace all \\n chars with br
|
|
41549
41643
|
*/ onProcessPasteReplaceNl2Br(ignore, text, type) {
|
|
41550
41644
|
if (type === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN + ';' && !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.isHTML)(text)) {
|
|
41551
|
-
|
|
41645
|
+
// the clipboard contains only plain text — escape special chars
|
|
41646
|
+
// so a stray `<` is not parsed as an unclosed tag and does not
|
|
41647
|
+
// swallow the rest of the string. See #1227
|
|
41648
|
+
const escaped = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.htmlspecialchars)(text);
|
|
41649
|
+
return this.j.o.nl2brInPlainText ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.nl2br)(escaped) : escaped;
|
|
41552
41650
|
}
|
|
41553
41651
|
}
|
|
41554
41652
|
constructor(){
|
|
@@ -42412,9 +42510,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.allowResizeY = true;
|
|
|
42412
42510
|
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
|
|
42413
42511
|
/* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22732);
|
|
42414
42512
|
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
|
|
42415
|
-
/* harmony import */ var
|
|
42416
|
-
/* harmony import */ var
|
|
42417
|
-
/* harmony import */ var
|
|
42513
|
+
/* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
|
|
42514
|
+
/* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50911);
|
|
42515
|
+
/* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(67510);
|
|
42516
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(68252);
|
|
42418
42517
|
/*!
|
|
42419
42518
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
42420
42519
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -42431,7 +42530,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.allowResizeY = true;
|
|
|
42431
42530
|
|
|
42432
42531
|
|
|
42433
42532
|
|
|
42434
|
-
|
|
42533
|
+
|
|
42534
|
+
class resizeHandler extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
|
|
42435
42535
|
/** @override **/ afterInit(editor) {
|
|
42436
42536
|
const { height, width, allowResizeX } = editor.o;
|
|
42437
42537
|
let { allowResizeY } = editor.o;
|
|
@@ -42465,11 +42565,21 @@ class resizeHandler extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_3__.P
|
|
|
42465
42565
|
if (!this.isResized) {
|
|
42466
42566
|
return;
|
|
42467
42567
|
}
|
|
42568
|
+
let { clientX, clientY } = e;
|
|
42569
|
+
if (e.view === this.j.ew && this.j.ew !== this.j.ow) {
|
|
42570
|
+
// the event was proxied from the editor's iframe — its client
|
|
42571
|
+
// coordinates are relative to the iframe viewport, while the
|
|
42572
|
+
// start point was captured on the host-document handle;
|
|
42573
|
+
// shift them into the host coordinate space
|
|
42574
|
+
const workplacePosition = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.offset)(this.j.workplace, this.j, this.j.od, true);
|
|
42575
|
+
clientX += workplacePosition.left;
|
|
42576
|
+
clientY += workplacePosition.top;
|
|
42577
|
+
}
|
|
42468
42578
|
if (this.j.o.allowResizeY) {
|
|
42469
|
-
this.j.e.fire('setHeight', this.start.h +
|
|
42579
|
+
this.j.e.fire('setHeight', this.start.h + clientY - this.start.y);
|
|
42470
42580
|
}
|
|
42471
42581
|
if (this.j.o.allowResizeX) {
|
|
42472
|
-
this.j.e.fire('setWidth', this.start.w +
|
|
42582
|
+
this.j.e.fire('setWidth', this.start.w + clientX - this.start.x);
|
|
42473
42583
|
}
|
|
42474
42584
|
this.j.e.fire('resize');
|
|
42475
42585
|
}
|
|
@@ -42501,7 +42611,7 @@ class resizeHandler extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_3__.P
|
|
|
42501
42611
|
};
|
|
42502
42612
|
/**
|
|
42503
42613
|
* Resize handle
|
|
42504
|
-
*/ this.handle = this.j.c.div('jodit-editor__resize',
|
|
42614
|
+
*/ this.handle = this.j.c.div('jodit-editor__resize', _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__.Icon.get('resize_handler'));
|
|
42505
42615
|
}
|
|
42506
42616
|
}
|
|
42507
42617
|
/** @override **/ resizeHandler.requires = [
|
|
@@ -42679,7 +42789,11 @@ const keyBInd = '__jodit-resizer_binded';
|
|
|
42679
42789
|
this.pointerX = e.clientX;
|
|
42680
42790
|
this.pointerY = e.clientY;
|
|
42681
42791
|
let diff_x, diff_y;
|
|
42682
|
-
if (this.j.options.iframe) {
|
|
42792
|
+
if (this.j.options.iframe && e.view === this.j.ew) {
|
|
42793
|
+
// the event was proxied from the editor's iframe — its client
|
|
42794
|
+
// coordinates are relative to the iframe viewport, while
|
|
42795
|
+
// `startX/startY` were captured on a host-document handle;
|
|
42796
|
+
// shift them into the host coordinate space
|
|
42683
42797
|
const workplacePosition = this.getWorkplacePosition();
|
|
42684
42798
|
diff_x = e.clientX + workplacePosition.left - this.startX;
|
|
42685
42799
|
diff_y = e.clientY + workplacePosition.top - this.startY;
|
|
@@ -45293,6 +45407,13 @@ function createSourceEditor(type, editor, container, toWYSIWYG, fromWYSIWYG) {
|
|
|
45293
45407
|
}
|
|
45294
45408
|
setFocusToMirror() {
|
|
45295
45409
|
var _a;
|
|
45410
|
+
const active = this.j.od.activeElement;
|
|
45411
|
+
// do not steal focus from another editor or control — e.g. when the
|
|
45412
|
+
// mode is switched programmatically (a Vue/React wrapper re-render)
|
|
45413
|
+
// while the user is already typing elsewhere. See #1356
|
|
45414
|
+
if (active && active !== this.j.od.body && !this.j.container.contains(active)) {
|
|
45415
|
+
return;
|
|
45416
|
+
}
|
|
45296
45417
|
(_a = this.sourceEditor) === null || _a === void 0 ? void 0 : _a.focus();
|
|
45297
45418
|
}
|
|
45298
45419
|
saveSelection() {
|