jodit 4.6.11 → 4.6.13

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 (65) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +2 -2
  4. package/es2015/jodit.js +18 -131
  5. package/es2015/jodit.min.js +2 -2
  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.css +1 -1
  13. package/es2018/jodit.fat.min.js +2 -2
  14. package/es2018/jodit.js +22 -132
  15. package/es2018/jodit.min.js +2 -2
  16. package/es2018/plugins/debug/debug.css +1 -1
  17. package/es2018/plugins/debug/debug.js +1 -1
  18. package/es2018/plugins/debug/debug.min.js +1 -1
  19. package/es2018/plugins/speech-recognize/speech-recognize.css +1 -1
  20. package/es2018/plugins/speech-recognize/speech-recognize.js +1 -1
  21. package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
  22. package/es2021/jodit.css +1 -1
  23. package/es2021/jodit.fat.min.js +2 -2
  24. package/es2021/jodit.js +21 -132
  25. package/es2021/jodit.min.js +2 -2
  26. package/es2021/plugins/debug/debug.css +1 -1
  27. package/es2021/plugins/debug/debug.js +1 -1
  28. package/es2021/plugins/debug/debug.min.js +1 -1
  29. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  30. package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
  31. package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
  32. package/es2021.en/jodit.css +1 -1
  33. package/es2021.en/jodit.fat.min.js +2 -2
  34. package/es2021.en/jodit.js +21 -132
  35. package/es2021.en/jodit.min.js +2 -2
  36. package/es2021.en/plugins/debug/debug.css +1 -1
  37. package/es2021.en/plugins/debug/debug.js +1 -1
  38. package/es2021.en/plugins/debug/debug.min.js +1 -1
  39. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  40. package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
  41. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
  42. package/es5/415.fat.min.js +1 -1
  43. package/es5/415.min.js +1 -1
  44. package/es5/5.fat.min.js +1 -1
  45. package/es5/5.min.js +1 -1
  46. package/es5/jodit.css +2 -2
  47. package/es5/jodit.fat.min.js +2 -2
  48. package/es5/jodit.js +18 -131
  49. package/es5/jodit.min.css +2 -2
  50. package/es5/jodit.min.js +2 -2
  51. package/es5/plugins/debug/debug.css +1 -1
  52. package/es5/plugins/debug/debug.js +1 -1
  53. package/es5/plugins/debug/debug.min.js +1 -1
  54. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  55. package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
  56. package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
  57. package/esm/core/constants.js +1 -1
  58. package/esm/core/helpers/array/index.d.ts +0 -1
  59. package/esm/core/helpers/array/index.js +0 -1
  60. package/esm/core/selection/style/transactions.js +15 -4
  61. package/package.json +1 -1
  62. package/types/core/helpers/array/index.d.ts +0 -1
  63. package/esm/core/helpers/array/reconcile-arrays.d.ts +0 -54
  64. package/esm/core/helpers/array/reconcile-arrays.js +0 -103
  65. package/types/core/helpers/array/reconcile-arrays.d.ts +0 -54
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.6.11
4
+ * Version: v4.6.13
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -8775,7 +8775,7 @@ __webpack_require__.r(__webpack_exports__);
8775
8775
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
8776
8776
  */
8777
8777
 
8778
- var APP_VERSION = "4.6.11";
8778
+ var APP_VERSION = "4.6.13";
8779
8779
  // prettier-ignore
8780
8780
  var ES = "es5";
8781
8781
  var IS_ES_MODERN = false;
@@ -14559,16 +14559,13 @@ function observable(obj) {
14559
14559
 
14560
14560
  "use strict";
14561
14561
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14562
- /* harmony export */ $r: function() { return /* reexport safe */ _to_array__WEBPACK_IMPORTED_MODULE_3__.$; },
14562
+ /* harmony export */ $r: function() { return /* reexport safe */ _to_array__WEBPACK_IMPORTED_MODULE_2__.$; },
14563
14563
  /* harmony export */ _j: function() { return /* reexport safe */ _as_array__WEBPACK_IMPORTED_MODULE_0__._; },
14564
- /* harmony export */ ft: function() { return /* reexport safe */ _reconcile_arrays__WEBPACK_IMPORTED_MODULE_1__.f; },
14565
- /* harmony export */ j5: function() { return /* reexport safe */ _reconcile_arrays__WEBPACK_IMPORTED_MODULE_1__.j; },
14566
- /* harmony export */ uM: function() { return /* reexport safe */ _split_array__WEBPACK_IMPORTED_MODULE_2__.u; }
14564
+ /* harmony export */ uM: function() { return /* reexport safe */ _split_array__WEBPACK_IMPORTED_MODULE_1__.u; }
14567
14565
  /* harmony export */ });
14568
14566
  /* harmony import */ var _as_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82317);
14569
- /* harmony import */ var _reconcile_arrays__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63784);
14570
- /* harmony import */ var _split_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42589);
14571
- /* harmony import */ var _to_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42448);
14567
+ /* harmony import */ var _split_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42589);
14568
+ /* harmony import */ var _to_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42448);
14572
14569
  /*!
14573
14570
  * Jodit Editor (https://xdsoft.net/jodit/)
14574
14571
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -14582,7 +14579,6 @@ function observable(obj) {
14582
14579
 
14583
14580
 
14584
14581
 
14585
-
14586
14582
  /***/ }),
14587
14583
 
14588
14584
  /***/ 32782:
@@ -17711,13 +17707,21 @@ var transactions = (_a = {},
17711
17707
  },
17712
17708
  _a[states.EXTRACT] = {
17713
17709
  exec: function (value) {
17710
+ var _a;
17714
17711
  var element = value.element, jodit = value.jodit, style = value.style;
17715
17712
  var suit = (0,jodit_core_selection_style_api__WEBPACK_IMPORTED_MODULE_5__/* .suitableClosest */ .$s)(style, element, jodit.editor);
17716
17713
  void 0;
17717
- if (!style.elementIsBlock) {
17718
- (0,jodit_core_selection_style_api__WEBPACK_IMPORTED_MODULE_5__/* .extractSelectedPart */ .yP)(suit, element, jodit);
17714
+ // If we're applying inline styles to a block element, don't split the block
17715
+ var isApplyingInlineStyle = !style.elementIsBlock && ((_a = style.options.attributes) === null || _a === void 0 ? void 0 : _a.style);
17716
+ var shouldNotSplitBlock = isApplyingInlineStyle && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isBlock(suit);
17717
+ if (!shouldNotSplitBlock) {
17718
+ if (!style.elementIsBlock) {
17719
+ (0,jodit_core_selection_style_api__WEBPACK_IMPORTED_MODULE_5__/* .extractSelectedPart */ .yP)(suit, element, jodit);
17720
+ }
17721
+ return (0,tslib__WEBPACK_IMPORTED_MODULE_0__/* .__assign */ .Cl)((0,tslib__WEBPACK_IMPORTED_MODULE_0__/* .__assign */ .Cl)({}, value), { element: suit, next: states.ELEMENT });
17719
17722
  }
17720
- return (0,tslib__WEBPACK_IMPORTED_MODULE_0__/* .__assign */ .Cl)((0,tslib__WEBPACK_IMPORTED_MODULE_0__/* .__assign */ .Cl)({}, value), { element: suit, next: states.ELEMENT });
17723
+ // Create a new wrapper instead of splitting the block
17724
+ return (0,tslib__WEBPACK_IMPORTED_MODULE_0__/* .__assign */ .Cl)((0,tslib__WEBPACK_IMPORTED_MODULE_0__/* .__assign */ .Cl)({}, value), { next: states.WRAP });
17721
17725
  }
17722
17726
  },
17723
17727
  _a[states.UNWRAP_CHILDREN] = {
@@ -30201,121 +30205,6 @@ function moveCursorOutFromSpecialTags(jodit, fake, tags) {
30201
30205
  }
30202
30206
 
30203
30207
 
30204
- /***/ }),
30205
-
30206
- /***/ 63784:
30207
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
30208
-
30209
- "use strict";
30210
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30211
- /* harmony export */ f: function() { return /* binding */ applyArrayReconciliation; },
30212
- /* harmony export */ j: function() { return /* binding */ reconcileArrays; }
30213
- /* harmony export */ });
30214
- /*!
30215
- * Jodit Editor (https://xdsoft.net/jodit/)
30216
- * Released under MIT see LICENSE.txt in the project root for license information.
30217
- * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
30218
- */
30219
- /**
30220
- * Reconciles two arrays and returns the differences
30221
- * @param oldArray - The original array
30222
- * @param newArray - The new array to compare against
30223
- * @param keyFn - Optional function to generate unique keys for items (for object comparison)
30224
- * @returns Object containing added, removed, kept and moved items
30225
- *
30226
- * @example
30227
- * ```typescript
30228
- * const old = [1, 2, 3, 4];
30229
- * const new = [2, 4, 5, 1];
30230
- * const result = reconcileArrays(old, new);
30231
- * // result.added = [5]
30232
- * // result.removed = [3]
30233
- * // result.kept = [2, 4, 1]
30234
- * // result.moved = [{item: 1, from: 0, to: 3}]
30235
- * ```
30236
- *
30237
- * @example
30238
- * ```typescript
30239
- * const old = [{id: 1, name: 'a'}, {id: 2, name: 'b'}];
30240
- * const new = [{id: 2, name: 'b'}, {id: 3, name: 'c'}];
30241
- * const result = reconcileArrays(old, new, item => item.id);
30242
- * // result.added = [{id: 3, name: 'c'}]
30243
- * // result.removed = [{id: 1, name: 'a'}]
30244
- * ```
30245
- */
30246
- function reconcileArrays(oldArray, newArray, keyFn) {
30247
- var getKey = keyFn || (function (item) { return item; });
30248
- var oldMap = new Map();
30249
- var newMap = new Map();
30250
- oldArray.forEach(function (item, index) {
30251
- oldMap.set(getKey(item), { item: item, index: index });
30252
- });
30253
- newArray.forEach(function (item, index) {
30254
- newMap.set(getKey(item), { item: item, index: index });
30255
- });
30256
- var added = [];
30257
- var removed = [];
30258
- var kept = [];
30259
- var moved = [];
30260
- // Find removed items
30261
- oldMap.forEach(function (value, key) {
30262
- if (!newMap.has(key)) {
30263
- removed.push(value.item);
30264
- }
30265
- });
30266
- // Find added items and track kept/moved items
30267
- newMap.forEach(function (value, key) {
30268
- var oldItem = oldMap.get(key);
30269
- if (!oldItem) {
30270
- added.push(value.item);
30271
- }
30272
- else {
30273
- kept.push(value.item);
30274
- if (oldItem.index !== value.index) {
30275
- moved.push({
30276
- item: value.item,
30277
- from: oldItem.index,
30278
- to: value.index
30279
- });
30280
- }
30281
- }
30282
- });
30283
- return {
30284
- added: added,
30285
- removed: removed,
30286
- kept: kept,
30287
- moved: moved
30288
- };
30289
- }
30290
- /**
30291
- * Applies reconciliation patches to transform one array into another
30292
- * @param oldArray - The original array to transform
30293
- * @param newArray - The target array structure
30294
- * @param keyFn - Optional function to generate unique keys for items
30295
- * @returns New array matching the structure of newArray
30296
- */
30297
- function applyArrayReconciliation(oldArray, newArray, keyFn) {
30298
- var result = reconcileArrays(oldArray, newArray, keyFn);
30299
- var output = [];
30300
- // Build the new array based on newArray order
30301
- newArray.forEach(function (item) {
30302
- var key = keyFn ? keyFn(item) : item;
30303
- var isNew = result.added.some(function (addedItem) { return (keyFn ? keyFn(addedItem) : addedItem) === key; });
30304
- if (isNew) {
30305
- output.push(item);
30306
- }
30307
- else {
30308
- // Use the old item reference if it exists
30309
- var oldItem = oldArray.find(function (oldItem) { return (keyFn ? keyFn(oldItem) : oldItem) === key; });
30310
- if (oldItem !== undefined) {
30311
- output.push(oldItem);
30312
- }
30313
- }
30314
- });
30315
- return output;
30316
- }
30317
-
30318
-
30319
30208
  /***/ }),
30320
30209
 
30321
30210
  /***/ 63837:
@@ -30912,7 +30801,6 @@ __webpack_require__.r(__webpack_exports__);
30912
30801
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30913
30802
  /* harmony export */ CamelCaseToKebabCase: function() { return /* reexport safe */ _string__WEBPACK_IMPORTED_MODULE_7__.N; },
30914
30803
  /* harmony export */ NUMBER_FIELDS_REG: function() { return /* reexport safe */ _normalize__WEBPACK_IMPORTED_MODULE_5__.b$; },
30915
- /* harmony export */ applyArrayReconciliation: function() { return /* reexport safe */ _array__WEBPACK_IMPORTED_MODULE_0__.ft; },
30916
30804
  /* harmony export */ applyStyles: function() { return /* reexport safe */ _html__WEBPACK_IMPORTED_MODULE_4__.ZM; },
30917
30805
  /* harmony export */ asArray: function() { return /* reexport safe */ _array__WEBPACK_IMPORTED_MODULE_0__._j; },
30918
30806
  /* harmony export */ camelCase: function() { return /* reexport safe */ _string__WEBPACK_IMPORTED_MODULE_7__.xQ; },
@@ -30967,7 +30855,6 @@ __webpack_require__.r(__webpack_exports__);
30967
30855
  /* harmony export */ normalizeUrl: function() { return /* reexport safe */ _normalize__WEBPACK_IMPORTED_MODULE_5__.l2; },
30968
30856
  /* harmony export */ offset: function() { return /* reexport safe */ _size__WEBPACK_IMPORTED_MODULE_6__.cY; },
30969
30857
  /* harmony export */ position: function() { return /* reexport safe */ _size__WEBPACK_IMPORTED_MODULE_6__.G1; },
30970
- /* harmony export */ reconcileArrays: function() { return /* reexport safe */ _array__WEBPACK_IMPORTED_MODULE_0__.j5; },
30971
30858
  /* harmony export */ safeHTML: function() { return /* reexport safe */ _html__WEBPACK_IMPORTED_MODULE_4__.t_; },
30972
30859
  /* harmony export */ sanitizeHTMLElement: function() { return /* reexport safe */ _html__WEBPACK_IMPORTED_MODULE_4__.vn; },
30973
30860
  /* harmony export */ setTimeout: function() { return /* reexport safe */ _async__WEBPACK_IMPORTED_MODULE_1__.w; },
@@ -30992,7 +30879,7 @@ __webpack_require__.r(__webpack_exports__);
30992
30879
  /* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6589);
30993
30880
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97369);
30994
30881
  /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
30995
- /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _utils__WEBPACK_IMPORTED_MODULE_8__) if(["default","applyArrayReconciliation","asArray","reconcileArrays","splitArray","toArray","clearTimeout","setTimeout","hasBrowserColorPicker","hasContainer","isAbortError","isArray","isBoolean","isDestructable","isEqual","isFastEqual","isFunction","isHTML","isHtmlFromWord","isInitable","isInt","isJoditObject","isLicense","isMarker","isNativeFunction","isNumber","isNumeric","isPlainObject","isPromise","isSet","isString","isStringArray","isURL","isValidName","isViewObject","isVoid","isWindow","colorToHex","applyStyles","cleanFromWord","htmlspecialchars","nl2br","safeHTML","sanitizeHTMLElement","stripTags","NUMBER_FIELDS_REG","normalizeColor","normalizeCssNumericValue","normalizeCssValue","normalizeKeyAliases","normalizeLicense","normalizePath","normalizeRelativePath","normalizeSize","normalizeUrl","getContentWidth","getScrollParent","innerWidth","offset","position","size","CamelCaseToKebabCase","camelCase","fuzzySearchIndex","i18n","kebabCase","sprintf","stringify","trim","trimChars","trimInv","ucfirst"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _utils__WEBPACK_IMPORTED_MODULE_8__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)
30882
+ /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _utils__WEBPACK_IMPORTED_MODULE_8__) if(["default","asArray","splitArray","toArray","clearTimeout","setTimeout","hasBrowserColorPicker","hasContainer","isAbortError","isArray","isBoolean","isDestructable","isEqual","isFastEqual","isFunction","isHTML","isHtmlFromWord","isInitable","isInt","isJoditObject","isLicense","isMarker","isNativeFunction","isNumber","isNumeric","isPlainObject","isPromise","isSet","isString","isStringArray","isURL","isValidName","isViewObject","isVoid","isWindow","colorToHex","applyStyles","cleanFromWord","htmlspecialchars","nl2br","safeHTML","sanitizeHTMLElement","stripTags","NUMBER_FIELDS_REG","normalizeColor","normalizeCssNumericValue","normalizeCssValue","normalizeKeyAliases","normalizeLicense","normalizePath","normalizeRelativePath","normalizeSize","normalizeUrl","getContentWidth","getScrollParent","innerWidth","offset","position","size","CamelCaseToKebabCase","camelCase","fuzzySearchIndex","i18n","kebabCase","sprintf","stringify","trim","trimChars","trimInv","ucfirst"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _utils__WEBPACK_IMPORTED_MODULE_8__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)
30996
30883
  /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
30997
30884
  /*!
30998
30885
  * Jodit Editor (https://xdsoft.net/jodit/)
package/es5/jodit.min.css CHANGED
@@ -1,14 +1,14 @@
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.6.11
4
+ * Version: v4.6.13
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
8
8
  /*!
9
9
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
10
10
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
11
- * Version: v4.6.11
11
+ * Version: v4.6.13
12
12
  * Url: https://xdsoft.net/jodit/
13
13
  * License(s): MIT
14
14
  */