jodit 4.14.2 → 4.14.3
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 +21 -0
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.js +7 -7
- package/es2015/jodit.js +469 -313
- package/es2015/jodit.min.js +5 -5
- 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 +7 -7
- package/es2018/jodit.min.js +5 -5
- 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 +9 -9
- package/es2021/jodit.js +456 -304
- package/es2021/jodit.min.js +6 -6
- 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 +395 -251
- package/es2021.en/jodit.min.js +5 -5
- 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 +701 -381
- 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/helpers/index.js +5 -2
- package/esm/core/selection/selection.d.ts +8 -5
- package/esm/core/selection/selection.js +267 -159
- package/esm/core/selection/style/api/extract.js +1 -3
- package/esm/core/selection/style/api/is-same-attributes.js +5 -2
- package/esm/core/selection/style/api/toggle-attributes.js +27 -10
- package/esm/core/selection/style/api/unwrap-children.js +39 -33
- package/esm/core/selection/style/apply-style.js +23 -25
- package/esm/core/selection/style/commit-style.js +3 -0
- package/esm/core/selection/style/transactions.js +2 -1
- package/esm/langs/az.d.ts +223 -0
- package/esm/langs/az.js +240 -0
- package/esm/languages.js +2 -0
- package/esm/modules/history/snapshot.js +45 -20
- package/esm/types/style.d.ts +2 -2
- package/esm/types/types.d.ts +3 -0
- package/package.json +1 -1
- package/types/core/selection/selection.d.ts +8 -5
- package/types/langs/az.d.ts +223 -0
- package/types/types/style.d.ts +2 -2
- package/types/types/types.d.ts +3 -0
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.14.
|
|
4
|
+
* Version: v4.14.3
|
|
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.14.
|
|
1788
|
+
*/ const APP_VERSION = "4.14.3";
|
|
1789
1789
|
// prettier-ignore
|
|
1790
1790
|
const ES = "es2015";
|
|
1791
1791
|
const IS_ES_MODERN = true;
|
|
@@ -10571,13 +10571,16 @@ function findCorrectCurrentNode(node, range, rightMode, isCollapsed, checkChild,
|
|
|
10571
10571
|
if (!rightMode && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(node.previousSibling)) {
|
|
10572
10572
|
node = node.previousSibling;
|
|
10573
10573
|
} else if (checkChild) {
|
|
10574
|
-
|
|
10574
|
+
// The fallback to the previous child changes the traversal direction
|
|
10575
|
+
// before the caller receives the updated rightMode.
|
|
10576
|
+
const nextChild = (nd)=>rightMode ? nd.lastChild : child(nd);
|
|
10577
|
+
let current = nextChild(node);
|
|
10575
10578
|
while(current){
|
|
10576
10579
|
if (current && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(current)) {
|
|
10577
10580
|
node = current;
|
|
10578
10581
|
break;
|
|
10579
10582
|
}
|
|
10580
|
-
current =
|
|
10583
|
+
current = nextChild(current);
|
|
10581
10584
|
}
|
|
10582
10585
|
}
|
|
10583
10586
|
}
|
|
@@ -10785,8 +10788,15 @@ class Selection {
|
|
|
10785
10788
|
* Checks if the selected text is currently inside the editor
|
|
10786
10789
|
*/ get isInsideArea() {
|
|
10787
10790
|
const { sel } = this;
|
|
10788
|
-
|
|
10789
|
-
|
|
10791
|
+
if (!(sel === null || sel === void 0 ? void 0 : sel.rangeCount)) {
|
|
10792
|
+
return false;
|
|
10793
|
+
}
|
|
10794
|
+
for(let i = 0; i < sel.rangeCount; i += 1){
|
|
10795
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.area, sel.getRangeAt(i).commonAncestorContainer)) {
|
|
10796
|
+
return false;
|
|
10797
|
+
}
|
|
10798
|
+
}
|
|
10799
|
+
return true;
|
|
10790
10800
|
}
|
|
10791
10801
|
/**
|
|
10792
10802
|
* Return current selection object
|
|
@@ -10804,8 +10814,11 @@ class Selection {
|
|
|
10804
10814
|
const sel = this.sel, current = this.current();
|
|
10805
10815
|
if (sel && current) {
|
|
10806
10816
|
for(let i = 0; i < sel.rangeCount; i += 1){
|
|
10807
|
-
sel.getRangeAt(i)
|
|
10808
|
-
|
|
10817
|
+
const range = sel.getRangeAt(i);
|
|
10818
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.area, range.commonAncestorContainer)) {
|
|
10819
|
+
range.deleteContents();
|
|
10820
|
+
range.collapse(true);
|
|
10821
|
+
}
|
|
10809
10822
|
}
|
|
10810
10823
|
}
|
|
10811
10824
|
}
|
|
@@ -10834,25 +10847,24 @@ class Selection {
|
|
|
10834
10847
|
* @param y - Coordinate by vertical
|
|
10835
10848
|
* @returns false - Something went wrong
|
|
10836
10849
|
*/ insertCursorAtPoint(x, y) {
|
|
10837
|
-
this.removeMarkers();
|
|
10838
10850
|
try {
|
|
10839
|
-
|
|
10840
|
-
(
|
|
10841
|
-
|
|
10842
|
-
|
|
10843
|
-
|
|
10844
|
-
|
|
10845
|
-
|
|
10846
|
-
|
|
10847
|
-
|
|
10848
|
-
|
|
10849
|
-
|
|
10850
|
-
|
|
10851
|
-
|
|
10852
|
-
|
|
10853
|
-
|
|
10854
|
-
|
|
10855
|
-
this.selectRange(
|
|
10851
|
+
var _this_doc_caretPositionFromPoint, _this_doc, _this_doc_caretRangeFromPoint, _this_doc1;
|
|
10852
|
+
const range = this.createRange();
|
|
10853
|
+
const position = (_this_doc_caretPositionFromPoint = (_this_doc = this.doc).caretPositionFromPoint) === null || _this_doc_caretPositionFromPoint === void 0 ? void 0 : _this_doc_caretPositionFromPoint.call(_this_doc, x, y);
|
|
10854
|
+
const caret = position ? null : (_this_doc_caretRangeFromPoint = (_this_doc1 = this.doc).caretRangeFromPoint) === null || _this_doc_caretRangeFromPoint === void 0 ? void 0 : _this_doc_caretRangeFromPoint.call(_this_doc1, x, y);
|
|
10855
|
+
if (position) {
|
|
10856
|
+
range.setStart(position.offsetNode, position.offset);
|
|
10857
|
+
} else if (caret) {
|
|
10858
|
+
range.setStart(caret.startContainer, caret.startOffset);
|
|
10859
|
+
} else {
|
|
10860
|
+
return false;
|
|
10861
|
+
}
|
|
10862
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.area, range.startContainer)) {
|
|
10863
|
+
return false;
|
|
10864
|
+
}
|
|
10865
|
+
range.collapse(true);
|
|
10866
|
+
this.removeMarkers();
|
|
10867
|
+
this.selectRange(range);
|
|
10856
10868
|
return true;
|
|
10857
10869
|
} catch (unused) {}
|
|
10858
10870
|
return false;
|
|
@@ -10902,84 +10914,131 @@ class Selection {
|
|
|
10902
10914
|
/**
|
|
10903
10915
|
* Restores user selections using marker invisible elements in the DOM.
|
|
10904
10916
|
*/ restore() {
|
|
10905
|
-
|
|
10906
|
-
const
|
|
10907
|
-
|
|
10908
|
-
|
|
10909
|
-
|
|
10910
|
-
|
|
10911
|
-
|
|
10912
|
-
|
|
10913
|
-
|
|
10914
|
-
|
|
10915
|
-
|
|
10916
|
-
|
|
10917
|
+
const markers = this.markers;
|
|
10918
|
+
const byId = new Map(markers.map((marker)=>[
|
|
10919
|
+
marker.id,
|
|
10920
|
+
marker
|
|
10921
|
+
]));
|
|
10922
|
+
const ranges = [];
|
|
10923
|
+
let backward = false;
|
|
10924
|
+
for(let i = 0; i < markers.length; i += 1){
|
|
10925
|
+
const start = markers[i];
|
|
10926
|
+
if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.attr)(start, 'data-' + jodit_core_constants__WEBPACK_IMPORTED_MODULE_2__.MARKER_CLASS) !== 'start') {
|
|
10927
|
+
continue;
|
|
10928
|
+
}
|
|
10929
|
+
backward || (backward = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.attr)(start, 'data-selection-backward') === 'true');
|
|
10930
|
+
const endId = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.attr)(start, 'data-selection-end');
|
|
10931
|
+
let end = endId ? byId.get(endId) : undefined;
|
|
10932
|
+
if (!endId && markers[i + 1] && (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.attr)(markers[i + 1], 'data-' + jodit_core_constants__WEBPACK_IMPORTED_MODULE_2__.MARKER_CLASS) === 'end') {
|
|
10933
|
+
end = markers[i + 1];
|
|
10934
|
+
}
|
|
10935
|
+
const range = this.createRange();
|
|
10936
|
+
if (end) {
|
|
10937
|
+
range.setStartAfter(start);
|
|
10938
|
+
range.setEndBefore(end);
|
|
10917
10939
|
} else {
|
|
10918
|
-
|
|
10940
|
+
const previous = start.previousSibling;
|
|
10941
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isText(previous)) {
|
|
10942
|
+
var _ref;
|
|
10943
|
+
var _previous_nodeValue;
|
|
10944
|
+
range.setStart(previous, (_ref = (_previous_nodeValue = previous.nodeValue) === null || _previous_nodeValue === void 0 ? void 0 : _previous_nodeValue.length) !== null && _ref !== void 0 ? _ref : 0);
|
|
10945
|
+
} else {
|
|
10946
|
+
range.setStartBefore(start);
|
|
10947
|
+
}
|
|
10948
|
+
range.collapse(true);
|
|
10919
10949
|
}
|
|
10920
|
-
|
|
10921
|
-
range.collapse(true);
|
|
10922
|
-
} else {
|
|
10923
|
-
range.setStartAfter(start);
|
|
10924
|
-
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(start);
|
|
10925
|
-
range.setEndBefore(end);
|
|
10926
|
-
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(end);
|
|
10950
|
+
ranges.push(range);
|
|
10927
10951
|
}
|
|
10928
|
-
|
|
10929
|
-
|
|
10952
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(...markers);
|
|
10953
|
+
if (ranges.length) {
|
|
10954
|
+
this.__selectRanges(ranges, backward);
|
|
10930
10955
|
}
|
|
10931
10956
|
}
|
|
10957
|
+
__isBackward() {
|
|
10958
|
+
const sel = this.sel;
|
|
10959
|
+
return Boolean(sel && sel.rangeCount === 1 && !sel.isCollapsed && sel.anchorNode === sel.getRangeAt(0).endContainer && sel.anchorOffset === sel.getRangeAt(0).endOffset);
|
|
10960
|
+
}
|
|
10961
|
+
__ranges() {
|
|
10962
|
+
const sel = this.sel;
|
|
10963
|
+
return sel ? Array.from({
|
|
10964
|
+
length: sel.rangeCount
|
|
10965
|
+
}, (_, i)=>sel.getRangeAt(i).cloneRange()) : [];
|
|
10966
|
+
}
|
|
10932
10967
|
/**
|
|
10933
10968
|
* Inserts invisible fake nodes on the boundaries of the current selection
|
|
10934
|
-
* and returns
|
|
10969
|
+
* and returns the first pair as a restoration handle for all ranges. Unlike [[Select.save]] the selection stays valid while
|
|
10935
10970
|
* the DOM around it is being modified. Restore it later with [[Select.restoreFakes]].
|
|
10936
10971
|
*/ fakes() {
|
|
10937
|
-
|
|
10938
|
-
if (!sel || !sel.rangeCount) {
|
|
10972
|
+
if (!this.isInsideArea) {
|
|
10939
10973
|
return [];
|
|
10940
10974
|
}
|
|
10941
|
-
const
|
|
10942
|
-
|
|
10943
|
-
const
|
|
10944
|
-
|
|
10945
|
-
|
|
10946
|
-
|
|
10947
|
-
|
|
10948
|
-
|
|
10949
|
-
fakeLeft
|
|
10950
|
-
|
|
10951
|
-
|
|
10952
|
-
|
|
10953
|
-
|
|
10954
|
-
|
|
10955
|
-
|
|
10956
|
-
|
|
10957
|
-
|
|
10958
|
-
|
|
10959
|
-
|
|
10960
|
-
|
|
10975
|
+
const backward = this.__isBackward();
|
|
10976
|
+
const ranges = this.__ranges();
|
|
10977
|
+
const pairs = ranges.map((range)=>{
|
|
10978
|
+
const collapsed = range.collapsed;
|
|
10979
|
+
const left = range.cloneRange();
|
|
10980
|
+
left.collapse(true);
|
|
10981
|
+
const fakeLeft = this.j.createInside.fake();
|
|
10982
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.safeInsertNode(left, fakeLeft);
|
|
10983
|
+
range.setStartBefore(fakeLeft);
|
|
10984
|
+
const pair = [
|
|
10985
|
+
fakeLeft
|
|
10986
|
+
];
|
|
10987
|
+
if (!collapsed) {
|
|
10988
|
+
const right = range.cloneRange();
|
|
10989
|
+
right.collapse(false);
|
|
10990
|
+
const fakeRight = this.j.createInside.fake();
|
|
10991
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.safeInsertNode(right, fakeRight);
|
|
10992
|
+
range.setEndAfter(fakeRight);
|
|
10993
|
+
pair.push(fakeRight);
|
|
10994
|
+
} else {
|
|
10995
|
+
range.collapse(true);
|
|
10996
|
+
}
|
|
10997
|
+
return pair;
|
|
10998
|
+
});
|
|
10999
|
+
this.__fakeSelections.set(pairs[0][0], {
|
|
11000
|
+
pairs,
|
|
11001
|
+
backward
|
|
11002
|
+
});
|
|
11003
|
+
this.__selectRanges(ranges, backward);
|
|
11004
|
+
return pairs[0];
|
|
10961
11005
|
}
|
|
10962
|
-
/**
|
|
10963
|
-
|
|
10964
|
-
|
|
10965
|
-
*/ restoreFakes(fakes) {
|
|
10966
|
-
var _fakeLeft_parentNode, _fakeLeft_parentNode1, _fakeRight_parentNode, _fakeRight_parentNode1;
|
|
10967
|
-
const nodes = fakes.filter((n)=>n.isConnected);
|
|
10968
|
-
if (!nodes.length) {
|
|
11006
|
+
/** Restore all ranges associated with the returned fake pair. */ restoreFakes(fakes) {
|
|
11007
|
+
var _ref;
|
|
11008
|
+
if (!fakes.length) {
|
|
10969
11009
|
return;
|
|
10970
11010
|
}
|
|
10971
|
-
const
|
|
10972
|
-
|
|
10973
|
-
|
|
10974
|
-
|
|
10975
|
-
range.setEndBefore(fakeRight);
|
|
11011
|
+
const saved = this.__fakeSelections.get(fakes[0]);
|
|
11012
|
+
this.__fakeSelections.delete(fakes[0]);
|
|
11013
|
+
if (this.j.isInDestruct) {
|
|
11014
|
+
return;
|
|
10976
11015
|
}
|
|
10977
|
-
|
|
10978
|
-
|
|
10979
|
-
|
|
11016
|
+
const ranges = [];
|
|
11017
|
+
for (const pair of (_ref = saved === null || saved === void 0 ? void 0 : saved.pairs) !== null && _ref !== void 0 ? _ref : [
|
|
11018
|
+
fakes
|
|
11019
|
+
]){
|
|
11020
|
+
const nodes = pair.filter((n)=>n.isConnected && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.area, n, true));
|
|
11021
|
+
if (!nodes.length) {
|
|
11022
|
+
continue;
|
|
11023
|
+
}
|
|
11024
|
+
const [left, right] = nodes;
|
|
11025
|
+
const range = this.createRange();
|
|
11026
|
+
range.setStartAfter(left);
|
|
11027
|
+
if (right) {
|
|
11028
|
+
range.setEndBefore(right);
|
|
11029
|
+
} else {
|
|
11030
|
+
range.collapse(true);
|
|
11031
|
+
}
|
|
11032
|
+
for (const node of nodes){
|
|
11033
|
+
var _node_parentNode, _node_parentNode1;
|
|
11034
|
+
if (((_node_parentNode = node.parentNode) === null || _node_parentNode === void 0 ? void 0 : _node_parentNode.firstChild) !== ((_node_parentNode1 = node.parentNode) === null || _node_parentNode1 === void 0 ? void 0 : _node_parentNode1.lastChild)) {
|
|
11035
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(node);
|
|
11036
|
+
}
|
|
11037
|
+
}
|
|
11038
|
+
ranges.push(range);
|
|
10980
11039
|
}
|
|
10981
|
-
if (
|
|
10982
|
-
|
|
11040
|
+
if (ranges.length) {
|
|
11041
|
+
this.__selectRanges(ranges, saved === null || saved === void 0 ? void 0 : saved.backward);
|
|
10983
11042
|
}
|
|
10984
11043
|
}
|
|
10985
11044
|
/**
|
|
@@ -10993,9 +11052,15 @@ class Selection {
|
|
|
10993
11052
|
if (!sel || !sel.rangeCount) {
|
|
10994
11053
|
return [];
|
|
10995
11054
|
}
|
|
11055
|
+
const backward = this.__isBackward();
|
|
10996
11056
|
const info = [], length = sel.rangeCount, ranges = [];
|
|
10997
11057
|
for(let i = 0; i < length; i += 1){
|
|
10998
11058
|
ranges[i] = sel.getRangeAt(i);
|
|
11059
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.area, ranges[i].commonAncestorContainer)) {
|
|
11060
|
+
return [];
|
|
11061
|
+
}
|
|
11062
|
+
}
|
|
11063
|
+
for(let i = 0; i < length; i += 1){
|
|
10999
11064
|
if (ranges[i].collapsed) {
|
|
11000
11065
|
const start = this.marker(true, ranges[i]);
|
|
11001
11066
|
info[i] = {
|
|
@@ -11006,6 +11071,12 @@ class Selection {
|
|
|
11006
11071
|
} else {
|
|
11007
11072
|
const start = this.marker(true, ranges[i]);
|
|
11008
11073
|
const end = this.marker(false, ranges[i]);
|
|
11074
|
+
if (length > 1) {
|
|
11075
|
+
(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.attr)(start, 'data-selection-end', end.id);
|
|
11076
|
+
}
|
|
11077
|
+
if (backward) {
|
|
11078
|
+
(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.attr)(start, 'data-selection-backward', 'true');
|
|
11079
|
+
}
|
|
11009
11080
|
info[i] = {
|
|
11010
11081
|
startId: start.id,
|
|
11011
11082
|
endId: end.id,
|
|
@@ -11018,7 +11089,7 @@ class Selection {
|
|
|
11018
11089
|
if (!silent) {
|
|
11019
11090
|
sel.removeAllRanges();
|
|
11020
11091
|
for(let i = length - 1; i >= 0; --i){
|
|
11021
|
-
const startElm = this.
|
|
11092
|
+
const startElm = this.area.querySelector('#' + info[i].startId);
|
|
11022
11093
|
if (!startElm) {
|
|
11023
11094
|
continue;
|
|
11024
11095
|
}
|
|
@@ -11028,7 +11099,7 @@ class Selection {
|
|
|
11028
11099
|
} else {
|
|
11029
11100
|
ranges[i].setStartBefore(startElm);
|
|
11030
11101
|
if (info[i].endId) {
|
|
11031
|
-
const endElm = this.
|
|
11102
|
+
const endElm = this.area.querySelector('#' + info[i].endId);
|
|
11032
11103
|
if (endElm) {
|
|
11033
11104
|
ranges[i].setEndAfter(endElm);
|
|
11034
11105
|
}
|
|
@@ -11103,6 +11174,9 @@ class Selection {
|
|
|
11103
11174
|
const range = sel.getRangeAt(0);
|
|
11104
11175
|
let node = range.startContainer;
|
|
11105
11176
|
let rightMode = false;
|
|
11177
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.area, node)) {
|
|
11178
|
+
return null;
|
|
11179
|
+
}
|
|
11106
11180
|
const child = (nd)=>rightMode ? nd.lastChild : nd.firstChild;
|
|
11107
11181
|
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isTag(node, 'br') && sel.isCollapsed) {
|
|
11108
11182
|
return node;
|
|
@@ -11126,8 +11200,11 @@ class Selection {
|
|
|
11126
11200
|
* @param fireChange - After insert, editor fire change event. You can prevent this behavior
|
|
11127
11201
|
*/ insertNode(node, insertCursorAfter = true, fireChange = true) {
|
|
11128
11202
|
this.errorNode(node);
|
|
11129
|
-
const child = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isFragment(node) ? node.lastChild : node;
|
|
11130
11203
|
this.j.e.fire('safeHTML', node);
|
|
11204
|
+
let child = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isFragment(node) ? node.lastChild : node;
|
|
11205
|
+
if (!child || this.j.isInDestruct) {
|
|
11206
|
+
return;
|
|
11207
|
+
}
|
|
11131
11208
|
if (!this.isFocused() && this.j.isEditorMode()) {
|
|
11132
11209
|
this.focus();
|
|
11133
11210
|
this.restore();
|
|
@@ -11138,6 +11215,10 @@ class Selection {
|
|
|
11138
11215
|
this.j.execCommand('Delete');
|
|
11139
11216
|
}
|
|
11140
11217
|
this.j.e.fire('beforeInsertNode', node);
|
|
11218
|
+
child = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isFragment(node) ? node.lastChild : node;
|
|
11219
|
+
if (!child || this.j.isInDestruct) {
|
|
11220
|
+
return;
|
|
11221
|
+
}
|
|
11141
11222
|
if (sel && sel.rangeCount) {
|
|
11142
11223
|
const range = sel.getRangeAt(0);
|
|
11143
11224
|
const { firstChild } = node;
|
|
@@ -11273,14 +11354,22 @@ class Selection {
|
|
|
11273
11354
|
}
|
|
11274
11355
|
/**
|
|
11275
11356
|
* Call callback for all selection node
|
|
11276
|
-
*/
|
|
11277
|
-
|
|
11278
|
-
|
|
11279
|
-
|
|
11280
|
-
|
|
11281
|
-
|
|
11357
|
+
*/ eachSelection(callback) {
|
|
11358
|
+
const seen = new Set();
|
|
11359
|
+
for (const range of this.__ranges()){
|
|
11360
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.area, range.commonAncestorContainer)) {
|
|
11361
|
+
continue;
|
|
11362
|
+
}
|
|
11363
|
+
this.__eachRange(range, (node)=>{
|
|
11364
|
+
if (!seen.has(node)) {
|
|
11365
|
+
seen.add(node);
|
|
11366
|
+
callback(node);
|
|
11367
|
+
}
|
|
11368
|
+
});
|
|
11282
11369
|
}
|
|
11283
|
-
|
|
11370
|
+
}
|
|
11371
|
+
__eachRange(range, callback) {
|
|
11372
|
+
var _start_nodeValue;
|
|
11284
11373
|
let root = range.commonAncestorContainer;
|
|
11285
11374
|
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isHTMLElement(root)) {
|
|
11286
11375
|
root = root.parentElement;
|
|
@@ -11349,12 +11438,15 @@ class Selection {
|
|
|
11349
11438
|
* @returns true - the cursor is at the end(start) block, null - cursor somewhere outside
|
|
11350
11439
|
*/ cursorInTheEdge(start, parentBlock, fake = null) {
|
|
11351
11440
|
const end = !start, sel = this.sel, range = (sel === null || sel === void 0 ? void 0 : sel.rangeCount) ? sel.getRangeAt(0) : null;
|
|
11352
|
-
|
|
11353
|
-
if (!range || !fake || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(parentBlock, fake, true)) {
|
|
11441
|
+
if (!range) {
|
|
11354
11442
|
return null;
|
|
11355
11443
|
}
|
|
11356
11444
|
const container = start ? range.startContainer : range.endContainer;
|
|
11357
11445
|
const offset = start ? range.startOffset : range.endOffset;
|
|
11446
|
+
fake !== null && fake !== void 0 ? fake : fake = container;
|
|
11447
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(parentBlock, container) || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(parentBlock, fake)) {
|
|
11448
|
+
return null;
|
|
11449
|
+
}
|
|
11358
11450
|
const isSignificant = (elm)=>Boolean(elm && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isTag(elm, 'br') && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isEmptyTextNode(elm) && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isTemporary(elm) && !(jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isElement(elm) && this.j.e.fire('isInvisibleForCursor', elm) === true));
|
|
11359
11451
|
// check right offset
|
|
11360
11452
|
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isText(container)) {
|
|
@@ -11362,13 +11454,10 @@ class Selection {
|
|
|
11362
11454
|
return false;
|
|
11363
11455
|
}
|
|
11364
11456
|
} else {
|
|
11365
|
-
const children =
|
|
11366
|
-
|
|
11367
|
-
|
|
11368
|
-
|
|
11369
|
-
}
|
|
11370
|
-
} else {
|
|
11371
|
-
if (children.slice(0, offset).some(isSignificant)) {
|
|
11457
|
+
const children = container.childNodes;
|
|
11458
|
+
const limit = end ? children.length : offset;
|
|
11459
|
+
for(let i = end ? offset : 0; i < limit; i += 1){
|
|
11460
|
+
if (isSignificant(children[i])) {
|
|
11372
11461
|
return false;
|
|
11373
11462
|
}
|
|
11374
11463
|
}
|
|
@@ -11381,7 +11470,7 @@ class Selection {
|
|
|
11381
11470
|
continue;
|
|
11382
11471
|
}
|
|
11383
11472
|
next = nextOne;
|
|
11384
|
-
if (
|
|
11473
|
+
if (isSignificant(next)) {
|
|
11385
11474
|
return false;
|
|
11386
11475
|
}
|
|
11387
11476
|
}
|
|
@@ -11413,7 +11502,7 @@ class Selection {
|
|
|
11413
11502
|
* Add fake node for new cursor position
|
|
11414
11503
|
*/ setCursorNearWith(node, inStart) {
|
|
11415
11504
|
this.errorNode(node);
|
|
11416
|
-
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.
|
|
11505
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.area, node, true)) {
|
|
11417
11506
|
throw (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.error)('Node element must be in editor');
|
|
11418
11507
|
}
|
|
11419
11508
|
const range = this.createRange();
|
|
@@ -11478,13 +11567,22 @@ class Selection {
|
|
|
11478
11567
|
/**
|
|
11479
11568
|
* Set range selection
|
|
11480
11569
|
*/ selectRange(range, focus = true) {
|
|
11570
|
+
return this.__selectRanges([
|
|
11571
|
+
range
|
|
11572
|
+
], false, focus);
|
|
11573
|
+
}
|
|
11574
|
+
__selectRanges(ranges, backward = false, focus = true) {
|
|
11481
11575
|
const sel = this.sel;
|
|
11482
11576
|
if (focus && !this.isFocused() && this.j.e.current !== 'focus') {
|
|
11483
11577
|
this.focus();
|
|
11484
11578
|
}
|
|
11485
11579
|
if (sel) {
|
|
11486
11580
|
sel.removeAllRanges();
|
|
11487
|
-
sel.addRange(range);
|
|
11581
|
+
ranges.forEach((range)=>sel.addRange(range));
|
|
11582
|
+
if (backward && ranges.length === 1) {
|
|
11583
|
+
const range = ranges[0];
|
|
11584
|
+
sel.setBaseAndExtent(range.endContainer, range.endOffset, range.startContainer, range.startOffset);
|
|
11585
|
+
}
|
|
11488
11586
|
}
|
|
11489
11587
|
/**
|
|
11490
11588
|
* Fired after change selection
|
|
@@ -11501,7 +11599,7 @@ class Selection {
|
|
|
11501
11599
|
throw (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.error)('Node element must be in editor');
|
|
11502
11600
|
}
|
|
11503
11601
|
const range = this.createRange();
|
|
11504
|
-
range[inward ? 'selectNodeContents' : 'selectNode'](node);
|
|
11602
|
+
range[inward || node === this.area ? 'selectNodeContents' : 'selectNode'](node);
|
|
11505
11603
|
return this.selectRange(range);
|
|
11506
11604
|
}
|
|
11507
11605
|
/**
|
|
@@ -11515,10 +11613,8 @@ class Selection {
|
|
|
11515
11613
|
*/ get html() {
|
|
11516
11614
|
const sel = this.sel;
|
|
11517
11615
|
if (sel && sel.rangeCount > 0) {
|
|
11518
|
-
const range = sel.getRangeAt(0);
|
|
11519
|
-
const clonedSelection = range.cloneContents();
|
|
11520
11616
|
const div = this.j.createInside.div();
|
|
11521
|
-
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.append(div,
|
|
11617
|
+
this.__ranges().forEach((range)=>jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.append(div, range.cloneContents()));
|
|
11522
11618
|
return div.innerHTML;
|
|
11523
11619
|
}
|
|
11524
11620
|
return '';
|
|
@@ -11531,8 +11627,7 @@ class Selection {
|
|
|
11531
11627
|
* This is a pure-DOM replacement for the old
|
|
11532
11628
|
* `nativeExecCommand('fontsize', false, '7')` trick which relied on the
|
|
11533
11629
|
* browser to split the selection into `<font size="7">` fragments.
|
|
11534
|
-
*/ __wrapSelectionFragments() {
|
|
11535
|
-
const range = this.range;
|
|
11630
|
+
*/ __wrapSelectionFragments(range) {
|
|
11536
11631
|
this.__splitSelectionBoundaries(range);
|
|
11537
11632
|
let root = range.commonAncestorContainer;
|
|
11538
11633
|
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isText(root)) {
|
|
@@ -11550,29 +11645,17 @@ class Selection {
|
|
|
11550
11645
|
*/ __splitSelectionBoundaries(range) {
|
|
11551
11646
|
var _ref, _ref1;
|
|
11552
11647
|
var _endContainer_nodeValue, _startContainer_nodeValue;
|
|
11553
|
-
|
|
11554
|
-
let { startOffset, endOffset } = range;
|
|
11648
|
+
const { endContainer, endOffset } = range;
|
|
11555
11649
|
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isText(endContainer) && endOffset > 0 && endOffset < ((_ref = (_endContainer_nodeValue = endContainer.nodeValue) === null || _endContainer_nodeValue === void 0 ? void 0 : _endContainer_nodeValue.length) !== null && _ref !== void 0 ? _ref : 0)) {
|
|
11556
|
-
var _ref2;
|
|
11557
|
-
var _endContainer_nodeValue1;
|
|
11558
11650
|
endContainer.splitText(endOffset);
|
|
11559
|
-
endOffset = (_ref2 = (_endContainer_nodeValue1 = endContainer.nodeValue) === null || _endContainer_nodeValue1 === void 0 ? void 0 : _endContainer_nodeValue1.length) !== null && _ref2 !== void 0 ? _ref2 : endOffset;
|
|
11560
11651
|
}
|
|
11652
|
+
const { startContainer, startOffset } = range;
|
|
11561
11653
|
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isText(startContainer) && startOffset > 0 && startOffset < ((_ref1 = (_startContainer_nodeValue = startContainer.nodeValue) === null || _startContainer_nodeValue === void 0 ? void 0 : _startContainer_nodeValue.length) !== null && _ref1 !== void 0 ? _ref1 : 0)) {
|
|
11562
11654
|
const middle = startContainer.splitText(startOffset);
|
|
11563
|
-
//
|
|
11564
|
-
//
|
|
11565
|
-
|
|
11566
|
-
|
|
11567
|
-
var _middle_nodeValue;
|
|
11568
|
-
endContainer = middle;
|
|
11569
|
-
endOffset = (_ref3 = (_middle_nodeValue = middle.nodeValue) === null || _middle_nodeValue === void 0 ? void 0 : _middle_nodeValue.length) !== null && _ref3 !== void 0 ? _ref3 : 0;
|
|
11570
|
-
}
|
|
11571
|
-
startContainer = middle;
|
|
11572
|
-
startOffset = 0;
|
|
11573
|
-
}
|
|
11574
|
-
range.setStart(startContainer, startOffset);
|
|
11575
|
-
range.setEnd(endContainer, endOffset);
|
|
11655
|
+
// splitText updates the live range, including element end offsets.
|
|
11656
|
+
// Only the start at the split point needs to move to the new node.
|
|
11657
|
+
range.setStart(middle, 0);
|
|
11658
|
+
}
|
|
11576
11659
|
// Normalize text-edge boundaries (e.g. `(text, 0)` or `(text, length)`)
|
|
11577
11660
|
// to the element level so that containment checks based on
|
|
11578
11661
|
// `selectNode()` treat a fully selected text node as contained.
|
|
@@ -11597,19 +11680,18 @@ class Selection {
|
|
|
11597
11680
|
/**
|
|
11598
11681
|
* Collects the highest-level nodes that are completely inside the range,
|
|
11599
11682
|
* descending into nodes that are only partially selected.
|
|
11600
|
-
*/ __collectContainedNodes(root, range) {
|
|
11683
|
+
*/ __collectContainedNodes(root, range, scratch = this.createRange()) {
|
|
11601
11684
|
const result = [];
|
|
11602
11685
|
(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.toArray)(root.childNodes).forEach((child)=>{
|
|
11603
|
-
if (this.__isFullyContained(range, child)) {
|
|
11686
|
+
if (this.__isFullyContained(range, child, scratch)) {
|
|
11604
11687
|
result.push(child);
|
|
11605
11688
|
} else if (child.childNodes.length && range.intersectsNode(child)) {
|
|
11606
|
-
result.push(...this.__collectContainedNodes(child, range));
|
|
11689
|
+
result.push(...this.__collectContainedNodes(child, range, scratch));
|
|
11607
11690
|
}
|
|
11608
11691
|
});
|
|
11609
11692
|
return result;
|
|
11610
11693
|
}
|
|
11611
|
-
__isFullyContained(range, node) {
|
|
11612
|
-
const nodeRange = this.createRange();
|
|
11694
|
+
__isFullyContained(range, node, nodeRange) {
|
|
11613
11695
|
nodeRange.selectNode(node);
|
|
11614
11696
|
return range.compareBoundaryPoints(Range.START_TO_START, nodeRange) <= 0 && range.compareBoundaryPoints(Range.END_TO_END, nodeRange) >= 0;
|
|
11615
11697
|
}
|
|
@@ -11656,31 +11738,47 @@ class Selection {
|
|
|
11656
11738
|
/**
|
|
11657
11739
|
* Wrap all selected fragments inside Tag or apply some callback
|
|
11658
11740
|
*/ *wrapInTagGen(fakes) {
|
|
11741
|
+
var _this_sel;
|
|
11742
|
+
if (((_this_sel = this.sel) === null || _this_sel === void 0 ? void 0 : _this_sel.rangeCount) && !this.isInsideArea) {
|
|
11743
|
+
return;
|
|
11744
|
+
}
|
|
11659
11745
|
if (this.isCollapsed()) {
|
|
11660
11746
|
const font = this.jodit.createInside.element('font', jodit_core_constants__WEBPACK_IMPORTED_MODULE_2__.INVISIBLE_SPACE);
|
|
11661
11747
|
this.insertNode(font, false, false);
|
|
11662
11748
|
if (fakes && fakes[0]) {
|
|
11663
11749
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.append(font, fakes[0]);
|
|
11664
11750
|
}
|
|
11665
|
-
|
|
11666
|
-
|
|
11751
|
+
try {
|
|
11752
|
+
yield font;
|
|
11753
|
+
} finally{
|
|
11754
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.unwrap(font);
|
|
11755
|
+
}
|
|
11667
11756
|
return;
|
|
11668
11757
|
}
|
|
11669
|
-
const elms = this.__wrapSelectionFragments();
|
|
11670
|
-
|
|
11671
|
-
const
|
|
11672
|
-
|
|
11758
|
+
const elms = this.__ranges().flatMap((range)=>this.__wrapSelectionFragments(range));
|
|
11759
|
+
try {
|
|
11760
|
+
for (const font of elms){
|
|
11761
|
+
if (this.j.isInDestruct || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.area, font, true)) {
|
|
11762
|
+
continue;
|
|
11763
|
+
}
|
|
11764
|
+
const { firstChild, lastChild } = font;
|
|
11765
|
+
if (firstChild && firstChild === lastChild && (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_6__.isMarker)(firstChild)) {
|
|
11766
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.unwrap(font);
|
|
11767
|
+
continue;
|
|
11768
|
+
}
|
|
11769
|
+
if (firstChild && (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_6__.isMarker)(firstChild)) {
|
|
11770
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.before(font, firstChild);
|
|
11771
|
+
}
|
|
11772
|
+
if (lastChild && (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_6__.isMarker)(lastChild)) {
|
|
11773
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.after(font, lastChild);
|
|
11774
|
+
}
|
|
11775
|
+
yield font;
|
|
11673
11776
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.unwrap(font);
|
|
11674
|
-
continue;
|
|
11675
|
-
}
|
|
11676
|
-
if (firstChild && (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_6__.isMarker)(firstChild)) {
|
|
11677
|
-
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.before(font, firstChild);
|
|
11678
11777
|
}
|
|
11679
|
-
|
|
11680
|
-
|
|
11681
|
-
|
|
11682
|
-
|
|
11683
|
-
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.unwrap(font);
|
|
11778
|
+
} finally{
|
|
11779
|
+
// A callback can throw or stop iteration before later wrappers
|
|
11780
|
+
// have been visited. None of the temporary fonts should survive.
|
|
11781
|
+
elms.forEach((font)=>jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.unwrap(font));
|
|
11684
11782
|
}
|
|
11685
11783
|
return;
|
|
11686
11784
|
}
|
|
@@ -11733,7 +11831,7 @@ class Selection {
|
|
|
11733
11831
|
/**
|
|
11734
11832
|
* Split selection on two parts: left and right
|
|
11735
11833
|
*/ splitSelection(currentBox, edge) {
|
|
11736
|
-
if (!this.isCollapsed()) {
|
|
11834
|
+
if (!this.isCollapsed() || !this.isInsideArea || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.area, currentBox, true) || !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(currentBox, this.range.startContainer) || edge && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(currentBox, edge, true)) {
|
|
11737
11835
|
return null;
|
|
11738
11836
|
}
|
|
11739
11837
|
const leftRange = this.createRange();
|
|
@@ -11812,13 +11910,18 @@ class Selection {
|
|
|
11812
11910
|
* edge of their parents are moved out of them (e.g. `<p><b>|test|</b></p>`
|
|
11813
11911
|
* becomes `<p>|<b>test</b>|</p>`)
|
|
11814
11912
|
*/ expandSelection() {
|
|
11815
|
-
if (this.isCollapsed()) {
|
|
11913
|
+
if (this.isCollapsed() || !this.isInsideArea) {
|
|
11816
11914
|
return this;
|
|
11817
11915
|
}
|
|
11818
|
-
const
|
|
11916
|
+
const backward = this.__isBackward();
|
|
11917
|
+
const ranges = this.__ranges().map((range)=>this.__expandRange(range));
|
|
11918
|
+
this.__selectRanges(ranges, backward);
|
|
11919
|
+
return this;
|
|
11920
|
+
}
|
|
11921
|
+
__expandRange(range) {
|
|
11819
11922
|
const c = range.cloneRange();
|
|
11820
11923
|
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(this.j.editor, range.commonAncestorContainer, true)) {
|
|
11821
|
-
return
|
|
11924
|
+
return range;
|
|
11822
11925
|
}
|
|
11823
11926
|
const moveMaxEdgeFake = (start)=>{
|
|
11824
11927
|
const fake = this.j.createInside.fake();
|
|
@@ -11855,16 +11958,17 @@ class Selection {
|
|
|
11855
11958
|
}
|
|
11856
11959
|
}
|
|
11857
11960
|
}
|
|
11858
|
-
this.selectRange(c);
|
|
11859
11961
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(leftFake, rightFake);
|
|
11860
|
-
if (
|
|
11962
|
+
if (c.collapsed) {
|
|
11861
11963
|
throw (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_5__.error)('Selection is collapsed');
|
|
11862
11964
|
}
|
|
11863
|
-
return
|
|
11965
|
+
return c;
|
|
11864
11966
|
}
|
|
11865
11967
|
constructor(jodit){
|
|
11866
11968
|
;(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "jodit", void 0);
|
|
11969
|
+
(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__fakeSelections", void 0);
|
|
11867
11970
|
this.jodit = jodit;
|
|
11971
|
+
this.__fakeSelections = new WeakMap();
|
|
11868
11972
|
jodit.e.on('removeMarkers', ()=>{
|
|
11869
11973
|
this.removeMarkers();
|
|
11870
11974
|
});
|
|
@@ -11898,8 +12002,7 @@ class Selection {
|
|
|
11898
12002
|
/* harmony export */ });
|
|
11899
12003
|
/* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23211);
|
|
11900
12004
|
/* harmony import */ var jodit_core_helpers_checker_is_marker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23175);
|
|
11901
|
-
/* harmony import */ var
|
|
11902
|
-
/* harmony import */ var jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71125);
|
|
12005
|
+
/* harmony import */ var jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71125);
|
|
11903
12006
|
/*!
|
|
11904
12007
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
11905
12008
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -11907,7 +12010,6 @@ class Selection {
|
|
|
11907
12010
|
*/
|
|
11908
12011
|
|
|
11909
12012
|
|
|
11910
|
-
|
|
11911
12013
|
/**
|
|
11912
12014
|
* If the selection area is inside an element that matches the commit (suitable relative),
|
|
11913
12015
|
* but does not completely fill it.
|
|
@@ -11941,11 +12043,11 @@ class Selection {
|
|
|
11941
12043
|
* @private
|
|
11942
12044
|
*/ function extractAndMove(wrapper, range, left) {
|
|
11943
12045
|
const fragment = range.extractContents();
|
|
11944
|
-
if (
|
|
12046
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(fragment) && fragment.firstChild) {
|
|
11945
12047
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.unwrap(fragment.firstChild);
|
|
11946
12048
|
}
|
|
11947
12049
|
if (wrapper.parentNode) {
|
|
11948
|
-
(0,
|
|
12050
|
+
(0,jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_2__.call)(left ? jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.before : jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.after, wrapper, fragment);
|
|
11949
12051
|
}
|
|
11950
12052
|
}
|
|
11951
12053
|
|
|
@@ -12329,12 +12431,15 @@ if (jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument) {
|
|
|
12329
12431
|
;(0,jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_2__.assert)(attrs, 'Attrs must be a non-empty object');
|
|
12330
12432
|
return Object.keys(attrs).every((key)=>{
|
|
12331
12433
|
if (key === 'class' || key === 'className') {
|
|
12332
|
-
|
|
12434
|
+
var _String_match;
|
|
12435
|
+
const classes = (_String_match = String(attrs[key]).match(/[^\t\n\f\r ]+/g)) !== null && _String_match !== void 0 ? _String_match : [];
|
|
12436
|
+
return classes.every((name)=>elm.classList.contains(name));
|
|
12333
12437
|
}
|
|
12334
12438
|
if (key === 'style') {
|
|
12335
12439
|
return (0,_has_same_style__WEBPACK_IMPORTED_MODULE_4__.hasSameStyle)(elm, attrs[key]);
|
|
12336
12440
|
}
|
|
12337
|
-
|
|
12441
|
+
const value = attrs[key];
|
|
12442
|
+
return (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, key) === (value == null ? value : String(value));
|
|
12338
12443
|
});
|
|
12339
12444
|
}
|
|
12340
12445
|
function elementsEqualAttributes(elm1, elm2) {
|
|
@@ -12351,10 +12456,12 @@ function elementsEqualAttributes(elm1, elm2) {
|
|
|
12351
12456
|
|
|
12352
12457
|
"use strict";
|
|
12353
12458
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
12354
|
-
/* harmony export */ isSameStyleChild: function() { return /* binding */ isSameStyleChild; },
|
|
12355
12459
|
/* harmony export */ isSuitElement: function() { return /* binding */ isSuitElement; },
|
|
12356
12460
|
/* harmony export */ suitableClosest: function() { return /* binding */ suitableClosest; }
|
|
12357
12461
|
/* harmony export */ });
|
|
12462
|
+
/* unused harmony export isSameStyleChild */
|
|
12463
|
+
/* unused harmony import specifier */ var hasSameStyleKeys;
|
|
12464
|
+
/* unused harmony import specifier */ var isNormalNode;
|
|
12358
12465
|
/* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23211);
|
|
12359
12466
|
/* harmony import */ var _has_same_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9703);
|
|
12360
12467
|
/* harmony import */ var _is_normal_node__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83653);
|
|
@@ -12412,11 +12519,11 @@ function elementsEqualAttributes(elm1, elm2) {
|
|
|
12412
12519
|
*/ function isSameStyleChild(commitStyle, elm) {
|
|
12413
12520
|
var _options_attributes, _options_attributes1;
|
|
12414
12521
|
const { element, options } = commitStyle;
|
|
12415
|
-
if (!elm || !
|
|
12522
|
+
if (!elm || !isNormalNode(elm)) {
|
|
12416
12523
|
return false;
|
|
12417
12524
|
}
|
|
12418
12525
|
const elmIsSame = elm.nodeName.toLowerCase() === element;
|
|
12419
|
-
const elmHasSameStyle = Boolean(((_options_attributes = options.attributes) === null || _options_attributes === void 0 ? void 0 : _options_attributes.style) &&
|
|
12526
|
+
const elmHasSameStyle = Boolean(((_options_attributes = options.attributes) === null || _options_attributes === void 0 ? void 0 : _options_attributes.style) && hasSameStyleKeys(elm, (_options_attributes1 = options.attributes) === null || _options_attributes1 === void 0 ? void 0 : _options_attributes1.style));
|
|
12420
12527
|
return elmIsSame && elmHasSameStyle;
|
|
12421
12528
|
}
|
|
12422
12529
|
|
|
@@ -12597,7 +12704,7 @@ const tak = 'toggleAttributes';
|
|
|
12597
12704
|
switch(key){
|
|
12598
12705
|
case 'style':
|
|
12599
12706
|
{
|
|
12600
|
-
mode = toggleStyle(
|
|
12707
|
+
mode = toggleStyle(jodit, value, elm, dry, mode);
|
|
12601
12708
|
break;
|
|
12602
12709
|
}
|
|
12603
12710
|
case 'className':
|
|
@@ -12609,9 +12716,11 @@ const tak = 'toggleAttributes';
|
|
|
12609
12716
|
}
|
|
12610
12717
|
});
|
|
12611
12718
|
}
|
|
12612
|
-
|
|
12719
|
+
// Cleanup belongs to the complete attribute transaction. Removing a
|
|
12720
|
+
// wrapper between CSS rules would apply the remaining rules to a detached node.
|
|
12721
|
+
return !dry && (attributes === null || attributes === void 0 ? void 0 : attributes.style) ? removeExtraStyleAttribute(commitStyle, elm, mode) : mode;
|
|
12613
12722
|
}
|
|
12614
|
-
function toggleStyle(
|
|
12723
|
+
function toggleStyle(jodit, style, elm, dry, mode) {
|
|
12615
12724
|
;(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.assert)((0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_3__.isPlainObject)(style) && (0,jodit_core_helpers_size_object_size__WEBPACK_IMPORTED_MODULE_5__.size)(style), 'Style must be an object');
|
|
12616
12725
|
Object.keys(style).forEach((rule)=>{
|
|
12617
12726
|
const inlineValue = (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_7__.cssInline)(elm, rule);
|
|
@@ -12619,39 +12728,51 @@ function toggleStyle(commitStyle, jodit, style, elm, dry, mode) {
|
|
|
12619
12728
|
if (inlineValue === '' && newValue == null) {
|
|
12620
12729
|
return;
|
|
12621
12730
|
}
|
|
12731
|
+
if (newValue == null || newValue === '') {
|
|
12732
|
+
if (inlineValue) {
|
|
12733
|
+
!dry && (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_7__.css)(elm, rule, null);
|
|
12734
|
+
// An explicit reset changes a style; it is not a toggle of
|
|
12735
|
+
// the owning element (notably when resetting list-style-type).
|
|
12736
|
+
mode = (/* inlined export .CHANGE */"change");
|
|
12737
|
+
}
|
|
12738
|
+
return;
|
|
12739
|
+
}
|
|
12622
12740
|
if (getNativeCSSValue(jodit, elm, rule) === (0,jodit_core_helpers_normalize_normalize_css_value__WEBPACK_IMPORTED_MODULE_4__.normalizeCssValue)(rule, newValue)) {
|
|
12623
12741
|
if (!inlineValue) {
|
|
12624
12742
|
return;
|
|
12625
12743
|
}
|
|
12626
12744
|
!dry && (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_7__.css)(elm, rule, null);
|
|
12627
12745
|
mode = (/* inlined export .UNSET */"unset");
|
|
12628
|
-
mode = removeExtraStyleAttribute(commitStyle, elm, mode);
|
|
12629
12746
|
return;
|
|
12630
12747
|
}
|
|
12631
12748
|
mode = (/* inlined export .CHANGE */"change");
|
|
12632
12749
|
if (!dry) {
|
|
12633
12750
|
(0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_7__.css)(elm, rule, newValue);
|
|
12634
|
-
mode = removeExtraStyleAttribute(commitStyle, elm, mode);
|
|
12635
12751
|
}
|
|
12636
12752
|
});
|
|
12637
12753
|
return mode;
|
|
12638
12754
|
}
|
|
12639
12755
|
function toggleClass(jodit, value, elm, mode, dry) {
|
|
12640
|
-
|
|
12756
|
+
var _value_match;
|
|
12757
|
+
(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.assert)((0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_3__.isString)(value), 'Class name must be a string');
|
|
12758
|
+
const classes = (_value_match = value.match(/[^\t\n\f\r ]+/g)) !== null && _value_match !== void 0 ? _value_match : [];
|
|
12759
|
+
if (!classes.length) {
|
|
12760
|
+
return mode;
|
|
12761
|
+
}
|
|
12641
12762
|
const hook = jodit.e.fire.bind(jodit.e, `${jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__._PREFIX}AfterToggleAttribute`);
|
|
12642
|
-
if (elm.classList.contains(
|
|
12763
|
+
if (classes.every((name)=>elm.classList.contains(name))) {
|
|
12643
12764
|
mode = (/* inlined export .UNSET */"unset");
|
|
12644
12765
|
if (!dry) {
|
|
12645
|
-
elm.classList.remove(
|
|
12766
|
+
elm.classList.remove(...classes);
|
|
12646
12767
|
if (elm.classList.length === 0) {
|
|
12647
12768
|
(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.attr)(elm, 'class', null);
|
|
12648
|
-
hook(mode, elm, 'class', null);
|
|
12649
12769
|
}
|
|
12770
|
+
hook(mode, elm, 'class', (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.attr)(elm, 'class'));
|
|
12650
12771
|
}
|
|
12651
12772
|
} else {
|
|
12652
12773
|
mode = (/* inlined export .CHANGE */"change");
|
|
12653
12774
|
if (!dry) {
|
|
12654
|
-
elm.classList.add(
|
|
12775
|
+
elm.classList.add(...classes);
|
|
12655
12776
|
hook(mode, elm, 'class', value);
|
|
12656
12777
|
}
|
|
12657
12778
|
}
|
|
@@ -12681,7 +12802,7 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12681
12802
|
*/ function removeExtraStyleAttribute(commitStyle, elm, mode) {
|
|
12682
12803
|
if (!(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.attr)(elm, 'style')) {
|
|
12683
12804
|
(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_6__.attr)(elm, 'style', null);
|
|
12684
|
-
if (elm.tagName.toLowerCase() === commitStyle.defaultTag) {
|
|
12805
|
+
if (!elm.attributes.length && elm.tagName.toLowerCase() === commitStyle.defaultTag) {
|
|
12685
12806
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(elm);
|
|
12686
12807
|
mode = (/* inlined export .UNWRAP */"unwrap");
|
|
12687
12808
|
}
|
|
@@ -12760,38 +12881,42 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12760
12881
|
const needChangeStyle = [];
|
|
12761
12882
|
let firstElementSuit;
|
|
12762
12883
|
const cssStyle = (_style_options_attributes = style.options.attributes) === null || _style_options_attributes === void 0 ? void 0 : _style_options_attributes.style;
|
|
12763
|
-
|
|
12764
|
-
|
|
12765
|
-
|
|
12766
|
-
|
|
12767
|
-
|
|
12768
|
-
|
|
12769
|
-
|
|
12770
|
-
|
|
12771
|
-
|
|
12884
|
+
const styleKeys = Object.keys(cssStyle !== null && cssStyle !== void 0 ? cssStyle : {});
|
|
12885
|
+
const clearedStyle = {};
|
|
12886
|
+
styleKeys.forEach((key)=>{
|
|
12887
|
+
clearedStyle[key] = null;
|
|
12888
|
+
});
|
|
12889
|
+
const clearStyle = (elm)=>{
|
|
12890
|
+
(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.css)(elm, clearedStyle);
|
|
12891
|
+
if (!(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'style')) {
|
|
12892
|
+
(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'style', null);
|
|
12893
|
+
}
|
|
12894
|
+
if (!elm.attributes.length && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(elm, style.element)) {
|
|
12895
|
+
needUnwrap.push(elm);
|
|
12896
|
+
}
|
|
12897
|
+
};
|
|
12898
|
+
for (const elm of jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.eachGen(font)){
|
|
12899
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isContentEditable(elm, font)) {
|
|
12900
|
+
continue;
|
|
12901
|
+
}
|
|
12902
|
+
if ((0,_is_suit_element__WEBPACK_IMPORTED_MODULE_3__.isSuitElement)(style, elm, true) && (!cssStyle || (0,jodit_core_selection_style_api_has_same_style__WEBPACK_IMPORTED_MODULE_2__.hasSameStyleKeys)(elm, cssStyle))) {
|
|
12903
|
+
if (firstElementSuit === undefined) {
|
|
12904
|
+
firstElementSuit = true;
|
|
12905
|
+
}
|
|
12906
|
+
if (cssStyle) {
|
|
12907
|
+
needChangeStyle.push(()=>clearStyle(elm));
|
|
12908
|
+
} else {
|
|
12772
12909
|
needUnwrap.push(elm);
|
|
12773
|
-
} else if (cssStyle && (0,_is_suit_element__WEBPACK_IMPORTED_MODULE_3__.isSameStyleChild)(style, elm)) {
|
|
12774
|
-
if (firstElementSuit === undefined) {
|
|
12775
|
-
firstElementSuit = false;
|
|
12776
|
-
}
|
|
12777
|
-
needChangeStyle.push(()=>{
|
|
12778
|
-
;(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.css)(elm, Object.keys(cssStyle).reduce((acc, key)=>{
|
|
12779
|
-
acc[key] = null;
|
|
12780
|
-
return acc;
|
|
12781
|
-
}, {}));
|
|
12782
|
-
if (!(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'style')) {
|
|
12783
|
-
(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'style', null);
|
|
12784
|
-
}
|
|
12785
|
-
if (!(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'style') && elm.nodeName.toLowerCase() === style.element) {
|
|
12786
|
-
needUnwrap.push(elm);
|
|
12787
|
-
}
|
|
12788
|
-
});
|
|
12789
|
-
} else if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmptyTextNode(elm)) {
|
|
12790
|
-
if (firstElementSuit === undefined) {
|
|
12791
|
-
firstElementSuit = false;
|
|
12792
|
-
}
|
|
12793
12910
|
}
|
|
12794
|
-
|
|
12911
|
+
} else if (cssStyle && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isHTMLElement(elm) && styleKeys.some((key)=>(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.css)(elm, key, true) !== '')) {
|
|
12912
|
+
if (firstElementSuit === undefined) {
|
|
12913
|
+
firstElementSuit = false;
|
|
12914
|
+
}
|
|
12915
|
+
needChangeStyle.push(()=>clearStyle(elm));
|
|
12916
|
+
} else if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmptyTextNode(elm)) {
|
|
12917
|
+
if (firstElementSuit === undefined) {
|
|
12918
|
+
firstElementSuit = false;
|
|
12919
|
+
}
|
|
12795
12920
|
}
|
|
12796
12921
|
}
|
|
12797
12922
|
needChangeStyle.forEach((clb)=>clb());
|
|
@@ -12961,37 +13086,34 @@ const WRAP_NODES = new Set([
|
|
|
12961
13086
|
|
|
12962
13087
|
|
|
12963
13088
|
/** @internal */ function ApplyStyle(jodit, cs) {
|
|
12964
|
-
var
|
|
12965
|
-
_editor_firstChild;
|
|
13089
|
+
var _editor_firstChild;
|
|
12966
13090
|
const { s: sel, editor } = jodit;
|
|
12967
13091
|
(_editor_firstChild = editor.firstChild) === null || _editor_firstChild === void 0 ? void 0 : _editor_firstChild.normalize(); // FF fix for test "commandsTest - Exec command "bold"
|
|
12968
13092
|
const fakes = sel.fakes();
|
|
12969
|
-
const
|
|
12970
|
-
let
|
|
12971
|
-
|
|
12972
|
-
|
|
12973
|
-
|
|
12974
|
-
|
|
12975
|
-
|
|
12976
|
-
|
|
12977
|
-
|
|
12978
|
-
|
|
12979
|
-
|
|
12980
|
-
|
|
12981
|
-
|
|
12982
|
-
|
|
12983
|
-
|
|
12984
|
-
|
|
12985
|
-
|
|
12986
|
-
|
|
12987
|
-
//
|
|
12988
|
-
|
|
13093
|
+
const collapsed = sel.isCollapsed();
|
|
13094
|
+
let mode = _constants__WEBPACK_IMPORTED_MODULE_1__.INITIAL;
|
|
13095
|
+
try {
|
|
13096
|
+
// for...of closes the generator on an exception, releasing every
|
|
13097
|
+
// temporary wrapper before the selection is restored in finally.
|
|
13098
|
+
for (const font of sel.wrapInTagGen(fakes)){
|
|
13099
|
+
let state = {
|
|
13100
|
+
collapsed,
|
|
13101
|
+
mode,
|
|
13102
|
+
element: font,
|
|
13103
|
+
next: _transactions__WEBPACK_IMPORTED_MODULE_2__.states.START,
|
|
13104
|
+
jodit,
|
|
13105
|
+
style: cs
|
|
13106
|
+
};
|
|
13107
|
+
const machine = new _api__WEBPACK_IMPORTED_MODULE_0__.FiniteStateMachine(_transactions__WEBPACK_IMPORTED_MODULE_2__.states.START, _transactions__WEBPACK_IMPORTED_MODULE_2__.transactions);
|
|
13108
|
+
while(!jodit.isInDestruct && machine.getState() !== _transactions__WEBPACK_IMPORTED_MODULE_2__.states.END){
|
|
13109
|
+
state = machine.dispatch('exec', state);
|
|
13110
|
+
}
|
|
13111
|
+
// The first selected fragment determines how later fragments toggle.
|
|
13112
|
+
mode = state.mode;
|
|
12989
13113
|
}
|
|
12990
|
-
|
|
12991
|
-
|
|
13114
|
+
} finally{
|
|
13115
|
+
sel.restoreFakes(fakes);
|
|
12992
13116
|
}
|
|
12993
|
-
// sel.restore();
|
|
12994
|
-
sel.restoreFakes(fakes);
|
|
12995
13117
|
}
|
|
12996
13118
|
|
|
12997
13119
|
|
|
@@ -13073,6 +13195,9 @@ class CommitStyle {
|
|
|
13073
13195
|
});
|
|
13074
13196
|
this.__applyMap = new WeakMap();
|
|
13075
13197
|
}
|
|
13198
|
+
if (jodit.isInDestruct) {
|
|
13199
|
+
return;
|
|
13200
|
+
}
|
|
13076
13201
|
jodit.synchronizeValues();
|
|
13077
13202
|
jodit.e.fire('afterCommitStyle', this);
|
|
13078
13203
|
}
|
|
@@ -13156,7 +13281,7 @@ const transactions = {
|
|
|
13156
13281
|
[states.START]: {
|
|
13157
13282
|
exec (value) {
|
|
13158
13283
|
const { element, jodit, style, mode, collapsed } = value;
|
|
13159
|
-
if ((0,jodit_core_selection_style_api__WEBPACK_IMPORTED_MODULE_5__.isInsideInvisibleElement)(element, jodit.editor) || !collapsed && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isEmptyContent(element)) {
|
|
13284
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isContentEditable(element, jodit.editor) || (0,jodit_core_selection_style_api__WEBPACK_IMPORTED_MODULE_5__.isInsideInvisibleElement)(element, jodit.editor) || !collapsed && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isEmptyContent(element)) {
|
|
13160
13285
|
return (0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_1__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_0__._)({}, value), {
|
|
13161
13286
|
next: states.END
|
|
13162
13287
|
});
|
|
@@ -18705,32 +18830,33 @@ function addClassNames(className, elm) {
|
|
|
18705
18830
|
"use strict";
|
|
18706
18831
|
/* harmony import */ var jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17312);
|
|
18707
18832
|
/* harmony import */ var jodit_langs_ar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57741);
|
|
18708
|
-
/* harmony import */ var
|
|
18709
|
-
/* harmony import */ var
|
|
18710
|
-
/* harmony import */ var
|
|
18711
|
-
/* harmony import */ var
|
|
18712
|
-
/* harmony import */ var
|
|
18713
|
-
/* harmony import */ var
|
|
18714
|
-
/* harmony import */ var
|
|
18715
|
-
/* harmony import */ var
|
|
18716
|
-
/* harmony import */ var
|
|
18717
|
-
/* harmony import */ var
|
|
18718
|
-
/* harmony import */ var
|
|
18719
|
-
/* harmony import */ var
|
|
18720
|
-
/* harmony import */ var
|
|
18721
|
-
/* harmony import */ var
|
|
18722
|
-
/* harmony import */ var
|
|
18723
|
-
/* harmony import */ var
|
|
18724
|
-
/* harmony import */ var
|
|
18725
|
-
/* harmony import */ var
|
|
18726
|
-
/* harmony import */ var
|
|
18727
|
-
/* harmony import */ var
|
|
18728
|
-
/* harmony import */ var
|
|
18729
|
-
/* harmony import */ var
|
|
18730
|
-
/* harmony import */ var
|
|
18731
|
-
/* harmony import */ var
|
|
18732
|
-
/* harmony import */ var
|
|
18733
|
-
/* harmony import */ var
|
|
18833
|
+
/* harmony import */ var jodit_langs_az__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23717);
|
|
18834
|
+
/* harmony import */ var jodit_langs_cs_cz__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56014);
|
|
18835
|
+
/* harmony import */ var jodit_langs_de__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(95461);
|
|
18836
|
+
/* harmony import */ var jodit_langs_en__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(63837);
|
|
18837
|
+
/* harmony import */ var jodit_langs_es__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(39386);
|
|
18838
|
+
/* harmony import */ var jodit_langs_fa__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(52735);
|
|
18839
|
+
/* harmony import */ var jodit_langs_fi__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(62327);
|
|
18840
|
+
/* harmony import */ var jodit_langs_fr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(25090);
|
|
18841
|
+
/* harmony import */ var jodit_langs_he__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(53113);
|
|
18842
|
+
/* harmony import */ var jodit_langs_hu__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(81321);
|
|
18843
|
+
/* harmony import */ var jodit_langs_id__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(4679);
|
|
18844
|
+
/* harmony import */ var jodit_langs_it__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(31927);
|
|
18845
|
+
/* harmony import */ var jodit_langs_ja__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(21195);
|
|
18846
|
+
/* harmony import */ var jodit_langs_keys__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(53414);
|
|
18847
|
+
/* harmony import */ var jodit_langs_ko__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(11012);
|
|
18848
|
+
/* harmony import */ var jodit_langs_mn__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(87061);
|
|
18849
|
+
/* harmony import */ var jodit_langs_nl__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(3268);
|
|
18850
|
+
/* harmony import */ var jodit_langs_no__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(85325);
|
|
18851
|
+
/* harmony import */ var jodit_langs_pl__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(97834);
|
|
18852
|
+
/* harmony import */ var jodit_langs_pt_br__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(86433);
|
|
18853
|
+
/* harmony import */ var jodit_langs_ru__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(28359);
|
|
18854
|
+
/* harmony import */ var jodit_langs_sk__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(33872);
|
|
18855
|
+
/* harmony import */ var jodit_langs_sv__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(39579);
|
|
18856
|
+
/* harmony import */ var jodit_langs_tr__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(68368);
|
|
18857
|
+
/* harmony import */ var jodit_langs_ua__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(57456);
|
|
18858
|
+
/* harmony import */ var jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(25182);
|
|
18859
|
+
/* harmony import */ var jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(44906);
|
|
18734
18860
|
/*!
|
|
18735
18861
|
* Jodit Editor (https://xdsoft.net/jodit/)
|
|
18736
18862
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
@@ -18766,40 +18892,42 @@ function addClassNames(className, elm) {
|
|
|
18766
18892
|
|
|
18767
18893
|
|
|
18768
18894
|
|
|
18895
|
+
|
|
18769
18896
|
|
|
18770
18897
|
|
|
18771
18898
|
let exp = {};
|
|
18772
18899
|
exp = {
|
|
18773
18900
|
ar: jodit_langs_ar__WEBPACK_IMPORTED_MODULE_1__,
|
|
18774
|
-
|
|
18775
|
-
|
|
18776
|
-
|
|
18777
|
-
|
|
18778
|
-
|
|
18779
|
-
|
|
18780
|
-
|
|
18781
|
-
|
|
18782
|
-
|
|
18783
|
-
|
|
18784
|
-
|
|
18785
|
-
|
|
18786
|
-
|
|
18787
|
-
|
|
18788
|
-
|
|
18789
|
-
|
|
18790
|
-
|
|
18791
|
-
|
|
18792
|
-
|
|
18793
|
-
|
|
18794
|
-
|
|
18795
|
-
|
|
18796
|
-
|
|
18797
|
-
|
|
18798
|
-
|
|
18901
|
+
az: jodit_langs_az__WEBPACK_IMPORTED_MODULE_2__,
|
|
18902
|
+
cs_cz: jodit_langs_cs_cz__WEBPACK_IMPORTED_MODULE_3__,
|
|
18903
|
+
de: jodit_langs_de__WEBPACK_IMPORTED_MODULE_4__,
|
|
18904
|
+
en: jodit_langs_en__WEBPACK_IMPORTED_MODULE_5__,
|
|
18905
|
+
es: jodit_langs_es__WEBPACK_IMPORTED_MODULE_6__,
|
|
18906
|
+
fa: jodit_langs_fa__WEBPACK_IMPORTED_MODULE_7__,
|
|
18907
|
+
fi: jodit_langs_fi__WEBPACK_IMPORTED_MODULE_8__,
|
|
18908
|
+
fr: jodit_langs_fr__WEBPACK_IMPORTED_MODULE_9__,
|
|
18909
|
+
he: jodit_langs_he__WEBPACK_IMPORTED_MODULE_10__,
|
|
18910
|
+
hu: jodit_langs_hu__WEBPACK_IMPORTED_MODULE_11__,
|
|
18911
|
+
id: jodit_langs_id__WEBPACK_IMPORTED_MODULE_12__,
|
|
18912
|
+
it: jodit_langs_it__WEBPACK_IMPORTED_MODULE_13__,
|
|
18913
|
+
ja: jodit_langs_ja__WEBPACK_IMPORTED_MODULE_14__,
|
|
18914
|
+
ko: jodit_langs_ko__WEBPACK_IMPORTED_MODULE_16__,
|
|
18915
|
+
mn: jodit_langs_mn__WEBPACK_IMPORTED_MODULE_17__,
|
|
18916
|
+
nl: jodit_langs_nl__WEBPACK_IMPORTED_MODULE_18__,
|
|
18917
|
+
no: jodit_langs_no__WEBPACK_IMPORTED_MODULE_19__,
|
|
18918
|
+
pl: jodit_langs_pl__WEBPACK_IMPORTED_MODULE_20__,
|
|
18919
|
+
pt_br: jodit_langs_pt_br__WEBPACK_IMPORTED_MODULE_21__,
|
|
18920
|
+
ru: jodit_langs_ru__WEBPACK_IMPORTED_MODULE_22__,
|
|
18921
|
+
sk: jodit_langs_sk__WEBPACK_IMPORTED_MODULE_23__,
|
|
18922
|
+
sv: jodit_langs_sv__WEBPACK_IMPORTED_MODULE_24__,
|
|
18923
|
+
tr: jodit_langs_tr__WEBPACK_IMPORTED_MODULE_25__,
|
|
18924
|
+
ua: jodit_langs_ua__WEBPACK_IMPORTED_MODULE_26__,
|
|
18925
|
+
zh_cn: jodit_langs_zh_cn__WEBPACK_IMPORTED_MODULE_27__,
|
|
18926
|
+
zh_tw: jodit_langs_zh_tw__WEBPACK_IMPORTED_MODULE_28__
|
|
18799
18927
|
};
|
|
18800
18928
|
/* Unpack array to hash */ const get = (value)=>value ? value.default || value : {}, hashLang = {};
|
|
18801
|
-
if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_0__.isArray)(get(
|
|
18802
|
-
get(
|
|
18929
|
+
if ((0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_0__.isArray)(get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_15__))) {
|
|
18930
|
+
get(jodit_langs_keys__WEBPACK_IMPORTED_MODULE_15__).forEach((key, index)=>{
|
|
18803
18931
|
hashLang[index] = key;
|
|
18804
18932
|
});
|
|
18805
18933
|
}
|
|
@@ -22094,7 +22222,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.history = {
|
|
|
22094
22222
|
* @param first - the first snapshote
|
|
22095
22223
|
* @param second - second shot
|
|
22096
22224
|
*/ static equal(first, second) {
|
|
22097
|
-
return first.html === second.html && JSON.stringify(first.range) === JSON.stringify(second.range);
|
|
22225
|
+
return first.html === second.html && JSON.stringify(first.range) === JSON.stringify(second.range) && JSON.stringify(first.ranges) === JSON.stringify(second.ranges) && Boolean(first.backward) === Boolean(second.backward);
|
|
22098
22226
|
}
|
|
22099
22227
|
/**
|
|
22100
22228
|
* Calc count element before some node in parentNode. All text nodes are joined
|
|
@@ -22188,22 +22316,31 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.history = {
|
|
|
22188
22316
|
snapshot.html = this.__getCleanedEditorValue(this.j.editor);
|
|
22189
22317
|
const sel = this.j.s.sel;
|
|
22190
22318
|
if (sel && sel.rangeCount) {
|
|
22191
|
-
const
|
|
22192
|
-
|
|
22193
|
-
|
|
22194
|
-
|
|
22195
|
-
|
|
22196
|
-
startOffset =
|
|
22197
|
-
|
|
22198
|
-
|
|
22199
|
-
|
|
22200
|
-
|
|
22201
|
-
|
|
22202
|
-
|
|
22203
|
-
|
|
22204
|
-
|
|
22205
|
-
|
|
22206
|
-
|
|
22319
|
+
const ranges = [];
|
|
22320
|
+
for(let i = 0; i < sel.rangeCount; i += 1){
|
|
22321
|
+
const range = sel.getRangeAt(i);
|
|
22322
|
+
const startContainer = this.calcHierarchyLadder(range.startContainer);
|
|
22323
|
+
const endContainer = this.calcHierarchyLadder(range.endContainer);
|
|
22324
|
+
let startOffset = Snapshot.strokeOffset(range.startContainer, range.startOffset), endOffset = Snapshot.strokeOffset(range.endContainer, range.endOffset);
|
|
22325
|
+
if (!startContainer.length && range.startContainer !== this.j.editor) {
|
|
22326
|
+
startOffset = 0;
|
|
22327
|
+
}
|
|
22328
|
+
if (!endContainer.length && range.endContainer !== this.j.editor) {
|
|
22329
|
+
endOffset = 0;
|
|
22330
|
+
}
|
|
22331
|
+
ranges.push({
|
|
22332
|
+
startContainer,
|
|
22333
|
+
startOffset,
|
|
22334
|
+
endContainer,
|
|
22335
|
+
endOffset
|
|
22336
|
+
});
|
|
22337
|
+
}
|
|
22338
|
+
snapshot.range = ranges[0];
|
|
22339
|
+
if (ranges.length > 1) {
|
|
22340
|
+
snapshot.ranges = ranges;
|
|
22341
|
+
} else if (!sel.isCollapsed && sel.anchorNode === sel.getRangeAt(0).endContainer && sel.anchorOffset === sel.getRangeAt(0).endOffset) {
|
|
22342
|
+
snapshot.backward = true;
|
|
22343
|
+
}
|
|
22207
22344
|
}
|
|
22208
22345
|
return snapshot;
|
|
22209
22346
|
}
|
|
@@ -22242,10 +22379,22 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.history = {
|
|
|
22242
22379
|
*/ restoreOnlySelection(snapshot) {
|
|
22243
22380
|
try {
|
|
22244
22381
|
if (snapshot.range) {
|
|
22245
|
-
|
|
22246
|
-
|
|
22247
|
-
|
|
22248
|
-
|
|
22382
|
+
var _snapshot_ranges;
|
|
22383
|
+
const ranges = ((_snapshot_ranges = snapshot.ranges) !== null && _snapshot_ranges !== void 0 ? _snapshot_ranges : [
|
|
22384
|
+
snapshot.range
|
|
22385
|
+
]).map((saved)=>{
|
|
22386
|
+
const range = this.j.ed.createRange();
|
|
22387
|
+
range.setStart(this.getElementByLadder(saved.startContainer), saved.startOffset);
|
|
22388
|
+
range.setEnd(this.getElementByLadder(saved.endContainer), saved.endOffset);
|
|
22389
|
+
return range;
|
|
22390
|
+
});
|
|
22391
|
+
this.j.s.selectRange(ranges[0]);
|
|
22392
|
+
const sel = this.j.s.sel;
|
|
22393
|
+
ranges.slice(1).forEach((range)=>sel === null || sel === void 0 ? void 0 : sel.addRange(range));
|
|
22394
|
+
if (snapshot.backward && ranges.length === 1) {
|
|
22395
|
+
const range = ranges[0];
|
|
22396
|
+
sel === null || sel === void 0 ? void 0 : sel.setBaseAndExtent(range.endContainer, range.endOffset, range.startContainer, range.startOffset);
|
|
22397
|
+
}
|
|
22249
22398
|
}
|
|
22250
22399
|
} catch (__ignore) {
|
|
22251
22400
|
this.j.editor.lastChild && this.j.s.setCursorAfter(this.j.editor.lastChild);
|
|
@@ -45190,6 +45339,13 @@ module.exports["default"] = ["URL","--غير مضبوط--","حول جوديت","
|
|
|
45190
45339
|
|
|
45191
45340
|
/***/ }),
|
|
45192
45341
|
|
|
45342
|
+
/***/ 23717:
|
|
45343
|
+
/***/ (function(module) {
|
|
45344
|
+
|
|
45345
|
+
module.exports["default"] = ["URL","--Təyin edilməyib--","Jodit haqqında","Sütun əlavə et","Qovluq əlavə et","Sətir əlavə et","Ətraflı","Düzləndirmə","Ortaya düzləndir","Enə görə düzləndir","Sola düzləndir","Sağa düzləndir","Hamısını seç","Alternativ mətn","Alternativ mətn","Lövbər","Tətbiq et","Əminsiniz?","Arxa fon","Qalın","Haşiyə","Haşiyə radiusu","Aşağı","Fasilə","Seç","Tam versiyanı satın al","Ləğv et","Mərkəz","Rejimi dəyiş","Simvol: %d","Yerləşdiriləcək məzmunu seçin","Dairə",null,"CSS Klasları","Təmizlə","Formatlamanı təmizlə","Kod","Seçimi kopyala","Copyright © XDSoft.net - Chupurnov Valeriy. Bütün hüquqlar qorunur.","Qovluq yarat","Kəs","Seçimi kəs","Girintini azalt","Standart","Sil","Sütunu sil","Sətri sil","Cədvəli sil","Nöqtə","Faylı buraya buraxın","Şəkli buraya buraxın","Redaktə et",null,"Keçidi redaktə et","Kodu daxil et","Xananı boşalt","Qovluq adını daxil edin","Yeni ad daxil edin","Qovluqların yüklənməsində xəta","Siyahının yüklənməsində xəta","Bax","Fayl brauzeri","Doldurma rəngini və ya mətn rəngini təyin et","Süzgəc","Tap","Növbətini tap","Əvvəlkini tap","Şrift ailəsi","Şrift ölçüsü","Lisenziya haqqında məlumat üçün veb saytımıza daxil olun:",null,"Başlıq 1","Başlıq 2","Başlıq 3","Başlıq 4","Hündürlük","Üfüqi düzləndirmə","Şəkil","Şəkil xassələri","Girintini artır","Əlavə et","Üfüqi xətt əlavə et","Şəkil əlavə et","Nömrələnmiş siyahı əlavə et","Xüsusi simvol əlavə et","Nizamsız siyahı əlavə et","Mətn kimi əlavə et","className (CSS) əlavə et","Sonrasına sütun əlavə et","Əvvəlinə sütun əlavə et","Fayl əlavə et","Format bloku əlavə et","Keçid əlavə et","Yalnız mətni əlavə et","Yuxarıya sətir əlavə et","Aşağıya sətir əlavə et","Cədvəl əlavə et","Youtube/vimeo video əlavə et",null,"Kursiv","Jodit Redaktoru","Jodit istifadəçi bələdçisi","Saxla","Nisbəti saxla","Sol","Lisenziya: %s","Sətir hündürlüyü","Keçid",null,"Kiçik hərflər","Yunan hərfləri","Kiçik Roma rəqəmləri","Kənar boşluqlar","Birləşdir","Orta","Xeyr","Nofollow atributu","Normal","OK","Tam ölçüdə aç","Yeni vərəqdə aç","Keçidi aç","Keçidi yeni vərəqdə aç","Format fırçası","Yerləşdir","HTML kimi yerləşdir","Mübadilə buferindən yerləşdir","Zəhmət olmasa veb ünvan daxil edin","Zəhmət olmasa bu xananı doldurun","Fərdi ölçüləndirmə üçün Alt düyməsini basın",null,"Kvadrat","Sitat","Təkrarla","Çıxar",null,"Adını dəyiş","Əvəz et","Bununla əvəz et","Sıfırla","Ölçüsünü dəyiş","Sağ","Yadda saxla","Fərqli yadda saxla...","Axtar","Seç","Seç: %s","Xüsusi simvol seç","Hamısını seç",null,"Hamısını göstər","Dəyişməyə görə sırala","Ada görə sırala","Ölçüyə görə sırala",null,"Nitqin tanınması","Orfoqrafiya yoxlaması","Böl","Üfüqi böl","Şaquli böl","Mənbə","Üstündən xətt çək","Üslublar","Mətn","Şəkil serverə uğurla yükləndi!","Yerləşdirdiyiniz məzmun Microsoft Word/Excel sənədindəndir. Formatı saxlamaq, yoxsa təmizləmək istəyirsiniz?","Bu qovluqda fayl yoxdur.",null,"Başlıq","Yuxarı","Mətn daxil edin","Altından xətt çək","Geri qaytar","Keçidi ləğv et","Yenilə",null,"Yüklə",null,"Böyük hərflər","Böyük Roma rəqəmləri","Şaquli düzləndirmə","En","Word-dən yapışdırma aşkarlandı","Söz: %d","Bəli","Siz yalnız öz şəkillərinizi redaktə edə bilərsiniz. Bu şəkil serverə yüklənsin?","Brauzeriniz mübadilə buferinə birbaşa girişi dəstəkləmir.","Kodunuz HTML-ə bənzəyir. HTML kimi saxlanılsın?","Haqqında",null,"Qalın","Aşağı","Fırça",null,"istifadə üzrə ətraflı kömək məlumatını əhatə edir","Kopyala","Kəs",null,null,null,"Endir",null,"Silgi","Fayl","Şrift","Şrift ölçüsü","Tam ölçü","Xətt","Şəkil","Girinti","Kursiv","Sol","Keçid","Yeni sətir","Nömrələnmiş siyahı","və ya buraya klikləyin","Çıxıntı","Palitra","Abzas","Redaktə et","Önbaxış","Çap et","Təkrarla","Sağ","Hamısını seç","Kiçilt",null,"HTML",null,null,null,"Üstündən xətt çək","Aşağı indeks","Yuxarı indeks","Cədvəl","Yuxarı","qovluq adını yazın","adı yazın","Nizamsız siyahı","Altından xətt çək","Geri qaytar","Video"]
|
|
45346
|
+
|
|
45347
|
+
/***/ }),
|
|
45348
|
+
|
|
45193
45349
|
/***/ 56014:
|
|
45194
45350
|
/***/ (function(module) {
|
|
45195
45351
|
|