jodit 4.13.8 → 4.13.9

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 (56) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +3 -3
  4. package/es2015/jodit.js +69 -5
  5. package/es2015/jodit.min.js +3 -3
  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 +3 -3
  13. package/es2018/jodit.min.js +3 -3
  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 +4 -3
  18. package/es2021/jodit.js +68 -5
  19. package/es2021/jodit.min.js +4 -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 +4 -3
  28. package/es2021.en/jodit.js +68 -5
  29. package/es2021.en/jodit.min.js +4 -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 +118 -14
  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 +10 -0
  51. package/esm/core/constants.js +1 -1
  52. package/esm/plugins/mobile/config.d.ts +10 -0
  53. package/esm/plugins/mobile/mobile.js +72 -4
  54. package/package.json +1 -1
  55. package/types/config.d.ts +10 -0
  56. package/types/plugins/mobile/config.d.ts +10 -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.13.8
4
+ * Version: v4.13.9
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1849,7 +1849,7 @@ __webpack_require__.r(__webpack_exports__);
1849
1849
  * ```
1850
1850
  * @packageDocumentation
1851
1851
  * @module constants
1852
- */ const APP_VERSION = "4.13.8";
1852
+ */ const APP_VERSION = "4.13.9";
1853
1853
  // prettier-ignore
1854
1854
  const ES = "es2015";
1855
1855
  const IS_ES_MODERN = true;
@@ -36926,6 +36926,70 @@ jodit_config__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.dots = {
36926
36926
 
36927
36927
 
36928
36928
 
36929
+ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n';
36930
+ /**
36931
+ * Constrain a responsive breakpoint set (`buttonsMD/SM/XS`) to the buttons the
36932
+ * user actually asked for via `buttons`. Those breakpoint defaults are
36933
+ * group-based supersets, so a custom (smaller) `buttons` list would otherwise
36934
+ * see *extra* buttons appear on resize when the toolbar switched to a breakpoint
36935
+ * set — resizing must only ever drop buttons, never add ones outside `buttons`.
36936
+ *
36937
+ * When the breakpoint set introduces nothing outside `buttons` (the default
36938
+ * case, where `buttons` is the full superset), the list is returned untouched so
36939
+ * the standard grouped mobile layout — groups, separators and `dots` — is
36940
+ * preserved. See #1389.
36941
+ */ function fitToButtons(list, editor) {
36942
+ 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);
36943
+ const groups = editor.getRegisteredButtonGroups();
36944
+ let changed = false;
36945
+ let hadDots = false;
36946
+ const flat = [];
36947
+ for (const item of list){
36948
+ if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.isButtonGroup)(item)) {
36949
+ var _groups_item_group;
36950
+ const members = [
36951
+ ...item.buttons,
36952
+ ...(_groups_item_group = groups[item.group]) !== null && _groups_item_group !== void 0 ? _groups_item_group : []
36953
+ ];
36954
+ const kept = members.filter((button)=>allowed.has(button));
36955
+ if (kept.length !== members.length) {
36956
+ changed = true;
36957
+ }
36958
+ flat.push(...kept);
36959
+ } else if (isButtonSeparator(item)) {
36960
+ flat.push(item);
36961
+ } else if (item === 'dots') {
36962
+ hadDots = true;
36963
+ } else if (allowed.has(item)) {
36964
+ flat.push(item);
36965
+ } else {
36966
+ changed = true;
36967
+ }
36968
+ }
36969
+ if (!changed) {
36970
+ return list;
36971
+ }
36972
+ // Drop separators left dangling once the buttons around them were removed.
36973
+ const cleaned = [];
36974
+ for (const item of flat){
36975
+ if (isButtonSeparator(item) && (cleaned.length === 0 || isButtonSeparator(cleaned[cleaned.length - 1]))) {
36976
+ continue;
36977
+ }
36978
+ cleaned.push(item);
36979
+ }
36980
+ while(cleaned.length && isButtonSeparator(cleaned[cleaned.length - 1])){
36981
+ cleaned.pop();
36982
+ }
36983
+ // Keep the "show all" overflow button only if some requested button is still
36984
+ // hidden at this breakpoint.
36985
+ if (hadDots) {
36986
+ const shown = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_2__.flatButtonsSet)(cleaned, editor);
36987
+ if ((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.toArray)(allowed).some((button)=>!shown.has(button))) {
36988
+ cleaned.push('dots');
36989
+ }
36990
+ }
36991
+ return cleaned;
36992
+ }
36929
36993
  /**
36930
36994
  * Rebuild toolbar in depends on editor's width
36931
36995
  */ function mobile(editor) {
@@ -36967,12 +37031,12 @@ jodit_config__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.dots = {
36967
37031
  return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttons);
36968
37032
  }
36969
37033
  if (width >= editor.o.sizeMD) {
36970
- return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsMD);
37034
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsMD), editor);
36971
37035
  }
36972
37036
  if (width >= editor.o.sizeSM) {
36973
- return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsSM);
37037
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsSM), editor);
36974
37038
  }
36975
- return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsXS);
37039
+ return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.splitArray)(editor.o.buttonsXS), editor);
36976
37040
  })();
36977
37041
  if (newStore.toString() !== store.toString()) {
36978
37042
  var _editor_toolbar;