jodit 4.15.7 → 4.15.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.
Files changed (57) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +4 -4
  4. package/es2015/jodit.js +50 -22
  5. package/es2015/jodit.min.js +4 -4
  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 +4 -4
  13. package/es2018/jodit.min.js +4 -4
  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 +49 -21
  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 +49 -21
  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 +50 -22
  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 +2 -1
  51. package/esm/core/constants.js +1 -1
  52. package/esm/plugins/clean-html/config.d.ts +2 -1
  53. package/esm/plugins/clean-html/helpers/visitor/filters/try-remove-node.js +10 -0
  54. package/esm/plugins/mobile/mobile.js +25 -4
  55. package/package.json +1 -1
  56. package/types/config.d.ts +2 -1
  57. package/types/plugins/clean-html/config.d.ts +2 -1
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.7
4
+ * Version: v4.15.8
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.7";
1788
+ */ const APP_VERSION = "4.15.8";
1789
1789
  // prettier-ignore
1790
1790
  const ES = "es2015";
1791
1791
  const IS_ES_MODERN = true;
@@ -29598,7 +29598,14 @@ function filterStyleProperties(style, allowed) {
29598
29598
  // a pending-format marker the user is about to type into (#1291). `current`
29599
29599
  // is captured before a click moves the caret, so also check the live caret.
29600
29600
  const liveCaret = jodit.s.isCollapsed() ? jodit.s.range.startContainer : null;
29601
- return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && node.nodeName.match(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE) != null && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTemporary(node) && (0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_2__.trimInv)(node.innerHTML).length === 0 && (current == null || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, current)) && (liveCaret == null || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, liveCaret));
29601
+ return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && node.nodeName.match(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE) != null && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTemporary(node) && !isFragmentTarget(node) && (0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_2__.trimInv)(node.innerHTML).length === 0 && (current == null || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, current)) && (liveCaret == null || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, liveCaret));
29602
+ }
29603
+ /**
29604
+ * An element with an `id`, or an `<a>` with a `name`, is where an in-page link
29605
+ * (`#fragment`) lands. It is usually empty (`<a name="top"></a>`), and removing
29606
+ * it silently breaks every link that points at it.
29607
+ */ function isFragmentTarget(element) {
29608
+ return element.hasAttribute('id') || element.nodeName === 'A' && element.hasAttribute('name');
29602
29609
  }
29603
29610
 
29604
29611
 
@@ -37632,10 +37639,12 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.dots = {
37632
37639
 
37633
37640
  "use strict";
37634
37641
  /* unused harmony export mobile */
37635
- /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28077);
37636
- /* harmony import */ var jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65946);
37637
- /* harmony import */ var jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2496);
37638
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3244);
37642
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23211);
37643
+ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28077);
37644
+ /* harmony import */ var jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65946);
37645
+ /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85932);
37646
+ /* harmony import */ var jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2496);
37647
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3244);
37639
37648
  /*!
37640
37649
  * Jodit Editor (https://xdsoft.net/jodit/)
37641
37650
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -37648,6 +37657,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.dots = {
37648
37657
 
37649
37658
 
37650
37659
 
37660
+
37661
+
37651
37662
  const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n';
37652
37663
  /**
37653
37664
  * Constrain a responsive breakpoint set (`buttonsMD/SM/XS`) to the buttons the
@@ -37661,13 +37672,13 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
37661
37672
  * the standard grouped mobile layout — groups, separators and `dots` — is
37662
37673
  * preserved. See #1389.
37663
37674
  */ function fitToButtons(list, editor) {
37664
- const allowed = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.flatButtonsSet)((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttons), editor);
37675
+ const allowed = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.flatButtonsSet)((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons), editor);
37665
37676
  const groups = editor.getRegisteredButtonGroups();
37666
37677
  let changed = false;
37667
37678
  let hadDots = false;
37668
37679
  const flat = [];
37669
37680
  for (const item of list){
37670
- if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.isButtonGroup)(item)) {
37681
+ if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.isButtonGroup)(item)) {
37671
37682
  var _groups_item_group;
37672
37683
  const members = [
37673
37684
  ...item.buttons,
@@ -37705,17 +37716,32 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
37705
37716
  // Keep the "show all" overflow button only if some requested button is still
37706
37717
  // hidden at this breakpoint.
37707
37718
  if (hadDots) {
37708
- const shown = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.flatButtonsSet)(cleaned, editor);
37709
- if ((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.toArray)(allowed).some((button)=>!shown.has(button))) {
37719
+ const shown = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.flatButtonsSet)(cleaned, editor);
37720
+ if ((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.toArray)(allowed).some((button)=>!shown.has(button))) {
37710
37721
  cleaned.push('dots');
37711
37722
  }
37712
37723
  }
37713
37724
  return cleaned;
37714
37725
  }
37726
+ /**
37727
+ * The width that decides which breakpoint set the toolbar uses. A toolbar
37728
+ * rendered into an external container (`toolbar` set to an element or a
37729
+ * selector) lays out in that container, so its width is what matters there.
37730
+ */ function adaptiveWidth(editor) {
37731
+ var _editor_container_parentElement;
37732
+ const { toolbar } = editor.o;
37733
+ if ((0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_3__.isString)(toolbar) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isHTMLElement(toolbar)) {
37734
+ const width = editor.toolbarContainer.offsetWidth;
37735
+ if (width) {
37736
+ return width;
37737
+ }
37738
+ }
37739
+ return ((_editor_container_parentElement = editor.container.parentElement) !== null && _editor_container_parentElement !== void 0 ? _editor_container_parentElement : editor.container).offsetWidth;
37740
+ }
37715
37741
  /**
37716
37742
  * Rebuild toolbar in depends on editor's width
37717
37743
  */ function mobile(editor) {
37718
- let timeout = 0, store = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttons);
37744
+ let timeout = 0, store = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
37719
37745
  if (editor.o.mobileTapTimeout) {
37720
37746
  // Emulate double tap
37721
37747
  editor.e.on('touchend', (e)=>{
@@ -37732,8 +37758,8 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
37732
37758
  }
37733
37759
  editor.e.on('getDiffButtons.mobile', (toolbar)=>{
37734
37760
  if (toolbar === editor.toolbar) {
37735
- const buttons = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.flatButtonsSet)((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttons), editor), flatStore = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.flatButtonsSet)(store, editor);
37736
- return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.toArray)(buttons).reduce((acc, item)=>{
37761
+ const buttons = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.flatButtonsSet)((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons), editor), flatStore = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.flatButtonsSet)(store, editor);
37762
+ return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.toArray)(buttons).reduce((acc, item)=>{
37737
37763
  if (!flatStore.has(item)) {
37738
37764
  acc.push(item);
37739
37765
  }
@@ -37743,22 +37769,24 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
37743
37769
  });
37744
37770
  if (editor.o.toolbarAdaptive) {
37745
37771
  editor.e.on('resize afterInit recalcAdaptive changePlace afterAddPlace', ()=>{
37746
- var _editor_container_parentElement;
37747
37772
  if (!editor.o.toolbar) {
37748
37773
  return;
37749
37774
  }
37750
- const width = ((_editor_container_parentElement = editor.container.parentElement) !== null && _editor_container_parentElement !== void 0 ? _editor_container_parentElement : editor.container).offsetWidth;
37751
37775
  const newStore = (()=>{
37752
- if (editor.isFullSize || width >= editor.o.sizeLG) {
37753
- return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttons);
37776
+ if (editor.isFullSize) {
37777
+ return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
37778
+ }
37779
+ const width = adaptiveWidth(editor);
37780
+ if (width >= editor.o.sizeLG) {
37781
+ return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
37754
37782
  }
37755
37783
  if (width >= editor.o.sizeMD) {
37756
- return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsMD), editor);
37784
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsMD), editor);
37757
37785
  }
37758
37786
  if (width >= editor.o.sizeSM) {
37759
- return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsSM), editor);
37787
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsSM), editor);
37760
37788
  }
37761
- return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsXS), editor);
37789
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsXS), editor);
37762
37790
  })();
37763
37791
  if (newStore.toString() !== store.toString()) {
37764
37792
  var _editor_toolbar;
@@ -37769,7 +37797,7 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
37769
37797
  }).on(editor.ow, 'load resize', ()=>editor.e.fire('recalcAdaptive'));
37770
37798
  }
37771
37799
  }
37772
- jodit_core_global__WEBPACK_IMPORTED_MODULE_0__.pluginSystem.add('mobile', mobile);
37800
+ jodit_core_global__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('mobile', mobile);
37773
37801
 
37774
37802
 
37775
37803
  /***/ }),