jodit-pro 4.6.20 → 4.6.22
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 +2 -2
- package/es2015/jodit.js +33 -8
- package/es2015/jodit.min.js +2 -2
- 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/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 +154 -27
- package/es2015/plugins/translate/translate.min.js +2 -2
- 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.css +1 -1
- package/es2018/jodit.fat.min.js +2 -2
- package/es2018/jodit.js +34 -8
- package/es2018/jodit.min.js +2 -2
- package/es2018/plugins/autocomplete/autocomplete.js +1 -1
- package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2018/plugins/backup/backup.css +1 -1
- package/es2018/plugins/backup/backup.js +1 -1
- package/es2018/plugins/backup/backup.min.js +1 -1
- package/es2018/plugins/button-generator/button-generator.css +1 -1
- package/es2018/plugins/button-generator/button-generator.js +1 -1
- package/es2018/plugins/button-generator/button-generator.min.js +1 -1
- package/es2018/plugins/change-case/change-case.js +1 -1
- package/es2018/plugins/change-case/change-case.min.js +1 -1
- package/es2018/plugins/color-picker/color-picker.css +1 -1
- package/es2018/plugins/color-picker/color-picker.js +1 -1
- package/es2018/plugins/color-picker/color-picker.min.js +1 -1
- package/es2018/plugins/emoji/emoji.css +1 -1
- package/es2018/plugins/emoji/emoji.js +1 -1
- package/es2018/plugins/emoji/emoji.min.js +1 -1
- package/es2018/plugins/export-docs/export-docs.js +1 -1
- package/es2018/plugins/export-docs/export-docs.min.js +1 -1
- package/es2018/plugins/finder/finder.css +1 -1
- package/es2018/plugins/finder/finder.js +1 -1
- package/es2018/plugins/finder/finder.min.js +1 -1
- package/es2018/plugins/google-maps/google-maps.css +1 -1
- package/es2018/plugins/google-maps/google-maps.js +1 -1
- package/es2018/plugins/google-maps/google-maps.min.js +1 -1
- package/es2018/plugins/google-search/google-search.js +1 -1
- package/es2018/plugins/google-search/google-search.min.js +1 -1
- package/es2018/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2018/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2018/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2018/plugins/keyboard/keyboard.css +1 -1
- package/es2018/plugins/keyboard/keyboard.js +1 -1
- package/es2018/plugins/keyboard/keyboard.min.js +1 -1
- package/es2018/plugins/mobile-view/mobile-view.js +1 -1
- package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2018/plugins/page-break/page-break.js +1 -1
- package/es2018/plugins/page-break/page-break.min.js +1 -1
- package/es2018/plugins/paste-code/paste-code.css +1 -1
- package/es2018/plugins/paste-code/paste-code.js +1 -1
- package/es2018/plugins/paste-code/paste-code.min.js +1 -1
- package/es2018/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2018/plugins/show-blocks/show-blocks.js +1 -1
- package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2018/plugins/todo-list/todo-list.css +1 -1
- package/es2018/plugins/todo-list/todo-list.js +1 -1
- package/es2018/plugins/todo-list/todo-list.min.js +1 -1
- package/es2018/plugins/translate/translate.css +1 -1
- package/es2018/plugins/translate/translate.js +154 -27
- package/es2018/plugins/translate/translate.min.js +2 -2
- package/es2018/plugins/tune-block/tune-block.css +1 -1
- package/es2018/plugins/tune-block/tune-block.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 +2 -2
- package/es2021/jodit.js +36 -9
- package/es2021/jodit.min.js +2 -2
- 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/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 +154 -27
- package/es2021/plugins/translate/translate.min.js +2 -2
- 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 +2 -2
- package/es2021.en/jodit.js +36 -9
- package/es2021.en/jodit.min.js +2 -2
- 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/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 +154 -27
- package/es2021.en/plugins/translate/translate.min.js +2 -2
- 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 +33 -8
- package/es5/jodit.min.css +2 -2
- package/es5/jodit.min.js +2 -2
- 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/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 +154 -27
- package/es5/plugins/translate/translate.min.js +2 -2
- 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/esm/plugins/autocomplete/autocomplete.d.ts +2 -1
- package/esm/plugins/autocomplete/autocomplete.js +1 -1
- package/esm/plugins/autocomplete/interface.d.ts +6 -6
- package/esm/plugins/license/helpers/helpers.d.ts +1 -0
- package/esm/plugins/license/helpers/helpers.js +1 -1
- package/esm/plugins/license/license.js +1 -1
- package/esm/plugins/translate/replace-text-fragments.d.ts +7 -0
- package/esm/plugins/translate/replace-text-fragments.js +1 -0
- package/esm/plugins/translate/translate.js +1 -1
- package/package.json +1 -1
- package/types/plugins/autocomplete/autocomplete.d.ts +2 -1
- package/types/plugins/autocomplete/interface.d.ts +6 -6
- package/types/plugins/license/helpers/helpers.d.ts +1 -0
- package/types/plugins/translate/replace-text-fragments.d.ts +7 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit-pro - PRO Version of Jodit Editor
|
|
3
3
|
* Author: Chupurnov Valeriy <chupurnov@gmail.com>
|
|
4
|
-
* Version: v4.6.
|
|
4
|
+
* Version: v4.6.22
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -30,13 +30,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30
30
|
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97527);
|
|
31
31
|
/* harmony import */ var _providers_google_google__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56903);
|
|
32
32
|
/* harmony import */ var _ui_settings_settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(97195);
|
|
33
|
-
/* harmony import */ var
|
|
34
|
-
/* harmony import */ var
|
|
35
|
-
/* harmony import */ var
|
|
36
|
-
/* harmony import */ var
|
|
37
|
-
/* harmony import */ var
|
|
38
|
-
/* harmony import */ var
|
|
39
|
-
/* harmony import */ var
|
|
33
|
+
/* harmony import */ var _replace_text_fragments__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75637);
|
|
34
|
+
/* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65478);
|
|
35
|
+
/* harmony import */ var jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(70799);
|
|
36
|
+
/* harmony import */ var jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(38837);
|
|
37
|
+
/* harmony import */ var jodit_esm_core_helpers_utils_default_language__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(96325);
|
|
38
|
+
/* harmony import */ var jodit_esm_core_plugin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(50911);
|
|
39
|
+
/* harmony import */ var jodit_esm_core_ui_button_button_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(10830);
|
|
40
|
+
/* harmony import */ var jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(34013);
|
|
40
41
|
/*!
|
|
41
42
|
* Jodit Editor PRO (https://xdsoft.net/jodit/)
|
|
42
43
|
* See LICENSE.md in the project root for license information.
|
|
@@ -54,6 +55,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
54
55
|
|
|
55
56
|
|
|
56
57
|
|
|
58
|
+
|
|
57
59
|
var Translate = /** @class */ (function (_super) {
|
|
58
60
|
(0,tslib__WEBPACK_IMPORTED_MODULE_0__/* .__extends */ .C6)(Translate, _super);
|
|
59
61
|
function Translate() {
|
|
@@ -72,7 +74,7 @@ var Translate = /** @class */ (function (_super) {
|
|
|
72
74
|
}
|
|
73
75
|
Translate.prototype.__getProvider = function () {
|
|
74
76
|
var provider = this.jodit.options.translate.provider;
|
|
75
|
-
if ((0,
|
|
77
|
+
if ((0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_6__/* .isString */ .K)(provider)) {
|
|
76
78
|
switch (provider) {
|
|
77
79
|
case 'google':
|
|
78
80
|
return new _providers_google_google__WEBPACK_IMPORTED_MODULE_2__/* .GoogleTranslateProvider */ .l(this.j);
|
|
@@ -85,7 +87,7 @@ var Translate = /** @class */ (function (_super) {
|
|
|
85
87
|
};
|
|
86
88
|
Translate.prototype.afterInit = function (jodit) {
|
|
87
89
|
var _this = this;
|
|
88
|
-
var defaultLanguage = (0,
|
|
90
|
+
var defaultLanguage = (0,jodit_esm_core_helpers_utils_default_language__WEBPACK_IMPORTED_MODULE_8__/* .defaultLanguage */ .e)(jodit.o.language, jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_11__/* .JoditPro */ .A.defaultOptions.language), language = (0,jodit_esm_core_helpers_utils_default_language__WEBPACK_IMPORTED_MODULE_8__/* .defaultLanguage */ .e)(jodit.o.language, defaultLanguage);
|
|
89
91
|
var provider = this.__getProvider();
|
|
90
92
|
jodit
|
|
91
93
|
.registerCommand('translateOptions', {
|
|
@@ -110,10 +112,10 @@ var Translate = /** @class */ (function (_super) {
|
|
|
110
112
|
});
|
|
111
113
|
dlg.setContent(settings);
|
|
112
114
|
dlg.setFooter([
|
|
113
|
-
(0,
|
|
115
|
+
(0,jodit_esm_core_ui_button_button_button__WEBPACK_IMPORTED_MODULE_10__/* .Button */ .$n)(jodit, 'cancel', 'Cancel').onAction(function () {
|
|
114
116
|
return dlg.close();
|
|
115
117
|
}),
|
|
116
|
-
(0,
|
|
118
|
+
(0,jodit_esm_core_ui_button_button_button__WEBPACK_IMPORTED_MODULE_10__/* .Button */ .$n)(jodit, 'ok', 'Save', 'primary').onAction(function () {
|
|
117
119
|
_this.state = newState;
|
|
118
120
|
dlg.close();
|
|
119
121
|
})
|
|
@@ -128,23 +130,27 @@ var Translate = /** @class */ (function (_super) {
|
|
|
128
130
|
})
|
|
129
131
|
.registerCommand('translate', {
|
|
130
132
|
exec: function () {
|
|
131
|
-
var selection = jodit.
|
|
132
|
-
if (!selection) {
|
|
133
|
+
var selection = (0,_replace_text_fragments__WEBPACK_IMPORTED_MODULE_4__/* .getSelectionFragments */ .a)(jodit).filter(function (fragment) { return fragment.text.trim().length > 0; });
|
|
134
|
+
if (!selection.length) {
|
|
133
135
|
jodit.message.error('Select text for translate');
|
|
134
136
|
return;
|
|
135
137
|
}
|
|
136
|
-
|
|
137
|
-
.translate(selection, !_this.state.sourceLang ||
|
|
138
|
+
var source = !_this.state.sourceLang ||
|
|
138
139
|
_this.state.sourceLang === 'auto'
|
|
139
140
|
? language
|
|
140
|
-
: _this.state.sourceLang
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
141
|
+
: _this.state.sourceLang;
|
|
142
|
+
var target = _this.state.targetLang;
|
|
143
|
+
return Promise.all(selection.map(function (fragment) {
|
|
144
|
+
provider
|
|
145
|
+
.translate(fragment.text, source, target)
|
|
146
|
+
.then(function (response) {
|
|
147
|
+
fragment.replace(response.text);
|
|
148
|
+
})
|
|
149
|
+
.catch(function (error) {
|
|
150
|
+
jodit.message.error((0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_6__/* .isString */ .K)(error) ? error : error.message);
|
|
151
|
+
});
|
|
152
|
+
})).then(function () {
|
|
153
|
+
jodit.synchronizeValues();
|
|
148
154
|
});
|
|
149
155
|
},
|
|
150
156
|
hotkeys: jodit.o.translate.hotkeys.translateSelection
|
|
@@ -153,12 +159,12 @@ var Translate = /** @class */ (function (_super) {
|
|
|
153
159
|
Translate.prototype.beforeDestruct = function (jodit) { };
|
|
154
160
|
Translate.requires = ['license'];
|
|
155
161
|
(0,tslib__WEBPACK_IMPORTED_MODULE_0__/* .__decorate */ .Cg)([
|
|
156
|
-
|
|
162
|
+
jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_5__.persistent
|
|
157
163
|
], Translate.prototype, "state", void 0);
|
|
158
164
|
return Translate;
|
|
159
|
-
}(
|
|
165
|
+
}(jodit_esm_core_plugin__WEBPACK_IMPORTED_MODULE_9__/* .Plugin */ .k));
|
|
160
166
|
|
|
161
|
-
|
|
167
|
+
jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_11__/* .JoditPro */ .A.plugins.add('translate', Translate);
|
|
162
168
|
|
|
163
169
|
|
|
164
170
|
/***/ }),
|
|
@@ -396,6 +402,127 @@ var GoogleTranslateProvider = /** @class */ (function () {
|
|
|
396
402
|
|
|
397
403
|
module.exports = "<svg viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M13.98 22L6 30l7.98 8v-6H28v-4H13.98v-6zM42 18l-7.98-8v6H20v4h14.02v6L42 18z\"/> <path d=\"M0 0h48v48H0z\" fill=\"none\"/> </svg>"
|
|
398
404
|
|
|
405
|
+
/***/ }),
|
|
406
|
+
|
|
407
|
+
/***/ 75637:
|
|
408
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
409
|
+
|
|
410
|
+
"use strict";
|
|
411
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
412
|
+
/* harmony export */ a: function() { return /* binding */ getSelectionFragments; }
|
|
413
|
+
/* harmony export */ });
|
|
414
|
+
/* harmony import */ var jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
|
|
415
|
+
|
|
416
|
+
function getSelectionFragments(jodit) {
|
|
417
|
+
var result = [];
|
|
418
|
+
var selection = jodit.s.expandSelection().sel;
|
|
419
|
+
if (!selection || selection.rangeCount === 0 || selection.isCollapsed) {
|
|
420
|
+
return result;
|
|
421
|
+
}
|
|
422
|
+
jodit.s.range.commonAncestorContainer.normalize();
|
|
423
|
+
var range = jodit.s.range;
|
|
424
|
+
var commonAncestorContainer = range.commonAncestorContainer, startContainer = range.startContainer, endContainer = range.endContainer, startOffset = range.startOffset, endOffset = range.endOffset;
|
|
425
|
+
if (startContainer === endContainer) {
|
|
426
|
+
if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isText(startContainer)) {
|
|
427
|
+
return [replaceTextNode(startContainer, startOffset, endOffset)];
|
|
428
|
+
}
|
|
429
|
+
// One child selected exactly
|
|
430
|
+
if (endOffset - startOffset === 1) {
|
|
431
|
+
var childNode = startContainer.childNodes[startOffset];
|
|
432
|
+
if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isText(childNode)) {
|
|
433
|
+
return [
|
|
434
|
+
replaceTextNode(childNode, 0, childNode.nodeValue.length)
|
|
435
|
+
];
|
|
436
|
+
}
|
|
437
|
+
return [replaceElementNode(childNode)];
|
|
438
|
+
}
|
|
439
|
+
// Whole container contents selected
|
|
440
|
+
if (startOffset === 0 &&
|
|
441
|
+
startContainer.childNodes.length === endOffset) {
|
|
442
|
+
return [replaceElementNode(startContainer)];
|
|
443
|
+
}
|
|
444
|
+
// Range spans multiple children of the same container
|
|
445
|
+
for (var i = startOffset; i < endOffset; i++) {
|
|
446
|
+
var childNode = startContainer.childNodes[i];
|
|
447
|
+
if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isText(childNode)) {
|
|
448
|
+
result.push(replaceTextNode(childNode, 0, childNode.nodeValue.length));
|
|
449
|
+
}
|
|
450
|
+
else {
|
|
451
|
+
result.push(replaceElementNode(childNode));
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
return result;
|
|
455
|
+
}
|
|
456
|
+
var allContainedEls = new Set();
|
|
457
|
+
var walker = jodit.ed.createTreeWalker(commonAncestorContainer, NodeFilter.SHOW_ALL, {
|
|
458
|
+
acceptNode: function (n) {
|
|
459
|
+
if (!range.intersectsNode(n))
|
|
460
|
+
return NodeFilter.FILTER_REJECT;
|
|
461
|
+
if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.closest(n, function (el) { return el && allContainedEls.has(el); }, commonAncestorContainer)) {
|
|
462
|
+
return NodeFilter.FILTER_REJECT;
|
|
463
|
+
}
|
|
464
|
+
return NodeFilter.FILTER_ACCEPT;
|
|
465
|
+
}
|
|
466
|
+
});
|
|
467
|
+
var nextNode = walker.nextNode();
|
|
468
|
+
while (nextNode) {
|
|
469
|
+
if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isElement(nextNode) && fullyContains(range, nextNode)) {
|
|
470
|
+
allContainedEls.add(nextNode);
|
|
471
|
+
result.push(replaceElementNode(nextNode));
|
|
472
|
+
}
|
|
473
|
+
else if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isText(nextNode) && fullyContains(range, nextNode)) {
|
|
474
|
+
result.push(replaceTextNode(nextNode, 0, nextNode.nodeValue.length));
|
|
475
|
+
}
|
|
476
|
+
else if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isText(nextNode)) {
|
|
477
|
+
var sOffset = 0;
|
|
478
|
+
var eOffset = nextNode.nodeValue.length;
|
|
479
|
+
if (nextNode === startContainer) {
|
|
480
|
+
sOffset = startOffset;
|
|
481
|
+
}
|
|
482
|
+
if (nextNode === endContainer) {
|
|
483
|
+
eOffset = endOffset;
|
|
484
|
+
}
|
|
485
|
+
result.push(replaceTextNode(nextNode, sOffset, eOffset));
|
|
486
|
+
}
|
|
487
|
+
nextNode = walker.nextNode();
|
|
488
|
+
}
|
|
489
|
+
return result;
|
|
490
|
+
}
|
|
491
|
+
var fullyContains = function (r, node) {
|
|
492
|
+
var nr = document.createRange();
|
|
493
|
+
// For containment, we want the node’s *contents*
|
|
494
|
+
try {
|
|
495
|
+
nr.selectNodeContents(node);
|
|
496
|
+
}
|
|
497
|
+
catch (_a) {
|
|
498
|
+
nr.selectNode(node);
|
|
499
|
+
}
|
|
500
|
+
return (r.compareBoundaryPoints(Range.START_TO_START, nr) <= 0 &&
|
|
501
|
+
r.compareBoundaryPoints(Range.END_TO_END, nr) >= 0);
|
|
502
|
+
};
|
|
503
|
+
function replaceTextNode(node, start, end) {
|
|
504
|
+
var text = node.nodeValue.slice(start, end);
|
|
505
|
+
return {
|
|
506
|
+
text: text,
|
|
507
|
+
replace: function (newText) {
|
|
508
|
+
node.nodeValue =
|
|
509
|
+
node.nodeValue.slice(0, start) +
|
|
510
|
+
newText +
|
|
511
|
+
node.nodeValue.slice(end);
|
|
512
|
+
}
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
function replaceElementNode(node) {
|
|
516
|
+
var el = node;
|
|
517
|
+
return {
|
|
518
|
+
text: el.innerHTML,
|
|
519
|
+
replace: function (newHTML) {
|
|
520
|
+
el.innerHTML = newHTML;
|
|
521
|
+
}
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
|
|
399
526
|
/***/ }),
|
|
400
527
|
|
|
401
528
|
/***/ 76697:
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit-pro - PRO Version of Jodit Editor
|
|
3
3
|
* Author: Chupurnov Valeriy <chupurnov@gmail.com>
|
|
4
|
-
* Version: v4.6.
|
|
4
|
+
* Version: v4.6.22
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var a in n)("object"==typeof exports?exports:t)[a]=n[a]}}(self,function(){return(self.webpackChunkjodit_pro=self.webpackChunkjodit_pro||[]).push([[954],{3407:function(t,e,n){"use strict";n.r(e),n.d(e,{Translate:function(){return g}});var a=n(31635),i=(n(97527),n(56903)),o=n(97195),s=n(65478),r=n(70799),l=(n(38837),n(96325)),c=n(50911),u=n(10830),h=n(34013),g=function(t){function e(){var e=t.apply(this,(0,a.fX)([],(0,a.zs)(arguments),!1))||this;return e.buttons=[{name:"translate.translate",group:"insert"}],e.state={sourceLang:e.jodit.o.translate.defaultSourceLang||"en",targetLang:e.jodit.o.translate.defaultTargetLang},e}return(0,a.C6)(e,t),e.prototype.__getProvider=function(){var t=this.jodit.options.translate.provider;if((0,r.K)(t)){if("google"===t)return new i.l(this.j);throw new Error("Unknown provider")}return t(this.jodit)},e.prototype.afterInit=function(t){var e=this,n=(0,l.e)(t.o.language,h.A.defaultOptions.language),i=(0,l.e)(t.o.language,n),s=this.__getProvider();t.registerCommand("translateOptions",{exec:function(){return(0,a.sH)(e,void 0,void 0,function(){var e,n,i,r,l=this;return(0,a.YH)(this,function(a){switch(a.label){case 0:return e=this.state,(n=t.dlg()).setHeader("Translate options"),[4,s.supportedLanguages()];case 1:return i=a.sent(),r=new o.g(n,this.state,{sourceList:i.langs,targetList:i.langs,onChange:function(t){e=t}}),n.setContent(r),n.setFooter([(0,u.$n)(t,"cancel","Cancel").onAction(function(){return n.close()}),(0,u.$n)(t,"ok","Save","primary").onAction(function(){l.state=e,n.close()})]),r.bindDestruct(n),n.setSize(500,400).open(!0),[2]}})})},hotkeys:t.o.translate.hotkeys.translateOptions}).registerCommand("translate",{exec:function(){var n=t.s.html;if(n)return s.translate(n,e.state.sourceLang&&"auto"!==e.state.sourceLang?e.state.sourceLang:i,e.state.targetLang).then(function(e){t.s.range.deleteContents(),t.s.insertNode(t.createInside.text(e.text))}).catch(function(e){t.message.error((0,r.K)(e)?e:e.message)});t.message.error("Select text for translate")},hotkeys:t.o.translate.hotkeys.translateSelection})},e.prototype.beforeDestruct=function(t){},e.requires=["license"],(0,a.Cg)([s.persistent],e.prototype,"state",void 0),e}(c.k);h.A.plugins.add("translate",g)},17391:function(t,e,n){"use strict";n.d(e,{e:function(){return a}});var a={Afrikaans:"af",Albanian:"sq",Amharic:"am",Arabic:"ar",Armenian:"hy","Assamese*":"as","Aymara*":"ay",Azerbaijani:"az","Bambara*":"bm",Basque:"eu",Belarusian:"be",Bengali:"bn","Bhojpuri*":"bho",Bosnian:"bs",Bulgarian:"bg",Catalan:"ca",Cebuano:"ceb","Chinese (Simplified)":"zh-CN","Chinese (Traditional)":"zh-TW",Corsican:"co",Croatian:"hr",Czech:"cs",Danish:"da","Dhivehi*":"dv","Dogri*":"doi",Dutch:"nl",English:"en",Esperanto:"eo",Estonian:"et","Ewe*":"ee","Filipino (Tagalog)":"fil",Finnish:"fi",French:"fr",Frisian:"fy",Galician:"gl",Georgian:"ka",German:"de",Greek:"el","Guarani*":"gn",Gujarati:"gu","Haitian Creole":"ht",Hausa:"ha",Hawaiian:"haw",Hebrew:"he",Hindi:"hi",Hmong:"hmn",Hungarian:"hu",Icelandic:"is",Igbo:"ig","Ilocano*":"ilo",Indonesian:"id",Irish:"ga",Italian:"it",Japanese:"ja",Kannada:"kn",Kazakh:"kk",Khmer:"km",Kinyarwanda:"rw","Konkani*":"gom",Korean:"ko","Krio*":"kri",Kurdish:"ku","Kurdish (Sorani)*":"ckb",Kyrgyz:"ky",Lao:"lo",Latin:"la",Latvian:"lv","Lingala*":"ln",Lithuanian:"lt","Luganda*":"lg",Luxembourgish:"lb",Macedonian:"mk","Maithili*":"mai",Malagasy:"mg",Malay:"ms",Malayalam:"ml",Maltese:"mt",Maori:"mi",Marathi:"mr","Meiteilon (Manipuri)*":"mni-Mtei",Mizo:"lus",Mongolian:"mn","Myanmar (Burmese)":"my",Nepali:"ne",Norwegian:"no","Nyanja (Chichewa)":"ny","Odia (Oriya)":"or","Oromo*":"om",Pashto:"ps",Persian:"fa",Polish:"pl",Portuguese:"pt",Punjabi:"pa","Quechua*":"qu",Romanian:"ro",Russian:"ru",Samoan:"sm","Sanskrit*":"sa","Scots Gaelic":"gd","Sepedi*":"nso",Serbian:"sr",Sesotho:"st",Shona:"sn",Sindhi:"sd","Sinhala (Sinhalese)":"si",Slovak:"sk",Slovenian:"sl",Somali:"so",Spanish:"es",Sundanese:"su",Swahili:"sw",Swedish:"sv","Tagalog (Filipino)":"tl",Tajik:"tg",Tamil:"ta",Tatar:"tt",Telugu:"te",Thai:"th","Tigrinya*":"ti","Tsonga*":"ts",Turkish:"tr",Turkmen:"tk","Twi (Akan)*":"ak",Ukrainian:"uk",Urdu:"ur",Uyghur:"ug",Uzbek:"uz",Vietnamese:"vi",Welsh:"cy",Xhosa:"xh",Yiddish:"yi",Yoruba:"yo",Zulu:"zu"}},34575:function(t){t.exports='<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> <path d="M4.545 6.714 4.11 8H3l1.862-5h1.284L8 8H6.833l-.435-1.286H4.545zm1.634-.736L5.5 3.956h-.049l-.679 2.022H6.18z"/> <path d="M0 2a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2v3h3a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-3H2a2 2 0 0 1-2-2V2zm2-1a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H2zm7.138 9.995c.193.301.402.583.63.846-.748.575-1.673 1.001-2.768 1.292.178.217.451.635.555.867 1.125-.359 2.08-.844 2.886-1.494.777.665 1.739 1.165 2.93 1.472.133-.254.414-.673.629-.89-1.125-.253-2.057-.694-2.82-1.284.681-.747 1.222-1.651 1.621-2.757H14V8h-3v1.047h.765c-.318.844-.74 1.546-1.272 2.13a6.066 6.066 0 0 1-.415-.492 1.988 1.988 0 0 1-.94.31z"/> </svg>'},56903:function(t,e,n){"use strict";n.d(e,{l:function(){return o}});var a=n(31635),i=(n(82758),n(38837),n(17391)),o=function(){function t(t){this.jodit=t}return t.prototype.__fetch=function(t,e){var n=this;void 0===e&&(e={});var i=this.jodit.o.translate.googleProviderOptions;return this.jodit.fetch(i.url+"?key="+i.key,{method:"POST",data:(0,a.Cl)((0,a.Cl)({},e),{ui:this.jodit.o.language}),contentType:"application/json; charset=utf-8",withCredentials:!1}).then(function(t){return t.json()}).catch(function(t){try{n.jodit.message.error(t.json().message)}catch(t){}})},t.prototype.translate=function(t,e,n){return this.__fetch("translate",{q:t,source:e,target:n,format:"html"}).then(function(t){return{text:t.data.translations[0].translatedText}})},t.prototype.supportedLanguages=function(){return Promise.resolve({langs:i.e})},t}()},74922:function(t){t.exports='<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"> <path d="M13.98 22L6 30l7.98 8v-6H28v-4H13.98v-6zM42 18l-7.98-8v6H20v4h14.02v6L42 18z"/> <path d="M0 0h48v48H0z" fill="none"/> </svg>'},76697:function(t,e,n){"use strict";n.d(e,{F:function(){return h}});var a=n(31635),i=n(82758),o=n(65478),s=n(2748),r=n(21537),l=n(29960),c=n(48538),u=n(80256),h=function(t){function e(e,n){var a,i=t.call(this,e,n)||this;i.options=n,i.state={active:""},i.state.active=n.active;var o=new u.t(e,{placeholder:e.i18n("Filter"),icon:"search",onChange:i.__onChangeFilter,clearButton:!0});return null===(a=i.getElm("input"))||void 0===a||a.appendChild(o.container),i.__onActiveChange(),i}return(0,a.C6)(e,t),e.prototype.className=function(){return"UITranslateList"},Object.defineProperty(e.prototype,"items",{get:function(){return this.getElms("item")},enumerable:!1,configurable:!0}),e.prototype.render=function(t){var e=this,n=[];return Object.keys(t.list).sort().forEach(function(a){var i=t.list[a];n.push("<a role='button' tabindex='0' class='&__item' data-lang='".concat(i,"'>\n\t\t\t\t\t\t<span class='&__item-key'>").concat(i,"</span>\n\t\t\t\t\t\t<span class='&__item-title'>").concat(e.j.i18n(a),"</span>\n\t\t\t\t\t</a>"))}),"<div class='&'>\n\t\t\t<div class='&__input'></div>\n\t\t\t<div class='&__list'>".concat(n.join(""),"</div>\n\t\t</div>")},e.prototype.__onChangeFilter=function(t){this.items.forEach(function(e){var n,a,i=null!==(a=null===(n=e.textContent)||void 0===n?void 0:n.toLowerCase())&&void 0!==a?a:"";(0,l.C)(e,"data-hidden","true"!==(0,l.C)(e,"data-active")&&!i.includes(t.toLowerCase()))})},e.prototype.__scrollToActive=function(){var t=this.container.querySelector('[data-active="true"]'),e=this.getElm("list");t&&e&&(0,r.scrollIntoViewIfNeeded)(t,e,this.j.od)},e.prototype.onClickItem=function(t){if("keydown"!==t.type||!("key"in t)||t.key===i.KEY_ENTER){var e=t.target;if(s.J.isHTMLElement(e)&&e.getAttribute("data-lang")){var n=(0,l.C)(e,"data-lang");this.options.onChange(n),this.state.active=n}}},e.prototype.__onActiveChange=function(){var t=this;this.items.forEach(function(e){return(0,l.C)(e,"data-active",(0,l.C)(e,"data-lang")===t.state.active)}),this.__scrollToActive()},(0,a.Cg)([(0,o.debounce)()],e.prototype,"__onChangeFilter",null),(0,a.Cg)([(0,o.watch)(":afterOpen")],e.prototype,"__scrollToActive",null),(0,a.Cg)([(0,o.watch)(["container:click","container:keydown"])],e.prototype,"onClickItem",null),(0,a.Cg)([(0,o.watch)("state.active"),(0,o.debounce)()],e.prototype,"__onActiveChange",null),(0,a.Cg)([o.component],e)}(c.D)},97195:function(t,e,n){"use strict";n.d(e,{g:function(){return r}});var a=n(31635),i=n(65478),o=n(67510),s=n(76697),r=function(t){function e(e,n,i){var o,r,l=t.call(this,e)||this;return l.state=n,l.options=i,l.__sourceList=new s.F(e,{list:i.sourceList,active:n.sourceLang,onChange:function(t){l.state.sourceLang=t,l.options.onChange((0,a.Cl)({},l.state))}}),null===(o=l.getElm("source-list"))||void 0===o||o.appendChild(l.__sourceList.container),l.__targetList=new s.F(e,{list:i.targetList,active:n.targetLang,onChange:function(t){l.state.targetLang=t,l.options.onChange((0,a.Cl)({},l.state))}}),null===(r=l.getElm("target-list"))||void 0===r||r.appendChild(l.__targetList.container),l}return(0,a.C6)(e,t),e.prototype.className=function(){return"UITranslateSettings"},e.prototype.render=function(){return"<div>\n\t\t\t<div class='&__list &__source-list'></div>\n\t\t\t<div class='&__arrow'>\n\t\t\t\t<a class='&__arrow-swap'>*translate-swap*</a>\n\t\t\t</div>\n\t\t\t<div class='&__list &__target-list'></div>\n\t\t</div>"},e.prototype.__onSwap=function(){var t=this.state.sourceLang;this.state.sourceLang=this.state.targetLang,this.state.targetLang=t,this.__sourceList.state.active=this.state.sourceLang,this.__targetList.state.active=this.state.targetLang,this.options.onChange((0,a.Cl)({},this.state))},(0,a.Cg)([(0,i.watch)("arrow-swap:click")],e.prototype,"__onSwap",null),(0,a.Cg)([i.component],e)}(o.D$)},97527:function(t,e,n){"use strict";var a=n(74922),i=n.n(a),o=n(34575),s=n.n(o),r=n(6441),l=n(12153);r.T.prototype.translate={hotkeys:{translateSelection:["ctrl+shift+o","cmd+shift+o"],translateOptions:["ctrl+shift+p","cmd+shift+p"]},provider:"google",googleProviderOptions:{url:"https://translation.googleapis.com/language/translate/v2",key:""},defaultSourceLang:"",defaultTargetLang:"de"},r.T.prototype.controls.translate={translate:{tooltip:"Translate selected text",icon:"translate",command:"translate",exec:function(t){t.execCommand("translate")},list:["Options"],childExec:function(t,e,n){t.execCommand("translate"+n.control.name)},mods:{stroke:!1}}},l.I.set("translate",s()).set("translate-swap",i())}},function(t){return t(t.s=3407)}])});
|
|
10
|
+
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var a in n)("object"==typeof exports?exports:t)[a]=n[a]}}(self,function(){return(self.webpackChunkjodit_pro=self.webpackChunkjodit_pro||[]).push([[954],{3407:function(t,e,n){"use strict";n.r(e),n.d(e,{Translate:function(){return g}});var a=n(31635),i=(n(97527),n(56903)),o=n(97195),r=n(75637),s=n(65478),l=n(70799),c=(n(38837),n(96325)),u=n(50911),h=n(10830),d=n(34013),g=function(t){function e(){var e=t.apply(this,(0,a.fX)([],(0,a.zs)(arguments),!1))||this;return e.buttons=[{name:"translate.translate",group:"insert"}],e.state={sourceLang:e.jodit.o.translate.defaultSourceLang||"en",targetLang:e.jodit.o.translate.defaultTargetLang},e}return(0,a.C6)(e,t),e.prototype.__getProvider=function(){var t=this.jodit.options.translate.provider;if((0,l.K)(t)){if("google"===t)return new i.l(this.j);throw new Error("Unknown provider")}return t(this.jodit)},e.prototype.afterInit=function(t){var e=this,n=(0,c.e)(t.o.language,d.A.defaultOptions.language),i=(0,c.e)(t.o.language,n),s=this.__getProvider();t.registerCommand("translateOptions",{exec:function(){return(0,a.sH)(e,void 0,void 0,function(){var e,n,i,r,l=this;return(0,a.YH)(this,function(a){switch(a.label){case 0:return e=this.state,(n=t.dlg()).setHeader("Translate options"),[4,s.supportedLanguages()];case 1:return i=a.sent(),r=new o.g(n,this.state,{sourceList:i.langs,targetList:i.langs,onChange:function(t){e=t}}),n.setContent(r),n.setFooter([(0,h.$n)(t,"cancel","Cancel").onAction(function(){return n.close()}),(0,h.$n)(t,"ok","Save","primary").onAction(function(){l.state=e,n.close()})]),r.bindDestruct(n),n.setSize(500,400).open(!0),[2]}})})},hotkeys:t.o.translate.hotkeys.translateOptions}).registerCommand("translate",{exec:function(){var n=(0,r.a)(t).filter(function(t){return t.text.trim().length>0});if(n.length){var a=e.state.sourceLang&&"auto"!==e.state.sourceLang?e.state.sourceLang:i,o=e.state.targetLang;return Promise.all(n.map(function(e){s.translate(e.text,a,o).then(function(t){e.replace(t.text)}).catch(function(e){t.message.error((0,l.K)(e)?e:e.message)})})).then(function(){t.synchronizeValues()})}t.message.error("Select text for translate")},hotkeys:t.o.translate.hotkeys.translateSelection})},e.prototype.beforeDestruct=function(t){},e.requires=["license"],(0,a.Cg)([s.persistent],e.prototype,"state",void 0),e}(u.k);d.A.plugins.add("translate",g)},17391:function(t,e,n){"use strict";n.d(e,{e:function(){return a}});var a={Afrikaans:"af",Albanian:"sq",Amharic:"am",Arabic:"ar",Armenian:"hy","Assamese*":"as","Aymara*":"ay",Azerbaijani:"az","Bambara*":"bm",Basque:"eu",Belarusian:"be",Bengali:"bn","Bhojpuri*":"bho",Bosnian:"bs",Bulgarian:"bg",Catalan:"ca",Cebuano:"ceb","Chinese (Simplified)":"zh-CN","Chinese (Traditional)":"zh-TW",Corsican:"co",Croatian:"hr",Czech:"cs",Danish:"da","Dhivehi*":"dv","Dogri*":"doi",Dutch:"nl",English:"en",Esperanto:"eo",Estonian:"et","Ewe*":"ee","Filipino (Tagalog)":"fil",Finnish:"fi",French:"fr",Frisian:"fy",Galician:"gl",Georgian:"ka",German:"de",Greek:"el","Guarani*":"gn",Gujarati:"gu","Haitian Creole":"ht",Hausa:"ha",Hawaiian:"haw",Hebrew:"he",Hindi:"hi",Hmong:"hmn",Hungarian:"hu",Icelandic:"is",Igbo:"ig","Ilocano*":"ilo",Indonesian:"id",Irish:"ga",Italian:"it",Japanese:"ja",Kannada:"kn",Kazakh:"kk",Khmer:"km",Kinyarwanda:"rw","Konkani*":"gom",Korean:"ko","Krio*":"kri",Kurdish:"ku","Kurdish (Sorani)*":"ckb",Kyrgyz:"ky",Lao:"lo",Latin:"la",Latvian:"lv","Lingala*":"ln",Lithuanian:"lt","Luganda*":"lg",Luxembourgish:"lb",Macedonian:"mk","Maithili*":"mai",Malagasy:"mg",Malay:"ms",Malayalam:"ml",Maltese:"mt",Maori:"mi",Marathi:"mr","Meiteilon (Manipuri)*":"mni-Mtei",Mizo:"lus",Mongolian:"mn","Myanmar (Burmese)":"my",Nepali:"ne",Norwegian:"no","Nyanja (Chichewa)":"ny","Odia (Oriya)":"or","Oromo*":"om",Pashto:"ps",Persian:"fa",Polish:"pl",Portuguese:"pt",Punjabi:"pa","Quechua*":"qu",Romanian:"ro",Russian:"ru",Samoan:"sm","Sanskrit*":"sa","Scots Gaelic":"gd","Sepedi*":"nso",Serbian:"sr",Sesotho:"st",Shona:"sn",Sindhi:"sd","Sinhala (Sinhalese)":"si",Slovak:"sk",Slovenian:"sl",Somali:"so",Spanish:"es",Sundanese:"su",Swahili:"sw",Swedish:"sv","Tagalog (Filipino)":"tl",Tajik:"tg",Tamil:"ta",Tatar:"tt",Telugu:"te",Thai:"th","Tigrinya*":"ti","Tsonga*":"ts",Turkish:"tr",Turkmen:"tk","Twi (Akan)*":"ak",Ukrainian:"uk",Urdu:"ur",Uyghur:"ug",Uzbek:"uz",Vietnamese:"vi",Welsh:"cy",Xhosa:"xh",Yiddish:"yi",Yoruba:"yo",Zulu:"zu"}},34575:function(t){t.exports='<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> <path d="M4.545 6.714 4.11 8H3l1.862-5h1.284L8 8H6.833l-.435-1.286H4.545zm1.634-.736L5.5 3.956h-.049l-.679 2.022H6.18z"/> <path d="M0 2a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2v3h3a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-3H2a2 2 0 0 1-2-2V2zm2-1a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H2zm7.138 9.995c.193.301.402.583.63.846-.748.575-1.673 1.001-2.768 1.292.178.217.451.635.555.867 1.125-.359 2.08-.844 2.886-1.494.777.665 1.739 1.165 2.93 1.472.133-.254.414-.673.629-.89-1.125-.253-2.057-.694-2.82-1.284.681-.747 1.222-1.651 1.621-2.757H14V8h-3v1.047h.765c-.318.844-.74 1.546-1.272 2.13a6.066 6.066 0 0 1-.415-.492 1.988 1.988 0 0 1-.94.31z"/> </svg>'},56903:function(t,e,n){"use strict";n.d(e,{l:function(){return o}});var a=n(31635),i=(n(82758),n(38837),n(17391)),o=function(){function t(t){this.jodit=t}return t.prototype.__fetch=function(t,e){var n=this;void 0===e&&(e={});var i=this.jodit.o.translate.googleProviderOptions;return this.jodit.fetch(i.url+"?key="+i.key,{method:"POST",data:(0,a.Cl)((0,a.Cl)({},e),{ui:this.jodit.o.language}),contentType:"application/json; charset=utf-8",withCredentials:!1}).then(function(t){return t.json()}).catch(function(t){try{n.jodit.message.error(t.json().message)}catch(t){}})},t.prototype.translate=function(t,e,n){return this.__fetch("translate",{q:t,source:e,target:n,format:"html"}).then(function(t){return{text:t.data.translations[0].translatedText}})},t.prototype.supportedLanguages=function(){return Promise.resolve({langs:i.e})},t}()},74922:function(t){t.exports='<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"> <path d="M13.98 22L6 30l7.98 8v-6H28v-4H13.98v-6zM42 18l-7.98-8v6H20v4h14.02v6L42 18z"/> <path d="M0 0h48v48H0z" fill="none"/> </svg>'},75637:function(t,e,n){"use strict";n.d(e,{a:function(){return i}});var a=n(2748);function i(t){var e=[],n=t.s.expandSelection().sel;if(!n||0===n.rangeCount||n.isCollapsed)return e;t.s.range.commonAncestorContainer.normalize();var i=t.s.range,l=i.commonAncestorContainer,c=i.startContainer,u=i.endContainer,h=i.startOffset,d=i.endOffset;if(c===u){if(a.J.isText(c))return[r(c,h,d)];if(d-h===1)return a.J.isText(p=c.childNodes[h])?[r(p,0,p.nodeValue.length)]:[s(p)];if(0===h&&c.childNodes.length===d)return[s(c)];for(var g=h;d>g;g++){var p;a.J.isText(p=c.childNodes[g])?e.push(r(p,0,p.nodeValue.length)):e.push(s(p))}return e}for(var f=new Set,v=t.ed.createTreeWalker(l,NodeFilter.SHOW_ALL,{acceptNode:function(t){return i.intersectsNode(t)?a.J.closest(t,function(t){return t&&f.has(t)},l)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),m=v.nextNode();m;){if(a.J.isElement(m)&&o(i,m))f.add(m),e.push(s(m));else if(a.J.isText(m)&&o(i,m))e.push(r(m,0,m.nodeValue.length));else if(a.J.isText(m)){var _=0,y=m.nodeValue.length;m===c&&(_=h),m===u&&(y=d),e.push(r(m,_,y))}m=v.nextNode()}return e}var o=function(t,e){var n=document.createRange();try{n.selectNodeContents(e)}catch(t){n.selectNode(e)}return 0>=t.compareBoundaryPoints(Range.START_TO_START,n)&&t.compareBoundaryPoints(Range.END_TO_END,n)>=0};function r(t,e,n){return{text:t.nodeValue.slice(e,n),replace:function(a){t.nodeValue=t.nodeValue.slice(0,e)+a+t.nodeValue.slice(n)}}}function s(t){var e=t;return{text:e.innerHTML,replace:function(t){e.innerHTML=t}}}},76697:function(t,e,n){"use strict";n.d(e,{F:function(){return h}});var a=n(31635),i=n(82758),o=n(65478),r=n(2748),s=n(21537),l=n(29960),c=n(48538),u=n(80256),h=function(t){function e(e,n){var a,i=t.call(this,e,n)||this;i.options=n,i.state={active:""},i.state.active=n.active;var o=new u.t(e,{placeholder:e.i18n("Filter"),icon:"search",onChange:i.__onChangeFilter,clearButton:!0});return null===(a=i.getElm("input"))||void 0===a||a.appendChild(o.container),i.__onActiveChange(),i}return(0,a.C6)(e,t),e.prototype.className=function(){return"UITranslateList"},Object.defineProperty(e.prototype,"items",{get:function(){return this.getElms("item")},enumerable:!1,configurable:!0}),e.prototype.render=function(t){var e=this,n=[];return Object.keys(t.list).sort().forEach(function(a){var i=t.list[a];n.push("<a role='button' tabindex='0' class='&__item' data-lang='".concat(i,"'>\n\t\t\t\t\t\t<span class='&__item-key'>").concat(i,"</span>\n\t\t\t\t\t\t<span class='&__item-title'>").concat(e.j.i18n(a),"</span>\n\t\t\t\t\t</a>"))}),"<div class='&'>\n\t\t\t<div class='&__input'></div>\n\t\t\t<div class='&__list'>".concat(n.join(""),"</div>\n\t\t</div>")},e.prototype.__onChangeFilter=function(t){this.items.forEach(function(e){var n,a,i=null!==(a=null===(n=e.textContent)||void 0===n?void 0:n.toLowerCase())&&void 0!==a?a:"";(0,l.C)(e,"data-hidden","true"!==(0,l.C)(e,"data-active")&&!i.includes(t.toLowerCase()))})},e.prototype.__scrollToActive=function(){var t=this.container.querySelector('[data-active="true"]'),e=this.getElm("list");t&&e&&(0,s.scrollIntoViewIfNeeded)(t,e,this.j.od)},e.prototype.onClickItem=function(t){if("keydown"!==t.type||!("key"in t)||t.key===i.KEY_ENTER){var e=t.target;if(r.J.isHTMLElement(e)&&e.getAttribute("data-lang")){var n=(0,l.C)(e,"data-lang");this.options.onChange(n),this.state.active=n}}},e.prototype.__onActiveChange=function(){var t=this;this.items.forEach(function(e){return(0,l.C)(e,"data-active",(0,l.C)(e,"data-lang")===t.state.active)}),this.__scrollToActive()},(0,a.Cg)([(0,o.debounce)()],e.prototype,"__onChangeFilter",null),(0,a.Cg)([(0,o.watch)(":afterOpen")],e.prototype,"__scrollToActive",null),(0,a.Cg)([(0,o.watch)(["container:click","container:keydown"])],e.prototype,"onClickItem",null),(0,a.Cg)([(0,o.watch)("state.active"),(0,o.debounce)()],e.prototype,"__onActiveChange",null),(0,a.Cg)([o.component],e)}(c.D)},97195:function(t,e,n){"use strict";n.d(e,{g:function(){return s}});var a=n(31635),i=n(65478),o=n(67510),r=n(76697),s=function(t){function e(e,n,i){var o,s,l=t.call(this,e)||this;return l.state=n,l.options=i,l.__sourceList=new r.F(e,{list:i.sourceList,active:n.sourceLang,onChange:function(t){l.state.sourceLang=t,l.options.onChange((0,a.Cl)({},l.state))}}),null===(o=l.getElm("source-list"))||void 0===o||o.appendChild(l.__sourceList.container),l.__targetList=new r.F(e,{list:i.targetList,active:n.targetLang,onChange:function(t){l.state.targetLang=t,l.options.onChange((0,a.Cl)({},l.state))}}),null===(s=l.getElm("target-list"))||void 0===s||s.appendChild(l.__targetList.container),l}return(0,a.C6)(e,t),e.prototype.className=function(){return"UITranslateSettings"},e.prototype.render=function(){return"<div>\n\t\t\t<div class='&__list &__source-list'></div>\n\t\t\t<div class='&__arrow'>\n\t\t\t\t<a class='&__arrow-swap'>*translate-swap*</a>\n\t\t\t</div>\n\t\t\t<div class='&__list &__target-list'></div>\n\t\t</div>"},e.prototype.__onSwap=function(){var t=this.state.sourceLang;this.state.sourceLang=this.state.targetLang,this.state.targetLang=t,this.__sourceList.state.active=this.state.sourceLang,this.__targetList.state.active=this.state.targetLang,this.options.onChange((0,a.Cl)({},this.state))},(0,a.Cg)([(0,i.watch)("arrow-swap:click")],e.prototype,"__onSwap",null),(0,a.Cg)([i.component],e)}(o.D$)},97527:function(t,e,n){"use strict";var a=n(74922),i=n.n(a),o=n(34575),r=n.n(o),s=n(6441),l=n(12153);s.T.prototype.translate={hotkeys:{translateSelection:["ctrl+shift+o","cmd+shift+o"],translateOptions:["ctrl+shift+p","cmd+shift+p"]},provider:"google",googleProviderOptions:{url:"https://translation.googleapis.com/language/translate/v2",key:""},defaultSourceLang:"",defaultTargetLang:"de"},s.T.prototype.controls.translate={translate:{tooltip:"Translate selected text",icon:"translate",command:"translate",exec:function(t){t.execCommand("translate")},list:["Options"],childExec:function(t,e,n){t.execCommand("translate"+n.control.name)},mods:{stroke:!1}}},l.I.set("translate",r()).set("translate-swap",i())}},function(t){return t(t.s=3407)}])});
|
|
@@ -18,12 +18,13 @@ export declare class autocomplete extends Plugin {
|
|
|
18
18
|
/** @override */
|
|
19
19
|
protected afterInit(jodit: IJodit): void;
|
|
20
20
|
private registerAutocompleteSource;
|
|
21
|
+
private unregisterAutocompleteSource;
|
|
21
22
|
private static isControlKey;
|
|
22
23
|
private onKeyDown;
|
|
23
24
|
private onKeyControlDown;
|
|
24
25
|
private onEnter;
|
|
25
26
|
private onAutoComplete;
|
|
26
|
-
resolveFeed
|
|
27
|
+
resolveFeed(query: string, feed: AutoCompleteSource, baseSource?: IAutoCompleteCustomFeed): Promise<IAutoCompleteItem[]>;
|
|
27
28
|
private openPopup;
|
|
28
29
|
/** @override */
|
|
29
30
|
protected beforeDestruct(jodit: IJodit): void;
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license information.
|
|
4
4
|
* Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
|
|
5
5
|
*/
|
|
6
|
-
var e=this&&this.__decorate||function(e,t,o,s){var i
|
|
6
|
+
var e=this&&this.__decorate||function(e,t,o,s){var r,i=arguments.length,n=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,o):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,o,s);else for(var p=e.length-1;p>=0;p--)(r=e[p])&&(n=(i<3?r(n):i>3?r(t,o,n):r(t,o))||n);return i>3&&n&&Object.defineProperty(t,o,n),n};import"./config.js";import{Autocomplete as t}from"./ui/autocomplete.js";import{getTextLeftOfCursor as o,replaceTextLeftOfCursorAfterSpace as s}from"./helpers.js";import{KEY_DOWN as r,KEY_ENTER as i,KEY_ESC as n,KEY_TAB as p,KEY_UP as l}from"jodit/esm/core/constants.js";import{autobind as u,cache as c,debounce as a}from"jodit/esm/core/decorators/index.js";import{Dom as m}from"jodit/esm/core/dom/dom.js";import{isArray as h,isFunction as d,isPromise as f,isString as y,position as j,trim as g}from"jodit/esm/core/helpers/index.js";import{Plugin as v}from"jodit/esm/core/plugin/index.js";import{Popup as w}from"jodit/esm/core/ui/popup/popup.js";import{JoditPro as C}from"../../jodit-pro.js";export class autocomplete extends v{constructor(){super(...arguments),this.hasStyle=!C.fatMode,this.sources=[]}get list(){return new t(this.jodit)}get popup(){const e=new w(this.jodit);return e.setMod("padding",!1),e.setContent(this.list.container),this.jodit.e.on(e,"beforeClose",()=>{this.list.currentSelection=0}),e}afterInit(e){e.e.on("select.autocomplete",t=>{let o=t.value;d(t.insertValueRenderer)&&(o=t.insertValueRenderer(t)),m.isNode(o)||(o=e.createInside.fromHTML(o)),s(e.s.range,o),this.j.s.setCursorAfter(o),this.j.synchronizeValues(),this.popup.close()}).on("keydown.autocomplete",this.onKeyDown).on("keydown.autocomplete",this.onKeyControlDown,{top:!0}).on("beforeEnter.autocomplete",this.onEnter,{top:!0}).on("autocomplete.autocomplete",this.onAutoComplete).on("registerAutocompleteSource.autocomplete",this.registerAutocompleteSource).on("unregisterAutocompleteSource.autocomplete",this.unregisterAutocompleteSource)}registerAutocompleteSource(e){this.sources.push(e)}unregisterAutocompleteSource(e){const t=this.sources.indexOf(e);-1!==t&&this.sources.splice(t,1)}static isControlKey(e){return e===r||e===l||e===i||e===p}async onKeyDown(e){var t,s;if(e.key===n)return void(this.popup.isOpened&&this.popup.close());const{s:r}=this.j;if(autocomplete.isControlKey(e.key)||!r.isInsideArea||!r.isCollapsed)return;const i=(null===(t=this.j.s.sel)||void 0===t?void 0:t.rangeCount)?null===(s=this.j.s.sel)||void 0===s?void 0:s.getRangeAt(0):null,p=i&&o(i).split(" ").pop();if(p&&g(p).length){const e=await this.onAutoComplete(p);if(e.length)return this.openPopup(e)}this.popup.isOpened&&this.popup.close()}onKeyControlDown(e){if(this.popup.isOpened&&autocomplete.isControlKey(e.key)){switch(e.key){case r:this.list.selectNext();break;case l:this.list.selectPrevious();break;case p:this.list.select()}return this.j.e.stopPropagation(e.type),!1}}onEnter(){if(this.popup.isOpened)return this.list.select(),!1}async onAutoComplete(e){const t=[];return await Promise.all(this.sources.concat(this.j.o.autocomplete.sources).map(async o=>{t.push(...await this.resolveFeed(e,o))})),t}async resolveFeed(e,t,o){let s;if(f(t)&&(t=await t),d(t))s=await t(e);else if(h(t)){const o=t,{isMatchedQuery:r}=this.j.o.autocomplete;s=o.filter(t=>y(t)?r(e,t):r(e,t.value)).map(e=>y(e)?{title:e,value:e}:e)}else s=await this.resolveFeed(e,t.feed,t);if(this.j.isDestructed)return[];if(s&&h(s)){const{itemRenderer:e,insertValueRenderer:t,maxItems:r}=this.j.o.autocomplete;return s=s.map(s=>{var r,i;return{itemRenderer:null!==(r=null==o?void 0:o.itemRenderer)&&void 0!==r?r:e,insertValueRenderer:null!==(i=null==o?void 0:o.insertValueRenderer)&&void 0!==i?i:t,...s}}),s.slice(0,r)}return[]}openPopup(e){this.list.build(e),this.popup.open(()=>{const{j:e}=this,t=e.s.range.getBoundingClientRect(),o={left:t.left,top:t.top,height:t.height,width:t.width};if(e.o.iframe&&e.iframe){const t=j(e.iframe,e);o.top+=t.top,o.left+=t.left}return o})}beforeDestruct(e){e.e.off(this.list).off(this.popup).off("keydown.autocomplete",this.onKeyDown).off("autocomplete.autocomplete",this.onAutoComplete).off(".autocomplete"),this.list.destruct(),this.popup.destruct()}}autocomplete.requires=["enter","license"],e([c],autocomplete.prototype,"list",null),e([c],autocomplete.prototype,"popup",null),e([u],autocomplete.prototype,"registerAutocompleteSource",null),e([u],autocomplete.prototype,"unregisterAutocompleteSource",null),e([a()],autocomplete.prototype,"onKeyDown",null),e([u],autocomplete.prototype,"onKeyControlDown",null),e([u],autocomplete.prototype,"onEnter",null),e([u],autocomplete.prototype,"onAutoComplete",null),e([u],autocomplete.prototype,"resolveFeed",null),C.plugins.add("autocomplete",autocomplete);
|
|
@@ -10,10 +10,10 @@ export interface IAutoCompleteItem<T = IDictionary> {
|
|
|
10
10
|
itemRenderer?: (item: T) => string | HTMLElement;
|
|
11
11
|
insertValueRenderer?: (item: T) => string | HTMLElement;
|
|
12
12
|
}
|
|
13
|
-
export type AutoCompleteCallback
|
|
14
|
-
export interface IAutoCompleteCustomFeed
|
|
15
|
-
feed: CanPromise<string[]> | CanPromise<IAutoCompleteItem[]> | AutoCompleteCallback
|
|
16
|
-
itemRenderer?: IAutoCompleteItem<
|
|
17
|
-
insertValueRenderer?: IAutoCompleteItem<
|
|
13
|
+
export type AutoCompleteCallback = (query: string) => CanPromise<IAutoCompleteItem[]>;
|
|
14
|
+
export interface IAutoCompleteCustomFeed {
|
|
15
|
+
feed: CanPromise<string[]> | CanPromise<IAutoCompleteItem[]> | AutoCompleteCallback;
|
|
16
|
+
itemRenderer?: IAutoCompleteItem<IAutoCompleteItem>['itemRenderer'];
|
|
17
|
+
insertValueRenderer?: IAutoCompleteItem<IAutoCompleteItem>['insertValueRenderer'];
|
|
18
18
|
}
|
|
19
|
-
export type AutoCompleteSource
|
|
19
|
+
export type AutoCompleteSource = IAutoCompleteCustomFeed['feed'] | IAutoCompleteCustomFeed;
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license information.
|
|
4
4
|
* Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
|
|
5
5
|
*/
|
|
6
|
-
const t=["*localhost*","staging.","*.dev.","*.test.","*.stg.","stg.*","test.*","beta.*","*demo.*","*test.*","acceptatie.*"];export function
|
|
6
|
+
const t=["*localhost*","staging.","*.dev.","*.test.","*.stg.","stg.*","test.*","beta.*","*demo.*","*test.*","acceptatie.*"];export function isAllowedSubdomain(e){return t.some(t=>new RegExp(function escapeRegex(t){return t.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}(t.replace(/\*/g,"%ANY%")).replace(/%ANY%/g,".*")).test(e))}export function validateLicense(t,e){if(validateEntLicense(t=t.replace(/[^A-Z0-9-]/g,"R")))return!0;if(isAllowedSubdomain(e))return!0;const n=domainsHash(e),r=["[A-F013456][A-F0-9]{3}{part}","([0-3]){part}[E-L4-8]{2}\\1","[A-D]{part}[J-P5-6]{3}","{part}[A-R0-9]{3}[X-Z]"].map((t,e)=>t.replace("{part}",n[e]||"[R-T]")),a=RegExp(`^${r.join("-")}$`,"i"),o=t.substring(12,13),s=a.test(t);if(!s&&o===(typeof!e).toUpperCase()[5]){const n=e.split(".");return n.shift(),!!n.length&&validateLicense(t,n.join("."))}return s}export function validateEntLicense(t){return/[A-Z0-9][013456][A-P0-9]{2}[ABC]-([0-3])[ELPDF][E-L4-8]{2}\1-[A-D][R0][J-P5-6]{3}-[DPGHYE][GFPOD]{3}[A-SX-Z]/.test(t)}export function domainsHash(t){const e=t.split(".");return e.map(t=>{const e=t[0];return"string"==typeof e&&Boolean(e.charCodeAt(0))?String.fromCharCode(e.charCodeAt(0)+1):e}).concat(e.map(t=>{const e=t[t.length-1];return"string"==typeof e&&Boolean(e.charCodeAt(0))?String.fromCharCode(e.charCodeAt(0)-1):e})).map(t=>null!=t&&/\w/.test(t)?t:"r")}
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license information.
|
|
4
4
|
* Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
|
|
5
5
|
*/
|
|
6
|
-
import{validateLicense as
|
|
6
|
+
import{isAllowedSubdomain as e,validateLicense as t}from"./helpers/helpers.js";import{IS_TEST as o}from"jodit/esm/core/constants.js";import{Dom as s}from"jodit/esm/core/dom/dom.js";import{isBoolean as r}from"jodit/esm/core/helpers/checker/is-boolean.js";import{isString as i}from"jodit/esm/core/helpers/checker/is-string.js";import{Plugin as n}from"jodit/esm/core/plugin/plugin.js";import{JoditPro as c}from"../../jodit-pro.js";export class license extends n{static make(e){return new license(e)}afterInit(s){this.j.e.on("checkReserve",async s=>{const r=this.j.o.license;if(e(s))return"normal";if(!r)return"";const n=s;if(!i(r))return"";let c=t(r,n);return!c&&r[12]>"A"&&!o&&(c=await this.validateLicenseRemote(r,n)),c?"normal":""})}beforeDestruct(e){}async validateLicenseRemote(e,o){const i="validateJoditLicenseRemote",n=this.j.storage.get(i);if(n&&t(n,o))return!0;const c=document.createElement("script");return c.src=`https://xdsoft.net/jodit/pro/api/licenses/validate/?code=${encodeURIComponent(e)}&host=${encodeURIComponent(o)}`,document.body.appendChild(c),this.j.async.promise(e=>{window.onJoditResolveKeyCode=n=>{try{if(r(n))return e(n);t(n,o)?(this.j.storage.set(i,n),e(!0)):e(!1)}finally{s.safeRemove(c)}},this.j.async.setTimeout(()=>{e(!1),s.safeRemove(c)},3e3)})}}c.plugins.add("license",license);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Dom as e}from"jodit/esm/core/dom/dom.js";export function getSelectionFragments(t){const n=[],o=t.s.expandSelection().sel;if(!o||0===o.rangeCount||o.isCollapsed)return n;t.s.range.commonAncestorContainer.normalize();const r=t.s.range,{commonAncestorContainer:l,startContainer:s,endContainer:c,startOffset:a,endOffset:d}=r;if(s===c){if(e.isText(s))return[replaceTextNode(s,a,d)];if(d-a===1){const t=s.childNodes[a];return e.isText(t)?[replaceTextNode(t,0,t.nodeValue.length)]:[replaceElementNode(t)]}if(0===a&&s.childNodes.length===d)return[replaceElementNode(s)];for(let t=a;t<d;t++){const o=s.childNodes[t];e.isText(o)?n.push(replaceTextNode(o,0,o.nodeValue.length)):n.push(replaceElementNode(o))}return n}const i=new Set,u=t.ed.createTreeWalker(l,NodeFilter.SHOW_ALL,{acceptNode:t=>r.intersectsNode(t)?e.closest(t,e=>e&&i.has(e),l)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT});let N=u.nextNode();for(;N;){if(e.isElement(N)&&fullyContains(r,N))i.add(N),n.push(replaceElementNode(N));else if(e.isText(N)&&fullyContains(r,N))n.push(replaceTextNode(N,0,N.nodeValue.length));else if(e.isText(N)){let e=0,t=N.nodeValue.length;N===s&&(e=a),N===c&&(t=d),n.push(replaceTextNode(N,e,t))}N=u.nextNode()}return n}const fullyContains=(e,t)=>{const n=document.createRange();try{n.selectNodeContents(t)}catch(e){n.selectNode(t)}return e.compareBoundaryPoints(Range.START_TO_START,n)<=0&&e.compareBoundaryPoints(Range.END_TO_END,n)>=0};function replaceTextNode(e,t,n){return{text:e.nodeValue.slice(t,n),replace:o=>{e.nodeValue=e.nodeValue.slice(0,t)+o+e.nodeValue.slice(n)}}}function replaceElementNode(e){const t=e;return{text:t.innerHTML,replace:e=>{t.innerHTML=e}}}
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license information.
|
|
4
4
|
* Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
|
|
5
5
|
*/
|
|
6
|
-
var t=this&&this.__decorate||function(t,e,s
|
|
6
|
+
var t=this&&this.__decorate||function(t,e,r,s){var o,a=arguments.length,n=a<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,r):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,r,s);else for(var i=t.length-1;i>=0;i--)(o=t[i])&&(n=(a<3?o(n):a>3?o(e,r,n):o(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n};import"./config.js";import{GoogleTranslateProvider as e}from"./providers/google/google.js";import{UITranslateSettings as r}from"./ui/settings/settings.js";import{getSelectionFragments as s}from"./replace-text-fragments.js";import{persistent as o}from"jodit/esm/core/decorators/index.js";import{isFunction as a}from"jodit/esm/core/helpers/checker/is-function.js";import{isString as n}from"jodit/esm/core/helpers/checker/is-string.js";import{assert as i}from"jodit/esm/core/helpers/utils/assert.js";import{defaultLanguage as l}from"jodit/esm/core/helpers/utils/default-language.js";import{Plugin as c}from"jodit/esm/core/plugin/index.js";import{Button as g}from"jodit/esm/core/ui/button/button/button.js";import{JoditPro as u}from"../../jodit-pro.js";export class Translate extends c{constructor(){super(...arguments),this.buttons=[{name:"translate.translate",group:"insert"}],this.state={sourceLang:this.jodit.o.translate.defaultSourceLang||"en",targetLang:this.jodit.o.translate.defaultTargetLang}}__getProvider(){const{provider:t}=this.jodit.options.translate;if(n(t)){if("google"===t)return new e(this.j);throw new Error("Unknown provider")}return i(a(t),"Provider must be a function"),t(this.jodit)}afterInit(t){const e=l(t.o.language,u.defaultOptions.language),o=l(t.o.language,e),a=this.__getProvider();t.registerCommand("translateOptions",{exec:async()=>{let e=this.state;const s=t.dlg();s.setHeader("Translate options");const o=await a.supportedLanguages(),n=new r(s,this.state,{sourceList:o.langs,targetList:o.langs,onChange(t){e=t}});s.setContent(n),s.setFooter([g(t,"cancel","Cancel").onAction(()=>s.close()),g(t,"ok","Save","primary").onAction(()=>{this.state=e,s.close()})]),n.bindDestruct(s),s.setSize(500,400).open(!0)},hotkeys:t.o.translate.hotkeys.translateOptions}).registerCommand("translate",{exec:()=>{const e=s(t).filter(t=>t.text.trim().length>0);if(!e.length)return void t.message.error("Select text for translate");const r=this.state.sourceLang&&"auto"!==this.state.sourceLang?this.state.sourceLang:o,i=this.state.targetLang;return Promise.all(e.map(e=>{a.translate(e.text,r,i).then(t=>{e.replace(t.text)}).catch(e=>{t.message.error(n(e)?e:e.message)})})).then(()=>{t.synchronizeValues()})},hotkeys:t.o.translate.hotkeys.translateSelection})}beforeDestruct(t){}}Translate.requires=["license"],t([o],Translate.prototype,"state",void 0),u.plugins.add("translate",Translate);
|
package/package.json
CHANGED
|
@@ -18,12 +18,13 @@ export declare class autocomplete extends Plugin {
|
|
|
18
18
|
/** @override */
|
|
19
19
|
protected afterInit(jodit: IJodit): void;
|
|
20
20
|
private registerAutocompleteSource;
|
|
21
|
+
private unregisterAutocompleteSource;
|
|
21
22
|
private static isControlKey;
|
|
22
23
|
private onKeyDown;
|
|
23
24
|
private onKeyControlDown;
|
|
24
25
|
private onEnter;
|
|
25
26
|
private onAutoComplete;
|
|
26
|
-
resolveFeed
|
|
27
|
+
resolveFeed(query: string, feed: AutoCompleteSource, baseSource?: IAutoCompleteCustomFeed): Promise<IAutoCompleteItem[]>;
|
|
27
28
|
private openPopup;
|
|
28
29
|
/** @override */
|
|
29
30
|
protected beforeDestruct(jodit: IJodit): void;
|
|
@@ -10,10 +10,10 @@ export interface IAutoCompleteItem<T = IDictionary> {
|
|
|
10
10
|
itemRenderer?: (item: T) => string | HTMLElement;
|
|
11
11
|
insertValueRenderer?: (item: T) => string | HTMLElement;
|
|
12
12
|
}
|
|
13
|
-
export type AutoCompleteCallback
|
|
14
|
-
export interface IAutoCompleteCustomFeed
|
|
15
|
-
feed: CanPromise<string[]> | CanPromise<IAutoCompleteItem[]> | AutoCompleteCallback
|
|
16
|
-
itemRenderer?: IAutoCompleteItem<
|
|
17
|
-
insertValueRenderer?: IAutoCompleteItem<
|
|
13
|
+
export type AutoCompleteCallback = (query: string) => CanPromise<IAutoCompleteItem[]>;
|
|
14
|
+
export interface IAutoCompleteCustomFeed {
|
|
15
|
+
feed: CanPromise<string[]> | CanPromise<IAutoCompleteItem[]> | AutoCompleteCallback;
|
|
16
|
+
itemRenderer?: IAutoCompleteItem<IAutoCompleteItem>['itemRenderer'];
|
|
17
|
+
insertValueRenderer?: IAutoCompleteItem<IAutoCompleteItem>['insertValueRenderer'];
|
|
18
18
|
}
|
|
19
|
-
export type AutoCompleteSource
|
|
19
|
+
export type AutoCompleteSource = IAutoCompleteCustomFeed['feed'] | IAutoCompleteCustomFeed;
|