jodit 4.2.24 → 4.2.27

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 (96) hide show
  1. package/CHANGELOG.md +24 -5
  2. package/es2015/jodit.css +4 -2
  3. package/es2015/jodit.fat.min.css +1 -1
  4. package/es2015/jodit.fat.min.js +2 -2
  5. package/es2015/jodit.js +166 -76
  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 +33 -7
  12. package/es2015/plugins/speech-recognize/speech-recognize.min.js +2 -2
  13. package/es2018/jodit.css +4 -2
  14. package/es2018/jodit.fat.min.css +1 -1
  15. package/es2018/jodit.fat.min.js +2 -2
  16. package/es2018/jodit.js +166 -76
  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 +33 -7
  23. package/es2018/plugins/speech-recognize/speech-recognize.min.js +2 -2
  24. package/es2021/jodit.css +4 -2
  25. package/es2021/jodit.fat.min.css +1 -1
  26. package/es2021/jodit.fat.min.js +2 -2
  27. package/es2021/jodit.js +166 -76
  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 +33 -7
  34. package/es2021/plugins/speech-recognize/speech-recognize.min.js +2 -2
  35. package/es2021.en/jodit.css +4 -2
  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 +101 -57
  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 +3 -1
  45. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +2 -2
  46. package/es5/jodit.css +11 -6
  47. package/es5/jodit.fat.min.css +1 -1
  48. package/es5/jodit.fat.min.js +2 -2
  49. package/es5/jodit.js +167 -76
  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 +33 -7
  56. package/es5/plugins/speech-recognize/speech-recognize.min.js +2 -2
  57. package/esm/core/constants.js +3 -3
  58. package/esm/core/dom/dom.d.ts +2 -1
  59. package/esm/core/dom/dom.js +10 -4
  60. package/esm/core/global.js +4 -1
  61. package/esm/core/helpers/normalize/normalize-key-aliases.js +2 -1
  62. package/esm/core/ui/button/tooltip/tooltip.d.ts +1 -0
  63. package/esm/core/ui/button/tooltip/tooltip.js +11 -5
  64. package/esm/langs/ua.d.ts +212 -0
  65. package/esm/langs/ua.js +225 -0
  66. package/esm/languages.js +2 -0
  67. package/esm/modules/table/table.d.ts +2 -3
  68. package/esm/modules/table/table.js +27 -34
  69. package/esm/plugins/add-new-line/add-new-line.js +4 -1
  70. package/esm/plugins/clean-html/helpers/visitor/filters/fill-empty-paragraph.js +9 -1
  71. package/esm/plugins/hotkeys/hotkeys.js +4 -2
  72. package/esm/plugins/line-height/langs/index.d.ts +2 -1
  73. package/esm/plugins/line-height/langs/index.js +2 -1
  74. package/esm/plugins/line-height/langs/ua.d.ts +4 -0
  75. package/esm/plugins/line-height/langs/ua.js +9 -0
  76. package/esm/plugins/select-cells/select-cells.js +1 -1
  77. package/esm/plugins/speech-recognize/langs/index.d.ts +2 -1
  78. package/esm/plugins/speech-recognize/langs/index.js +2 -1
  79. package/esm/plugins/speech-recognize/langs/ua.d.ts +9 -0
  80. package/esm/plugins/speech-recognize/langs/ua.js +14 -0
  81. package/esm/plugins/spellcheck/langs/index.d.ts +2 -1
  82. package/esm/plugins/spellcheck/langs/index.js +2 -1
  83. package/esm/plugins/spellcheck/langs/ua.d.ts +1 -0
  84. package/esm/plugins/spellcheck/langs/ua.js +9 -0
  85. package/esm/plugins/table/config.js +19 -3
  86. package/package.json +1 -1
  87. package/types/core/dom/dom.d.ts +2 -1
  88. package/types/core/ui/button/tooltip/tooltip.d.ts +1 -0
  89. package/types/langs/ua.d.ts +212 -0
  90. package/types/modules/table/table.d.ts +2 -3
  91. package/types/plugins/line-height/langs/index.d.ts +2 -1
  92. package/types/plugins/line-height/langs/ua.d.ts +4 -0
  93. package/types/plugins/speech-recognize/langs/index.d.ts +2 -1
  94. package/types/plugins/speech-recognize/langs/ua.d.ts +9 -0
  95. package/types/plugins/spellcheck/langs/index.d.ts +2 -1
  96. package/types/plugins/spellcheck/langs/ua.d.ts +1 -0
package/es2018/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.24
4
+ * Version: v4.2.27
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1736,7 +1736,7 @@ __webpack_require__.r(__webpack_exports__);
1736
1736
  * Released under MIT see LICENSE.txt in the project root for license information.
1737
1737
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
1738
1738
  */
1739
- const APP_VERSION = "4.2.24";
1739
+ const APP_VERSION = "4.2.27";
1740
1740
  // prettier-ignore
1741
1741
  const ES = "es2018";
1742
1742
  const IS_ES_MODERN = true;
@@ -1898,8 +1898,8 @@ const KEY_ALIASES = {
1898
1898
  option: 'alt',
1899
1899
  return: 'enter',
1900
1900
  right: 'arrowright',
1901
- space: ' ',
1902
- spacebar: ' ',
1901
+ space: 'space',
1902
+ spacebar: 'space',
1903
1903
  up: 'arrowup',
1904
1904
  win: 'meta',
1905
1905
  windows: 'meta'
@@ -2861,11 +2861,17 @@ class Dom {
2861
2861
  }
2862
2862
  static replace(elm, newTagName, create, withAttributes = false, notMoveContent = false) {
2863
2863
  if ((0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isHTML */ .AH)(newTagName)) {
2864
+ void 0;
2864
2865
  newTagName = create.fromHTML(newTagName);
2865
2866
  }
2866
- const tag = (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isString */ .Kg)(newTagName)
2867
- ? create.element(newTagName)
2868
- : newTagName;
2867
+ let tag;
2868
+ if ((0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isString */ .Kg)(newTagName)) {
2869
+ void 0;
2870
+ tag = create.element(newTagName);
2871
+ }
2872
+ else {
2873
+ tag = newTagName;
2874
+ }
2869
2875
  if (!notMoveContent) {
2870
2876
  while (elm.firstChild) {
2871
2877
  tag.appendChild(elm.firstChild);
@@ -4518,7 +4524,8 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4518
4524
  const data = boxes.get(jodit) || {}, key = name + tag;
4519
4525
  const view = (0,jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_6__/* .isViewObject */ .h)(jodit) ? jodit : jodit.j;
4520
4526
  if (!data[key]) {
4521
- let c = view.c, body = (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot
4527
+ let c = view.c;
4528
+ let body = (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot
4522
4529
  ? jodit.o.shadowRoot
4523
4530
  : jodit.od.body;
4524
4531
  if (createInsideEditor &&
@@ -4538,6 +4545,7 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4538
4545
  body.appendChild(box);
4539
4546
  data[key] = box;
4540
4547
  jodit.hookStatus('beforeDestruct', () => {
4548
+ view.events.off(box);
4541
4549
  _dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(box);
4542
4550
  delete data[key];
4543
4551
  if (Object.keys(data).length) {
@@ -4545,6 +4553,7 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4545
4553
  }
4546
4554
  });
4547
4555
  boxes.set(jodit, data);
4556
+ view.events.fire('getContainer', box);
4548
4557
  }
4549
4558
  data[key].classList.remove('jodit_theme_default', 'jodit_theme_dark');
4550
4559
  data[key].classList.add(`jodit_theme_${view.o.theme || 'default'}`);
@@ -6345,7 +6354,8 @@ function normalizeKeyAliases(keys) {
6345
6354
  ctrl: 2,
6346
6355
  control: 2,
6347
6356
  alt: 3,
6348
- shift: 4
6357
+ shift: 4,
6358
+ space: 5
6349
6359
  };
6350
6360
  return keys
6351
6361
  .replace(/\+\+/g, '+add')
@@ -13422,15 +13432,21 @@ let UITooltip = UITooltip_1 = class UITooltip extends jodit_core_ui_element__WEB
13422
13432
  if (!view.o.textIcons &&
13423
13433
  view.o.showTooltip &&
13424
13434
  !view.o.useNativeTooltip) {
13435
+ this.j.e.on('getContainer', (box) => {
13436
+ this.__onAttach(box);
13437
+ });
13425
13438
  view.hookStatus(jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .STATUSES */ .f.ready, () => {
13426
- // TODO Move it inside __show method. Now it is here because testcase failed with capturing
13427
- (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .getContainer */ .My)(this.j, UITooltip_1).appendChild(this.container);
13428
- view.e.on(view.container, 'mouseenter.tooltip', this.__onMouseEnter, {
13429
- capture: true
13430
- });
13439
+ this.__onAttach(this.j.container);
13431
13440
  });
13432
13441
  }
13433
13442
  }
13443
+ __onAttach(container) {
13444
+ // TODO Move it inside __show method. Now it is here because testcase failed with capturing
13445
+ (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .getContainer */ .My)(this.j, UITooltip_1).appendChild(this.container);
13446
+ this.j.e.on(container, 'mouseenter.tooltip', this.__onMouseEnter, {
13447
+ capture: true
13448
+ });
13449
+ }
13434
13450
  __addListenersOnEnter() {
13435
13451
  if (this.__listenClose) {
13436
13452
  return;
@@ -17504,7 +17520,7 @@ function addClassNames(className, elm) {
17504
17520
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
17505
17521
 
17506
17522
  "use strict";
17507
- /* harmony import */ var jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(37923);
17523
+ /* harmony import */ var jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(37923);
17508
17524
  /* harmony import */ var jodit_langs_ar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57741);
17509
17525
  /* harmony import */ var jodit_langs_cs_cz__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56014);
17510
17526
  /* harmony import */ var jodit_langs_de__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95461);
@@ -17525,8 +17541,9 @@ function addClassNames(className, elm) {
17525
17541
  /* harmony import */ var jodit_langs_pt_br__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(86433);
17526
17542
  /* harmony import */ var jodit_langs_ru__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(28359);
17527
17543
  /* harmony import */ var jodit_langs_tr__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(68368);
17528
- /* harmony import */ var jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(25182);
17529
- /* harmony import */ var jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(44906);
17544
+ /* harmony import */ var jodit_langs_ua__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(57456);
17545
+ /* harmony import */ var jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(25182);
17546
+ /* harmony import */ var jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(44906);
17530
17547
  /*!
17531
17548
  * Jodit Editor (https://xdsoft.net/jodit/)
17532
17549
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -17553,6 +17570,7 @@ function addClassNames(className, elm) {
17553
17570
 
17554
17571
 
17555
17572
 
17573
+
17556
17574
 
17557
17575
 
17558
17576
  let exp = {};
@@ -17576,19 +17594,20 @@ exp = {
17576
17594
  pt_br: jodit_langs_pt_br__WEBPACK_IMPORTED_MODULE_17__,
17577
17595
  ru: jodit_langs_ru__WEBPACK_IMPORTED_MODULE_18__,
17578
17596
  tr: jodit_langs_tr__WEBPACK_IMPORTED_MODULE_19__,
17579
- zh_cn: jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_20__,
17580
- zh_tw: jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_21__
17597
+ ua: jodit_langs_ua__WEBPACK_IMPORTED_MODULE_20__,
17598
+ zh_cn: jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_21__,
17599
+ zh_tw: jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_22__
17581
17600
  };
17582
17601
  /* Unpack array to hash */
17583
17602
  const get = (value) => value ? value.default || value : {}, hashLang = {};
17584
- if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_22__/* .isArray */ .c)(get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_12__))) {
17603
+ if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_23__/* .isArray */ .c)(get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_12__))) {
17585
17604
  get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_12__).forEach((key, index) => {
17586
17605
  hashLang[index] = key;
17587
17606
  });
17588
17607
  }
17589
17608
  Object.keys(exp).forEach((lang) => {
17590
17609
  const list = get(exp[lang]);
17591
- if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_22__/* .isArray */ .c)(list)) {
17610
+ if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_23__/* .isArray */ .c)(list)) {
17592
17611
  exp[lang] = {};
17593
17612
  list.forEach((value, index) => {
17594
17613
  exp[lang][hashLang[index]] = value;
@@ -22526,46 +22545,39 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22526
22545
  removeRow(table, rowIndex) {
22527
22546
  return Table.__removeRow(table, rowIndex);
22528
22547
  }
22529
- static __appendColumn(table, j, after, create) {
22548
+ /**
22549
+ * Insert column before / after all the columns containing the selected cells
22550
+ */
22551
+ appendColumn(table, selectedCell, insertAfter = true) {
22530
22552
  const box = Table.__formalMatrix(table);
22531
- let i;
22532
- if (j === undefined || j < 0) {
22533
- j = Table.__getColumnsCount(table) - 1;
22534
- }
22535
- for (i = 0; i < box.length; i += 1) {
22536
- const cell = create.element('td');
22537
- const td = box[i][j];
22538
- let added = false;
22539
- if (after) {
22540
- if ((box[i] && td && j + 1 >= box[i].length) ||
22541
- td !== box[i][j + 1]) {
22542
- if (td.nextSibling) {
22543
- jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(td.nextSibling, cell);
22544
- }
22545
- else {
22546
- td.parentNode && td.parentNode.appendChild(cell);
22547
- }
22548
- added = true;
22553
+ if (!insertAfter && jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.isCell(selectedCell.previousElementSibling)) {
22554
+ return this.appendColumn(table, selectedCell.previousElementSibling, true);
22555
+ }
22556
+ const columnIndex = insertAfter
22557
+ ? selectedCell.cellIndex + ((selectedCell.colSpan || 1) - 1)
22558
+ : selectedCell.cellIndex;
22559
+ const newColumnIndex = insertAfter ? columnIndex + 1 : columnIndex;
22560
+ for (let i = 0; i < box.length;) {
22561
+ const cells = box[i];
22562
+ if (cells[columnIndex] !== cells[newColumnIndex] ||
22563
+ columnIndex === newColumnIndex) {
22564
+ const cell = this.j.createInside.element('td');
22565
+ if (insertAfter) {
22566
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.after(cells[columnIndex], cell);
22549
22567
  }
22550
- }
22551
- else {
22552
- if (j - 1 < 0 ||
22553
- (box[i][j] !== box[i][j - 1] && box[i][j].parentNode)) {
22554
- jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(box[i][j], cell);
22555
- added = true;
22568
+ else {
22569
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(cells[columnIndex], cell);
22570
+ }
22571
+ if (cells[columnIndex].rowSpan > 1) {
22572
+ cell.rowSpan = cells[columnIndex].rowSpan;
22556
22573
  }
22557
22574
  }
22558
- if (!added) {
22559
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'colspan', parseInt((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'colspan') || '1', 10) + 1);
22575
+ else {
22576
+ cells[columnIndex].colSpan += 1;
22560
22577
  }
22578
+ i += cells[columnIndex].rowSpan || 1;
22561
22579
  }
22562
22580
  }
22563
- /**
22564
- * Insert column before / after all the columns containing the selected cells
22565
- */
22566
- appendColumn(table, j, after) {
22567
- return Table.__appendColumn(table, j, after, this.j.createInside);
22568
- }
22569
22581
  static __removeColumn(table, j) {
22570
22582
  const box = Table.__formalMatrix(table);
22571
22583
  let dec;
@@ -22783,7 +22795,7 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22783
22795
  alreadyMerged.delete(first);
22784
22796
  Table.__unmark(__marked);
22785
22797
  Table.__normalizeTable(table);
22786
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.toArray)(table.rows).forEach((tr, index) => {
22798
+ (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.toArray)(table.rows).forEach(tr => {
22787
22799
  if (!tr.cells.length) {
22788
22800
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(tr);
22789
22801
  }
@@ -22792,7 +22804,7 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22792
22804
  }
22793
22805
  }
22794
22806
  /**
22795
- * It combines all of the selected cells into one. The contents of the cells will also be combined
22807
+ * It combines all the selected cells into one. The contents of the cells will also be combined
22796
22808
  */
22797
22809
  mergeSelected(table) {
22798
22810
  return Table.__mergeSelected(table, this.j);
@@ -25148,7 +25160,9 @@ class addNewLine extends jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Plugin {
25148
25160
  editor.e
25149
25161
  .off(editor.editor, '.' + ns)
25150
25162
  .off(editor.container, '.' + ns)
25163
+ .off('.' + ns)
25151
25164
  .on([editor.ow, editor.ew, editor.editor], 'scroll' + '.' + ns, this.__hideForce)
25165
+ .on('finishedCleanHTMLWorker' + '.' + ns, this.__hideForce)
25152
25166
  .on(editor.editor, 'click' + '.' + ns, this.__hide)
25153
25167
  .on(editor.container, 'mouseleave' + '.' + ns, this.__hide)
25154
25168
  .on(editor.editor, 'mousemove' + '.' + ns, this.__onMouseMove);
@@ -25236,7 +25250,8 @@ class addNewLine extends jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Plugin {
25236
25250
  jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(this.__line);
25237
25251
  this.j.e
25238
25252
  .off([this.j.ow, this.j.ew, this.j.editor], '.' + ns)
25239
- .off(this.j.container, '.' + ns);
25253
+ .off(this.j.container, '.' + ns)
25254
+ .off('.' + ns);
25240
25255
  }
25241
25256
  }
25242
25257
  (0,tslib__WEBPACK_IMPORTED_MODULE_5__/* .__decorate */ .Cg)([
@@ -27423,13 +27438,21 @@ function allowAttributes(jodit, nodeElm, hadEffect, allow) {
27423
27438
  */
27424
27439
 
27425
27440
 
27441
+ const TABLE_CONTAINER_TAGS = new Set([
27442
+ 'table',
27443
+ 'tbody',
27444
+ 'thead',
27445
+ 'tfoot',
27446
+ 'tr'
27447
+ ]);
27426
27448
  /**
27427
27449
  * @private
27428
27450
  */
27429
27451
  function fillEmptyParagraph(jodit, nodeElm, hadEffect) {
27430
27452
  if (jodit.o.cleanHTML.fillEmptyParagraph &&
27431
27453
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isBlock(nodeElm) &&
27432
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isEmpty(nodeElm, jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS)) {
27454
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isEmpty(nodeElm, jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) &&
27455
+ !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTag(nodeElm, TABLE_CONTAINER_TAGS)) {
27433
27456
  const br = jodit.createInside.element('br');
27434
27457
  nodeElm.appendChild(br);
27435
27458
  return true;
@@ -30660,7 +30683,8 @@ class hotkeys extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_3__/* .Plugin *
30660
30683
  constructor() {
30661
30684
  super(...arguments);
30662
30685
  this.onKeyPress = (event) => {
30663
- const special = this.specialKeys[event.which], character = (event.key || String.fromCharCode(event.which)).toLowerCase();
30686
+ const special = this.specialKeys[event.which];
30687
+ const character = (event.key || String.fromCharCode(event.which)).toLowerCase();
30664
30688
  const modif = [special || character];
30665
30689
  ['alt', 'ctrl', 'shift', 'meta'].forEach(specialKey => {
30666
30690
  if (event[specialKey + 'Key'] && special !== specialKey) {
@@ -30754,7 +30778,8 @@ class hotkeys extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_3__/* .Plugin *
30754
30778
  }
30755
30779
  })
30756
30780
  .on('keydown.hotkeys', (event) => {
30757
- const shortcut = this.onKeyPress(event), stop = {
30781
+ const shortcut = this.onKeyPress(event);
30782
+ const stop = {
30758
30783
  shouldStop: true
30759
30784
  };
30760
30785
  const resultOfFire = this.j.e.fire(shortcut + '.hotkey', event.type, stop);
@@ -34376,8 +34401,9 @@ __webpack_require__.r(__webpack_exports__);
34376
34401
  /* harmony export */ pt_br: function() { return /* reexport module object */ _pt_br_js__WEBPACK_IMPORTED_MODULE_16__; },
34377
34402
  /* harmony export */ ru: function() { return /* reexport module object */ _ru_js__WEBPACK_IMPORTED_MODULE_17__; },
34378
34403
  /* harmony export */ tr: function() { return /* reexport module object */ _tr_js__WEBPACK_IMPORTED_MODULE_18__; },
34379
- /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__; },
34380
- /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__; }
34404
+ /* harmony export */ ua: function() { return /* reexport module object */ _ua_js__WEBPACK_IMPORTED_MODULE_19__; },
34405
+ /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__; },
34406
+ /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__; }
34381
34407
  /* harmony export */ });
34382
34408
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14100);
34383
34409
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ar_js__WEBPACK_IMPORTED_MODULE_0__);
@@ -34417,10 +34443,12 @@ __webpack_require__.r(__webpack_exports__);
34417
34443
  /* harmony import */ var _ru_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_ru_js__WEBPACK_IMPORTED_MODULE_17__);
34418
34444
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(41145);
34419
34445
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_tr_js__WEBPACK_IMPORTED_MODULE_18__);
34420
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(76877);
34421
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_19__);
34422
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(83289);
34423
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_20__);
34446
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(71289);
34447
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_ua_js__WEBPACK_IMPORTED_MODULE_19__);
34448
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(76877);
34449
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_20__);
34450
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(83289);
34451
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_21__);
34424
34452
  /*!
34425
34453
  * Jodit Editor (https://xdsoft.net/jodit/)
34426
34454
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -34448,6 +34476,7 @@ __webpack_require__.r(__webpack_exports__);
34448
34476
 
34449
34477
 
34450
34478
 
34479
+
34451
34480
 
34452
34481
 
34453
34482
  /***/ }),
@@ -34603,6 +34632,23 @@ module.exports = {
34603
34632
  };
34604
34633
 
34605
34634
 
34635
+ /***/ }),
34636
+
34637
+ /***/ 71289:
34638
+ /***/ (function(module) {
34639
+
34640
+ "use strict";
34641
+
34642
+ /*!
34643
+ * Jodit Editor (https://xdsoft.net/jodit/)
34644
+ * Released under MIT see LICENSE.txt in the project root for license information.
34645
+ * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
34646
+ */
34647
+ module.exports = {
34648
+ 'Line height': 'Висота лінії'
34649
+ };
34650
+
34651
+
34606
34652
  /***/ }),
34607
34653
 
34608
34654
  /***/ 76877:
@@ -39081,7 +39127,7 @@ class selectCells extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_5__/* .Plug
39081
39127
  break;
39082
39128
  case 'addcolumnafter':
39083
39129
  case 'addcolumnbefore':
39084
- this.__tableModule.appendColumn(table, cell.cellIndex, command === 'addcolumnafter');
39130
+ this.__tableModule.appendColumn(table, cell, command === 'addcolumnafter');
39085
39131
  break;
39086
39132
  case 'addrowafter':
39087
39133
  case 'addrowbefore':
@@ -40604,8 +40650,9 @@ __webpack_require__.r(__webpack_exports__);
40604
40650
  /* harmony export */ pt_br: function() { return /* reexport module object */ _pt_br_js__WEBPACK_IMPORTED_MODULE_16__; },
40605
40651
  /* harmony export */ ru: function() { return /* reexport module object */ _ru_js__WEBPACK_IMPORTED_MODULE_17__; },
40606
40652
  /* harmony export */ tr: function() { return /* reexport module object */ _tr_js__WEBPACK_IMPORTED_MODULE_18__; },
40607
- /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__; },
40608
- /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__; }
40653
+ /* harmony export */ ua: function() { return /* reexport module object */ _ua_js__WEBPACK_IMPORTED_MODULE_19__; },
40654
+ /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__; },
40655
+ /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__; }
40609
40656
  /* harmony export */ });
40610
40657
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82602);
40611
40658
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ar_js__WEBPACK_IMPORTED_MODULE_0__);
@@ -40645,10 +40692,12 @@ __webpack_require__.r(__webpack_exports__);
40645
40692
  /* harmony import */ var _ru_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_ru_js__WEBPACK_IMPORTED_MODULE_17__);
40646
40693
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(98439);
40647
40694
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_tr_js__WEBPACK_IMPORTED_MODULE_18__);
40648
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(55835);
40649
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_19__);
40650
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(34747);
40651
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_20__);
40695
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(65115);
40696
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_ua_js__WEBPACK_IMPORTED_MODULE_19__);
40697
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(55835);
40698
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_20__);
40699
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(34747);
40700
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_21__);
40652
40701
  /*!
40653
40702
  * Jodit Editor (https://xdsoft.net/jodit/)
40654
40703
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -40676,6 +40725,7 @@ __webpack_require__.r(__webpack_exports__);
40676
40725
 
40677
40726
 
40678
40727
 
40728
+
40679
40729
 
40680
40730
 
40681
40731
  /***/ }),
@@ -40831,6 +40881,23 @@ module.exports = {
40831
40881
  };
40832
40882
 
40833
40883
 
40884
+ /***/ }),
40885
+
40886
+ /***/ 65115:
40887
+ /***/ (function(module) {
40888
+
40889
+ "use strict";
40890
+
40891
+ /*!
40892
+ * Jodit Editor (https://xdsoft.net/jodit/)
40893
+ * Released under MIT see LICENSE.txt in the project root for license information.
40894
+ * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
40895
+ */
40896
+ module.exports = {
40897
+ Spellcheck: 'Перевірка орфографії'
40898
+ };
40899
+
40900
+
40834
40901
  /***/ }),
40835
40902
 
40836
40903
  /***/ 55835:
@@ -42419,6 +42486,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.tab
42419
42486
  }
42420
42487
  },
42421
42488
  popup: (editor, current, close, button) => {
42489
+ editor.editor.normalize();
42490
+ const snapshot = editor.history.snapshot.make();
42422
42491
  const control = button.control;
42423
42492
  const default_rows_count = control.data && control.data.rows ? control.data.rows : 10, default_cols_count = control.data && control.data.cols ? control.data.cols : 10;
42424
42493
  const generateExtraClasses = () => {
@@ -42511,10 +42580,24 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.tab
42511
42580
  table.classList.add(className);
42512
42581
  });
42513
42582
  });
42514
- if (editor.editor.firstChild) {
42515
- editor.s.insertNode(crt.text('\n'), false, false);
42583
+ editor.s.restore();
42584
+ editor.s.removeMarkers();
42585
+ editor.editor.normalize();
42586
+ editor.history.snapshot.restore(snapshot);
42587
+ const block = jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.furthest(editor.s.current(), jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isBlock, editor.editor);
42588
+ if (block && jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isEmpty(block)) {
42589
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.replace(block, table, undefined, false, true);
42590
+ }
42591
+ else {
42592
+ if (block) {
42593
+ const fake = crt.text('\n');
42594
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.after(block, fake);
42595
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.after(fake, table);
42596
+ }
42597
+ else {
42598
+ editor.s.insertNode(table, false);
42599
+ }
42516
42600
  }
42517
- editor.s.insertNode(table, false);
42518
42601
  if (first_td) {
42519
42602
  editor.s.setCursorIn(first_td);
42520
42603
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.scrollIntoViewIfNeeded)(first_td, editor.editor, editor.ed);
@@ -43303,6 +43386,13 @@ module.exports["default"] = ["Bir şeyler yaz","Jodit Hakkında","Jodit Editor",
43303
43386
 
43304
43387
  /***/ }),
43305
43388
 
43389
+ /***/ 57456:
43390
+ /***/ (function(module) {
43391
+
43392
+ module.exports["default"] = ["Напишіть щось","Про Jodit","Редактор Jodit","Jodit інструкція користувача","містить детальну інформацію щодо користування","Щоб дізнатись більше про ліцензію , будь ласка, перейдіть на наш сайт:","Купити повну версію","Авторські права © XDSoft.net - Чупурнов Валерій. Всі права захищені.","Анкор","Відкрити у новій вкладці","Відкрити редактор в повному розмірі","Очистити форматування","Колір заливки або колір текста","Повторити","Відмінити","Жирний","Курсів","Вставити невпорядкований список","Вставити нумерованний список","Вирівняти по центру","Вирівняти по ширині","Вирівняти по лівому краю","Вирівняти по правому краю","Вставити горизонтальну лінію","Вставити зображення","Вставити файл","Вставити відео","Вставити посилання","Розмір шрифту","Шрифт","Вставити блочний елемент","Нормальний текст","Заголовок 1","Заголовок 2","Заголовок 3","Заголовок 4","Цитата","Код","Вставити","Вставити таблицю","Збільшити відступ","Зменшити відступ","Оберіть спеціальный символ","Вставити спеціальный символ","Формат краски","Джерело","Відступи","зверху","справа","знизу","зліва","Стилі","Класи","Вирівнювання","По правому краю","По центру","По лівому краю","--не встановлено--","src","Заголовок","Альтернативний текст (alt)","Посилання","Відкрити посилання в новій вкладці",null,"Файл","Розширені","Властивості зображення","Відміна","Ок","Браузер файлів","Помилка при завантаженні списку зображень","Помилка при завантаженні списку папок","Ви впевнені?","Введіть назву папки","Створити папку","введіть назву","Перетягніть зображення сюди","Перетягніть файл сюди","або клікніть","Альтернативный текст","Завантаження","Сервер","Фон","Текст"," Вгору","По центру","Донизу","Вставити стовпець до","Вставити стовпець після","Вставити рядок вище","Вставити рядок нижче","Видалити таблицю","Видалити рядок","Видалити стовпчик","Очистити кліинку","Символів: %d","Слів: %d","Закреслений","Підкреслений","верхній індекс","індекс","Обрізати вибране","Вибрати все","Межа","Шукати","Замінити на","Замінити","Вставити","Обрати контент для вставки","HTML","жирний","курсів","заливка","посилання","відмінити","повторити","таблиця","зображення","видалення","параграф","розмір шрифту","відео","шрифт","про редактор","друк","підкреслений","закреслений","відступ","заступ","на весь екран","звичайний розмір","лінія","Список","Нумерований список","Вирізати","Виділити все","Код","Відкрити посилання","Редагувати посилання","Атрибут nofollow","Видалити посилання","Оновити","Редагування","Перегляд","URL","Редагувати","Горизонтальне вирівнювання","Фільтр","Сортувати за зміною","Сортувати за ім'ям","Сортувати за розміром","Додати папку","Відновити","Зберегти","Зберегти як","Змінити розмір","Обрізати розмір","Ширина","Висота","Зберегти пропорції","Так","Ні","Видалити","Вибрати","Вибрати: %s","Вертикальне вирівнювання","Розділити","Об'єднати в одну","Додати стовпчик","Додати рядок","Ліцензія: %s","Видалити","Розділити по вертикалі","Розділити по горизонталі","Рамка","Текст, який Ви намагаєтесь вставити схожий на HTML. Вставити його як HTML?","Вставити його як HTML","Зберегти оригінал","Вставити як текст","Вставити тільки текст","Ви можете редагувати лише власні зображення. Завантажити зображення на ваш сервер?","Зображення успішно завантажено на сервер!","палітра","Файли відсутні","Змінити назву","Введіть нове імя'","Попередній перегляд","Завантажити","Вставити з буфера обміну","Ваш браузер не підтримує доступ до буфера обміну.","Копіювати виділене","копія","Радіус рамки","Показати все","Застосувати","Будь ласка, заповніть це поле","Будь ласка, введіть веб-адресу","За замовченням","Коло","Крапка","Квадрат","Знайти","Знайти попередні","Знайти наступні","Ви вставляєте контент з документа Microsoft Word або Excel. Бажаєте зберегти форматування?","Можливо це фрагмент Word або Excel","Почистити","Вставити клас","Натисніть Alt для зміни розміру"]
43393
+
43394
+ /***/ }),
43395
+
43306
43396
  /***/ 25182:
43307
43397
  /***/ (function(module) {
43308
43398