jodit 4.2.12 → 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 (84) hide show
  1. package/CHANGELOG.md +11 -5
  2. package/es2015/jodit.css +115 -115
  3. package/es2015/jodit.fat.min.css +1 -1
  4. package/es2015/jodit.fat.min.js +2 -2
  5. package/es2015/jodit.js +539 -444
  6. package/es2015/jodit.min.css +1 -1
  7. package/es2015/jodit.min.js +2 -2
  8. package/es2015/plugins/debug/debug.js +1 -1
  9. package/es2015/plugins/debug/debug.min.js +1 -1
  10. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  11. package/es2015/plugins/speech-recognize/speech-recognize.js +1 -1
  12. package/es2015/plugins/speech-recognize/speech-recognize.min.js +1 -1
  13. package/es2018/jodit.css +115 -115
  14. package/es2018/jodit.fat.min.css +1 -1
  15. package/es2018/jodit.fat.min.js +2 -2
  16. package/es2018/jodit.js +539 -444
  17. package/es2018/jodit.min.css +1 -1
  18. package/es2018/jodit.min.js +2 -2
  19. package/es2018/plugins/debug/debug.js +1 -1
  20. package/es2018/plugins/debug/debug.min.js +1 -1
  21. package/es2018/plugins/speech-recognize/speech-recognize.css +1 -1
  22. package/es2018/plugins/speech-recognize/speech-recognize.js +1 -1
  23. package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
  24. package/es2021/jodit.css +115 -115
  25. package/es2021/jodit.fat.min.css +1 -1
  26. package/es2021/jodit.fat.min.js +2 -2
  27. package/es2021/jodit.js +533 -440
  28. package/es2021/jodit.min.css +1 -1
  29. package/es2021/jodit.min.js +2 -2
  30. package/es2021/plugins/debug/debug.js +1 -1
  31. package/es2021/plugins/debug/debug.min.js +1 -1
  32. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  33. package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
  34. package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
  35. package/es2021.en/jodit.css +115 -115
  36. package/es2021.en/jodit.fat.min.css +1 -1
  37. package/es2021.en/jodit.fat.min.js +2 -2
  38. package/es2021.en/jodit.js +533 -440
  39. package/es2021.en/jodit.min.css +1 -1
  40. package/es2021.en/jodit.min.js +2 -2
  41. package/es2021.en/plugins/debug/debug.js +1 -1
  42. package/es2021.en/plugins/debug/debug.min.js +1 -1
  43. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  44. package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
  45. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
  46. package/es5/jodit.css +129 -129
  47. package/es5/jodit.fat.min.css +1 -1
  48. package/es5/jodit.fat.min.js +2 -2
  49. package/es5/jodit.js +556 -460
  50. package/es5/jodit.min.css +3 -3
  51. package/es5/jodit.min.js +2 -2
  52. package/es5/plugins/debug/debug.js +1 -1
  53. package/es5/plugins/debug/debug.min.js +1 -1
  54. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  55. package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
  56. package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
  57. package/esm/core/constants.js +1 -1
  58. package/esm/core/decorators/autobind/autobind.d.ts +5 -0
  59. package/esm/core/decorators/autobind/autobind.js +5 -0
  60. package/esm/core/selection/helpers/index.d.ts +9 -3
  61. package/esm/core/selection/helpers/index.js +48 -0
  62. package/esm/core/selection/selection.d.ts +6 -1
  63. package/esm/core/selection/selection.js +95 -117
  64. package/esm/index.d.ts +6 -1
  65. package/esm/index.js +3 -2
  66. package/esm/modules/table/table.d.ts +3 -1
  67. package/esm/modules/table/table.js +38 -33
  68. package/esm/modules/uploader/helpers/send-files.js +33 -29
  69. package/esm/plugins/backspace/cases/check-remove-char.js +65 -55
  70. package/esm/plugins/drag-and-drop/drag-and-drop.d.ts +2 -0
  71. package/esm/plugins/drag-and-drop/drag-and-drop.js +43 -36
  72. package/esm/plugins/inline-popup/config/items/cells.js +9 -0
  73. package/esm/plugins/link/link.js +71 -64
  74. package/esm/plugins/search/helpers/highlight-text-ranges.d.ts +0 -4
  75. package/esm/plugins/search/helpers/highlight-text-ranges.js +58 -49
  76. package/esm/plugins/table-keyboard-navigation/table-keyboard-navigation.js +35 -29
  77. package/package.json +1 -1
  78. package/types/core/decorators/autobind/autobind.d.ts +5 -0
  79. package/types/core/selection/helpers/index.d.ts +9 -3
  80. package/types/core/selection/selection.d.ts +6 -1
  81. package/types/index.d.ts +6 -1
  82. package/types/modules/table/table.d.ts +3 -1
  83. package/types/plugins/drag-and-drop/drag-and-drop.d.ts +2 -0
  84. 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.12
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.12";
3130
+ var APP_VERSION = "4.2.15";
3131
3131
  // prettier-ignore
3132
3132
  var ES = "es5";
3133
3133
  var IS_ES_MODERN = false;
@@ -3528,6 +3528,11 @@ var Create = /** @class */ (function () {
3528
3528
  * Released under MIT see LICENSE.txt in the project root for license information.
3529
3529
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
3530
3530
  */
3531
+ /**
3532
+ * [[include:core/decorators/autobind/README.md]]
3533
+ * @packageDocumentation
3534
+ * @module decorators/autobind
3535
+ */
3531
3536
 
3532
3537
 
3533
3538
 
@@ -11577,10 +11582,14 @@ var Response = /** @class */ (function () {
11577
11582
 
11578
11583
  "use strict";
11579
11584
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11580
- /* 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; }
11581
11588
  /* harmony export */ });
11582
- /* harmony import */ var _move_node_inside_start__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5298);
11583
- /* 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);
11584
11593
  /*!
11585
11594
  * Jodit Editor (https://xdsoft.net/jodit/)
11586
11595
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -11593,6 +11602,55 @@ var Response = /** @class */ (function () {
11593
11602
 
11594
11603
 
11595
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
+
11596
11654
  /***/ }),
11597
11655
 
11598
11656
  /***/ 5298:
@@ -11713,7 +11771,7 @@ function moveTheNodeAlongTheEdgeOutward(node, start, root) {
11713
11771
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11714
11772
  /* harmony export */ L: function() { return /* binding */ Selection; }
11715
11773
  /* harmony export */ });
11716
- /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(31635);
11774
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31635);
11717
11775
  /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
11718
11776
  /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22664);
11719
11777
  /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55186);
@@ -11723,6 +11781,7 @@ function moveTheNodeAlongTheEdgeOutward(node, start, root) {
11723
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__);
11724
11782
  /* harmony import */ var jodit_core_selection_helpers_move_the_node_along_the_edge_outward__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83541);
11725
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);
11726
11785
  /*!
11727
11786
  * Jodit Editor (https://xdsoft.net/jodit/)
11728
11787
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -11739,6 +11798,7 @@ function moveTheNodeAlongTheEdgeOutward(node, start, root) {
11739
11798
 
11740
11799
 
11741
11800
 
11801
+
11742
11802
  var Selection = /** @class */ (function () {
11743
11803
  function Selection(jodit) {
11744
11804
  var _this = this;
@@ -12030,7 +12090,7 @@ var Selection = /** @class */ (function () {
12030
12090
  if (!nodes.length) {
12031
12091
  return;
12032
12092
  }
12033
- 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];
12034
12094
  var range = this.createRange();
12035
12095
  range.setStartAfter(fakeLeft);
12036
12096
  if (fakeRight) {
@@ -12169,65 +12229,37 @@ var Selection = /** @class */ (function () {
12169
12229
  */
12170
12230
  Selection.prototype.current = function (checkChild) {
12171
12231
  if (checkChild === void 0) { checkChild = true; }
12172
- if (this.j.getRealMode() === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.MODE_WYSIWYG) {
12173
- var sel = this.sel;
12174
- if (!sel || sel.rangeCount === 0) {
12175
- return null;
12176
- }
12177
- var range = sel.getRangeAt(0);
12178
- var node = range.startContainer, rightMode_1 = false;
12179
- var child = function (nd) {
12180
- return rightMode_1 ? nd.lastChild : nd.firstChild;
12181
- };
12182
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isTag(node, 'br') && sel.isCollapsed) {
12183
- return node;
12184
- }
12185
- if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(node)) {
12186
- node = range.startContainer.childNodes[range.startOffset];
12187
- if (!node) {
12188
- node =
12189
- range.startContainer.childNodes[range.startOffset - 1];
12190
- rightMode_1 = true;
12191
- }
12192
- if (node && sel.isCollapsed && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(node)) {
12193
- // test Current method - Cursor in the left of some SPAN
12194
- if (!rightMode_1 && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(node.previousSibling)) {
12195
- node = node.previousSibling;
12196
- }
12197
- else if (checkChild) {
12198
- var current = child(node);
12199
- while (current) {
12200
- if (current && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(current)) {
12201
- node = current;
12202
- break;
12203
- }
12204
- current = child(current);
12205
- }
12206
- }
12207
- }
12208
- if (node && !sel.isCollapsed && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(node)) {
12209
- var leftChild = node, rightChild = node;
12210
- do {
12211
- leftChild = leftChild.firstChild;
12212
- rightChild = rightChild.lastChild;
12213
- } while (leftChild && rightChild && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(leftChild));
12214
- if (leftChild === rightChild &&
12215
- leftChild &&
12216
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(leftChild)) {
12217
- node = leftChild;
12218
- }
12219
- }
12220
- }
12221
- // check - cursor inside editor
12222
- if (node && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isOrContains(this.area, node)) {
12223
- return node;
12224
- }
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;
12225
12256
  }
12226
12257
  return null;
12227
12258
  };
12228
12259
  /**
12229
12260
  * Insert element in editor
12230
12261
  *
12262
+ * @param node - Node for insert
12231
12263
  * @param insertCursorAfter - After insert, cursor will move after element
12232
12264
  * @param fireChange - After insert, editor fire change event. You can prevent this behavior
12233
12265
  */
@@ -12292,6 +12324,7 @@ var Selection = /** @class */ (function () {
12292
12324
  * Inserts in the current cursor position some HTML snippet
12293
12325
  *
12294
12326
  * @param html - HTML The text to be inserted into the document
12327
+ * @param insertCursorAfter - After insert, cursor will move after element
12295
12328
  * @example
12296
12329
  * ```javascript
12297
12330
  * parent.s.insertHTML('<img src="image.png"/>');
@@ -12336,6 +12369,7 @@ var Selection = /** @class */ (function () {
12336
12369
  *
12337
12370
  * @param url - URL for image, or HTMLImageElement
12338
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>
12339
12373
  */
12340
12374
  Selection.prototype.insertImage = function (url, styles, defaultWidth) {
12341
12375
  if (styles === void 0) { styles = null; }
@@ -12394,74 +12428,81 @@ var Selection = /** @class */ (function () {
12394
12428
  var _this = this;
12395
12429
  var _a;
12396
12430
  var sel = this.sel;
12397
- if (sel && sel.rangeCount) {
12398
- var range = sel.getRangeAt(0);
12399
- var root_1 = range.commonAncestorContainer;
12400
- if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isHTMLElement(root_1)) {
12401
- root_1 = root_1.parentElement;
12402
- }
12403
- var nodes_1 = [], startOffset = range.startOffset, length = root_1.childNodes.length, elementOffset = startOffset < length ? startOffset : length - 1;
12404
- var start = range.startContainer === this.area
12405
- ? root_1.childNodes[elementOffset]
12406
- : range.startContainer, end_1 = range.endContainer === this.area
12407
- ? root_1.childNodes[range.endOffset - 1]
12408
- : range.endContainer;
12409
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(start) &&
12410
- start === range.startContainer &&
12411
- range.startOffset === ((_a = start.nodeValue) === null || _a === void 0 ? void 0 : _a.length) &&
12412
- start.nextSibling) {
12413
- start = start.nextSibling;
12414
- }
12415
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(end_1) &&
12416
- end_1 === range.endContainer &&
12417
- range.endOffset === 0 &&
12418
- end_1.previousSibling) {
12419
- end_1 = end_1.previousSibling;
12420
- }
12421
- var checkElm_1 = function (node) {
12422
- if (node &&
12423
- node !== root_1 &&
12424
- !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isEmptyTextNode(node) &&
12425
- !(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_4__/* .isMarker */ .rg)(node)) {
12426
- nodes_1.push(node);
12427
- }
12428
- };
12429
- checkElm_1(start);
12430
- if (start !== end_1 && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isOrContains(root_1, start, true)) {
12431
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.find(start, function (node) {
12432
- checkElm_1(node);
12433
- // checks parentElement as well because partial selections are not equal to entire element
12434
- return (node === end_1 ||
12435
- (node && node.contains && node.contains(end_1)));
12436
- }, root_1, true, false);
12437
- }
12438
- var forEvery_1 = function (current) {
12439
- if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isOrContains(_this.j.editor, current, true)) {
12440
- return;
12441
- }
12442
- if (current.nodeName.match(/^(UL|OL)$/)) {
12443
- 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;
12444
12488
  }
12445
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isTag(current, 'li')) {
12446
- if (current.firstChild) {
12447
- current = current.firstChild;
12448
- }
12449
- else {
12450
- var currentB = _this.j.createInside.text(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE);
12451
- current.appendChild(currentB);
12452
- current = currentB;
12453
- }
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;
12454
12493
  }
12455
- callback(current);
12456
- };
12457
- if (nodes_1.length === 0 && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isEmptyTextNode(start)) {
12458
- nodes_1.push(start);
12459
12494
  }
12460
- if (nodes_1.length === 0 && start.firstChild) {
12461
- 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);
12462
12503
  }
12463
- nodes_1.forEach(forEvery_1);
12464
12504
  }
12505
+ nodes.forEach(forEvery);
12465
12506
  };
12466
12507
  /**
12467
12508
  * Checks if the cursor is at the end(start) block
@@ -12474,7 +12515,7 @@ var Selection = /** @class */ (function () {
12474
12515
  */
12475
12516
  Selection.prototype.cursorInTheEdge = function (start, parentBlock, fake) {
12476
12517
  var _this = this;
12477
- var _a, _b;
12518
+ var _a;
12478
12519
  if (fake === void 0) { fake = null; }
12479
12520
  var end = !start, range = (_a = this.sel) === null || _a === void 0 ? void 0 : _a.getRangeAt(0);
12480
12521
  fake !== null && fake !== void 0 ? fake : (fake = this.current(false));
@@ -12493,13 +12534,7 @@ var Selection = /** @class */ (function () {
12493
12534
  };
12494
12535
  // check right offset
12495
12536
  if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isText(container)) {
12496
- var text = ((_b = container.nodeValue) === null || _b === void 0 ? void 0 : _b.length) ? container.nodeValue : '';
12497
- if (end && text.replace((0,jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP_END)(), '').length > offset) {
12498
- return false;
12499
- }
12500
- var inv = (0,jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP_START)().exec(text);
12501
- if (start &&
12502
- ((inv && inv[0].length < offset) || (!inv && offset > 0))) {
12537
+ if ((0,_helpers__WEBPACK_IMPORTED_MODULE_8__/* .cursorInTheEdgeOfString */ .Qe)(container, offset, start, end)) {
12503
12538
  return false;
12504
12539
  }
12505
12540
  }
@@ -12591,6 +12626,7 @@ var Selection = /** @class */ (function () {
12591
12626
  };
12592
12627
  /**
12593
12628
  * Set cursor in the node
12629
+ * @param node - Node element
12594
12630
  * @param inStart - set cursor in start of element
12595
12631
  */
12596
12632
  Selection.prototype.setCursorIn = function (node, inStart) {
@@ -12656,6 +12692,7 @@ var Selection = /** @class */ (function () {
12656
12692
  };
12657
12693
  /**
12658
12694
  * Select node
12695
+ * @param node - Node element
12659
12696
  * @param inward - select all inside
12660
12697
  */
12661
12698
  Selection.prototype.select = function (node, inward) {
@@ -12701,7 +12738,7 @@ var Selection = /** @class */ (function () {
12701
12738
  Selection.prototype.wrapInTagGen = function (fakes) {
12702
12739
  var font, elms, elms_1, elms_1_1, font, firstChild, lastChild, e_1_1;
12703
12740
  var e_1, _a;
12704
- 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) {
12705
12742
  switch (_b.label) {
12706
12743
  case 0:
12707
12744
  if (!this.isCollapsed()) return [3 /*break*/, 2];
@@ -12733,7 +12770,7 @@ var Selection = /** @class */ (function () {
12733
12770
  _b.label = 3;
12734
12771
  case 3:
12735
12772
  _b.trys.push([3, 8, 9, 10]);
12736
- 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();
12737
12774
  _b.label = 4;
12738
12775
  case 4:
12739
12776
  if (!!elms_1_1.done) return [3 /*break*/, 7];
@@ -12781,7 +12818,7 @@ var Selection = /** @class */ (function () {
12781
12818
  var e_2, _a;
12782
12819
  var result = [];
12783
12820
  try {
12784
- 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()) {
12785
12822
  var font = _c.value;
12786
12823
  try {
12787
12824
  if (font.firstChild &&
@@ -12983,19 +13020,19 @@ var Selection = /** @class */ (function () {
12983
13020
  }
12984
13021
  return this;
12985
13022
  };
12986
- (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__decorate */ .Cg)([
13023
+ (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
12987
13024
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.autobind
12988
13025
  ], Selection.prototype, "createRange", null);
12989
- (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__decorate */ .Cg)([
13026
+ (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
12990
13027
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.autobind
12991
13028
  ], Selection.prototype, "focus", null);
12992
- (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__decorate */ .Cg)([
13029
+ (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
12993
13030
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.autobind
12994
13031
  ], Selection.prototype, "setCursorAfter", null);
12995
- (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__decorate */ .Cg)([
13032
+ (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
12996
13033
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.autobind
12997
13034
  ], Selection.prototype, "setCursorBefore", null);
12998
- (0,tslib__WEBPACK_IMPORTED_MODULE_8__/* .__decorate */ .Cg)([
13035
+ (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
12999
13036
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.autobind
13000
13037
  ], Selection.prototype, "setCursorIn", null);
13001
13038
  return Selection;
@@ -24692,6 +24729,7 @@ var Table = /** @class */ (function (_super) {
24692
24729
  };
24693
24730
  /**
24694
24731
  * Generate formal table martix columns*rows
24732
+ * @param table - Working table
24695
24733
  * @param callback - if return false cycle break
24696
24734
  */
24697
24735
  Table.prototype.formalMatrix = function (table, callback) {
@@ -24763,7 +24801,6 @@ var Table = /** @class */ (function (_super) {
24763
24801
  * @param line - Insert a new line after/before this
24764
24802
  * line contains the selected cell
24765
24803
  * @param after - Insert a new line after line contains the selected cell
24766
- * @param create - Instance of Create class
24767
24804
  */
24768
24805
  Table.prototype.appendRow = function (table, line, after) {
24769
24806
  return Table.__appendRow(table, line, after, this.j.createInside);
@@ -24932,13 +24969,36 @@ var Table = /** @class */ (function (_super) {
24932
24969
  return Table.__getSelectedBound(table, selectedCells);
24933
24970
  };
24934
24971
  Table.__normalizeTable = function (table) {
24935
- var i, j, min, not;
24936
24972
  var __marked = [], box = Table.__formalMatrix(table);
24937
- // remove extra colspans
24938
- for (j = 0; j < box[0].length; j += 1) {
24939
- min = 1000000;
24940
- not = false;
24941
- 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) {
24942
25002
  if (box[i][j] === undefined) {
24943
25003
  continue; // broken table
24944
25004
  }
@@ -24949,7 +25009,7 @@ var Table = /** @class */ (function (_super) {
24949
25009
  min = Math.min(min, box[i][j].colSpan);
24950
25010
  }
24951
25011
  if (!not) {
24952
- for (i = 0; i < box.length; i += 1) {
25012
+ for (var i = 0; i < box.length; i += 1) {
24953
25013
  if (box[i][j] === undefined) {
24954
25014
  continue; // broken table
24955
25015
  }
@@ -24957,10 +25017,13 @@ var Table = /** @class */ (function (_super) {
24957
25017
  }
24958
25018
  }
24959
25019
  }
24960
- // remove extra rowspans
25020
+ };
25021
+ Table.__removeExtraRowspans = function (box, marked) {
25022
+ var i = 0;
25023
+ var j = 0;
24961
25024
  for (i = 0; i < box.length; i += 1) {
24962
- min = 1000000;
24963
- not = false;
25025
+ var min = 1000000;
25026
+ var not = false;
24964
25027
  for (j = 0; j < box[i].length; j += 1) {
24965
25028
  if (box[i][j] === undefined) {
24966
25029
  continue; // broken table
@@ -24976,31 +25039,10 @@ var Table = /** @class */ (function (_super) {
24976
25039
  if (box[i][j] === undefined) {
24977
25040
  continue; // broken table
24978
25041
  }
24979
- Table.__mark(box[i][j], 'rowspan', box[i][j].rowSpan - min + 1, __marked);
24980
- }
24981
- }
24982
- }
24983
- // remove rowspans and colspans equal 1 and empty class
24984
- for (i = 0; i < box.length; i += 1) {
24985
- for (j = 0; j < box[i].length; j += 1) {
24986
- if (box[i][j] === undefined) {
24987
- continue; // broken table
24988
- }
24989
- if (box[i][j].hasAttribute('rowspan') &&
24990
- box[i][j].rowSpan === 1) {
24991
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'rowspan', null);
24992
- }
24993
- if (box[i][j].hasAttribute('colspan') &&
24994
- box[i][j].colSpan === 1) {
24995
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'colspan', null);
24996
- }
24997
- if (box[i][j].hasAttribute('class') &&
24998
- !(0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'class')) {
24999
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'class', null);
25042
+ Table.__mark(box[i][j], 'rowspan', box[i][j].rowSpan - min + 1, marked);
25000
25043
  }
25001
25044
  }
25002
25045
  }
25003
- Table.__unmark(__marked);
25004
25046
  };
25005
25047
  /**
25006
25048
  * Try recalculate all coluns and rows after change
@@ -26467,37 +26509,7 @@ function sendFiles(uploader, files, handlerSuccess, handlerError, process) {
26467
26509
  }
26468
26510
  var promises = [];
26469
26511
  if (o.insertImageAsBase64URI) {
26470
- var file_1, i = void 0;
26471
- var _loop_1 = function () {
26472
- file_1 = fileList[i];
26473
- if (file_1 && file_1.type) {
26474
- var mime = file_1.type.match(/\/([a-z0-9]+)/i);
26475
- var extension = mime[1] ? mime[1].toLowerCase() : '';
26476
- if (o.imagesExtensions.includes(extension)) {
26477
- var reader_1 = new FileReader();
26478
- promises.push(uploader.j.async.promise(function (resolve, reject) {
26479
- reader_1.onerror = reject;
26480
- reader_1.onloadend = function () {
26481
- var resp = {
26482
- baseurl: '',
26483
- files: [reader_1.result],
26484
- isImages: [true]
26485
- };
26486
- var handler = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__.isFunction)(handlerSuccess)
26487
- ? handlerSuccess
26488
- : o.defaultHandlerSuccess;
26489
- handler.call(uploader, resp);
26490
- resolve(resp);
26491
- };
26492
- reader_1.readAsDataURL(file_1);
26493
- }));
26494
- fileList[i] = null;
26495
- }
26496
- }
26497
- };
26498
- for (i = 0; i < fileList.length; i += 1) {
26499
- _loop_1();
26500
- }
26512
+ readImagesWithReader(fileList, o.imagesExtensions, promises, uploader, handlerSuccess, o.defaultHandlerSuccess);
26501
26513
  }
26502
26514
  fileList = fileList.filter(function (a) { return a; });
26503
26515
  if (fileList.length) {
@@ -26508,7 +26520,7 @@ function sendFiles(uploader, files, handlerSuccess, handlerError, process) {
26508
26520
  for (var i = 0; i < fileList.length; i += 1) {
26509
26521
  file = fileList[i];
26510
26522
  if (file) {
26511
- var hasRealExtension = /\.[\d\w]+$/.test(file.name);
26523
+ var hasRealExtension = /\.\w+$/.test(file.name);
26512
26524
  var mime = file.type.match(/\/([a-z0-9]+)/i);
26513
26525
  var extension = mime && mime[1] ? mime[1].toLowerCase() : '';
26514
26526
  var newName = fileList[i].name ||
@@ -26557,6 +26569,40 @@ function sendFiles(uploader, files, handlerSuccess, handlerError, process) {
26557
26569
  }
26558
26570
  return Promise.all(promises);
26559
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
+ }
26560
26606
 
26561
26607
 
26562
26608
  /***/ }),
@@ -28217,7 +28263,7 @@ var backspace = /** @class */ (function (_super) {
28217
28263
  if (jodit.e.fire('backSpaceBeforeCases', backspace, fakeNode)) {
28218
28264
  return false;
28219
28265
  }
28220
- (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);
28221
28267
  if (_cases__WEBPACK_IMPORTED_MODULE_6__/* .cases */ .C.some(function (func) {
28222
28268
  if ((0,jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_9__/* .isFunction */ .T)(func) &&
28223
28269
  func(jodit, fakeNode, backspace, mode)) {
@@ -28480,22 +28526,15 @@ function checkNotCollapsed(jodit) {
28480
28526
  * @private
28481
28527
  */
28482
28528
  function checkRemoveChar(jodit, fakeNode, backspace, mode) {
28483
- var _a, _b, _c;
28529
+ var _a, _b;
28484
28530
  var step = backspace ? -1 : 1;
28485
28531
  var anotherSibling = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.sibling(fakeNode, !backspace);
28486
- var sibling = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.sibling(fakeNode, backspace), removeNeighbor = null;
28487
- var charRemoved = false, removed;
28488
- var getNextInlineSibling = function (sibling) {
28489
- var nextSibling = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.sibling(sibling, backspace);
28490
- if (!nextSibling &&
28491
- sibling.parentNode &&
28492
- sibling.parentNode !== jodit.editor) {
28493
- nextSibling = (0,jodit_plugins_backspace_helpers__WEBPACK_IMPORTED_MODULE_3__/* .findMostNestedNeighbor */ .s)(sibling, !backspace, jodit.editor, true);
28494
- }
28495
- return nextSibling;
28496
- };
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;
28497
28536
  if (!sibling) {
28498
- sibling = getNextInlineSibling(fakeNode);
28537
+ sibling = getNextInlineSibling(fakeNode, backspace, jodit.editor);
28499
28538
  }
28500
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))) {
28501
28540
  while (jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isInlineBlock(sibling)) {
@@ -28505,57 +28544,17 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode) {
28505
28544
  break;
28506
28545
  }
28507
28546
  if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
28508
- // For Unicode escapes
28509
- var value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.toArray)(sibling.nodeValue);
28510
- var length = value.length;
28511
- var index = backspace ? length - 1 : 0;
28512
- if (value[index] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28513
- while (value[index] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28514
- index += step;
28515
- }
28516
- }
28517
- removed = value[index];
28518
- if (value[index + step] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28519
- index += step;
28520
- while (value[index] === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE) {
28521
- index += step;
28522
- }
28523
- index += backspace ? 1 : -1;
28524
- }
28525
- if (backspace && index < 0) {
28526
- value = [];
28527
- }
28528
- else {
28529
- value = value.slice(backspace ? 0 : index + 1, backspace ? index : length);
28530
- }
28531
- if (!anotherSibling ||
28532
- !jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(anotherSibling) ||
28533
- (!backspace ? / $/ : /^ /).test((_b = anotherSibling.nodeValue) !== null && _b !== void 0 ? _b : '') ||
28534
- !(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.trimInv)(anotherSibling.nodeValue || '').length) {
28535
- for (var i = backspace ? value.length - 1 : 0; backspace ? i >= 0 : i < value.length; i += backspace ? -1 : 1) {
28536
- if (value[i] === ' ') {
28537
- value[i] = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.NBSP_SPACE;
28538
- }
28539
- else {
28540
- break;
28541
- }
28542
- }
28543
- }
28544
- sibling.nodeValue = value.join('');
28547
+ removed = tryRemoveChar(sibling, backspace, step, anotherSibling);
28545
28548
  }
28546
- 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)) {
28547
28550
  removeNeighbor = sibling;
28548
28551
  }
28549
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);
28550
28554
  charRemoved = true;
28551
- (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);
28552
- if (mode === 'sentence' ||
28553
- (mode === 'word' && removed !== ' ' && removed !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.NBSP_SPACE)) {
28554
- checkRemoveChar(jodit, fakeNode, backspace, mode);
28555
- }
28556
28555
  break;
28557
28556
  }
28558
- var nextSibling = getNextInlineSibling(sibling);
28557
+ var nextSibling = getNextInlineSibling(sibling, backspace, jodit.editor);
28559
28558
  if (removeNeighbor) {
28560
28559
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.safeRemove(removeNeighbor);
28561
28560
  removeNeighbor = null;
@@ -28577,6 +28576,13 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode) {
28577
28576
  }
28578
28577
  return charRemoved;
28579
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
+ }
28580
28586
  /**
28581
28587
  * Helper removes all empty inline parents
28582
28588
  */
@@ -28601,6 +28607,57 @@ function addBRInsideEmptyBlock(jodit, node) {
28601
28607
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.after(node, jodit.createInside.element('br'));
28602
28608
  }
28603
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
+ }
28604
28661
 
28605
28662
 
28606
28663
  /***/ }),
@@ -28638,7 +28695,7 @@ function checkRemoveContentNotEditable(jodit, fakeNode, backspace) {
28638
28695
  !jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isContentEditable(neighbor, jodit.editor)) {
28639
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);
28640
28697
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.safeRemove(neighbor);
28641
- (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);
28642
28699
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? jodit.s.setCursorBefore : jodit.s.setCursorAfter, fakeNode);
28643
28700
  return true;
28644
28701
  }
@@ -31562,45 +31619,11 @@ var dragAndDrop = /** @class */ (function (_super) {
31562
31619
  var sel = this.j.s.sel;
31563
31620
  var range = this.bufferRange ||
31564
31621
  (sel && sel.rangeCount ? sel.getRangeAt(0) : null);
31565
- var fragment = null;
31566
- if (!this.draggable && range) {
31567
- fragment = this.isCopyMode
31568
- ? range.cloneContents()
31569
- : range.extractContents();
31570
- }
31571
- else if (this.draggable) {
31572
- if (this.isCopyMode) {
31573
- var _a = (0,tslib__WEBPACK_IMPORTED_MODULE_7__/* .__read */ .zs)((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(this.draggable, '-is-file') === '1'
31574
- ? ['a', 'href']
31575
- : ['img', 'src'], 2), tagName = _a[0], field = _a[1];
31576
- fragment = this.j.createInside.element(tagName);
31577
- fragment.setAttribute(field, (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(this.draggable, 'data-src') ||
31578
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(this.draggable, 'src') ||
31579
- '');
31580
- if (tagName === 'a') {
31581
- fragment.textContent = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.attr)(fragment, field) || '';
31582
- }
31583
- }
31584
- else {
31585
- fragment = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_4__.dataBind)(this.draggable, 'target');
31586
- }
31587
- }
31588
- else if (this.getText(event)) {
31589
- fragment = this.j.createInside.fromHTML(this.getText(event));
31590
- }
31622
+ var fragment = this.__getWorkFragment(range, event);
31591
31623
  sel && sel.removeAllRanges();
31592
31624
  this.j.s.insertCursorAtPoint(event.clientX, event.clientY);
31593
31625
  if (fragment) {
31594
- this.j.s.insertNode(fragment, false, false);
31595
- if (range && fragment.firstChild && fragment.lastChild) {
31596
- range.setStartBefore(fragment.firstChild);
31597
- range.setEndAfter(fragment.lastChild);
31598
- this.j.s.selectRange(range);
31599
- this.j.e.fire('synchro');
31600
- }
31601
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isTag(fragment, 'img') && this.j.events) {
31602
- this.j.e.fire('afterInsertImage', fragment);
31603
- }
31626
+ this.__insertFragment.call(this, fragment, range);
31604
31627
  }
31605
31628
  event.preventDefault();
31606
31629
  event.stopPropagation();
@@ -31608,6 +31631,47 @@ var dragAndDrop = /** @class */ (function (_super) {
31608
31631
  this.isFragmentFromEditor = false;
31609
31632
  this.removeDragListeners();
31610
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
+ };
31611
31675
  /** @override */
31612
31676
  dragAndDrop.prototype.beforeDestruct = function () {
31613
31677
  this.onDragEnd();
@@ -35847,6 +35911,9 @@ var cmd = function (control) {
35847
35911
  if (!(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__/* .isJoditObject */ .y0)(editor)) {
35848
35912
  return;
35849
35913
  }
35914
+ if (!control.args) {
35915
+ return false;
35916
+ }
35850
35917
  var command = cmd(control);
35851
35918
  editor.execCommand(command, false, table);
35852
35919
  },
@@ -35863,6 +35930,9 @@ var cmd = function (control) {
35863
35930
  if (!(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__/* .isJoditObject */ .y0)(editor)) {
35864
35931
  return;
35865
35932
  }
35933
+ if (!control.args) {
35934
+ return false;
35935
+ }
35866
35936
  var command = cmd(control);
35867
35937
  editor.execCommand(command, false, table);
35868
35938
  },
@@ -35882,6 +35952,9 @@ var cmd = function (control) {
35882
35952
  if (!(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__/* .isJoditObject */ .y0)(editor)) {
35883
35953
  return;
35884
35954
  }
35955
+ if (!control.args) {
35956
+ return false;
35957
+ }
35885
35958
  var command = cmd(control);
35886
35959
  editor.execCommand(command, false, table);
35887
35960
  editor.e.fire('hidePopup');
@@ -37478,35 +37551,7 @@ var link = /** @class */ (function (_super) {
37478
37551
  if (link) {
37479
37552
  url_input.value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'href') || '';
37480
37553
  if (modeClassName) {
37481
- switch (modeClassName) {
37482
- case 'input':
37483
- if (className_input) {
37484
- className_input.value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'class') || '';
37485
- }
37486
- break;
37487
- case 'select':
37488
- if (className_select) {
37489
- for (var i = 0; i < className_select.selectedOptions.length; i++) {
37490
- var option = className_select.options.item(i);
37491
- if (option) {
37492
- option.selected = false;
37493
- }
37494
- }
37495
- var classNames = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'class') || '';
37496
- classNames.split(' ').forEach(function (className) {
37497
- if (className) {
37498
- for (var i = 0; i < className_select.options.length; i++) {
37499
- var option = className_select.options.item(i);
37500
- if ((option === null || option === void 0 ? void 0 : option.value) &&
37501
- option.value === className) {
37502
- option.selected = true;
37503
- }
37504
- }
37505
- }
37506
- });
37507
- }
37508
- break;
37509
- }
37554
+ readClassnames(modeClassName, className_input, link, className_select);
37510
37555
  }
37511
37556
  if (openInNewTabCheckbox && target_checkbox) {
37512
37557
  target_checkbox.checked = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'target') === '_blank';
@@ -37567,44 +37612,10 @@ var link = /** @class */ (function (_super) {
37567
37612
  links = [link];
37568
37613
  }
37569
37614
  links.forEach(function (a) {
37570
- var _a;
37571
37615
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'href', url_input.value);
37572
- if (modeClassName && (className_input !== null && className_input !== void 0 ? className_input : className_select)) {
37573
- if (modeClassName === 'input') {
37574
- if (className_input.value === '' &&
37575
- a.hasAttribute('class')) {
37576
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'class', null);
37577
- }
37578
- if (className_input.value !== '') {
37579
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'class', className_input.value);
37580
- }
37581
- }
37582
- else if (modeClassName === 'select') {
37583
- if (a.hasAttribute('class')) {
37584
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'class', null);
37585
- }
37586
- for (var i = 0; i < className_select.selectedOptions.length; i++) {
37587
- var className = (_a = className_select.selectedOptions.item(i)) === null || _a === void 0 ? void 0 : _a.value;
37588
- if (className) {
37589
- a.classList.add(className);
37590
- }
37591
- }
37592
- }
37593
- }
37616
+ writeClasses(modeClassName, className_input, className_select, a);
37594
37617
  if (!isImageContent) {
37595
- var newContent = a.textContent;
37596
- if (content_input.value.trim().length) {
37597
- if (textWasChanged) {
37598
- newContent = content_input.value;
37599
- }
37600
- }
37601
- else {
37602
- newContent = url_input.value;
37603
- }
37604
- var content = a.textContent;
37605
- if (newContent !== content) {
37606
- a.textContent = newContent;
37607
- }
37618
+ writeImage(a, content_input, textWasChanged, url_input);
37608
37619
  }
37609
37620
  if (openInNewTabCheckbox && target_checkbox) {
37610
37621
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'target', target_checkbox.checked ? '_blank' : null);
@@ -37651,6 +37662,75 @@ var link = /** @class */ (function (_super) {
37651
37662
  }(jodit_core_plugin__WEBPACK_IMPORTED_MODULE_4__/* .Plugin */ .k));
37652
37663
 
37653
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
+ }
37654
37734
 
37655
37735
 
37656
37736
  /***/ }),
@@ -40600,7 +40680,6 @@ jodit_config__WEBPACK_IMPORTED_MODULE_2__/* .Config */ .T.prototype.controls.fin
40600
40680
  /* harmony export */ _B: function() { return /* binding */ highlightTextRanges; },
40601
40681
  /* harmony export */ zy: function() { return /* binding */ getSelectionWrappers; }
40602
40682
  /* harmony export */ });
40603
- /* unused harmony export isSelectionWrapper */
40604
40683
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31635);
40605
40684
  /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55186);
40606
40685
  /* harmony import */ var jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58720);
@@ -40620,11 +40699,65 @@ var TMP_ATTR = 'jd-tmp-selection';
40620
40699
  * @private
40621
40700
  */
40622
40701
  function highlightTextRanges(jodit, rng, restRanges, ci, root) {
40623
- var _a, e_1, _b;
40702
+ var _a;
40624
40703
  if (rng.startContainer.nodeValue == null ||
40625
40704
  rng.endContainer.nodeValue == null) {
40626
40705
  return;
40627
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) {
40628
40761
  if (jodit.o.search.useCustomHighlightAPI &&
40629
40762
  // @ts-ignore Because Highlight is not defined in the types TS 5.3.3
40630
40763
  typeof window.Highlight !== 'undefined') {
@@ -40641,12 +40774,12 @@ function highlightTextRanges(jodit, rng, restRanges, ci, root) {
40641
40774
  // @ts-ignore
40642
40775
  CSS.highlights.set('jodit-search-result', searchHighlight);
40643
40776
  restRanges.length = 0;
40644
- return;
40777
+ return true;
40645
40778
  }
40646
- var span = ci.element('span', (_a = {},
40647
- _a[TMP_ATTR] = true,
40648
- _a));
40649
- 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;
40650
40783
  var startText = rng.startContainer.nodeValue;
40651
40784
  var diff = 0;
40652
40785
  if (rng.startOffset !== 0) {
@@ -40683,56 +40816,12 @@ function highlightTextRanges(jodit, rng, restRanges, ci, root) {
40683
40816
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
40684
40817
  finally {
40685
40818
  try {
40686
- 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);
40687
40820
  }
40688
40821
  finally { if (e_1) throw e_1.error; }
40689
40822
  }
40690
40823
  rng.endOffset = rng.endContainer.nodeValue.length;
40691
40824
  }
40692
- var next = rng.startContainer;
40693
- do {
40694
- if (!next) {
40695
- break;
40696
- }
40697
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isText(next) && !isSelectionWrapper(next.parentNode)) {
40698
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.wrap(next, span.cloneNode(), ci);
40699
- }
40700
- if (next === rng.endContainer) {
40701
- break;
40702
- }
40703
- var step = next.firstChild || next.nextSibling;
40704
- if (!step) {
40705
- while (next && !next.nextSibling && next !== root) {
40706
- next = next.parentNode;
40707
- }
40708
- step = next === null || next === void 0 ? void 0 : next.nextSibling;
40709
- }
40710
- next = step;
40711
- } while (next && next !== root);
40712
- }
40713
- /**
40714
- * @private
40715
- */
40716
- function getSelectionWrappers(root) {
40717
- return (0,jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_1__.$$)("[".concat(TMP_ATTR, "]"), root);
40718
- }
40719
- /**
40720
- * @private
40721
- */
40722
- function clearSelectionWrappers(root) {
40723
- getSelectionWrappers(root).forEach(function (span) { return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.unwrap(span); });
40724
- }
40725
- /**
40726
- * @private
40727
- */
40728
- function clearSelectionWrappersFromHTML(root) {
40729
- return root.replace(RegExp("<span[^>]+".concat(TMP_ATTR, "[^>]+>(.*?)</span>"), 'g'), '$1');
40730
- }
40731
- /**
40732
- * @private
40733
- */
40734
- function isSelectionWrapper(node) {
40735
- return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isElement(node) && node.hasAttribute(TMP_ATTR);
40736
40825
  }
40737
40826
 
40738
40827
 
@@ -45115,40 +45204,10 @@ function tableKeyboardNavigation(editor) {
45115
45204
  .off('.tableKeyboardNavigation')
45116
45205
  .on('keydown.tableKeyboardNavigation', function (event) {
45117
45206
  var key = event.key;
45118
- if (!WORK_KEYS.has(key)) {
45119
- return;
45120
- }
45121
- var current = editor.s.current();
45122
- if (!current) {
45123
- return;
45124
- }
45125
- 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);
45126
45208
  if (!cell) {
45127
45209
  return;
45128
45210
  }
45129
- var range = editor.s.range;
45130
- if (key !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_TAB && current !== cell) {
45131
- var isNextDirection = key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT || key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN;
45132
- 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) {
45133
- return key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_UP || key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN
45134
- ? jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTag(elm, 'br')
45135
- : Boolean(elm);
45136
- }, cell);
45137
- if ((!isNextDirection &&
45138
- (hasNext ||
45139
- (key !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_UP &&
45140
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(current) &&
45141
- range.startOffset !== 0))) ||
45142
- (isNextDirection &&
45143
- (hasNext ||
45144
- (key !== jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN &&
45145
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(current) &&
45146
- current.nodeValue &&
45147
- range.startOffset !==
45148
- current.nodeValue.length)))) {
45149
- return;
45150
- }
45151
- }
45152
45211
  var tableModule = editor.getInstance(jodit_modules_table_table__WEBPACK_IMPORTED_MODULE_4__/* .Table */ .X, editor.o);
45153
45212
  var table = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.closest(cell, 'table', editor.editor);
45154
45213
  var next = null;
@@ -45208,6 +45267,42 @@ function tableKeyboardNavigation(editor) {
45208
45267
  });
45209
45268
  }
45210
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
+ }
45211
45306
 
45212
45307
 
45213
45308
  /***/ }),
@@ -51155,16 +51250,16 @@ var __webpack_exports__ = {};
51155
51250
  __webpack_require__.r(__webpack_exports__);
51156
51251
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
51157
51252
  /* harmony export */ CommitMode: function() { return /* binding */ CommitMode; },
51158
- /* 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; }
51159
51254
  /* harmony export */ });
51160
- /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9823);
51161
- /* 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);
51162
51257
  /* harmony import */ var _core_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17352);
51163
51258
  /* harmony import */ var _core_decorators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22664);
51164
51259
  /* harmony import */ var _modules___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(37435);
51165
51260
  /* harmony import */ var _styles_icons___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(79721);
51166
- /* harmony import */ var _jodit__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46173);
51167
- /* 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);
51168
51263
  /*!
51169
51264
  * Jodit Editor (https://xdsoft.net/jodit/)
51170
51265
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -51175,6 +51270,7 @@ __webpack_require__.r(__webpack_exports__);
51175
51270
  * @packageDocumentation
51176
51271
  * @module jodit
51177
51272
  */
51273
+ // eslint-disable-next-line simple-import-sort/imports
51178
51274
 
51179
51275
 
51180
51276
 
@@ -51194,7 +51290,7 @@ if (typeof process !== 'undefined' &&
51194
51290
  // JODIT-SECTION-END:POLYFILLS
51195
51291
  // copy constants in Jodit
51196
51292
  Object.keys(_core_constants__WEBPACK_IMPORTED_MODULE_2__).forEach(function (key) {
51197
- _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];
51198
51294
  });
51199
51295
  var esFilter = function (key) { return key !== '__esModule'; };
51200
51296
  // Icons
@@ -51210,32 +51306,32 @@ Object.keys(_modules___WEBPACK_IMPORTED_MODULE_4__)
51210
51306
  var _a;
51211
51307
  // @ts-ignore
51212
51308
  var module = _modules___WEBPACK_IMPORTED_MODULE_4__[key];
51213
- 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)
51214
51310
  ? module.prototype.className()
51215
51311
  : key;
51216
- 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)) {
51217
51313
  console.warn('Module name must be a string', key);
51218
51314
  return;
51219
51315
  }
51220
51316
  // @ts-ignore
51221
- _jodit__WEBPACK_IMPORTED_MODULE_6__/* .Jodit */ .x.modules[name] = module;
51317
+ _jodit__WEBPACK_IMPORTED_MODULE_0__/* .Jodit */ .x.modules[name] = module;
51222
51318
  });
51223
51319
  // Decorators
51224
51320
  Object.keys(_core_decorators__WEBPACK_IMPORTED_MODULE_3__)
51225
51321
  .filter(esFilter)
51226
51322
  .forEach(function (key) {
51227
51323
  // @ts-ignore
51228
- _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];
51229
51325
  });
51230
51326
  ['Confirm', 'Alert', 'Prompt'].forEach(function (key) {
51231
51327
  // @ts-ignore
51232
- _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];
51233
51329
  });
51234
51330
  // Languages
51235
- Object.keys(_languages__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)
51331
+ Object.keys(_languages__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)
51236
51332
  .filter(esFilter)
51237
51333
  .forEach(function (key) {
51238
- _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];
51239
51335
  });
51240
51336
 
51241
51337
  var CommitMode = /** @class */ (function () {