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
@@ -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;
@@ -28255,7 +28255,8 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__.Icon.set('class-span', (_class_s
28255
28255
 
28256
28256
  /**
28257
28257
  * Clean HTML after removeFormat and insertHorizontalRule command
28258
- */ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Plugin {
28258
+ */ const TRAILING_BR_BLOCKS = 'p, div, li, td, th, h1, h2, h3, h4, h5, h6, blockquote';
28259
+ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Plugin {
28259
28260
  /** @override */ afterInit(jodit) {}
28260
28261
  get isEditMode() {
28261
28262
  return !(this.j.isInDestruct || !this.j.isEditorMode() || this.j.getReadOnly());
@@ -28314,6 +28315,7 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__.Icon.set('class-span', (_class_s
28314
28315
  * opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
28315
28316
  */ onAfterGetValueFromEditor(data) {
28316
28317
  this.__singleQuotesInFontFamily(data);
28318
+ this.__removeTrailingBr(data);
28317
28319
  if (!this.j.o.cleanHTML.collapseEmptyValueToEmptyString) {
28318
28320
  return;
28319
28321
  }
@@ -28328,7 +28330,38 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__.Icon.set('class-span', (_class_s
28328
28330
  * `style="font-family: "Open Sans", …"` — broken markup. Single quotes
28329
28331
  * survive that round trip. Names that already contain an apostrophe are
28330
28332
  * left alone.
28331
- */ __singleQuotesInFontFamily(data) {
28333
+ */ /**
28334
+ * Drop a `<br>` that is the last node of a block (or of the value) and
28335
+ * follows other content — the caret placeholder browsers leave behind
28336
+ * after typing into an empty block. An empty block (`<p><br></p>`) and a
28337
+ * deliberate empty line (`text<br><br>`) are kept.
28338
+ */ __removeTrailingBr(data) {
28339
+ if (!this.j.o.cleanHTML.removeTrailingBr || !/<br/i.test(data.value)) {
28340
+ return;
28341
+ }
28342
+ const box = this.j.c.div();
28343
+ box.innerHTML = data.value;
28344
+ const blocks = [
28345
+ box,
28346
+ ...box.querySelectorAll(TRAILING_BR_BLOCKS)
28347
+ ];
28348
+ blocks.forEach((block)=>{
28349
+ const last = block.lastChild;
28350
+ if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isTag(last, 'br')) {
28351
+ return;
28352
+ }
28353
+ const prev = last.previousSibling;
28354
+ if (!prev || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isTag(prev, 'br')) {
28355
+ return;
28356
+ }
28357
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isText(prev) && !prev.nodeValue?.trim() && !prev.previousSibling) {
28358
+ return;
28359
+ }
28360
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(last);
28361
+ });
28362
+ data.value = box.innerHTML;
28363
+ }
28364
+ __singleQuotesInFontFamily(data) {
28332
28365
  if (!this.j.o.cleanHTML.singleQuotesInFontFamily || !data.value.includes('&quot;')) {
28333
28366
  return;
28334
28367
  }
@@ -28415,6 +28448,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
28415
28448
  fillEmptyParagraph: true,
28416
28449
  collapseEmptyValueToEmptyString: false,
28417
28450
  singleQuotesInFontFamily: true,
28451
+ removeTrailingBr: false,
28418
28452
  replaceNBSP: true,
28419
28453
  replaceOldTags: {
28420
28454
  i: 'em',
@@ -29278,7 +29312,14 @@ function filterStyleProperties(style, allowed) {
29278
29312
  // a pending-format marker the user is about to type into (#1291). `current`
29279
29313
  // is captured before a click moves the caret, so also check the live caret.
29280
29314
  const liveCaret = jodit.s.isCollapsed() ? jodit.s.range.startContainer : null;
29281
- 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));
29315
+ 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));
29316
+ }
29317
+ /**
29318
+ * An element with an `id`, or an `<a>` with a `name`, is where an in-page link
29319
+ * (`#fragment`) lands. It is usually empty (`<a name="top"></a>`), and removing
29320
+ * it silently breaks every link that points at it.
29321
+ */ function isFragmentTarget(element) {
29322
+ return element.hasAttribute('id') || element.nodeName === 'A' && element.hasAttribute('name');
29282
29323
  }
29283
29324
 
29284
29325
 
@@ -30197,6 +30238,11 @@ var DragState = /*#__PURE__*/ (/* unused pure expression or super */ null && (fu
30197
30238
  this.state = 2;
30198
30239
  }
30199
30240
  this.j.e.fire('hidePopup hideResizer');
30241
+ // The ghost lives in the top document (position: fixed), but the
30242
+ // mousemove comes from the editor document. In iframe mode those are
30243
+ // different viewports, so the iframe's own offset has to be added or
30244
+ // the ghost trails the pointer by exactly that distance (#1455).
30245
+ const offset = this.__ghostOffset();
30200
30246
  if (!this.draggable.parentNode) {
30201
30247
  const target = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.dataBind)(this.draggable, 'target');
30202
30248
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.css)(this.draggable, {
@@ -30206,19 +30252,35 @@ var DragState = /*#__PURE__*/ (/* unused pure expression or super */ null && (fu
30206
30252
  position: 'fixed',
30207
30253
  opacity: 0.7,
30208
30254
  display: 'inline-block',
30209
- left: event.clientX,
30210
- top: event.clientY,
30255
+ left: event.clientX + offset.left,
30256
+ top: event.clientY + offset.top,
30211
30257
  width: target?.offsetWidth ?? 100,
30212
30258
  height: target?.offsetHeight ?? 100
30213
30259
  });
30214
30260
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.append((0,jodit_core_global__WEBPACK_IMPORTED_MODULE_4__.getContainer)(this.j, dragAndDropElement), this.draggable);
30215
30261
  }
30216
30262
  ;(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.css)(this.draggable, {
30217
- left: event.clientX,
30218
- top: event.clientY
30263
+ left: event.clientX + offset.left,
30264
+ top: event.clientY + offset.top
30219
30265
  });
30266
+ // The caret goes into the editor document, so it keeps the raw
30267
+ // (iframe-relative) coordinates.
30220
30268
  this.j.s.insertCursorAtPoint(event.clientX, event.clientY);
30221
30269
  }
30270
+ __ghostOffset() {
30271
+ const iframe = this.j.iframe;
30272
+ if (!iframe) {
30273
+ return {
30274
+ left: 0,
30275
+ top: 0
30276
+ };
30277
+ }
30278
+ const rect = iframe.getBoundingClientRect();
30279
+ return {
30280
+ left: rect.left,
30281
+ top: rect.top
30282
+ };
30283
+ }
30222
30284
  /**
30223
30285
  * Mouseup handler in any place
30224
30286
  */ onDragEnd() {
@@ -36558,10 +36620,12 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.dots = {
36558
36620
 
36559
36621
  "use strict";
36560
36622
  /* unused harmony export mobile */
36561
- /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28077);
36562
- /* harmony import */ var jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65946);
36563
- /* harmony import */ var jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2496);
36564
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3244);
36623
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23211);
36624
+ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28077);
36625
+ /* harmony import */ var jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65946);
36626
+ /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85932);
36627
+ /* harmony import */ var jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2496);
36628
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3244);
36565
36629
  /*!
36566
36630
  * Jodit Editor (https://xdsoft.net/jodit/)
36567
36631
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -36574,6 +36638,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.dots = {
36574
36638
 
36575
36639
 
36576
36640
 
36641
+
36642
+
36577
36643
  const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n';
36578
36644
  /**
36579
36645
  * Constrain a responsive breakpoint set (`buttonsMD/SM/XS`) to the buttons the
@@ -36587,13 +36653,13 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
36587
36653
  * the standard grouped mobile layout — groups, separators and `dots` — is
36588
36654
  * preserved. See #1389.
36589
36655
  */ function fitToButtons(list, editor) {
36590
- 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);
36656
+ 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);
36591
36657
  const groups = editor.getRegisteredButtonGroups();
36592
36658
  let changed = false;
36593
36659
  let hadDots = false;
36594
36660
  const flat = [];
36595
36661
  for (const item of list){
36596
- if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.isButtonGroup)(item)) {
36662
+ if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.isButtonGroup)(item)) {
36597
36663
  const members = [
36598
36664
  ...item.buttons,
36599
36665
  ...groups[item.group] ?? []
@@ -36630,17 +36696,31 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
36630
36696
  // Keep the "show all" overflow button only if some requested button is still
36631
36697
  // hidden at this breakpoint.
36632
36698
  if (hadDots) {
36633
- const shown = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.flatButtonsSet)(cleaned, editor);
36634
- if ((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.toArray)(allowed).some((button)=>!shown.has(button))) {
36699
+ const shown = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.flatButtonsSet)(cleaned, editor);
36700
+ if ((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.toArray)(allowed).some((button)=>!shown.has(button))) {
36635
36701
  cleaned.push('dots');
36636
36702
  }
36637
36703
  }
36638
36704
  return cleaned;
36639
36705
  }
36706
+ /**
36707
+ * The width that decides which breakpoint set the toolbar uses. A toolbar
36708
+ * rendered into an external container (`toolbar` set to an element or a
36709
+ * selector) lays out in that container, so its width is what matters there.
36710
+ */ function adaptiveWidth(editor) {
36711
+ const { toolbar } = editor.o;
36712
+ 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)) {
36713
+ const width = editor.toolbarContainer.offsetWidth;
36714
+ if (width) {
36715
+ return width;
36716
+ }
36717
+ }
36718
+ return (editor.container.parentElement ?? editor.container).offsetWidth;
36719
+ }
36640
36720
  /**
36641
36721
  * Rebuild toolbar in depends on editor's width
36642
36722
  */ function mobile(editor) {
36643
- let timeout = 0, store = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttons);
36723
+ let timeout = 0, store = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
36644
36724
  if (editor.o.mobileTapTimeout) {
36645
36725
  // Emulate double tap
36646
36726
  editor.e.on('touchend', (e)=>{
@@ -36657,8 +36737,8 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
36657
36737
  }
36658
36738
  editor.e.on('getDiffButtons.mobile', (toolbar)=>{
36659
36739
  if (toolbar === editor.toolbar) {
36660
- 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);
36661
- return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.toArray)(buttons).reduce((acc, item)=>{
36740
+ 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);
36741
+ return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.toArray)(buttons).reduce((acc, item)=>{
36662
36742
  if (!flatStore.has(item)) {
36663
36743
  acc.push(item);
36664
36744
  }
@@ -36671,18 +36751,21 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
36671
36751
  if (!editor.o.toolbar) {
36672
36752
  return;
36673
36753
  }
36674
- const width = (editor.container.parentElement ?? editor.container).offsetWidth;
36675
36754
  const newStore = (()=>{
36676
- if (editor.isFullSize || width >= editor.o.sizeLG) {
36677
- return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttons);
36755
+ if (editor.isFullSize) {
36756
+ return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
36757
+ }
36758
+ const width = adaptiveWidth(editor);
36759
+ if (width >= editor.o.sizeLG) {
36760
+ return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
36678
36761
  }
36679
36762
  if (width >= editor.o.sizeMD) {
36680
- return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsMD), editor);
36763
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsMD), editor);
36681
36764
  }
36682
36765
  if (width >= editor.o.sizeSM) {
36683
- return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsSM), editor);
36766
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsSM), editor);
36684
36767
  }
36685
- return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsXS), editor);
36768
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsXS), editor);
36686
36769
  })();
36687
36770
  if (newStore.toString() !== store.toString()) {
36688
36771
  store = newStore;
@@ -36692,7 +36775,7 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
36692
36775
  }).on(editor.ow, 'load resize', ()=>editor.e.fire('recalcAdaptive'));
36693
36776
  }
36694
36777
  }
36695
- jodit_core_global__WEBPACK_IMPORTED_MODULE_0__.pluginSystem.add('mobile', mobile);
36778
+ jodit_core_global__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('mobile', mobile);
36696
36779
 
36697
36780
 
36698
36781
  /***/ }),