jodit 4.9.9 → 4.9.11

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.
Files changed (124) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +5 -5
  4. package/es2015/jodit.js +217 -71
  5. package/es2015/jodit.min.js +5 -5
  6. package/es2015/plugins/debug/debug.css +1 -1
  7. package/es2015/plugins/debug/debug.js +1 -1
  8. package/es2015/plugins/debug/debug.min.js +1 -1
  9. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  10. package/es2015/plugins/speech-recognize/speech-recognize.js +1 -1
  11. package/es2015/plugins/speech-recognize/speech-recognize.min.js +1 -1
  12. package/es2018/jodit.fat.min.js +5 -5
  13. package/es2018/jodit.min.js +5 -5
  14. package/es2018/plugins/debug/debug.min.js +1 -1
  15. package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
  16. package/es2021/jodit.css +1 -1
  17. package/es2021/jodit.fat.min.js +5 -5
  18. package/es2021/jodit.js +217 -71
  19. package/es2021/jodit.min.js +5 -5
  20. package/es2021/plugins/debug/debug.css +1 -1
  21. package/es2021/plugins/debug/debug.js +1 -1
  22. package/es2021/plugins/debug/debug.min.js +1 -1
  23. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  24. package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
  25. package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
  26. package/es2021.en/jodit.css +1 -1
  27. package/es2021.en/jodit.fat.min.js +5 -5
  28. package/es2021.en/jodit.js +217 -71
  29. package/es2021.en/jodit.min.js +5 -5
  30. package/es2021.en/plugins/debug/debug.css +1 -1
  31. package/es2021.en/plugins/debug/debug.js +1 -1
  32. package/es2021.en/plugins/debug/debug.min.js +1 -1
  33. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  34. package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
  35. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
  36. package/es5/jodit.css +2 -2
  37. package/es5/jodit.fat.min.js +2 -2
  38. package/es5/jodit.js +226 -71
  39. package/es5/jodit.min.css +2 -2
  40. package/es5/jodit.min.js +2 -2
  41. package/es5/plugins/debug/debug.css +1 -1
  42. package/es5/plugins/debug/debug.js +1 -1
  43. package/es5/plugins/debug/debug.min.js +1 -1
  44. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  45. package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
  46. package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
  47. package/es5/polyfills.fat.min.js +1 -1
  48. package/es5/polyfills.js +1 -1
  49. package/es5/polyfills.min.js +1 -1
  50. package/esm/config.d.ts +268 -88
  51. package/esm/config.js +166 -51
  52. package/esm/core/constants.js +1 -1
  53. package/esm/core/decorators/autobind/autobind.d.ts +0 -5
  54. package/esm/core/decorators/autobind/autobind.js +1 -1
  55. package/esm/core/decorators/component/component.d.ts +1 -1
  56. package/esm/core/event-emitter/global.d.ts +8 -0
  57. package/esm/core/event-emitter/global.js +8 -0
  58. package/esm/core/storage/async-storage.d.ts +8 -0
  59. package/esm/core/storage/async-storage.js +5 -0
  60. package/esm/core/ui/element.d.ts +1 -0
  61. package/esm/core/ui/element.js +6 -0
  62. package/esm/core/ui/group/group.d.ts +1 -0
  63. package/esm/core/ui/group/group.js +3 -0
  64. package/esm/modules/file-browser/builders/utils.d.ts +8 -0
  65. package/esm/modules/file-browser/builders/utils.js +5 -0
  66. package/esm/modules/toolbar/button/button.d.ts +1 -0
  67. package/esm/modules/toolbar/button/button.js +3 -1
  68. package/esm/plugins/add-new-line/config.d.ts +4 -3
  69. package/esm/plugins/backspace/config.d.ts +3 -0
  70. package/esm/plugins/clean-html/config.d.ts +2 -3
  71. package/esm/plugins/fullsize/config.d.ts +2 -2
  72. package/esm/plugins/hotkeys/config.d.ts +0 -1
  73. package/esm/plugins/iframe/config.d.ts +2 -5
  74. package/esm/plugins/image-processor/config.d.ts +3 -0
  75. package/esm/plugins/image-properties/config.d.ts +4 -0
  76. package/esm/plugins/inline-popup/config/config.d.ts +16 -0
  77. package/esm/plugins/limit/config.d.ts +3 -3
  78. package/esm/plugins/placeholder/config.d.ts +3 -3
  79. package/esm/plugins/resize-cells/config.d.ts +3 -0
  80. package/esm/plugins/resize-handler/config.d.ts +6 -0
  81. package/esm/plugins/resizer/config.d.ts +1 -1
  82. package/esm/plugins/select/config.d.ts +0 -1
  83. package/esm/plugins/select-cells/config.d.ts +3 -0
  84. package/esm/plugins/size/config.js +1 -2
  85. package/esm/plugins/source/config.d.ts +6 -2
  86. package/esm/plugins/stat/config.d.ts +12 -0
  87. package/esm/plugins/sticky/config.d.ts +5 -2
  88. package/esm/plugins/symbols/config.d.ts +6 -0
  89. package/esm/plugins/table/config.d.ts +3 -0
  90. package/esm/plugins/xpath/config.d.ts +3 -0
  91. package/esm/types/ui.d.ts +1 -0
  92. package/package.json +1 -1
  93. package/types/config.d.ts +268 -88
  94. package/types/core/decorators/autobind/autobind.d.ts +0 -5
  95. package/types/core/decorators/component/component.d.ts +1 -1
  96. package/types/core/event-emitter/global.d.ts +8 -0
  97. package/types/core/storage/async-storage.d.ts +8 -0
  98. package/types/core/ui/element.d.ts +1 -0
  99. package/types/core/ui/group/group.d.ts +1 -0
  100. package/types/modules/file-browser/builders/utils.d.ts +8 -0
  101. package/types/modules/toolbar/button/button.d.ts +1 -0
  102. package/types/plugins/add-new-line/config.d.ts +4 -3
  103. package/types/plugins/backspace/config.d.ts +3 -0
  104. package/types/plugins/clean-html/config.d.ts +2 -3
  105. package/types/plugins/fullsize/config.d.ts +2 -2
  106. package/types/plugins/hotkeys/config.d.ts +0 -1
  107. package/types/plugins/iframe/config.d.ts +2 -5
  108. package/types/plugins/image-processor/config.d.ts +3 -0
  109. package/types/plugins/image-properties/config.d.ts +4 -0
  110. package/types/plugins/inline-popup/config/config.d.ts +16 -0
  111. package/types/plugins/limit/config.d.ts +3 -3
  112. package/types/plugins/placeholder/config.d.ts +3 -3
  113. package/types/plugins/resize-cells/config.d.ts +3 -0
  114. package/types/plugins/resize-handler/config.d.ts +6 -0
  115. package/types/plugins/resizer/config.d.ts +1 -1
  116. package/types/plugins/select/config.d.ts +0 -1
  117. package/types/plugins/select-cells/config.d.ts +3 -0
  118. package/types/plugins/source/config.d.ts +6 -2
  119. package/types/plugins/stat/config.d.ts +12 -0
  120. package/types/plugins/sticky/config.d.ts +5 -2
  121. package/types/plugins/symbols/config.d.ts +6 -0
  122. package/types/plugins/table/config.d.ts +3 -0
  123. package/types/plugins/xpath/config.d.ts +3 -0
  124. package/types/types/ui.d.ts +1 -0
package/es5/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
4
- * Version: v4.9.9
4
+ * Version: v4.9.11
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -2441,37 +2441,127 @@ __webpack_require__.r(__webpack_exports__);
2441
2441
 
2442
2442
  var ConfigPrototype = {};
2443
2443
  /**
2444
- * Default Editor's Configuration
2444
+ * Default Editor's Configuration.
2445
+ *
2446
+ * This class holds all default option values for the Jodit editor.
2447
+ * It uses a **private constructor** and a **lazy singleton** pattern — the single instance
2448
+ * is created on the first access to {@link Config.defaultOptions} (also available as `Jodit.defaultOptions`).
2449
+ *
2450
+ * ## How options are resolved
2451
+ *
2452
+ * When you create an editor with `Jodit.make('#editor', userOptions)`, the library
2453
+ * calls {@link ConfigProto}(userOptions, Config.defaultOptions). `ConfigProto` does
2454
+ * **not** deep-clone the defaults. Instead it creates a new object whose JavaScript
2455
+ * prototype is `Config.defaultOptions`:
2456
+ *
2457
+ * ```
2458
+ * userOptions ──[[Prototype]]──► Config.defaultOptions
2459
+ * ```
2460
+ *
2461
+ * Any key present in `userOptions` shadows the default;
2462
+ * any key **not** present falls through to `Config.defaultOptions` via the prototype chain.
2463
+ * Nested plain objects are recursively prototyped in the same way, so partial overrides
2464
+ * of nested options work automatically:
2465
+ *
2466
+ * ```js
2467
+ * // Only override `dialogWidth`; all other `image.*` defaults are still available
2468
+ * Jodit.make('#editor', {
2469
+ * image: { dialogWidth: 500 }
2470
+ * });
2471
+ * ```
2472
+ *
2473
+ * ## How plugins extend the config
2474
+ *
2475
+ * Each plugin adds its own defaults by assigning to `Config.prototype` and augmenting
2476
+ * the TypeScript type with `declare module`:
2477
+ *
2478
+ * ```ts
2479
+ * // 1. Type augmentation (compile-time)
2480
+ * declare module 'jodit/config' {
2481
+ * interface Config {
2482
+ * toolbarSticky: boolean;
2483
+ * }
2484
+ * }
2485
+ *
2486
+ * // 2. Runtime default
2487
+ * Config.prototype.toolbarSticky = true;
2488
+ * ```
2489
+ *
2490
+ * Because the constructor runs `Object.assign(this, ConfigPrototype)` (where
2491
+ * `ConfigPrototype` is captured as `Config.prototype` after the class definition),
2492
+ * all prototype-level values — including those added by plugins — are materialized
2493
+ * as own properties on the singleton. This means `Config.defaultOptions` always
2494
+ * contains every registered option as an own, enumerable property.
2495
+ *
2496
+ * ## Changing global defaults
2497
+ *
2498
+ * You can modify `Jodit.defaultOptions` **before** creating editors to change
2499
+ * defaults globally:
2500
+ *
2501
+ * ```js
2502
+ * Jodit.defaultOptions.language = 'de';
2503
+ * Jodit.defaultOptions.theme = 'dark';
2504
+ *
2505
+ * // Both editors inherit the new defaults
2506
+ * Jodit.make('#editor1');
2507
+ * Jodit.make('#editor2');
2508
+ * ```
2509
+ *
2510
+ * ## `Jodit.atom` — preventing deep merge
2511
+ *
2512
+ * By default, `ConfigProto` deep-merges nested plain objects and arrays.
2513
+ * Wrap a value with `Jodit.atom(value)` to make it **atomic** — it will completely
2514
+ * replace the default instead of being merged:
2515
+ *
2516
+ * ```js
2517
+ * Jodit.make('#editor', {
2518
+ * controls: {
2519
+ * fontsize: {
2520
+ * // Replace the entire list rather than merging with the default one
2521
+ * list: Jodit.atom([8, 9, 10])
2522
+ * }
2523
+ * }
2524
+ * });
2525
+ * ```
2526
+ *
2527
+ * `Jodit.atom` calls {@link markAsAtomic}, which sets a non-enumerable
2528
+ * `isAtom` flag on the object. `ConfigProto` checks this flag and skips
2529
+ * recursive merging when it is present. Note: top-level arrays (depth 0)
2530
+ * are always treated as atomic — they replace rather than merge.
2531
+ *
2532
+ * @see {@link ConfigProto} for the full merge algorithm
2533
+ * @see {@link markAsAtomic} / {@link isAtom} for the atom marker implementation
2445
2534
  */ var Config = /*#__PURE__*/ function() {
2446
2535
  "use strict";
2447
2536
  function Config() {
2448
2537
  (0,_swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__._)(this, Config);
2449
2538
  /**
2450
- * Use cache for heavy methods
2539
+ * When enabled, the editor caches the results of expensive computations (e.g. toolbar rebuilds)
2540
+ * to improve performance. Disable for debugging or when options change frequently at runtime.
2451
2541
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "cache", true);
2452
2542
  /**
2453
2543
  * Timeout of all asynchronous methods
2454
2544
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "defaultTimeout", 100);
2455
- (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "namespace", '');
2545
+ /**
2546
+ * Prefix used for CSS class names and local-storage keys to avoid collisions
2547
+ * when multiple editor instances or applications share the same page.
2548
+ */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "namespace", '');
2456
2549
  /**
2457
2550
  * Editor loads completely without plugins. Useful when debugging your own plugin.
2458
2551
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "safeMode", false);
2459
2552
  /**
2460
2553
  * Editor's width
2461
2554
  *
2462
- * @example
2463
2555
  * ```javascript
2464
2556
  * Jodit.make('.editor', {
2465
2557
  * width: '100%',
2466
2558
  * })
2467
2559
  * ```
2468
- * @example
2469
2560
  * ```javascript
2470
2561
  * Jodit.make('.editor', {
2471
2562
  * width: 600, // equivalent for '600px'
2472
2563
  * })
2473
2564
  * ```
2474
- * @example
2475
2565
  * ```javascript
2476
2566
  * Jodit.make('.editor', {
2477
2567
  * width: 'auto', // autosize
@@ -2481,19 +2571,16 @@ var ConfigPrototype = {};
2481
2571
  /**
2482
2572
  * Editor's height
2483
2573
  *
2484
- * @example
2485
2574
  * ```javascript
2486
2575
  * Jodit.make('.editor', {
2487
2576
  * height: '100%',
2488
2577
  * })
2489
2578
  * ```
2490
- * @example
2491
2579
  * ```javascript
2492
2580
  * Jodit.make('.editor', {
2493
2581
  * height: 600, // equivalent for '600px'
2494
2582
  * })
2495
2583
  * ```
2496
- * @example
2497
2584
  * ```javascript
2498
2585
  * Jodit.make('.editor', {
2499
2586
  * height: 'auto', // default - autosize
@@ -2531,7 +2618,32 @@ var ConfigPrototype = {};
2531
2618
  * });
2532
2619
  * ```
2533
2620
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "preset", 'custom');
2534
- (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "presets", {
2621
+ /**
2622
+ * Dictionary of named configuration presets. Each key is a preset name and the value
2623
+ * is a partial options object that will be merged into the editor config when
2624
+ * {@link Config.preset} matches the key.
2625
+ *
2626
+ * ```javascript
2627
+ * // Use a built-in preset
2628
+ * Jodit.make('#editor', {
2629
+ * preset: 'inline'
2630
+ * });
2631
+ * ```
2632
+ *
2633
+ * ```javascript
2634
+ * // Define and use a custom preset
2635
+ * Jodit.defaultOptions.presets.myCompact = {
2636
+ * toolbarButtonSize: 'small',
2637
+ * showCharsCounter: false,
2638
+ * showWordsCounter: false,
2639
+ * showXPathInStatusbar: false
2640
+ * };
2641
+ *
2642
+ * Jodit.make('#editor', {
2643
+ * preset: 'myCompact'
2644
+ * });
2645
+ * ```
2646
+ */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "presets", {
2535
2647
  inline: {
2536
2648
  inline: true,
2537
2649
  toolbar: false,
@@ -2543,7 +2655,10 @@ var ConfigPrototype = {};
2543
2655
  showPlaceholder: false
2544
2656
  }
2545
2657
  });
2546
- (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "ownerDocument", jodit_core_constants__WEBPACK_IMPORTED_MODULE_3__.globalDocument);
2658
+ /**
2659
+ * The Document object the editor operates within. Defaults to the current `document`.
2660
+ * Override when the editor is created inside an iframe or a different browsing context.
2661
+ */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "ownerDocument", jodit_core_constants__WEBPACK_IMPORTED_MODULE_3__.globalDocument);
2547
2662
  /**
2548
2663
  * Allows you to specify the window in which the editor will be created. Default - window
2549
2664
  * This is necessary if you are creating the editor inside an iframe but the code is running in the parent window
@@ -2574,7 +2689,9 @@ var ConfigPrototype = {};
2574
2689
  * ```
2575
2690
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "shadowRoot", null);
2576
2691
  /**
2577
- * z-index For editor
2692
+ * Base CSS `z-index` for the editor UI (toolbar, popups, dialogs).
2693
+ * Set to a higher value when other page elements overlap the editor.
2694
+ * `0` means no explicit z-index is applied.
2578
2695
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "zIndex", 0);
2579
2696
  /**
2580
2697
  * Change the read-only state of the editor
@@ -2610,7 +2727,6 @@ var ConfigPrototype = {};
2610
2727
  /**
2611
2728
  * Size of icons in the toolbar (can be "small", "middle", "large")
2612
2729
  *
2613
- * @example
2614
2730
  * ```javascript
2615
2731
  * const editor = Jodit.make(".dark_editor", {
2616
2732
  * toolbarButtonSize: "small"
@@ -2621,11 +2737,13 @@ var ConfigPrototype = {};
2621
2737
  * Allow navigation in the toolbar of the editor by Tab key
2622
2738
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "allowTabNavigation", false);
2623
2739
  /**
2624
- * Inline editing mode
2740
+ * When enabled, the editor renders without its own container chrome (toolbar, borders, statusbar).
2741
+ * The editable area becomes the element itself. Typically combined with
2742
+ * `toolbarInline: true` so a floating toolbar appears on selection.
2625
2743
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "inline", false);
2626
2744
  /**
2627
2745
  * Theme (can be "dark")
2628
- * @example
2746
+ *
2629
2747
  * ```javascript
2630
2748
  * const editor = Jodit.make(".dark_editor", {
2631
2749
  * theme: "dark"
@@ -2638,10 +2756,9 @@ var ConfigPrototype = {};
2638
2756
  /**
2639
2757
  * Class name that can be appended to the editable area
2640
2758
  *
2641
- * @see [[Config.iframeCSSLinks]]
2642
- * @see [[Config.iframeStyle]]
2759
+ * @see {@link Config.iframeCSSLinks}
2760
+ * @see {@link Config.iframeStyle}
2643
2761
  *
2644
- * @example
2645
2762
  * ```javascript
2646
2763
  * Jodit.make('#editor', {
2647
2764
  * editorClassName: 'some_my_class'
@@ -2657,7 +2774,7 @@ var ConfigPrototype = {};
2657
2774
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "editorClassName", false);
2658
2775
  /**
2659
2776
  * Class name that can be appended to the main editor container
2660
- * @example
2777
+ *
2661
2778
  * ```javascript
2662
2779
  * const jodit = Jodit.make('#editor', {
2663
2780
  * className: 'some_my_class'
@@ -2677,7 +2794,7 @@ var ConfigPrototype = {};
2677
2794
  /**
2678
2795
  * The internal styles of the editable area. They are intended to change
2679
2796
  * not the appearance of the editor, but to change the appearance of the content.
2680
- * @example
2797
+ *
2681
2798
  * ```javascript
2682
2799
  * Jodit.make('#editor', {
2683
2800
  * style: {
@@ -2688,13 +2805,14 @@ var ConfigPrototype = {};
2688
2805
  * ```
2689
2806
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "style", false);
2690
2807
  /**
2808
+ * Inline CSS styles applied to the outer editor container element.
2809
+ * Use this to style the editor wrapper (borders, background, etc.) without affecting content.
2691
2810
  *
2692
- * @example
2693
2811
  * ```javascript
2694
2812
  * Jodit.make('#editor', {
2695
- * editorStyle: {
2696
- * font: '12px Arial',
2697
- * color: '#0c0c0c'
2813
+ * containerStyle: {
2814
+ * border: '1px solid #ccc',
2815
+ * background: '#f9f9f9'
2698
2816
  * }
2699
2817
  * });
2700
2818
  * ```
@@ -2703,7 +2821,6 @@ var ConfigPrototype = {};
2703
2821
  * Dictionary of variable values in css, a complete list can be found here
2704
2822
  * https://github.com/xdan/jodit/blob/main/src/styles/variables.less#L25
2705
2823
  *
2706
- * @example
2707
2824
  * ```js
2708
2825
  * const editor = Jodit.make('#editor', {
2709
2826
  * styleValues: {
@@ -2715,9 +2832,9 @@ var ConfigPrototype = {};
2715
2832
  * ```
2716
2833
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "styleValues", {});
2717
2834
  /**
2718
- * After all, changes in editors for textarea will call change trigger
2835
+ * When enabled, the editor dispatches a native `change` event on the original
2836
+ * `<textarea>` element whenever the content changes, so standard DOM listeners work.
2719
2837
  *
2720
- * @example
2721
2838
  * ```javascript
2722
2839
  * const editor = Jodit.make('#editor');
2723
2840
  * document.getElementById('editor').addEventListener('change', function () {
@@ -2731,7 +2848,6 @@ var ConfigPrototype = {};
2731
2848
  * the page element direction. 'ltr' – Indicates a Left-To-Right text direction (like in English).
2732
2849
  * 'rtl' – Indicates a Right-To-Left text direction (like in Arabic).
2733
2850
  *
2734
- * @example
2735
2851
  * ```javascript
2736
2852
  * Jodit.make('.editor', {
2737
2853
  * direction: 'rtl'
@@ -2743,7 +2859,6 @@ var ConfigPrototype = {};
2743
2859
  * (navigator.language && navigator.language.substr(0, 2)) ||
2744
2860
  * (navigator.browserLanguage && navigator.browserLanguage.substr(0, 2)) || 'en'
2745
2861
  *
2746
- * @example
2747
2862
  * ```html
2748
2863
  * <!-- include in you page lang file -->
2749
2864
  * <script src="jodit/lang/de.js"></script>
@@ -2757,7 +2872,6 @@ var ConfigPrototype = {};
2757
2872
  /**
2758
2873
  * if true all Lang.i18n(key) return `{key}`
2759
2874
  *
2760
- * @example
2761
2875
  * ```html
2762
2876
  * <script>
2763
2877
  * var editor = Jodit.make('.editor', {
@@ -2771,7 +2885,6 @@ var ConfigPrototype = {};
2771
2885
  /**
2772
2886
  * Collection of language pack data `{en: {'Type something': 'Type something', ...}}`
2773
2887
  *
2774
- * @example
2775
2888
  * ```javascript
2776
2889
  * const editor = Jodit.make('#editor', {
2777
2890
  * language: 'ru',
@@ -2803,11 +2916,11 @@ var ConfigPrototype = {};
2803
2916
  * Delay before show tooltip
2804
2917
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "showTooltipDelay", 200);
2805
2918
  /**
2806
- * Instead of create custop tooltip - use native title tooltips
2919
+ * Instead of creating a custom tooltip, use the browser's native title tooltips
2807
2920
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "useNativeTooltip", false);
2808
2921
  /**
2809
- * Default insert method
2810
- * @default insert_as_html
2922
+ * How pasted content is inserted into the editor by default.
2923
+ * Possible values: `insert_as_html`, `insert_as_text`, `insert_only_text`, `insert_clear_html`.
2811
2924
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "defaultActionOnPaste", jodit_core_constants__WEBPACK_IMPORTED_MODULE_3__.INSERT_AS_HTML);
2812
2925
  // TODO
2813
2926
  // autosave: false, // false or url
@@ -2820,7 +2933,6 @@ var ConfigPrototype = {};
2820
2933
  /**
2821
2934
  * When this option is enabled, the editor's content will be placed in an iframe and isolated from the rest of the page.
2822
2935
  *
2823
- * @example
2824
2936
  * ```javascript
2825
2937
  * Jodit.make('#editor', {
2826
2938
  * iframe: true,
@@ -2832,7 +2944,7 @@ var ConfigPrototype = {};
2832
2944
  /**
2833
2945
  * Allow editing the entire HTML document(html, head)
2834
2946
  * \> Works together with the iframe option.
2835
- * @example
2947
+ *
2836
2948
  * ```js
2837
2949
  * const editor = Jodit.make('#editor', {
2838
2950
  * iframe: true,
@@ -2851,7 +2963,7 @@ var ConfigPrototype = {};
2851
2963
  /**
2852
2964
  * Jodit.MODE_WYSIWYG The HTML editor allows you to write like MSWord,
2853
2965
  * Jodit.MODE_SOURCE syntax highlighting source editor
2854
- * @example
2966
+ *
2855
2967
  * ```javascript
2856
2968
  * var editor = Jodit.make('#editor', {
2857
2969
  * defaultMode: Jodit.MODE_SPLIT
@@ -2860,11 +2972,11 @@ var ConfigPrototype = {};
2860
2972
  * ```
2861
2973
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "defaultMode", jodit_core_constants__WEBPACK_IMPORTED_MODULE_3__.MODE_WYSIWYG);
2862
2974
  /**
2863
- * Use split mode
2975
+ * When enabled, the editor displays both the WYSIWYG view and the source-code view side by side.
2864
2976
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "useSplitMode", false);
2865
2977
  /**
2866
2978
  * The colors in HEX representation to select a color for the background and for the text in colorpicker
2867
- * @example
2979
+ *
2868
2980
  * ```javascript
2869
2981
  * Jodit.make('#editor', {
2870
2982
  * colors: ['#ff0000', '#00ff00', '#0000ff']
@@ -2960,7 +3072,7 @@ var ConfigPrototype = {};
2960
3072
  });
2961
3073
  /**
2962
3074
  * The default tab color picker
2963
- * @example
3075
+ *
2964
3076
  * ```javascript
2965
3077
  * Jodit.make('#editor2', {
2966
3078
  * colorPickerDefaultTab: 'color'
@@ -2968,11 +3080,11 @@ var ConfigPrototype = {};
2968
3080
  * ```
2969
3081
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "colorPickerDefaultTab", 'background');
2970
3082
  /**
2971
- * Image size defaults to a larger image
3083
+ * Default width (in pixels) applied to images inserted into the editor
2972
3084
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "imageDefaultWidth", 300);
2973
3085
  /**
2974
3086
  * Do not display these buttons that are on the list
2975
- * @example
3087
+ *
2976
3088
  * ```javascript
2977
3089
  * Jodit.make('#editor2', {
2978
3090
  * removeButtons: ['hr', 'source']
@@ -2981,7 +3093,7 @@ var ConfigPrototype = {};
2981
3093
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "removeButtons", []);
2982
3094
  /**
2983
3095
  * Do not init these plugins
2984
- * @example
3096
+ *
2985
3097
  * ```typescript
2986
3098
  * var editor = Jodit.make('.editor', {
2987
3099
  * disablePlugins: 'table,iframe'
@@ -2994,7 +3106,7 @@ var ConfigPrototype = {};
2994
3106
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "disablePlugins", []);
2995
3107
  /**
2996
3108
  * Init and download extra plugins
2997
- * @example
3109
+ *
2998
3110
  * ```typescript
2999
3111
  * var editor = Jodit.make('.editor', {
3000
3112
  * extraPlugins: ['emoji']
@@ -3006,14 +3118,13 @@ var ConfigPrototype = {};
3006
3118
  * Base path for download extra plugins
3007
3119
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "basePath", void 0);
3008
3120
  /**
3009
- * These buttons list will be added to the option. Buttons
3121
+ * Additional buttons appended to the {@link Config.buttons} list
3010
3122
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "extraButtons", []);
3011
3123
  /**
3012
3124
  * By default, you can only install an icon from the Jodit suite.
3013
3125
  * You can add your icon to the set using the `Jodit.modules.Icon.set (name, svg Code)` method.
3014
3126
  * But for a declarative declaration, you can use this option.
3015
3127
  *
3016
- * @example
3017
3128
  * ```js
3018
3129
  * Jodit.modules.Icon.set('someIcon', '<svg><path.../></svg>');
3019
3130
  * const editor = Jodit.make({
@@ -3022,8 +3133,9 @@ var ConfigPrototype = {};
3022
3133
  * icon: 'someIcon'
3023
3134
  * }]
3024
3135
  * });
3136
+ * ```
3025
3137
  *
3026
- * @example
3138
+ * ```js
3027
3139
  * const editor = Jodit.make({
3028
3140
  * extraIcons: {
3029
3141
  * someIcon: '<svg><path.../></svg>'
@@ -3034,7 +3146,7 @@ var ConfigPrototype = {};
3034
3146
  * }]
3035
3147
  * });
3036
3148
  * ```
3037
- * @example
3149
+ *
3038
3150
  * ```js
3039
3151
  * const editor = Jodit.make({
3040
3152
  * extraButtons: [{
@@ -3046,7 +3158,7 @@ var ConfigPrototype = {};
3046
3158
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "extraIcons", {});
3047
3159
  /**
3048
3160
  * Default attributes for created inside editor elements
3049
- * @example
3161
+ *
3050
3162
  * ```js
3051
3163
  * const editor2 = Jodit.make('#editor', {
3052
3164
  * createAttributes: {
@@ -3066,7 +3178,7 @@ var ConfigPrototype = {};
3066
3178
  * expect(ul.className).equals('ui-test');
3067
3179
  * ```
3068
3180
  * Or JSX in React
3069
- * @example
3181
+ *
3070
3182
  * ```jsx
3071
3183
  * import React, {useState, useRef} from 'react';
3072
3184
  * import JoditEditor from "jodit-react";
@@ -3098,7 +3210,7 @@ var ConfigPrototype = {};
3098
3210
  /**
3099
3211
  * The list of buttons that appear in the editor's toolbar on large places (≥ options.sizeLG).
3100
3212
  * Note - this is not the width of the device, the width of the editor
3101
- * @example
3213
+ *
3102
3214
  * ```javascript
3103
3215
  * Jodit.make('#editor', {
3104
3216
  * buttons: ['bold', 'italic', 'source'],
@@ -3106,7 +3218,7 @@ var ConfigPrototype = {};
3106
3218
  * buttonsXS: ['bold', 'fullsize'],
3107
3219
  * });
3108
3220
  * ```
3109
- * @example
3221
+ *
3110
3222
  * ```javascript
3111
3223
  * Jodit.make('#editor2', {
3112
3224
  * buttons: [{
@@ -3130,7 +3242,7 @@ var ConfigPrototype = {};
3130
3242
  * }]
3131
3243
  * });
3132
3244
  * ```
3133
- * @example
3245
+ *
3134
3246
  * ```javascript
3135
3247
  * Jodit.make('#editor2', {
3136
3248
  * buttons: Jodit.defaultOptions.buttons.concat([{
@@ -3226,7 +3338,8 @@ var ConfigPrototype = {};
3226
3338
  }
3227
3339
  ]);
3228
3340
  /**
3229
- * Behavior for buttons
3341
+ * Map of toolbar button names to their control definitions (icon, tooltip, exec handler, etc.).
3342
+ * Plugins extend this object with their own button definitions via `Config.prototype.controls`.
3230
3343
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "controls", void 0);
3231
3344
  /**
3232
3345
  * Some events are called when the editor is initialized, for example, the `afterInit` event.
@@ -3254,7 +3367,7 @@ var ConfigPrototype = {};
3254
3367
  * ```
3255
3368
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "events", {});
3256
3369
  /**
3257
- * Buttons in toolbat without SVG - only texts
3370
+ * Buttons in toolbar without SVG - only texts
3258
3371
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "textIcons", false);
3259
3372
  /**
3260
3373
  * Element for dialog container
@@ -4276,7 +4389,13 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_0__.pluginSystem.add('table', table);
4276
4389
  /* harmony import */ var _engines_local_storage_provider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(59807);
4277
4390
  /* harmony import */ var _engines_memory_storage_provider__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9505);
4278
4391
  /* harmony import */ var _storage__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(24475);
4279
-
4392
+ /*!
4393
+ * Jodit Editor (https://xdsoft.net/jodit/)
4394
+ * Released under MIT see LICENSE.txt in the project root for license information.
4395
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
4396
+ */ /**
4397
+ * @module storage
4398
+ */
4280
4399
 
4281
4400
 
4282
4401
 
@@ -11214,6 +11333,12 @@ var ToolbarButton = /*#__PURE__*/ function(UIButton) {
11214
11333
  return 'ToolbarButton';
11215
11334
  }
11216
11335
  },
11336
+ {
11337
+ key: "getRole",
11338
+ value: function getRole() {
11339
+ return 'listitem';
11340
+ }
11341
+ },
11217
11342
  {
11218
11343
  key: "toolbar",
11219
11344
  get: /**
@@ -11304,7 +11429,6 @@ var ToolbarButton = /*#__PURE__*/ function(UIButton) {
11304
11429
  var cn = this.componentName;
11305
11430
  var container = this.j.c.span(cn);
11306
11431
  var button = (0,_swc_helpers_get__WEBPACK_IMPORTED_MODULE_4__._)((0,_swc_helpers_get_prototype_of__WEBPACK_IMPORTED_MODULE_5__._)(ToolbarButton.prototype), "createContainer", this).call(this);
11307
- (0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_26__.attr)(container, 'role', 'listitem');
11308
11432
  button.classList.remove(cn);
11309
11433
  button.classList.add(cn + '__button');
11310
11434
  Object.defineProperty(button, 'component', {
@@ -21503,7 +21627,13 @@ ToolbarCollection = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_8__.__d
21503
21627
  /* harmony export */ eventEmitter: function() { return /* binding */ eventEmitter; }
21504
21628
  /* harmony export */ });
21505
21629
  /* harmony import */ var _event_emitter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93747);
21506
-
21630
+ /*!
21631
+ * Jodit Editor (https://xdsoft.net/jodit/)
21632
+ * Released under MIT see LICENSE.txt in the project root for license information.
21633
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
21634
+ */ /**
21635
+ * @module event-emitter
21636
+ */
21507
21637
  var eventEmitter = new _event_emitter__WEBPACK_IMPORTED_MODULE_0__.EventEmitter();
21508
21638
 
21509
21639
 
@@ -24977,12 +25107,12 @@ function _async_to_generator(fn) {
24977
25107
  * Jodit Editor (https://xdsoft.net/jodit/)
24978
25108
  * Released under MIT see LICENSE.txt in the project root for license information.
24979
25109
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
24980
- */
24981
- /**
25110
+ */ /**
24982
25111
  * [[include:core/decorators/autobind/README.md]]
24983
25112
  * @packageDocumentation
24984
25113
  * @module decorators/autobind
24985
- */ /**
25114
+ */
25115
+ /**
24986
25116
  * Decorator that automatically binds a method to its class instance.
24987
25117
  * This is useful when passing methods as callbacks to preserve the correct `this` context.
24988
25118
  *
@@ -31455,6 +31585,12 @@ var UIGroup = /*#__PURE__*/ function(UIElement) {
31455
31585
  return 'UIGroup';
31456
31586
  }
31457
31587
  },
31588
+ {
31589
+ key: "getRole",
31590
+ value: function getRole() {
31591
+ return 'list';
31592
+ }
31593
+ },
31458
31594
  {
31459
31595
  key: "allChildren",
31460
31596
  get: /**
@@ -32872,7 +33008,13 @@ __webpack_require__.r(__webpack_exports__);
32872
33008
  /* harmony export */ getItem: function() { return /* binding */ getItem; }
32873
33009
  /* harmony export */ });
32874
33010
  /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23211);
32875
-
33011
+ /*!
33012
+ * Jodit Editor (https://xdsoft.net/jodit/)
33013
+ * Released under MIT see LICENSE.txt in the project root for license information.
33014
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
33015
+ */ /**
33016
+ * @module modules/file-browser
33017
+ */
32876
33018
  /**
32877
33019
  * @private
32878
33020
  */ var getItem = function getItem(node, root) {
@@ -39993,13 +40135,12 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.maxWidth = '100%';
39993
40135
  /**
39994
40136
  * Editor's min-height
39995
40137
  *
39996
- * @example
39997
40138
  * ```javascript
39998
40139
  * Jodit.make('.editor', {
39999
40140
  * minHeight: '30%' //min-height: 30%
40000
40141
  * })
40001
40142
  * ```
40002
- * @example
40143
+ *
40003
40144
  * ```javascript
40004
40145
  * Jodit.make('.editor', {
40005
40146
  * minHeight: 200 //min-height: 200px
@@ -41208,7 +41349,7 @@ __webpack_require__.r(__webpack_exports__);
41208
41349
  * @packageDocumentation
41209
41350
  * @module constants
41210
41351
  */
41211
- var APP_VERSION = "4.9.9";
41352
+ var APP_VERSION = "4.9.11";
41212
41353
  // prettier-ignore
41213
41354
  var ES = "es5";
41214
41355
  var IS_ES_MODERN = false;
@@ -45587,6 +45728,10 @@ __webpack_require__.r(__webpack_exports__);
45587
45728
  * Jodit Editor (https://xdsoft.net/jodit/)
45588
45729
  * Released under MIT see LICENSE.txt in the project root for license information.
45589
45730
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
45731
+ */ /**
45732
+ * [[include:core/decorators/component/README.md]]
45733
+ * @packageDocumentation
45734
+ * @module decorators/component
45590
45735
  */
45591
45736
 
45592
45737
 
@@ -48037,9 +48182,10 @@ function elementsEqualAttributes(elm1, elm2) {
48037
48182
  /* harmony import */ var jodit_core_decorators_derive_derive__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(24968);
48038
48183
  /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(23211);
48039
48184
  /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(85932);
48040
- /* harmony import */ var jodit_core_traits_elms__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(23183);
48041
- /* harmony import */ var jodit_core_traits_mods__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(81987);
48042
- /* harmony import */ var jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(29434);
48185
+ /* harmony import */ var jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(7909);
48186
+ /* harmony import */ var jodit_core_traits_elms__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(23183);
48187
+ /* harmony import */ var jodit_core_traits_mods__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(81987);
48188
+ /* harmony import */ var jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(29434);
48043
48189
  /*!
48044
48190
  * Jodit Editor (https://xdsoft.net/jodit/)
48045
48191
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -48062,6 +48208,7 @@ function elementsEqualAttributes(elm1, elm2) {
48062
48208
 
48063
48209
 
48064
48210
 
48211
+
48065
48212
  var UIElement = /*#__PURE__*/ function(ViewComponent) {
48066
48213
  "use strict";
48067
48214
  (0,_swc_helpers_inherits__WEBPACK_IMPORTED_MODULE_6__._)(UIElement, ViewComponent);
@@ -48072,6 +48219,8 @@ var UIElement = /*#__PURE__*/ function(ViewComponent) {
48072
48219
  jodit
48073
48220
  ]), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "container", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "name", ''), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "__parentElement", null), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "mods", {});
48074
48221
  _this.container = _this.createContainer(options);
48222
+ var role = _this.getRole();
48223
+ role && (0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_13__.attr)(_this.container, 'role', role);
48075
48224
  Object.defineProperty(_this.container, 'component', {
48076
48225
  value: _this,
48077
48226
  configurable: true
@@ -48079,6 +48228,12 @@ var UIElement = /*#__PURE__*/ function(ViewComponent) {
48079
48228
  return _this;
48080
48229
  }
48081
48230
  (0,_swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_2__._)(UIElement, [
48231
+ {
48232
+ key: "getRole",
48233
+ value: function getRole() {
48234
+ return '';
48235
+ }
48236
+ },
48082
48237
  {
48083
48238
  key: "parentElement",
48084
48239
  get: function get() {
@@ -48196,7 +48351,7 @@ var UIElement = /*#__PURE__*/ function(ViewComponent) {
48196
48351
  value: function parseTemplate(result) {
48197
48352
  var _this = this;
48198
48353
  return this.j.c.fromHTML(result.replace(/\*([^*]+?)\*/g, function(_, name) {
48199
- return jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_15__.Icon.get(name) || '';
48354
+ return jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_16__.Icon.get(name) || '';
48200
48355
  }).replace(/&_/g, this.componentName + '_').replace(/~([^~]+?)~/g, function(_, s) {
48201
48356
  return _this.i18n(s);
48202
48357
  }));
@@ -48230,7 +48385,7 @@ var UIElement = /*#__PURE__*/ function(ViewComponent) {
48230
48385
  return UIElement;
48231
48386
  }(jodit_core_component__WEBPACK_IMPORTED_MODULE_9__.ViewComponent);
48232
48387
  UIElement = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_8__.__decorate)([
48233
- (0,jodit_core_decorators_derive_derive__WEBPACK_IMPORTED_MODULE_10__.derive)(jodit_core_traits_mods__WEBPACK_IMPORTED_MODULE_14__.Mods, jodit_core_traits_elms__WEBPACK_IMPORTED_MODULE_13__.Elms)
48388
+ (0,jodit_core_decorators_derive_derive__WEBPACK_IMPORTED_MODULE_10__.derive)(jodit_core_traits_mods__WEBPACK_IMPORTED_MODULE_15__.Mods, jodit_core_traits_elms__WEBPACK_IMPORTED_MODULE_14__.Elms)
48234
48389
  ], UIElement);
48235
48390
 
48236
48391