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/es5/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
|
*/
|
|
@@ -2107,7 +2107,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2107
2107
|
* @packageDocumentation
|
|
2108
2108
|
* @module constants
|
|
2109
2109
|
*/
|
|
2110
|
-
var APP_VERSION = "4.15.
|
|
2110
|
+
var APP_VERSION = "4.15.9";
|
|
2111
2111
|
// prettier-ignore
|
|
2112
2112
|
var ES = "es5";
|
|
2113
2113
|
var IS_ES_MODERN = false;
|
|
@@ -21291,6 +21291,10 @@ var Jodit = /*#__PURE__*/ function(ViewWithToolbar) {
|
|
|
21291
21291
|
*/ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "isJodit", true), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "commands", new Map()), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "__selectionLocked", null), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "__wasReadOnly", false), /**
|
|
21292
21292
|
* Editor has focus in this time
|
|
21293
21293
|
*/ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "editorIsActive", false), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "selection", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "__mode", jodit_core_constants__WEBPACK_IMPORTED_MODULE_12__.MODE_WYSIWYG), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "__callChangeCount", 0), /**
|
|
21294
|
+
* In inline mode the source element is the editor container, so its
|
|
21295
|
+
* `innerHTML` is the editor's own markup rather than the value. Keep the
|
|
21296
|
+
* value last synchronised to it here instead.
|
|
21297
|
+
*/ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "__inlineElementValue", void 0), /**
|
|
21294
21298
|
* Don't raise a change event
|
|
21295
21299
|
*/ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "__isSilentChange", false), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_3__._)(_this, "currentPlace", {
|
|
21296
21300
|
options: _this.__options,
|
|
@@ -21769,6 +21773,9 @@ var Jodit = /*#__PURE__*/ function(ViewWithToolbar) {
|
|
|
21769
21773
|
* Return source element value
|
|
21770
21774
|
*/ key: "getElementValue",
|
|
21771
21775
|
value: function getElementValue() {
|
|
21776
|
+
if (this.element === this.container && this.__inlineElementValue !== undefined) {
|
|
21777
|
+
return this.__inlineElementValue;
|
|
21778
|
+
}
|
|
21772
21779
|
return this.element.value !== undefined ? this.element.value : this.element.innerHTML;
|
|
21773
21780
|
}
|
|
21774
21781
|
},
|
|
@@ -21779,7 +21786,11 @@ var Jodit = /*#__PURE__*/ function(ViewWithToolbar) {
|
|
|
21779
21786
|
if (!(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_15__.isString)(value)) {
|
|
21780
21787
|
throw (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_15__.error)('value must be string');
|
|
21781
21788
|
}
|
|
21782
|
-
if (this.element
|
|
21789
|
+
if (this.element === this.container) {
|
|
21790
|
+
this.__inlineElementValue = value;
|
|
21791
|
+
return;
|
|
21792
|
+
}
|
|
21793
|
+
if (value !== this.getElementValue()) {
|
|
21783
21794
|
var data = {
|
|
21784
21795
|
value: value
|
|
21785
21796
|
};
|
|
@@ -35243,7 +35254,14 @@ function filterStyleProperties(style, allowed) {
|
|
|
35243
35254
|
// a pending-format marker the user is about to type into (#1291). `current`
|
|
35244
35255
|
// is captured before a click moves the caret, so also check the live caret.
|
|
35245
35256
|
var liveCaret = jodit.s.isCollapsed() ? jodit.s.range.startContainer : null;
|
|
35246
|
-
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));
|
|
35257
|
+
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));
|
|
35258
|
+
}
|
|
35259
|
+
/**
|
|
35260
|
+
* An element with an `id`, or an `<a>` with a `name`, is where an in-page link
|
|
35261
|
+
* (`#fragment`) lands. It is usually empty (`<a name="top"></a>`), and removing
|
|
35262
|
+
* it silently breaks every link that points at it.
|
|
35263
|
+
*/ function isFragmentTarget(element) {
|
|
35264
|
+
return element.hasAttribute('id') || element.nodeName === 'A' && element.hasAttribute('name');
|
|
35247
35265
|
}
|
|
35248
35266
|
|
|
35249
35267
|
|
|
@@ -44297,10 +44315,12 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.dots = {
|
|
|
44297
44315
|
"use strict";
|
|
44298
44316
|
/* unused harmony export mobile */
|
|
44299
44317
|
/* harmony import */ var _swc_helpers_to_consumable_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42395);
|
|
44300
|
-
/* harmony import */ var
|
|
44301
|
-
/* harmony import */ var
|
|
44302
|
-
/* harmony import */ var
|
|
44303
|
-
/* harmony import */ var
|
|
44318
|
+
/* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23211);
|
|
44319
|
+
/* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28077);
|
|
44320
|
+
/* harmony import */ var jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65946);
|
|
44321
|
+
/* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(85932);
|
|
44322
|
+
/* harmony import */ var jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2496);
|
|
44323
|
+
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3244);
|
|
44304
44324
|
/*!
|
|
44305
44325
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
44306
44326
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -44314,6 +44334,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.dots = {
|
|
|
44314
44334
|
|
|
44315
44335
|
|
|
44316
44336
|
|
|
44337
|
+
|
|
44338
|
+
|
|
44317
44339
|
var isButtonSeparator = function isButtonSeparator(item) {
|
|
44318
44340
|
return item === '|' || item === '---' || item === '\n';
|
|
44319
44341
|
};
|
|
@@ -44329,7 +44351,7 @@ var isButtonSeparator = function isButtonSeparator(item) {
|
|
|
44329
44351
|
* the standard grouped mobile layout — groups, separators and `dots` — is
|
|
44330
44352
|
* preserved. See #1389.
|
|
44331
44353
|
*/ function fitToButtons(list, editor) {
|
|
44332
|
-
var allowed = (0,
|
|
44354
|
+
var allowed = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_5__.flatButtonsSet)((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__.splitArray)(editor.o.buttons), editor);
|
|
44333
44355
|
var groups = editor.getRegisteredButtonGroups();
|
|
44334
44356
|
var changed = false;
|
|
44335
44357
|
var hadDots = false;
|
|
@@ -44338,7 +44360,7 @@ var isButtonSeparator = function isButtonSeparator(item) {
|
|
|
44338
44360
|
try {
|
|
44339
44361
|
for(var _iterator = list[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
44340
44362
|
var item = _step.value;
|
|
44341
|
-
if ((0,
|
|
44363
|
+
if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_5__.isButtonGroup)(item)) {
|
|
44342
44364
|
var _flat;
|
|
44343
44365
|
var _groups_item_group;
|
|
44344
44366
|
var members = (0,_swc_helpers_to_consumable_array__WEBPACK_IMPORTED_MODULE_0__._)(item.buttons).concat((0,_swc_helpers_to_consumable_array__WEBPACK_IMPORTED_MODULE_0__._)((_groups_item_group = groups[item.group]) !== null && _groups_item_group !== void 0 ? _groups_item_group : []));
|
|
@@ -44407,8 +44429,8 @@ var isButtonSeparator = function isButtonSeparator(item) {
|
|
|
44407
44429
|
// Keep the "show all" overflow button only if some requested button is still
|
|
44408
44430
|
// hidden at this breakpoint.
|
|
44409
44431
|
if (hadDots) {
|
|
44410
|
-
var shown = (0,
|
|
44411
|
-
if ((0,
|
|
44432
|
+
var shown = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_5__.flatButtonsSet)(cleaned, editor);
|
|
44433
|
+
if ((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__.toArray)(allowed).some(function(button) {
|
|
44412
44434
|
return !shown.has(button);
|
|
44413
44435
|
})) {
|
|
44414
44436
|
cleaned.push('dots');
|
|
@@ -44416,10 +44438,25 @@ var isButtonSeparator = function isButtonSeparator(item) {
|
|
|
44416
44438
|
}
|
|
44417
44439
|
return cleaned;
|
|
44418
44440
|
}
|
|
44441
|
+
/**
|
|
44442
|
+
* The width that decides which breakpoint set the toolbar uses. A toolbar
|
|
44443
|
+
* rendered into an external container (`toolbar` set to an element or a
|
|
44444
|
+
* selector) lays out in that container, so its width is what matters there.
|
|
44445
|
+
*/ function adaptiveWidth(editor) {
|
|
44446
|
+
var _editor_container_parentElement;
|
|
44447
|
+
var toolbar = editor.o.toolbar;
|
|
44448
|
+
if ((0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_4__.isString)(toolbar) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isHTMLElement(toolbar)) {
|
|
44449
|
+
var width = editor.toolbarContainer.offsetWidth;
|
|
44450
|
+
if (width) {
|
|
44451
|
+
return width;
|
|
44452
|
+
}
|
|
44453
|
+
}
|
|
44454
|
+
return ((_editor_container_parentElement = editor.container.parentElement) !== null && _editor_container_parentElement !== void 0 ? _editor_container_parentElement : editor.container).offsetWidth;
|
|
44455
|
+
}
|
|
44419
44456
|
/**
|
|
44420
44457
|
* Rebuild toolbar in depends on editor's width
|
|
44421
44458
|
*/ function mobile(editor) {
|
|
44422
|
-
var timeout = 0, store = (0,
|
|
44459
|
+
var timeout = 0, store = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__.splitArray)(editor.o.buttons);
|
|
44423
44460
|
if (editor.o.mobileTapTimeout) {
|
|
44424
44461
|
// Emulate double tap
|
|
44425
44462
|
editor.e.on('touchend', function(e) {
|
|
@@ -44436,8 +44473,8 @@ var isButtonSeparator = function isButtonSeparator(item) {
|
|
|
44436
44473
|
}
|
|
44437
44474
|
editor.e.on('getDiffButtons.mobile', function(toolbar) {
|
|
44438
44475
|
if (toolbar === editor.toolbar) {
|
|
44439
|
-
var buttons = (0,
|
|
44440
|
-
return (0,
|
|
44476
|
+
var buttons = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_5__.flatButtonsSet)((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__.splitArray)(editor.o.buttons), editor), flatStore = (0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_5__.flatButtonsSet)(store, editor);
|
|
44477
|
+
return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__.toArray)(buttons).reduce(function(acc, item) {
|
|
44441
44478
|
if (!flatStore.has(item)) {
|
|
44442
44479
|
acc.push(item);
|
|
44443
44480
|
}
|
|
@@ -44447,22 +44484,24 @@ var isButtonSeparator = function isButtonSeparator(item) {
|
|
|
44447
44484
|
});
|
|
44448
44485
|
if (editor.o.toolbarAdaptive) {
|
|
44449
44486
|
editor.e.on('resize afterInit recalcAdaptive changePlace afterAddPlace', function() {
|
|
44450
|
-
var _editor_container_parentElement;
|
|
44451
44487
|
if (!editor.o.toolbar) {
|
|
44452
44488
|
return;
|
|
44453
44489
|
}
|
|
44454
|
-
var width = ((_editor_container_parentElement = editor.container.parentElement) !== null && _editor_container_parentElement !== void 0 ? _editor_container_parentElement : editor.container).offsetWidth;
|
|
44455
44490
|
var newStore = function() {
|
|
44456
|
-
if (editor.isFullSize
|
|
44457
|
-
return (0,
|
|
44491
|
+
if (editor.isFullSize) {
|
|
44492
|
+
return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__.splitArray)(editor.o.buttons);
|
|
44493
|
+
}
|
|
44494
|
+
var width = adaptiveWidth(editor);
|
|
44495
|
+
if (width >= editor.o.sizeLG) {
|
|
44496
|
+
return (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__.splitArray)(editor.o.buttons);
|
|
44458
44497
|
}
|
|
44459
44498
|
if (width >= editor.o.sizeMD) {
|
|
44460
|
-
return fitToButtons((0,
|
|
44499
|
+
return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__.splitArray)(editor.o.buttonsMD), editor);
|
|
44461
44500
|
}
|
|
44462
44501
|
if (width >= editor.o.sizeSM) {
|
|
44463
|
-
return fitToButtons((0,
|
|
44502
|
+
return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__.splitArray)(editor.o.buttonsSM), editor);
|
|
44464
44503
|
}
|
|
44465
|
-
return fitToButtons((0,
|
|
44504
|
+
return fitToButtons((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_3__.splitArray)(editor.o.buttonsXS), editor);
|
|
44466
44505
|
}();
|
|
44467
44506
|
if (newStore.toString() !== store.toString()) {
|
|
44468
44507
|
var _editor_toolbar;
|
|
@@ -44475,7 +44514,7 @@ var isButtonSeparator = function isButtonSeparator(item) {
|
|
|
44475
44514
|
});
|
|
44476
44515
|
}
|
|
44477
44516
|
}
|
|
44478
|
-
|
|
44517
|
+
jodit_core_global__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('mobile', mobile);
|
|
44479
44518
|
|
|
44480
44519
|
|
|
44481
44520
|
/***/ }),
|
|
@@ -55854,25 +55893,20 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
|
|
|
55854
55893
|
/******/ /* webpack/runtime/chunk loaded */
|
|
55855
55894
|
/******/ !function() {
|
|
55856
55895
|
/******/ var deferred = [];
|
|
55857
|
-
/******/ __webpack_require__.O = function(result, chunkIds, fn
|
|
55896
|
+
/******/ __webpack_require__.O = function(result, chunkIds, fn) {
|
|
55858
55897
|
/******/ if(chunkIds) {
|
|
55859
|
-
/******/
|
|
55860
|
-
/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
|
|
55861
|
-
/******/ deferred[i] = [chunkIds, fn, priority];
|
|
55898
|
+
/******/ deferred.push([chunkIds, fn]);
|
|
55862
55899
|
/******/ return;
|
|
55863
55900
|
/******/ }
|
|
55864
|
-
/******/ var notFulfilled = Infinity;
|
|
55865
55901
|
/******/ for (var i = 0; i < deferred.length; i++) {
|
|
55866
55902
|
/******/ var chunkIds = deferred[i][0];
|
|
55867
55903
|
/******/ var fn = deferred[i][1];
|
|
55868
|
-
/******/ var priority = deferred[i][2];
|
|
55869
55904
|
/******/ var fulfilled = true;
|
|
55870
55905
|
/******/ for (var j = 0; j < chunkIds.length; j++) {
|
|
55871
|
-
/******/ if (
|
|
55906
|
+
/******/ if (__webpack_require__.O.j(chunkIds[j])) {
|
|
55872
55907
|
/******/ chunkIds.splice(j--, 1);
|
|
55873
55908
|
/******/ } else {
|
|
55874
55909
|
/******/ fulfilled = false;
|
|
55875
|
-
/******/ if(priority < notFulfilled) notFulfilled = priority;
|
|
55876
55910
|
/******/ }
|
|
55877
55911
|
/******/ }
|
|
55878
55912
|
/******/ if(fulfilled) {
|
package/es5/jodit.min.css
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
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
|
*/
|
|
8
8
|
/*!
|
|
9
9
|
* jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
|
|
10
10
|
* Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
|
|
11
|
-
* Version: v4.15.
|
|
11
|
+
* Version: v4.15.9
|
|
12
12
|
* Url: https://xdsoft.net/jodit/
|
|
13
13
|
* License(s): MIT
|
|
14
14
|
*/
|