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/es2015/jodit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit-pro - PRO Version of Jodit Editor
|
|
3
3
|
* Author: Chupurnov Valerii <chupurnov@gmail.com>
|
|
4
|
-
* Version: v4.12.
|
|
4
|
+
* Version: v4.12.27
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -1696,6 +1696,14 @@ class ViewComponent extends _component_js__WEBPACK_IMPORTED_MODULE_0__.Component
|
|
|
1696
1696
|
* Attach component to View
|
|
1697
1697
|
*/ setParentView(jodit) {
|
|
1698
1698
|
this.jodit = jodit;
|
|
1699
|
+
// Inherit the owner window from the parent view — for an editor
|
|
1700
|
+
// created with a custom `ownerWindow` (e.g. inside an iframe) the
|
|
1701
|
+
// component default (the global `window`) is wrong: outside-click
|
|
1702
|
+
// handlers of dropdowns/popups listened to the wrong window. See
|
|
1703
|
+
// https://github.com/xdan/jodit/issues/965
|
|
1704
|
+
if (jodit.ow) {
|
|
1705
|
+
this.ownerWindow = jodit.ow;
|
|
1706
|
+
}
|
|
1699
1707
|
jodit.components.add(this);
|
|
1700
1708
|
return this;
|
|
1701
1709
|
}
|
|
@@ -1797,7 +1805,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1797
1805
|
* ```
|
|
1798
1806
|
* @packageDocumentation
|
|
1799
1807
|
* @module constants
|
|
1800
|
-
*/ const APP_VERSION = "4.12.
|
|
1808
|
+
*/ const APP_VERSION = "4.12.27";
|
|
1801
1809
|
// prettier-ignore
|
|
1802
1810
|
const ES = "es2015";
|
|
1803
1811
|
const IS_ES_MODERN = true;
|
|
@@ -5081,9 +5089,15 @@ function isFastEqual(a, b) {
|
|
|
5081
5089
|
*/ /**
|
|
5082
5090
|
* @module helpers/checker
|
|
5083
5091
|
*/ /**
|
|
5084
|
-
* Detect if string is HTML from MS Word or
|
|
5092
|
+
* Detect if string is HTML from MS Word, Excel or LibreOffice/OpenOffice
|
|
5085
5093
|
*/ function isHtmlFromWord(data) {
|
|
5086
|
-
return data.search(/<meta.*?Microsoft Excel\s[\d].*?>/) !== -1 || data.search(/<meta.*?Microsoft Word\s[\d].*?>/) !== -1 ||
|
|
5094
|
+
return data.search(/<meta.*?Microsoft Excel\s[\d].*?>/) !== -1 || data.search(/<meta.*?Microsoft Word\s[\d].*?>/) !== -1 || // `<meta name=ProgId content=Word.Document>` — attribute values are
|
|
5095
|
+
// unquoted in the raw Word clipboard fragment
|
|
5096
|
+
data.search(/<meta[^>]*?ProgId[^>]*?(Word|Excel)\./i) !== -1 || // LibreOffice/OpenOffice Writer & Calc
|
|
5097
|
+
data.search(/<meta[^>]*?(LibreOffice|OpenOffice)/i) !== -1 || // Office namespaces on the root element of the clipboard fragment
|
|
5098
|
+
data.search(/urn:schemas-microsoft-com:office:(word|excel)/) !== -1 || // `class=MsoNormal` and friends (unquoted/quoted)
|
|
5099
|
+
data.search(/<\w[^>]*\sclass=("|')?Mso/) !== -1 || // the raw Word clipboard uses SINGLE quotes: style='mso-…'
|
|
5100
|
+
data.search(/style='[^']*mso-/) !== -1 || data.search(/style="[^"]*mso-/) !== -1 && data.search(/<font/) !== -1;
|
|
5087
5101
|
}
|
|
5088
5102
|
|
|
5089
5103
|
|
|
@@ -12302,8 +12316,9 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12302
12316
|
/* harmony export */ });
|
|
12303
12317
|
/* harmony import */ var _dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
|
|
12304
12318
|
/* harmony import */ var _helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29960);
|
|
12305
|
-
/* harmony import */ var
|
|
12306
|
-
/* harmony import */ var
|
|
12319
|
+
/* harmony import */ var _helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41180);
|
|
12320
|
+
/* harmony import */ var _list_wrap_list_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(82515);
|
|
12321
|
+
/* harmony import */ var _wrap_unwrapped_text_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6980);
|
|
12307
12322
|
/*!
|
|
12308
12323
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
12309
12324
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -12312,12 +12327,29 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12312
12327
|
|
|
12313
12328
|
|
|
12314
12329
|
|
|
12330
|
+
|
|
12315
12331
|
/**
|
|
12316
12332
|
* Replaces the parent tag with the applicable one, or wraps the text and also replaces the tag
|
|
12317
12333
|
* @private
|
|
12318
12334
|
*/ function wrap(commitStyle, font, jodit) {
|
|
12319
12335
|
const wrapper = findOrCreateWrapper(commitStyle, font, jodit);
|
|
12320
|
-
|
|
12336
|
+
if (commitStyle.elementIsList) {
|
|
12337
|
+
return (0,_list_wrap_list_js__WEBPACK_IMPORTED_MODULE_3__.wrapList)(commitStyle, wrapper, jodit);
|
|
12338
|
+
}
|
|
12339
|
+
const newWrapper = _dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.replace(wrapper, commitStyle.element, jodit.createInside, true);
|
|
12340
|
+
if (commitStyle.elementIsBlock) {
|
|
12341
|
+
// Inline font styles left over from pasted content visually override
|
|
12342
|
+
// the new block format — e.g. an h2 with `font-weight: normal;
|
|
12343
|
+
// font-size: 24px` does not look like a heading at all, so the
|
|
12344
|
+
// command seems to do nothing. See
|
|
12345
|
+
// https://github.com/xdan/jodit/issues/1063
|
|
12346
|
+
(0,_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(newWrapper, 'fontSize', null);
|
|
12347
|
+
(0,_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(newWrapper, 'fontWeight', null);
|
|
12348
|
+
if (!(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(newWrapper, 'style')) {
|
|
12349
|
+
(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(newWrapper, 'style', null);
|
|
12350
|
+
}
|
|
12351
|
+
}
|
|
12352
|
+
return newWrapper;
|
|
12321
12353
|
}
|
|
12322
12354
|
const WRAP_NODES = new Set([
|
|
12323
12355
|
'td',
|
|
@@ -12338,7 +12370,7 @@ const WRAP_NODES = new Set([
|
|
|
12338
12370
|
if (box) {
|
|
12339
12371
|
return box;
|
|
12340
12372
|
}
|
|
12341
|
-
return (0,
|
|
12373
|
+
return (0,_wrap_unwrapped_text_js__WEBPACK_IMPORTED_MODULE_4__.wrapUnwrappedText)(commitStyle, font, jodit);
|
|
12342
12374
|
}
|
|
12343
12375
|
(0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(font, 'size', null);
|
|
12344
12376
|
return font;
|
|
@@ -16332,8 +16364,11 @@ class Popup extends _group_group_js__WEBPACK_IMPORTED_MODULE_7__.UIGroup {
|
|
|
16332
16364
|
/**
|
|
16333
16365
|
* Calculate static bound for point
|
|
16334
16366
|
*/ getKeepBound(getBound) {
|
|
16367
|
+
var _a;
|
|
16335
16368
|
const oldBound = getBound();
|
|
16336
|
-
|
|
16369
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
16370
|
+
// host, so the lookup must start from the shadow root
|
|
16371
|
+
const elmUnderCursor = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.od).elementFromPoint(oldBound.left, oldBound.top);
|
|
16337
16372
|
if (!elmUnderCursor) {
|
|
16338
16373
|
return getBound;
|
|
16339
16374
|
}
|
|
@@ -18118,6 +18153,17 @@ let Jodit = Jodit_1 = class Jodit extends _modules_index_js__WEBPACK_IMPORTED_MO
|
|
|
18118
18153
|
const init = ()=>{
|
|
18119
18154
|
if (opt.enableDragAndDropFileToEditor && opt.uploader && (opt.uploader.url || opt.uploader.insertImageAsBase64URI)) {
|
|
18120
18155
|
this.uploader.bind(this.editor);
|
|
18156
|
+
} else if (!opt.enableDragAndDropFileToEditor) {
|
|
18157
|
+
// Without a bound uploader nobody cancels a file drop, and
|
|
18158
|
+
// Firefox inserts the dropped image natively — the option
|
|
18159
|
+
// must mean "do nothing". See
|
|
18160
|
+
// https://github.com/xdan/jodit/issues/1077
|
|
18161
|
+
this.e.on(editor, 'drop', (e)=>{
|
|
18162
|
+
var _a, _b;
|
|
18163
|
+
if ((_b = (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b.length) {
|
|
18164
|
+
e.preventDefault();
|
|
18165
|
+
}
|
|
18166
|
+
});
|
|
18121
18167
|
}
|
|
18122
18168
|
// in initEditor - the editor could change
|
|
18123
18169
|
if (!this.__elementToPlace.get(this.editor)) {
|
|
@@ -29535,13 +29581,35 @@ let ToolbarContent = class ToolbarContent extends _core_ui_button_index_js__WEBP
|
|
|
29535
29581
|
return 'ToolbarContent';
|
|
29536
29582
|
}
|
|
29537
29583
|
/** @override */ update() {
|
|
29538
|
-
|
|
29584
|
+
var _a, _b, _c;
|
|
29585
|
+
const { control } = this;
|
|
29586
|
+
const content = control.getContent(this.j, this);
|
|
29539
29587
|
if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(content) || content.parentNode !== this.container) {
|
|
29540
29588
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.detach(this.container);
|
|
29541
29589
|
this.container.appendChild((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(content) ? this.j.create.fromHTML(content) : content);
|
|
29542
29590
|
}
|
|
29591
|
+
// Content controls never went through the ToolbarButton status
|
|
29592
|
+
// calculation, so `isDisabled`/`isActive`/`update` declared on the
|
|
29593
|
+
// control were silently ignored (e.g. the FileBrowser Upload button
|
|
29594
|
+
// ignored the backend permissions). See
|
|
29595
|
+
// https://github.com/xdan/jodit/issues/1094
|
|
29596
|
+
this.state.disabled = Boolean((_a = control.isDisabled) === null || _a === void 0 ? void 0 : _a.call(control, this.j, this));
|
|
29597
|
+
this.state.activated = Boolean((_b = control.isActive) === null || _b === void 0 ? void 0 : _b.call(control, this.j, this));
|
|
29598
|
+
(_c = control.update) === null || _c === void 0 ? void 0 : _c.call(control, this.j, this);
|
|
29599
|
+
// The first update() runs before the state watchers are attached, so
|
|
29600
|
+
// apply the calculated state explicitly (the calls are idempotent)
|
|
29601
|
+
this.onChangeDisabled();
|
|
29602
|
+
this.onChangeActivated();
|
|
29543
29603
|
super.update();
|
|
29544
29604
|
}
|
|
29605
|
+
/**
|
|
29606
|
+
* The content is arbitrary HTML — propagate the disabled state to the
|
|
29607
|
+
* nested form controls (e.g. the file input of the Upload button),
|
|
29608
|
+
* otherwise they stay interactive.
|
|
29609
|
+
*/ onChangeDisabled() {
|
|
29610
|
+
super.onChangeDisabled();
|
|
29611
|
+
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));
|
|
29612
|
+
}
|
|
29545
29613
|
/** @override */ createContainer() {
|
|
29546
29614
|
return this.j.c.span(this.componentName);
|
|
29547
29615
|
}
|
|
@@ -31155,8 +31223,11 @@ const ns = 'addnewline';
|
|
|
31155
31223
|
}
|
|
31156
31224
|
}
|
|
31157
31225
|
__onMouseMove(e) {
|
|
31226
|
+
var _a;
|
|
31158
31227
|
const editor = this.j;
|
|
31159
|
-
|
|
31228
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
31229
|
+
// host, so the lookup must start from the shadow root
|
|
31230
|
+
let currentElement = ((_a = editor.o.shadowRoot) !== null && _a !== void 0 ? _a : editor.ed).elementFromPoint(e.clientX, e.clientY);
|
|
31160
31231
|
if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isOrContains(editor.editor, currentElement)) {
|
|
31161
31232
|
return;
|
|
31162
31233
|
}
|
|
@@ -31384,7 +31455,13 @@ function _async_to_generator(fn) {
|
|
|
31384
31455
|
return new _ui_ui_ai_assistant_js__WEBPACK_IMPORTED_MODULE_6__.UiAiAssistant(jodit, {
|
|
31385
31456
|
onInsertAfter (html) {
|
|
31386
31457
|
jodit.s.focus();
|
|
31387
|
-
|
|
31458
|
+
// `current()` returns a node of the selection START, so with
|
|
31459
|
+
// several selected paragraphs the result landed after the
|
|
31460
|
+
// first one — collapse the range to the END of the selection
|
|
31461
|
+
// instead. See https://github.com/xdan/jodit/issues/1263
|
|
31462
|
+
const range = jodit.s.range;
|
|
31463
|
+
range.collapse(false);
|
|
31464
|
+
jodit.s.selectRange(range);
|
|
31388
31465
|
jodit.s.insertHTML(html);
|
|
31389
31466
|
__dialog.close();
|
|
31390
31467
|
},
|
|
@@ -32154,13 +32231,26 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
|
|
|
32154
32231
|
jodit.s.setCursorBefore(fakeNode);
|
|
32155
32232
|
return true;
|
|
32156
32233
|
}
|
|
32157
|
-
if (sibling && (checkMoveListContent(jodit, mainClosestBox, sibling, backspace) || moveContentAndRemoveEmpty(jodit, mainClosestBox, sibling, backspace))) {
|
|
32234
|
+
if (sibling && (checkMoveListContent(jodit, mainClosestBox, sibling, backspace) || moveContentAndRemoveEmpty(jodit, mainClosestBox, resolveTableSibling(sibling, backspace), backspace))) {
|
|
32158
32235
|
jodit.s.setCursorBefore(fakeNode);
|
|
32159
32236
|
return true;
|
|
32160
32237
|
}
|
|
32161
32238
|
}
|
|
32162
32239
|
return false;
|
|
32163
32240
|
}
|
|
32241
|
+
/**
|
|
32242
|
+
* Content cannot be merged into the `<table>` element itself — it would land
|
|
32243
|
+
* between the table sections (after `</tbody>`), which is invalid HTML and
|
|
32244
|
+
* gets foster-parented out of the table on the next parse. Merge into the
|
|
32245
|
+
* edge cell instead. See https://github.com/xdan/jodit/issues/1064
|
|
32246
|
+
* @private
|
|
32247
|
+
*/ function resolveTableSibling(sibling, backspace) {
|
|
32248
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, 'table')) {
|
|
32249
|
+
return sibling;
|
|
32250
|
+
}
|
|
32251
|
+
const cells = sibling.querySelectorAll('td,th');
|
|
32252
|
+
return cells.length ? cells[backspace ? cells.length - 1 : 0] : null;
|
|
32253
|
+
}
|
|
32164
32254
|
function checkMoveListContent(jodit, mainClosestBox, sibling, backspace) {
|
|
32165
32255
|
// Process UL/LI/OL cases
|
|
32166
32256
|
const siblingIsList = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.LIST_TAGS);
|
|
@@ -34360,26 +34450,35 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_0__.Icon.set('copy', _icons_copy_svg_j
|
|
|
34360
34450
|
group: 'color'
|
|
34361
34451
|
});
|
|
34362
34452
|
const callback = (command, second, third)=>{
|
|
34453
|
+
var _a;
|
|
34363
34454
|
const colorHEX = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.normalizeColor)(third);
|
|
34364
|
-
|
|
34365
|
-
|
|
34366
|
-
|
|
34367
|
-
|
|
34368
|
-
|
|
34369
|
-
|
|
34370
|
-
|
|
34371
|
-
|
|
34372
|
-
|
|
34373
|
-
|
|
34374
|
-
|
|
34455
|
+
const value = !colorHEX ? '' : colorHEX;
|
|
34456
|
+
const style = command === 'background' ? {
|
|
34457
|
+
backgroundColor: value
|
|
34458
|
+
} : {
|
|
34459
|
+
color: value
|
|
34460
|
+
};
|
|
34461
|
+
// Cells selected with the `select-cells` plugin drop or collapse the
|
|
34462
|
+
// native range, so `commitStyle` would paint a pending caret format
|
|
34463
|
+
// outside the table instead of the selection the user sees. Apply the
|
|
34464
|
+
// style to the content of every selected cell instead. See #1250
|
|
34465
|
+
const selectedCells = editor.getInstance('Table', editor.o).getAllSelectedCells();
|
|
34466
|
+
if (selectedCells.length && editor.s.isCollapsed()) {
|
|
34467
|
+
selectedCells.forEach((cell)=>{
|
|
34468
|
+
editor.s.select(cell, true);
|
|
34375
34469
|
editor.s.commitStyle({
|
|
34376
34470
|
attributes: {
|
|
34377
|
-
style
|
|
34378
|
-
color: !colorHEX ? '' : colorHEX
|
|
34379
|
-
}
|
|
34471
|
+
style
|
|
34380
34472
|
}
|
|
34381
34473
|
});
|
|
34382
|
-
|
|
34474
|
+
});
|
|
34475
|
+
(_a = editor.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
34476
|
+
} else {
|
|
34477
|
+
editor.s.commitStyle({
|
|
34478
|
+
attributes: {
|
|
34479
|
+
style
|
|
34480
|
+
}
|
|
34481
|
+
});
|
|
34383
34482
|
}
|
|
34384
34483
|
editor.synchronizeValues();
|
|
34385
34484
|
return false;
|
|
@@ -40311,10 +40410,30 @@ const align = {
|
|
|
40311
40410
|
this.j.async.setTimeout(()=>{
|
|
40312
40411
|
const sel = this.j.s.sel;
|
|
40313
40412
|
if (sel && !sel.isCollapsed) {
|
|
40314
|
-
this.showPopup(()=>this.
|
|
40413
|
+
this.showPopup(()=>this.__selectionBound(), 'selection');
|
|
40315
40414
|
}
|
|
40316
40415
|
}, 1);
|
|
40317
40416
|
}
|
|
40417
|
+
/**
|
|
40418
|
+
* The selection rect comes from the editor document — in iframe mode its
|
|
40419
|
+
* coordinates are iframe-local, while the popup lives in the host
|
|
40420
|
+
* document, so the iframe offset must be added. See
|
|
40421
|
+
* https://github.com/xdan/jodit/issues/1058
|
|
40422
|
+
*/ __selectionBound() {
|
|
40423
|
+
const rect = this.j.s.range.getBoundingClientRect();
|
|
40424
|
+
let { left, top } = rect;
|
|
40425
|
+
if (this.j.iframe) {
|
|
40426
|
+
const offset = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(this.j.iframe, this.j, true);
|
|
40427
|
+
left += offset.left;
|
|
40428
|
+
top += offset.top;
|
|
40429
|
+
}
|
|
40430
|
+
return {
|
|
40431
|
+
left,
|
|
40432
|
+
top,
|
|
40433
|
+
width: rect.width,
|
|
40434
|
+
height: rect.height
|
|
40435
|
+
};
|
|
40436
|
+
}
|
|
40318
40437
|
onSelectionStart() {
|
|
40319
40438
|
this.snapRange = this.j.s.range.cloneRange();
|
|
40320
40439
|
}
|
|
@@ -40346,7 +40465,7 @@ const align = {
|
|
|
40346
40465
|
if (!node) {
|
|
40347
40466
|
return;
|
|
40348
40467
|
}
|
|
40349
|
-
this.showPopup(()=>
|
|
40468
|
+
this.showPopup(()=>this.__selectionBound(), type);
|
|
40350
40469
|
}
|
|
40351
40470
|
/**
|
|
40352
40471
|
* In not collapsed selection - only one image
|
|
@@ -42681,6 +42800,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
42681
42800
|
tooltip: 'Paste from clipboard',
|
|
42682
42801
|
exec (_0, _1, _2) {
|
|
42683
42802
|
return _async_to_generator(function*(editor, _, { control }) {
|
|
42803
|
+
var _a;
|
|
42684
42804
|
if (control.name === psKey) {
|
|
42685
42805
|
editor.execCommand('showPasteStorage');
|
|
42686
42806
|
return;
|
|
@@ -42691,7 +42811,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
|
|
|
42691
42811
|
try {
|
|
42692
42812
|
const items = yield navigator.clipboard.read();
|
|
42693
42813
|
if (items && items.length) {
|
|
42694
|
-
const
|
|
42814
|
+
const item = items[0];
|
|
42815
|
+
// Prefer the HTML flavor so the button behaves like the
|
|
42816
|
+
// Ctrl+V shortcut (which receives text/html from the
|
|
42817
|
+
// native paste event). See
|
|
42818
|
+
// https://github.com/xdan/jodit/issues/1061
|
|
42819
|
+
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;
|
|
42820
|
+
const textBlob = yield item.getType(type);
|
|
42695
42821
|
text = yield new Response(textBlob).text();
|
|
42696
42822
|
}
|
|
42697
42823
|
error = false;
|
|
@@ -45378,20 +45504,30 @@ let UISearch = class UISearch extends _core_ui_index_js__WEBPACK_IMPORTED_MODULE
|
|
|
45378
45504
|
return false;
|
|
45379
45505
|
}).on(this.queryInput, 'input', ()=>{
|
|
45380
45506
|
this.setMod('empty-query', !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.trim)(this.queryInput.value).length);
|
|
45381
|
-
}).on(this.queryInput, 'keydown',
|
|
45382
|
-
|
|
45383
|
-
|
|
45384
|
-
|
|
45385
|
-
|
|
45386
|
-
|
|
45387
|
-
|
|
45388
|
-
|
|
45389
|
-
|
|
45390
|
-
|
|
45391
|
-
|
|
45392
|
-
|
|
45507
|
+
}).on(this.queryInput, 'keydown', (()=>{
|
|
45508
|
+
const debounced = this.j.async.debounce((e)=>_async_to_generator(function*() {
|
|
45509
|
+
switch(e.key){
|
|
45510
|
+
case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER:
|
|
45511
|
+
if (yield jodit.e.fire('searchNext')) {
|
|
45512
|
+
_this.close();
|
|
45513
|
+
}
|
|
45514
|
+
break;
|
|
45515
|
+
default:
|
|
45516
|
+
jodit.e.fire(_this, 'needUpdateCounters');
|
|
45517
|
+
break;
|
|
45518
|
+
}
|
|
45519
|
+
})(), this.j.defaultTimeout);
|
|
45520
|
+
return (e)=>{
|
|
45521
|
+
// Must be canceled synchronously — inside the debounced
|
|
45522
|
+
// handler the browser has already submitted the parent
|
|
45523
|
+
// form. See https://github.com/xdan/jodit/issues/918
|
|
45524
|
+
if (e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER) {
|
|
45525
|
+
e.preventDefault();
|
|
45526
|
+
e.stopImmediatePropagation();
|
|
45393
45527
|
}
|
|
45394
|
-
|
|
45528
|
+
debounced(e);
|
|
45529
|
+
};
|
|
45530
|
+
})());
|
|
45395
45531
|
}
|
|
45396
45532
|
};
|
|
45397
45533
|
__decorate([
|
|
@@ -45538,14 +45674,16 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
45538
45674
|
/**
|
|
45539
45675
|
* Mouse move inside the table
|
|
45540
45676
|
*/ __onMove(table, e) {
|
|
45541
|
-
var _a;
|
|
45677
|
+
var _a, _b;
|
|
45542
45678
|
if (this.j.o.readonly && !this.j.isLocked) {
|
|
45543
45679
|
return;
|
|
45544
45680
|
}
|
|
45545
45681
|
if (this.j.isLockedNotBy(key)) {
|
|
45546
45682
|
return;
|
|
45547
45683
|
}
|
|
45548
|
-
|
|
45684
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
45685
|
+
// host, so the lookup must start from the shadow root
|
|
45686
|
+
const node = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.j.ed).elementFromPoint(e.clientX, e.clientY);
|
|
45549
45687
|
if (!node) {
|
|
45550
45688
|
return;
|
|
45551
45689
|
}
|
|
@@ -45571,7 +45709,7 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
45571
45709
|
}
|
|
45572
45710
|
const cellsCount = this.__tableModule.getAllSelectedCells().length;
|
|
45573
45711
|
if (cellsCount > 1) {
|
|
45574
|
-
(
|
|
45712
|
+
(_b = this.j.s.sel) === null || _b === void 0 ? void 0 : _b.removeAllRanges();
|
|
45575
45713
|
}
|
|
45576
45714
|
this.j.e.fire('hidePopup');
|
|
45577
45715
|
e.stopPropagation();
|
|
@@ -45601,13 +45739,15 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
45601
45739
|
/**
|
|
45602
45740
|
* Stop a selection process
|
|
45603
45741
|
*/ __onStopSelection(table, e) {
|
|
45604
|
-
var _a, _b;
|
|
45742
|
+
var _a, _b, _c;
|
|
45605
45743
|
if (!this.__selectedCell) {
|
|
45606
45744
|
return;
|
|
45607
45745
|
}
|
|
45608
45746
|
this.__isSelectionMode = false;
|
|
45609
45747
|
this.j.unlock();
|
|
45610
|
-
|
|
45748
|
+
// Inside Shadow DOM `document.elementFromPoint` returns the shadow
|
|
45749
|
+
// host, so the lookup must start from the shadow root
|
|
45750
|
+
const node = ((_a = this.j.o.shadowRoot) !== null && _a !== void 0 ? _a : this.j.ed).elementFromPoint(e.clientX, e.clientY);
|
|
45611
45751
|
if (!node) {
|
|
45612
45752
|
return;
|
|
45613
45753
|
}
|
|
@@ -45626,7 +45766,7 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
|
|
|
45626
45766
|
cell,
|
|
45627
45767
|
this.__selectedCell
|
|
45628
45768
|
]), box = this.__tableModule.formalMatrix(table);
|
|
45629
|
-
const max = (
|
|
45769
|
+
const max = (_b = box[bound[1][0]]) === null || _b === void 0 ? void 0 : _b[bound[1][1]], min = (_c = box[bound[0][0]]) === null || _c === void 0 ? void 0 : _c[bound[0][1]];
|
|
45630
45770
|
// `getSelectedBound` keeps its `Infinity` sentinel when none of the
|
|
45631
45771
|
// selected cells belong to this table's matrix — e.g. after a
|
|
45632
45772
|
// drag-and-drop that moved/removed the cells, leaving a stale anchor and
|