jodit 4.18.7 → 4.18.9
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.
- package/CHANGELOG.md +16 -0
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.js +9 -9
- package/es2015/jodit.js +215 -47
- package/es2015/jodit.min.js +7 -7
- package/es2015/plugins/debug/debug.css +1 -1
- package/es2015/plugins/debug/debug.js +1 -1
- package/es2015/plugins/debug/debug.min.js +1 -1
- package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
- package/es2015/plugins/speech-recognize/speech-recognize.js +1 -1
- package/es2015/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es2018/jodit.fat.min.js +9 -9
- package/es2018/jodit.min.js +7 -7
- package/es2018/plugins/debug/debug.min.js +1 -1
- package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es2021/jodit.css +1 -1
- package/es2021/jodit.fat.min.js +10 -10
- package/es2021/jodit.js +215 -47
- package/es2021/jodit.min.js +7 -7
- package/es2021/plugins/debug/debug.css +1 -1
- package/es2021/plugins/debug/debug.js +1 -1
- package/es2021/plugins/debug/debug.min.js +1 -1
- package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
- package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
- package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es2021.en/jodit.css +1 -1
- package/es2021.en/jodit.fat.min.js +10 -10
- package/es2021.en/jodit.js +189 -21
- package/es2021.en/jodit.min.js +7 -7
- package/es2021.en/plugins/debug/debug.css +1 -1
- package/es2021.en/plugins/debug/debug.js +1 -1
- package/es2021.en/plugins/debug/debug.min.js +1 -1
- package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
- package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
- package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es5/jodit.css +2 -2
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +223 -47
- package/es5/jodit.min.css +2 -2
- package/es5/jodit.min.js +2 -2
- package/es5/plugins/debug/debug.css +1 -1
- package/es5/plugins/debug/debug.js +1 -1
- package/es5/plugins/debug/debug.min.js +1 -1
- package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
- package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
- package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es5/polyfills.fat.min.js +1 -1
- package/es5/polyfills.js +1 -1
- package/es5/polyfills.min.js +1 -1
- package/esm/config.d.ts +2 -2
- package/esm/core/constants.js +1 -1
- package/esm/core/ui/button/tooltip/tooltip.js +7 -0
- package/esm/langs/ar.d.ts +1 -0
- package/esm/langs/ar.js +2 -1
- package/esm/langs/az.d.ts +1 -0
- package/esm/langs/az.js +2 -1
- package/esm/langs/cs_cz.d.ts +1 -0
- package/esm/langs/cs_cz.js +2 -1
- package/esm/langs/de.d.ts +1 -0
- package/esm/langs/de.js +2 -1
- package/esm/langs/es.d.ts +1 -0
- package/esm/langs/es.js +2 -1
- package/esm/langs/fa.d.ts +1 -0
- package/esm/langs/fa.js +2 -1
- package/esm/langs/fi.d.ts +1 -0
- package/esm/langs/fi.js +2 -1
- package/esm/langs/fr.d.ts +1 -0
- package/esm/langs/fr.js +2 -1
- package/esm/langs/he.d.ts +1 -0
- package/esm/langs/he.js +2 -1
- package/esm/langs/hu.d.ts +1 -0
- package/esm/langs/hu.js +2 -1
- package/esm/langs/id.d.ts +1 -0
- package/esm/langs/id.js +2 -1
- package/esm/langs/it.d.ts +1 -0
- package/esm/langs/it.js +2 -1
- package/esm/langs/ja.d.ts +1 -0
- package/esm/langs/ja.js +2 -1
- package/esm/langs/ko.d.ts +1 -0
- package/esm/langs/ko.js +2 -1
- package/esm/langs/mn.d.ts +1 -0
- package/esm/langs/mn.js +2 -1
- package/esm/langs/nl.d.ts +1 -0
- package/esm/langs/nl.js +2 -1
- package/esm/langs/no.d.ts +1 -0
- package/esm/langs/no.js +2 -1
- package/esm/langs/pl.d.ts +1 -0
- package/esm/langs/pl.js +2 -1
- package/esm/langs/pt_br.d.ts +1 -0
- package/esm/langs/pt_br.js +2 -1
- package/esm/langs/ru.d.ts +1 -0
- package/esm/langs/ru.js +2 -1
- package/esm/langs/sk.d.ts +1 -0
- package/esm/langs/sk.js +2 -1
- package/esm/langs/sv.d.ts +1 -0
- package/esm/langs/sv.js +2 -1
- package/esm/langs/tr.d.ts +1 -0
- package/esm/langs/tr.js +2 -1
- package/esm/langs/ua.d.ts +1 -0
- package/esm/langs/ua.js +2 -1
- package/esm/langs/zh_cn.d.ts +1 -0
- package/esm/langs/zh_cn.js +2 -1
- package/esm/langs/zh_tw.d.ts +1 -0
- package/esm/langs/zh_tw.js +2 -1
- package/esm/modules/dialog/dialog.js +19 -3
- package/esm/plugins/ai-assistant/ui/ui-ai-assistant.js +11 -2
- package/esm/plugins/backspace/cases/check-join-neighbors.js +81 -0
- package/esm/plugins/backspace/cases/check-remove-char.js +6 -5
- package/esm/plugins/backspace/cases/check-unwrap-list-item.d.ts +26 -0
- package/esm/plugins/backspace/cases/check-unwrap-list-item.js +56 -0
- package/esm/plugins/backspace/cases/index.js +2 -0
- package/esm/plugins/backspace/config.d.ts +2 -2
- package/esm/plugins/bold/config.js +2 -2
- package/esm/plugins/enter/enter.js +1 -1
- package/esm/plugins/enter/helpers/check-br.js +7 -2
- package/package.json +1 -1
- package/types/config.d.ts +2 -2
- package/types/langs/ar.d.ts +1 -0
- package/types/langs/az.d.ts +1 -0
- package/types/langs/cs_cz.d.ts +1 -0
- package/types/langs/de.d.ts +1 -0
- package/types/langs/es.d.ts +1 -0
- package/types/langs/fa.d.ts +1 -0
- package/types/langs/fi.d.ts +1 -0
- package/types/langs/fr.d.ts +1 -0
- package/types/langs/he.d.ts +1 -0
- package/types/langs/hu.d.ts +1 -0
- package/types/langs/id.d.ts +1 -0
- package/types/langs/it.d.ts +1 -0
- package/types/langs/ja.d.ts +1 -0
- package/types/langs/ko.d.ts +1 -0
- package/types/langs/mn.d.ts +1 -0
- package/types/langs/nl.d.ts +1 -0
- package/types/langs/no.d.ts +1 -0
- package/types/langs/pl.d.ts +1 -0
- package/types/langs/pt_br.d.ts +1 -0
- package/types/langs/ru.d.ts +1 -0
- package/types/langs/sk.d.ts +1 -0
- package/types/langs/sv.d.ts +1 -0
- package/types/langs/tr.d.ts +1 -0
- package/types/langs/ua.d.ts +1 -0
- package/types/langs/zh_cn.d.ts +1 -0
- package/types/langs/zh_tw.d.ts +1 -0
- package/types/plugins/backspace/cases/check-unwrap-list-item.d.ts +26 -0
- package/types/plugins/backspace/config.d.ts +2 -2
package/es2021.en/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.18.
|
|
4
|
+
* Version: v4.18.9
|
|
5
5
|
* Url: https://xdsoft.net/jodit/
|
|
6
6
|
* License(s): MIT
|
|
7
7
|
*/
|
|
@@ -1822,7 +1822,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1822
1822
|
* ```
|
|
1823
1823
|
* @packageDocumentation
|
|
1824
1824
|
* @module constants
|
|
1825
|
-
*/ const APP_VERSION = "4.18.
|
|
1825
|
+
*/ const APP_VERSION = "4.18.9";
|
|
1826
1826
|
// prettier-ignore
|
|
1827
1827
|
const ES = "es2021";
|
|
1828
1828
|
const IS_ES_MODERN = true;
|
|
@@ -15394,6 +15394,12 @@ class UITooltip extends jodit_core_ui_element__WEBPACK_IMPORTED_MODULE_9__.UIEle
|
|
|
15394
15394
|
if (!isOwn) {
|
|
15395
15395
|
return;
|
|
15396
15396
|
}
|
|
15397
|
+
// A dialog's `aria-label` is its title and a file input's names its
|
|
15398
|
+
// click target. Neither is a tooltip, and both boxes would put one off
|
|
15399
|
+
// the screen
|
|
15400
|
+
if ((0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_8__.attr)(e.target, 'role') === 'dialog' || jodit_core_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isTag(e.target, 'input') && e.target.type === 'file') {
|
|
15401
|
+
return;
|
|
15402
|
+
}
|
|
15397
15403
|
this.__currentTarget = e.target;
|
|
15398
15404
|
const target = e.target;
|
|
15399
15405
|
this.__open(()=>{
|
|
@@ -19822,6 +19828,9 @@ ContextMenu = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_0__.__decorat
|
|
|
19822
19828
|
|
|
19823
19829
|
|
|
19824
19830
|
|
|
19831
|
+
/**
|
|
19832
|
+
* A position from 0 up to `max`, or 0 when the panel is larger than the window
|
|
19833
|
+
*/ const clampToWindow = (value, max)=>Math.max(0, Math.min(value, max));
|
|
19825
19834
|
jodit_config__WEBPACK_IMPORTED_MODULE_15__.Config.prototype.dialog = {
|
|
19826
19835
|
namespace: '',
|
|
19827
19836
|
extraButtons: [],
|
|
@@ -19841,6 +19850,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_15__.Config.prototype.dialog = {
|
|
|
19841
19850
|
jodit_config__WEBPACK_IMPORTED_MODULE_15__.Config.prototype.controls.dialog = {
|
|
19842
19851
|
close: {
|
|
19843
19852
|
icon: 'cancel',
|
|
19853
|
+
tooltip: 'Close',
|
|
19844
19854
|
exec: (dialog)=>{
|
|
19845
19855
|
dialog.close();
|
|
19846
19856
|
}
|
|
@@ -19912,6 +19922,11 @@ class Dialog extends jodit_core_view_view_with_toolbar__WEBPACK_IMPORTED_MODULE_
|
|
|
19912
19922
|
this.startY = e.clientY;
|
|
19913
19923
|
this.startPoint.x = (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_10__.css)(this.dialog, 'left');
|
|
19914
19924
|
this.startPoint.y = (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_10__.css)(this.dialog, 'top');
|
|
19925
|
+
// Rounded up: at the right edge a fraction of a pixel less room would
|
|
19926
|
+
// wrap the header of a panel that has no width of its own
|
|
19927
|
+
const { width, height } = this.dialog.getBoundingClientRect();
|
|
19928
|
+
this.startPoint.w = Math.ceil(width);
|
|
19929
|
+
this.startPoint.h = Math.ceil(height);
|
|
19915
19930
|
this.setMaxZIndex();
|
|
19916
19931
|
if (e.cancelable) {
|
|
19917
19932
|
e.preventDefault();
|
|
@@ -19927,7 +19942,11 @@ class Dialog extends jodit_core_view_view_with_toolbar__WEBPACK_IMPORTED_MODULE_
|
|
|
19927
19942
|
}
|
|
19928
19943
|
__onMouseMove(e) {
|
|
19929
19944
|
if (this.draggable && this.o.draggable) {
|
|
19930
|
-
|
|
19945
|
+
const { documentElement } = this.od;
|
|
19946
|
+
// Keep the whole panel in the window at the size it had when the
|
|
19947
|
+
// drag began. A panel with no width of its own would otherwise
|
|
19948
|
+
// shrink as it neared the right edge, and then leave the window
|
|
19949
|
+
this.setPosition(clampToWindow(this.startPoint.x + e.clientX - this.startX, (documentElement.clientWidth || this.ow.innerWidth) - this.startPoint.w), clampToWindow(this.startPoint.y + e.clientY - this.startY, (documentElement.clientHeight || this.ow.innerHeight) - this.startPoint.h));
|
|
19931
19950
|
if (this.e) {
|
|
19932
19951
|
/**
|
|
19933
19952
|
* Fired when dialog box is moved
|
|
@@ -20052,8 +20071,8 @@ class Dialog extends jodit_core_view_view_with_toolbar__WEBPACK_IMPORTED_MODULE_
|
|
|
20052
20071
|
}
|
|
20053
20072
|
// strings on purpose: `css()` would truncate fractional pixels
|
|
20054
20073
|
;(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_10__.css)(this.dialog, {
|
|
20055
|
-
left: (x
|
|
20056
|
-
top: (y
|
|
20074
|
+
left: (x ?? left) + 'px',
|
|
20075
|
+
top: (y ?? top) + 'px'
|
|
20057
20076
|
});
|
|
20058
20077
|
return this;
|
|
20059
20078
|
}
|
|
@@ -27967,8 +27986,21 @@ class UiAiAssistant extends jodit_core_ui_element__WEBPACK_IMPORTED_MODULE_7__.U
|
|
|
27967
27986
|
this.__toggleSubmitButton(true);
|
|
27968
27987
|
}
|
|
27969
27988
|
};
|
|
27970
|
-
this.__submitButton = (0,jodit_core_ui__WEBPACK_IMPORTED_MODULE_6__.Button)(jodit,
|
|
27971
|
-
|
|
27989
|
+
this.__submitButton = (0,jodit_core_ui__WEBPACK_IMPORTED_MODULE_6__.Button)(jodit, {
|
|
27990
|
+
icon: {
|
|
27991
|
+
name: 'ai-assistant'
|
|
27992
|
+
},
|
|
27993
|
+
name: 'ai-assistant',
|
|
27994
|
+
tooltip: 'Submit'
|
|
27995
|
+
}).onAction(onSubmit);
|
|
27996
|
+
this.__tryAgainButton = (0,jodit_core_ui__WEBPACK_IMPORTED_MODULE_6__.Button)(jodit, {
|
|
27997
|
+
icon: {
|
|
27998
|
+
name: 'update'
|
|
27999
|
+
},
|
|
28000
|
+
name: 'update',
|
|
28001
|
+
tooltip: 'Try Again',
|
|
28002
|
+
variant: 'initial'
|
|
28003
|
+
}).onAction(onSubmit);
|
|
27972
28004
|
this.promptInput = new jodit_core_ui__WEBPACK_IMPORTED_MODULE_6__.UITextArea(jodit, {
|
|
27973
28005
|
name: 'prompt',
|
|
27974
28006
|
required: true,
|
|
@@ -28191,6 +28223,9 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('backspace', bac
|
|
|
28191
28223
|
* Check if two separate elements can be connected
|
|
28192
28224
|
* @private
|
|
28193
28225
|
*/ function checkJoinNeighbors(jodit, fakeNode, backspace) {
|
|
28226
|
+
if (checkJoinBareText(jodit, fakeNode, backspace)) {
|
|
28227
|
+
return true;
|
|
28228
|
+
}
|
|
28194
28229
|
let nextBox = fakeNode, mainClosestBox = nextBox;
|
|
28195
28230
|
// Find the main big closest element
|
|
28196
28231
|
while(nextBox && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(nextBox, backspace) && nextBox.parentElement !== jodit.editor){
|
|
@@ -28218,7 +28253,7 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('backspace', bac
|
|
|
28218
28253
|
return true;
|
|
28219
28254
|
}
|
|
28220
28255
|
const box = findCaretBox(fakeNode, mainClosestBox);
|
|
28221
|
-
if (sibling && (checkPullNextLine(jodit, fakeNode, box, sibling, backspace) || checkMoveListContent(jodit, box, sibling, backspace) || moveContentAndRemoveEmpty(jodit, box, findEdgeBlock(resolveTableSibling(sibling, backspace), backspace, jodit.editor), backspace))) {
|
|
28256
|
+
if (sibling && (checkPullNextLine(jodit, fakeNode, box, sibling, backspace) || checkMoveListContent(jodit, box, sibling, backspace) || checkJoinInlineSibling(jodit, box, sibling, backspace) || moveContentAndRemoveEmpty(jodit, box, findEdgeBlock(resolveTableSibling(sibling, backspace), backspace, jodit.editor), backspace))) {
|
|
28222
28257
|
jodit.s.setCursorBefore(fakeNode);
|
|
28223
28258
|
return true;
|
|
28224
28259
|
}
|
|
@@ -28303,6 +28338,70 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('backspace', bac
|
|
|
28303
28338
|
}
|
|
28304
28339
|
return true;
|
|
28305
28340
|
}
|
|
28341
|
+
/**
|
|
28342
|
+
* A block next to bare text in the same parent joins that text, as the
|
|
28343
|
+
* browsers do: `<li>one<p>|two</p></li>` gives `<li>one|two</li>`, and
|
|
28344
|
+
* `<li><p>one|</p>two</li>` gives `<li><p>one|two</p></li>`
|
|
28345
|
+
* @private
|
|
28346
|
+
*/ function checkJoinInlineSibling(jodit, box, sibling, backspace) {
|
|
28347
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(sibling) || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(box) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(box) || // The caret's block is nested deeper than the text: `text<div><p>|x</p></div>`
|
|
28348
|
+
box.parentNode !== sibling.parentNode || Array.from(box.childNodes).some((node)=>jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node))) {
|
|
28349
|
+
return false;
|
|
28350
|
+
}
|
|
28351
|
+
if (backspace) {
|
|
28352
|
+
// Text after the block keeps its own line
|
|
28353
|
+
const next = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(box, false);
|
|
28354
|
+
if (next && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(next) && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(next, 'br')) {
|
|
28355
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.after(box, jodit.createInside.element('br'));
|
|
28356
|
+
}
|
|
28357
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(box);
|
|
28358
|
+
return true;
|
|
28359
|
+
}
|
|
28360
|
+
const filter = (0,jodit_plugins_backspace_helpers__WEBPACK_IMPORTED_MODULE_2__.getMoveFilter)(jodit);
|
|
28361
|
+
for(let node = sibling; node && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node);){
|
|
28362
|
+
const next = node.nextSibling;
|
|
28363
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, 'br')) {
|
|
28364
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
28365
|
+
break;
|
|
28366
|
+
}
|
|
28367
|
+
filter(node) ? jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.append(box, node) : jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
28368
|
+
node = next;
|
|
28369
|
+
}
|
|
28370
|
+
return true;
|
|
28371
|
+
}
|
|
28372
|
+
/**
|
|
28373
|
+
* Bare text next to a block in the same parent, as the browsers join them:
|
|
28374
|
+
* Backspace in `<div><p>a</p>|b</div>` gives `<div><p>a|b</p></div>`, Delete
|
|
28375
|
+
* in `<div>a|<p>b</p>c</div>` gives `<div>a|b<br>c</div>`
|
|
28376
|
+
*/ function checkJoinBareText(jodit, fakeNode, backspace) {
|
|
28377
|
+
const block = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(fakeNode, backspace);
|
|
28378
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(block) || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(block) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(block) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(block, 'table') || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell(block) || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(block, jodit.editor) || Array.from(block.childNodes).some((node)=>jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node))) {
|
|
28379
|
+
return false;
|
|
28380
|
+
}
|
|
28381
|
+
const filter = (0,jodit_plugins_backspace_helpers__WEBPACK_IMPORTED_MODULE_2__.getMoveFilter)(jodit);
|
|
28382
|
+
if (backspace) {
|
|
28383
|
+
// The caret's line goes to the end of the block before it
|
|
28384
|
+
for(let node = fakeNode; node && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node);){
|
|
28385
|
+
const next = node.nextSibling;
|
|
28386
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, 'br')) {
|
|
28387
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
28388
|
+
break;
|
|
28389
|
+
}
|
|
28390
|
+
filter(node) ? jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.append(block, node) : jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
|
|
28391
|
+
node = next;
|
|
28392
|
+
}
|
|
28393
|
+
} else {
|
|
28394
|
+
// The block's content joins the caret's line, and text after the
|
|
28395
|
+
// block keeps its own line
|
|
28396
|
+
const next = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(block, false);
|
|
28397
|
+
if (next && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(next) && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(next, 'br')) {
|
|
28398
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.after(block, jodit.createInside.element('br'));
|
|
28399
|
+
}
|
|
28400
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(block);
|
|
28401
|
+
}
|
|
28402
|
+
jodit.s.setCursorBefore(fakeNode);
|
|
28403
|
+
return true;
|
|
28404
|
+
}
|
|
28306
28405
|
function checkMoveListContent(jodit, mainClosestBox, sibling, backspace) {
|
|
28307
28406
|
// Process UL/LI/OL cases
|
|
28308
28407
|
const siblingIsList = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.LIST_TAGS);
|
|
@@ -28514,10 +28613,11 @@ function getNextInlineSibling(sibling, backspace, root) {
|
|
|
28514
28613
|
let nextSibling = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.sibling(sibling, backspace);
|
|
28515
28614
|
if (!nextSibling && sibling.parentNode && sibling.parentNode !== root) {
|
|
28516
28615
|
nextSibling = (0,jodit_plugins_backspace_helpers__WEBPACK_IMPORTED_MODULE_3__.findMostNestedNeighbor)(sibling, !backspace, root, true);
|
|
28517
|
-
// Do not cross a
|
|
28518
|
-
// neighbor can be the text of the parent/previous item
|
|
28519
|
-
//
|
|
28520
|
-
|
|
28616
|
+
// Do not cross a block boundary. At the start of a list item the
|
|
28617
|
+
// neighbor can be the text of the parent/previous item (#1277), and at
|
|
28618
|
+
// the start of a paragraph the text before it in the same parent
|
|
28619
|
+
// (#1693); deleting a char there is wrong — the join cases handle them.
|
|
28620
|
+
if (nextSibling && jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(sibling, jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, root) !== jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(nextSibling, jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, root)) {
|
|
28521
28621
|
return null;
|
|
28522
28622
|
}
|
|
28523
28623
|
}
|
|
@@ -28895,6 +28995,69 @@ function isSpace(char) {
|
|
|
28895
28995
|
}
|
|
28896
28996
|
|
|
28897
28997
|
|
|
28998
|
+
/***/ }),
|
|
28999
|
+
|
|
29000
|
+
/***/ 88426:
|
|
29001
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
29002
|
+
|
|
29003
|
+
"use strict";
|
|
29004
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
29005
|
+
/* harmony export */ checkUnwrapListItem: function() { return /* binding */ checkUnwrapListItem; }
|
|
29006
|
+
/* harmony export */ });
|
|
29007
|
+
/* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23211);
|
|
29008
|
+
/*!
|
|
29009
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
29010
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
29011
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
29012
|
+
*/ /**
|
|
29013
|
+
* @module plugins/backspace
|
|
29014
|
+
*/
|
|
29015
|
+
/**
|
|
29016
|
+
* Backspace at the start of a later list item takes the bullet off, as Word
|
|
29017
|
+
* does: the item becomes a paragraph where it was, and the list is split
|
|
29018
|
+
* around it. A split `<ol>` carries its numbering on with `start`.
|
|
29019
|
+
*
|
|
29020
|
+
* @example
|
|
29021
|
+
* ```html
|
|
29022
|
+
* <ol><li>first</li><li>|second</li><li>third</li></ol>
|
|
29023
|
+
* ```
|
|
29024
|
+
* Result
|
|
29025
|
+
* ```html
|
|
29026
|
+
* <ol><li>first</li></ol><p>|second</p><ol start="2"><li>third</li></ol>
|
|
29027
|
+
* ```
|
|
29028
|
+
*
|
|
29029
|
+
* @private
|
|
29030
|
+
*/ function checkUnwrapListItem(jodit, fakeNode, backspace) {
|
|
29031
|
+
if (!backspace) {
|
|
29032
|
+
return false;
|
|
29033
|
+
}
|
|
29034
|
+
const li = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(fakeNode, 'li', jodit.editor);
|
|
29035
|
+
const list = li ? li.parentElement : null;
|
|
29036
|
+
if (!li || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isList(list) || !li.previousElementSibling || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(li) || Array.from(li.childNodes).some((node)=>jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(node)) || !jodit.s.cursorInTheEdge(true, li)) {
|
|
29037
|
+
return false;
|
|
29038
|
+
}
|
|
29039
|
+
const p = jodit.createInside.element(jodit.o.enterBlock);
|
|
29040
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.after(list, p);
|
|
29041
|
+
if (li.nextElementSibling) {
|
|
29042
|
+
const rest = list.cloneNode(false);
|
|
29043
|
+
// Two lists cannot share one id
|
|
29044
|
+
rest.removeAttribute('id');
|
|
29045
|
+
while(li.nextSibling){
|
|
29046
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.append(rest, li.nextSibling);
|
|
29047
|
+
}
|
|
29048
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(list, 'ol')) {
|
|
29049
|
+
const start = parseInt(list.getAttribute('start') || '1', 10) || 1;
|
|
29050
|
+
rest.setAttribute('start', String(start + list.children.length - 1));
|
|
29051
|
+
}
|
|
29052
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.after(p, rest);
|
|
29053
|
+
}
|
|
29054
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.moveContent(li, p);
|
|
29055
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(li);
|
|
29056
|
+
jodit.s.setCursorBefore(fakeNode);
|
|
29057
|
+
return true;
|
|
29058
|
+
}
|
|
29059
|
+
|
|
29060
|
+
|
|
28898
29061
|
/***/ }),
|
|
28899
29062
|
|
|
28900
29063
|
/***/ 17523:
|
|
@@ -28911,6 +29074,7 @@ function isSpace(char) {
|
|
|
28911
29074
|
/* harmony import */ var _check_remove_unbreakable_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(93890);
|
|
28912
29075
|
/* harmony import */ var _check_table_cell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12443);
|
|
28913
29076
|
/* harmony import */ var _check_unwrap_first_list_item__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(10157);
|
|
29077
|
+
/* harmony import */ var _check_unwrap_list_item__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(88426);
|
|
28914
29078
|
/*!
|
|
28915
29079
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
28916
29080
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -28926,6 +29090,7 @@ function isSpace(char) {
|
|
|
28926
29090
|
|
|
28927
29091
|
|
|
28928
29092
|
|
|
29093
|
+
|
|
28929
29094
|
/**
|
|
28930
29095
|
* Ordered delete/backspace cases with stable keys. The first one returning
|
|
28931
29096
|
* `true` wins. The keys are stable across minified builds (function names are
|
|
@@ -28960,6 +29125,10 @@ function isSpace(char) {
|
|
|
28960
29125
|
'join-two-lists',
|
|
28961
29126
|
_check_join_two_lists__WEBPACK_IMPORTED_MODULE_1__.checkJoinTwoLists
|
|
28962
29127
|
],
|
|
29128
|
+
[
|
|
29129
|
+
'unwrap-list-item',
|
|
29130
|
+
_check_unwrap_list_item__WEBPACK_IMPORTED_MODULE_9__.checkUnwrapListItem
|
|
29131
|
+
],
|
|
28963
29132
|
[
|
|
28964
29133
|
'join-neighbors',
|
|
28965
29134
|
_check_join_neighbors__WEBPACK_IMPORTED_MODULE_0__.checkJoinNeighbors
|
|
@@ -29206,13 +29375,13 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.controls.subscript =
|
|
|
29206
29375
|
tags: [
|
|
29207
29376
|
'sub'
|
|
29208
29377
|
],
|
|
29209
|
-
tooltip: '
|
|
29378
|
+
tooltip: 'Subscript'
|
|
29210
29379
|
};
|
|
29211
29380
|
jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.controls.superscript = {
|
|
29212
29381
|
tags: [
|
|
29213
29382
|
'sup'
|
|
29214
29383
|
],
|
|
29215
|
-
tooltip: '
|
|
29384
|
+
tooltip: 'Superscript'
|
|
29216
29385
|
};
|
|
29217
29386
|
jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.controls.bold = {
|
|
29218
29387
|
tagRegExp: /^(strong|b)$/i,
|
|
@@ -32307,7 +32476,7 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('dtd', dtd);
|
|
|
32307
32476
|
]);
|
|
32308
32477
|
let block = (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.getBlockWrapper)(fake, jodit);
|
|
32309
32478
|
const isLi = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isLeaf(block);
|
|
32310
|
-
// if use <br> defaultTag for break line or when was entered SHIFt key or in <td
|
|
32479
|
+
// if use <br> defaultTag for break line or when was entered SHIFt key or in <td>, <th> or <blockquote> without an inner block
|
|
32311
32480
|
if ((!isLi || event?.shiftKey) && (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.checkBR)(fake, jodit, event?.shiftKey, block)) {
|
|
32312
32481
|
return false;
|
|
32313
32482
|
}
|
|
@@ -32371,10 +32540,9 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_4__.pluginSystem.add('enter', enter);
|
|
|
32371
32540
|
* Checks the possibility and necessity of inserting a BR instead of a block
|
|
32372
32541
|
* @private
|
|
32373
32542
|
*/ function checkBR(fake, jodit, shiftKeyPressed, block) {
|
|
32374
|
-
|
|
32375
|
-
|
|
32376
|
-
|
|
32377
|
-
], jodit.editor));
|
|
32543
|
+
// Text in a <pre>, or bare text in a quote, gets a BR. A real block inside
|
|
32544
|
+
// a quote (<p>, <h3>, ...) is split like anywhere else, as in a cell below.
|
|
32545
|
+
const isMultiLineBlock = Boolean(jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, 'pre', jodit.editor)) || (block ? jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(block, 'blockquote') : Boolean(jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, 'blockquote', jodit.editor)));
|
|
32378
32546
|
// A cell itself can't be split into two cells, so bare cell content gets
|
|
32379
32547
|
// a BR. But when the cell already holds a real block (<p>, <h3>, ...) that
|
|
32380
32548
|
// block is split like anywhere else, otherwise every line of the cell
|
|
@@ -32384,7 +32552,7 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_4__.pluginSystem.add('enter', enter);
|
|
|
32384
32552
|
'th'
|
|
32385
32553
|
], jodit.editor)));
|
|
32386
32554
|
const isBRMode = jodit.o.enter.toLowerCase() === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.BR.toLowerCase();
|
|
32387
|
-
// if you use <br> defaultTag for break line or when was entered SHIFt key or in <td
|
|
32555
|
+
// if you use <br> defaultTag for break line or when was entered SHIFt key or in <td>, <th> or <blockquote> without an inner block
|
|
32388
32556
|
if (isBRMode || isCell || shiftKeyPressed && !isMultiLineBlock || !shiftKeyPressed && isMultiLineBlock) {
|
|
32389
32557
|
// 2 BR before
|
|
32390
32558
|
if (isMultiLineBlock && checkSeveralBR(fake)) {
|
|
@@ -47223,7 +47391,7 @@ module.exports["default"] = {"Type something":"Start writing...","pencil":"Edit"
|
|
|
47223
47391
|
/***/ 53414:
|
|
47224
47392
|
/***/ (function(module) {
|
|
47225
47393
|
|
|
47226
|
-
module.exports["default"] = [" URL","--Not Set--","About Jodit","Add column","Add folder","Add row","Advanced","Align","Align Center","Align Justify","Align Left","Align Right","All","Alternative","Alternative text","Anchor","Apply","Are you sure?","Audio properties","Autoplay","Background","Bold","Border","Border radius","Bottom","Break","Browse","Buy full version","Cancel","Center","Change mode","Chars: %d","Choose Content to Paste","Circle","Class name","Classes","Clean","Clear Formatting","Code","Controls","Copy selection","Copyright © XDSoft.net - Chupurnov Valeriy. All rights reserved.","Create directory","Crop","Cut selection","Decrease Indent","Default","Delete","Delete column","Delete row","Delete table","Dot","Drop file","Drop image","Edit","Edit image","Edit link","Embed code","Empty cell","Enter Directory name","Enter new name","Error on load folders","Error on load list","Eye","File Browser","Fill color or set the text color","Filter","Find","Find Next","Find Previous","Font family","Font size","For information about the license, please go to our website:","Free Non-commercial Version","Heading 1","Heading 2","Heading 3","Heading 4","Height","Horizontal align","Image","Image properties","Increase Indent","Insert","Insert Horizontal Line","Insert Image","Insert Ordered List","Insert Special Character","Insert Unordered List","Insert as Text","Insert className","Insert column after","Insert column before","Insert file","Insert format block","Insert link","Insert only Text","Insert row above","Insert row below","Insert table","Insert youtube/vimeo video","Interim Results","Italic","Jodit Editor","Jodit User's Guide","Keep","Keep Aspect Ratio","Left","License: %s","Line height","Link","List view","Loop","Lower Alpha","Lower Greek","Lower Roman","Margins","Merge","Middle","Muted","No","No follow","Normal","Number for the first item","Ok","Open in fullsize","Open in new tab","Open link","Open link in new tab","Paint format","Paste","Paste as HTML","Paste from clipboard","Please enter a web address","Please fill out this field","Poster","Press Alt for custom resizing","Print","Quadrate","Quote","Redo","Remove","Remove file","Rename","Replace","Replace with","Reset","Resize","Right","Save","Save as ...","Search for","Select","Select %s","Select Special Character","Select all","Select file","Show all","Sort by changed","Sort by name","Sort by size","Sound","Speech Recognize","Spellcheck","Split","Split horizontal","Split vertical","Src","Start at...","Start numbering at","Strike through","Styles","Text","The image has been successfully uploaded to the host!","The pasted content is coming from a Microsoft Word/Excel document. Do you want to keep the format or clean it up?","There are no files","Tiles view","Title","Top","Type something","Underline","Undo","Unlink","Update","Update file list","Upload","Upload file","Upper Alpha","Upper Roman","Vertical align","Video properties","Width","Word Paste Detected","Words: %d","Yes","You can only edit your own images. Download this image on the host?","Your browser doesn't support direct access to the clipboard.","Your code is similar to HTML. Keep as HTML?","about","apply","bold","bottom","brush","circle","contains detailed help for using","copy","cut","default","delete","dot","download","edit","eraser","file","font","fontsize","fullsize","hr","image","indent","italic","left","link","newline","ol","or click","outdent","palette","paragraph","pencil","preview","print","redo","right","selectall","shrink","sound","source","space","spellcheck","square","strikethrough","subscript","superscript","table","top","type dir name","type name","ul","underline","undo","video"]
|
|
47394
|
+
module.exports["default"] = [" URL","--Not Set--","About Jodit","Add column","Add folder","Add row","Advanced","Align","Align Center","Align Justify","Align Left","Align Right","All","Alternative","Alternative text","Anchor","Apply","Are you sure?","Audio properties","Autoplay","Background","Bold","Border","Border radius","Bottom","Break","Browse","Buy full version","Cancel","Center","Change mode","Chars: %d","Choose Content to Paste","Circle","Class name","Classes","Clean","Clear Formatting","Close","Code","Controls","Copy selection","Copyright © XDSoft.net - Chupurnov Valeriy. All rights reserved.","Create directory","Crop","Cut selection","Decrease Indent","Default","Delete","Delete column","Delete row","Delete table","Dot","Drop file","Drop image","Edit","Edit image","Edit link","Embed code","Empty cell","Enter Directory name","Enter new name","Error on load folders","Error on load list","Eye","File Browser","Fill color or set the text color","Filter","Find","Find Next","Find Previous","Font family","Font size","For information about the license, please go to our website:","Free Non-commercial Version","Heading 1","Heading 2","Heading 3","Heading 4","Height","Horizontal align","Image","Image properties","Increase Indent","Insert","Insert Horizontal Line","Insert Image","Insert Ordered List","Insert Special Character","Insert Unordered List","Insert as Text","Insert className","Insert column after","Insert column before","Insert file","Insert format block","Insert link","Insert only Text","Insert row above","Insert row below","Insert table","Insert youtube/vimeo video","Interim Results","Italic","Jodit Editor","Jodit User's Guide","Keep","Keep Aspect Ratio","Left","License: %s","Line height","Link","List view","Loop","Lower Alpha","Lower Greek","Lower Roman","Margins","Merge","Middle","Muted","No","No follow","Normal","Number for the first item","Ok","Open in fullsize","Open in new tab","Open link","Open link in new tab","Paint format","Paste","Paste as HTML","Paste from clipboard","Please enter a web address","Please fill out this field","Poster","Press Alt for custom resizing","Print","Quadrate","Quote","Redo","Remove","Remove file","Rename","Replace","Replace with","Reset","Resize","Right","Save","Save as ...","Search for","Select","Select %s","Select Special Character","Select all","Select file","Show all","Sort by changed","Sort by name","Sort by size","Sound","Speech Recognize","Spellcheck","Split","Split horizontal","Split vertical","Src","Start at...","Start numbering at","Strike through","Styles","Text","The image has been successfully uploaded to the host!","The pasted content is coming from a Microsoft Word/Excel document. Do you want to keep the format or clean it up?","There are no files","Tiles view","Title","Top","Type something","Underline","Undo","Unlink","Update","Update file list","Upload","Upload file","Upper Alpha","Upper Roman","Vertical align","Video properties","Width","Word Paste Detected","Words: %d","Yes","You can only edit your own images. Download this image on the host?","Your browser doesn't support direct access to the clipboard.","Your code is similar to HTML. Keep as HTML?","about","apply","bold","bottom","brush","circle","contains detailed help for using","copy","cut","default","delete","dot","download","edit","eraser","file","font","fontsize","fullsize","hr","image","indent","italic","left","link","newline","ol","or click","outdent","palette","paragraph","pencil","preview","print","redo","right","selectall","shrink","sound","source","space","spellcheck","square","strikethrough","subscript","superscript","table","top","type dir name","type name","ul","underline","undo","video"]
|
|
47227
47395
|
|
|
47228
47396
|
/***/ }),
|
|
47229
47397
|
|