jodit 4.13.23 → 4.13.24

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 (55) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +2 -2
  4. package/es2015/jodit.js +25 -5
  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.fat.min.js +2 -2
  13. package/es2018/jodit.min.js +2 -2
  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 +3 -3
  18. package/es2021/jodit.js +26 -5
  19. package/es2021/jodit.min.js +3 -3
  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 +3 -3
  28. package/es2021.en/jodit.js +26 -5
  29. package/es2021.en/jodit.min.js +3 -3
  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 +27 -5
  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/core/constants.js +1 -1
  51. package/esm/core/selection/style/api/wrap.d.ts +2 -1
  52. package/esm/core/selection/style/api/wrap.js +12 -2
  53. package/esm/core/selection/style/transactions.js +18 -4
  54. package/package.json +1 -1
  55. package/types/core/selection/style/api/wrap.d.ts +2 -1
@@ -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.13.23
4
+ * Version: v4.13.24
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1843,7 +1843,7 @@ __webpack_require__.r(__webpack_exports__);
1843
1843
  * ```
1844
1844
  * @packageDocumentation
1845
1845
  * @module constants
1846
- */ const APP_VERSION = "4.13.23";
1846
+ */ const APP_VERSION = "4.13.24";
1847
1847
  // prettier-ignore
1848
1848
  const ES = "es2021";
1849
1849
  const IS_ES_MODERN = true;
@@ -11985,6 +11985,7 @@ if (jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument) {
11985
11985
  "use strict";
11986
11986
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11987
11987
  /* harmony export */ FiniteStateMachine: function() { return /* reexport safe */ _finite_state_machine__WEBPACK_IMPORTED_MODULE_1__.FiniteStateMachine; },
11988
+ /* harmony export */ WRAP_NODES: function() { return /* reexport safe */ _wrap__WEBPACK_IMPORTED_MODULE_13__.WRAP_NODES; },
11988
11989
  /* harmony export */ extractSelectedPart: function() { return /* reexport safe */ _extract__WEBPACK_IMPORTED_MODULE_0__.extractSelectedPart; },
11989
11990
  /* harmony export */ getSuitChild: function() { return /* reexport safe */ _get_suit_child__WEBPACK_IMPORTED_MODULE_2__.getSuitChild; },
11990
11991
  /* harmony export */ getSuitParent: function() { return /* reexport safe */ _get_suit_parent__WEBPACK_IMPORTED_MODULE_3__.getSuitParent; },
@@ -12647,6 +12648,7 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
12647
12648
 
12648
12649
  "use strict";
12649
12650
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12651
+ /* harmony export */ WRAP_NODES: function() { return /* binding */ WRAP_NODES; },
12650
12652
  /* harmony export */ wrap: function() { return /* binding */ wrap; }
12651
12653
  /* harmony export */ });
12652
12654
  /* harmony import */ var jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27795);
@@ -12701,7 +12703,7 @@ const WRAP_NODES = new Set([
12701
12703
  * otherwise it wraps free text in an element.
12702
12704
  */ function findOrCreateWrapper(commitStyle, font, jodit) {
12703
12705
  if (commitStyle.elementIsBlock) {
12704
- const box = jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.up(font, (node)=>jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(node) && !jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(node, WRAP_NODES), jodit.editor);
12706
+ const box = jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.up(font, (node)=>jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(node) && !jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(node, WRAP_NODES) && !hasBlockChildren(node), jodit.editor);
12705
12707
  if (box) {
12706
12708
  return box;
12707
12709
  }
@@ -12710,6 +12712,13 @@ const WRAP_NODES = new Set([
12710
12712
  (0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_1__.attr)(font, 'size', null);
12711
12713
  return font;
12712
12714
  }
12715
+ /**
12716
+ * A block that itself contains block-level children is a layout container:
12717
+ * replacing it wholesale would merge all its blocks into the new element,
12718
+ * so the selection must be wrapped in a new block inside it instead.
12719
+ */ function hasBlockChildren(node) {
12720
+ return Array.from(node.childNodes).some((child)=>jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(child));
12721
+ }
12713
12722
 
12714
12723
 
12715
12724
  /***/ }),
@@ -13096,13 +13105,25 @@ const transactions = {
13096
13105
  },
13097
13106
  [states.UNWRAP]: {
13098
13107
  exec (value) {
13099
- if (value.element.attributes.length && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(value.element, value.style.element)) {
13108
+ const { element, style, jodit } = value;
13109
+ if (element.attributes.length && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(element, style.element)) {
13110
+ return {
13111
+ ...value,
13112
+ next: states.REPLACE_DEFAULT
13113
+ };
13114
+ }
13115
+ // Unwrapping a block inside a container (e.g. an h3 inside a div)
13116
+ // leaves bare inline content there: the wrapNodes plugin restores
13117
+ // paragraphs only at the editor root. Replace such a block with
13118
+ // the default tag instead.
13119
+ const parent = element.parentElement;
13120
+ if (style.elementIsBlock && !style.elementIsDefault && parent && parent !== jodit.editor && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(parent) && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(parent, jodit_core_selection_style_api__WEBPACK_IMPORTED_MODULE_3__.WRAP_NODES)) {
13100
13121
  return {
13101
13122
  ...value,
13102
13123
  next: states.REPLACE_DEFAULT
13103
13124
  };
13104
13125
  }
13105
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(value.element);
13126
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(element);
13106
13127
  return {
13107
13128
  ...value,
13108
13129
  mode: jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_4__.UNWRAP,