jodit-pro 4.12.6 → 4.12.8
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 +98 -17
- 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 +4 -4
- package/es2018/jodit.min.js +8 -8
- 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 +4 -4
- package/es2021/jodit.js +98 -17
- package/es2021/jodit.min.js +9 -9
- 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 +4 -4
- package/es2021.en/jodit.js +98 -17
- package/es2021.en/jodit.min.js +4 -4
- 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 +102 -18
- package/es5/jodit.min.css +2 -2
- package/es5/jodit.min.js +2 -2
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es5/plugins/backup/backup.css +1 -1
- package/es5/plugins/backup/backup.js +1 -1
- package/es5/plugins/backup/backup.min.js +1 -1
- package/es5/plugins/button-generator/button-generator.css +1 -1
- package/es5/plugins/button-generator/button-generator.js +1 -1
- package/es5/plugins/button-generator/button-generator.min.js +1 -1
- package/es5/plugins/change-case/change-case.js +1 -1
- package/es5/plugins/change-case/change-case.min.js +1 -1
- package/es5/plugins/color-picker/color-picker.css +1 -1
- package/es5/plugins/color-picker/color-picker.js +1 -1
- package/es5/plugins/color-picker/color-picker.min.js +1 -1
- package/es5/plugins/emoji/emoji.css +1 -1
- package/es5/plugins/emoji/emoji.js +1 -1
- package/es5/plugins/emoji/emoji.min.js +1 -1
- package/es5/plugins/export-docs/export-docs.js +1 -1
- package/es5/plugins/export-docs/export-docs.min.js +1 -1
- package/es5/plugins/finder/finder.css +1 -1
- package/es5/plugins/finder/finder.js +1 -1
- package/es5/plugins/finder/finder.min.js +1 -1
- package/es5/plugins/google-maps/google-maps.css +1 -1
- package/es5/plugins/google-maps/google-maps.js +1 -1
- package/es5/plugins/google-maps/google-maps.min.js +1 -1
- package/es5/plugins/google-search/google-search.js +1 -1
- package/es5/plugins/google-search/google-search.min.js +1 -1
- package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es5/plugins/keyboard/keyboard.css +1 -1
- package/es5/plugins/keyboard/keyboard.js +1 -1
- package/es5/plugins/keyboard/keyboard.min.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es5/plugins/page-break/page-break.js +1 -1
- package/es5/plugins/page-break/page-break.min.js +1 -1
- package/es5/plugins/paste-code/paste-code.css +1 -1
- package/es5/plugins/paste-code/paste-code.js +1 -1
- package/es5/plugins/paste-code/paste-code.min.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es5/plugins/style/style.css +1 -1
- package/es5/plugins/style/style.js +1 -1
- package/es5/plugins/style/style.min.js +1 -1
- package/es5/plugins/templates/templates.css +1 -1
- package/es5/plugins/templates/templates.js +1 -1
- package/es5/plugins/templates/templates.min.js +1 -1
- package/es5/plugins/todo-list/todo-list.css +1 -1
- package/es5/plugins/todo-list/todo-list.js +1 -1
- package/es5/plugins/todo-list/todo-list.min.js +1 -1
- package/es5/plugins/translate/translate.css +1 -1
- package/es5/plugins/translate/translate.js +1 -1
- package/es5/plugins/translate/translate.min.js +1 -1
- package/es5/plugins/tune-block/tune-block.css +1 -1
- package/es5/plugins/tune-block/tune-block.js +1 -1
- package/es5/plugins/tune-block/tune-block.min.js +1 -1
- package/es5/polyfills.fat.min.js +1 -1
- package/es5/polyfills.js +1 -1
- package/es5/polyfills.min.js +1 -1
- package/package.json +1 -1
package/es2015/jodit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit-pro - PRO Version of Jodit Editor
|
|
3
3
|
* Author: Chupurnov Valerii <chupurnov@gmail.com>
|
|
4
|
-
* Version: v4.12.
|
|
4
|
+
* Version: v4.12.8
|
|
5
5
|
* Url: https://xdsoft.net/jodit/pro/
|
|
6
6
|
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
7
|
*/
|
|
@@ -714,14 +714,39 @@ let ConfigPrototype = {};
|
|
|
714
714
|
* ```
|
|
715
715
|
*/ this.disablePlugins = [];
|
|
716
716
|
/**
|
|
717
|
-
* Init and download extra plugins
|
|
717
|
+
* Init and download extra plugins that are **not** already bundled/registered.
|
|
718
|
+
*
|
|
719
|
+
* For every name in this list that is not found in the plugin registry, Jodit
|
|
720
|
+
* loads it **at runtime over the network** from:
|
|
721
|
+
*
|
|
722
|
+
* ```text
|
|
723
|
+
* <basePath>plugins/<name>/<name>(.min).js
|
|
724
|
+
* ```
|
|
725
|
+
*
|
|
726
|
+
* (see {@link Config.basePath} and {@link Config.minified}). If the plugin is
|
|
727
|
+
* already registered — e.g. you imported it statically, or you use a bundle
|
|
728
|
+
* that ships it (such as the `jodit-pro` / `jodit-pro-react` "all plugins"
|
|
729
|
+
* build) — it is **skipped** and no request is made; in that case you don't
|
|
730
|
+
* need `extraPlugins` at all, just add the plugin's button.
|
|
718
731
|
*
|
|
719
732
|
* ```typescript
|
|
720
|
-
*
|
|
733
|
+
* // Dynamic loading: fetches <basePath>plugins/emoji/emoji.js
|
|
734
|
+
* const editor = Jodit.make('.editor', {
|
|
721
735
|
* extraPlugins: ['emoji']
|
|
722
736
|
* });
|
|
723
737
|
* ```
|
|
724
|
-
*
|
|
738
|
+
*
|
|
739
|
+
* You can also pass an explicit URL to bypass the `basePath` convention:
|
|
740
|
+
*
|
|
741
|
+
* ```typescript
|
|
742
|
+
* const editor = Jodit.make('.editor', {
|
|
743
|
+
* extraPlugins: [{ name: 'emoji', url: 'https://cdn.example.com/emoji.js' }]
|
|
744
|
+
* });
|
|
745
|
+
* ```
|
|
746
|
+
*
|
|
747
|
+
* Note: if you see a request to a malformed URL (e.g. `.../src/main.tsx?t=...plugins/emoji/emoji.js`),
|
|
748
|
+
* it means `basePath` was auto-detected incorrectly under your bundler — set
|
|
749
|
+
* {@link Config.basePath} explicitly. See the Plugin System docs for details.
|
|
725
750
|
*/ this.extraPlugins = [];
|
|
726
751
|
/**
|
|
727
752
|
* Additional buttons appended to the {@link Config.buttons} list
|
|
@@ -1772,7 +1797,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1772
1797
|
* ```
|
|
1773
1798
|
* @packageDocumentation
|
|
1774
1799
|
* @module constants
|
|
1775
|
-
*/ const APP_VERSION = "4.12.
|
|
1800
|
+
*/ const APP_VERSION = "4.12.8";
|
|
1776
1801
|
// prettier-ignore
|
|
1777
1802
|
const ES = "es2015";
|
|
1778
1803
|
const IS_ES_MODERN = true;
|
|
@@ -15765,8 +15790,9 @@ function _object_spread(target) {
|
|
|
15765
15790
|
/* harmony export */ Icon: function() { return /* binding */ Icon; }
|
|
15766
15791
|
/* harmony export */ });
|
|
15767
15792
|
/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
15768
|
-
/* harmony import */ var
|
|
15769
|
-
/* harmony import */ var
|
|
15793
|
+
/* harmony import */ var _dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
|
|
15794
|
+
/* harmony import */ var _helpers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21537);
|
|
15795
|
+
/* harmony import */ var _helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41180);
|
|
15770
15796
|
/*!
|
|
15771
15797
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
15772
15798
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -15774,12 +15800,13 @@ function _object_spread(target) {
|
|
|
15774
15800
|
*/
|
|
15775
15801
|
|
|
15776
15802
|
|
|
15803
|
+
|
|
15777
15804
|
class Icon {
|
|
15778
15805
|
static getIcon(name) {
|
|
15779
15806
|
if (/<svg/i.test(name)) {
|
|
15780
15807
|
return name;
|
|
15781
15808
|
}
|
|
15782
|
-
const icon = Icon.icons[name] || Icon.icons[name.replace(/-/g, '_')] || Icon.icons[name.replace(/_/g, '-')] || Icon.icons[(0,
|
|
15809
|
+
const icon = Icon.icons[name] || Icon.icons[name.replace(/-/g, '_')] || Icon.icons[name.replace(/_/g, '-')] || Icon.icons[(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.camelCase)(name)] || Icon.icons[(0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.kebabCase)(name)] || Icon.icons[name.toLowerCase()];
|
|
15783
15810
|
if (!_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD && !icon) {
|
|
15784
15811
|
console.warn(`Icon "${name}" not found`);
|
|
15785
15812
|
}
|
|
@@ -15821,11 +15848,11 @@ class Icon {
|
|
|
15821
15848
|
}
|
|
15822
15849
|
if (iconURL) {
|
|
15823
15850
|
iconElement = jodit.c.span();
|
|
15824
|
-
(0,
|
|
15851
|
+
(0,_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_3__.css)(iconElement, 'backgroundImage', 'url(' + iconURL.replace('{basePath}', (jodit === null || jodit === void 0 ? void 0 : jodit.basePath) || '') + ')');
|
|
15825
15852
|
} else {
|
|
15826
15853
|
const svg = iconFromEvent || Icon.get(name, '') || ((_d = jodit.o.extraIcons) === null || _d === void 0 ? void 0 : _d[name]);
|
|
15827
15854
|
if (svg) {
|
|
15828
|
-
iconElement =
|
|
15855
|
+
iconElement = Icon.toIconElement(jodit, svg.trim());
|
|
15829
15856
|
if (!/^<svg/i.test(name)) {
|
|
15830
15857
|
iconElement.classList.add('jodit-icon_' + clearName);
|
|
15831
15858
|
}
|
|
@@ -15841,6 +15868,18 @@ class Icon {
|
|
|
15841
15868
|
}
|
|
15842
15869
|
return iconElement;
|
|
15843
15870
|
}
|
|
15871
|
+
/**
|
|
15872
|
+
* Turn a raw icon string into an element with a `classList`.
|
|
15873
|
+
*
|
|
15874
|
+
* A plain-text icon (e.g. an emoji/text glyph) makes `fromHTML` return a
|
|
15875
|
+
* Text node, which has no `classList`; wrap it in a span so classes/styles
|
|
15876
|
+
* can be applied and `makeIcon` never crashes on `iconElement.classList`.
|
|
15877
|
+
* Note: SVG icons are `SVGElement` (not `HTMLElement`) but are still Element
|
|
15878
|
+
* nodes with a `classList`, so we check `isElement`, not `isHTMLElement`.
|
|
15879
|
+
*/ static toIconElement(jodit, svg) {
|
|
15880
|
+
const node = jodit.c.fromHTML(svg);
|
|
15881
|
+
return _dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) ? node : jodit.c.span('jodit-icon_text', node);
|
|
15882
|
+
}
|
|
15844
15883
|
}
|
|
15845
15884
|
Icon.icons = {};
|
|
15846
15885
|
Icon.__cache = new Map();
|
|
@@ -46559,7 +46598,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.speechRecogniz
|
|
|
46559
46598
|
api.on('result', (text)=>jodit.e.fire('speechRecognizeResult', text));
|
|
46560
46599
|
api.on('progress', (text)=>jodit.e.fire('speechRecognizeProgressResult', text));
|
|
46561
46600
|
api.on('error', (text)=>jodit.message.error(text));
|
|
46562
|
-
|
|
46601
|
+
// Tie cleanup to the editor lifecycle (not the button): the manager
|
|
46602
|
+
// must survive toolbar rebuilds and be released — together with its
|
|
46603
|
+
// AudioContext — only when the editor itself is destroyed.
|
|
46604
|
+
jodit.hookStatus('beforeDestruct', ()=>{
|
|
46563
46605
|
(0,_core_helpers_utils_data_bind_js__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech', null);
|
|
46564
46606
|
api.destruct();
|
|
46565
46607
|
});
|
|
@@ -46703,6 +46745,7 @@ class RecognizeManager extends _core_event_emitter_eventify_js__WEBPACK_IMPORTED
|
|
|
46703
46745
|
}
|
|
46704
46746
|
destruct() {
|
|
46705
46747
|
this.stop();
|
|
46748
|
+
(0,_sound_js__WEBPACK_IMPORTED_MODULE_2__.closeSound)(this);
|
|
46706
46749
|
RecognizeManager._instances.delete(this);
|
|
46707
46750
|
super.destruct();
|
|
46708
46751
|
}
|
|
@@ -46801,7 +46844,7 @@ class RecognizeManager extends _core_event_emitter_eventify_js__WEBPACK_IMPORTED
|
|
|
46801
46844
|
}
|
|
46802
46845
|
_makeSound(frequency) {
|
|
46803
46846
|
if (this.sound) {
|
|
46804
|
-
(0,_sound_js__WEBPACK_IMPORTED_MODULE_2__.sound)({
|
|
46847
|
+
(0,_sound_js__WEBPACK_IMPORTED_MODULE_2__.sound)(this, {
|
|
46805
46848
|
frequency
|
|
46806
46849
|
});
|
|
46807
46850
|
}
|
|
@@ -46849,6 +46892,7 @@ __decorate([
|
|
|
46849
46892
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
46850
46893
|
|
|
46851
46894
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
46895
|
+
/* harmony export */ closeSound: function() { return /* binding */ closeSound; },
|
|
46852
46896
|
/* harmony export */ sound: function() { return /* binding */ sound; }
|
|
46853
46897
|
/* harmony export */ });
|
|
46854
46898
|
/* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
|
|
@@ -46862,22 +46906,59 @@ __decorate([
|
|
|
46862
46906
|
*/
|
|
46863
46907
|
|
|
46864
46908
|
/**
|
|
46909
|
+
* One AudioContext per owner (e.g. a RecognizeManager). Previously a new context
|
|
46910
|
+
* was created on every beep and never closed, so during continuous recognition
|
|
46911
|
+
* they piled up — leaking until the browser's per-page limit was hit and the
|
|
46912
|
+
* overlapping audio turned into a "roar". We now reuse a single context per
|
|
46913
|
+
* owner and release it via {@link closeSound} when the owner is destroyed.
|
|
46865
46914
|
* @internal
|
|
46866
|
-
*/
|
|
46867
|
-
|
|
46915
|
+
*/ const contexts = new WeakMap();
|
|
46916
|
+
function getContext(owner) {
|
|
46917
|
+
if (!_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.globalWindow) {
|
|
46918
|
+
return null;
|
|
46919
|
+
}
|
|
46920
|
+
const existing = contexts.get(owner);
|
|
46921
|
+
if (existing && existing.state !== 'closed') {
|
|
46922
|
+
return existing;
|
|
46923
|
+
}
|
|
46924
|
+
const Ctor = _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.globalWindow.AudioContext || _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.globalWindow.webkitAudioContext;
|
|
46925
|
+
if (!Ctor) {
|
|
46926
|
+
return null;
|
|
46927
|
+
}
|
|
46928
|
+
const context = new Ctor();
|
|
46929
|
+
contexts.set(owner, context);
|
|
46930
|
+
return context;
|
|
46931
|
+
}
|
|
46932
|
+
/**
|
|
46933
|
+
* Play a short beep on the owner's (lazily created, reused) AudioContext.
|
|
46934
|
+
* @internal
|
|
46935
|
+
*/ function sound(owner, { sec = 0.1, frequency = _constants_js__WEBPACK_IMPORTED_MODULE_1__.PII, gain = 0.1, type = 'sine' } = {}) {
|
|
46936
|
+
const context = getContext(owner);
|
|
46937
|
+
if (!context) {
|
|
46868
46938
|
return;
|
|
46869
46939
|
}
|
|
46870
|
-
// one context per document
|
|
46871
|
-
const context = new (_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.globalWindow.AudioContext || _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.globalWindow.webkitAudioContext)();
|
|
46872
46940
|
const vol = context.createGain();
|
|
46873
46941
|
const osc = context.createOscillator();
|
|
46874
46942
|
osc.type = type;
|
|
46875
46943
|
osc.frequency.value = frequency; // Hz
|
|
46944
|
+
vol.gain.value = gain;
|
|
46876
46945
|
osc.connect(vol);
|
|
46877
46946
|
vol.connect(context.destination);
|
|
46878
46947
|
osc.start(); // start the oscillator
|
|
46879
46948
|
osc.stop(context.currentTime + sec);
|
|
46880
|
-
|
|
46949
|
+
}
|
|
46950
|
+
/**
|
|
46951
|
+
* Close and forget the owner's AudioContext. Call this when the owner is
|
|
46952
|
+
* destroyed so the context does not leak.
|
|
46953
|
+
* @internal
|
|
46954
|
+
*/ function closeSound(owner) {
|
|
46955
|
+
const context = contexts.get(owner);
|
|
46956
|
+
if (context) {
|
|
46957
|
+
contexts.delete(owner);
|
|
46958
|
+
if (context.state !== 'closed') {
|
|
46959
|
+
void context.close();
|
|
46960
|
+
}
|
|
46961
|
+
}
|
|
46881
46962
|
}
|
|
46882
46963
|
|
|
46883
46964
|
|