jodit 4.15.6 → 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 (64) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +4 -4
  4. package/es2015/jodit.js +112 -28
  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 +110 -27
  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 +110 -27
  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 +153 -62
  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 +12 -1
  51. package/esm/core/constants.js +1 -1
  52. package/esm/plugins/clean-html/clean-html.d.ts +7 -3
  53. package/esm/plugins/clean-html/clean-html.js +37 -0
  54. package/esm/plugins/clean-html/config.d.ts +12 -1
  55. package/esm/plugins/clean-html/config.js +1 -0
  56. package/esm/plugins/clean-html/helpers/visitor/filters/try-remove-node.js +10 -0
  57. package/esm/plugins/drag-and-drop-element/drag-and-drop-element.d.ts +1 -0
  58. package/esm/plugins/drag-and-drop-element/drag-and-drop-element.js +19 -4
  59. package/esm/plugins/mobile/mobile.js +25 -4
  60. package/package.json +1 -1
  61. package/types/config.d.ts +12 -1
  62. package/types/plugins/clean-html/clean-html.d.ts +7 -3
  63. package/types/plugins/clean-html/config.d.ts +12 -1
  64. package/types/plugins/drag-and-drop-element/drag-and-drop-element.d.ts +1 -0
package/es2021/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.6
4
+ * Version: v4.15.8
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1779,7 +1779,7 @@ __webpack_require__.r(__webpack_exports__);
1779
1779
  * ```
1780
1780
  * @packageDocumentation
1781
1781
  * @module constants
1782
- */ const APP_VERSION = "4.15.6";
1782
+ */ const APP_VERSION = "4.15.8";
1783
1783
  // prettier-ignore
1784
1784
  const ES = "es2021";
1785
1785
  const IS_ES_MODERN = true;
@@ -28329,7 +28329,8 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__.Icon.set('class-span', (_class_s
28329
28329
 
28330
28330
  /**
28331
28331
  * Clean HTML after removeFormat and insertHorizontalRule command
28332
- */ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Plugin {
28332
+ */ const TRAILING_BR_BLOCKS = 'p, div, li, td, th, h1, h2, h3, h4, h5, h6, blockquote';
28333
+ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Plugin {
28333
28334
  /** @override */ afterInit(jodit) {}
28334
28335
  get isEditMode() {
28335
28336
  return !(this.j.isInDestruct || !this.j.isEditorMode() || this.j.getReadOnly());
@@ -28388,6 +28389,7 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__.Icon.set('class-span', (_class_s
28388
28389
  * opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
28389
28390
  */ onAfterGetValueFromEditor(data) {
28390
28391
  this.__singleQuotesInFontFamily(data);
28392
+ this.__removeTrailingBr(data);
28391
28393
  if (!this.j.o.cleanHTML.collapseEmptyValueToEmptyString) {
28392
28394
  return;
28393
28395
  }
@@ -28402,7 +28404,38 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__.Icon.set('class-span', (_class_s
28402
28404
  * `style="font-family: "Open Sans", …"` — broken markup. Single quotes
28403
28405
  * survive that round trip. Names that already contain an apostrophe are
28404
28406
  * left alone.
28405
- */ __singleQuotesInFontFamily(data) {
28407
+ */ /**
28408
+ * Drop a `<br>` that is the last node of a block (or of the value) and
28409
+ * follows other content — the caret placeholder browsers leave behind
28410
+ * after typing into an empty block. An empty block (`<p><br></p>`) and a
28411
+ * deliberate empty line (`text<br><br>`) are kept.
28412
+ */ __removeTrailingBr(data) {
28413
+ if (!this.j.o.cleanHTML.removeTrailingBr || !/<br/i.test(data.value)) {
28414
+ return;
28415
+ }
28416
+ const box = this.j.c.div();
28417
+ box.innerHTML = data.value;
28418
+ const blocks = [
28419
+ box,
28420
+ ...box.querySelectorAll(TRAILING_BR_BLOCKS)
28421
+ ];
28422
+ blocks.forEach((block)=>{
28423
+ const last = block.lastChild;
28424
+ if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isTag(last, 'br')) {
28425
+ return;
28426
+ }
28427
+ const prev = last.previousSibling;
28428
+ if (!prev || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isTag(prev, 'br')) {
28429
+ return;
28430
+ }
28431
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isText(prev) && !prev.nodeValue?.trim() && !prev.previousSibling) {
28432
+ return;
28433
+ }
28434
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(last);
28435
+ });
28436
+ data.value = box.innerHTML;
28437
+ }
28438
+ __singleQuotesInFontFamily(data) {
28406
28439
  if (!this.j.o.cleanHTML.singleQuotesInFontFamily || !data.value.includes('&quot;')) {
28407
28440
  return;
28408
28441
  }
@@ -28489,6 +28522,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
28489
28522
  fillEmptyParagraph: true,
28490
28523
  collapseEmptyValueToEmptyString: false,
28491
28524
  singleQuotesInFontFamily: true,
28525
+ removeTrailingBr: false,
28492
28526
  replaceNBSP: true,
28493
28527
  replaceOldTags: {
28494
28528
  i: 'em',
@@ -29352,7 +29386,14 @@ function filterStyleProperties(style, allowed) {
29352
29386
  // a pending-format marker the user is about to type into (#1291). `current`
29353
29387
  // is captured before a click moves the caret, so also check the live caret.
29354
29388
  const liveCaret = jodit.s.isCollapsed() ? jodit.s.range.startContainer : null;
29355
- 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));
29389
+ 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));
29390
+ }
29391
+ /**
29392
+ * An element with an `id`, or an `<a>` with a `name`, is where an in-page link
29393
+ * (`#fragment`) lands. It is usually empty (`<a name="top"></a>`), and removing
29394
+ * it silently breaks every link that points at it.
29395
+ */ function isFragmentTarget(element) {
29396
+ return element.hasAttribute('id') || element.nodeName === 'A' && element.hasAttribute('name');
29356
29397
  }
29357
29398
 
29358
29399
 
@@ -30584,6 +30625,11 @@ var DragState = /*#__PURE__*/ (/* unused pure expression or super */ null && (fu
30584
30625
  this.state = 2;
30585
30626
  }
30586
30627
  this.j.e.fire('hidePopup hideResizer');
30628
+ // The ghost lives in the top document (position: fixed), but the
30629
+ // mousemove comes from the editor document. In iframe mode those are
30630
+ // different viewports, so the iframe's own offset has to be added or
30631
+ // the ghost trails the pointer by exactly that distance (#1455).
30632
+ const offset = this.__ghostOffset();
30587
30633
  if (!this.draggable.parentNode) {
30588
30634
  const target = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.dataBind)(this.draggable, 'target');
30589
30635
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.css)(this.draggable, {
@@ -30593,19 +30639,35 @@ var DragState = /*#__PURE__*/ (/* unused pure expression or super */ null && (fu
30593
30639
  position: 'fixed',
30594
30640
  opacity: 0.7,
30595
30641
  display: 'inline-block',
30596
- left: event.clientX,
30597
- top: event.clientY,
30642
+ left: event.clientX + offset.left,
30643
+ top: event.clientY + offset.top,
30598
30644
  width: target?.offsetWidth ?? 100,
30599
30645
  height: target?.offsetHeight ?? 100
30600
30646
  });
30601
30647
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.append((0,jodit_core_global__WEBPACK_IMPORTED_MODULE_4__.getContainer)(this.j, dragAndDropElement), this.draggable);
30602
30648
  }
30603
30649
  ;(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.css)(this.draggable, {
30604
- left: event.clientX,
30605
- top: event.clientY
30650
+ left: event.clientX + offset.left,
30651
+ top: event.clientY + offset.top
30606
30652
  });
30653
+ // The caret goes into the editor document, so it keeps the raw
30654
+ // (iframe-relative) coordinates.
30607
30655
  this.j.s.insertCursorAtPoint(event.clientX, event.clientY);
30608
30656
  }
30657
+ __ghostOffset() {
30658
+ const iframe = this.j.iframe;
30659
+ if (!iframe) {
30660
+ return {
30661
+ left: 0,
30662
+ top: 0
30663
+ };
30664
+ }
30665
+ const rect = iframe.getBoundingClientRect();
30666
+ return {
30667
+ left: rect.left,
30668
+ top: rect.top
30669
+ };
30670
+ }
30609
30671
  /**
30610
30672
  * Mouseup handler in any place
30611
30673
  */ onDragEnd() {
@@ -37311,10 +37373,12 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.dots = {
37311
37373
 
37312
37374
  "use strict";
37313
37375
  /* unused harmony export mobile */
37314
- /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28077);
37315
- /* harmony import */ var jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65946);
37316
- /* harmony import */ var jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2496);
37317
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3244);
37376
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23211);
37377
+ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28077);
37378
+ /* harmony import */ var jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65946);
37379
+ /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85932);
37380
+ /* harmony import */ var jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2496);
37381
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3244);
37318
37382
  /*!
37319
37383
  * Jodit Editor (https://xdsoft.net/jodit/)
37320
37384
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -37327,6 +37391,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.dots = {
37327
37391
 
37328
37392
 
37329
37393
 
37394
+
37395
+
37330
37396
  const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n';
37331
37397
  /**
37332
37398
  * Constrain a responsive breakpoint set (`buttonsMD/SM/XS`) to the buttons the
@@ -37340,13 +37406,13 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
37340
37406
  * the standard grouped mobile layout — groups, separators and `dots` — is
37341
37407
  * preserved. See #1389.
37342
37408
  */ function fitToButtons(list, editor) {
37343
- 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);
37409
+ 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);
37344
37410
  const groups = editor.getRegisteredButtonGroups();
37345
37411
  let changed = false;
37346
37412
  let hadDots = false;
37347
37413
  const flat = [];
37348
37414
  for (const item of list){
37349
- if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.isButtonGroup)(item)) {
37415
+ if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.isButtonGroup)(item)) {
37350
37416
  const members = [
37351
37417
  ...item.buttons,
37352
37418
  ...groups[item.group] ?? []
@@ -37383,17 +37449,31 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
37383
37449
  // Keep the "show all" overflow button only if some requested button is still
37384
37450
  // hidden at this breakpoint.
37385
37451
  if (hadDots) {
37386
- const shown = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.flatButtonsSet)(cleaned, editor);
37387
- if ((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.toArray)(allowed).some((button)=>!shown.has(button))) {
37452
+ const shown = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.flatButtonsSet)(cleaned, editor);
37453
+ if ((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.toArray)(allowed).some((button)=>!shown.has(button))) {
37388
37454
  cleaned.push('dots');
37389
37455
  }
37390
37456
  }
37391
37457
  return cleaned;
37392
37458
  }
37459
+ /**
37460
+ * The width that decides which breakpoint set the toolbar uses. A toolbar
37461
+ * rendered into an external container (`toolbar` set to an element or a
37462
+ * selector) lays out in that container, so its width is what matters there.
37463
+ */ function adaptiveWidth(editor) {
37464
+ const { toolbar } = editor.o;
37465
+ 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)) {
37466
+ const width = editor.toolbarContainer.offsetWidth;
37467
+ if (width) {
37468
+ return width;
37469
+ }
37470
+ }
37471
+ return (editor.container.parentElement ?? editor.container).offsetWidth;
37472
+ }
37393
37473
  /**
37394
37474
  * Rebuild toolbar in depends on editor's width
37395
37475
  */ function mobile(editor) {
37396
- let timeout = 0, store = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttons);
37476
+ let timeout = 0, store = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
37397
37477
  if (editor.o.mobileTapTimeout) {
37398
37478
  // Emulate double tap
37399
37479
  editor.e.on('touchend', (e)=>{
@@ -37410,8 +37490,8 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
37410
37490
  }
37411
37491
  editor.e.on('getDiffButtons.mobile', (toolbar)=>{
37412
37492
  if (toolbar === editor.toolbar) {
37413
- 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);
37414
- return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.toArray)(buttons).reduce((acc, item)=>{
37493
+ 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);
37494
+ return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.toArray)(buttons).reduce((acc, item)=>{
37415
37495
  if (!flatStore.has(item)) {
37416
37496
  acc.push(item);
37417
37497
  }
@@ -37424,18 +37504,21 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
37424
37504
  if (!editor.o.toolbar) {
37425
37505
  return;
37426
37506
  }
37427
- const width = (editor.container.parentElement ?? editor.container).offsetWidth;
37428
37507
  const newStore = (()=>{
37429
- if (editor.isFullSize || width >= editor.o.sizeLG) {
37430
- return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttons);
37508
+ if (editor.isFullSize) {
37509
+ return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
37510
+ }
37511
+ const width = adaptiveWidth(editor);
37512
+ if (width >= editor.o.sizeLG) {
37513
+ return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
37431
37514
  }
37432
37515
  if (width >= editor.o.sizeMD) {
37433
- return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsMD), editor);
37516
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsMD), editor);
37434
37517
  }
37435
37518
  if (width >= editor.o.sizeSM) {
37436
- return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsSM), editor);
37519
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsSM), editor);
37437
37520
  }
37438
- return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsXS), editor);
37521
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsXS), editor);
37439
37522
  })();
37440
37523
  if (newStore.toString() !== store.toString()) {
37441
37524
  store = newStore;
@@ -37445,7 +37528,7 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
37445
37528
  }).on(editor.ow, 'load resize', ()=>editor.e.fire('recalcAdaptive'));
37446
37529
  }
37447
37530
  }
37448
- jodit_core_global__WEBPACK_IMPORTED_MODULE_0__.pluginSystem.add('mobile', mobile);
37531
+ jodit_core_global__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('mobile', mobile);
37449
37532
 
37450
37533
 
37451
37534
  /***/ }),