jodit 4.13.25 → 4.13.27
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 +4 -4
- package/es2015/jodit.js +44 -11
- package/es2015/jodit.min.js +4 -4
- 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 +4 -4
- package/es2018/jodit.min.js +4 -4
- 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 +5 -5
- package/es2021/jodit.js +43 -11
- package/es2021/jodit.min.js +5 -5
- 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 +5 -5
- package/es2021.en/jodit.js +43 -11
- package/es2021.en/jodit.min.js +25 -25
- 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 +44 -11
- 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/core/selection/style/api/get-suit-parent.js +10 -0
- package/esm/core/ui/popup/popup.js +13 -1
- package/esm/modules/toolbar/button/button.js +19 -11
- package/esm/modules/widget/color-picker/color-picker.js +8 -0
- package/package.json +1 -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.13.
|
|
4
|
+
* Version: v4.13.27
|
|
5
5
|
* Url: https://xdsoft.net/jodit/
|
|
6
6
|
* License(s): MIT
|
|
7
7
|
*/
|
|
@@ -1843,7 +1843,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1843
1843
|
* ```
|
|
1844
1844
|
* @packageDocumentation
|
|
1845
1845
|
* @module constants
|
|
1846
|
-
*/ const APP_VERSION = "4.13.
|
|
1846
|
+
*/ const APP_VERSION = "4.13.27";
|
|
1847
1847
|
// prettier-ignore
|
|
1848
1848
|
const ES = "es2021";
|
|
1849
1849
|
const IS_ES_MODERN = true;
|
|
@@ -11911,6 +11911,13 @@ class Selection {
|
|
|
11911
11911
|
if (style.isElementCommit && style.elementIsBlock && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(parentNode)) {
|
|
11912
11912
|
return getSuitParent(style, parentNode, root);
|
|
11913
11913
|
}
|
|
11914
|
+
// <li>|test|</li> => apply the CSS style to the <li> itself, so the
|
|
11915
|
+
// list marker (bullet/number) gets the same color and size as the text.
|
|
11916
|
+
// Only for pure style commits: bold/italic keep wrapping the content.
|
|
11917
|
+
// See #1460
|
|
11918
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(parentNode, 'li') && !style.isElementCommit && style.options.attributes?.style) {
|
|
11919
|
+
return parentNode;
|
|
11920
|
+
}
|
|
11914
11921
|
if ((0,_is_suit_element__WEBPACK_IMPORTED_MODULE_2__.isSuitElement)(style, parentNode, false) && (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(parentNode) || style.elementIsBlock)) {
|
|
11915
11922
|
return parentNode;
|
|
11916
11923
|
}
|
|
@@ -16465,6 +16472,15 @@ class Popup extends jodit_core_ui_group_group__WEBPACK_IMPORTED_MODULE_9__.UIGro
|
|
|
16465
16472
|
this.j.e.fire(this, 'beforeClose');
|
|
16466
16473
|
this.j.e.fire('beforePopupClose', this);
|
|
16467
16474
|
this.__removeGlobalListeners();
|
|
16475
|
+
// Blur a focused control (e.g. the color picker hex input) before
|
|
16476
|
+
// the container goes away. Chrome fires `blur`/`change` for a
|
|
16477
|
+
// removed focused element in the middle of `removeChild`, Firefox
|
|
16478
|
+
// does not fire them at all. Blurring first makes both browsers
|
|
16479
|
+
// run those handlers while the popup is still in the DOM. See #1458
|
|
16480
|
+
const { activeElement } = this.od;
|
|
16481
|
+
if (activeElement && activeElement !== this.container && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.container, activeElement) && (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.isFunction)(activeElement.blur)) {
|
|
16482
|
+
activeElement.blur();
|
|
16483
|
+
}
|
|
16468
16484
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(this.container);
|
|
16469
16485
|
return this;
|
|
16470
16486
|
}
|
|
@@ -24094,15 +24110,23 @@ class ToolbarButton extends jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_19__.U
|
|
|
24094
24110
|
return this.openedPopup;
|
|
24095
24111
|
}
|
|
24096
24112
|
__closePopup() {
|
|
24097
|
-
|
|
24098
|
-
|
|
24099
|
-
|
|
24100
|
-
|
|
24101
|
-
|
|
24102
|
-
|
|
24103
|
-
|
|
24104
|
-
|
|
24105
|
-
|
|
24113
|
+
const popup = this.openedPopup;
|
|
24114
|
+
if (!popup) {
|
|
24115
|
+
return;
|
|
24116
|
+
}
|
|
24117
|
+
// Detach first: removing a popup that holds the focused element
|
|
24118
|
+
// makes Chrome fire `blur`/`change` on it synchronously, and a
|
|
24119
|
+
// handler there may call the popup's `close` callback again.
|
|
24120
|
+
// A re-entrant call must be a no-op, otherwise it destructs the
|
|
24121
|
+
// popup while the outer `removeChild` is still running and Chrome
|
|
24122
|
+
// throws NotFoundError. See #1458
|
|
24123
|
+
this.openedPopup = null;
|
|
24124
|
+
this.j.e.off(this.ow, 'mousedown touchstart', this.onOutsideClick).off('escape closeAllPopups', this.onOutsideClick);
|
|
24125
|
+
this.state.activated = false;
|
|
24126
|
+
popup.close();
|
|
24127
|
+
popup.destruct();
|
|
24128
|
+
if (this.trigger) {
|
|
24129
|
+
(0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_17__.attr)(this.trigger, 'aria-expanded', false);
|
|
24106
24130
|
}
|
|
24107
24131
|
}
|
|
24108
24132
|
/**
|
|
@@ -25449,8 +25473,15 @@ jodit_core_ui__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', (_palette_svg__WE
|
|
|
25449
25473
|
const { extra } = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.refs)(form);
|
|
25450
25474
|
extra.appendChild(editor.c.fromHTML(`<div class="${cn}__hex"><input data-ref="hexInput" type="text" spellcheck="false" aria-label="HEX" placeholder="#FF0000" value="${valueHex || ''}"/></div>`));
|
|
25451
25475
|
const { hexInput } = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.refs)(form);
|
|
25476
|
+
// Enter applies the value and closes the popup; removing the focused
|
|
25477
|
+
// input then makes Chrome fire `change` on it, which would apply the
|
|
25478
|
+
// same color a second time and toggle it off again. See #1459
|
|
25479
|
+
let appliedHexValue = null;
|
|
25452
25480
|
const applyHexInput = ()=>{
|
|
25453
25481
|
const raw = hexInput.value.trim();
|
|
25482
|
+
if (raw === appliedHexValue) {
|
|
25483
|
+
return;
|
|
25484
|
+
}
|
|
25454
25485
|
const isHex = /^#?[0-9a-f]{3}(?:[0-9a-f]{3})?$/i.test(raw);
|
|
25455
25486
|
const isRgb = /^rgba?\([\d\s.,%]+\)$/i.test(raw);
|
|
25456
25487
|
if (!isHex && !isRgb) {
|
|
@@ -25458,6 +25489,7 @@ jodit_core_ui__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', (_palette_svg__WE
|
|
|
25458
25489
|
}
|
|
25459
25490
|
const color = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.normalizeColor)(isHex && !raw.startsWith('#') ? '#' + raw : raw);
|
|
25460
25491
|
if (color && (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.isFunction)(callback)) {
|
|
25492
|
+
appliedHexValue = raw;
|
|
25461
25493
|
callback(color);
|
|
25462
25494
|
}
|
|
25463
25495
|
};
|