jodit 4.18.4 → 4.18.6
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 +35 -0
- package/es2015/jodit.css +13 -34
- package/es2015/jodit.fat.min.css +1 -1
- package/es2015/jodit.fat.min.js +11 -11
- package/es2015/jodit.js +1029 -205
- package/es2015/jodit.min.css +1 -1
- package/es2015/jodit.min.js +11 -11
- 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.css +1 -1
- package/es2018/jodit.fat.min.js +11 -11
- package/es2018/jodit.min.css +1 -1
- package/es2018/jodit.min.js +11 -11
- package/es2018/plugins/debug/debug.min.js +1 -1
- package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es2021/jodit.css +13 -34
- package/es2021/jodit.fat.min.css +1 -1
- package/es2021/jodit.fat.min.js +15 -15
- package/es2021/jodit.js +1021 -203
- package/es2021/jodit.min.css +1 -1
- package/es2021/jodit.min.js +15 -15
- 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 +13 -34
- package/es2021.en/jodit.fat.min.css +1 -1
- package/es2021.en/jodit.fat.min.js +15 -15
- package/es2021.en/jodit.js +995 -177
- package/es2021.en/jodit.min.css +1 -1
- package/es2021.en/jodit.min.js +15 -15
- 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 +14 -41
- package/es5/jodit.fat.min.css +1 -1
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +1152 -254
- package/es5/jodit.min.css +3 -3
- 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 +3 -0
- package/esm/core/constants.js +1 -1
- package/esm/core/helpers/html/apply-styles.js +3 -0
- package/esm/core/helpers/html/clean-from-word.js +3 -0
- package/esm/core/helpers/html/strip-tags.js +24 -6
- package/esm/core/helpers/html/word-lists.d.ts +29 -0
- package/esm/core/helpers/html/word-lists.js +158 -0
- package/esm/core/selection/helpers/index.d.ts +1 -0
- package/esm/core/selection/helpers/index.js +1 -0
- package/esm/core/selection/helpers/is-moved.d.ts +15 -0
- package/esm/core/selection/helpers/is-moved.js +22 -0
- package/esm/core/selection/style/api/list/toggle-ordered-list.js +40 -3
- package/esm/core/selection/style/transactions.js +5 -2
- package/esm/langs/ar.d.ts +3 -0
- package/esm/langs/ar.js +4 -1
- package/esm/langs/az.d.ts +3 -0
- package/esm/langs/az.js +4 -1
- package/esm/langs/cs_cz.d.ts +3 -0
- package/esm/langs/cs_cz.js +4 -1
- package/esm/langs/de.d.ts +3 -0
- package/esm/langs/de.js +4 -1
- package/esm/langs/es.d.ts +3 -0
- package/esm/langs/es.js +4 -1
- package/esm/langs/fa.d.ts +3 -0
- package/esm/langs/fa.js +4 -1
- package/esm/langs/fi.d.ts +3 -0
- package/esm/langs/fi.js +4 -1
- package/esm/langs/fr.d.ts +3 -0
- package/esm/langs/fr.js +4 -1
- package/esm/langs/he.d.ts +3 -0
- package/esm/langs/he.js +4 -1
- package/esm/langs/hu.d.ts +3 -0
- package/esm/langs/hu.js +4 -1
- package/esm/langs/id.d.ts +3 -0
- package/esm/langs/id.js +4 -1
- package/esm/langs/it.d.ts +3 -0
- package/esm/langs/it.js +4 -1
- package/esm/langs/ja.d.ts +3 -0
- package/esm/langs/ja.js +4 -1
- package/esm/langs/ko.d.ts +3 -0
- package/esm/langs/ko.js +4 -1
- package/esm/langs/mn.d.ts +3 -0
- package/esm/langs/mn.js +4 -1
- package/esm/langs/nl.d.ts +3 -0
- package/esm/langs/nl.js +4 -1
- package/esm/langs/no.d.ts +3 -0
- package/esm/langs/no.js +4 -1
- package/esm/langs/pl.d.ts +3 -0
- package/esm/langs/pl.js +4 -1
- package/esm/langs/pt_br.d.ts +3 -0
- package/esm/langs/pt_br.js +4 -1
- package/esm/langs/ru.d.ts +3 -0
- package/esm/langs/ru.js +4 -1
- package/esm/langs/sk.d.ts +3 -0
- package/esm/langs/sk.js +4 -1
- package/esm/langs/sv.d.ts +3 -0
- package/esm/langs/sv.js +4 -1
- package/esm/langs/tr.d.ts +3 -0
- package/esm/langs/tr.js +4 -1
- package/esm/langs/ua.d.ts +3 -0
- package/esm/langs/ua.js +4 -1
- package/esm/langs/zh_cn.d.ts +3 -0
- package/esm/langs/zh_cn.js +4 -1
- package/esm/langs/zh_tw.d.ts +3 -0
- package/esm/langs/zh_tw.js +4 -1
- package/esm/modules/dialog/dialog.d.ts +7 -0
- package/esm/modules/dialog/dialog.js +24 -6
- package/esm/modules/table/table.d.ts +6 -0
- package/esm/modules/table/table.js +18 -26
- package/esm/plugins/backspace/cases/check-join-neighbors.js +90 -3
- package/esm/plugins/clean-html/clean-html.d.ts +8 -0
- package/esm/plugins/clean-html/clean-html.js +21 -1
- package/esm/plugins/clean-html/helpers/index.d.ts +1 -0
- package/esm/plugins/clean-html/helpers/index.js +1 -0
- package/esm/plugins/clean-html/helpers/remove-placeholder-br.d.ts +16 -0
- package/esm/plugins/clean-html/helpers/remove-placeholder-br.js +51 -0
- package/esm/plugins/delete/delete.d.ts +11 -1
- package/esm/plugins/delete/delete.js +92 -16
- package/esm/plugins/focus/focus.js +12 -1
- package/esm/plugins/iframe/config.d.ts +3 -0
- package/esm/plugins/iframe/config.js +0 -27
- package/esm/plugins/iframe/iframe.js +8 -1
- package/esm/plugins/image-processor/image-processor.js +6 -1
- package/esm/plugins/inline-popup/inline-popup.d.ts +19 -0
- package/esm/plugins/inline-popup/inline-popup.js +70 -1
- package/esm/plugins/ordered-list/config.js +13 -2
- package/esm/plugins/ordered-list/start-dialog.d.ts +19 -0
- package/esm/plugins/ordered-list/start-dialog.js +58 -0
- package/esm/plugins/placeholder/placeholder.js +7 -1
- package/esm/plugins/resizer/resizer.d.ts +10 -0
- package/esm/plugins/resizer/resizer.js +76 -2
- package/esm/plugins/select-cells/select-cells.d.ts +23 -0
- package/esm/plugins/select-cells/select-cells.js +75 -1
- package/esm/plugins/table-keyboard-navigation/table-keyboard-navigation.js +3 -2
- package/package.json +1 -1
- package/types/config.d.ts +3 -0
- package/types/core/helpers/html/word-lists.d.ts +29 -0
- package/types/core/selection/helpers/index.d.ts +1 -0
- package/types/core/selection/helpers/is-moved.d.ts +15 -0
- package/types/langs/ar.d.ts +3 -0
- package/types/langs/az.d.ts +3 -0
- package/types/langs/cs_cz.d.ts +3 -0
- package/types/langs/de.d.ts +3 -0
- package/types/langs/es.d.ts +3 -0
- package/types/langs/fa.d.ts +3 -0
- package/types/langs/fi.d.ts +3 -0
- package/types/langs/fr.d.ts +3 -0
- package/types/langs/he.d.ts +3 -0
- package/types/langs/hu.d.ts +3 -0
- package/types/langs/id.d.ts +3 -0
- package/types/langs/it.d.ts +3 -0
- package/types/langs/ja.d.ts +3 -0
- package/types/langs/ko.d.ts +3 -0
- package/types/langs/mn.d.ts +3 -0
- package/types/langs/nl.d.ts +3 -0
- package/types/langs/no.d.ts +3 -0
- package/types/langs/pl.d.ts +3 -0
- package/types/langs/pt_br.d.ts +3 -0
- package/types/langs/ru.d.ts +3 -0
- package/types/langs/sk.d.ts +3 -0
- package/types/langs/sv.d.ts +3 -0
- package/types/langs/tr.d.ts +3 -0
- package/types/langs/ua.d.ts +3 -0
- package/types/langs/zh_cn.d.ts +3 -0
- package/types/langs/zh_tw.d.ts +3 -0
- package/types/modules/dialog/dialog.d.ts +7 -0
- package/types/modules/table/table.d.ts +6 -0
- package/types/plugins/clean-html/clean-html.d.ts +8 -0
- package/types/plugins/clean-html/helpers/index.d.ts +1 -0
- package/types/plugins/clean-html/helpers/remove-placeholder-br.d.ts +16 -0
- package/types/plugins/delete/delete.d.ts +11 -1
- package/types/plugins/iframe/config.d.ts +3 -0
- package/types/plugins/inline-popup/inline-popup.d.ts +19 -0
- package/types/plugins/ordered-list/start-dialog.d.ts +19 -0
- package/types/plugins/resizer/resizer.d.ts +10 -0
- package/types/plugins/select-cells/select-cells.d.ts +23 -0
package/types/langs/az.d.ts
CHANGED
package/types/langs/cs_cz.d.ts
CHANGED
package/types/langs/de.d.ts
CHANGED
package/types/langs/es.d.ts
CHANGED
package/types/langs/fa.d.ts
CHANGED
package/types/langs/fi.d.ts
CHANGED
package/types/langs/fr.d.ts
CHANGED
package/types/langs/he.d.ts
CHANGED
package/types/langs/hu.d.ts
CHANGED
package/types/langs/id.d.ts
CHANGED
package/types/langs/it.d.ts
CHANGED
package/types/langs/ja.d.ts
CHANGED
package/types/langs/ko.d.ts
CHANGED
package/types/langs/mn.d.ts
CHANGED
package/types/langs/nl.d.ts
CHANGED
package/types/langs/no.d.ts
CHANGED
package/types/langs/pl.d.ts
CHANGED
package/types/langs/pt_br.d.ts
CHANGED
package/types/langs/ru.d.ts
CHANGED
package/types/langs/sk.d.ts
CHANGED
package/types/langs/sv.d.ts
CHANGED
package/types/langs/tr.d.ts
CHANGED
package/types/langs/ua.d.ts
CHANGED
package/types/langs/zh_cn.d.ts
CHANGED
package/types/langs/zh_tw.d.ts
CHANGED
|
@@ -48,6 +48,13 @@ export declare class Dialog extends ViewWithToolbar implements IDialog {
|
|
|
48
48
|
*/
|
|
49
49
|
private minSize;
|
|
50
50
|
private __onResizerMouseDown;
|
|
51
|
+
/**
|
|
52
|
+
* The width `box` takes with its content on one line. The header and
|
|
53
|
+
* footer are flex rows as wide as the dialog, so the footer's
|
|
54
|
+
* `scrollWidth` was the dialog's width and kept it from getting any
|
|
55
|
+
* narrower
|
|
56
|
+
*/
|
|
57
|
+
private __contentWidth;
|
|
51
58
|
private __addGlobalResizeListeners;
|
|
52
59
|
private __removeGlobalResizeListeners;
|
|
53
60
|
OPTIONS: IDialogOptions;
|
|
@@ -15,6 +15,12 @@ export declare class Table extends ViewComponent<IJodit> {
|
|
|
15
15
|
className(): string;
|
|
16
16
|
private selected;
|
|
17
17
|
private static __selectedByTable;
|
|
18
|
+
/**
|
|
19
|
+
* Rewrite the `<style>` that marks the selected cells once for all the
|
|
20
|
+
* cells (un)selected in one go: a drag over a block of cells unmarks and
|
|
21
|
+
* marks every one of them on each move. `@debounce()` was never applied,
|
|
22
|
+
* as a Table never reaches `ready`
|
|
23
|
+
*/
|
|
18
24
|
private __recalculateStyles;
|
|
19
25
|
addSelection(td: HTMLTableCellElement): void;
|
|
20
26
|
removeSelection(td: HTMLTableCellElement): void;
|
|
@@ -23,6 +23,14 @@ export declare class cleanHtml extends Plugin {
|
|
|
23
23
|
*/
|
|
24
24
|
protected onChangeCleanHTML(): void;
|
|
25
25
|
private currentSelectionNode;
|
|
26
|
+
/**
|
|
27
|
+
* Typing into an empty block (`<p><br></p>`) replaces its `<br>`, but the
|
|
28
|
+
* browser keeps the `<br>` when the caret is in an invisible-space text
|
|
29
|
+
* node in front of it, as Jodit leaves the caret in many of the empty
|
|
30
|
+
* blocks it makes (a cleared editor, a heading in an empty table cell).
|
|
31
|
+
* See #1632
|
|
32
|
+
*/
|
|
33
|
+
protected onInputRemovePlaceholderBr(event: InputEvent | CompositionEvent): void;
|
|
26
34
|
private walker;
|
|
27
35
|
protected startWalker(): void;
|
|
28
36
|
protected beforeCommand(command: string): void | false;
|
|
@@ -10,4 +10,5 @@ export * from "./get-hash";
|
|
|
10
10
|
export * from "./is-allowed-media-embed";
|
|
11
11
|
export * from "./remove-format/remove-format-for-collapsed-selection";
|
|
12
12
|
export * from "./remove-format/remove-format-for-selection";
|
|
13
|
+
export * from "./remove-placeholder-br";
|
|
13
14
|
export * from "./visitor/visit-node-walker";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
3
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
4
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @module plugins/clean-html
|
|
8
|
+
*/
|
|
9
|
+
import type { IJodit } from "../../../types/index";
|
|
10
|
+
/**
|
|
11
|
+
* Remove the `<br>` that kept the block with the caret open while it was
|
|
12
|
+
* empty, once text has gone into the block: when the block is one line of
|
|
13
|
+
* text that ends in that `<br>`, the `<br>` adds nothing to it
|
|
14
|
+
* @private
|
|
15
|
+
*/
|
|
16
|
+
export declare function removePlaceholderBr(jodit: IJodit): void;
|
|
@@ -20,13 +20,23 @@ export declare class deleteCommand extends Plugin {
|
|
|
20
20
|
*/
|
|
21
21
|
private __afterDeleteCommand;
|
|
22
22
|
private __onDeleteCommand;
|
|
23
|
+
/**
|
|
24
|
+
* A selection that starts or ends in a table cell clears the selected part
|
|
25
|
+
* of each cell it covers and keeps the cells, as the browsers do.
|
|
26
|
+
* `deleteContents` would remove the cells it fully covers, and the cells
|
|
27
|
+
* it cuts would then be merged as blocks. The range is moved out of those
|
|
28
|
+
* tables, so only the content between them is left to delete.
|
|
29
|
+
*
|
|
30
|
+
* Returns where the caret goes, or null when no table is involved
|
|
31
|
+
*/
|
|
32
|
+
private __clearSelectedCells;
|
|
23
33
|
private __moveContentInLeftSibling;
|
|
24
34
|
/**
|
|
25
35
|
* If left sibling is list - return last leaf
|
|
26
36
|
*/
|
|
27
37
|
private __defineRightLeftBox;
|
|
28
38
|
/**
|
|
29
|
-
* Add BR in empty
|
|
39
|
+
* Add BR in the empty block left at the caret
|
|
30
40
|
*/
|
|
31
41
|
private __addBrInEmptyBlock;
|
|
32
42
|
private __moveCursorInEditableSibling;
|
|
@@ -37,6 +37,9 @@ declare module 'jodit/config' {
|
|
|
37
37
|
iframeDoctype: string;
|
|
38
38
|
/**
|
|
39
39
|
* Custom style to be used inside the iframe to display content.
|
|
40
|
+
* It goes in after `iframeCSSLinks`. The rules Jodit's own plugins need
|
|
41
|
+
* in the editing document are added apart from it, so a value of your
|
|
42
|
+
* own doesn't have to repeat them.
|
|
40
43
|
*
|
|
41
44
|
* ```javascript
|
|
42
45
|
* Jodit.make('#editor', {
|
|
@@ -37,6 +37,17 @@ export declare class inlinePopup extends Plugin {
|
|
|
37
37
|
*/
|
|
38
38
|
private hidePopup;
|
|
39
39
|
protected onOutsideClick(): void;
|
|
40
|
+
/**
|
|
41
|
+
* A key that moves the caret off an element closes its popup, and one
|
|
42
|
+
* that moves the caret into an element with a popup (a link) opens it,
|
|
43
|
+
* as clicks do
|
|
44
|
+
*/
|
|
45
|
+
protected onKeyUp(): void;
|
|
46
|
+
private __followCaret;
|
|
47
|
+
/**
|
|
48
|
+
* The element with a popup that holds `node`
|
|
49
|
+
*/
|
|
50
|
+
private __elementAt;
|
|
40
51
|
/**
|
|
41
52
|
* Can show popup for this type
|
|
42
53
|
*/
|
|
@@ -53,6 +64,13 @@ export declare class inlinePopup extends Plugin {
|
|
|
53
64
|
* while the selection is still there. See #1238
|
|
54
65
|
*/
|
|
55
66
|
private __reopenSelectionPopup;
|
|
67
|
+
/**
|
|
68
|
+
* The alignment controls fire `recalcPositionPopup` once they have moved
|
|
69
|
+
* the element, and their button then fires `closeAllPopups`. The popup
|
|
70
|
+
* opens again beside the element, as the selection toolbar does
|
|
71
|
+
*/
|
|
72
|
+
private __reopenFor;
|
|
73
|
+
protected onRecalcPositionPopup(): void;
|
|
56
74
|
private __onDocumentMouseDown;
|
|
57
75
|
private __onCloseAllPopups;
|
|
58
76
|
/**
|
|
@@ -64,6 +82,7 @@ export declare class inlinePopup extends Plugin {
|
|
|
64
82
|
private __selectionBound;
|
|
65
83
|
private snapRange;
|
|
66
84
|
private onSelectionStart;
|
|
85
|
+
private __keyDownElement;
|
|
67
86
|
private onSelectionEnd;
|
|
68
87
|
/**
|
|
69
88
|
* Selection change handler
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
3
|
+
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
4
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @module plugins/ordered-list
|
|
8
|
+
*/
|
|
9
|
+
import type { IJodit, Nullable } from "../../types/index";
|
|
10
|
+
/**
|
|
11
|
+
* The numbered list the selection is in
|
|
12
|
+
*/
|
|
13
|
+
export declare function closestOrderedList(jodit: IJodit): Nullable<HTMLOListElement>;
|
|
14
|
+
/**
|
|
15
|
+
* Asks for the number of the first item of the list the selection is in,
|
|
16
|
+
* and sets the list's `start`. The selection is put back when the dialog
|
|
17
|
+
* closes, however it closes.
|
|
18
|
+
*/
|
|
19
|
+
export declare function openStartDialog(jodit: IJodit): void;
|
|
@@ -46,6 +46,16 @@ export declare class resizer extends Plugin {
|
|
|
46
46
|
private pointerX;
|
|
47
47
|
private pointerY;
|
|
48
48
|
private onResize;
|
|
49
|
+
private __keyDownRange;
|
|
50
|
+
private __keyDownTable;
|
|
51
|
+
private onEditorKeyDown;
|
|
52
|
+
private __caretTable;
|
|
53
|
+
/**
|
|
54
|
+
* Hide the frame once a key has moved the caret off its element, and
|
|
55
|
+
* frame a table the caret has moved into, as clicks do
|
|
56
|
+
*/
|
|
57
|
+
protected onEditorKeyUp(): void;
|
|
58
|
+
private __followCaret;
|
|
49
59
|
private isAltMode;
|
|
50
60
|
private onKeyDown;
|
|
51
61
|
private onKeyUp;
|
|
@@ -18,6 +18,29 @@ export declare class selectCells extends Plugin {
|
|
|
18
18
|
*/
|
|
19
19
|
private get __tableModule();
|
|
20
20
|
protected afterInit(jodit: IJodit): void;
|
|
21
|
+
/**
|
|
22
|
+
* The cell with the caret, and the selection, when a key went down
|
|
23
|
+
*/
|
|
24
|
+
private __keyDownCell;
|
|
25
|
+
private __keyDownRange;
|
|
26
|
+
private __onKeyDown;
|
|
27
|
+
/**
|
|
28
|
+
* A link's popup replaces the cell's while the caret is in the link
|
|
29
|
+
*/
|
|
30
|
+
private __keyDownInLink;
|
|
31
|
+
private __isInLink;
|
|
32
|
+
/**
|
|
33
|
+
* Where the selection starts rather than `s.current()`, which finds the
|
|
34
|
+
* first cell when the caret is just before the table
|
|
35
|
+
*/
|
|
36
|
+
private __caretCell;
|
|
37
|
+
/**
|
|
38
|
+
* A key that moves the caret into a cell, from another cell or from
|
|
39
|
+
* outside the table, marks that cell and opens its popup, as a click on
|
|
40
|
+
* it does. One that moves the caret out of the table unmarks the cells
|
|
41
|
+
*/
|
|
42
|
+
protected onKeyUp(): void;
|
|
43
|
+
private __followCaret;
|
|
21
44
|
/**
|
|
22
45
|
* First selected cell
|
|
23
46
|
*/
|