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/es2021.en/jodit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit-pro - PRO Version of Jodit Editor
|
|
3
3
|
* Author: Chupurnov Valerii <chupurnov@gmail.com>
|
|
4
|
-
* Version: v4.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
|
*/
|
|
@@ -1746,7 +1746,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1746
1746
|
* ```
|
|
1747
1747
|
* @packageDocumentation
|
|
1748
1748
|
* @module constants
|
|
1749
|
-
*/ const APP_VERSION = "4.12.
|
|
1749
|
+
*/ const APP_VERSION = "4.12.23";
|
|
1750
1750
|
// prettier-ignore
|
|
1751
1751
|
const ES = "es2021";
|
|
1752
1752
|
const IS_ES_MODERN = true;
|
|
@@ -7486,6 +7486,18 @@ const completeUrl = (url)=>{
|
|
|
7486
7486
|
|
|
7487
7487
|
|
|
7488
7488
|
|
|
7489
|
+
/**
|
|
7490
|
+
* Keys that must never be copied from a (potentially untrusted) config object —
|
|
7491
|
+
* assigning them during a recursive merge can reach and mutate
|
|
7492
|
+
* `Object.prototype` (prototype pollution, CWE-1321).
|
|
7493
|
+
*/ const UNSAFE_PROTO_KEYS = [
|
|
7494
|
+
'__proto__',
|
|
7495
|
+
'constructor',
|
|
7496
|
+
'prototype'
|
|
7497
|
+
];
|
|
7498
|
+
function isUnsafeProtoKey(key) {
|
|
7499
|
+
return UNSAFE_PROTO_KEYS.indexOf(key) !== -1;
|
|
7500
|
+
}
|
|
7489
7501
|
/**
|
|
7490
7502
|
* @example
|
|
7491
7503
|
* ```js
|
|
@@ -7534,6 +7546,9 @@ const completeUrl = (url)=>{
|
|
|
7534
7546
|
}
|
|
7535
7547
|
const newOpt = {};
|
|
7536
7548
|
Object.keys(options).forEach((key)=>{
|
|
7549
|
+
if (isUnsafeProtoKey(key)) {
|
|
7550
|
+
return;
|
|
7551
|
+
}
|
|
7537
7552
|
const opt = options[key], protoKey = proto ? proto[key] : null;
|
|
7538
7553
|
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)) {
|
|
7539
7554
|
newOpt[key] = ConfigProto(opt, protoKey, deep + 1);
|
|
@@ -7595,6 +7610,9 @@ function ConfigFlatten(obj) {
|
|
|
7595
7610
|
* @see {@link ConfigProto} for the prototype-chain variant used at editor creation time
|
|
7596
7611
|
*/ function ConfigMerge(target, source) {
|
|
7597
7612
|
Object.keys(source).forEach((key)=>{
|
|
7613
|
+
if (isUnsafeProtoKey(key)) {
|
|
7614
|
+
return;
|
|
7615
|
+
}
|
|
7598
7616
|
const srcVal = source[key];
|
|
7599
7617
|
const tgtVal = target[key];
|
|
7600
7618
|
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)) {
|
|
@@ -32813,7 +32831,11 @@ function filterStyleProperties(style, allowed) {
|
|
|
32813
32831
|
if (!jodit.o.cleanHTML.removeEmptyElements) {
|
|
32814
32832
|
return false;
|
|
32815
32833
|
}
|
|
32816
|
-
|
|
32834
|
+
// Never drop an empty inline element that currently holds the caret — it is
|
|
32835
|
+
// a pending-format marker the user is about to type into (#1291). `current`
|
|
32836
|
+
// is captured before a click moves the caret, so also check the live caret.
|
|
32837
|
+
const liveCaret = jodit.s.isCollapsed() ? jodit.s.range.startContainer : null;
|
|
32838
|
+
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));
|
|
32817
32839
|
}
|
|
32818
32840
|
|
|
32819
32841
|
|
|
@@ -33612,11 +33634,33 @@ var DragState;
|
|
|
33612
33634
|
*/ class dragAndDropElement extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
|
|
33613
33635
|
/** @override */ afterInit() {
|
|
33614
33636
|
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()) : [];
|
|
33637
|
+
// Allow another plugin (e.g. a drag handle/anchor) to start dragging
|
|
33638
|
+
// an element programmatically, regardless of the `draggableTags` list.
|
|
33639
|
+
this.j.e.on('startDragElement', this.onStartDragElement);
|
|
33615
33640
|
if (!this.dragList.length) {
|
|
33616
33641
|
return;
|
|
33617
33642
|
}
|
|
33618
33643
|
this.j.e.on('mousedown dragstart', this.onDragStart);
|
|
33619
33644
|
}
|
|
33645
|
+
/**
|
|
33646
|
+
* Start dragging a specific element programmatically.
|
|
33647
|
+
*
|
|
33648
|
+
* Allows a separate UI element (for example a drag handle/anchor shown next
|
|
33649
|
+
* to a block) to initiate the drag without the user pressing directly on the
|
|
33650
|
+
* draggable element itself.
|
|
33651
|
+
*
|
|
33652
|
+
* @example
|
|
33653
|
+
* ```js
|
|
33654
|
+
* handle.addEventListener('mousedown', e => {
|
|
33655
|
+
* editor.e.fire('startDragElement', preBlock, e);
|
|
33656
|
+
* });
|
|
33657
|
+
* ```
|
|
33658
|
+
*/ onStartDragElement(element, event) {
|
|
33659
|
+
if (this.isInDestruct || this.state > DragState.IDLE || !element) {
|
|
33660
|
+
return;
|
|
33661
|
+
}
|
|
33662
|
+
this.startDragging(element, event);
|
|
33663
|
+
}
|
|
33620
33664
|
/**
|
|
33621
33665
|
* Drag start handler
|
|
33622
33666
|
*/ onDragStart(event) {
|
|
@@ -33638,11 +33682,18 @@ var DragState;
|
|
|
33638
33682
|
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(lastTarget.parentElement, 'a') && lastTarget.parentElement.firstChild === lastTarget && lastTarget.parentElement.lastChild === lastTarget) {
|
|
33639
33683
|
lastTarget = lastTarget.parentElement;
|
|
33640
33684
|
}
|
|
33685
|
+
this.startDragging(lastTarget, event);
|
|
33686
|
+
}
|
|
33687
|
+
/**
|
|
33688
|
+
* Prepare the ghost element and switch to the waiting state.
|
|
33689
|
+
* Shared by the native mousedown handler and the programmatic
|
|
33690
|
+
* `startDragElement` event handler.
|
|
33691
|
+
*/ startDragging(target, event) {
|
|
33641
33692
|
this.startX = event.clientX;
|
|
33642
33693
|
this.startY = event.clientY;
|
|
33643
33694
|
this.isCopyMode = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.ctrlKey)(event); // we can move only element from editor
|
|
33644
|
-
this.draggable =
|
|
33645
|
-
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target',
|
|
33695
|
+
this.draggable = target.cloneNode(true);
|
|
33696
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target', target);
|
|
33646
33697
|
this.state = DragState.WAIT_DRAGGING;
|
|
33647
33698
|
this.addDragListeners();
|
|
33648
33699
|
}
|
|
@@ -33712,6 +33763,18 @@ var DragState;
|
|
|
33712
33763
|
}
|
|
33713
33764
|
const { parentElement } = fragment;
|
|
33714
33765
|
this.j.s.insertNode(fragment, true, false);
|
|
33766
|
+
// Dropping a non-editable block (e.g. a `<pre>` code sample) can leave an
|
|
33767
|
+
// invisible filler text node beside it. Remove it so the drop does not
|
|
33768
|
+
// introduce a stray empty line (which clean-html would otherwise strip
|
|
33769
|
+
// later, causing a flash).
|
|
33770
|
+
[
|
|
33771
|
+
fragment.previousSibling,
|
|
33772
|
+
fragment.nextSibling
|
|
33773
|
+
].forEach((node)=>{
|
|
33774
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(node)) {
|
|
33775
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
33776
|
+
}
|
|
33777
|
+
});
|
|
33715
33778
|
if (parentElement && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(parentElement) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell(parentElement)) {
|
|
33716
33779
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(parentElement);
|
|
33717
33780
|
}
|
|
@@ -33738,7 +33801,7 @@ var DragState;
|
|
|
33738
33801
|
}
|
|
33739
33802
|
/** @override */ beforeDestruct() {
|
|
33740
33803
|
this.onDragEnd();
|
|
33741
|
-
this.j.e.off('mousedown dragstart', this.onDragStart);
|
|
33804
|
+
this.j.e.off('mousedown dragstart', this.onDragStart).off('startDragElement', this.onStartDragElement);
|
|
33742
33805
|
this.removeDragListeners();
|
|
33743
33806
|
}
|
|
33744
33807
|
constructor(){
|
|
@@ -33754,6 +33817,9 @@ var DragState;
|
|
|
33754
33817
|
this.state = DragState.IDLE;
|
|
33755
33818
|
}
|
|
33756
33819
|
}
|
|
33820
|
+
__decorate([
|
|
33821
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
|
|
33822
|
+
], dragAndDropElement.prototype, "onStartDragElement", null);
|
|
33757
33823
|
__decorate([
|
|
33758
33824
|
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
|
|
33759
33825
|
], dragAndDropElement.prototype, "onDragStart", null);
|
|
@@ -34240,12 +34306,17 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('dtd', dtd);
|
|
|
34240
34306
|
if (beforeEnter !== undefined) {
|
|
34241
34307
|
return beforeEnter;
|
|
34242
34308
|
}
|
|
34243
|
-
|
|
34244
|
-
|
|
34245
|
-
|
|
34246
|
-
editor.
|
|
34247
|
-
|
|
34248
|
-
|
|
34309
|
+
// Delete-of-selection + new block must be a single history step,
|
|
34310
|
+
// otherwise pressing Enter over a selection needs two Ctrl+Z to undo
|
|
34311
|
+
// (the first only reverts to the intermediate empty state). #1292
|
|
34312
|
+
editor.history.snapshot.transaction(()=>{
|
|
34313
|
+
if (!editor.s.isCollapsed()) {
|
|
34314
|
+
editor.execCommand('Delete');
|
|
34315
|
+
}
|
|
34316
|
+
editor.s.focus();
|
|
34317
|
+
this.onEnter(event);
|
|
34318
|
+
editor.e.fire('afterEnter', event);
|
|
34319
|
+
});
|
|
34249
34320
|
editor.synchronizeValues(); // fire change
|
|
34250
34321
|
return false;
|
|
34251
34322
|
}
|
|
@@ -43276,13 +43347,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
43276
43347
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
43277
43348
|
|
|
43278
43349
|
/* unused harmony export select */
|
|
43279
|
-
/* harmony import */ var
|
|
43280
|
-
/* harmony import */ var
|
|
43281
|
-
/* harmony import */ var
|
|
43282
|
-
/* harmony import */ var
|
|
43283
|
-
/* harmony import */ var
|
|
43284
|
-
/* harmony import */ var
|
|
43285
|
-
/* harmony import */ var
|
|
43350
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
43351
|
+
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
|
|
43352
|
+
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2748);
|
|
43353
|
+
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
|
|
43354
|
+
/* harmony import */ var _core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(87058);
|
|
43355
|
+
/* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
|
|
43356
|
+
/* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67510);
|
|
43357
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(67215);
|
|
43286
43358
|
/*!
|
|
43287
43359
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
43288
43360
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -43300,6 +43372,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
43300
43372
|
|
|
43301
43373
|
|
|
43302
43374
|
|
|
43375
|
+
|
|
43303
43376
|
/**
|
|
43304
43377
|
* A utility plugin that allows you to subscribe to a click/mousedown/touchstart/mouseup on an element in DOM order
|
|
43305
43378
|
*
|
|
@@ -43310,7 +43383,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
43310
43383
|
* console.log(img.src);
|
|
43311
43384
|
* })
|
|
43312
43385
|
* ```
|
|
43313
|
-
*/ class select extends
|
|
43386
|
+
*/ class select extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
43314
43387
|
afterInit(jodit) {
|
|
43315
43388
|
this.proxyEventsList.forEach((eventName)=>{
|
|
43316
43389
|
jodit.e.on(eventName + '.select', this.onStartSelection);
|
|
@@ -43325,7 +43398,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
43325
43398
|
const { j } = this;
|
|
43326
43399
|
let result, target = e.target;
|
|
43327
43400
|
while(result === undefined && target && target !== j.editor){
|
|
43328
|
-
result = j.e.fire((0,
|
|
43401
|
+
result = j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_4__.camelCase)(e.type + '_' + target.nodeName.toLowerCase()), target, e);
|
|
43329
43402
|
target = target.parentElement;
|
|
43330
43403
|
}
|
|
43331
43404
|
if (e.type === 'click' && result === undefined && target === j.editor) {
|
|
@@ -43336,10 +43409,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
43336
43409
|
* @event outsideClick(e) - when user clicked on the outside of editor
|
|
43337
43410
|
*/ onOutsideClick(e) {
|
|
43338
43411
|
const node = e.target;
|
|
43339
|
-
if (
|
|
43412
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.up(node, (elm)=>elm === this.j.editor)) {
|
|
43340
43413
|
return;
|
|
43341
43414
|
}
|
|
43342
|
-
const box =
|
|
43415
|
+
const box = _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.UIElement.closestElement(node, _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.Popup);
|
|
43343
43416
|
if (!box) {
|
|
43344
43417
|
this.j.e.fire('outsideClick', e);
|
|
43345
43418
|
}
|
|
@@ -43348,7 +43421,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
43348
43421
|
const { s } = this.j;
|
|
43349
43422
|
if (!s.isCollapsed()) {
|
|
43350
43423
|
const current = s.current();
|
|
43351
|
-
if (current &&
|
|
43424
|
+
if (current && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(this.j.editor, current)) {
|
|
43352
43425
|
this.onCopyNormalizeSelectionBound();
|
|
43353
43426
|
}
|
|
43354
43427
|
}
|
|
@@ -43360,6 +43433,60 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
43360
43433
|
s.expandSelection();
|
|
43361
43434
|
return false;
|
|
43362
43435
|
}
|
|
43436
|
+
/**
|
|
43437
|
+
* Fix caret position when clicking to the right of a list item that has a
|
|
43438
|
+
* nested list. Blink/WebKit place the caret at the start of the line instead
|
|
43439
|
+
* of the end (#1296); move it to the end of the item's own text.
|
|
43440
|
+
*/ onClickRightOfNestedListItem(e) {
|
|
43441
|
+
const { s } = this.j;
|
|
43442
|
+
const range = s.range;
|
|
43443
|
+
if (!range.collapsed || range.startOffset !== 0 || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(range.startContainer)) {
|
|
43444
|
+
return;
|
|
43445
|
+
}
|
|
43446
|
+
const text = range.startContainer;
|
|
43447
|
+
const li = text.parentNode;
|
|
43448
|
+
// The text must be the direct content of a list item that has a nested
|
|
43449
|
+
// list (the last level has no nested list and behaves correctly).
|
|
43450
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(li, 'li') || !(li.querySelector('ul') || li.querySelector('ol'))) {
|
|
43451
|
+
return;
|
|
43452
|
+
}
|
|
43453
|
+
const measure = this.j.ed.createRange();
|
|
43454
|
+
measure.selectNodeContents(text);
|
|
43455
|
+
const rect = measure.getBoundingClientRect();
|
|
43456
|
+
// Only when the click happened to the right of the text.
|
|
43457
|
+
if (e.clientX > rect.right) {
|
|
43458
|
+
s.setCursorAfter(text);
|
|
43459
|
+
}
|
|
43460
|
+
}
|
|
43461
|
+
/**
|
|
43462
|
+
* Keep pending inline formatting after a click. Toggling Bold/Italic/etc. on
|
|
43463
|
+
* a collapsed cursor leaves empty marker elements with the caret inside; a
|
|
43464
|
+
* click puts the caret right before them (outside), so they get cleaned up
|
|
43465
|
+
* and the formatting is lost. Move the caret back into the innermost marker
|
|
43466
|
+
* so the next typed character keeps every pending format (#1291).
|
|
43467
|
+
*/ onClickKeepPendingFormat() {
|
|
43468
|
+
var _a, _b;
|
|
43469
|
+
const { s } = this.j;
|
|
43470
|
+
const range = s.range;
|
|
43471
|
+
if (!range.collapsed || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(range.startContainer)) {
|
|
43472
|
+
return;
|
|
43473
|
+
}
|
|
43474
|
+
const text = range.startContainer;
|
|
43475
|
+
// Caret must sit at the very end of the text, right before the markers.
|
|
43476
|
+
if (range.startOffset !== ((_b = (_a = text.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0)) {
|
|
43477
|
+
return;
|
|
43478
|
+
}
|
|
43479
|
+
const marker = text.nextSibling;
|
|
43480
|
+
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)) {
|
|
43481
|
+
return;
|
|
43482
|
+
}
|
|
43483
|
+
let inner = marker;
|
|
43484
|
+
// Descend into the innermost empty formatting marker.
|
|
43485
|
+
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)){
|
|
43486
|
+
inner = inner.firstElementChild;
|
|
43487
|
+
}
|
|
43488
|
+
s.setCursorIn(inner);
|
|
43489
|
+
}
|
|
43363
43490
|
/**
|
|
43364
43491
|
* Normalize selection after triple click
|
|
43365
43492
|
*/ onTripleClickNormalizeSelection(e) {
|
|
@@ -43368,8 +43495,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
43368
43495
|
}
|
|
43369
43496
|
const { s } = this.j;
|
|
43370
43497
|
const { startContainer, startOffset } = s.range;
|
|
43371
|
-
if (startOffset === 0 &&
|
|
43372
|
-
s.select(
|
|
43498
|
+
if (startOffset === 0 && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(startContainer)) {
|
|
43499
|
+
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);
|
|
43373
43500
|
}
|
|
43374
43501
|
}
|
|
43375
43502
|
onCopyNormalizeSelectionBound(e) {
|
|
@@ -43377,7 +43504,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
43377
43504
|
if (!o.select.normalizeSelectionBeforeCutAndCopy || s.isCollapsed()) {
|
|
43378
43505
|
return;
|
|
43379
43506
|
}
|
|
43380
|
-
if (e && (!e.isTrusted || !
|
|
43507
|
+
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))) {
|
|
43381
43508
|
return;
|
|
43382
43509
|
}
|
|
43383
43510
|
this.jodit.s.expandSelection();
|
|
@@ -43394,33 +43521,43 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
43394
43521
|
}
|
|
43395
43522
|
}
|
|
43396
43523
|
__decorate([
|
|
43397
|
-
|
|
43524
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
43398
43525
|
], select.prototype, "onStartSelection", null);
|
|
43399
43526
|
__decorate([
|
|
43400
|
-
(0,
|
|
43527
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)('ow:click')
|
|
43401
43528
|
], select.prototype, "onOutsideClick", null);
|
|
43402
43529
|
__decorate([
|
|
43403
|
-
(0,
|
|
43530
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
43404
43531
|
':beforeCommandCut'
|
|
43405
43532
|
])
|
|
43406
43533
|
], select.prototype, "beforeCommandCut", null);
|
|
43407
43534
|
__decorate([
|
|
43408
|
-
(0,
|
|
43535
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
43409
43536
|
':beforeCommandSelectall'
|
|
43410
43537
|
])
|
|
43411
43538
|
], select.prototype, "beforeCommandSelectAll", null);
|
|
43412
43539
|
__decorate([
|
|
43413
|
-
(0,
|
|
43540
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
43541
|
+
':click'
|
|
43542
|
+
])
|
|
43543
|
+
], select.prototype, "onClickRightOfNestedListItem", null);
|
|
43544
|
+
__decorate([
|
|
43545
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
43546
|
+
':click'
|
|
43547
|
+
])
|
|
43548
|
+
], select.prototype, "onClickKeepPendingFormat", null);
|
|
43549
|
+
__decorate([
|
|
43550
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
43414
43551
|
':click'
|
|
43415
43552
|
])
|
|
43416
43553
|
], select.prototype, "onTripleClickNormalizeSelection", null);
|
|
43417
43554
|
__decorate([
|
|
43418
|
-
(0,
|
|
43555
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
43419
43556
|
':copy',
|
|
43420
43557
|
':cut'
|
|
43421
43558
|
])
|
|
43422
43559
|
], select.prototype, "onCopyNormalizeSelectionBound", null);
|
|
43423
|
-
|
|
43560
|
+
_core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('select', select);
|
|
43424
43561
|
|
|
43425
43562
|
|
|
43426
43563
|
/***/ }),
|