jodit 4.12.23 → 4.12.24

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 (78) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +8 -8
  4. package/es2015/jodit.js +144 -19
  5. package/es2015/jodit.min.js +7 -7
  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 +8 -8
  13. package/es2018/jodit.min.js +7 -7
  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 +8 -8
  18. package/es2021/jodit.js +143 -19
  19. package/es2021/jodit.min.js +7 -7
  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 +7 -7
  28. package/es2021.en/jodit.js +143 -19
  29. package/es2021.en/jodit.min.js +8 -8
  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 +190 -51
  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 +30 -0
  51. package/esm/core/constants.js +1 -1
  52. package/esm/modules/image-editor/image-editor.js +5 -0
  53. package/esm/modules/uploader/helpers/send-files.js +9 -0
  54. package/esm/plugins/backspace/backspace.js +7 -3
  55. package/esm/plugins/backspace/cases/index.d.ts +19 -3
  56. package/esm/plugins/backspace/cases/index.js +18 -13
  57. package/esm/plugins/backspace/config.d.ts +15 -0
  58. package/esm/plugins/clean-html/clean-html.d.ts +8 -0
  59. package/esm/plugins/clean-html/clean-html.js +16 -0
  60. package/esm/plugins/clean-html/config.d.ts +9 -0
  61. package/esm/plugins/clean-html/config.js +1 -0
  62. package/esm/plugins/font/config.js +19 -0
  63. package/esm/plugins/link/config.d.ts +6 -0
  64. package/esm/plugins/link/config.js +1 -0
  65. package/esm/plugins/link/link.js +8 -1
  66. package/esm/plugins/link/template.js +10 -1
  67. package/esm/plugins/select-cells/select-cells.d.ts +1 -1
  68. package/esm/plugins/select-cells/select-cells.js +29 -2
  69. package/esm/types/uploader.d.ts +23 -0
  70. package/package.json +1 -1
  71. package/types/config.d.ts +30 -0
  72. package/types/plugins/backspace/cases/index.d.ts +19 -3
  73. package/types/plugins/backspace/config.d.ts +15 -0
  74. package/types/plugins/clean-html/clean-html.d.ts +8 -0
  75. package/types/plugins/clean-html/config.d.ts +9 -0
  76. package/types/plugins/link/config.d.ts +6 -0
  77. package/types/plugins/select-cells/select-cells.d.ts +1 -1
  78. package/types/types/uploader.d.ts +23 -0
package/es5/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.12.23
4
+ * Version: v4.12.24
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -2074,7 +2074,7 @@ __webpack_require__.r(__webpack_exports__);
2074
2074
  * @packageDocumentation
2075
2075
  * @module constants
2076
2076
  */
2077
- var APP_VERSION = "4.12.23";
2077
+ var APP_VERSION = "4.12.24";
2078
2078
  // prettier-ignore
2079
2079
  var ES = "es5";
2080
2080
  var IS_ES_MODERN = false;
@@ -26477,12 +26477,17 @@ var ImageEditor = /*#__PURE__*/ function(ViewComponent) {
26477
26477
  self.j.alert('The name should not be empty');
26478
26478
  return false;
26479
26479
  }
26480
+ self.j.e.fire('afterImageEditorSave', data, name);
26480
26481
  self.onSave(name, data, self.hide, function(e) {
26481
26482
  self.j.alert(e.message);
26482
26483
  });
26483
26484
  });
26484
26485
  break;
26485
26486
  case self.buttons.save:
26487
+ // Notify listeners that a crop/resize was applied,
26488
+ // passing the action box (action + box dimensions).
26489
+ // See https://github.com/xdan/jodit/issues/820
26490
+ self.j.e.fire('afterImageEditorSave', data);
26486
26491
  self.onSave(undefined, data, self.hide, function(e) {
26487
26492
  self.j.alert(e.message);
26488
26493
  });
@@ -29780,6 +29785,15 @@ function processOldBrowserDrag(self, cData, handlerSuccess, handlerError, onFina
29780
29785
  if (!fileList.length) {
29781
29786
  return Promise.reject((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.error)('Need files'));
29782
29787
  }
29788
+ // Client-side validation hook — returning `false` aborts the upload.
29789
+ // See https://github.com/xdan/jodit/issues/1329
29790
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.isFunction)(o.beforeUpload)) {
29791
+ if (o.beforeUpload.call(uploader, fileList) === false) {
29792
+ var err = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.error)('Upload canceled');
29793
+ (handlerError || o.defaultHandlerError).call(uploader, err);
29794
+ return Promise.reject(err);
29795
+ }
29796
+ }
29783
29797
  var promises = [];
29784
29798
  if (o.insertImageAsBase64URI) {
29785
29799
  readImagesWithReader(fileList, o.imagesExtensions, promises, uploader, handlerSuccess, o.defaultHandlerSuccess);
@@ -31585,16 +31599,17 @@ UiAiAssistant = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_5__.__decor
31585
31599
  /* harmony import */ var _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53429);
31586
31600
  /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25045);
31587
31601
  /* harmony import */ var _swc_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(34918);
31588
- /* harmony import */ var _swc_helpers_wrap_native_super__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(38574);
31589
- /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(81937);
31590
- /* harmony import */ var jodit_core_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(27795);
31591
- /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(28077);
31592
- /* harmony import */ var jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(91565);
31593
- /* harmony import */ var jodit_core_plugin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(91206);
31594
- /* harmony import */ var jodit_core_selection_helpers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(42259);
31595
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(33831);
31596
- /* harmony import */ var _cases_check_not_collapsed__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(89827);
31597
- /* harmony import */ var _cases__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(17523);
31602
+ /* harmony import */ var _swc_helpers_sliced_to_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50684);
31603
+ /* harmony import */ var _swc_helpers_wrap_native_super__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38574);
31604
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(81937);
31605
+ /* harmony import */ var jodit_core_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(27795);
31606
+ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(28077);
31607
+ /* harmony import */ var jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(91565);
31608
+ /* harmony import */ var jodit_core_plugin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(91206);
31609
+ /* harmony import */ var jodit_core_selection_helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(42259);
31610
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(33831);
31611
+ /* harmony import */ var _cases_check_not_collapsed__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(89827);
31612
+ /* harmony import */ var _cases__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(17523);
31598
31613
  /*!
31599
31614
  * Jodit Editor (https://xdsoft.net/jodit/)
31600
31615
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -31618,6 +31633,7 @@ UiAiAssistant = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_5__.__decor
31618
31633
 
31619
31634
 
31620
31635
 
31636
+
31621
31637
  var backspace = /*#__PURE__*/ function(Plugin) {
31622
31638
  "use strict";
31623
31639
  (0,_swc_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__._)(backspace, Plugin);
@@ -31684,25 +31700,30 @@ var backspace = /*#__PURE__*/ function(Plugin) {
31684
31700
  if (!sel.isFocused()) {
31685
31701
  sel.focus();
31686
31702
  }
31687
- if ((0,_cases_check_not_collapsed__WEBPACK_IMPORTED_MODULE_13__.checkNotCollapsed)(jodit)) {
31703
+ if ((0,_cases_check_not_collapsed__WEBPACK_IMPORTED_MODULE_14__.checkNotCollapsed)(jodit)) {
31688
31704
  jodit.e.fire('backSpaceAfterDelete', backspace);
31689
31705
  return false;
31690
31706
  }
31691
31707
  var range = sel.range;
31692
- var fakeNode = jodit.createInside.text(jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.INVISIBLE_SPACE);
31708
+ var fakeNode = jodit.createInside.text(jodit_core_constants__WEBPACK_IMPORTED_MODULE_7__.INVISIBLE_SPACE);
31693
31709
  try {
31694
- jodit_core_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.safeInsertNode(range, fakeNode);
31695
- if (!jodit_core_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.isOrContains(jodit.editor, fakeNode)) {
31710
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_8__.Dom.safeInsertNode(range, fakeNode);
31711
+ if (!jodit_core_dom__WEBPACK_IMPORTED_MODULE_8__.Dom.isOrContains(jodit.editor, fakeNode)) {
31696
31712
  return;
31697
31713
  }
31698
31714
  if (jodit.e.fire('backSpaceBeforeCases', backspace, fakeNode)) {
31699
31715
  return false;
31700
31716
  }
31701
- (0,jodit_core_selection_helpers__WEBPACK_IMPORTED_MODULE_11__.moveNodeInsideStart)(jodit, fakeNode, backspace);
31702
- if (_cases__WEBPACK_IMPORTED_MODULE_14__.cases.some(function(func) {
31703
- if ((0,jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_9__.isFunction)(func) && func(jodit, fakeNode, backspace, mode)) {
31704
- if (!jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.IS_PROD) {
31705
- console.info('Remove case:', func.name);
31717
+ (0,jodit_core_selection_helpers__WEBPACK_IMPORTED_MODULE_12__.moveNodeInsideStart)(jodit, fakeNode, backspace);
31718
+ var disabled = jodit.o.delete.disableCases;
31719
+ if (_cases__WEBPACK_IMPORTED_MODULE_15__.casesMap.some(function(param) {
31720
+ var _param = (0,_swc_helpers_sliced_to_array__WEBPACK_IMPORTED_MODULE_5__._)(param, 2), key = _param[0], func = _param[1];
31721
+ if (disabled && disabled.has(key)) {
31722
+ return;
31723
+ }
31724
+ if ((0,jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_10__.isFunction)(func) && func(jodit, fakeNode, backspace, mode)) {
31725
+ if (!jodit_core_constants__WEBPACK_IMPORTED_MODULE_7__.IS_PROD) {
31726
+ console.info('Remove case:', key);
31706
31727
  }
31707
31728
  return true;
31708
31729
  }
@@ -31710,7 +31731,7 @@ var backspace = /*#__PURE__*/ function(Plugin) {
31710
31731
  return false;
31711
31732
  }
31712
31733
  } catch (e) {
31713
- if (!jodit_core_constants__WEBPACK_IMPORTED_MODULE_6__.IS_PROD) {
31734
+ if (!jodit_core_constants__WEBPACK_IMPORTED_MODULE_7__.IS_PROD) {
31714
31735
  console.error(e);
31715
31736
  }
31716
31737
  throw e;
@@ -31729,7 +31750,7 @@ var backspace = /*#__PURE__*/ function(Plugin) {
31729
31750
  var range = this.j.s.range;
31730
31751
  if (range.startContainer === fakeNode) {
31731
31752
  if (fakeNode.previousSibling) {
31732
- if (jodit_core_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.isText(fakeNode.previousSibling)) {
31753
+ if (jodit_core_dom__WEBPACK_IMPORTED_MODULE_8__.Dom.isText(fakeNode.previousSibling)) {
31733
31754
  var _ref;
31734
31755
  var _fakeNode_previousSibling_nodeValue;
31735
31756
  range.setStart(fakeNode.previousSibling, (_ref = (_fakeNode_previousSibling_nodeValue = fakeNode.previousSibling.nodeValue) === null || _fakeNode_previousSibling_nodeValue === void 0 ? void 0 : _fakeNode_previousSibling_nodeValue.length) !== null && _ref !== void 0 ? _ref : 0);
@@ -31737,7 +31758,7 @@ var backspace = /*#__PURE__*/ function(Plugin) {
31737
31758
  range.setStartAfter(fakeNode.previousSibling);
31738
31759
  }
31739
31760
  } else if (fakeNode.nextSibling) {
31740
- if (jodit_core_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.isText(fakeNode.nextSibling)) {
31761
+ if (jodit_core_dom__WEBPACK_IMPORTED_MODULE_8__.Dom.isText(fakeNode.nextSibling)) {
31741
31762
  range.setStart(fakeNode.nextSibling, 0);
31742
31763
  } else {
31743
31764
  range.setStartBefore(fakeNode.nextSibling);
@@ -31746,16 +31767,16 @@ var backspace = /*#__PURE__*/ function(Plugin) {
31746
31767
  range.collapse(true);
31747
31768
  this.j.s.selectRange(range);
31748
31769
  }
31749
- jodit_core_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.safeRemove(fakeNode);
31770
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_8__.Dom.safeRemove(fakeNode);
31750
31771
  }
31751
31772
  }
31752
31773
  ]);
31753
31774
  return backspace;
31754
- }((0,_swc_helpers_wrap_native_super__WEBPACK_IMPORTED_MODULE_5__._)(jodit_core_plugin__WEBPACK_IMPORTED_MODULE_10__.Plugin));
31775
+ }((0,_swc_helpers_wrap_native_super__WEBPACK_IMPORTED_MODULE_6__._)(jodit_core_plugin__WEBPACK_IMPORTED_MODULE_11__.Plugin));
31755
31776
  (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(backspace, "requires", [
31756
31777
  'hotkeys'
31757
31778
  ]);
31758
- jodit_core_global__WEBPACK_IMPORTED_MODULE_8__.pluginSystem.add('backspace', backspace);
31779
+ jodit_core_global__WEBPACK_IMPORTED_MODULE_9__.pluginSystem.add('backspace', backspace);
31759
31780
 
31760
31781
 
31761
31782
  /***/ }),
@@ -32406,17 +32427,19 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
32406
32427
 
32407
32428
  "use strict";
32408
32429
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32409
- /* harmony export */ cases: function() { return /* binding */ cases; }
32430
+ /* harmony export */ casesMap: function() { return /* binding */ casesMap; }
32410
32431
  /* harmony export */ });
32411
- /* harmony import */ var _check_join_neighbors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26106);
32412
- /* harmony import */ var _check_join_two_lists__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80951);
32413
- /* harmony import */ var _check_remove_char__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58881);
32414
- /* harmony import */ var _check_remove_content_not_editable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68709);
32415
- /* harmony import */ var _check_remove_empty_neighbor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5771);
32416
- /* harmony import */ var _check_remove_empty_parent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2409);
32417
- /* harmony import */ var _check_remove_unbreakable_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(93890);
32418
- /* harmony import */ var _check_table_cell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12443);
32419
- /* harmony import */ var _check_unwrap_first_list_item__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(10157);
32432
+ /* unused harmony export cases */
32433
+ /* harmony import */ var _swc_helpers_sliced_to_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50684);
32434
+ /* harmony import */ var _check_join_neighbors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26106);
32435
+ /* harmony import */ var _check_join_two_lists__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80951);
32436
+ /* harmony import */ var _check_remove_char__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58881);
32437
+ /* harmony import */ var _check_remove_content_not_editable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(68709);
32438
+ /* harmony import */ var _check_remove_empty_neighbor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5771);
32439
+ /* harmony import */ var _check_remove_empty_parent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2409);
32440
+ /* harmony import */ var _check_remove_unbreakable_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(93890);
32441
+ /* harmony import */ var _check_table_cell__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12443);
32442
+ /* harmony import */ var _check_unwrap_first_list_item__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10157);
32420
32443
  /*!
32421
32444
  * Jodit Editor (https://xdsoft.net/jodit/)
32422
32445
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -32432,19 +32455,57 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
32432
32455
 
32433
32456
 
32434
32457
 
32458
+
32435
32459
  /**
32460
+ * Ordered delete/backspace cases with stable keys. The first one returning
32461
+ * `true` wins. The keys are stable across minified builds (function names are
32462
+ * mangled by terser) so they can be referenced by `delete.disableCases`.
32436
32463
  * @private
32437
- */ var cases = [
32438
- _check_remove_unbreakable_element__WEBPACK_IMPORTED_MODULE_6__.checkRemoveUnbreakableElement,
32439
- _check_remove_content_not_editable__WEBPACK_IMPORTED_MODULE_3__.checkRemoveContentNotEditable,
32440
- _check_remove_char__WEBPACK_IMPORTED_MODULE_2__.checkRemoveChar,
32441
- _check_table_cell__WEBPACK_IMPORTED_MODULE_7__.checkTableCell,
32442
- _check_remove_empty_parent__WEBPACK_IMPORTED_MODULE_5__.checkRemoveEmptyParent,
32443
- _check_remove_empty_neighbor__WEBPACK_IMPORTED_MODULE_4__.checkRemoveEmptyNeighbor,
32444
- _check_join_two_lists__WEBPACK_IMPORTED_MODULE_1__.checkJoinTwoLists,
32445
- _check_join_neighbors__WEBPACK_IMPORTED_MODULE_0__.checkJoinNeighbors,
32446
- _check_unwrap_first_list_item__WEBPACK_IMPORTED_MODULE_8__.checkUnwrapFirstListItem
32464
+ */ var casesMap = [
32465
+ [
32466
+ 'remove-unbreakable',
32467
+ _check_remove_unbreakable_element__WEBPACK_IMPORTED_MODULE_7__.checkRemoveUnbreakableElement
32468
+ ],
32469
+ [
32470
+ 'remove-not-editable',
32471
+ _check_remove_content_not_editable__WEBPACK_IMPORTED_MODULE_4__.checkRemoveContentNotEditable
32472
+ ],
32473
+ [
32474
+ 'remove-char',
32475
+ _check_remove_char__WEBPACK_IMPORTED_MODULE_3__.checkRemoveChar
32476
+ ],
32477
+ [
32478
+ 'table-cell',
32479
+ _check_table_cell__WEBPACK_IMPORTED_MODULE_8__.checkTableCell
32480
+ ],
32481
+ [
32482
+ 'remove-empty-parent',
32483
+ _check_remove_empty_parent__WEBPACK_IMPORTED_MODULE_6__.checkRemoveEmptyParent
32484
+ ],
32485
+ [
32486
+ 'remove-empty-neighbor',
32487
+ _check_remove_empty_neighbor__WEBPACK_IMPORTED_MODULE_5__.checkRemoveEmptyNeighbor
32488
+ ],
32489
+ [
32490
+ 'join-two-lists',
32491
+ _check_join_two_lists__WEBPACK_IMPORTED_MODULE_2__.checkJoinTwoLists
32492
+ ],
32493
+ [
32494
+ 'join-neighbors',
32495
+ _check_join_neighbors__WEBPACK_IMPORTED_MODULE_1__.checkJoinNeighbors
32496
+ ],
32497
+ [
32498
+ 'unwrap-first-list-item',
32499
+ _check_unwrap_first_list_item__WEBPACK_IMPORTED_MODULE_9__.checkUnwrapFirstListItem
32500
+ ]
32447
32501
  ];
32502
+ /**
32503
+ * @private
32504
+ * @deprecated Use `casesMap` to also get the stable case keys.
32505
+ */ var cases = casesMap.map(function(param) {
32506
+ var _param = (0,_swc_helpers_sliced_to_array__WEBPACK_IMPORTED_MODULE_0__._)(param, 2), fn = _param[1];
32507
+ return fn;
32508
+ });
32448
32509
 
32449
32510
 
32450
32511
  /***/ }),
@@ -33004,6 +33065,21 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_10__.Icon.set('class-span', (_class_
33004
33065
  return false;
33005
33066
  }
33006
33067
  },
33068
+ {
33069
+ key: "onAfterGetValueFromEditor",
33070
+ value: /**
33071
+ * Collapse a value that holds only a single empty block (e.g.
33072
+ * `<p><br></p>` left after deleting all content) to an empty string —
33073
+ * opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
33074
+ */ function onAfterGetValueFromEditor(data) {
33075
+ if (!this.j.o.cleanHTML.collapseEmptyValueToEmptyString) {
33076
+ return;
33077
+ }
33078
+ if (/^<([a-z][a-z0-9]*)\b[^>]*>(?:<br\/?>)?<\/\1>$/i.test(data.value.trim())) {
33079
+ data.value = '';
33080
+ }
33081
+ }
33082
+ },
33007
33083
  {
33008
33084
  key: "onSafeHTML",
33009
33085
  value: function onSafeHTML(sandBox) {
@@ -33041,6 +33117,9 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_10__.Icon.set('class-span', (_class_
33041
33117
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_7__.__decorate)([
33042
33118
  (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_8__.watch)(':beforeSetNativeEditorValue')
33043
33119
  ], cleanHtml.prototype, "onBeforeSetNativeEditorValue", null);
33120
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_7__.__decorate)([
33121
+ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_8__.watch)(':afterGetValueFromEditor')
33122
+ ], cleanHtml.prototype, "onAfterGetValueFromEditor", null);
33044
33123
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_7__.__decorate)([
33045
33124
  (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_8__.watch)(':safeHTML')
33046
33125
  ], cleanHtml.prototype, "onSafeHTML", null);
@@ -33070,6 +33149,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
33070
33149
  timeout: 300,
33071
33150
  removeEmptyElements: true,
33072
33151
  fillEmptyParagraph: true,
33152
+ collapseEmptyValueToEmptyString: false,
33073
33153
  replaceNBSP: true,
33074
33154
  replaceOldTags: {
33075
33155
  i: 'em',
@@ -36821,6 +36901,25 @@ jodit_config__WEBPACK_IMPORTED_MODULE_7__.Config.prototype.controls.font = (0,_s
36821
36901
  return v.toLowerCase().replace(/['"]+/g, '').replace(/[^a-z0-9-]+/g, ',');
36822
36902
  }
36823
36903
  },
36904
+ // When no font is explicitly set, the computed font-family equals the
36905
+ // editor's own default (e.g. `-apple-system, …`). Return '' so the
36906
+ // button shows the `Default` list entry instead of that raw stack.
36907
+ // See #1370
36908
+ value: function value(editor) {
36909
+ var current = editor.s.current();
36910
+ if (!current) {
36911
+ return;
36912
+ }
36913
+ var box = jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.closest(current, jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isElement, editor.editor);
36914
+ if (!box) {
36915
+ return;
36916
+ }
36917
+ var value = (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_5__.css)(box, 'font-family').toString();
36918
+ if (value === (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_5__.css)(editor.editor, 'font-family').toString()) {
36919
+ return '';
36920
+ }
36921
+ return value;
36922
+ },
36824
36923
  tooltip: 'Font family'
36825
36924
  });
36826
36925
 
@@ -42010,6 +42109,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.link = {
42010
42109
  noFollowCheckbox: true,
42011
42110
  openInNewTabCheckbox: true,
42012
42111
  openInNewTabCheckboxDefaultChecked: false,
42112
+ ariaLabelInput: false,
42013
42113
  modeClassName: 'input',
42014
42114
  selectMultipleClassName: true,
42015
42115
  preventReadOnlyNavigation: true,
@@ -42203,7 +42303,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
42203
42303
  var currentElement = current;
42204
42304
  var isImageContent = jodit_core_dom__WEBPACK_IMPORTED_MODULE_8__.Dom.isImage(currentElement);
42205
42305
  var content_input = elements.content_input;
42206
- var className_input = elements.className_input, className_select = elements.className_select;
42306
+ var className_input = elements.className_input, className_select = elements.className_select, aria_label_input = elements.aria_label_input;
42207
42307
  if (!content_input) {
42208
42308
  content_input = jodit.c.element('input', {
42209
42309
  type: 'hidden',
@@ -42228,6 +42328,9 @@ jodit_config__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
42228
42328
  if (!isImageContent && current) {
42229
42329
  content_input.value = getSelectionText();
42230
42330
  }
42331
+ if (aria_label_input) {
42332
+ aria_label_input.value = _$link ? (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_10__.attr)(_$link, 'aria-label') || '' : '';
42333
+ }
42231
42334
  if (_$link) {
42232
42335
  url_input.value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_10__.attr)(_$link, 'href') || '';
42233
42336
  if (modeClassName) {
@@ -42317,6 +42420,10 @@ jodit_config__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
42317
42420
  }
42318
42421
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_10__.attr)(a, 'rel', relParts.length ? relParts.join(' ') : null);
42319
42422
  }
42423
+ if (aria_label_input) {
42424
+ var ariaLabel = aria_label_input.value.trim();
42425
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_10__.attr)(a, 'aria-label', ariaLabel || null);
42426
+ }
42320
42427
  jodit.e.fire('applyLink', jodit, a, form);
42321
42428
  });
42322
42429
  jodit.synchronizeValues();
@@ -42464,7 +42571,7 @@ function writeImage(a, content_input, textWasChanged, url_input) {
42464
42571
  */
42465
42572
 
42466
42573
  var formTemplate = function formTemplate(editor) {
42467
- var _editor_o_link = editor.o.link, openInNewTabCheckbox = _editor_o_link.openInNewTabCheckbox, noFollowCheckbox = _editor_o_link.noFollowCheckbox, modeClassName = _editor_o_link.modeClassName, selectSizeClassName = _editor_o_link.selectSizeClassName, selectMultipleClassName = _editor_o_link.selectMultipleClassName, selectOptionsClassName = _editor_o_link.selectOptionsClassName;
42574
+ var _editor_o_link = editor.o.link, openInNewTabCheckbox = _editor_o_link.openInNewTabCheckbox, noFollowCheckbox = _editor_o_link.noFollowCheckbox, ariaLabelInput = _editor_o_link.ariaLabelInput, modeClassName = _editor_o_link.modeClassName, selectSizeClassName = _editor_o_link.selectSizeClassName, selectMultipleClassName = _editor_o_link.selectMultipleClassName, selectOptionsClassName = _editor_o_link.selectOptionsClassName;
42468
42575
  return new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_1__.UIForm(editor, [
42469
42576
  new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
42470
42577
  new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
@@ -42476,6 +42583,13 @@ var formTemplate = function formTemplate(editor) {
42476
42583
  required: true
42477
42584
  })
42478
42585
  ]),
42586
+ ariaLabelInput ? new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
42587
+ new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
42588
+ name: 'ariaLabel',
42589
+ ref: 'aria_label_input',
42590
+ label: 'Aria label'
42591
+ })
42592
+ ]) : null,
42479
42593
  new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
42480
42594
  new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
42481
42595
  name: 'content',
@@ -47003,15 +47117,40 @@ var selectCells = /*#__PURE__*/ function(Plugin) {
47003
47117
  key: "onStartSelection",
47004
47118
  value: /**
47005
47119
  * Mouse click inside the table
47006
- */ function onStartSelection(cell) {
47120
+ */ function onStartSelection(cell, event) {
47121
+ var _this = this;
47007
47122
  if (this.j.o.readonly) {
47008
47123
  return;
47009
47124
  }
47125
+ var table = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_10__.Dom.closest(cell, 'table', this.j.editor);
47126
+ // Ctrl/Cmd + click toggles a single cell into the existing selection
47127
+ // instead of resetting it — non-contiguous multi-cell selection.
47128
+ // See https://github.com/xdan/jodit/issues/1163
47129
+ if (((event === null || event === void 0 ? void 0 : event.ctrlKey) || (event === null || event === void 0 ? void 0 : event.metaKey)) && cell !== this.j.editor && table && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_10__.Dom.isCell(cell)) {
47130
+ var _this_j_s_sel;
47131
+ if (this.__tableModule.getAllSelectedCells().includes(cell)) {
47132
+ this.__tableModule.removeSelection(cell);
47133
+ } else {
47134
+ if (!cell.firstChild) {
47135
+ cell.appendChild(this.j.createInside.element('br'));
47136
+ }
47137
+ this.__tableModule.addSelection(cell);
47138
+ }
47139
+ this.__selectedCell = cell;
47140
+ (_this_j_s_sel = this.j.s.sel) === null || _this_j_s_sel === void 0 ? void 0 : _this_j_s_sel.removeAllRanges();
47141
+ if (this.__tableModule.getAllSelectedCells().length) {
47142
+ this.j.e.fire('showPopup', table, function() {
47143
+ return (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_12__.position)(cell, _this.j);
47144
+ }, 'cells');
47145
+ } else {
47146
+ this.j.e.fire('hidePopup', 'cells');
47147
+ }
47148
+ return false;
47149
+ }
47010
47150
  this.unselectCells();
47011
47151
  if (cell === this.j.editor) {
47012
47152
  return;
47013
47153
  }
47014
- var table = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_10__.Dom.closest(cell, 'table', this.j.editor);
47015
47154
  if (!cell || !table) {
47016
47155
  return;
47017
47156
  }
package/es5/jodit.min.css CHANGED
@@ -1,14 +1,14 @@
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.12.23
4
+ * Version: v4.12.24
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
8
8
  /*!
9
9
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
10
10
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
11
- * Version: v4.12.23
11
+ * Version: v4.12.24
12
12
  * Url: https://xdsoft.net/jodit/
13
13
  * License(s): MIT
14
14
  */