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/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)) {
|
|
@@ -32864,7 +32882,11 @@ function filterStyleProperties(style, allowed) {
|
|
|
32864
32882
|
if (!jodit.o.cleanHTML.removeEmptyElements) {
|
|
32865
32883
|
return false;
|
|
32866
32884
|
}
|
|
32867
|
-
|
|
32885
|
+
// Never drop an empty inline element that currently holds the caret — it is
|
|
32886
|
+
// a pending-format marker the user is about to type into (#1291). `current`
|
|
32887
|
+
// is captured before a click moves the caret, so also check the live caret.
|
|
32888
|
+
const liveCaret = jodit.s.isCollapsed() ? jodit.s.range.startContainer : null;
|
|
32889
|
+
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));
|
|
32868
32890
|
}
|
|
32869
32891
|
|
|
32870
32892
|
|
|
@@ -33997,11 +34019,33 @@ var DragState;
|
|
|
33997
34019
|
*/ class dragAndDropElement extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
|
|
33998
34020
|
/** @override */ afterInit() {
|
|
33999
34021
|
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()) : [];
|
|
34022
|
+
// Allow another plugin (e.g. a drag handle/anchor) to start dragging
|
|
34023
|
+
// an element programmatically, regardless of the `draggableTags` list.
|
|
34024
|
+
this.j.e.on('startDragElement', this.onStartDragElement);
|
|
34000
34025
|
if (!this.dragList.length) {
|
|
34001
34026
|
return;
|
|
34002
34027
|
}
|
|
34003
34028
|
this.j.e.on('mousedown dragstart', this.onDragStart);
|
|
34004
34029
|
}
|
|
34030
|
+
/**
|
|
34031
|
+
* Start dragging a specific element programmatically.
|
|
34032
|
+
*
|
|
34033
|
+
* Allows a separate UI element (for example a drag handle/anchor shown next
|
|
34034
|
+
* to a block) to initiate the drag without the user pressing directly on the
|
|
34035
|
+
* draggable element itself.
|
|
34036
|
+
*
|
|
34037
|
+
* @example
|
|
34038
|
+
* ```js
|
|
34039
|
+
* handle.addEventListener('mousedown', e => {
|
|
34040
|
+
* editor.e.fire('startDragElement', preBlock, e);
|
|
34041
|
+
* });
|
|
34042
|
+
* ```
|
|
34043
|
+
*/ onStartDragElement(element, event) {
|
|
34044
|
+
if (this.isInDestruct || this.state > DragState.IDLE || !element) {
|
|
34045
|
+
return;
|
|
34046
|
+
}
|
|
34047
|
+
this.startDragging(element, event);
|
|
34048
|
+
}
|
|
34005
34049
|
/**
|
|
34006
34050
|
* Drag start handler
|
|
34007
34051
|
*/ onDragStart(event) {
|
|
@@ -34023,11 +34067,18 @@ var DragState;
|
|
|
34023
34067
|
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(lastTarget.parentElement, 'a') && lastTarget.parentElement.firstChild === lastTarget && lastTarget.parentElement.lastChild === lastTarget) {
|
|
34024
34068
|
lastTarget = lastTarget.parentElement;
|
|
34025
34069
|
}
|
|
34070
|
+
this.startDragging(lastTarget, event);
|
|
34071
|
+
}
|
|
34072
|
+
/**
|
|
34073
|
+
* Prepare the ghost element and switch to the waiting state.
|
|
34074
|
+
* Shared by the native mousedown handler and the programmatic
|
|
34075
|
+
* `startDragElement` event handler.
|
|
34076
|
+
*/ startDragging(target, event) {
|
|
34026
34077
|
this.startX = event.clientX;
|
|
34027
34078
|
this.startY = event.clientY;
|
|
34028
34079
|
this.isCopyMode = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.ctrlKey)(event); // we can move only element from editor
|
|
34029
|
-
this.draggable =
|
|
34030
|
-
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target',
|
|
34080
|
+
this.draggable = target.cloneNode(true);
|
|
34081
|
+
(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(this.draggable, 'target', target);
|
|
34031
34082
|
this.state = DragState.WAIT_DRAGGING;
|
|
34032
34083
|
this.addDragListeners();
|
|
34033
34084
|
}
|
|
@@ -34097,6 +34148,18 @@ var DragState;
|
|
|
34097
34148
|
}
|
|
34098
34149
|
const { parentElement } = fragment;
|
|
34099
34150
|
this.j.s.insertNode(fragment, true, false);
|
|
34151
|
+
// Dropping a non-editable block (e.g. a `<pre>` code sample) can leave an
|
|
34152
|
+
// invisible filler text node beside it. Remove it so the drop does not
|
|
34153
|
+
// introduce a stray empty line (which clean-html would otherwise strip
|
|
34154
|
+
// later, causing a flash).
|
|
34155
|
+
[
|
|
34156
|
+
fragment.previousSibling,
|
|
34157
|
+
fragment.nextSibling
|
|
34158
|
+
].forEach((node)=>{
|
|
34159
|
+
if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(node)) {
|
|
34160
|
+
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
34161
|
+
}
|
|
34162
|
+
});
|
|
34100
34163
|
if (parentElement && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(parentElement) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell(parentElement)) {
|
|
34101
34164
|
_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(parentElement);
|
|
34102
34165
|
}
|
|
@@ -34123,7 +34186,7 @@ var DragState;
|
|
|
34123
34186
|
}
|
|
34124
34187
|
/** @override */ beforeDestruct() {
|
|
34125
34188
|
this.onDragEnd();
|
|
34126
|
-
this.j.e.off('mousedown dragstart', this.onDragStart);
|
|
34189
|
+
this.j.e.off('mousedown dragstart', this.onDragStart).off('startDragElement', this.onStartDragElement);
|
|
34127
34190
|
this.removeDragListeners();
|
|
34128
34191
|
}
|
|
34129
34192
|
constructor(){
|
|
@@ -34139,6 +34202,9 @@ var DragState;
|
|
|
34139
34202
|
this.state = DragState.IDLE;
|
|
34140
34203
|
}
|
|
34141
34204
|
}
|
|
34205
|
+
__decorate([
|
|
34206
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
|
|
34207
|
+
], dragAndDropElement.prototype, "onStartDragElement", null);
|
|
34142
34208
|
__decorate([
|
|
34143
34209
|
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
|
|
34144
34210
|
], dragAndDropElement.prototype, "onDragStart", null);
|
|
@@ -34625,12 +34691,17 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('dtd', dtd);
|
|
|
34625
34691
|
if (beforeEnter !== undefined) {
|
|
34626
34692
|
return beforeEnter;
|
|
34627
34693
|
}
|
|
34628
|
-
|
|
34629
|
-
|
|
34630
|
-
|
|
34631
|
-
editor.
|
|
34632
|
-
|
|
34633
|
-
|
|
34694
|
+
// Delete-of-selection + new block must be a single history step,
|
|
34695
|
+
// otherwise pressing Enter over a selection needs two Ctrl+Z to undo
|
|
34696
|
+
// (the first only reverts to the intermediate empty state). #1292
|
|
34697
|
+
editor.history.snapshot.transaction(()=>{
|
|
34698
|
+
if (!editor.s.isCollapsed()) {
|
|
34699
|
+
editor.execCommand('Delete');
|
|
34700
|
+
}
|
|
34701
|
+
editor.s.focus();
|
|
34702
|
+
this.onEnter(event);
|
|
34703
|
+
editor.e.fire('afterEnter', event);
|
|
34704
|
+
});
|
|
34634
34705
|
editor.synchronizeValues(); // fire change
|
|
34635
34706
|
return false;
|
|
34636
34707
|
}
|
|
@@ -44033,13 +44104,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
44033
44104
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
44034
44105
|
|
|
44035
44106
|
/* unused harmony export select */
|
|
44036
|
-
/* harmony import */ var
|
|
44037
|
-
/* harmony import */ var
|
|
44038
|
-
/* harmony import */ var
|
|
44039
|
-
/* harmony import */ var
|
|
44040
|
-
/* harmony import */ var
|
|
44041
|
-
/* harmony import */ var
|
|
44042
|
-
/* harmony import */ var
|
|
44107
|
+
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
44108
|
+
/* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
|
|
44109
|
+
/* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2748);
|
|
44110
|
+
/* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
|
|
44111
|
+
/* harmony import */ var _core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(87058);
|
|
44112
|
+
/* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
|
|
44113
|
+
/* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67510);
|
|
44114
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(67215);
|
|
44043
44115
|
/*!
|
|
44044
44116
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
44045
44117
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -44057,6 +44129,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
44057
44129
|
|
|
44058
44130
|
|
|
44059
44131
|
|
|
44132
|
+
|
|
44060
44133
|
/**
|
|
44061
44134
|
* A utility plugin that allows you to subscribe to a click/mousedown/touchstart/mouseup on an element in DOM order
|
|
44062
44135
|
*
|
|
@@ -44067,7 +44140,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
44067
44140
|
* console.log(img.src);
|
|
44068
44141
|
* })
|
|
44069
44142
|
* ```
|
|
44070
|
-
*/ class select extends
|
|
44143
|
+
*/ class select extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
|
|
44071
44144
|
afterInit(jodit) {
|
|
44072
44145
|
this.proxyEventsList.forEach((eventName)=>{
|
|
44073
44146
|
jodit.e.on(eventName + '.select', this.onStartSelection);
|
|
@@ -44082,7 +44155,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
44082
44155
|
const { j } = this;
|
|
44083
44156
|
let result, target = e.target;
|
|
44084
44157
|
while(result === undefined && target && target !== j.editor){
|
|
44085
|
-
result = j.e.fire((0,
|
|
44158
|
+
result = j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_4__.camelCase)(e.type + '_' + target.nodeName.toLowerCase()), target, e);
|
|
44086
44159
|
target = target.parentElement;
|
|
44087
44160
|
}
|
|
44088
44161
|
if (e.type === 'click' && result === undefined && target === j.editor) {
|
|
@@ -44093,10 +44166,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
44093
44166
|
* @event outsideClick(e) - when user clicked on the outside of editor
|
|
44094
44167
|
*/ onOutsideClick(e) {
|
|
44095
44168
|
const node = e.target;
|
|
44096
|
-
if (
|
|
44169
|
+
if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.up(node, (elm)=>elm === this.j.editor)) {
|
|
44097
44170
|
return;
|
|
44098
44171
|
}
|
|
44099
|
-
const box =
|
|
44172
|
+
const box = _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.UIElement.closestElement(node, _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.Popup);
|
|
44100
44173
|
if (!box) {
|
|
44101
44174
|
this.j.e.fire('outsideClick', e);
|
|
44102
44175
|
}
|
|
@@ -44105,7 +44178,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
44105
44178
|
const { s } = this.j;
|
|
44106
44179
|
if (!s.isCollapsed()) {
|
|
44107
44180
|
const current = s.current();
|
|
44108
|
-
if (current &&
|
|
44181
|
+
if (current && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(this.j.editor, current)) {
|
|
44109
44182
|
this.onCopyNormalizeSelectionBound();
|
|
44110
44183
|
}
|
|
44111
44184
|
}
|
|
@@ -44117,6 +44190,60 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
44117
44190
|
s.expandSelection();
|
|
44118
44191
|
return false;
|
|
44119
44192
|
}
|
|
44193
|
+
/**
|
|
44194
|
+
* Fix caret position when clicking to the right of a list item that has a
|
|
44195
|
+
* nested list. Blink/WebKit place the caret at the start of the line instead
|
|
44196
|
+
* of the end (#1296); move it to the end of the item's own text.
|
|
44197
|
+
*/ onClickRightOfNestedListItem(e) {
|
|
44198
|
+
const { s } = this.j;
|
|
44199
|
+
const range = s.range;
|
|
44200
|
+
if (!range.collapsed || range.startOffset !== 0 || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(range.startContainer)) {
|
|
44201
|
+
return;
|
|
44202
|
+
}
|
|
44203
|
+
const text = range.startContainer;
|
|
44204
|
+
const li = text.parentNode;
|
|
44205
|
+
// The text must be the direct content of a list item that has a nested
|
|
44206
|
+
// list (the last level has no nested list and behaves correctly).
|
|
44207
|
+
if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(li, 'li') || !(li.querySelector('ul') || li.querySelector('ol'))) {
|
|
44208
|
+
return;
|
|
44209
|
+
}
|
|
44210
|
+
const measure = this.j.ed.createRange();
|
|
44211
|
+
measure.selectNodeContents(text);
|
|
44212
|
+
const rect = measure.getBoundingClientRect();
|
|
44213
|
+
// Only when the click happened to the right of the text.
|
|
44214
|
+
if (e.clientX > rect.right) {
|
|
44215
|
+
s.setCursorAfter(text);
|
|
44216
|
+
}
|
|
44217
|
+
}
|
|
44218
|
+
/**
|
|
44219
|
+
* Keep pending inline formatting after a click. Toggling Bold/Italic/etc. on
|
|
44220
|
+
* a collapsed cursor leaves empty marker elements with the caret inside; a
|
|
44221
|
+
* click puts the caret right before them (outside), so they get cleaned up
|
|
44222
|
+
* and the formatting is lost. Move the caret back into the innermost marker
|
|
44223
|
+
* so the next typed character keeps every pending format (#1291).
|
|
44224
|
+
*/ onClickKeepPendingFormat() {
|
|
44225
|
+
var _a, _b;
|
|
44226
|
+
const { s } = this.j;
|
|
44227
|
+
const range = s.range;
|
|
44228
|
+
if (!range.collapsed || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(range.startContainer)) {
|
|
44229
|
+
return;
|
|
44230
|
+
}
|
|
44231
|
+
const text = range.startContainer;
|
|
44232
|
+
// Caret must sit at the very end of the text, right before the markers.
|
|
44233
|
+
if (range.startOffset !== ((_b = (_a = text.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0)) {
|
|
44234
|
+
return;
|
|
44235
|
+
}
|
|
44236
|
+
const marker = text.nextSibling;
|
|
44237
|
+
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)) {
|
|
44238
|
+
return;
|
|
44239
|
+
}
|
|
44240
|
+
let inner = marker;
|
|
44241
|
+
// Descend into the innermost empty formatting marker.
|
|
44242
|
+
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)){
|
|
44243
|
+
inner = inner.firstElementChild;
|
|
44244
|
+
}
|
|
44245
|
+
s.setCursorIn(inner);
|
|
44246
|
+
}
|
|
44120
44247
|
/**
|
|
44121
44248
|
* Normalize selection after triple click
|
|
44122
44249
|
*/ onTripleClickNormalizeSelection(e) {
|
|
@@ -44125,8 +44252,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
44125
44252
|
}
|
|
44126
44253
|
const { s } = this.j;
|
|
44127
44254
|
const { startContainer, startOffset } = s.range;
|
|
44128
|
-
if (startOffset === 0 &&
|
|
44129
|
-
s.select(
|
|
44255
|
+
if (startOffset === 0 && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(startContainer)) {
|
|
44256
|
+
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);
|
|
44130
44257
|
}
|
|
44131
44258
|
}
|
|
44132
44259
|
onCopyNormalizeSelectionBound(e) {
|
|
@@ -44134,7 +44261,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
44134
44261
|
if (!o.select.normalizeSelectionBeforeCutAndCopy || s.isCollapsed()) {
|
|
44135
44262
|
return;
|
|
44136
44263
|
}
|
|
44137
|
-
if (e && (!e.isTrusted || !
|
|
44264
|
+
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))) {
|
|
44138
44265
|
return;
|
|
44139
44266
|
}
|
|
44140
44267
|
this.jodit.s.expandSelection();
|
|
@@ -44151,33 +44278,43 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.select = {
|
|
|
44151
44278
|
}
|
|
44152
44279
|
}
|
|
44153
44280
|
__decorate([
|
|
44154
|
-
|
|
44281
|
+
_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
|
|
44155
44282
|
], select.prototype, "onStartSelection", null);
|
|
44156
44283
|
__decorate([
|
|
44157
|
-
(0,
|
|
44284
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)('ow:click')
|
|
44158
44285
|
], select.prototype, "onOutsideClick", null);
|
|
44159
44286
|
__decorate([
|
|
44160
|
-
(0,
|
|
44287
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
44161
44288
|
':beforeCommandCut'
|
|
44162
44289
|
])
|
|
44163
44290
|
], select.prototype, "beforeCommandCut", null);
|
|
44164
44291
|
__decorate([
|
|
44165
|
-
(0,
|
|
44292
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
44166
44293
|
':beforeCommandSelectall'
|
|
44167
44294
|
])
|
|
44168
44295
|
], select.prototype, "beforeCommandSelectAll", null);
|
|
44169
44296
|
__decorate([
|
|
44170
|
-
(0,
|
|
44297
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
44298
|
+
':click'
|
|
44299
|
+
])
|
|
44300
|
+
], select.prototype, "onClickRightOfNestedListItem", null);
|
|
44301
|
+
__decorate([
|
|
44302
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
44303
|
+
':click'
|
|
44304
|
+
])
|
|
44305
|
+
], select.prototype, "onClickKeepPendingFormat", null);
|
|
44306
|
+
__decorate([
|
|
44307
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
44171
44308
|
':click'
|
|
44172
44309
|
])
|
|
44173
44310
|
], select.prototype, "onTripleClickNormalizeSelection", null);
|
|
44174
44311
|
__decorate([
|
|
44175
|
-
(0,
|
|
44312
|
+
(0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
|
|
44176
44313
|
':copy',
|
|
44177
44314
|
':cut'
|
|
44178
44315
|
])
|
|
44179
44316
|
], select.prototype, "onCopyNormalizeSelectionBound", null);
|
|
44180
|
-
|
|
44317
|
+
_core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('select', select);
|
|
44181
44318
|
|
|
44182
44319
|
|
|
44183
44320
|
/***/ }),
|