jodit 4.18.0 → 4.18.2
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 +13 -0
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.js +3 -3
- package/es2015/jodit.js +38 -10
- package/es2015/jodit.min.js +3 -3
- 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 +3 -3
- package/es2018/jodit.min.js +8 -8
- 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 +3 -3
- package/es2021/jodit.js +38 -10
- package/es2021/jodit.min.js +9 -9
- 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 +3 -3
- package/es2021.en/jodit.js +38 -10
- package/es2021.en/jodit.min.js +3 -3
- 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 +40 -10
- 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/core/constants.js +1 -1
- package/esm/plugins/clean-html/clean-html.d.ts +2 -1
- package/esm/plugins/clean-html/clean-html.js +24 -7
- package/esm/plugins/dtd/after-insert/remove-extra-br.js +6 -1
- package/esm/plugins/dtd/before-insert/check-block-nesting.js +16 -1
- package/esm/plugins/dtd/config.js +3 -0
- package/package.json +1 -1
- package/types/plugins/clean-html/clean-html.d.ts +2 -1
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.18.
|
|
4
|
+
* Version: v4.18.2
|
|
5
5
|
* Url: https://xdsoft.net/jodit/
|
|
6
6
|
* License(s): MIT
|
|
7
7
|
*/
|
|
@@ -1824,7 +1824,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1824
1824
|
* ```
|
|
1825
1825
|
* @packageDocumentation
|
|
1826
1826
|
* @module constants
|
|
1827
|
-
*/ const APP_VERSION = "4.18.
|
|
1827
|
+
*/ const APP_VERSION = "4.18.2";
|
|
1828
1828
|
// prettier-ignore
|
|
1829
1829
|
const ES = "es2021";
|
|
1830
1830
|
const IS_ES_MODERN = true;
|
|
@@ -28987,7 +28987,11 @@ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__.Icon.set('class-span', (_class_s
|
|
|
28987
28987
|
* Clean HTML after removeFormat and insertHorizontalRule command
|
|
28988
28988
|
*/ const TRAILING_BR_BLOCKS = 'p, div, li, td, th, h1, h2, h3, h4, h5, h6, blockquote';
|
|
28989
28989
|
class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Plugin {
|
|
28990
|
-
/** @override */ afterInit(
|
|
28990
|
+
/** @override */ afterInit() {
|
|
28991
|
+
// The walker's own `:afterInit` watcher is bound on that very event,
|
|
28992
|
+
// so without this the first pass waited for the first key or click
|
|
28993
|
+
this.onChangeCleanHTML();
|
|
28994
|
+
}
|
|
28991
28995
|
get isEditMode() {
|
|
28992
28996
|
return !(this.j.isInDestruct || !this.j.isEditorMode() || this.j.getReadOnly());
|
|
28993
28997
|
}
|
|
@@ -29125,10 +29129,11 @@ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Pl
|
|
|
29125
29129
|
;(0,jodit_core_helpers_html_safe_html__WEBPACK_IMPORTED_MODULE_6__.safeHTML)(sandBox, this.j.o.cleanHTML);
|
|
29126
29130
|
}
|
|
29127
29131
|
/** @override */ beforeDestruct() {
|
|
29132
|
+
this.j.e.off('safeHTML', this.onSafeHTML).off('beforeSetNativeEditorValue', this.onBeforeSetNativeEditorValue).off('afterSetNativeEditorValue', this.onAfterSetNativeEditorValue);
|
|
29128
29133
|
this.walker.destruct();
|
|
29129
29134
|
}
|
|
29130
|
-
constructor(
|
|
29131
|
-
super(
|
|
29135
|
+
constructor(jodit){
|
|
29136
|
+
super(jodit), /** @override */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "buttons", [
|
|
29132
29137
|
{
|
|
29133
29138
|
name: 'eraser',
|
|
29134
29139
|
group: 'font-style'
|
|
@@ -29136,6 +29141,12 @@ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Pl
|
|
|
29136
29141
|
]), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "currentSelectionNode", null), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "walker", new jodit_core_dom_lazy_walker__WEBPACK_IMPORTED_MODULE_4__.LazyWalker(this.j.async, {
|
|
29137
29142
|
timeout: this.j.o.cleanHTML.timeout
|
|
29138
29143
|
}));
|
|
29144
|
+
// `@watch` binds once the plugin is ready, which is after the initial
|
|
29145
|
+
// value has already gone into the editor. The handlers that keep
|
|
29146
|
+
// markup out of the live tree have to be there from the start, or
|
|
29147
|
+
// event handlers in a textarea's content run before anything
|
|
29148
|
+
// sanitises them.
|
|
29149
|
+
jodit.e.on('safeHTML', this.onSafeHTML).on('beforeSetNativeEditorValue', this.onBeforeSetNativeEditorValue).on('afterSetNativeEditorValue', this.onAfterSetNativeEditorValue);
|
|
29139
29150
|
}
|
|
29140
29151
|
}
|
|
29141
29152
|
;(0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
|
|
@@ -29154,16 +29165,16 @@ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Pl
|
|
|
29154
29165
|
(0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':beforeCommand')
|
|
29155
29166
|
], cleanHtml.prototype, "beforeCommand", null);
|
|
29156
29167
|
(0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
|
|
29157
|
-
|
|
29168
|
+
jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
|
|
29158
29169
|
], cleanHtml.prototype, "onAfterSetNativeEditorValue", null);
|
|
29159
29170
|
(0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
|
|
29160
|
-
|
|
29171
|
+
jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
|
|
29161
29172
|
], cleanHtml.prototype, "onBeforeSetNativeEditorValue", null);
|
|
29162
29173
|
(0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
|
|
29163
29174
|
(0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':afterGetValueFromEditor')
|
|
29164
29175
|
], cleanHtml.prototype, "onAfterGetValueFromEditor", null);
|
|
29165
29176
|
(0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
|
|
29166
|
-
|
|
29177
|
+
jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
|
|
29167
29178
|
], cleanHtml.prototype, "onSafeHTML", null);
|
|
29168
29179
|
jodit_core_global__WEBPACK_IMPORTED_MODULE_5__.pluginSystem.add('cleanHtml', cleanHtml);
|
|
29169
29180
|
|
|
@@ -31699,7 +31710,12 @@ const brBoxes = new Set([
|
|
|
31699
31710
|
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.findNotEmptySibling(br, false)) {
|
|
31700
31711
|
return;
|
|
31701
31712
|
}
|
|
31702
|
-
|
|
31713
|
+
// After a block is inserted the caret is already at the end of its
|
|
31714
|
+
// text; moving it before the `<br>` would put it on a line of its own
|
|
31715
|
+
// below the block (#1315)
|
|
31716
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isOrContains(node, jodit.s.range.startContainer)) {
|
|
31717
|
+
jodit.s.setCursorBefore(br);
|
|
31718
|
+
}
|
|
31703
31719
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(br);
|
|
31704
31720
|
}
|
|
31705
31721
|
}
|
|
@@ -31736,13 +31752,22 @@ const brBoxes = new Set([
|
|
|
31736
31752
|
let current = jodit.s.current()?.parentElement ?? null;
|
|
31737
31753
|
while(current && current !== jodit.editor){
|
|
31738
31754
|
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(current)) {
|
|
31739
|
-
|
|
31755
|
+
// In DIV mode the caret's own empty block is a line, like
|
|
31756
|
+
// `<p><br></p>`, not a container to insert into (#1315)
|
|
31757
|
+
const isEmptyLine = !parent && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(current, jodit.o.enter) && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(current);
|
|
31758
|
+
if (jodit.o.dtd.blockLimits[current.nodeName.toLowerCase()] && !isEmptyLine) {
|
|
31740
31759
|
break;
|
|
31741
31760
|
}
|
|
31742
31761
|
parent = current;
|
|
31743
31762
|
}
|
|
31744
31763
|
current = current.parentElement;
|
|
31745
31764
|
}
|
|
31765
|
+
// A list that is all of the inserted content adds its items to the
|
|
31766
|
+
// list of the item it goes into, as the browsers' own paste does
|
|
31767
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(current) && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isList(node) && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isFragment(node.parentNode) && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.findNotEmptySibling(node, false)) {
|
|
31768
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.unwrap(node);
|
|
31769
|
+
parent = current;
|
|
31770
|
+
}
|
|
31746
31771
|
if (parent) {
|
|
31747
31772
|
jodit.s.setCursorAfter(parent);
|
|
31748
31773
|
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(parent)) {
|
|
@@ -31797,10 +31822,12 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.dtd = {
|
|
|
31797
31822
|
audio: 1,
|
|
31798
31823
|
body: 1,
|
|
31799
31824
|
caption: 1,
|
|
31825
|
+
dd: 1,
|
|
31800
31826
|
details: 1,
|
|
31801
31827
|
dir: 1,
|
|
31802
31828
|
div: 1,
|
|
31803
31829
|
dl: 1,
|
|
31830
|
+
dt: 1,
|
|
31804
31831
|
fieldset: 1,
|
|
31805
31832
|
figcaption: 1,
|
|
31806
31833
|
figure: 1,
|
|
@@ -31808,6 +31835,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.dtd = {
|
|
|
31808
31835
|
form: 1,
|
|
31809
31836
|
header: 1,
|
|
31810
31837
|
hgroup: 1,
|
|
31838
|
+
li: 1,
|
|
31811
31839
|
main: 1,
|
|
31812
31840
|
menu: 1,
|
|
31813
31841
|
nav: 1,
|