jodit-pro 4.12.21 → 4.12.23
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 +4 -4
- package/es2015/jodit.js +171 -34
- package/es2015/jodit.min.js +4 -4
- 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 +6 -6
- package/es2018/jodit.min.js +4 -4
- 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 +8 -8
- package/es2021/jodit.js +171 -34
- package/es2021/jodit.min.js +5 -5
- 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 +5 -5
- package/es2021.en/jodit.js +171 -34
- package/es2021.en/jodit.min.js +5 -5
- 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 +184 -34
- 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.23
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -1797,7 +1797,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1797
1797
|
* ```
|
|
1798
1798
|
* @packageDocumentation
|
|
1799
1799
|
* @module constants
|
|
1800
|
-
*/ const APP_VERSION = "4.12.
|
|
1800
|
+
*/ const APP_VERSION = "4.12.23";
|
|
1801
1801
|
// prettier-ignore
|
|
1802
1802
|
const ES = "es2015";
|
|
1803
1803
|
const IS_ES_MODERN = true;
|
|
@@ -7537,6 +7537,18 @@ const completeUrl = (url)=>{
|
|
|
7537
7537
|
|
|
7538
7538
|
|
|
7539
7539
|
|
|
7540
|
+
/**
|
|
7541
|
+
* Keys that must never be copied from a (potentially untrusted) config object —
|
|
7542
|
+
* assigning them during a recursive merge can reach and mutate
|
|
7543
|
+
* `Object.prototype` (prototype pollution, CWE-1321).
|
|
7544
|
+
*/ const UNSAFE_PROTO_KEYS = [
|
|
7545
|
+
'__proto__',
|
|
7546
|
+
'constructor',
|
|
7547
|
+
'prototype'
|
|
7548
|
+
];
|
|
7549
|
+
function isUnsafeProtoKey(key) {
|
|
7550
|
+
return UNSAFE_PROTO_KEYS.indexOf(key) !== -1;
|
|
7551
|
+
}
|
|
7540
7552
|
/**
|
|
7541
7553
|
* @example
|
|
7542
7554
|
* ```js
|
|
@@ -7585,6 +7597,9 @@ const completeUrl = (url)=>{
|
|
|
7585
7597
|
}
|
|
7586
7598
|
const newOpt = {};
|
|
7587
7599
|
Object.keys(options).forEach((key)=>{
|
|
7600
|
+
if (isUnsafeProtoKey(key)) {
|
|
7601
|
+
return;
|
|
7602
|
+
}
|
|
7588
7603
|
const opt = options[key], protoKey = proto ? proto[key] : null;
|
|
7589
7604
|
if ((0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(opt) && (0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(protoKey) && !(0,_extend_js__WEBPACK_IMPORTED_MODULE_5__.isAtom)(opt)) {
|
|
7590
7605
|
newOpt[key] = ConfigProto(opt, protoKey, deep + 1);
|
|
@@ -7646,6 +7661,9 @@ function ConfigFlatten(obj) {
|
|
|
7646
7661
|
* @see {@link ConfigProto} for the prototype-chain variant used at editor creation time
|
|
7647
7662
|
*/ function ConfigMerge(target, source) {
|
|
7648
7663
|
Object.keys(source).forEach((key)=>{
|
|
7664
|
+
if (isUnsafeProtoKey(key)) {
|
|
7665
|
+
return;
|
|
7666
|
+
}
|
|
7649
7667
|
const srcVal = source[key];
|
|
7650
7668
|
const tgtVal = target[key];
|
|
7651
7669
|
if ((0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(srcVal) && (0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(tgtVal) && !(0,_extend_js__WEBPACK_IMPORTED_MODULE_5__.isAtom)(srcVal)) {
|
|
@@ -33942,7 +33960,11 @@ function filterStyleProperties(style, allowed) {
|
|
|
33942
33960
|
if (!jodit.o.cleanHTML.removeEmptyElements) {
|
|
33943
33961
|
return false;
|
|
33944
33962
|
}
|
|
33945
|
-
|
|
33963
|
+
// Never drop an empty inline element that currently holds the caret — it is
|
|
33964
|
+
// a pending-format marker the user is about to type into (#1291). `current`
|
|
33965
|
+
// is captured before a click moves the caret, so also check the live caret.
|
|
33966
|
+
const liveCaret = jodit.s.isCollapsed() ? jodit.s.range.startContainer : null;
|
|
33967
|
+
return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && node.nodeName.match(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE) != null && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTemporary(node) && (0,_core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_2__.trimInv)(node.innerHTML).length === 0 && (current == null || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, current)) && (liveCaret == null || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, liveCaret));
|
|
33946
33968
|
}
|
|
33947
33969
|
|
|
33948
33970
|
|
|
@@ -35075,11 +35097,33 @@ var DragState;
|
|
|
35075
35097
|
*/ class dragAndDropElement extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
|
|
35076
35098
|
/** @override */ afterInit() {
|
|
35077
35099
|
this.dragList = this.j.o.draggableTags ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.splitArray)(this.j.o.draggableTags).filter(Boolean).map((item)=>item.toLowerCase()) : [];
|
|
35100
|
+
// Allow another plugin (e.g. a drag handle/anchor) to start dragging
|
|
35101
|
+
// an element programmatically, regardless of the `draggableTags` list.
|
|
35102
|
+
this.j.e.on('startDragElement', this.onStartDragElement);
|
|
35078
35103
|
if (!this.dragList.length) {
|
|
35079
35104
|
return;
|
|
35080
35105
|
}
|
|
35081
35106
|
this.j.e.on('mousedown dragstart', this.onDragStart);
|
|
35082
35107
|
}
|
|
35108
|
+
/**
|
|
35109
|
+
* Start dragging a specific element programmatically.
|
|
35110
|
+
*
|
|
35111
|
+
* Allows a separate UI element (for example a drag handle/anchor shown next
|
|
35112
|
+
* to a block) to initiate the drag without the user pressing directly on the
|
|
35113
|
+
* draggable element itself.
|
|
35114
|
+
*
|
|
35115
|
+
* @example
|
|
35116
|
+
* ```js
|
|
35117
|
+
* handle.addEventListener('mousedown', e => {
|
|
35118
|
+
* editor.e.fire('startDragElement', preBlock, e);
|
|
35119
|
+
* });
|
|
35120
|
+
* ```
|
|
35121
|
+
*/ onStartDragElement(element, event) {
|
|
35122
|
+
if (this.isInDestruct || this.state > DragState.IDLE || !element) {
|
|
35123
|
+
return;
|
|
35124
|
+
}
|
|
35125
|
+
this.startDragging(element, event);
|
|
35126
|
+
}
|
|
35083
35127
|
/**
|
|
35084
35128
|
* Drag start handler
|
|
35085
35129
|
*/ onDragStart(event) {
|
|
@@ -35101,11 +35145,18 @@ var DragState;
|
|
|
35101
35145
|
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(lastTarget.parentElement, 'a') && lastTarget.parentElement.firstChild === lastTarget && lastTarget.parentElement.lastChild === lastTarget) {
|
|
35102
35146
|
lastTarget = lastTarget.parentElement;
|
|
35103
35147
|
}
|
|
35148
|
+
this.startDragging(lastTarget, event);
|
|
35149
|
+
}
|
|
35150
|
+
/**
|
|
35151
|
+
* Prepare the ghost element and switch to the waiting state.
|
|
35152
|
+
* Shared by the native mousedown handler and the programmatic
|
|
35153
|
+
* `startDragElement` event handler.
|
|
35154
|
+
*/ startDragging(target, event) {
|
|
35104
35155
|
this.startX = event.clientX;
|
|
35105
35156
|
this.startY = event.clientY;
|
|
35106
35157
|
this.isCopyMode = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.ctrlKey)(event); // we can move only element from editor
|
|
35107
|
-
this.draggable =
|
|
35108
|
-
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target',
|
|
35158
|
+
this.draggable = target.cloneNode(true);
|
|
35159
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target', target);
|
|
35109
35160
|
this.state = DragState.WAIT_DRAGGING;
|
|
35110
35161
|
this.addDragListeners();
|
|
35111
35162
|
}
|
|
@@ -35175,6 +35226,18 @@ var DragState;
|
|
|
35175
35226
|
}
|
|
35176
35227
|
const { parentElement } = fragment;
|
|
35177
35228
|
this.j.s.insertNode(fragment, true, false);
|
|
35229
|
+
// Dropping a non-editable block (e.g. a `<pre>` code sample) can leave an
|
|
35230
|
+
// invisible filler text node beside it. Remove it so the drop does not
|
|
35231
|
+
// introduce a stray empty line (which clean-html would otherwise strip
|
|
35232
|
+
// later, causing a flash).
|
|
35233
|
+
[
|
|
35234
|
+
fragment.previousSibling,
|
|
35235
|
+
fragment.nextSibling
|
|
35236
|
+
].forEach((node)=>{
|
|
35237
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(node)) {
|
|
35238
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
35239
|
+
}
|
|
35240
|
+
});
|
|
35178
35241
|
if (parentElement && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(parentElement) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell(parentElement)) {
|
|
35179
35242
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(parentElement);
|
|
35180
35243
|
}
|
|
@@ -35201,7 +35264,7 @@ var DragState;
|
|
|
35201
35264
|
}
|
|
35202
35265
|
/** @override */ beforeDestruct() {
|
|
35203
35266
|
this.onDragEnd();
|
|
35204
|
-
this.j.e.off('mousedown dragstart', this.onDragStart);
|
|
35267
|
+
this.j.e.off('mousedown dragstart', this.onDragStart).off('startDragElement', this.onStartDragElement);
|
|
35205
35268
|
this.removeDragListeners();
|
|
35206
35269
|
}
|
|
35207
35270
|
constructor(){
|
|
@@ -35217,6 +35280,9 @@ var DragState;
|
|
|
35217
35280
|
this.state = DragState.IDLE;
|
|
35218
35281
|
}
|
|
35219
35282
|
}
|
|
35283
|
+
__decorate([
|
|
35284
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
|
|
35285
|
+
], dragAndDropElement.prototype, "onStartDragElement", null);
|
|
35220
35286
|
__decorate([
|
|
35221
35287
|
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
|
|
35222
35288
|
], dragAndDropElement.prototype, "onDragStart", null);
|
|
@@ -35703,12 +35769,17 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('dtd', dtd);
|
|
|
35703
35769
|
if (beforeEnter !== undefined) {
|
|
35704
35770
|
return beforeEnter;
|
|
35705
35771
|
}
|
|
35706
|
-
|
|
35707
|
-
|
|
35708
|
-
|
|
35709
|
-
editor.
|
|
35710
|
-
|
|
35711
|
-
|
|
35772
|
+
// Delete-of-selection + new block must be a single history step,
|
|
35773
|
+
// otherwise pressing Enter over a selection needs two Ctrl+Z to undo
|
|
35774
|
+
// (the first only reverts to the intermediate empty state). #1292
|
|
35775
|
+
editor.history.snapshot.transaction(()=>{
|
|
35776
|
+
if (!editor.s.isCollapsed()) {
|
|
35777
|
+
editor.execCommand('Delete');
|
|
35778
|
+
}
|
|
35779
|
+
editor.s.focus();
|
|
35780
|
+
this.onEnter(event);
|
|
35781
|
+
editor.e.fire('afterEnter', event);
|
|
35782
|
+
});
|
|
35712
35783
|
editor.synchronizeValues(); // fire change
|
|
35713
35784
|
return false;
|
|
35714
35785
|
}
|
|
@@ -45479,13 +45550,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
45479
45550
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
45480
45551
|
|
|
45481
45552
|
/* unused harmony export select */
|
|
45482
|
-
/* harmony import */ var
|
|
45483
|
-
/* harmony import */ var
|
|
45484
|
-
/* harmony import */ var
|
|
45485
|
-
/* harmony import */ var
|
|
45486
|
-
/* harmony import */ var
|
|
45487
|
-
/* harmony import */ var
|
|
45488
|
-
/* harmony import */ var
|
|
45553
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
45554
|
+
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
|
|
45555
|
+
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2748);
|
|
45556
|
+
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
|
|
45557
|
+
/* harmony import */ var _core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(87058);
|
|
45558
|
+
/* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
|
|
45559
|
+
/* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67510);
|
|
45560
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(67215);
|
|
45489
45561
|
/*!
|
|
45490
45562
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
45491
45563
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -45503,6 +45575,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
45503
45575
|
|
|
45504
45576
|
|
|
45505
45577
|
|
|
45578
|
+
|
|
45506
45579
|
/**
|
|
45507
45580
|
* A utility plugin that allows you to subscribe to a click/mousedown/touchstart/mouseup on an element in DOM order
|
|
45508
45581
|
*
|
|
@@ -45513,7 +45586,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
45513
45586
|
* console.log(img.src);
|
|
45514
45587
|
* })
|
|
45515
45588
|
* ```
|
|
45516
|
-
*/ class select extends
|
|
45589
|
+
*/ class select extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
45517
45590
|
afterInit(jodit) {
|
|
45518
45591
|
this.proxyEventsList.forEach((eventName)=>{
|
|
45519
45592
|
jodit.e.on(eventName + '.select', this.onStartSelection);
|
|
@@ -45528,7 +45601,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
45528
45601
|
const { j } = this;
|
|
45529
45602
|
let result, target = e.target;
|
|
45530
45603
|
while(result === undefined && target && target !== j.editor){
|
|
45531
|
-
result = j.e.fire((0,
|
|
45604
|
+
result = j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_4__.camelCase)(e.type + '_' + target.nodeName.toLowerCase()), target, e);
|
|
45532
45605
|
target = target.parentElement;
|
|
45533
45606
|
}
|
|
45534
45607
|
if (e.type === 'click' && result === undefined && target === j.editor) {
|
|
@@ -45539,10 +45612,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
45539
45612
|
* @event outsideClick(e) - when user clicked on the outside of editor
|
|
45540
45613
|
*/ onOutsideClick(e) {
|
|
45541
45614
|
const node = e.target;
|
|
45542
|
-
if (
|
|
45615
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.up(node, (elm)=>elm === this.j.editor)) {
|
|
45543
45616
|
return;
|
|
45544
45617
|
}
|
|
45545
|
-
const box =
|
|
45618
|
+
const box = _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.UIElement.closestElement(node, _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.Popup);
|
|
45546
45619
|
if (!box) {
|
|
45547
45620
|
this.j.e.fire('outsideClick', e);
|
|
45548
45621
|
}
|
|
@@ -45551,7 +45624,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
45551
45624
|
const { s } = this.j;
|
|
45552
45625
|
if (!s.isCollapsed()) {
|
|
45553
45626
|
const current = s.current();
|
|
45554
|
-
if (current &&
|
|
45627
|
+
if (current && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(this.j.editor, current)) {
|
|
45555
45628
|
this.onCopyNormalizeSelectionBound();
|
|
45556
45629
|
}
|
|
45557
45630
|
}
|
|
@@ -45563,6 +45636,60 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
45563
45636
|
s.expandSelection();
|
|
45564
45637
|
return false;
|
|
45565
45638
|
}
|
|
45639
|
+
/**
|
|
45640
|
+
* Fix caret position when clicking to the right of a list item that has a
|
|
45641
|
+
* nested list. Blink/WebKit place the caret at the start of the line instead
|
|
45642
|
+
* of the end (#1296); move it to the end of the item's own text.
|
|
45643
|
+
*/ onClickRightOfNestedListItem(e) {
|
|
45644
|
+
const { s } = this.j;
|
|
45645
|
+
const range = s.range;
|
|
45646
|
+
if (!range.collapsed || range.startOffset !== 0 || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(range.startContainer)) {
|
|
45647
|
+
return;
|
|
45648
|
+
}
|
|
45649
|
+
const text = range.startContainer;
|
|
45650
|
+
const li = text.parentNode;
|
|
45651
|
+
// The text must be the direct content of a list item that has a nested
|
|
45652
|
+
// list (the last level has no nested list and behaves correctly).
|
|
45653
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(li, 'li') || !(li.querySelector('ul') || li.querySelector('ol'))) {
|
|
45654
|
+
return;
|
|
45655
|
+
}
|
|
45656
|
+
const measure = this.j.ed.createRange();
|
|
45657
|
+
measure.selectNodeContents(text);
|
|
45658
|
+
const rect = measure.getBoundingClientRect();
|
|
45659
|
+
// Only when the click happened to the right of the text.
|
|
45660
|
+
if (e.clientX > rect.right) {
|
|
45661
|
+
s.setCursorAfter(text);
|
|
45662
|
+
}
|
|
45663
|
+
}
|
|
45664
|
+
/**
|
|
45665
|
+
* Keep pending inline formatting after a click. Toggling Bold/Italic/etc. on
|
|
45666
|
+
* a collapsed cursor leaves empty marker elements with the caret inside; a
|
|
45667
|
+
* click puts the caret right before them (outside), so they get cleaned up
|
|
45668
|
+
* and the formatting is lost. Move the caret back into the innermost marker
|
|
45669
|
+
* so the next typed character keeps every pending format (#1291).
|
|
45670
|
+
*/ onClickKeepPendingFormat() {
|
|
45671
|
+
var _a, _b;
|
|
45672
|
+
const { s } = this.j;
|
|
45673
|
+
const range = s.range;
|
|
45674
|
+
if (!range.collapsed || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(range.startContainer)) {
|
|
45675
|
+
return;
|
|
45676
|
+
}
|
|
45677
|
+
const text = range.startContainer;
|
|
45678
|
+
// Caret must sit at the very end of the text, right before the markers.
|
|
45679
|
+
if (range.startOffset !== ((_b = (_a = text.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0)) {
|
|
45680
|
+
return;
|
|
45681
|
+
}
|
|
45682
|
+
const marker = text.nextSibling;
|
|
45683
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(marker) || !marker.nodeName.match(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isEmpty(marker)) {
|
|
45684
|
+
return;
|
|
45685
|
+
}
|
|
45686
|
+
let inner = marker;
|
|
45687
|
+
// Descend into the innermost empty formatting marker.
|
|
45688
|
+
while(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(inner.firstElementChild) && inner.firstElementChild.nodeName.match(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE)){
|
|
45689
|
+
inner = inner.firstElementChild;
|
|
45690
|
+
}
|
|
45691
|
+
s.setCursorIn(inner);
|
|
45692
|
+
}
|
|
45566
45693
|
/**
|
|
45567
45694
|
* Normalize selection after triple click
|
|
45568
45695
|
*/ onTripleClickNormalizeSelection(e) {
|
|
@@ -45571,8 +45698,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
45571
45698
|
}
|
|
45572
45699
|
const { s } = this.j;
|
|
45573
45700
|
const { startContainer, startOffset } = s.range;
|
|
45574
|
-
if (startOffset === 0 &&
|
|
45575
|
-
s.select(
|
|
45701
|
+
if (startOffset === 0 && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(startContainer)) {
|
|
45702
|
+
s.select(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(startContainer, _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isBlock, this.j.editor) || startContainer, true);
|
|
45576
45703
|
}
|
|
45577
45704
|
}
|
|
45578
45705
|
onCopyNormalizeSelectionBound(e) {
|
|
@@ -45580,7 +45707,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
45580
45707
|
if (!o.select.normalizeSelectionBeforeCutAndCopy || s.isCollapsed()) {
|
|
45581
45708
|
return;
|
|
45582
45709
|
}
|
|
45583
|
-
if (e && (!e.isTrusted || !
|
|
45710
|
+
if (e && (!e.isTrusted || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isNode(e.target) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(editor, e.target))) {
|
|
45584
45711
|
return;
|
|
45585
45712
|
}
|
|
45586
45713
|
this.jodit.s.expandSelection();
|
|
@@ -45597,33 +45724,43 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
45597
45724
|
}
|
|
45598
45725
|
}
|
|
45599
45726
|
__decorate([
|
|
45600
|
-
|
|
45727
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
45601
45728
|
], select.prototype, "onStartSelection", null);
|
|
45602
45729
|
__decorate([
|
|
45603
|
-
(0,
|
|
45730
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)('ow:click')
|
|
45604
45731
|
], select.prototype, "onOutsideClick", null);
|
|
45605
45732
|
__decorate([
|
|
45606
|
-
(0,
|
|
45733
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
45607
45734
|
':beforeCommandCut'
|
|
45608
45735
|
])
|
|
45609
45736
|
], select.prototype, "beforeCommandCut", null);
|
|
45610
45737
|
__decorate([
|
|
45611
|
-
(0,
|
|
45738
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
45612
45739
|
':beforeCommandSelectall'
|
|
45613
45740
|
])
|
|
45614
45741
|
], select.prototype, "beforeCommandSelectAll", null);
|
|
45615
45742
|
__decorate([
|
|
45616
|
-
(0,
|
|
45743
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
45744
|
+
':click'
|
|
45745
|
+
])
|
|
45746
|
+
], select.prototype, "onClickRightOfNestedListItem", null);
|
|
45747
|
+
__decorate([
|
|
45748
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
45749
|
+
':click'
|
|
45750
|
+
])
|
|
45751
|
+
], select.prototype, "onClickKeepPendingFormat", null);
|
|
45752
|
+
__decorate([
|
|
45753
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
45617
45754
|
':click'
|
|
45618
45755
|
])
|
|
45619
45756
|
], select.prototype, "onTripleClickNormalizeSelection", null);
|
|
45620
45757
|
__decorate([
|
|
45621
|
-
(0,
|
|
45758
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
45622
45759
|
':copy',
|
|
45623
45760
|
':cut'
|
|
45624
45761
|
])
|
|
45625
45762
|
], select.prototype, "onCopyNormalizeSelectionBound", null);
|
|
45626
|
-
|
|
45763
|
+
_core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('select', select);
|
|
45627
45764
|
|
|
45628
45765
|
|
|
45629
45766
|
/***/ }),
|