jodit 4.2.14 → 4.2.15

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 (79) hide show
  1. package/es2015/jodit.css +115 -115
  2. package/es2015/jodit.fat.min.css +1 -1
  3. package/es2015/jodit.fat.min.js +2 -2
  4. package/es2015/jodit.js +525 -444
  5. package/es2015/jodit.min.css +1 -1
  6. package/es2015/jodit.min.js +2 -2
  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.css +115 -115
  13. package/es2018/jodit.fat.min.css +1 -1
  14. package/es2018/jodit.fat.min.js +2 -2
  15. package/es2018/jodit.js +525 -444
  16. package/es2018/jodit.min.css +1 -1
  17. package/es2018/jodit.min.js +2 -2
  18. package/es2018/plugins/debug/debug.js +1 -1
  19. package/es2018/plugins/debug/debug.min.js +1 -1
  20. package/es2018/plugins/speech-recognize/speech-recognize.css +1 -1
  21. package/es2018/plugins/speech-recognize/speech-recognize.js +1 -1
  22. package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
  23. package/es2021/jodit.css +115 -115
  24. package/es2021/jodit.fat.min.css +1 -1
  25. package/es2021/jodit.fat.min.js +2 -2
  26. package/es2021/jodit.js +519 -440
  27. package/es2021/jodit.min.css +1 -1
  28. package/es2021/jodit.min.js +2 -2
  29. package/es2021/plugins/debug/debug.js +1 -1
  30. package/es2021/plugins/debug/debug.min.js +1 -1
  31. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  32. package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
  33. package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
  34. package/es2021.en/jodit.css +115 -115
  35. package/es2021.en/jodit.fat.min.css +1 -1
  36. package/es2021.en/jodit.fat.min.js +2 -2
  37. package/es2021.en/jodit.js +519 -440
  38. package/es2021.en/jodit.min.css +1 -1
  39. package/es2021.en/jodit.min.js +2 -2
  40. package/es2021.en/plugins/debug/debug.js +1 -1
  41. package/es2021.en/plugins/debug/debug.min.js +1 -1
  42. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  43. package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
  44. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
  45. package/es5/jodit.css +129 -129
  46. package/es5/jodit.fat.min.css +1 -1
  47. package/es5/jodit.fat.min.js +2 -2
  48. package/es5/jodit.js +542 -460
  49. package/es5/jodit.min.css +3 -3
  50. package/es5/jodit.min.js +2 -2
  51. package/es5/plugins/debug/debug.js +1 -1
  52. package/es5/plugins/debug/debug.min.js +1 -1
  53. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  54. package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
  55. package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
  56. package/esm/core/constants.js +1 -1
  57. package/esm/core/selection/helpers/index.d.ts +9 -3
  58. package/esm/core/selection/helpers/index.js +48 -0
  59. package/esm/core/selection/selection.d.ts +6 -1
  60. package/esm/core/selection/selection.js +95 -117
  61. package/esm/index.d.ts +6 -1
  62. package/esm/index.js +3 -2
  63. package/esm/modules/table/table.d.ts +3 -1
  64. package/esm/modules/table/table.js +38 -33
  65. package/esm/modules/uploader/helpers/send-files.js +33 -29
  66. package/esm/plugins/backspace/cases/check-remove-char.js +65 -55
  67. package/esm/plugins/drag-and-drop/drag-and-drop.d.ts +2 -0
  68. package/esm/plugins/drag-and-drop/drag-and-drop.js +43 -36
  69. package/esm/plugins/link/link.js +71 -64
  70. package/esm/plugins/search/helpers/highlight-text-ranges.d.ts +0 -4
  71. package/esm/plugins/search/helpers/highlight-text-ranges.js +58 -49
  72. package/esm/plugins/table-keyboard-navigation/table-keyboard-navigation.js +35 -29
  73. package/package.json +1 -1
  74. package/types/core/selection/helpers/index.d.ts +9 -3
  75. package/types/core/selection/selection.d.ts +6 -1
  76. package/types/index.d.ts +6 -1
  77. package/types/modules/table/table.d.ts +3 -1
  78. package/types/plugins/drag-and-drop/drag-and-drop.d.ts +2 -0
  79. package/types/plugins/search/helpers/highlight-text-ranges.d.ts +0 -4
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.2.14
4
+ * Version: v4.2.15
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -3127,7 +3127,7 @@ __webpack_require__.r(__webpack_exports__);
3127
3127
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
3128
3128
  */
3129
3129
 
3130
- var APP_VERSION = "4.2.14";
3130
+ var APP_VERSION = "4.2.15";
3131
3131
  // prettier-ignore
3132
3132
  var ES = "es5";
3133
3133
  var IS_ES_MODERN = false;
@@ -11582,10 +11582,14 @@ var Response = /** @class */ (function () {
11582
11582
 
11583
11583
  "use strict";
11584
11584
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11585
- /* harmony export */ W: function() { return /* reexport safe */ _move_node_inside_start__WEBPACK_IMPORTED_MODULE_0__.W; }
11585
+ /* harmony export */ Qe: function() { return /* binding */ cursorInTheEdgeOfString; },
11586
+ /* harmony export */ W8: function() { return /* reexport safe */ _move_node_inside_start__WEBPACK_IMPORTED_MODULE_2__.W; },
11587
+ /* harmony export */ dY: function() { return /* binding */ findCorrectCurrentNode; }
11586
11588
  /* harmony export */ });
11587
- /* harmony import */ var _move_node_inside_start__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5298);
11588
- /* harmony import */ var _move_the_node_along_the_edge_outward__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83541);
11589
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
11590
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55186);
11591
+ /* harmony import */ var _move_node_inside_start__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5298);
11592
+ /* harmony import */ var _move_the_node_along_the_edge_outward__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83541);
11589
11593
  /*!
11590
11594
  * Jodit Editor (https://xdsoft.net/jodit/)
11591
11595
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -11598,6 +11602,55 @@ var Response = /** @class */ (function () {
11598
11602
 
11599
11603
 
11600
11604
 
11605
+ /**
11606
+ * Check if the cursor is at the edge of the string
11607
+ * @private
11608
+ */
11609
+ function cursorInTheEdgeOfString(container, offset, start, end) {
11610
+ var _a;
11611
+ var text = ((_a = container.nodeValue) === null || _a === void 0 ? void 0 : _a.length) ? container.nodeValue : '';
11612
+ if (end && text.replace((0,jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP_END)(), '').length > offset) {
11613
+ return true;
11614
+ }
11615
+ var inv = (0,jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP_START)().exec(text);
11616
+ return start && ((inv && inv[0].length < offset) || (!inv && offset > 0));
11617
+ }
11618
+ function findCorrectCurrentNode(node, range, rightMode, isCollapsed, checkChild, child) {
11619
+ node = range.startContainer.childNodes[range.startOffset];
11620
+ if (!node) {
11621
+ node = range.startContainer.childNodes[range.startOffset - 1];
11622
+ rightMode = true;
11623
+ }
11624
+ if (node && isCollapsed && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(node)) {
11625
+ // test Current method - Cursor in the left of some SPAN
11626
+ if (!rightMode && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(node.previousSibling)) {
11627
+ node = node.previousSibling;
11628
+ }
11629
+ else if (checkChild) {
11630
+ var current = child(node);
11631
+ while (current) {
11632
+ if (current && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(current)) {
11633
+ node = current;
11634
+ break;
11635
+ }
11636
+ current = child(current);
11637
+ }
11638
+ }
11639
+ }
11640
+ if (node && !isCollapsed && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(node)) {
11641
+ var leftChild = node, rightChild = node;
11642
+ do {
11643
+ leftChild = leftChild.firstChild;
11644
+ rightChild = rightChild.lastChild;
11645
+ } while (leftChild && rightChild && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(leftChild));
11646
+ if (leftChild === rightChild && leftChild && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(leftChild)) {
11647
+ node = leftChild;
11648
+ }
11649
+ }
11650
+ return { node: node, rightMode: rightMode };
11651
+ }
11652
+
11653
+
11601
11654
  /***/ }),
11602
11655
 
11603
11656
  /***/ 5298:
@@ -11718,7 +11771,7 @@ function moveTheNodeAlongTheEdgeOutward(node, start, root) {
11718
11771
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11719
11772
  /* harmony export */ L: function() { return /* binding */ Selection; }
11720
11773
  /* harmony export */ });
11721
- /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(31635);
11774
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31635);
11722
11775
  /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
11723
11776
  /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22664);
11724
11777
  /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55186);
@@ -11728,6 +11781,7 @@ function moveTheNodeAlongTheEdgeOutward(node, start, root) {
11728
11781
  /* harmony import */ var jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_5__);
11729
11782
  /* harmony import */ var jodit_core_selection_helpers_move_the_node_along_the_edge_outward__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83541);
11730
11783
  /* harmony import */ var _style_commit_style__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8757);
11784
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(46602);
11731
11785
  /*!
11732
11786
  * Jodit Editor (https://xdsoft.net/jodit/)
11733
11787
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -11744,6 +11798,7 @@ function moveTheNodeAlongTheEdgeOutward(node, start, root) {
11744
11798
 
11745
11799
 
11746
11800
 
11801
+
11747
11802
  var Selection = /** @class */ (function () {
11748
11803
  function Selection(jodit) {
11749
11804
  var _this = this;
@@ -12035,7 +12090,7 @@ var Selection = /** @class */ (function () {
12035
12090
  if (!nodes.length) {
12036
12091
  return;
12037
12092
  }
12038
- var _e = (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__read */ .zs)(nodes, 2), fakeLeft = _e[0], fakeRight = _e[1];
12093
+ var _e = (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__read */ .zs)(nodes, 2), fakeLeft = _e[0], fakeRight = _e[1];
12039
12094
  var range = this.createRange();
12040
12095
  range.setStartAfter(fakeLeft);
12041
12096
  if (fakeRight) {
@@ -12174,65 +12229,37 @@ var Selection = /** @class */ (function () {
12174
12229
  */
12175
12230
  Selection.prototype.current = function (checkChild) {
12176
12231
  if (checkChild === void 0) { checkChild = true; }
12177
- if (this.j.getRealMode() === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.MODE_WYSIWYG) {
12178
- var sel = this.sel;
12179
- if (!sel || sel.rangeCount === 0) {
12180
- return null;
12181
- }
12182
- var range = sel.getRangeAt(0);
12183
- var node = range.startContainer, rightMode_1 = false;
12184
- var child = function (nd) {
12185
- return rightMode_1 ? nd.lastChild : nd.firstChild;
12186
- };
12187
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isTag(node, 'br') && sel.isCollapsed) {
12188
- return node;
12189
- }
12190
- if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(node)) {
12191
- node = range.startContainer.childNodes[range.startOffset];
12192
- if (!node) {
12193
- node =
12194
- range.startContainer.childNodes[range.startOffset - 1];
12195
- rightMode_1 = true;
12196
- }
12197
- if (node && sel.isCollapsed && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(node)) {
12198
- // test Current method - Cursor in the left of some SPAN
12199
- if (!rightMode_1 && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(node.previousSibling)) {
12200
- node = node.previousSibling;
12201
- }
12202
- else if (checkChild) {
12203
- var current = child(node);
12204
- while (current) {
12205
- if (current && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(current)) {
12206
- node = current;
12207
- break;
12208
- }
12209
- current = child(current);
12210
- }
12211
- }
12212
- }
12213
- if (node && !sel.isCollapsed && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(node)) {
12214
- var leftChild = node, rightChild = node;
12215
- do {
12216
- leftChild = leftChild.firstChild;
12217
- rightChild = rightChild.lastChild;
12218
- } while (leftChild && rightChild && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(leftChild));
12219
- if (leftChild === rightChild &&
12220
- leftChild &&
12221
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(leftChild)) {
12222
- node = leftChild;
12223
- }
12224
- }
12225
- }
12226
- // check - cursor inside editor
12227
- if (node && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isOrContains(this.area, node)) {
12228
- return node;
12229
- }
12232
+ if (this.j.getRealMode() !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.MODE_WYSIWYG) {
12233
+ return null;
12234
+ }
12235
+ var sel = this.sel;
12236
+ if (!sel || sel.rangeCount === 0) {
12237
+ return null;
12238
+ }
12239
+ var range = sel.getRangeAt(0);
12240
+ var node = range.startContainer;
12241
+ var rightMode = false;
12242
+ var child = function (nd) {
12243
+ return rightMode ? nd.lastChild : nd.firstChild;
12244
+ };
12245
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isTag(node, 'br') && sel.isCollapsed) {
12246
+ return node;
12247
+ }
12248
+ if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(node)) {
12249
+ var ret = (0,_helpers__WEBPACK_IMPORTED_MODULE_8__/* .findCorrectCurrentNode */ .dY)(node, range, rightMode, sel.isCollapsed, checkChild, child);
12250
+ node = ret.node;
12251
+ rightMode = ret.rightMode;
12252
+ }
12253
+ // check - cursor inside editor
12254
+ if (node && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isOrContains(this.area, node)) {
12255
+ return node;
12230
12256
  }
12231
12257
  return null;
12232
12258
  };
12233
12259
  /**
12234
12260
  * Insert element in editor
12235
12261
  *
12262
+ * @param node - Node for insert
12236
12263
  * @param insertCursorAfter - After insert, cursor will move after element
12237
12264
  * @param fireChange - After insert, editor fire change event. You can prevent this behavior
12238
12265
  */
@@ -12297,6 +12324,7 @@ var Selection = /** @class */ (function () {
12297
12324
  * Inserts in the current cursor position some HTML snippet
12298
12325
  *
12299
12326
  * @param html - HTML The text to be inserted into the document
12327
+ * @param insertCursorAfter - After insert, cursor will move after element
12300
12328
  * @example
12301
12329
  * ```javascript
12302
12330
  * parent.s.insertHTML('<img src="image.png"/>');
@@ -12341,6 +12369,7 @@ var Selection = /** @class */ (function () {
12341
12369
  *
12342
12370
  * @param url - URL for image, or HTMLImageElement
12343
12371
  * @param styles - If specified, it will be applied <code>$(image).css(styles)</code>
12372
+ * @param defaultWidth - If specified, it will be applied <code>css('width', defaultWidth)</code>
12344
12373
  */
12345
12374
  Selection.prototype.insertImage = function (url, styles, defaultWidth) {
12346
12375
  if (styles === void 0) { styles = null; }
@@ -12399,74 +12428,81 @@ var Selection = /** @class */ (function () {
12399
12428
  var _this = this;
12400
12429
  var _a;
12401
12430
  var sel = this.sel;
12402
- if (sel && sel.rangeCount) {
12403
- var range = sel.getRangeAt(0);
12404
- var root_1 = range.commonAncestorContainer;
12405
- if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isHTMLElement(root_1)) {
12406
- root_1 = root_1.parentElement;
12407
- }
12408
- var nodes_1 = [], startOffset = range.startOffset, length = root_1.childNodes.length, elementOffset = startOffset < length ? startOffset : length - 1;
12409
- var start = range.startContainer === this.area
12410
- ? root_1.childNodes[elementOffset]
12411
- : range.startContainer, end_1 = range.endContainer === this.area
12412
- ? root_1.childNodes[range.endOffset - 1]
12413
- : range.endContainer;
12414
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(start) &&
12415
- start === range.startContainer &&
12416
- range.startOffset === ((_a = start.nodeValue) === null || _a === void 0 ? void 0 : _a.length) &&
12417
- start.nextSibling) {
12418
- start = start.nextSibling;
12419
- }
12420
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(end_1) &&
12421
- end_1 === range.endContainer &&
12422
- range.endOffset === 0 &&
12423
- end_1.previousSibling) {
12424
- end_1 = end_1.previousSibling;
12425
- }
12426
- var checkElm_1 = function (node) {
12427
- if (node &&
12428
- node !== root_1 &&
12429
- !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isEmptyTextNode(node) &&
12430
- !(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_4__/* .isMarker */ .rg)(node)) {
12431
- nodes_1.push(node);
12432
- }
12433
- };
12434
- checkElm_1(start);
12435
- if (start !== end_1 && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isOrContains(root_1, start, true)) {
12436
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.find(start, function (node) {
12437
- checkElm_1(node);
12438
- // checks parentElement as well because partial selections are not equal to entire element
12439
- return (node === end_1 ||
12440
- (node && node.contains && node.contains(end_1)));
12441
- }, root_1, true, false);
12442
- }
12443
- var forEvery_1 = function (current) {
12444
- if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isOrContains(_this.j.editor, current, true)) {
12445
- return;
12446
- }
12447
- if (current.nodeName.match(/^(UL|OL)$/)) {
12448
- return (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.toArray)(current.childNodes).forEach(forEvery_1);
12431
+ if (!sel || !sel.rangeCount) {
12432
+ return;
12433
+ }
12434
+ var range = sel.getRangeAt(0);
12435
+ var root = range.commonAncestorContainer;
12436
+ if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isHTMLElement(root)) {
12437
+ root = root.parentElement;
12438
+ }
12439
+ var nodes = [];
12440
+ var startOffset = range.startOffset;
12441
+ var length = root.childNodes.length;
12442
+ var elementOffset = startOffset < length ? startOffset : length - 1;
12443
+ var start = range.startContainer === this.area
12444
+ ? root.childNodes[elementOffset]
12445
+ : range.startContainer;
12446
+ var end = range.endContainer === this.area
12447
+ ? root.childNodes[range.endOffset - 1]
12448
+ : range.endContainer;
12449
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(start) &&
12450
+ start === range.startContainer &&
12451
+ range.startOffset === ((_a = start.nodeValue) === null || _a === void 0 ? void 0 : _a.length) &&
12452
+ start.nextSibling) {
12453
+ start = start.nextSibling;
12454
+ }
12455
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(end) &&
12456
+ end === range.endContainer &&
12457
+ range.endOffset === 0 &&
12458
+ end.previousSibling) {
12459
+ end = end.previousSibling;
12460
+ }
12461
+ var checkElm = function (node) {
12462
+ if (node &&
12463
+ node !== root &&
12464
+ !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isEmptyTextNode(node) &&
12465
+ !(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_4__/* .isMarker */ .rg)(node)) {
12466
+ nodes.push(node);
12467
+ }
12468
+ };
12469
+ checkElm(start);
12470
+ if (start !== end && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isOrContains(root, start, true)) {
12471
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.find(start, function (node) {
12472
+ checkElm(node);
12473
+ // checks parentElement as well because partial selections are not equal to entire element
12474
+ return (node === end ||
12475
+ (node && node.contains && node.contains(end)));
12476
+ }, root, true, false);
12477
+ }
12478
+ var forEvery = function (current) {
12479
+ if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isOrContains(_this.j.editor, current, true)) {
12480
+ return;
12481
+ }
12482
+ if (current.nodeName.match(/^(UL|OL)$/)) {
12483
+ return (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.toArray)(current.childNodes).forEach(forEvery);
12484
+ }
12485
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isTag(current, 'li')) {
12486
+ if (current.firstChild) {
12487
+ current = current.firstChild;
12449
12488
  }
12450
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isTag(current, 'li')) {
12451
- if (current.firstChild) {
12452
- current = current.firstChild;
12453
- }
12454
- else {
12455
- var currentB = _this.j.createInside.text(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE);
12456
- current.appendChild(currentB);
12457
- current = currentB;
12458
- }
12489
+ else {
12490
+ var currentB = _this.j.createInside.text(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE);
12491
+ current.appendChild(currentB);
12492
+ current = currentB;
12459
12493
  }
12460
- callback(current);
12461
- };
12462
- if (nodes_1.length === 0 && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isEmptyTextNode(start)) {
12463
- nodes_1.push(start);
12464
12494
  }
12465
- if (nodes_1.length === 0 && start.firstChild) {
12466
- nodes_1.push(start.firstChild);
12495
+ callback(current);
12496
+ };
12497
+ if (nodes.length === 0) {
12498
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isEmptyTextNode(start)) {
12499
+ nodes.push(start);
12500
+ }
12501
+ if (start.firstChild) {
12502
+ nodes.push(start.firstChild);
12467
12503
  }
12468
- nodes_1.forEach(forEvery_1);
12469
12504
  }
12505
+ nodes.forEach(forEvery);
12470
12506
  };
12471
12507
  /**
12472
12508
  * Checks if the cursor is at the end(start) block
@@ -12479,7 +12515,7 @@ var Selection = /** @class */ (function () {
12479
12515
  */
12480
12516
  Selection.prototype.cursorInTheEdge = function (start, parentBlock, fake) {
12481
12517
  var _this = this;
12482
- var _a, _b;
12518
+ var _a;
12483
12519
  if (fake === void 0) { fake = null; }
12484
12520
  var end = !start, range = (_a = this.sel) === null || _a === void 0 ? void 0 : _a.getRangeAt(0);
12485
12521
  fake !== null && fake !== void 0 ? fake : (fake = this.current(false));
@@ -12498,13 +12534,7 @@ var Selection = /** @class */ (function () {
12498
12534
  };
12499
12535
  // check right offset
12500
12536
  if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(container)) {
12501
- var text = ((_b = container.nodeValue) === null || _b === void 0 ? void 0 : _b.length) ? container.nodeValue : '';
12502
- if (end && text.replace((0,jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP_END)(), '').length > offset) {
12503
- return false;
12504
- }
12505
- var inv = (0,jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP_START)().exec(text);
12506
- if (start &&
12507
- ((inv && inv[0].length < offset) || (!inv && offset > 0))) {
12537
+ if ((0,_helpers__WEBPACK_IMPORTED_MODULE_8__/* .cursorInTheEdgeOfString */ .Qe)(container, offset, start, end)) {
12508
12538
  return false;
12509
12539
  }
12510
12540
  }
@@ -12596,6 +12626,7 @@ var Selection = /** @class */ (function () {
12596
12626
  };
12597
12627
  /**
12598
12628
  * Set cursor in the node
12629
+ * @param node - Node element
12599
12630
  * @param inStart - set cursor in start of element
12600
12631
  */
12601
12632
  Selection.prototype.setCursorIn = function (node, inStart) {
@@ -12661,6 +12692,7 @@ var Selection = /** @class */ (function () {
12661
12692
  };
12662
12693
  /**
12663
12694
  * Select node
12695
+ * @param node - Node element
12664
12696
  * @param inward - select all inside
12665
12697
  */
12666
12698
  Selection.prototype.select = function (node, inward) {
@@ -12706,7 +12738,7 @@ var Selection = /** @class */ (function () {
12706
12738
  Selection.prototype.wrapInTagGen = function (fakes) {
12707
12739
  var font, elms, elms_1, elms_1_1, font, firstChild, lastChild, e_1_1;
12708
12740
  var e_1, _a;
12709
- return (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__generator */ .YH)(this, function (_b) {
12741
+ return (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__generator */ .YH)(this, function (_b) {
12710
12742
  switch (_b.label) {
12711
12743
  case 0:
12712
12744
  if (!this.isCollapsed()) return [3 /*break*/, 2];
@@ -12738,7 +12770,7 @@ var Selection = /** @class */ (function () {
12738
12770
  _b.label = 3;
12739
12771
  case 3:
12740
12772
  _b.trys.push([3, 8, 9, 10]);
12741
- elms_1 = (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__values */ .Ju)(elms), elms_1_1 = elms_1.next();
12773
+ elms_1 = (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__values */ .Ju)(elms), elms_1_1 = elms_1.next();
12742
12774
  _b.label = 4;
12743
12775
  case 4:
12744
12776
  if (!!elms_1_1.done) return [3 /*break*/, 7];
@@ -12786,7 +12818,7 @@ var Selection = /** @class */ (function () {
12786
12818
  var e_2, _a;
12787
12819
  var result = [];
12788
12820
  try {
12789
- for (var _b = (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__values */ .Ju)(this.wrapInTagGen()), _c = _b.next(); !_c.done; _c = _b.next()) {
12821
+ for (var _b = (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__values */ .Ju)(this.wrapInTagGen()), _c = _b.next(); !_c.done; _c = _b.next()) {
12790
12822
  var font = _c.value;
12791
12823
  try {
12792
12824
  if (font.firstChild &&
@@ -12988,19 +13020,19 @@ var Selection = /** @class */ (function () {
12988
13020
  }
12989
13021
  return this;
12990
13022
  };
12991
- (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__decorate */ .Cg)([
13023
+ (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
12992
13024
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.autobind
12993
13025
  ], Selection.prototype, "createRange", null);
12994
- (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__decorate */ .Cg)([
13026
+ (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
12995
13027
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.autobind
12996
13028
  ], Selection.prototype, "focus", null);
12997
- (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__decorate */ .Cg)([
13029
+ (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
12998
13030
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.autobind
12999
13031
  ], Selection.prototype, "setCursorAfter", null);
13000
- (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__decorate */ .Cg)([
13032
+ (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
13001
13033
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.autobind
13002
13034
  ], Selection.prototype, "setCursorBefore", null);
13003
- (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__decorate */ .Cg)([
13035
+ (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
13004
13036
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.autobind
13005
13037
  ], Selection.prototype, "setCursorIn", null);
13006
13038
  return Selection;
@@ -24697,6 +24729,7 @@ var Table = /** @class */ (function (_super) {
24697
24729
  };
24698
24730
  /**
24699
24731
  * Generate formal table martix columns*rows
24732
+ * @param table - Working table
24700
24733
  * @param callback - if return false cycle break
24701
24734
  */
24702
24735
  Table.prototype.formalMatrix = function (table, callback) {
@@ -24768,7 +24801,6 @@ var Table = /** @class */ (function (_super) {
24768
24801
  * @param line - Insert a new line after/before this
24769
24802
  * line contains the selected cell
24770
24803
  * @param after - Insert a new line after line contains the selected cell
24771
- * @param create - Instance of Create class
24772
24804
  */
24773
24805
  Table.prototype.appendRow = function (table, line, after) {
24774
24806
  return Table.__appendRow(table, line, after, this.j.createInside);
@@ -24937,13 +24969,36 @@ var Table = /** @class */ (function (_super) {
24937
24969
  return Table.__getSelectedBound(table, selectedCells);
24938
24970
  };
24939
24971
  Table.__normalizeTable = function (table) {
24940
- var i, j, min, not;
24941
24972
  var __marked = [], box = Table.__formalMatrix(table);
24942
- // remove extra colspans
24943
- for (j = 0; j < box[0].length; j += 1) {
24944
- min = 1000000;
24945
- not = false;
24946
- for (i = 0; i < box.length; i += 1) {
24973
+ Table.__removeExtraColspans(box, __marked);
24974
+ Table.__removeExtraRowspans(box, __marked);
24975
+ // remove rowspans and colspans equal 1 and empty class
24976
+ for (var i = 0; i < box.length; i += 1) {
24977
+ for (var j = 0; j < box[i].length; j += 1) {
24978
+ if (box[i][j] === undefined) {
24979
+ continue; // broken table
24980
+ }
24981
+ if (box[i][j].hasAttribute('rowspan') &&
24982
+ box[i][j].rowSpan === 1) {
24983
+ (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'rowspan', null);
24984
+ }
24985
+ if (box[i][j].hasAttribute('colspan') &&
24986
+ box[i][j].colSpan === 1) {
24987
+ (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'colspan', null);
24988
+ }
24989
+ if (box[i][j].hasAttribute('class') &&
24990
+ !(0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'class')) {
24991
+ (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'class', null);
24992
+ }
24993
+ }
24994
+ }
24995
+ Table.__unmark(__marked);
24996
+ };
24997
+ Table.__removeExtraColspans = function (box, __marked) {
24998
+ for (var j = 0; j < box[0].length; j += 1) {
24999
+ var min = 1000000;
25000
+ var not = false;
25001
+ for (var i = 0; i < box.length; i += 1) {
24947
25002
  if (box[i][j] === undefined) {
24948
25003
  continue; // broken table
24949
25004
  }
@@ -24954,7 +25009,7 @@ var Table = /** @class */ (function (_super) {
24954
25009
  min = Math.min(min, box[i][j].colSpan);
24955
25010
  }
24956
25011
  if (!not) {
24957
- for (i = 0; i < box.length; i += 1) {
25012
+ for (var i = 0; i < box.length; i += 1) {
24958
25013
  if (box[i][j] === undefined) {
24959
25014
  continue; // broken table
24960
25015
  }
@@ -24962,10 +25017,13 @@ var Table = /** @class */ (function (_super) {
24962
25017
  }
24963
25018
  }
24964
25019
  }
24965
- // remove extra rowspans
25020
+ };
25021
+ Table.__removeExtraRowspans = function (box, marked) {
25022
+ var i = 0;
25023
+ var j = 0;
24966
25024
  for (i = 0; i < box.length; i += 1) {
24967
- min = 1000000;
24968
- not = false;
25025
+ var min = 1000000;
25026
+ var not = false;
24969
25027
  for (j = 0; j < box[i].length; j += 1) {
24970
25028
  if (box[i][j] === undefined) {
24971
25029
  continue; // broken table
@@ -24981,31 +25039,10 @@ var Table = /** @class */ (function (_super) {
24981
25039
  if (box[i][j] === undefined) {
24982
25040
  continue; // broken table
24983
25041
  }
24984
- Table.__mark(box[i][j], 'rowspan', box[i][j].rowSpan - min + 1, __marked);
25042
+ Table.__mark(box[i][j], 'rowspan', box[i][j].rowSpan - min + 1, marked);
24985
25043
  }
24986
25044
  }
24987
25045
  }
24988
- // remove rowspans and colspans equal 1 and empty class
24989
- for (i = 0; i < box.length; i += 1) {
24990
- for (j = 0; j < box[i].length; j += 1) {
24991
- if (box[i][j] === undefined) {
24992
- continue; // broken table
24993
- }
24994
- if (box[i][j].hasAttribute('rowspan') &&
24995
- box[i][j].rowSpan === 1) {
24996
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'rowspan', null);
24997
- }
24998
- if (box[i][j].hasAttribute('colspan') &&
24999
- box[i][j].colSpan === 1) {
25000
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'colspan', null);
25001
- }
25002
- if (box[i][j].hasAttribute('class') &&
25003
- !(0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'class')) {
25004
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'class', null);
25005
- }
25006
- }
25007
- }
25008
- Table.__unmark(__marked);
25009
25046
  };
25010
25047
  /**
25011
25048
  * Try recalculate all coluns and rows after change
@@ -26472,37 +26509,7 @@ function sendFiles(uploader, files, handlerSuccess, handlerError, process) {
26472
26509
  }
26473
26510
  var promises = [];
26474
26511
  if (o.insertImageAsBase64URI) {
26475
- var file_1, i = void 0;
26476
- var _loop_1 = function () {
26477
- file_1 = fileList[i];
26478
- if (file_1 && file_1.type) {
26479
- var mime = file_1.type.match(/\/([a-z0-9]+)/i);
26480
- var extension = mime[1] ? mime[1].toLowerCase() : '';
26481
- if (o.imagesExtensions.includes(extension)) {
26482
- var reader_1 = new FileReader();
26483
- promises.push(uploader.j.async.promise(function (resolve, reject) {
26484
- reader_1.onerror = reject;
26485
- reader_1.onloadend = function () {
26486
- var resp = {
26487
- baseurl: '',
26488
- files: [reader_1.result],
26489
- isImages: [true]
26490
- };
26491
- var handler = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__.isFunction)(handlerSuccess)
26492
- ? handlerSuccess
26493
- : o.defaultHandlerSuccess;
26494
- handler.call(uploader, resp);
26495
- resolve(resp);
26496
- };
26497
- reader_1.readAsDataURL(file_1);
26498
- }));
26499
- fileList[i] = null;
26500
- }
26501
- }
26502
- };
26503
- for (i = 0; i < fileList.length; i += 1) {
26504
- _loop_1();
26505
- }
26512
+ readImagesWithReader(fileList, o.imagesExtensions, promises, uploader, handlerSuccess, o.defaultHandlerSuccess);
26506
26513
  }
26507
26514
  fileList = fileList.filter(function (a) { return a; });
26508
26515
  if (fileList.length) {
@@ -26513,7 +26520,7 @@ function sendFiles(uploader, files, handlerSuccess, handlerError, process) {
26513
26520
  for (var i = 0; i < fileList.length; i += 1) {
26514
26521
  file = fileList[i];
26515
26522
  if (file) {
26516
- var hasRealExtension = /\.[\d\w]+$/.test(file.name);
26523
+ var hasRealExtension = /\.\w+$/.test(file.name);
26517
26524
  var mime = file.type.match(/\/([a-z0-9]+)/i);
26518
26525
  var extension = mime && mime[1] ? mime[1].toLowerCase() : '';
26519
26526
  var newName = fileList[i].name ||
@@ -26562,6 +26569,40 @@ function sendFiles(uploader, files, handlerSuccess, handlerError, process) {
26562
26569
  }
26563
26570
  return Promise.all(promises);
26564
26571
  }
26572
+ function readImagesWithReader(fileList, imagesExtensions, promises, uploader, handlerSuccess, defaultHandlerSuccess) {
26573
+ var file, i;
26574
+ var _loop_1 = function () {
26575
+ file = fileList[i];
26576
+ if (file && file.type) {
26577
+ var mime = file.type.match(/\/([a-z0-9]+)/i);
26578
+ var extension = mime[1] ? mime[1].toLowerCase() : '';
26579
+ if (!imagesExtensions.includes(extension)) {
26580
+ return "continue";
26581
+ }
26582
+ var reader_1 = new FileReader();
26583
+ promises.push(uploader.j.async.promise(function (resolve, reject) {
26584
+ reader_1.onerror = reject;
26585
+ reader_1.onloadend = function () {
26586
+ var resp = {
26587
+ baseurl: '',
26588
+ files: [reader_1.result],
26589
+ isImages: [true]
26590
+ };
26591
+ var handler = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__.isFunction)(handlerSuccess)
26592
+ ? handlerSuccess
26593
+ : defaultHandlerSuccess;
26594
+ handler.call(uploader, resp);
26595
+ resolve(resp);
26596
+ };
26597
+ reader_1.readAsDataURL(file);
26598
+ }));
26599
+ fileList[i] = null;
26600
+ }
26601
+ };
26602
+ for (i = 0; i < fileList.length; i += 1) {
26603
+ _loop_1();
26604
+ }
26605
+ }
26565
26606
 
26566
26607
 
26567
26608
  /***/ }),
@@ -28222,7 +28263,7 @@ var backspace = /** @class */ (function (_super) {
28222
28263
  if (jodit.e.fire('backSpaceBeforeCases', backspace, fakeNode)) {
28223
28264
  return false;
28224
28265
  }
28225
- (0,jodit_core_selection_helpers__WEBPACK_IMPORTED_MODULE_4__/* .moveNodeInsideStart */ .W)(jodit, fakeNode, backspace);
28266
+ (0,jodit_core_selection_helpers__WEBPACK_IMPORTED_MODULE_4__/* .moveNodeInsideStart */ .W8)(jodit, fakeNode, backspace);
28226
28267
  if (_cases__WEBPACK_IMPORTED_MODULE_6__/* .cases */ .C.some(function (func) {
28227
28268
  if ((0,jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_9__/* .isFunction */ .T)(func) &&
28228
28269
  func(jodit, fakeNode, backspace, mode)) {
@@ -28485,22 +28526,15 @@ function checkNotCollapsed(jodit) {
28485
28526
  * @private
28486
28527
  */
28487
28528
  function checkRemoveChar(jodit, fakeNode, backspace, mode) {
28488
- var _a, _b, _c;
28529
+ var _a, _b;
28489
28530
  var step = backspace ? -1 : 1;
28490
28531
  var anotherSibling = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.sibling(fakeNode, !backspace);
28491
- var sibling = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.sibling(fakeNode, backspace), removeNeighbor = null;
28492
- var charRemoved = false, removed;
28493
- var getNextInlineSibling = function (sibling) {
28494
- var nextSibling = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.sibling(sibling, backspace);
28495
- if (!nextSibling &&
28496
- sibling.parentNode &&
28497
- sibling.parentNode !== jodit.editor) {
28498
- nextSibling = (0,jodit_plugins_backspace_helpers__WEBPACK_IMPORTED_MODULE_3__/* .findMostNestedNeighbor */ .s)(sibling, !backspace, jodit.editor, true);
28499
- }
28500
- return nextSibling;
28501
- };
28532
+ var sibling = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.sibling(fakeNode, backspace);
28533
+ var removeNeighbor = null;
28534
+ var charRemoved = false;
28535
+ var removed;
28502
28536
  if (!sibling) {
28503
- sibling = getNextInlineSibling(fakeNode);
28537
+ sibling = getNextInlineSibling(fakeNode, backspace, jodit.editor);
28504
28538
  }
28505
28539
  while (sibling && (jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(sibling) || jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isInlineBlock(sibling))) {
28506
28540
  while (jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isInlineBlock(sibling)) {
@@ -28510,57 +28544,17 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode) {
28510
28544
  break;
28511
28545
  }
28512
28546
  if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
28513
- // For Unicode escapes
28514
- var value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.toArray)(sibling.nodeValue);
28515
- var length = value.length;
28516
- var index = backspace ? length - 1 : 0;
28517
- if (value[index] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28518
- while (value[index] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28519
- index += step;
28520
- }
28521
- }
28522
- removed = value[index];
28523
- if (value[index + step] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28524
- index += step;
28525
- while (value[index] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28526
- index += step;
28527
- }
28528
- index += backspace ? 1 : -1;
28529
- }
28530
- if (backspace && index < 0) {
28531
- value = [];
28532
- }
28533
- else {
28534
- value = value.slice(backspace ? 0 : index + 1, backspace ? index : length);
28535
- }
28536
- if (!anotherSibling ||
28537
- !jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(anotherSibling) ||
28538
- (!backspace ? / $/ : /^ /).test((_b = anotherSibling.nodeValue) !== null && _b !== void 0 ? _b : '') ||
28539
- !(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.trimInv)(anotherSibling.nodeValue || '').length) {
28540
- for (var i = backspace ? value.length - 1 : 0; backspace ? i >= 0 : i < value.length; i += backspace ? -1 : 1) {
28541
- if (value[i] === ' ') {
28542
- value[i] = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.NBSP_SPACE;
28543
- }
28544
- else {
28545
- break;
28546
- }
28547
- }
28548
- }
28549
- sibling.nodeValue = value.join('');
28547
+ removed = tryRemoveChar(sibling, backspace, step, anotherSibling);
28550
28548
  }
28551
- if (!((_c = sibling.nodeValue) === null || _c === void 0 ? void 0 : _c.length)) {
28549
+ if (!((_b = sibling.nodeValue) === null || _b === void 0 ? void 0 : _b.length)) {
28552
28550
  removeNeighbor = sibling;
28553
28551
  }
28554
28552
  if (!(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.isVoid)(removed) && removed !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28553
+ checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed, jodit);
28555
28554
  charRemoved = true;
28556
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.call)(backspace ? jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.after : jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.before, sibling, fakeNode);
28557
- if (mode === 'sentence' ||
28558
- (mode === 'word' && removed !== ' ' && removed !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.NBSP_SPACE)) {
28559
- checkRemoveChar(jodit, fakeNode, backspace, mode);
28560
- }
28561
28555
  break;
28562
28556
  }
28563
- var nextSibling = getNextInlineSibling(sibling);
28557
+ var nextSibling = getNextInlineSibling(sibling, backspace, jodit.editor);
28564
28558
  if (removeNeighbor) {
28565
28559
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.safeRemove(removeNeighbor);
28566
28560
  removeNeighbor = null;
@@ -28582,6 +28576,13 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode) {
28582
28576
  }
28583
28577
  return charRemoved;
28584
28578
  }
28579
+ function getNextInlineSibling(sibling, backspace, root) {
28580
+ var nextSibling = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.sibling(sibling, backspace);
28581
+ if (!nextSibling && sibling.parentNode && sibling.parentNode !== root) {
28582
+ nextSibling = (0,jodit_plugins_backspace_helpers__WEBPACK_IMPORTED_MODULE_3__/* .findMostNestedNeighbor */ .s)(sibling, !backspace, root, true);
28583
+ }
28584
+ return nextSibling;
28585
+ }
28585
28586
  /**
28586
28587
  * Helper removes all empty inline parents
28587
28588
  */
@@ -28606,6 +28607,57 @@ function addBRInsideEmptyBlock(jodit, node) {
28606
28607
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.after(node, jodit.createInside.element('br'));
28607
28608
  }
28608
28609
  }
28610
+ function tryRemoveChar(sibling, backspace, step, anotherSibling) {
28611
+ // For Unicode escapes
28612
+ var value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.toArray)(sibling.nodeValue);
28613
+ var length = value.length;
28614
+ var index = backspace ? length - 1 : 0;
28615
+ if (value[index] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28616
+ while (value[index] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28617
+ index += step;
28618
+ }
28619
+ }
28620
+ var removed = value[index];
28621
+ if (value[index + step] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28622
+ index += step;
28623
+ while (value[index] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28624
+ index += step;
28625
+ }
28626
+ index += backspace ? 1 : -1;
28627
+ }
28628
+ if (backspace && index < 0) {
28629
+ value = [];
28630
+ }
28631
+ else {
28632
+ value = value.slice(backspace ? 0 : index + 1, backspace ? index : length);
28633
+ }
28634
+ replaceSpaceOnNBSP(anotherSibling, backspace, value);
28635
+ sibling.nodeValue = value.join('');
28636
+ return removed;
28637
+ }
28638
+ function replaceSpaceOnNBSP(anotherSibling, backspace, value) {
28639
+ var _a;
28640
+ if (!anotherSibling ||
28641
+ !jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(anotherSibling) ||
28642
+ (!backspace ? / $/ : /^ /).test((_a = anotherSibling.nodeValue) !== null && _a !== void 0 ? _a : '') ||
28643
+ !(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.trimInv)(anotherSibling.nodeValue || '').length) {
28644
+ for (var i = backspace ? value.length - 1 : 0; backspace ? i >= 0 : i < value.length; i += backspace ? -1 : 1) {
28645
+ if (value[i] === ' ') {
28646
+ value[i] = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.NBSP_SPACE;
28647
+ }
28648
+ else {
28649
+ break;
28650
+ }
28651
+ }
28652
+ }
28653
+ }
28654
+ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed, jodit) {
28655
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.call)(backspace ? jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.after : jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.before, sibling, fakeNode);
28656
+ if (mode === 'sentence' ||
28657
+ (mode === 'word' && removed !== ' ' && removed !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.NBSP_SPACE)) {
28658
+ checkRemoveChar(jodit, fakeNode, backspace, mode);
28659
+ }
28660
+ }
28609
28661
 
28610
28662
 
28611
28663
  /***/ }),
@@ -28643,7 +28695,7 @@ function checkRemoveContentNotEditable(jodit, fakeNode, backspace) {
28643
28695
  !jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isContentEditable(neighbor, jodit.editor)) {
28644
28696
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.before : jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.after, neighbor, fakeNode);
28645
28697
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.safeRemove(neighbor);
28646
- (0,jodit_core_selection_helpers__WEBPACK_IMPORTED_MODULE_2__/* .moveNodeInsideStart */ .W)(jodit, fakeNode, backspace);
28698
+ (0,jodit_core_selection_helpers__WEBPACK_IMPORTED_MODULE_2__/* .moveNodeInsideStart */ .W8)(jodit, fakeNode, backspace);
28647
28699
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? jodit.s.setCursorBefore : jodit.s.setCursorAfter, fakeNode);
28648
28700
  return true;
28649
28701
  }
@@ -31567,45 +31619,11 @@ var dragAndDrop = /** @class */ (function (_super) {
31567
31619
  var sel = this.j.s.sel;
31568
31620
  var range = this.bufferRange ||
31569
31621
  (sel && sel.rangeCount ? sel.getRangeAt(0) : null);
31570
- var fragment = null;
31571
- if (!this.draggable && range) {
31572
- fragment = this.isCopyMode
31573
- ? range.cloneContents()
31574
- : range.extractContents();
31575
- }
31576
- else if (this.draggable) {
31577
- if (this.isCopyMode) {
31578
- var _a = (0,tslib__WEBPACK_IMPORTED_MODULE_7__/* .__read */ .zs)((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(this.draggable, '-is-file') === '1'
31579
- ? ['a', 'href']
31580
- : ['img', 'src'], 2), tagName = _a[0], field = _a[1];
31581
- fragment = this.j.createInside.element(tagName);
31582
- fragment.setAttribute(field, (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(this.draggable, 'data-src') ||
31583
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(this.draggable, 'src') ||
31584
- '');
31585
- if (tagName === 'a') {
31586
- fragment.textContent = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(fragment, field) || '';
31587
- }
31588
- }
31589
- else {
31590
- fragment = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.dataBind)(this.draggable, 'target');
31591
- }
31592
- }
31593
- else if (this.getText(event)) {
31594
- fragment = this.j.createInside.fromHTML(this.getText(event));
31595
- }
31622
+ var fragment = this.__getWorkFragment(range, event);
31596
31623
  sel && sel.removeAllRanges();
31597
31624
  this.j.s.insertCursorAtPoint(event.clientX, event.clientY);
31598
31625
  if (fragment) {
31599
- this.j.s.insertNode(fragment, false, false);
31600
- if (range && fragment.firstChild && fragment.lastChild) {
31601
- range.setStartBefore(fragment.firstChild);
31602
- range.setEndAfter(fragment.lastChild);
31603
- this.j.s.selectRange(range);
31604
- this.j.e.fire('synchro');
31605
- }
31606
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isTag(fragment, 'img') && this.j.events) {
31607
- this.j.e.fire('afterInsertImage', fragment);
31608
- }
31626
+ this.__insertFragment.call(this, fragment, range);
31609
31627
  }
31610
31628
  event.preventDefault();
31611
31629
  event.stopPropagation();
@@ -31613,6 +31631,47 @@ var dragAndDrop = /** @class */ (function (_super) {
31613
31631
  this.isFragmentFromEditor = false;
31614
31632
  this.removeDragListeners();
31615
31633
  };
31634
+ dragAndDrop.prototype.__getWorkFragment = function (range, event) {
31635
+ var fragment = null;
31636
+ if (!this.draggable && range) {
31637
+ fragment = this.isCopyMode
31638
+ ? range.cloneContents()
31639
+ : range.extractContents();
31640
+ }
31641
+ else if (this.draggable) {
31642
+ if (this.isCopyMode) {
31643
+ var _a = (0,tslib__WEBPACK_IMPORTED_MODULE_7__/* .__read */ .zs)((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(this.draggable, '-is-file') === '1'
31644
+ ? ['a', 'href']
31645
+ : ['img', 'src'], 2), tagName = _a[0], field = _a[1];
31646
+ fragment = this.j.createInside.element(tagName);
31647
+ fragment.setAttribute(field, (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(this.draggable, 'data-src') ||
31648
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(this.draggable, 'src') ||
31649
+ '');
31650
+ if (tagName === 'a') {
31651
+ fragment.textContent = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(fragment, field) || '';
31652
+ }
31653
+ }
31654
+ else {
31655
+ fragment = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.dataBind)(this.draggable, 'target');
31656
+ }
31657
+ }
31658
+ else if (this.getText(event)) {
31659
+ fragment = this.j.createInside.fromHTML(this.getText(event));
31660
+ }
31661
+ return fragment;
31662
+ };
31663
+ dragAndDrop.prototype.__insertFragment = function (fragment, range) {
31664
+ this.j.s.insertNode(fragment, false, false);
31665
+ if (range && fragment.firstChild && fragment.lastChild) {
31666
+ range.setStartBefore(fragment.firstChild);
31667
+ range.setEndAfter(fragment.lastChild);
31668
+ this.j.s.selectRange(range);
31669
+ this.j.e.fire('synchro');
31670
+ }
31671
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isTag(fragment, 'img') && this.j.events) {
31672
+ this.j.e.fire('afterInsertImage', fragment);
31673
+ }
31674
+ };
31616
31675
  /** @override */
31617
31676
  dragAndDrop.prototype.beforeDestruct = function () {
31618
31677
  this.onDragEnd();
@@ -37492,35 +37551,7 @@ var link = /** @class */ (function (_super) {
37492
37551
  if (link) {
37493
37552
  url_input.value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'href') || '';
37494
37553
  if (modeClassName) {
37495
- switch (modeClassName) {
37496
- case 'input':
37497
- if (className_input) {
37498
- className_input.value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'class') || '';
37499
- }
37500
- break;
37501
- case 'select':
37502
- if (className_select) {
37503
- for (var i = 0; i < className_select.selectedOptions.length; i++) {
37504
- var option = className_select.options.item(i);
37505
- if (option) {
37506
- option.selected = false;
37507
- }
37508
- }
37509
- var classNames = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'class') || '';
37510
- classNames.split(' ').forEach(function (className) {
37511
- if (className) {
37512
- for (var i = 0; i < className_select.options.length; i++) {
37513
- var option = className_select.options.item(i);
37514
- if ((option === null || option === void 0 ? void 0 : option.value) &&
37515
- option.value === className) {
37516
- option.selected = true;
37517
- }
37518
- }
37519
- }
37520
- });
37521
- }
37522
- break;
37523
- }
37554
+ readClassnames(modeClassName, className_input, link, className_select);
37524
37555
  }
37525
37556
  if (openInNewTabCheckbox && target_checkbox) {
37526
37557
  target_checkbox.checked = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'target') === '_blank';
@@ -37581,44 +37612,10 @@ var link = /** @class */ (function (_super) {
37581
37612
  links = [link];
37582
37613
  }
37583
37614
  links.forEach(function (a) {
37584
- var _a;
37585
37615
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'href', url_input.value);
37586
- if (modeClassName && (className_input !== null && className_input !== void 0 ? className_input : className_select)) {
37587
- if (modeClassName === 'input') {
37588
- if (className_input.value === '' &&
37589
- a.hasAttribute('class')) {
37590
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'class', null);
37591
- }
37592
- if (className_input.value !== '') {
37593
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'class', className_input.value);
37594
- }
37595
- }
37596
- else if (modeClassName === 'select') {
37597
- if (a.hasAttribute('class')) {
37598
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'class', null);
37599
- }
37600
- for (var i = 0; i < className_select.selectedOptions.length; i++) {
37601
- var className = (_a = className_select.selectedOptions.item(i)) === null || _a === void 0 ? void 0 : _a.value;
37602
- if (className) {
37603
- a.classList.add(className);
37604
- }
37605
- }
37606
- }
37607
- }
37616
+ writeClasses(modeClassName, className_input, className_select, a);
37608
37617
  if (!isImageContent) {
37609
- var newContent = a.textContent;
37610
- if (content_input.value.trim().length) {
37611
- if (textWasChanged) {
37612
- newContent = content_input.value;
37613
- }
37614
- }
37615
- else {
37616
- newContent = url_input.value;
37617
- }
37618
- var content = a.textContent;
37619
- if (newContent !== content) {
37620
- a.textContent = newContent;
37621
- }
37618
+ writeImage(a, content_input, textWasChanged, url_input);
37622
37619
  }
37623
37620
  if (openInNewTabCheckbox && target_checkbox) {
37624
37621
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'target', target_checkbox.checked ? '_blank' : null);
@@ -37665,6 +37662,75 @@ var link = /** @class */ (function (_super) {
37665
37662
  }(jodit_core_plugin__WEBPACK_IMPORTED_MODULE_4__/* .Plugin */ .k));
37666
37663
 
37667
37664
  jodit_core_global__WEBPACK_IMPORTED_MODULE_2__/* .pluginSystem */ .fg.add('link', link);
37665
+ function writeClasses(modeClassName, className_input, className_select, a) {
37666
+ var _a;
37667
+ if (modeClassName && (className_input !== null && className_input !== void 0 ? className_input : className_select)) {
37668
+ if (modeClassName === 'input') {
37669
+ if (className_input.value === '' && a.hasAttribute('class')) {
37670
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'class', null);
37671
+ }
37672
+ if (className_input.value !== '') {
37673
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'class', className_input.value);
37674
+ }
37675
+ }
37676
+ else if (modeClassName === 'select') {
37677
+ if (a.hasAttribute('class')) {
37678
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'class', null);
37679
+ }
37680
+ for (var i = 0; i < className_select.selectedOptions.length; i++) {
37681
+ var className = (_a = className_select.selectedOptions.item(i)) === null || _a === void 0 ? void 0 : _a.value;
37682
+ if (className) {
37683
+ a.classList.add(className);
37684
+ }
37685
+ }
37686
+ }
37687
+ }
37688
+ }
37689
+ function readClassnames(modeClassName, className_input, link, className_select) {
37690
+ switch (modeClassName) {
37691
+ case 'input':
37692
+ if (className_input) {
37693
+ className_input.value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'class') || '';
37694
+ }
37695
+ break;
37696
+ case 'select':
37697
+ if (className_select) {
37698
+ for (var i = 0; i < className_select.selectedOptions.length; i++) {
37699
+ var option = className_select.options.item(i);
37700
+ if (option) {
37701
+ option.selected = false;
37702
+ }
37703
+ }
37704
+ var classNames = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'class') || '';
37705
+ classNames.split(' ').forEach(function (className) {
37706
+ if (className) {
37707
+ for (var i = 0; i < className_select.options.length; i++) {
37708
+ var option = className_select.options.item(i);
37709
+ if ((option === null || option === void 0 ? void 0 : option.value) && option.value === className) {
37710
+ option.selected = true;
37711
+ }
37712
+ }
37713
+ }
37714
+ });
37715
+ }
37716
+ break;
37717
+ }
37718
+ }
37719
+ function writeImage(a, content_input, textWasChanged, url_input) {
37720
+ var newContent = a.textContent;
37721
+ if (content_input.value.trim().length) {
37722
+ if (textWasChanged) {
37723
+ newContent = content_input.value;
37724
+ }
37725
+ }
37726
+ else {
37727
+ newContent = url_input.value;
37728
+ }
37729
+ var content = a.textContent;
37730
+ if (newContent !== content) {
37731
+ a.textContent = newContent;
37732
+ }
37733
+ }
37668
37734
 
37669
37735
 
37670
37736
  /***/ }),
@@ -40614,7 +40680,6 @@ jodit_config__WEBPACK_IMPORTED_MODULE_2__/* .Config */ .T.prototype.controls.fin
40614
40680
  /* harmony export */ _B: function() { return /* binding */ highlightTextRanges; },
40615
40681
  /* harmony export */ zy: function() { return /* binding */ getSelectionWrappers; }
40616
40682
  /* harmony export */ });
40617
- /* unused harmony export isSelectionWrapper */
40618
40683
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31635);
40619
40684
  /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55186);
40620
40685
  /* harmony import */ var jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58720);
@@ -40634,11 +40699,65 @@ var TMP_ATTR = 'jd-tmp-selection';
40634
40699
  * @private
40635
40700
  */
40636
40701
  function highlightTextRanges(jodit, rng, restRanges, ci, root) {
40637
- var _a, e_1, _b;
40702
+ var _a;
40638
40703
  if (rng.startContainer.nodeValue == null ||
40639
40704
  rng.endContainer.nodeValue == null) {
40640
40705
  return;
40641
40706
  }
40707
+ if (checkNativeSelectionMethod(jodit, rng, restRanges)) {
40708
+ return;
40709
+ }
40710
+ var span = ci.element('span', (_a = {},
40711
+ _a[TMP_ATTR] = true,
40712
+ _a));
40713
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.markTemporary(span);
40714
+ normalizeRanges(rng, restRanges, ci);
40715
+ var next = rng.startContainer;
40716
+ do {
40717
+ if (!next) {
40718
+ break;
40719
+ }
40720
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isText(next) && !isSelectionWrapper(next.parentNode)) {
40721
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.wrap(next, span.cloneNode(), ci);
40722
+ }
40723
+ if (next === rng.endContainer) {
40724
+ break;
40725
+ }
40726
+ var step = next.firstChild || next.nextSibling;
40727
+ if (!step) {
40728
+ while (next && !next.nextSibling && next !== root) {
40729
+ next = next.parentNode;
40730
+ }
40731
+ step = next === null || next === void 0 ? void 0 : next.nextSibling;
40732
+ }
40733
+ next = step;
40734
+ } while (next && next !== root);
40735
+ }
40736
+ /**
40737
+ * @private
40738
+ */
40739
+ function getSelectionWrappers(root) {
40740
+ return (0,jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_1__.$$)("[".concat(TMP_ATTR, "]"), root);
40741
+ }
40742
+ /**
40743
+ * @private
40744
+ */
40745
+ function clearSelectionWrappers(root) {
40746
+ getSelectionWrappers(root).forEach(function (span) { return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.unwrap(span); });
40747
+ }
40748
+ /**
40749
+ * @private
40750
+ */
40751
+ function clearSelectionWrappersFromHTML(root) {
40752
+ return root.replace(RegExp("<span[^>]+".concat(TMP_ATTR, "[^>]+>(.*?)</span>"), 'g'), '$1');
40753
+ }
40754
+ /**
40755
+ * @private
40756
+ */
40757
+ function isSelectionWrapper(node) {
40758
+ return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isElement(node) && node.hasAttribute(TMP_ATTR);
40759
+ }
40760
+ function checkNativeSelectionMethod(jodit, rng, restRanges) {
40642
40761
  if (jodit.o.search.useCustomHighlightAPI &&
40643
40762
  // @ts-ignore Because Highlight is not defined in the types TS 5.3.3
40644
40763
  typeof window.Highlight !== 'undefined') {
@@ -40655,12 +40774,12 @@ function highlightTextRanges(jodit, rng, restRanges, ci, root) {
40655
40774
  // @ts-ignore
40656
40775
  CSS.highlights.set('jodit-search-result', searchHighlight);
40657
40776
  restRanges.length = 0;
40658
- return;
40777
+ return true;
40659
40778
  }
40660
- var span = ci.element('span', (_a = {},
40661
- _a[TMP_ATTR] = true,
40662
- _a));
40663
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.markTemporary(span);
40779
+ return false;
40780
+ }
40781
+ function normalizeRanges(rng, restRanges, ci) {
40782
+ var e_1, _a;
40664
40783
  var startText = rng.startContainer.nodeValue;
40665
40784
  var diff = 0;
40666
40785
  if (rng.startOffset !== 0) {
@@ -40697,56 +40816,12 @@ function highlightTextRanges(jodit, rng, restRanges, ci, root) {
40697
40816
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
40698
40817
  finally {
40699
40818
  try {
40700
- if (restRanges_1_1 && !restRanges_1_1.done && (_b = restRanges_1.return)) _b.call(restRanges_1);
40819
+ if (restRanges_1_1 && !restRanges_1_1.done && (_a = restRanges_1.return)) _a.call(restRanges_1);
40701
40820
  }
40702
40821
  finally { if (e_1) throw e_1.error; }
40703
40822
  }
40704
40823
  rng.endOffset = rng.endContainer.nodeValue.length;
40705
40824
  }
40706
- var next = rng.startContainer;
40707
- do {
40708
- if (!next) {
40709
- break;
40710
- }
40711
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isText(next) && !isSelectionWrapper(next.parentNode)) {
40712
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.wrap(next, span.cloneNode(), ci);
40713
- }
40714
- if (next === rng.endContainer) {
40715
- break;
40716
- }
40717
- var step = next.firstChild || next.nextSibling;
40718
- if (!step) {
40719
- while (next && !next.nextSibling && next !== root) {
40720
- next = next.parentNode;
40721
- }
40722
- step = next === null || next === void 0 ? void 0 : next.nextSibling;
40723
- }
40724
- next = step;
40725
- } while (next && next !== root);
40726
- }
40727
- /**
40728
- * @private
40729
- */
40730
- function getSelectionWrappers(root) {
40731
- return (0,jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_1__.$$)("[".concat(TMP_ATTR, "]"), root);
40732
- }
40733
- /**
40734
- * @private
40735
- */
40736
- function clearSelectionWrappers(root) {
40737
- getSelectionWrappers(root).forEach(function (span) { return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.unwrap(span); });
40738
- }
40739
- /**
40740
- * @private
40741
- */
40742
- function clearSelectionWrappersFromHTML(root) {
40743
- return root.replace(RegExp("<span[^>]+".concat(TMP_ATTR, "[^>]+>(.*?)</span>"), 'g'), '$1');
40744
- }
40745
- /**
40746
- * @private
40747
- */
40748
- function isSelectionWrapper(node) {
40749
- return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isElement(node) && node.hasAttribute(TMP_ATTR);
40750
40825
  }
40751
40826
 
40752
40827
 
@@ -45129,40 +45204,10 @@ function tableKeyboardNavigation(editor) {
45129
45204
  .off('.tableKeyboardNavigation')
45130
45205
  .on('keydown.tableKeyboardNavigation', function (event) {
45131
45206
  var key = event.key;
45132
- if (!WORK_KEYS.has(key)) {
45133
- return;
45134
- }
45135
- var current = editor.s.current();
45136
- if (!current) {
45137
- return;
45138
- }
45139
- var cell = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.up(current, jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isCell, editor.editor);
45207
+ var cell = findCell(editor, key);
45140
45208
  if (!cell) {
45141
45209
  return;
45142
45210
  }
45143
- var range = editor.s.range;
45144
- if (key !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_TAB && current !== cell) {
45145
- var isNextDirection = key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT || key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN;
45146
- var hasNext = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.call)(!isNextDirection ? jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.prev : jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.next, current, function (elm) {
45147
- return key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_UP || key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN
45148
- ? jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTag(elm, 'br')
45149
- : Boolean(elm);
45150
- }, cell);
45151
- if ((!isNextDirection &&
45152
- (hasNext ||
45153
- (key !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_UP &&
45154
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(current) &&
45155
- range.startOffset !== 0))) ||
45156
- (isNextDirection &&
45157
- (hasNext ||
45158
- (key !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN &&
45159
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(current) &&
45160
- current.nodeValue &&
45161
- range.startOffset !==
45162
- current.nodeValue.length)))) {
45163
- return;
45164
- }
45165
- }
45166
45211
  var tableModule = editor.getInstance(jodit_modules_table_table__WEBPACK_IMPORTED_MODULE_4__/* .Table */ .X, editor.o);
45167
45212
  var table = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.closest(cell, 'table', editor.editor);
45168
45213
  var next = null;
@@ -45222,6 +45267,42 @@ function tableKeyboardNavigation(editor) {
45222
45267
  });
45223
45268
  }
45224
45269
  jodit_core_global__WEBPACK_IMPORTED_MODULE_2__/* .pluginSystem */ .fg.add('tableKeyboardNavigation', tableKeyboardNavigation);
45270
+ function findCell(editor, key) {
45271
+ if (!WORK_KEYS.has(key)) {
45272
+ return;
45273
+ }
45274
+ var current = editor.s.current();
45275
+ if (!current) {
45276
+ return;
45277
+ }
45278
+ var cell = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.up(current, jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isCell, editor.editor);
45279
+ if (!cell) {
45280
+ return;
45281
+ }
45282
+ var range = editor.s.range;
45283
+ if (key !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_TAB && current !== cell) {
45284
+ var isNextDirection = key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT || key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN;
45285
+ var hasNext = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.call)(!isNextDirection ? jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.prev : jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.next, current, function (elm) {
45286
+ return key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_UP || key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN
45287
+ ? jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTag(elm, 'br')
45288
+ : Boolean(elm);
45289
+ }, cell);
45290
+ if ((!isNextDirection &&
45291
+ (hasNext ||
45292
+ (key !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_UP &&
45293
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(current) &&
45294
+ range.startOffset !== 0))) ||
45295
+ (isNextDirection &&
45296
+ (hasNext ||
45297
+ (key !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN &&
45298
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(current) &&
45299
+ current.nodeValue &&
45300
+ range.startOffset !== current.nodeValue.length)))) {
45301
+ return;
45302
+ }
45303
+ }
45304
+ return cell;
45305
+ }
45225
45306
 
45226
45307
 
45227
45308
  /***/ }),
@@ -51169,16 +51250,16 @@ var __webpack_exports__ = {};
51169
51250
  __webpack_require__.r(__webpack_exports__);
51170
51251
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
51171
51252
  /* harmony export */ CommitMode: function() { return /* binding */ CommitMode; },
51172
- /* harmony export */ Jodit: function() { return /* reexport safe */ _jodit__WEBPACK_IMPORTED_MODULE_6__.x; }
51253
+ /* harmony export */ Jodit: function() { return /* reexport safe */ _jodit__WEBPACK_IMPORTED_MODULE_0__.x; }
51173
51254
  /* harmony export */ });
51174
- /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9823);
51175
- /* harmony import */ var jodit_plugins_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88222);
51255
+ /* harmony import */ var _jodit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46173);
51256
+ /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9823);
51176
51257
  /* harmony import */ var _core_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17352);
51177
51258
  /* harmony import */ var _core_decorators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22664);
51178
51259
  /* harmony import */ var _modules___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(37435);
51179
51260
  /* harmony import */ var _styles_icons___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(79721);
51180
- /* harmony import */ var _jodit__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46173);
51181
- /* harmony import */ var _languages__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(74470);
51261
+ /* harmony import */ var _languages__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(74470);
51262
+ /* harmony import */ var jodit_plugins_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(88222);
51182
51263
  /*!
51183
51264
  * Jodit Editor (https://xdsoft.net/jodit/)
51184
51265
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -51189,6 +51270,7 @@ __webpack_require__.r(__webpack_exports__);
51189
51270
  * @packageDocumentation
51190
51271
  * @module jodit
51191
51272
  */
51273
+ // eslint-disable-next-line simple-import-sort/imports
51192
51274
 
51193
51275
 
51194
51276
 
@@ -51208,7 +51290,7 @@ if (typeof process !== 'undefined' &&
51208
51290
  // JODIT-SECTION-END:POLYFILLS
51209
51291
  // copy constants in Jodit
51210
51292
  Object.keys(_core_constants__WEBPACK_IMPORTED_MODULE_2__).forEach(function (key) {
51211
- _jodit__WEBPACK_IMPORTED_MODULE_6__/* .Jodit */ .x[key] = _core_constants__WEBPACK_IMPORTED_MODULE_2__[key];
51293
+ _jodit__WEBPACK_IMPORTED_MODULE_0__/* .Jodit */ .x[key] = _core_constants__WEBPACK_IMPORTED_MODULE_2__[key];
51212
51294
  });
51213
51295
  var esFilter = function (key) { return key !== '__esModule'; };
51214
51296
  // Icons
@@ -51224,32 +51306,32 @@ Object.keys(_modules___WEBPACK_IMPORTED_MODULE_4__)
51224
51306
  var _a;
51225
51307
  // @ts-ignore
51226
51308
  var module = _modules___WEBPACK_IMPORTED_MODULE_4__[key];
51227
- var name = (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__/* .isFunction */ .Tn)((_a = module.prototype) === null || _a === void 0 ? void 0 : _a.className)
51309
+ var name = (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_1__/* .isFunction */ .Tn)((_a = module.prototype) === null || _a === void 0 ? void 0 : _a.className)
51228
51310
  ? module.prototype.className()
51229
51311
  : key;
51230
- if (!(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__/* .isString */ .Kg)(name)) {
51312
+ if (!(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_1__/* .isString */ .Kg)(name)) {
51231
51313
  console.warn('Module name must be a string', key);
51232
51314
  return;
51233
51315
  }
51234
51316
  // @ts-ignore
51235
- _jodit__WEBPACK_IMPORTED_MODULE_6__/* .Jodit */ .x.modules[name] = module;
51317
+ _jodit__WEBPACK_IMPORTED_MODULE_0__/* .Jodit */ .x.modules[name] = module;
51236
51318
  });
51237
51319
  // Decorators
51238
51320
  Object.keys(_core_decorators__WEBPACK_IMPORTED_MODULE_3__)
51239
51321
  .filter(esFilter)
51240
51322
  .forEach(function (key) {
51241
51323
  // @ts-ignore
51242
- _jodit__WEBPACK_IMPORTED_MODULE_6__/* .Jodit */ .x.decorators[key] = _core_decorators__WEBPACK_IMPORTED_MODULE_3__[key];
51324
+ _jodit__WEBPACK_IMPORTED_MODULE_0__/* .Jodit */ .x.decorators[key] = _core_decorators__WEBPACK_IMPORTED_MODULE_3__[key];
51243
51325
  });
51244
51326
  ['Confirm', 'Alert', 'Prompt'].forEach(function (key) {
51245
51327
  // @ts-ignore
51246
- _jodit__WEBPACK_IMPORTED_MODULE_6__/* .Jodit */ .x[key] = _modules___WEBPACK_IMPORTED_MODULE_4__[key];
51328
+ _jodit__WEBPACK_IMPORTED_MODULE_0__/* .Jodit */ .x[key] = _modules___WEBPACK_IMPORTED_MODULE_4__[key];
51247
51329
  });
51248
51330
  // Languages
51249
- Object.keys(_languages__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)
51331
+ Object.keys(_languages__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)
51250
51332
  .filter(esFilter)
51251
51333
  .forEach(function (key) {
51252
- _jodit__WEBPACK_IMPORTED_MODULE_6__/* .Jodit */ .x.lang[key] = _languages__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A[key];
51334
+ _jodit__WEBPACK_IMPORTED_MODULE_0__/* .Jodit */ .x.lang[key] = _languages__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A[key];
51253
51335
  });
51254
51336
 
51255
51337
  var CommitMode = /** @class */ (function () {