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/es2015/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
4
- * Version: v4.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 = "es2015";
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')
@@ -13397,15 +13407,21 @@ let UITooltip = UITooltip_1 = class UITooltip extends jodit_core_ui_element__WEB
13397
13407
  if (!view.o.textIcons &&
13398
13408
  view.o.showTooltip &&
13399
13409
  !view.o.useNativeTooltip) {
13410
+ this.j.e.on('getContainer', (box) => {
13411
+ this.__onAttach(box);
13412
+ });
13400
13413
  view.hookStatus(jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .STATUSES */ .f.ready, () => {
13401
- // TODO Move it inside __show method. Now it is here because testcase failed with capturing
13402
- (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .getContainer */ .My)(this.j, UITooltip_1).appendChild(this.container);
13403
- view.e.on(view.container, 'mouseenter.tooltip', this.__onMouseEnter, {
13404
- capture: true
13405
- });
13414
+ this.__onAttach(this.j.container);
13406
13415
  });
13407
13416
  }
13408
13417
  }
13418
+ __onAttach(container) {
13419
+ // TODO Move it inside __show method. Now it is here because testcase failed with capturing
13420
+ (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .getContainer */ .My)(this.j, UITooltip_1).appendChild(this.container);
13421
+ this.j.e.on(container, 'mouseenter.tooltip', this.__onMouseEnter, {
13422
+ capture: true
13423
+ });
13424
+ }
13409
13425
  __addListenersOnEnter() {
13410
13426
  if (this.__listenClose) {
13411
13427
  return;
@@ -17446,7 +17462,7 @@ function addClassNames(className, elm) {
17446
17462
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
17447
17463
 
17448
17464
  "use strict";
17449
- /* harmony import */ var jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(37923);
17465
+ /* harmony import */ var jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(37923);
17450
17466
  /* harmony import */ var jodit_langs_ar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57741);
17451
17467
  /* harmony import */ var jodit_langs_cs_cz__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56014);
17452
17468
  /* harmony import */ var jodit_langs_de__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95461);
@@ -17467,8 +17483,9 @@ function addClassNames(className, elm) {
17467
17483
  /* harmony import */ var jodit_langs_pt_br__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(86433);
17468
17484
  /* harmony import */ var jodit_langs_ru__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(28359);
17469
17485
  /* harmony import */ var jodit_langs_tr__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(68368);
17470
- /* harmony import */ var jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(25182);
17471
- /* harmony import */ var jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(44906);
17486
+ /* harmony import */ var jodit_langs_ua__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(57456);
17487
+ /* harmony import */ var jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(25182);
17488
+ /* harmony import */ var jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(44906);
17472
17489
  /*!
17473
17490
  * Jodit Editor (https://xdsoft.net/jodit/)
17474
17491
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -17495,6 +17512,7 @@ function addClassNames(className, elm) {
17495
17512
 
17496
17513
 
17497
17514
 
17515
+
17498
17516
 
17499
17517
 
17500
17518
  let exp = {};
@@ -17518,19 +17536,20 @@ exp = {
17518
17536
  pt_br: jodit_langs_pt_br__WEBPACK_IMPORTED_MODULE_17__,
17519
17537
  ru: jodit_langs_ru__WEBPACK_IMPORTED_MODULE_18__,
17520
17538
  tr: jodit_langs_tr__WEBPACK_IMPORTED_MODULE_19__,
17521
- zh_cn: jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_20__,
17522
- zh_tw: jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_21__
17539
+ ua: jodit_langs_ua__WEBPACK_IMPORTED_MODULE_20__,
17540
+ zh_cn: jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_21__,
17541
+ zh_tw: jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_22__
17523
17542
  };
17524
17543
  /* Unpack array to hash */
17525
17544
  const get = (value) => value ? value.default || value : {}, hashLang = {};
17526
- if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_22__/* .isArray */ .c)(get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_12__))) {
17545
+ if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_23__/* .isArray */ .c)(get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_12__))) {
17527
17546
  get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_12__).forEach((key, index) => {
17528
17547
  hashLang[index] = key;
17529
17548
  });
17530
17549
  }
17531
17550
  Object.keys(exp).forEach((lang) => {
17532
17551
  const list = get(exp[lang]);
17533
- if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_22__/* .isArray */ .c)(list)) {
17552
+ if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_23__/* .isArray */ .c)(list)) {
17534
17553
  exp[lang] = {};
17535
17554
  list.forEach((value, index) => {
17536
17555
  exp[lang][hashLang[index]] = value;
@@ -22460,46 +22479,39 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22460
22479
  removeRow(table, rowIndex) {
22461
22480
  return Table.__removeRow(table, rowIndex);
22462
22481
  }
22463
- static __appendColumn(table, j, after, create) {
22482
+ /**
22483
+ * Insert column before / after all the columns containing the selected cells
22484
+ */
22485
+ appendColumn(table, selectedCell, insertAfter = true) {
22464
22486
  const box = Table.__formalMatrix(table);
22465
- let i;
22466
- if (j === undefined || j < 0) {
22467
- j = Table.__getColumnsCount(table) - 1;
22468
- }
22469
- for (i = 0; i < box.length; i += 1) {
22470
- const cell = create.element('td');
22471
- const td = box[i][j];
22472
- let added = false;
22473
- if (after) {
22474
- if ((box[i] && td && j + 1 >= box[i].length) ||
22475
- td !== box[i][j + 1]) {
22476
- if (td.nextSibling) {
22477
- jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(td.nextSibling, cell);
22478
- }
22479
- else {
22480
- td.parentNode && td.parentNode.appendChild(cell);
22481
- }
22482
- added = true;
22487
+ if (!insertAfter && jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.isCell(selectedCell.previousElementSibling)) {
22488
+ return this.appendColumn(table, selectedCell.previousElementSibling, true);
22489
+ }
22490
+ const columnIndex = insertAfter
22491
+ ? selectedCell.cellIndex + ((selectedCell.colSpan || 1) - 1)
22492
+ : selectedCell.cellIndex;
22493
+ const newColumnIndex = insertAfter ? columnIndex + 1 : columnIndex;
22494
+ for (let i = 0; i < box.length;) {
22495
+ const cells = box[i];
22496
+ if (cells[columnIndex] !== cells[newColumnIndex] ||
22497
+ columnIndex === newColumnIndex) {
22498
+ const cell = this.j.createInside.element('td');
22499
+ if (insertAfter) {
22500
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.after(cells[columnIndex], cell);
22483
22501
  }
22484
- }
22485
- else {
22486
- if (j - 1 < 0 ||
22487
- (box[i][j] !== box[i][j - 1] && box[i][j].parentNode)) {
22488
- jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(box[i][j], cell);
22489
- added = true;
22502
+ else {
22503
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(cells[columnIndex], cell);
22504
+ }
22505
+ if (cells[columnIndex].rowSpan > 1) {
22506
+ cell.rowSpan = cells[columnIndex].rowSpan;
22490
22507
  }
22491
22508
  }
22492
- if (!added) {
22493
- (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);
22509
+ else {
22510
+ cells[columnIndex].colSpan += 1;
22494
22511
  }
22512
+ i += cells[columnIndex].rowSpan || 1;
22495
22513
  }
22496
22514
  }
22497
- /**
22498
- * Insert column before / after all the columns containing the selected cells
22499
- */
22500
- appendColumn(table, j, after) {
22501
- return Table.__appendColumn(table, j, after, this.j.createInside);
22502
- }
22503
22515
  static __removeColumn(table, j) {
22504
22516
  const box = Table.__formalMatrix(table);
22505
22517
  let dec;
@@ -22717,7 +22729,7 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22717
22729
  alreadyMerged.delete(first);
22718
22730
  Table.__unmark(__marked);
22719
22731
  Table.__normalizeTable(table);
22720
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.toArray)(table.rows).forEach((tr, index) => {
22732
+ (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.toArray)(table.rows).forEach(tr => {
22721
22733
  if (!tr.cells.length) {
22722
22734
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(tr);
22723
22735
  }
@@ -22726,7 +22738,7 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22726
22738
  }
22727
22739
  }
22728
22740
  /**
22729
- * It combines all of the selected cells into one. The contents of the cells will also be combined
22741
+ * It combines all the selected cells into one. The contents of the cells will also be combined
22730
22742
  */
22731
22743
  mergeSelected(table) {
22732
22744
  return Table.__mergeSelected(table, this.j);
@@ -25067,7 +25079,9 @@ class addNewLine extends jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Plugin {
25067
25079
  editor.e
25068
25080
  .off(editor.editor, '.' + ns)
25069
25081
  .off(editor.container, '.' + ns)
25082
+ .off('.' + ns)
25070
25083
  .on([editor.ow, editor.ew, editor.editor], 'scroll' + '.' + ns, this.__hideForce)
25084
+ .on('finishedCleanHTMLWorker' + '.' + ns, this.__hideForce)
25071
25085
  .on(editor.editor, 'click' + '.' + ns, this.__hide)
25072
25086
  .on(editor.container, 'mouseleave' + '.' + ns, this.__hide)
25073
25087
  .on(editor.editor, 'mousemove' + '.' + ns, this.__onMouseMove);
@@ -25155,7 +25169,8 @@ class addNewLine extends jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Plugin {
25155
25169
  jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(this.__line);
25156
25170
  this.j.e
25157
25171
  .off([this.j.ow, this.j.ew, this.j.editor], '.' + ns)
25158
- .off(this.j.container, '.' + ns);
25172
+ .off(this.j.container, '.' + ns)
25173
+ .off('.' + ns);
25159
25174
  }
25160
25175
  }
25161
25176
  (0,tslib__WEBPACK_IMPORTED_MODULE_5__/* .__decorate */ .Cg)([
@@ -27340,13 +27355,21 @@ function allowAttributes(jodit, nodeElm, hadEffect, allow) {
27340
27355
  */
27341
27356
 
27342
27357
 
27358
+ const TABLE_CONTAINER_TAGS = new Set([
27359
+ 'table',
27360
+ 'tbody',
27361
+ 'thead',
27362
+ 'tfoot',
27363
+ 'tr'
27364
+ ]);
27343
27365
  /**
27344
27366
  * @private
27345
27367
  */
27346
27368
  function fillEmptyParagraph(jodit, nodeElm, hadEffect) {
27347
27369
  if (jodit.o.cleanHTML.fillEmptyParagraph &&
27348
27370
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isBlock(nodeElm) &&
27349
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isEmpty(nodeElm, jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS)) {
27371
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isEmpty(nodeElm, jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) &&
27372
+ !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTag(nodeElm, TABLE_CONTAINER_TAGS)) {
27350
27373
  const br = jodit.createInside.element('br');
27351
27374
  nodeElm.appendChild(br);
27352
27375
  return true;
@@ -30569,7 +30592,8 @@ class hotkeys extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_3__/* .Plugin *
30569
30592
  constructor() {
30570
30593
  super(...arguments);
30571
30594
  this.onKeyPress = (event) => {
30572
- const special = this.specialKeys[event.which], character = (event.key || String.fromCharCode(event.which)).toLowerCase();
30595
+ const special = this.specialKeys[event.which];
30596
+ const character = (event.key || String.fromCharCode(event.which)).toLowerCase();
30573
30597
  const modif = [special || character];
30574
30598
  ['alt', 'ctrl', 'shift', 'meta'].forEach(specialKey => {
30575
30599
  if (event[specialKey + 'Key'] && special !== specialKey) {
@@ -30663,7 +30687,8 @@ class hotkeys extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_3__/* .Plugin *
30663
30687
  }
30664
30688
  })
30665
30689
  .on('keydown.hotkeys', (event) => {
30666
- const shortcut = this.onKeyPress(event), stop = {
30690
+ const shortcut = this.onKeyPress(event);
30691
+ const stop = {
30667
30692
  shouldStop: true
30668
30693
  };
30669
30694
  const resultOfFire = this.j.e.fire(shortcut + '.hotkey', event.type, stop);
@@ -34303,8 +34328,9 @@ __webpack_require__.r(__webpack_exports__);
34303
34328
  /* harmony export */ pt_br: function() { return /* reexport module object */ _pt_br_js__WEBPACK_IMPORTED_MODULE_16__; },
34304
34329
  /* harmony export */ ru: function() { return /* reexport module object */ _ru_js__WEBPACK_IMPORTED_MODULE_17__; },
34305
34330
  /* harmony export */ tr: function() { return /* reexport module object */ _tr_js__WEBPACK_IMPORTED_MODULE_18__; },
34306
- /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__; },
34307
- /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__; }
34331
+ /* harmony export */ ua: function() { return /* reexport module object */ _ua_js__WEBPACK_IMPORTED_MODULE_19__; },
34332
+ /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__; },
34333
+ /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__; }
34308
34334
  /* harmony export */ });
34309
34335
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14100);
34310
34336
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ar_js__WEBPACK_IMPORTED_MODULE_0__);
@@ -34344,10 +34370,12 @@ __webpack_require__.r(__webpack_exports__);
34344
34370
  /* harmony import */ var _ru_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_ru_js__WEBPACK_IMPORTED_MODULE_17__);
34345
34371
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(41145);
34346
34372
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_tr_js__WEBPACK_IMPORTED_MODULE_18__);
34347
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(76877);
34348
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_19__);
34349
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(83289);
34350
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_20__);
34373
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(71289);
34374
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_ua_js__WEBPACK_IMPORTED_MODULE_19__);
34375
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(76877);
34376
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_20__);
34377
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(83289);
34378
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_21__);
34351
34379
  /*!
34352
34380
  * Jodit Editor (https://xdsoft.net/jodit/)
34353
34381
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -34375,6 +34403,7 @@ __webpack_require__.r(__webpack_exports__);
34375
34403
 
34376
34404
 
34377
34405
 
34406
+
34378
34407
 
34379
34408
 
34380
34409
  /***/ }),
@@ -34530,6 +34559,23 @@ module.exports = {
34530
34559
  };
34531
34560
 
34532
34561
 
34562
+ /***/ }),
34563
+
34564
+ /***/ 71289:
34565
+ /***/ (function(module) {
34566
+
34567
+ "use strict";
34568
+
34569
+ /*!
34570
+ * Jodit Editor (https://xdsoft.net/jodit/)
34571
+ * Released under MIT see LICENSE.txt in the project root for license information.
34572
+ * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
34573
+ */
34574
+ module.exports = {
34575
+ 'Line height': 'Висота лінії'
34576
+ };
34577
+
34578
+
34533
34579
  /***/ }),
34534
34580
 
34535
34581
  /***/ 76877:
@@ -39026,7 +39072,7 @@ class selectCells extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_5__/* .Plug
39026
39072
  break;
39027
39073
  case 'addcolumnafter':
39028
39074
  case 'addcolumnbefore':
39029
- this.__tableModule.appendColumn(table, cell.cellIndex, command === 'addcolumnafter');
39075
+ this.__tableModule.appendColumn(table, cell, command === 'addcolumnafter');
39030
39076
  break;
39031
39077
  case 'addrowafter':
39032
39078
  case 'addrowbefore':
@@ -40549,8 +40595,9 @@ __webpack_require__.r(__webpack_exports__);
40549
40595
  /* harmony export */ pt_br: function() { return /* reexport module object */ _pt_br_js__WEBPACK_IMPORTED_MODULE_16__; },
40550
40596
  /* harmony export */ ru: function() { return /* reexport module object */ _ru_js__WEBPACK_IMPORTED_MODULE_17__; },
40551
40597
  /* harmony export */ tr: function() { return /* reexport module object */ _tr_js__WEBPACK_IMPORTED_MODULE_18__; },
40552
- /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__; },
40553
- /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__; }
40598
+ /* harmony export */ ua: function() { return /* reexport module object */ _ua_js__WEBPACK_IMPORTED_MODULE_19__; },
40599
+ /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__; },
40600
+ /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__; }
40554
40601
  /* harmony export */ });
40555
40602
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82602);
40556
40603
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ar_js__WEBPACK_IMPORTED_MODULE_0__);
@@ -40590,10 +40637,12 @@ __webpack_require__.r(__webpack_exports__);
40590
40637
  /* harmony import */ var _ru_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_ru_js__WEBPACK_IMPORTED_MODULE_17__);
40591
40638
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(98439);
40592
40639
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_tr_js__WEBPACK_IMPORTED_MODULE_18__);
40593
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(55835);
40594
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_19__);
40595
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(34747);
40596
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_20__);
40640
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(65115);
40641
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_ua_js__WEBPACK_IMPORTED_MODULE_19__);
40642
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(55835);
40643
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_20__);
40644
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(34747);
40645
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_21__);
40597
40646
  /*!
40598
40647
  * Jodit Editor (https://xdsoft.net/jodit/)
40599
40648
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -40621,6 +40670,7 @@ __webpack_require__.r(__webpack_exports__);
40621
40670
 
40622
40671
 
40623
40672
 
40673
+
40624
40674
 
40625
40675
 
40626
40676
  /***/ }),
@@ -40776,6 +40826,23 @@ module.exports = {
40776
40826
  };
40777
40827
 
40778
40828
 
40829
+ /***/ }),
40830
+
40831
+ /***/ 65115:
40832
+ /***/ (function(module) {
40833
+
40834
+ "use strict";
40835
+
40836
+ /*!
40837
+ * Jodit Editor (https://xdsoft.net/jodit/)
40838
+ * Released under MIT see LICENSE.txt in the project root for license information.
40839
+ * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
40840
+ */
40841
+ module.exports = {
40842
+ Spellcheck: 'Перевірка орфографії'
40843
+ };
40844
+
40845
+
40779
40846
  /***/ }),
40780
40847
 
40781
40848
  /***/ 55835:
@@ -42364,6 +42431,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.tab
42364
42431
  }
42365
42432
  },
42366
42433
  popup: (editor, current, close, button) => {
42434
+ editor.editor.normalize();
42435
+ const snapshot = editor.history.snapshot.make();
42367
42436
  const control = button.control;
42368
42437
  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;
42369
42438
  const generateExtraClasses = () => {
@@ -42456,10 +42525,24 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.tab
42456
42525
  table.classList.add(className);
42457
42526
  });
42458
42527
  });
42459
- if (editor.editor.firstChild) {
42460
- editor.s.insertNode(crt.text('\n'), false, false);
42528
+ editor.s.restore();
42529
+ editor.s.removeMarkers();
42530
+ editor.editor.normalize();
42531
+ editor.history.snapshot.restore(snapshot);
42532
+ 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);
42533
+ if (block && jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isEmpty(block)) {
42534
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.replace(block, table, undefined, false, true);
42535
+ }
42536
+ else {
42537
+ if (block) {
42538
+ const fake = crt.text('\n');
42539
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.after(block, fake);
42540
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.after(fake, table);
42541
+ }
42542
+ else {
42543
+ editor.s.insertNode(table, false);
42544
+ }
42461
42545
  }
42462
- editor.s.insertNode(table, false);
42463
42546
  if (first_td) {
42464
42547
  editor.s.setCursorIn(first_td);
42465
42548
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.scrollIntoViewIfNeeded)(first_td, editor.editor, editor.ed);
@@ -43245,6 +43328,13 @@ module.exports["default"] = ["Bir şeyler yaz","Jodit Hakkında","Jodit Editor",
43245
43328
 
43246
43329
  /***/ }),
43247
43330
 
43331
+ /***/ 57456:
43332
+ /***/ (function(module) {
43333
+
43334
+ 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 для зміни розміру"]
43335
+
43336
+ /***/ }),
43337
+
43248
43338
  /***/ 25182:
43249
43339
  /***/ (function(module) {
43250
43340