jodit 4.15.9 → 4.15.10

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 (54) 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 +24 -3
  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 +24 -3
  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 +24 -3
  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 -3
  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/selection.d.ts +11 -0
  52. package/esm/core/selection/selection.js +24 -1
  53. package/package.json +1 -1
  54. package/types/core/selection/selection.d.ts +11 -0
package/es2015/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.15.9
4
+ * Version: v4.15.10
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1785,7 +1785,7 @@ __webpack_require__.r(__webpack_exports__);
1785
1785
  * ```
1786
1786
  * @packageDocumentation
1787
1787
  * @module constants
1788
- */ const APP_VERSION = "4.15.9";
1788
+ */ const APP_VERSION = "4.15.10";
1789
1789
  // prettier-ignore
1790
1790
  const ES = "es2015";
1791
1791
  const IS_ES_MODERN = true;
@@ -11598,10 +11598,31 @@ class Selection {
11598
11598
  if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.up(node, (elm)=>elm === this.area || elm && elm.parentNode === this.area, this.area)) {
11599
11599
  throw (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.error)('Node element must be in editor');
11600
11600
  }
11601
+ const target = !inward && this.__closestNotEditable(node) || node;
11601
11602
  const range = this.createRange();
11602
- range[inward || node === this.area ? 'selectNodeContents' : 'selectNode'](node);
11603
+ range[inward || target === this.area ? 'selectNodeContents' : 'selectNode'](target);
11603
11604
  return this.selectRange(range);
11604
11605
  }
11606
+ /**
11607
+ * The outermost `contenteditable="false"` ancestor of the node inside the
11608
+ * editable area, if there is one.
11609
+ *
11610
+ * A range can be put inside such an island (e.g. on an `<img>` wrapped in a
11611
+ * `<picture contenteditable="false">`), but the browser cannot place a caret
11612
+ * there: the arrow keys then have nothing to move from and the selection
11613
+ * cannot be escaped. Selecting the island itself keeps the range in editable
11614
+ * content, so the caret can step over it. See #1184
11615
+ */ __closestNotEditable(node) {
11616
+ const { area } = this;
11617
+ let result = null, elm = node.parentNode;
11618
+ while(elm && elm !== area && area.contains(elm)){
11619
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isElement(elm) && elm.getAttribute('contenteditable') === 'false') {
11620
+ result = elm;
11621
+ }
11622
+ elm = elm.parentNode;
11623
+ }
11624
+ return result;
11625
+ }
11605
11626
  /**
11606
11627
  * Return current selected HTML
11607
11628
  * @example