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/es2021/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
  */
@@ -1737,7 +1737,7 @@ __webpack_require__.r(__webpack_exports__);
1737
1737
  * Released under MIT see LICENSE.txt in the project root for license information.
1738
1738
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
1739
1739
  */
1740
- const APP_VERSION = "4.2.24";
1740
+ const APP_VERSION = "4.2.27";
1741
1741
  // prettier-ignore
1742
1742
  const ES = "es2021";
1743
1743
  const IS_ES_MODERN = true;
@@ -1899,8 +1899,8 @@ const KEY_ALIASES = {
1899
1899
  option: 'alt',
1900
1900
  return: 'enter',
1901
1901
  right: 'arrowright',
1902
- space: ' ',
1903
- spacebar: ' ',
1902
+ space: 'space',
1903
+ spacebar: 'space',
1904
1904
  up: 'arrowup',
1905
1905
  win: 'meta',
1906
1906
  windows: 'meta'
@@ -2858,11 +2858,17 @@ class Dom {
2858
2858
  }
2859
2859
  static replace(elm, newTagName, create, withAttributes = false, notMoveContent = false) {
2860
2860
  if ((0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isHTML */ .AH)(newTagName)) {
2861
+ void 0;
2861
2862
  newTagName = create.fromHTML(newTagName);
2862
2863
  }
2863
- const tag = (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isString */ .Kg)(newTagName)
2864
- ? create.element(newTagName)
2865
- : newTagName;
2864
+ let tag;
2865
+ if ((0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isString */ .Kg)(newTagName)) {
2866
+ void 0;
2867
+ tag = create.element(newTagName);
2868
+ }
2869
+ else {
2870
+ tag = newTagName;
2871
+ }
2866
2872
  if (!notMoveContent) {
2867
2873
  while (elm.firstChild) {
2868
2874
  tag.appendChild(elm.firstChild);
@@ -4503,7 +4509,8 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4503
4509
  const data = boxes.get(jodit) || {}, key = name + tag;
4504
4510
  const view = (0,jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_6__/* .isViewObject */ .h)(jodit) ? jodit : jodit.j;
4505
4511
  if (!data[key]) {
4506
- let c = view.c, body = (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot
4512
+ let c = view.c;
4513
+ let body = (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot
4507
4514
  ? jodit.o.shadowRoot
4508
4515
  : jodit.od.body;
4509
4516
  if (createInsideEditor &&
@@ -4523,6 +4530,7 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4523
4530
  body.appendChild(box);
4524
4531
  data[key] = box;
4525
4532
  jodit.hookStatus('beforeDestruct', () => {
4533
+ view.events.off(box);
4526
4534
  _dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(box);
4527
4535
  delete data[key];
4528
4536
  if (Object.keys(data).length) {
@@ -4530,6 +4538,7 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4530
4538
  }
4531
4539
  });
4532
4540
  boxes.set(jodit, data);
4541
+ view.events.fire('getContainer', box);
4533
4542
  }
4534
4543
  data[key].classList.remove('jodit_theme_default', 'jodit_theme_dark');
4535
4544
  data[key].classList.add(`jodit_theme_${view.o.theme || 'default'}`);
@@ -6329,7 +6338,8 @@ function normalizeKeyAliases(keys) {
6329
6338
  ctrl: 2,
6330
6339
  control: 2,
6331
6340
  alt: 3,
6332
- shift: 4
6341
+ shift: 4,
6342
+ space: 5
6333
6343
  };
6334
6344
  return keys
6335
6345
  .replace(/\+\+/g, '+add')
@@ -13380,15 +13390,21 @@ let UITooltip = UITooltip_1 = class UITooltip extends jodit_core_ui_element__WEB
13380
13390
  if (!view.o.textIcons &&
13381
13391
  view.o.showTooltip &&
13382
13392
  !view.o.useNativeTooltip) {
13393
+ this.j.e.on('getContainer', (box) => {
13394
+ this.__onAttach(box);
13395
+ });
13383
13396
  view.hookStatus(jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .STATUSES */ .f.ready, () => {
13384
- // TODO Move it inside __show method. Now it is here because testcase failed with capturing
13385
- (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .getContainer */ .My)(this.j, UITooltip_1).appendChild(this.container);
13386
- view.e.on(view.container, 'mouseenter.tooltip', this.__onMouseEnter, {
13387
- capture: true
13388
- });
13397
+ this.__onAttach(this.j.container);
13389
13398
  });
13390
13399
  }
13391
13400
  }
13401
+ __onAttach(container) {
13402
+ // TODO Move it inside __show method. Now it is here because testcase failed with capturing
13403
+ (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .getContainer */ .My)(this.j, UITooltip_1).appendChild(this.container);
13404
+ this.j.e.on(container, 'mouseenter.tooltip', this.__onMouseEnter, {
13405
+ capture: true
13406
+ });
13407
+ }
13392
13408
  __addListenersOnEnter() {
13393
13409
  if (this.__listenClose) {
13394
13410
  return;
@@ -17451,7 +17467,7 @@ function addClassNames(className, elm) {
17451
17467
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
17452
17468
 
17453
17469
  "use strict";
17454
- /* harmony import */ var jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(37923);
17470
+ /* harmony import */ var jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(37923);
17455
17471
  /* harmony import */ var jodit_langs_ar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57741);
17456
17472
  /* harmony import */ var jodit_langs_cs_cz__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56014);
17457
17473
  /* harmony import */ var jodit_langs_de__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95461);
@@ -17472,8 +17488,9 @@ function addClassNames(className, elm) {
17472
17488
  /* harmony import */ var jodit_langs_pt_br__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(86433);
17473
17489
  /* harmony import */ var jodit_langs_ru__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(28359);
17474
17490
  /* harmony import */ var jodit_langs_tr__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(68368);
17475
- /* harmony import */ var jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(25182);
17476
- /* harmony import */ var jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(44906);
17491
+ /* harmony import */ var jodit_langs_ua__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(57456);
17492
+ /* harmony import */ var jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(25182);
17493
+ /* harmony import */ var jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(44906);
17477
17494
  /*!
17478
17495
  * Jodit Editor (https://xdsoft.net/jodit/)
17479
17496
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -17500,6 +17517,7 @@ function addClassNames(className, elm) {
17500
17517
 
17501
17518
 
17502
17519
 
17520
+
17503
17521
 
17504
17522
 
17505
17523
  let exp = {};
@@ -17523,19 +17541,20 @@ exp = {
17523
17541
  pt_br: jodit_langs_pt_br__WEBPACK_IMPORTED_MODULE_17__,
17524
17542
  ru: jodit_langs_ru__WEBPACK_IMPORTED_MODULE_18__,
17525
17543
  tr: jodit_langs_tr__WEBPACK_IMPORTED_MODULE_19__,
17526
- zh_cn: jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_20__,
17527
- zh_tw: jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_21__
17544
+ ua: jodit_langs_ua__WEBPACK_IMPORTED_MODULE_20__,
17545
+ zh_cn: jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_21__,
17546
+ zh_tw: jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_22__
17528
17547
  };
17529
17548
  /* Unpack array to hash */
17530
17549
  const get = (value) => value ? value.default || value : {}, hashLang = {};
17531
- if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_22__/* .isArray */ .c)(get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_12__))) {
17550
+ if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_23__/* .isArray */ .c)(get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_12__))) {
17532
17551
  get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_12__).forEach((key, index) => {
17533
17552
  hashLang[index] = key;
17534
17553
  });
17535
17554
  }
17536
17555
  Object.keys(exp).forEach((lang) => {
17537
17556
  const list = get(exp[lang]);
17538
- if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_22__/* .isArray */ .c)(list)) {
17557
+ if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_23__/* .isArray */ .c)(list)) {
17539
17558
  exp[lang] = {};
17540
17559
  list.forEach((value, index) => {
17541
17560
  exp[lang][hashLang[index]] = value;
@@ -22457,46 +22476,39 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22457
22476
  removeRow(table, rowIndex) {
22458
22477
  return Table.__removeRow(table, rowIndex);
22459
22478
  }
22460
- static __appendColumn(table, j, after, create) {
22479
+ /**
22480
+ * Insert column before / after all the columns containing the selected cells
22481
+ */
22482
+ appendColumn(table, selectedCell, insertAfter = true) {
22461
22483
  const box = Table.__formalMatrix(table);
22462
- let i;
22463
- if (j === undefined || j < 0) {
22464
- j = Table.__getColumnsCount(table) - 1;
22465
- }
22466
- for (i = 0; i < box.length; i += 1) {
22467
- const cell = create.element('td');
22468
- const td = box[i][j];
22469
- let added = false;
22470
- if (after) {
22471
- if ((box[i] && td && j + 1 >= box[i].length) ||
22472
- td !== box[i][j + 1]) {
22473
- if (td.nextSibling) {
22474
- jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(td.nextSibling, cell);
22475
- }
22476
- else {
22477
- td.parentNode && td.parentNode.appendChild(cell);
22478
- }
22479
- added = true;
22484
+ if (!insertAfter && jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.isCell(selectedCell.previousElementSibling)) {
22485
+ return this.appendColumn(table, selectedCell.previousElementSibling, true);
22486
+ }
22487
+ const columnIndex = insertAfter
22488
+ ? selectedCell.cellIndex + ((selectedCell.colSpan || 1) - 1)
22489
+ : selectedCell.cellIndex;
22490
+ const newColumnIndex = insertAfter ? columnIndex + 1 : columnIndex;
22491
+ for (let i = 0; i < box.length;) {
22492
+ const cells = box[i];
22493
+ if (cells[columnIndex] !== cells[newColumnIndex] ||
22494
+ columnIndex === newColumnIndex) {
22495
+ const cell = this.j.createInside.element('td');
22496
+ if (insertAfter) {
22497
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.after(cells[columnIndex], cell);
22480
22498
  }
22481
- }
22482
- else {
22483
- if (j - 1 < 0 ||
22484
- (box[i][j] !== box[i][j - 1] && box[i][j].parentNode)) {
22485
- jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(box[i][j], cell);
22486
- added = true;
22499
+ else {
22500
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(cells[columnIndex], cell);
22501
+ }
22502
+ if (cells[columnIndex].rowSpan > 1) {
22503
+ cell.rowSpan = cells[columnIndex].rowSpan;
22487
22504
  }
22488
22505
  }
22489
- if (!added) {
22490
- (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);
22506
+ else {
22507
+ cells[columnIndex].colSpan += 1;
22491
22508
  }
22509
+ i += cells[columnIndex].rowSpan || 1;
22492
22510
  }
22493
22511
  }
22494
- /**
22495
- * Insert column before / after all the columns containing the selected cells
22496
- */
22497
- appendColumn(table, j, after) {
22498
- return Table.__appendColumn(table, j, after, this.j.createInside);
22499
- }
22500
22512
  static __removeColumn(table, j) {
22501
22513
  const box = Table.__formalMatrix(table);
22502
22514
  let dec;
@@ -22714,7 +22726,7 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22714
22726
  alreadyMerged.delete(first);
22715
22727
  Table.__unmark(__marked);
22716
22728
  Table.__normalizeTable(table);
22717
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.toArray)(table.rows).forEach((tr, index) => {
22729
+ (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.toArray)(table.rows).forEach(tr => {
22718
22730
  if (!tr.cells.length) {
22719
22731
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(tr);
22720
22732
  }
@@ -22723,7 +22735,7 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22723
22735
  }
22724
22736
  }
22725
22737
  /**
22726
- * It combines all of the selected cells into one. The contents of the cells will also be combined
22738
+ * It combines all the selected cells into one. The contents of the cells will also be combined
22727
22739
  */
22728
22740
  mergeSelected(table) {
22729
22741
  return Table.__mergeSelected(table, this.j);
@@ -25065,7 +25077,9 @@ class addNewLine extends jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Plugin {
25065
25077
  editor.e
25066
25078
  .off(editor.editor, '.' + ns)
25067
25079
  .off(editor.container, '.' + ns)
25080
+ .off('.' + ns)
25068
25081
  .on([editor.ow, editor.ew, editor.editor], 'scroll' + '.' + ns, this.__hideForce)
25082
+ .on('finishedCleanHTMLWorker' + '.' + ns, this.__hideForce)
25069
25083
  .on(editor.editor, 'click' + '.' + ns, this.__hide)
25070
25084
  .on(editor.container, 'mouseleave' + '.' + ns, this.__hide)
25071
25085
  .on(editor.editor, 'mousemove' + '.' + ns, this.__onMouseMove);
@@ -25153,7 +25167,8 @@ class addNewLine extends jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Plugin {
25153
25167
  jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(this.__line);
25154
25168
  this.j.e
25155
25169
  .off([this.j.ow, this.j.ew, this.j.editor], '.' + ns)
25156
- .off(this.j.container, '.' + ns);
25170
+ .off(this.j.container, '.' + ns)
25171
+ .off('.' + ns);
25157
25172
  }
25158
25173
  }
25159
25174
  (0,tslib__WEBPACK_IMPORTED_MODULE_5__/* .__decorate */ .Cg)([
@@ -27335,13 +27350,21 @@ function allowAttributes(jodit, nodeElm, hadEffect, allow) {
27335
27350
  */
27336
27351
 
27337
27352
 
27353
+ const TABLE_CONTAINER_TAGS = new Set([
27354
+ 'table',
27355
+ 'tbody',
27356
+ 'thead',
27357
+ 'tfoot',
27358
+ 'tr'
27359
+ ]);
27338
27360
  /**
27339
27361
  * @private
27340
27362
  */
27341
27363
  function fillEmptyParagraph(jodit, nodeElm, hadEffect) {
27342
27364
  if (jodit.o.cleanHTML.fillEmptyParagraph &&
27343
27365
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isBlock(nodeElm) &&
27344
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isEmpty(nodeElm, jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS)) {
27366
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isEmpty(nodeElm, jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) &&
27367
+ !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTag(nodeElm, TABLE_CONTAINER_TAGS)) {
27345
27368
  const br = jodit.createInside.element('br');
27346
27369
  nodeElm.appendChild(br);
27347
27370
  return true;
@@ -30560,7 +30583,8 @@ class hotkeys extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_3__/* .Plugin *
30560
30583
  constructor() {
30561
30584
  super(...arguments);
30562
30585
  this.onKeyPress = (event) => {
30563
- const special = this.specialKeys[event.which], character = (event.key || String.fromCharCode(event.which)).toLowerCase();
30586
+ const special = this.specialKeys[event.which];
30587
+ const character = (event.key || String.fromCharCode(event.which)).toLowerCase();
30564
30588
  const modif = [special || character];
30565
30589
  ['alt', 'ctrl', 'shift', 'meta'].forEach(specialKey => {
30566
30590
  if (event[specialKey + 'Key'] && special !== specialKey) {
@@ -30654,7 +30678,8 @@ class hotkeys extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_3__/* .Plugin *
30654
30678
  }
30655
30679
  })
30656
30680
  .on('keydown.hotkeys', (event) => {
30657
- const shortcut = this.onKeyPress(event), stop = {
30681
+ const shortcut = this.onKeyPress(event);
30682
+ const stop = {
30658
30683
  shouldStop: true
30659
30684
  };
30660
30685
  const resultOfFire = this.j.e.fire(shortcut + '.hotkey', event.type, stop);
@@ -34272,8 +34297,9 @@ __webpack_require__.r(__webpack_exports__);
34272
34297
  /* harmony export */ pt_br: function() { return /* reexport module object */ _pt_br_js__WEBPACK_IMPORTED_MODULE_16__; },
34273
34298
  /* harmony export */ ru: function() { return /* reexport module object */ _ru_js__WEBPACK_IMPORTED_MODULE_17__; },
34274
34299
  /* harmony export */ tr: function() { return /* reexport module object */ _tr_js__WEBPACK_IMPORTED_MODULE_18__; },
34275
- /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__; },
34276
- /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__; }
34300
+ /* harmony export */ ua: function() { return /* reexport module object */ _ua_js__WEBPACK_IMPORTED_MODULE_19__; },
34301
+ /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__; },
34302
+ /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__; }
34277
34303
  /* harmony export */ });
34278
34304
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14100);
34279
34305
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ar_js__WEBPACK_IMPORTED_MODULE_0__);
@@ -34313,10 +34339,12 @@ __webpack_require__.r(__webpack_exports__);
34313
34339
  /* harmony import */ var _ru_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_ru_js__WEBPACK_IMPORTED_MODULE_17__);
34314
34340
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(41145);
34315
34341
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_tr_js__WEBPACK_IMPORTED_MODULE_18__);
34316
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(76877);
34317
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_19__);
34318
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(83289);
34319
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_20__);
34342
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(71289);
34343
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_ua_js__WEBPACK_IMPORTED_MODULE_19__);
34344
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(76877);
34345
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_20__);
34346
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(83289);
34347
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_21__);
34320
34348
  /*!
34321
34349
  * Jodit Editor (https://xdsoft.net/jodit/)
34322
34350
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -34344,6 +34372,7 @@ __webpack_require__.r(__webpack_exports__);
34344
34372
 
34345
34373
 
34346
34374
 
34375
+
34347
34376
 
34348
34377
 
34349
34378
  /***/ }),
@@ -34499,6 +34528,23 @@ module.exports = {
34499
34528
  };
34500
34529
 
34501
34530
 
34531
+ /***/ }),
34532
+
34533
+ /***/ 71289:
34534
+ /***/ (function(module) {
34535
+
34536
+ "use strict";
34537
+
34538
+ /*!
34539
+ * Jodit Editor (https://xdsoft.net/jodit/)
34540
+ * Released under MIT see LICENSE.txt in the project root for license information.
34541
+ * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
34542
+ */
34543
+ module.exports = {
34544
+ 'Line height': 'Висота лінії'
34545
+ };
34546
+
34547
+
34502
34548
  /***/ }),
34503
34549
 
34504
34550
  /***/ 76877:
@@ -38964,7 +39010,7 @@ class selectCells extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_5__/* .Plug
38964
39010
  break;
38965
39011
  case 'addcolumnafter':
38966
39012
  case 'addcolumnbefore':
38967
- this.__tableModule.appendColumn(table, cell.cellIndex, command === 'addcolumnafter');
39013
+ this.__tableModule.appendColumn(table, cell, command === 'addcolumnafter');
38968
39014
  break;
38969
39015
  case 'addrowafter':
38970
39016
  case 'addrowbefore':
@@ -40471,8 +40517,9 @@ __webpack_require__.r(__webpack_exports__);
40471
40517
  /* harmony export */ pt_br: function() { return /* reexport module object */ _pt_br_js__WEBPACK_IMPORTED_MODULE_16__; },
40472
40518
  /* harmony export */ ru: function() { return /* reexport module object */ _ru_js__WEBPACK_IMPORTED_MODULE_17__; },
40473
40519
  /* harmony export */ tr: function() { return /* reexport module object */ _tr_js__WEBPACK_IMPORTED_MODULE_18__; },
40474
- /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__; },
40475
- /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__; }
40520
+ /* harmony export */ ua: function() { return /* reexport module object */ _ua_js__WEBPACK_IMPORTED_MODULE_19__; },
40521
+ /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__; },
40522
+ /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__; }
40476
40523
  /* harmony export */ });
40477
40524
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82602);
40478
40525
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ar_js__WEBPACK_IMPORTED_MODULE_0__);
@@ -40512,10 +40559,12 @@ __webpack_require__.r(__webpack_exports__);
40512
40559
  /* harmony import */ var _ru_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_ru_js__WEBPACK_IMPORTED_MODULE_17__);
40513
40560
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(98439);
40514
40561
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_tr_js__WEBPACK_IMPORTED_MODULE_18__);
40515
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(55835);
40516
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_19__);
40517
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(34747);
40518
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_20__);
40562
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(65115);
40563
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_ua_js__WEBPACK_IMPORTED_MODULE_19__);
40564
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(55835);
40565
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_20__);
40566
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(34747);
40567
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_21__);
40519
40568
  /*!
40520
40569
  * Jodit Editor (https://xdsoft.net/jodit/)
40521
40570
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -40543,6 +40592,7 @@ __webpack_require__.r(__webpack_exports__);
40543
40592
 
40544
40593
 
40545
40594
 
40595
+
40546
40596
 
40547
40597
 
40548
40598
  /***/ }),
@@ -40698,6 +40748,23 @@ module.exports = {
40698
40748
  };
40699
40749
 
40700
40750
 
40751
+ /***/ }),
40752
+
40753
+ /***/ 65115:
40754
+ /***/ (function(module) {
40755
+
40756
+ "use strict";
40757
+
40758
+ /*!
40759
+ * Jodit Editor (https://xdsoft.net/jodit/)
40760
+ * Released under MIT see LICENSE.txt in the project root for license information.
40761
+ * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
40762
+ */
40763
+ module.exports = {
40764
+ Spellcheck: 'Перевірка орфографії'
40765
+ };
40766
+
40767
+
40701
40768
  /***/ }),
40702
40769
 
40703
40770
  /***/ 55835:
@@ -42286,6 +42353,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.tab
42286
42353
  }
42287
42354
  },
42288
42355
  popup: (editor, current, close, button) => {
42356
+ editor.editor.normalize();
42357
+ const snapshot = editor.history.snapshot.make();
42289
42358
  const control = button.control;
42290
42359
  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;
42291
42360
  const generateExtraClasses = () => {
@@ -42378,10 +42447,24 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.tab
42378
42447
  table.classList.add(className);
42379
42448
  });
42380
42449
  });
42381
- if (editor.editor.firstChild) {
42382
- editor.s.insertNode(crt.text('\n'), false, false);
42450
+ editor.s.restore();
42451
+ editor.s.removeMarkers();
42452
+ editor.editor.normalize();
42453
+ editor.history.snapshot.restore(snapshot);
42454
+ 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);
42455
+ if (block && jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isEmpty(block)) {
42456
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.replace(block, table, undefined, false, true);
42457
+ }
42458
+ else {
42459
+ if (block) {
42460
+ const fake = crt.text('\n');
42461
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.after(block, fake);
42462
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.after(fake, table);
42463
+ }
42464
+ else {
42465
+ editor.s.insertNode(table, false);
42466
+ }
42383
42467
  }
42384
- editor.s.insertNode(table, false);
42385
42468
  if (first_td) {
42386
42469
  editor.s.setCursorIn(first_td);
42387
42470
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.scrollIntoViewIfNeeded)(first_td, editor.editor, editor.ed);
@@ -43167,6 +43250,13 @@ module.exports["default"] = ["Bir şeyler yaz","Jodit Hakkında","Jodit Editor",
43167
43250
 
43168
43251
  /***/ }),
43169
43252
 
43253
+ /***/ 57456:
43254
+ /***/ (function(module) {
43255
+
43256
+ 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 для зміни розміру"]
43257
+
43258
+ /***/ }),
43259
+
43170
43260
  /***/ 25182:
43171
43261
  /***/ (function(module) {
43172
43262