jodit 4.15.7 → 4.15.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 +13 -0
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.js +5 -5
- package/es2015/jodit.js +65 -31
- package/es2015/jodit.min.js +6 -6
- 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 +5 -5
- package/es2018/jodit.min.js +6 -6
- 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 +6 -6
- package/es2021/jodit.js +64 -30
- 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 +6 -6
- package/es2021.en/jodit.js +64 -30
- 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 +65 -31
- 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 -1
- package/esm/core/constants.js +1 -1
- package/esm/jodit.d.ts +6 -0
- package/esm/jodit.js +9 -2
- package/esm/plugins/clean-html/config.d.ts +2 -1
- package/esm/plugins/clean-html/helpers/visitor/filters/try-remove-node.js +10 -0
- package/esm/plugins/mobile/mobile.js +25 -4
- package/package.json +1 -1
- package/types/config.d.ts +2 -1
- package/types/jodit.d.ts +6 -0
- package/types/plugins/clean-html/config.d.ts +2 -1
package/es2015/jodit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
|
|
3
3
|
* Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
|
|
4
|
-
* Version: v4.15.
|
|
4
|
+
* Version: v4.15.9
|
|
5
5
|
* Url: https://xdsoft.net/jodit/
|
|
6
6
|
* License(s): MIT
|
|
7
7
|
*/
|
|
@@ -1785,7 +1785,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1785
1785
|
* ```
|
|
1786
1786
|
* @packageDocumentation
|
|
1787
1787
|
* @module constants
|
|
1788
|
-
*/ const APP_VERSION = "4.15.
|
|
1788
|
+
*/ const APP_VERSION = "4.15.9";
|
|
1789
1789
|
// prettier-ignore
|
|
1790
1790
|
const ES = "es2015";
|
|
1791
1791
|
const IS_ES_MODERN = true;
|
|
@@ -17984,13 +17984,20 @@ class Jodit extends jodit_modules__WEBPACK_IMPORTED_MODULE_11__.ViewWithToolbar
|
|
|
17984
17984
|
/**
|
|
17985
17985
|
* Return source element value
|
|
17986
17986
|
*/ getElementValue() {
|
|
17987
|
+
if (this.element === this.container && this.__inlineElementValue !== undefined) {
|
|
17988
|
+
return this.__inlineElementValue;
|
|
17989
|
+
}
|
|
17987
17990
|
return this.element.value !== undefined ? this.element.value : this.element.innerHTML;
|
|
17988
17991
|
}
|
|
17989
17992
|
__setElementValue(value) {
|
|
17990
17993
|
if (!(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.isString)(value)) {
|
|
17991
17994
|
throw (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.error)('value must be string');
|
|
17992
17995
|
}
|
|
17993
|
-
if (this.element
|
|
17996
|
+
if (this.element === this.container) {
|
|
17997
|
+
this.__inlineElementValue = value;
|
|
17998
|
+
return;
|
|
17999
|
+
}
|
|
18000
|
+
if (value !== this.getElementValue()) {
|
|
17994
18001
|
const data = {
|
|
17995
18002
|
value
|
|
17996
18003
|
};
|
|
@@ -18716,6 +18723,10 @@ class Jodit extends jodit_modules__WEBPACK_IMPORTED_MODULE_11__.ViewWithToolbar
|
|
|
18716
18723
|
*/ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "isJodit", true), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "commands", new Map()), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__selectionLocked", null), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__wasReadOnly", false), /**
|
|
18717
18724
|
* Editor has focus in this time
|
|
18718
18725
|
*/ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "editorIsActive", false), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "selection", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__mode", jodit_core_constants__WEBPACK_IMPORTED_MODULE_3__.MODE_WYSIWYG), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__callChangeCount", 0), /**
|
|
18726
|
+
* In inline mode the source element is the editor container, so its
|
|
18727
|
+
* `innerHTML` is the editor's own markup rather than the value. Keep the
|
|
18728
|
+
* value last synchronised to it here instead.
|
|
18729
|
+
*/ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__inlineElementValue", void 0), /**
|
|
18719
18730
|
* Don't raise a change event
|
|
18720
18731
|
*/ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__isSilentChange", false), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "currentPlace", {
|
|
18721
18732
|
options: this.__options,
|
|
@@ -29598,7 +29609,14 @@ function filterStyleProperties(style, allowed) {
|
|
|
29598
29609
|
// a pending-format marker the user is about to type into (#1291). `current`
|
|
29599
29610
|
// is captured before a click moves the caret, so also check the live caret.
|
|
29600
29611
|
const liveCaret = jodit.s.isCollapsed() ? jodit.s.range.startContainer : null;
|
|
29601
|
-
return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && node.nodeName.match(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE) != null && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTemporary(node) && (0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_2__.trimInv)(node.innerHTML).length === 0 && (current == null || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, current)) && (liveCaret == null || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, liveCaret));
|
|
29612
|
+
return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && node.nodeName.match(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE) != null && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTemporary(node) && !isFragmentTarget(node) && (0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_2__.trimInv)(node.innerHTML).length === 0 && (current == null || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, current)) && (liveCaret == null || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, liveCaret));
|
|
29613
|
+
}
|
|
29614
|
+
/**
|
|
29615
|
+
* An element with an `id`, or an `<a>` with a `name`, is where an in-page link
|
|
29616
|
+
* (`#fragment`) lands. It is usually empty (`<a name="top"></a>`), and removing
|
|
29617
|
+
* it silently breaks every link that points at it.
|
|
29618
|
+
*/ function isFragmentTarget(element) {
|
|
29619
|
+
return element.hasAttribute('id') || element.nodeName === 'A' && element.hasAttribute('name');
|
|
29602
29620
|
}
|
|
29603
29621
|
|
|
29604
29622
|
|
|
@@ -37632,10 +37650,12 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.dots = {
|
|
|
37632
37650
|
|
|
37633
37651
|
"use strict";
|
|
37634
37652
|
/* unused harmony export mobile */
|
|
37635
|
-
/* harmony import */ var
|
|
37636
|
-
/* harmony import */ var
|
|
37637
|
-
/* harmony import */ var
|
|
37638
|
-
/* harmony import */ var
|
|
37653
|
+
/* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23211);
|
|
37654
|
+
/* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28077);
|
|
37655
|
+
/* harmony import */ var jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65946);
|
|
37656
|
+
/* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85932);
|
|
37657
|
+
/* harmony import */ var jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2496);
|
|
37658
|
+
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3244);
|
|
37639
37659
|
/*!
|
|
37640
37660
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
37641
37661
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -37648,6 +37668,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.dots = {
|
|
|
37648
37668
|
|
|
37649
37669
|
|
|
37650
37670
|
|
|
37671
|
+
|
|
37672
|
+
|
|
37651
37673
|
const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n';
|
|
37652
37674
|
/**
|
|
37653
37675
|
* Constrain a responsive breakpoint set (`buttonsMD/SM/XS`) to the buttons the
|
|
@@ -37661,13 +37683,13 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
|
|
|
37661
37683
|
* the standard grouped mobile layout — groups, separators and `dots` — is
|
|
37662
37684
|
* preserved. See #1389.
|
|
37663
37685
|
*/ function fitToButtons(list, editor) {
|
|
37664
|
-
const allowed = (0,
|
|
37686
|
+
const allowed = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.flatButtonsSet)((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons), editor);
|
|
37665
37687
|
const groups = editor.getRegisteredButtonGroups();
|
|
37666
37688
|
let changed = false;
|
|
37667
37689
|
let hadDots = false;
|
|
37668
37690
|
const flat = [];
|
|
37669
37691
|
for (const item of list){
|
|
37670
|
-
if ((0,
|
|
37692
|
+
if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.isButtonGroup)(item)) {
|
|
37671
37693
|
var _groups_item_group;
|
|
37672
37694
|
const members = [
|
|
37673
37695
|
...item.buttons,
|
|
@@ -37705,17 +37727,32 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
|
|
|
37705
37727
|
// Keep the "show all" overflow button only if some requested button is still
|
|
37706
37728
|
// hidden at this breakpoint.
|
|
37707
37729
|
if (hadDots) {
|
|
37708
|
-
const shown = (0,
|
|
37709
|
-
if ((0,
|
|
37730
|
+
const shown = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.flatButtonsSet)(cleaned, editor);
|
|
37731
|
+
if ((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.toArray)(allowed).some((button)=>!shown.has(button))) {
|
|
37710
37732
|
cleaned.push('dots');
|
|
37711
37733
|
}
|
|
37712
37734
|
}
|
|
37713
37735
|
return cleaned;
|
|
37714
37736
|
}
|
|
37737
|
+
/**
|
|
37738
|
+
* The width that decides which breakpoint set the toolbar uses. A toolbar
|
|
37739
|
+
* rendered into an external container (`toolbar` set to an element or a
|
|
37740
|
+
* selector) lays out in that container, so its width is what matters there.
|
|
37741
|
+
*/ function adaptiveWidth(editor) {
|
|
37742
|
+
var _editor_container_parentElement;
|
|
37743
|
+
const { toolbar } = editor.o;
|
|
37744
|
+
if ((0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_3__.isString)(toolbar) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isHTMLElement(toolbar)) {
|
|
37745
|
+
const width = editor.toolbarContainer.offsetWidth;
|
|
37746
|
+
if (width) {
|
|
37747
|
+
return width;
|
|
37748
|
+
}
|
|
37749
|
+
}
|
|
37750
|
+
return ((_editor_container_parentElement = editor.container.parentElement) !== null && _editor_container_parentElement !== void 0 ? _editor_container_parentElement : editor.container).offsetWidth;
|
|
37751
|
+
}
|
|
37715
37752
|
/**
|
|
37716
37753
|
* Rebuild toolbar in depends on editor's width
|
|
37717
37754
|
*/ function mobile(editor) {
|
|
37718
|
-
let timeout = 0, store = (0,
|
|
37755
|
+
let timeout = 0, store = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
|
|
37719
37756
|
if (editor.o.mobileTapTimeout) {
|
|
37720
37757
|
// Emulate double tap
|
|
37721
37758
|
editor.e.on('touchend', (e)=>{
|
|
@@ -37732,8 +37769,8 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
|
|
|
37732
37769
|
}
|
|
37733
37770
|
editor.e.on('getDiffButtons.mobile', (toolbar)=>{
|
|
37734
37771
|
if (toolbar === editor.toolbar) {
|
|
37735
|
-
const buttons = (0,
|
|
37736
|
-
return (0,
|
|
37772
|
+
const buttons = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.flatButtonsSet)((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons), editor), flatStore = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_4__.flatButtonsSet)(store, editor);
|
|
37773
|
+
return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.toArray)(buttons).reduce((acc, item)=>{
|
|
37737
37774
|
if (!flatStore.has(item)) {
|
|
37738
37775
|
acc.push(item);
|
|
37739
37776
|
}
|
|
@@ -37743,22 +37780,24 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
|
|
|
37743
37780
|
});
|
|
37744
37781
|
if (editor.o.toolbarAdaptive) {
|
|
37745
37782
|
editor.e.on('resize afterInit recalcAdaptive changePlace afterAddPlace', ()=>{
|
|
37746
|
-
var _editor_container_parentElement;
|
|
37747
37783
|
if (!editor.o.toolbar) {
|
|
37748
37784
|
return;
|
|
37749
37785
|
}
|
|
37750
|
-
const width = ((_editor_container_parentElement = editor.container.parentElement) !== null && _editor_container_parentElement !== void 0 ? _editor_container_parentElement : editor.container).offsetWidth;
|
|
37751
37786
|
const newStore = (()=>{
|
|
37752
|
-
if (editor.isFullSize
|
|
37753
|
-
return (0,
|
|
37787
|
+
if (editor.isFullSize) {
|
|
37788
|
+
return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
|
|
37789
|
+
}
|
|
37790
|
+
const width = adaptiveWidth(editor);
|
|
37791
|
+
if (width >= editor.o.sizeLG) {
|
|
37792
|
+
return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttons);
|
|
37754
37793
|
}
|
|
37755
37794
|
if (width >= editor.o.sizeMD) {
|
|
37756
|
-
return fitToButtons((0,
|
|
37795
|
+
return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsMD), editor);
|
|
37757
37796
|
}
|
|
37758
37797
|
if (width >= editor.o.sizeSM) {
|
|
37759
|
-
return fitToButtons((0,
|
|
37798
|
+
return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsSM), editor);
|
|
37760
37799
|
}
|
|
37761
|
-
return fitToButtons((0,
|
|
37800
|
+
return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_2__.splitArray)(editor.o.buttonsXS), editor);
|
|
37762
37801
|
})();
|
|
37763
37802
|
if (newStore.toString() !== store.toString()) {
|
|
37764
37803
|
var _editor_toolbar;
|
|
@@ -37769,7 +37808,7 @@ const isButtonSeparator = (item)=>item === '|' || item === '---' || item === '\n
|
|
|
37769
37808
|
}).on(editor.ow, 'load resize', ()=>editor.e.fire('recalcAdaptive'));
|
|
37770
37809
|
}
|
|
37771
37810
|
}
|
|
37772
|
-
|
|
37811
|
+
jodit_core_global__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('mobile', mobile);
|
|
37773
37812
|
|
|
37774
37813
|
|
|
37775
37814
|
/***/ }),
|
|
@@ -46961,25 +47000,20 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
|
|
|
46961
47000
|
/******/ /* webpack/runtime/chunk loaded */
|
|
46962
47001
|
/******/ !function() {
|
|
46963
47002
|
/******/ var deferred = [];
|
|
46964
|
-
/******/ __webpack_require__.O = function(result, chunkIds, fn
|
|
47003
|
+
/******/ __webpack_require__.O = function(result, chunkIds, fn) {
|
|
46965
47004
|
/******/ if(chunkIds) {
|
|
46966
|
-
/******/
|
|
46967
|
-
/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
|
|
46968
|
-
/******/ deferred[i] = [chunkIds, fn, priority];
|
|
47005
|
+
/******/ deferred.push([chunkIds, fn]);
|
|
46969
47006
|
/******/ return;
|
|
46970
47007
|
/******/ }
|
|
46971
|
-
/******/ var notFulfilled = Infinity;
|
|
46972
47008
|
/******/ for (var i = 0; i < deferred.length; i++) {
|
|
46973
47009
|
/******/ var chunkIds = deferred[i][0];
|
|
46974
47010
|
/******/ var fn = deferred[i][1];
|
|
46975
|
-
/******/ var priority = deferred[i][2];
|
|
46976
47011
|
/******/ var fulfilled = true;
|
|
46977
47012
|
/******/ for (var j = 0; j < chunkIds.length; j++) {
|
|
46978
|
-
/******/ if (
|
|
47013
|
+
/******/ if (__webpack_require__.O.j(chunkIds[j])) {
|
|
46979
47014
|
/******/ chunkIds.splice(j--, 1);
|
|
46980
47015
|
/******/ } else {
|
|
46981
47016
|
/******/ fulfilled = false;
|
|
46982
|
-
/******/ if(priority < notFulfilled) notFulfilled = priority;
|
|
46983
47017
|
/******/ }
|
|
46984
47018
|
/******/ }
|
|
46985
47019
|
/******/ if(fulfilled) {
|