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/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.13.
|
|
4
|
+
* Version: v4.13.27
|
|
5
5
|
* Url: https://xdsoft.net/jodit/
|
|
6
6
|
* License(s): MIT
|
|
7
7
|
*/
|
|
@@ -1849,7 +1849,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1849
1849
|
* ```
|
|
1850
1850
|
* @packageDocumentation
|
|
1851
1851
|
* @module constants
|
|
1852
|
-
*/ const APP_VERSION = "4.13.
|
|
1852
|
+
*/ const APP_VERSION = "4.13.27";
|
|
1853
1853
|
// prettier-ignore
|
|
1854
1854
|
const ES = "es2015";
|
|
1855
1855
|
const IS_ES_MODERN = true;
|
|
@@ -11978,6 +11978,7 @@ class Selection {
|
|
|
11978
11978
|
* @param root - editor root
|
|
11979
11979
|
* @private
|
|
11980
11980
|
*/ function getSuitParent(style, node, root) {
|
|
11981
|
+
var _style_options_attributes;
|
|
11981
11982
|
const { parentNode } = node;
|
|
11982
11983
|
if (parentNode === root || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isHTMLElement(parentNode) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.next(node, _is_normal_node__WEBPACK_IMPORTED_MODULE_1__.isNormalNode, parentNode) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.prev(node, _is_normal_node__WEBPACK_IMPORTED_MODULE_1__.isNormalNode, parentNode)) {
|
|
11983
11984
|
return null;
|
|
@@ -11986,6 +11987,13 @@ class Selection {
|
|
|
11986
11987
|
if (style.isElementCommit && style.elementIsBlock && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(parentNode)) {
|
|
11987
11988
|
return getSuitParent(style, parentNode, root);
|
|
11988
11989
|
}
|
|
11990
|
+
// <li>|test|</li> => apply the CSS style to the <li> itself, so the
|
|
11991
|
+
// list marker (bullet/number) gets the same color and size as the text.
|
|
11992
|
+
// Only for pure style commits: bold/italic keep wrapping the content.
|
|
11993
|
+
// See #1460
|
|
11994
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(parentNode, 'li') && !style.isElementCommit && ((_style_options_attributes = style.options.attributes) === null || _style_options_attributes === void 0 ? void 0 : _style_options_attributes.style)) {
|
|
11995
|
+
return parentNode;
|
|
11996
|
+
}
|
|
11989
11997
|
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)) {
|
|
11990
11998
|
return parentNode;
|
|
11991
11999
|
}
|
|
@@ -16595,6 +16603,15 @@ class Popup extends jodit_core_ui_group_group__WEBPACK_IMPORTED_MODULE_11__.UIGr
|
|
|
16595
16603
|
this.j.e.fire(this, 'beforeClose');
|
|
16596
16604
|
this.j.e.fire('beforePopupClose', this);
|
|
16597
16605
|
this.__removeGlobalListeners();
|
|
16606
|
+
// Blur a focused control (e.g. the color picker hex input) before
|
|
16607
|
+
// the container goes away. Chrome fires `blur`/`change` for a
|
|
16608
|
+
// removed focused element in the middle of `removeChild`, Firefox
|
|
16609
|
+
// does not fire them at all. Blurring first makes both browsers
|
|
16610
|
+
// run those handlers while the popup is still in the DOM. See #1458
|
|
16611
|
+
const { activeElement } = this.od;
|
|
16612
|
+
if (activeElement && activeElement !== this.container && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_6__.Dom.isOrContains(this.container, activeElement) && (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_8__.isFunction)(activeElement.blur)) {
|
|
16613
|
+
activeElement.blur();
|
|
16614
|
+
}
|
|
16598
16615
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_6__.Dom.safeRemove(this.container);
|
|
16599
16616
|
return this;
|
|
16600
16617
|
}
|
|
@@ -24284,15 +24301,23 @@ class ToolbarButton extends jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_21__.U
|
|
|
24284
24301
|
return this.openedPopup;
|
|
24285
24302
|
}
|
|
24286
24303
|
__closePopup() {
|
|
24287
|
-
|
|
24288
|
-
|
|
24289
|
-
|
|
24290
|
-
|
|
24291
|
-
|
|
24292
|
-
|
|
24293
|
-
|
|
24294
|
-
|
|
24295
|
-
|
|
24304
|
+
const popup = this.openedPopup;
|
|
24305
|
+
if (!popup) {
|
|
24306
|
+
return;
|
|
24307
|
+
}
|
|
24308
|
+
// Detach first: removing a popup that holds the focused element
|
|
24309
|
+
// makes Chrome fire `blur`/`change` on it synchronously, and a
|
|
24310
|
+
// handler there may call the popup's `close` callback again.
|
|
24311
|
+
// A re-entrant call must be a no-op, otherwise it destructs the
|
|
24312
|
+
// popup while the outer `removeChild` is still running and Chrome
|
|
24313
|
+
// throws NotFoundError. See #1458
|
|
24314
|
+
this.openedPopup = null;
|
|
24315
|
+
this.j.e.off(this.ow, 'mousedown touchstart', this.onOutsideClick).off('escape closeAllPopups', this.onOutsideClick);
|
|
24316
|
+
this.state.activated = false;
|
|
24317
|
+
popup.close();
|
|
24318
|
+
popup.destruct();
|
|
24319
|
+
if (this.trigger) {
|
|
24320
|
+
(0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_19__.attr)(this.trigger, 'aria-expanded', false);
|
|
24296
24321
|
}
|
|
24297
24322
|
}
|
|
24298
24323
|
/**
|
|
@@ -25646,8 +25671,15 @@ jodit_core_ui__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', (_palette_svg__WE
|
|
|
25646
25671
|
const { extra } = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.refs)(form);
|
|
25647
25672
|
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>`));
|
|
25648
25673
|
const { hexInput } = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.refs)(form);
|
|
25674
|
+
// Enter applies the value and closes the popup; removing the focused
|
|
25675
|
+
// input then makes Chrome fire `change` on it, which would apply the
|
|
25676
|
+
// same color a second time and toggle it off again. See #1459
|
|
25677
|
+
let appliedHexValue = null;
|
|
25649
25678
|
const applyHexInput = ()=>{
|
|
25650
25679
|
const raw = hexInput.value.trim();
|
|
25680
|
+
if (raw === appliedHexValue) {
|
|
25681
|
+
return;
|
|
25682
|
+
}
|
|
25651
25683
|
const isHex = /^#?[0-9a-f]{3}(?:[0-9a-f]{3})?$/i.test(raw);
|
|
25652
25684
|
const isRgb = /^rgba?\([\d\s.,%]+\)$/i.test(raw);
|
|
25653
25685
|
if (!isHex && !isRgb) {
|
|
@@ -25655,6 +25687,7 @@ jodit_core_ui__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', (_palette_svg__WE
|
|
|
25655
25687
|
}
|
|
25656
25688
|
const color = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.normalizeColor)(isHex && !raw.startsWith('#') ? '#' + raw : raw);
|
|
25657
25689
|
if (color && (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_1__.isFunction)(callback)) {
|
|
25690
|
+
appliedHexValue = raw;
|
|
25658
25691
|
callback(color);
|
|
25659
25692
|
}
|
|
25660
25693
|
};
|