jodit-pro 4.12.26 → 4.12.27
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 +9 -9
- package/es2015/jodit.js +190 -50
- package/es2015/jodit.min.js +9 -9
- 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 +10 -10
- 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 +189 -49
- package/es2021/jodit.min.js +13 -13
- 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 +13 -13
- package/es2021.en/jodit.js +189 -49
- package/es2021.en/jodit.min.js +11 -11
- 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 +234 -85
- 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.27
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -1645,6 +1645,14 @@ class ViewComponent extends _component_js__WEBPACK_IMPORTED_MODULE_0__.Component
|
|
|
1645
1645
|
* Attach component to View
|
|
1646
1646
|
*/ setParentView(jodit) {
|
|
1647
1647
|
this.jodit = jodit;
|
|
1648
|
+
// Inherit the owner window from the parent view — for an editor
|
|
1649
|
+
// created with a custom `ownerWindow` (e.g. inside an iframe) the
|
|
1650
|
+
// component default (the global `window`) is wrong: outside-click
|
|
1651
|
+
// handlers of dropdowns/popups listened to the wrong window. See
|
|
1652
|
+
// https://github.com/xdan/jodit/issues/965
|
|
1653
|
+
if (jodit.ow) {
|
|
1654
|
+
this.ownerWindow = jodit.ow;
|
|
1655
|
+
}
|
|
1648
1656
|
jodit.components.add(this);
|
|
1649
1657
|
return this;
|
|
1650
1658
|
}
|
|
@@ -1746,7 +1754,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1746
1754
|
* ```
|
|
1747
1755
|
* @packageDocumentation
|
|
1748
1756
|
* @module constants
|
|
1749
|
-
*/ const APP_VERSION = "4.12.
|
|
1757
|
+
*/ const APP_VERSION = "4.12.27";
|
|
1750
1758
|
// prettier-ignore
|
|
1751
1759
|
const ES = "es2021";
|
|
1752
1760
|
const IS_ES_MODERN = true;
|
|
@@ -5030,9 +5038,15 @@ function isFastEqual(a, b) {
|
|
|
5030
5038
|
*/ /**
|
|
5031
5039
|
* @module helpers/checker
|
|
5032
5040
|
*/ /**
|
|
5033
|
-
* Detect if string is HTML from MS Word or
|
|
5041
|
+
* Detect if string is HTML from MS Word, Excel or LibreOffice/OpenOffice
|
|
5034
5042
|
*/ function isHtmlFromWord(data) {
|
|
5035
|
-
return data.search(/<meta.*?Microsoft Excel\s[\d].*?>/) !== -1 || data.search(/<meta.*?Microsoft Word\s[\d].*?>/) !== -1 ||
|
|
5043
|
+
return data.search(/<meta.*?Microsoft Excel\s[\d].*?>/) !== -1 || data.search(/<meta.*?Microsoft Word\s[\d].*?>/) !== -1 || // `<meta name=ProgId content=Word.Document>` — attribute values are
|
|
5044
|
+
// unquoted in the raw Word clipboard fragment
|
|
5045
|
+
data.search(/<meta[^>]*?ProgId[^>]*?(Word|Excel)\./i) !== -1 || // LibreOffice/OpenOffice Writer & Calc
|
|
5046
|
+
data.search(/<meta[^>]*?(LibreOffice|OpenOffice)/i) !== -1 || // Office namespaces on the root element of the clipboard fragment
|
|
5047
|
+
data.search(/urn:schemas-microsoft-com:office:(word|excel)/) !== -1 || // `class=MsoNormal` and friends (unquoted/quoted)
|
|
5048
|
+
data.search(/<\w[^>]*\sclass=("|')?Mso/) !== -1 || // the raw Word clipboard uses SINGLE quotes: style='mso-…'
|
|
5049
|
+
data.search(/style='[^']*mso-/) !== -1 || data.search(/style="[^"]*mso-/) !== -1 && data.search(/<font/) !== -1;
|
|
5036
5050
|
}
|
|
5037
5051
|
|
|
5038
5052
|
|
|
@@ -12045,8 +12059,9 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12045
12059
|
/* harmony export */ });
|
|
12046
12060
|
/* harmony import */ var _dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
|
|
12047
12061
|
/* harmony import */ var _helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29960);
|
|
12048
|
-
/* harmony import */ var
|
|
12049
|
-
/* harmony import */ var
|
|
12062
|
+
/* harmony import */ var _helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41180);
|
|
12063
|
+
/* harmony import */ var _list_wrap_list_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(82515);
|
|
12064
|
+
/* harmony import */ var _wrap_unwrapped_text_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6980);
|
|
12050
12065
|
/*!
|
|
12051
12066
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
12052
12067
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -12055,12 +12070,29 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12055
12070
|
|
|
12056
12071
|
|
|
12057
12072
|
|
|
12073
|
+
|
|
12058
12074
|
/**
|
|
12059
12075
|
* Replaces the parent tag with the applicable one, or wraps the text and also replaces the tag
|
|
12060
12076
|
* @private
|
|
12061
12077
|
*/ function wrap(commitStyle, font, jodit) {
|
|
12062
12078
|
const wrapper = findOrCreateWrapper(commitStyle, font, jodit);
|
|
12063
|
-
|
|
12079
|
+
if (commitStyle.elementIsList) {
|
|
12080
|
+
return (0,_list_wrap_list_js__WEBPACK_IMPORTED_MODULE_3__.wrapList)(commitStyle, wrapper, jodit);
|
|
12081
|
+
}
|
|
12082
|
+
const newWrapper = _dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.replace(wrapper, commitStyle.element, jodit.createInside, true);
|
|
12083
|
+
if (commitStyle.elementIsBlock) {
|
|
12084
|
+
// Inline font styles left over from pasted content visually override
|
|
12085
|
+
// the new block format — e.g. an h2 with `font-weight: normal;
|
|
12086
|
+
// font-size: 24px` does not look like a heading at all, so the
|
|
12087
|
+
// command seems to do nothing. See
|
|
12088
|
+
// https://github.com/xdan/jodit/issues/1063
|
|
12089
|
+
(0,_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(newWrapper, 'fontSize', null);
|
|
12090
|
+
(0,_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(newWrapper, 'fontWeight', null);
|
|
12091
|
+
if (!(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(newWrapper, 'style')) {
|
|
12092
|
+
(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(newWrapper, 'style', null);
|
|
12093
|
+
}
|
|
12094
|
+
}
|
|
12095
|
+
return newWrapper;
|
|
12064
12096
|
}
|
|
12065
12097
|
const WRAP_NODES = new Set([
|
|
12066
12098
|
'td',
|
|
@@ -12081,7 +12113,7 @@ const WRAP_NODES = new Set([
|
|
|
12081
12113
|
if (box) {
|
|
12082
12114
|
return box;
|
|
12083
12115
|
}
|
|
12084
|
-
return (0,
|
|
12116
|
+
return (0,_wrap_unwrapped_text_js__WEBPACK_IMPORTED_MODULE_4__.wrapUnwrappedText)(commitStyle, font, jodit);
|
|
12085
12117
|
}
|
|
12086
12118
|
(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(font, 'size', null);
|
|
12087
12119
|
return font;
|
|
@@ -15628,8 +15660,11 @@ class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_7__.UIGroup {
|
|
|
15628
15660
|
/**
|
|
15629
15661
|
* Calculate static bound for point
|
|
15630
15662
|
*/ getKeepBound(getBound) {
|
|
15663
|
+
var _a;
|
|
15631
15664
|
const oldBound = getBound();
|
|
15632
|
-
|
|
15665
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
15666
|
+
// host, so the lookup must start from the shadow root
|
|
15667
|
+
const elmUnderCursor = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.od).elementFromPoint(oldBound.left, oldBound.top);
|
|
15633
15668
|
if (!elmUnderCursor) {
|
|
15634
15669
|
return getBound;
|
|
15635
15670
|
}
|
|
@@ -17387,6 +17422,17 @@ let Jodit = Jodit_1 = class Jodit extends _modules_index_js__WEBPACK_IMPORTED_MO
|
|
|
17387
17422
|
const init = ()=>{
|
|
17388
17423
|
if (opt.enableDragAndDropFileToEditor && opt.uploader && (opt.uploader.url || opt.uploader.insertImageAsBase64URI)) {
|
|
17389
17424
|
this.uploader.bind(this.editor);
|
|
17425
|
+
} else if (!opt.enableDragAndDropFileToEditor) {
|
|
17426
|
+
// Without a bound uploader nobody cancels a file drop, and
|
|
17427
|
+
// Firefox inserts the dropped image natively — the option
|
|
17428
|
+
// must mean "do nothing". See
|
|
17429
|
+
// https://github.com/xdan/jodit/issues/1077
|
|
17430
|
+
this.e.on(editor, 'drop', (e)=>{
|
|
17431
|
+
var _a, _b;
|
|
17432
|
+
if ((_b = (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b.length) {
|
|
17433
|
+
e.preventDefault();
|
|
17434
|
+
}
|
|
17435
|
+
});
|
|
17390
17436
|
}
|
|
17391
17437
|
// in initEditor - the editor could change
|
|
17392
17438
|
if (!this.__elementToPlace.get(this.editor)) {
|
|
@@ -28512,13 +28558,35 @@ let ToolbarContent = class ToolbarContent extends _core_ui_button_index_js__WEBP
|
|
|
28512
28558
|
return 'ToolbarContent';
|
|
28513
28559
|
}
|
|
28514
28560
|
/** @override */ update() {
|
|
28515
|
-
|
|
28561
|
+
var _a, _b, _c;
|
|
28562
|
+
const { control } = this;
|
|
28563
|
+
const content = control.getContent(this.j, this);
|
|
28516
28564
|
if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(content) || content.parentNode !== this.container) {
|
|
28517
28565
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.detach(this.container);
|
|
28518
28566
|
this.container.appendChild((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(content) ? this.j.create.fromHTML(content) : content);
|
|
28519
28567
|
}
|
|
28568
|
+
// Content controls never went through the ToolbarButton status
|
|
28569
|
+
// calculation, so `isDisabled`/`isActive`/`update` declared on the
|
|
28570
|
+
// control were silently ignored (e.g. the FileBrowser Upload button
|
|
28571
|
+
// ignored the backend permissions). See
|
|
28572
|
+
// https://github.com/xdan/jodit/issues/1094
|
|
28573
|
+
this.state.disabled = Boolean((_a = control.isDisabled) === null || _a === void 0 ? void 0 : _a.call(control, this.j, this));
|
|
28574
|
+
this.state.activated = Boolean((_b = control.isActive) === null || _b === void 0 ? void 0 : _b.call(control, this.j, this));
|
|
28575
|
+
(_c = control.update) === null || _c === void 0 ? void 0 : _c.call(control, this.j, this);
|
|
28576
|
+
// The first update() runs before the state watchers are attached, so
|
|
28577
|
+
// apply the calculated state explicitly (the calls are idempotent)
|
|
28578
|
+
this.onChangeDisabled();
|
|
28579
|
+
this.onChangeActivated();
|
|
28520
28580
|
super.update();
|
|
28521
28581
|
}
|
|
28582
|
+
/**
|
|
28583
|
+
* The content is arbitrary HTML — propagate the disabled state to the
|
|
28584
|
+
* nested form controls (e.g. the file input of the Upload button),
|
|
28585
|
+
* otherwise they stay interactive.
|
|
28586
|
+
*/ onChangeDisabled() {
|
|
28587
|
+
super.onChangeDisabled();
|
|
28588
|
+
this.container.querySelectorAll('input,button,select,textarea').forEach((elm)=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.attr)(elm, 'disabled', this.state.disabled || null));
|
|
28589
|
+
}
|
|
28522
28590
|
/** @override */ createContainer() {
|
|
28523
28591
|
return this.j.c.span(this.componentName);
|
|
28524
28592
|
}
|
|
@@ -30132,8 +30200,11 @@ const ns = 'addnewline';
|
|
|
30132
30200
|
}
|
|
30133
30201
|
}
|
|
30134
30202
|
__onMouseMove(e) {
|
|
30203
|
+
var _a;
|
|
30135
30204
|
const editor = this.j;
|
|
30136
|
-
|
|
30205
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
30206
|
+
// host, so the lookup must start from the shadow root
|
|
30207
|
+
let currentElement = ((_a = editor.o.shadowRoot) !== null && _a !== void 0 ? _a : editor.ed).elementFromPoint(e.clientX, e.clientY);
|
|
30137
30208
|
if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isOrContains(editor.editor, currentElement)) {
|
|
30138
30209
|
return;
|
|
30139
30210
|
}
|
|
@@ -30332,7 +30403,13 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_0__.Icon.set('enter', _enter_svg_js__W
|
|
|
30332
30403
|
return new _ui_ui_ai_assistant_js__WEBPACK_IMPORTED_MODULE_6__.UiAiAssistant(jodit, {
|
|
30333
30404
|
onInsertAfter (html) {
|
|
30334
30405
|
jodit.s.focus();
|
|
30335
|
-
|
|
30406
|
+
// `current()` returns a node of the selection START, so with
|
|
30407
|
+
// several selected paragraphs the result landed after the
|
|
30408
|
+
// first one — collapse the range to the END of the selection
|
|
30409
|
+
// instead. See https://github.com/xdan/jodit/issues/1263
|
|
30410
|
+
const range = jodit.s.range;
|
|
30411
|
+
range.collapse(false);
|
|
30412
|
+
jodit.s.selectRange(range);
|
|
30336
30413
|
jodit.s.insertHTML(html);
|
|
30337
30414
|
__dialog.close();
|
|
30338
30415
|
},
|
|
@@ -31102,13 +31179,26 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
31102
31179
|
jodit.s.setCursorBefore(fakeNode);
|
|
31103
31180
|
return true;
|
|
31104
31181
|
}
|
|
31105
|
-
if (sibling && (checkMoveListContent(jodit, mainClosestBox, sibling, backspace) || moveContentAndRemoveEmpty(jodit, mainClosestBox, sibling, backspace))) {
|
|
31182
|
+
if (sibling && (checkMoveListContent(jodit, mainClosestBox, sibling, backspace) || moveContentAndRemoveEmpty(jodit, mainClosestBox, resolveTableSibling(sibling, backspace), backspace))) {
|
|
31106
31183
|
jodit.s.setCursorBefore(fakeNode);
|
|
31107
31184
|
return true;
|
|
31108
31185
|
}
|
|
31109
31186
|
}
|
|
31110
31187
|
return false;
|
|
31111
31188
|
}
|
|
31189
|
+
/**
|
|
31190
|
+
* Content cannot be merged into the `<table>` element itself — it would land
|
|
31191
|
+
* between the table sections (after `</tbody>`), which is invalid HTML and
|
|
31192
|
+
* gets foster-parented out of the table on the next parse. Merge into the
|
|
31193
|
+
* edge cell instead. See https://github.com/xdan/jodit/issues/1064
|
|
31194
|
+
* @private
|
|
31195
|
+
*/ function resolveTableSibling(sibling, backspace) {
|
|
31196
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, 'table')) {
|
|
31197
|
+
return sibling;
|
|
31198
|
+
}
|
|
31199
|
+
const cells = sibling.querySelectorAll('td,th');
|
|
31200
|
+
return cells.length ? cells[backspace ? cells.length - 1 : 0] : null;
|
|
31201
|
+
}
|
|
31112
31202
|
function checkMoveListContent(jodit, mainClosestBox, sibling, backspace) {
|
|
31113
31203
|
// Process UL/LI/OL cases
|
|
31114
31204
|
const siblingIsList = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.LIST_TAGS);
|
|
@@ -33282,26 +33372,35 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_0__.Icon.set('copy', _icons_copy_svg_j
|
|
|
33282
33372
|
group: 'color'
|
|
33283
33373
|
});
|
|
33284
33374
|
const callback = (command, second, third)=>{
|
|
33375
|
+
var _a;
|
|
33285
33376
|
const colorHEX = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.normalizeColor)(third);
|
|
33286
|
-
|
|
33287
|
-
|
|
33288
|
-
|
|
33289
|
-
|
|
33290
|
-
|
|
33291
|
-
|
|
33292
|
-
|
|
33293
|
-
|
|
33294
|
-
|
|
33295
|
-
|
|
33296
|
-
|
|
33377
|
+
const value = !colorHEX ? '' : colorHEX;
|
|
33378
|
+
const style = command === 'background' ? {
|
|
33379
|
+
backgroundColor: value
|
|
33380
|
+
} : {
|
|
33381
|
+
color: value
|
|
33382
|
+
};
|
|
33383
|
+
// Cells selected with the `select-cells` plugin drop or collapse the
|
|
33384
|
+
// native range, so `commitStyle` would paint a pending caret format
|
|
33385
|
+
// outside the table instead of the selection the user sees. Apply the
|
|
33386
|
+
// style to the content of every selected cell instead. See #1250
|
|
33387
|
+
const selectedCells = editor.getInstance('Table', editor.o).getAllSelectedCells();
|
|
33388
|
+
if (selectedCells.length && editor.s.isCollapsed()) {
|
|
33389
|
+
selectedCells.forEach((cell)=>{
|
|
33390
|
+
editor.s.select(cell, true);
|
|
33297
33391
|
editor.s.commitStyle({
|
|
33298
33392
|
attributes: {
|
|
33299
|
-
style
|
|
33300
|
-
color: !colorHEX ? '' : colorHEX
|
|
33301
|
-
}
|
|
33393
|
+
style
|
|
33302
33394
|
}
|
|
33303
33395
|
});
|
|
33304
|
-
|
|
33396
|
+
});
|
|
33397
|
+
(_a = editor.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
33398
|
+
} else {
|
|
33399
|
+
editor.s.commitStyle({
|
|
33400
|
+
attributes: {
|
|
33401
|
+
style
|
|
33402
|
+
}
|
|
33403
|
+
});
|
|
33305
33404
|
}
|
|
33306
33405
|
editor.synchronizeValues();
|
|
33307
33406
|
return false;
|
|
@@ -38969,10 +39068,30 @@ const align = {
|
|
|
38969
39068
|
this.j.async.setTimeout(()=>{
|
|
38970
39069
|
const sel = this.j.s.sel;
|
|
38971
39070
|
if (sel && !sel.isCollapsed) {
|
|
38972
|
-
this.showPopup(()=>this.
|
|
39071
|
+
this.showPopup(()=>this.__selectionBound(), 'selection');
|
|
38973
39072
|
}
|
|
38974
39073
|
}, 1);
|
|
38975
39074
|
}
|
|
39075
|
+
/**
|
|
39076
|
+
* The selection rect comes from the editor document — in iframe mode its
|
|
39077
|
+
* coordinates are iframe-local, while the popup lives in the host
|
|
39078
|
+
* document, so the iframe offset must be added. See
|
|
39079
|
+
* https://github.com/xdan/jodit/issues/1058
|
|
39080
|
+
*/ __selectionBound() {
|
|
39081
|
+
const rect = this.j.s.range.getBoundingClientRect();
|
|
39082
|
+
let { left, top } = rect;
|
|
39083
|
+
if (this.j.iframe) {
|
|
39084
|
+
const offset = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(this.j.iframe, this.j, true);
|
|
39085
|
+
left += offset.left;
|
|
39086
|
+
top += offset.top;
|
|
39087
|
+
}
|
|
39088
|
+
return {
|
|
39089
|
+
left,
|
|
39090
|
+
top,
|
|
39091
|
+
width: rect.width,
|
|
39092
|
+
height: rect.height
|
|
39093
|
+
};
|
|
39094
|
+
}
|
|
38976
39095
|
onSelectionStart() {
|
|
38977
39096
|
this.snapRange = this.j.s.range.cloneRange();
|
|
38978
39097
|
}
|
|
@@ -39004,7 +39123,7 @@ const align = {
|
|
|
39004
39123
|
if (!node) {
|
|
39005
39124
|
return;
|
|
39006
39125
|
}
|
|
39007
|
-
this.showPopup(()=>
|
|
39126
|
+
this.showPopup(()=>this.__selectionBound(), type);
|
|
39008
39127
|
}
|
|
39009
39128
|
/**
|
|
39010
39129
|
* In not collapsed selection - only one image
|
|
@@ -41309,6 +41428,7 @@ const psKey = 'pasteStorage';
|
|
|
41309
41428
|
_config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
41310
41429
|
tooltip: 'Paste from clipboard',
|
|
41311
41430
|
async exec (editor, _, { control }) {
|
|
41431
|
+
var _a;
|
|
41312
41432
|
if (control.name === psKey) {
|
|
41313
41433
|
editor.execCommand('showPasteStorage');
|
|
41314
41434
|
return;
|
|
@@ -41319,7 +41439,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
41319
41439
|
try {
|
|
41320
41440
|
const items = await navigator.clipboard.read();
|
|
41321
41441
|
if (items && items.length) {
|
|
41322
|
-
const
|
|
41442
|
+
const item = items[0];
|
|
41443
|
+
// Prefer the HTML flavor so the button behaves like the
|
|
41444
|
+
// Ctrl+V shortcut (which receives text/html from the
|
|
41445
|
+
// native paste event). See
|
|
41446
|
+
// https://github.com/xdan/jodit/issues/1061
|
|
41447
|
+
const type = ((_a = item.types) === null || _a === void 0 ? void 0 : _a.includes(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_HTML)) ? _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_HTML : _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN;
|
|
41448
|
+
const textBlob = await item.getType(type);
|
|
41323
41449
|
text = await new Response(textBlob).text();
|
|
41324
41450
|
}
|
|
41325
41451
|
error = false;
|
|
@@ -43932,20 +44058,30 @@ let UISearch = class UISearch extends _core_ui_index_js__WEBPACK_IMPORTED_MODULE
|
|
|
43932
44058
|
return false;
|
|
43933
44059
|
}).on(this.queryInput, 'input', ()=>{
|
|
43934
44060
|
this.setMod('empty-query', !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.trim)(this.queryInput.value).length);
|
|
43935
|
-
}).on(this.queryInput, 'keydown',
|
|
43936
|
-
|
|
43937
|
-
|
|
44061
|
+
}).on(this.queryInput, 'keydown', (()=>{
|
|
44062
|
+
const debounced = this.j.async.debounce(async (e)=>{
|
|
44063
|
+
switch(e.key){
|
|
44064
|
+
case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER:
|
|
44065
|
+
if (await jodit.e.fire('searchNext')) {
|
|
44066
|
+
this.close();
|
|
44067
|
+
}
|
|
44068
|
+
break;
|
|
44069
|
+
default:
|
|
44070
|
+
jodit.e.fire(this, 'needUpdateCounters');
|
|
44071
|
+
break;
|
|
44072
|
+
}
|
|
44073
|
+
}, this.j.defaultTimeout);
|
|
44074
|
+
return (e)=>{
|
|
44075
|
+
// Must be canceled synchronously — inside the debounced
|
|
44076
|
+
// handler the browser has already submitted the parent
|
|
44077
|
+
// form. See https://github.com/xdan/jodit/issues/918
|
|
44078
|
+
if (e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER) {
|
|
43938
44079
|
e.preventDefault();
|
|
43939
44080
|
e.stopImmediatePropagation();
|
|
43940
|
-
|
|
43941
|
-
|
|
43942
|
-
|
|
43943
|
-
|
|
43944
|
-
default:
|
|
43945
|
-
jodit.e.fire(this, 'needUpdateCounters');
|
|
43946
|
-
break;
|
|
43947
|
-
}
|
|
43948
|
-
}, this.j.defaultTimeout));
|
|
44081
|
+
}
|
|
44082
|
+
debounced(e);
|
|
44083
|
+
};
|
|
44084
|
+
})());
|
|
43949
44085
|
}
|
|
43950
44086
|
};
|
|
43951
44087
|
__decorate([
|
|
@@ -44092,14 +44228,16 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
44092
44228
|
/**
|
|
44093
44229
|
* Mouse move inside the table
|
|
44094
44230
|
*/ __onMove(table, e) {
|
|
44095
|
-
var _a;
|
|
44231
|
+
var _a, _b;
|
|
44096
44232
|
if (this.j.o.readonly && !this.j.isLocked) {
|
|
44097
44233
|
return;
|
|
44098
44234
|
}
|
|
44099
44235
|
if (this.j.isLockedNotBy(key)) {
|
|
44100
44236
|
return;
|
|
44101
44237
|
}
|
|
44102
|
-
|
|
44238
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
44239
|
+
// host, so the lookup must start from the shadow root
|
|
44240
|
+
const node = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.j.ed).elementFromPoint(e.clientX, e.clientY);
|
|
44103
44241
|
if (!node) {
|
|
44104
44242
|
return;
|
|
44105
44243
|
}
|
|
@@ -44125,7 +44263,7 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
44125
44263
|
}
|
|
44126
44264
|
const cellsCount = this.__tableModule.getAllSelectedCells().length;
|
|
44127
44265
|
if (cellsCount > 1) {
|
|
44128
|
-
(
|
|
44266
|
+
(_b = this.j.s.sel) === null || _b === void 0 ? void 0 : _b.removeAllRanges();
|
|
44129
44267
|
}
|
|
44130
44268
|
this.j.e.fire('hidePopup');
|
|
44131
44269
|
e.stopPropagation();
|
|
@@ -44155,13 +44293,15 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
44155
44293
|
/**
|
|
44156
44294
|
* Stop a selection process
|
|
44157
44295
|
*/ __onStopSelection(table, e) {
|
|
44158
|
-
var _a, _b;
|
|
44296
|
+
var _a, _b, _c;
|
|
44159
44297
|
if (!this.__selectedCell) {
|
|
44160
44298
|
return;
|
|
44161
44299
|
}
|
|
44162
44300
|
this.__isSelectionMode = false;
|
|
44163
44301
|
this.j.unlock();
|
|
44164
|
-
|
|
44302
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
44303
|
+
// host, so the lookup must start from the shadow root
|
|
44304
|
+
const node = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.j.ed).elementFromPoint(e.clientX, e.clientY);
|
|
44165
44305
|
if (!node) {
|
|
44166
44306
|
return;
|
|
44167
44307
|
}
|
|
@@ -44180,7 +44320,7 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
44180
44320
|
cell,
|
|
44181
44321
|
this.__selectedCell
|
|
44182
44322
|
]), box = this.__tableModule.formalMatrix(table);
|
|
44183
|
-
const max = (
|
|
44323
|
+
const max = (_b = box[bound[1][0]]) === null || _b === void 0 ? void 0 : _b[bound[1][1]], min = (_c = box[bound[0][0]]) === null || _c === void 0 ? void 0 : _c[bound[0][1]];
|
|
44184
44324
|
// `getSelectedBound` keeps its `Infinity` sentinel when none of the
|
|
44185
44325
|
// selected cells belong to this table's matrix — e.g. after a
|
|
44186
44326
|
// drag-and-drop that moved/removed the cells, leaving a stale anchor and
|