@lexical/selection 0.5.1-next.1 → 0.5.1-next.2
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/LexicalSelection.dev.js +28 -12
- package/LexicalSelection.js.flow +1 -1
- package/LexicalSelection.prod.js +24 -24
- package/lexical-node.d.ts +1 -1
- package/package.json +2 -2
- package/range-selection.d.ts +3 -3
package/LexicalSelection.dev.js
CHANGED
|
@@ -549,7 +549,7 @@ function $cloneRangeSelectionContent(selection) {
|
|
|
549
549
|
const [anchorOffset, focusOffset] = selection.getCharacterOffsets();
|
|
550
550
|
const nodes = selection.getNodes();
|
|
551
551
|
|
|
552
|
-
if (nodes.length === 0) {
|
|
552
|
+
if (nodes.length === 0 || nodes.length === 1 && lexical.$isElementNode(nodes[0]) && nodes[0].excludeFromCopy('clone')) {
|
|
553
553
|
return {
|
|
554
554
|
nodeMap: [],
|
|
555
555
|
range: []
|
|
@@ -922,9 +922,16 @@ function $addNodeStyle(node) {
|
|
|
922
922
|
|
|
923
923
|
function $patchNodeStyle(node, patch) {
|
|
924
924
|
const prevStyles = getStyleObjectFromCSS(node.getStyle());
|
|
925
|
-
const newStyles =
|
|
926
|
-
|
|
927
|
-
|
|
925
|
+
const newStyles = Object.entries(patch).reduce((styles, [key, value]) => {
|
|
926
|
+
if (value === null) {
|
|
927
|
+
delete styles[key];
|
|
928
|
+
} else {
|
|
929
|
+
styles[key] = value;
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
return styles;
|
|
933
|
+
}, { ...prevStyles
|
|
934
|
+
} || {});
|
|
928
935
|
const newCSSText = getCSSFromStyleObject(newStyles);
|
|
929
936
|
node.setStyle(newCSSText);
|
|
930
937
|
CSS_TO_STYLES.set(newCSSText, newStyles);
|
|
@@ -947,14 +954,15 @@ function $patchStyleText(selection, patch) {
|
|
|
947
954
|
const firstNodeTextLength = firstNodeText.length;
|
|
948
955
|
const focusOffset = focus.offset;
|
|
949
956
|
let anchorOffset = anchor.offset;
|
|
950
|
-
let startOffset;
|
|
951
|
-
let endOffset;
|
|
952
957
|
const isBefore = anchor.isBefore(focus);
|
|
953
|
-
startOffset = isBefore ? anchorOffset : focusOffset;
|
|
954
|
-
endOffset = isBefore ? focusOffset : anchorOffset;
|
|
958
|
+
let startOffset = isBefore ? anchorOffset : focusOffset;
|
|
959
|
+
let endOffset = isBefore ? focusOffset : anchorOffset;
|
|
960
|
+
const startType = isBefore ? anchor.type : focus.type;
|
|
961
|
+
const endType = isBefore ? focus.type : anchor.type;
|
|
962
|
+
const endKey = isBefore ? focus.key : anchor.key; // This is the case where the user only selected the very end of the
|
|
955
963
|
// first node so we don't want to include it in the formatting change.
|
|
956
964
|
|
|
957
|
-
if (startOffset ===
|
|
965
|
+
if (lexical.$isTextNode(firstNode) && startOffset === firstNodeTextLength) {
|
|
958
966
|
const nextSibling = firstNode.getNextSibling();
|
|
959
967
|
|
|
960
968
|
if (lexical.$isTextNode(nextSibling)) {
|
|
@@ -968,8 +976,8 @@ function $patchStyleText(selection, patch) {
|
|
|
968
976
|
|
|
969
977
|
if (firstNode.is(lastNode)) {
|
|
970
978
|
if (lexical.$isTextNode(firstNode)) {
|
|
971
|
-
startOffset = anchorOffset > focusOffset ? focusOffset : anchorOffset;
|
|
972
|
-
endOffset = anchorOffset > focusOffset ? anchorOffset : focusOffset; // No actual text is selected, so do nothing.
|
|
979
|
+
startOffset = startType === 'element' ? 0 : anchorOffset > focusOffset ? focusOffset : anchorOffset;
|
|
980
|
+
endOffset = endType === 'element' ? firstNodeTextLength : anchorOffset > focusOffset ? anchorOffset : focusOffset; // No actual text is selected, so do nothing.
|
|
973
981
|
|
|
974
982
|
if (startOffset === endOffset) {
|
|
975
983
|
return;
|
|
@@ -1002,7 +1010,15 @@ function $patchStyleText(selection, patch) {
|
|
|
1002
1010
|
|
|
1003
1011
|
if (lexical.$isTextNode(lastNode)) {
|
|
1004
1012
|
const lastNodeText = lastNode.getTextContent();
|
|
1005
|
-
const lastNodeTextLength = lastNodeText.length; //
|
|
1013
|
+
const lastNodeTextLength = lastNodeText.length; // The last node might not actually be the end node
|
|
1014
|
+
//
|
|
1015
|
+
// If not, assume the last node is fully-selected unless the end offset is
|
|
1016
|
+
// zero.
|
|
1017
|
+
|
|
1018
|
+
if (lastNode.__key !== endKey && endOffset !== 0) {
|
|
1019
|
+
endOffset = lastNodeTextLength;
|
|
1020
|
+
} // if the entire last node isn't selected, split it
|
|
1021
|
+
|
|
1006
1022
|
|
|
1007
1023
|
if (endOffset !== lastNodeTextLength) {
|
|
1008
1024
|
[lastNode] = lastNode.splitText(endOffset);
|
package/LexicalSelection.js.flow
CHANGED
|
@@ -29,7 +29,7 @@ declare export function getStyleObjectFromCSS(css: string): {
|
|
|
29
29
|
declare export function $patchStyleText(
|
|
30
30
|
selection: RangeSelection | GridSelection,
|
|
31
31
|
patch: {
|
|
32
|
-
[string]: string,
|
|
32
|
+
[string]: string | null,
|
|
33
33
|
},
|
|
34
34
|
): void;
|
|
35
35
|
declare export function $getSelectionStyleValueForProperty(
|
package/LexicalSelection.prod.js
CHANGED
|
@@ -4,28 +4,28 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
'use strict';var l=require("lexical");let
|
|
8
|
-
function z(a){let b={};a=a.split(";");for(let c of a)if(""!==c){let [
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
else if(b=e.getFirstChild(),l.$isElementNode(b)&&(e=b),null===b)if(d)e.append(d);else for(d=0;d<
|
|
12
|
-
function
|
|
13
|
-
function
|
|
14
|
-
h.__children.indexOf(a.getKey()):a.getIndexWithinParent();a=b}}function
|
|
15
|
-
function
|
|
16
|
-
exports.$cloneContents=function(a){var b={nodeMap:[],range:[]};if(l.$isRangeSelection(a)){{var c=a.anchor,
|
|
17
|
-
c?
|
|
18
|
-
return b};exports.$cloneWithProperties=
|
|
19
|
-
exports.$isAtNodeEnd=function(a){return"text"===a.type?a.offset===a.getNode().getTextContentSize():a.offset===a.getNode().getChildrenSize()};exports.$isParentElementRTL=
|
|
20
|
-
exports.$patchStyleText=function(a,b){var c=a.getNodes();let
|
|
21
|
-
(0!==
|
|
22
|
-
exports.$selectAll=function(a){let b=a.anchor;a=a.focus;var c=b.getNode().getTopLevelElementOrThrow().getParentOrThrow();let
|
|
7
|
+
'use strict';var l=require("lexical");let u=new Map;function v(a){return{nodeMap:a.getNodes().map(b=>{const c=b.getKey();b=w(b);return[c,b]}),range:[a.gridKey]}}function x(a){for(;null!=a;){if(a.nodeType===Node.TEXT_NODE)return a;a=a.firstChild}return null}function y(a){let b=a.parentNode;if(null==b)throw Error("Should never happen");return[b,Array.from(b.childNodes).indexOf(a)]}
|
|
8
|
+
function z(a){let b={};a=a.split(";");for(let c of a)if(""!==c){let [f,d]=c.split(/:([^]+)/);b[f.trim()]=d.trim()}return b}function A(a){let b=u.get(a);void 0===b&&(b=z(a),u.set(a,b));return b}function B(a){let b="";for(let c in a)c&&(b+=`${c}: ${a[c]};`);return b}function D(a){for(;null!==a&&!l.$isRootOrShadowRoot(a);){let b=a.getLatest(),c=a.getParent();0===b.__children.length&&a.remove(!0);a=c}}
|
|
9
|
+
function E(a,b,c,f,d=null){if(0!==b.length){var e=b[0],h=new Map,g=[];e=l.$isElementNode(e)?e:e.getParentOrThrow();e.isInline()&&(e=e.getParentOrThrow());for(var k=!1;null!==e;){var n=e.getPreviousSibling();if(null!==n){e=n;k=!0;break}e=e.getParentOrThrow();if(l.$isRootOrShadowRoot(e))break}n=new Set;for(var q=0;q<c;q++){var m=b[q];l.$isElementNode(m)&&0===m.getChildrenSize()&&n.add(m.getKey())}var p=new Set;for(q=0;q<c;q++){m=b[q];var r=m.getParent();null!==r&&r.isInline()&&(r=r.getParent());if(null!==
|
|
10
|
+
r&&l.$isLeafNode(m)&&!p.has(m.getKey())){if(m=r.getKey(),void 0===h.get(m)){let t=f();t.setFormat(r.getFormatType());t.setIndent(r.getIndent());g.push(t);h.set(m,t);r.getChildren().forEach(C=>{t.append(C);p.add(C.getKey())});D(r)}}else n.has(m.getKey())&&(r=f(),r.setFormat(m.getFormatType()),r.setIndent(m.getIndent()),g.push(r),m.remove(!0))}if(null!==d)for(b=0;b<g.length;b++)d.append(g[b]);if(l.$isRootOrShadowRoot(e))if(k)if(null!==d)e.insertAfter(d);else for(d=g.length-1;0<=d;d--)e.insertAfter(g[d]);
|
|
11
|
+
else if(b=e.getFirstChild(),l.$isElementNode(b)&&(e=b),null===b)if(d)e.append(d);else for(d=0;d<g.length;d++)e.append(g[d]);else if(null!==d)b.insertBefore(d);else for(e=0;e<g.length;e++)b.insertBefore(g[e]);else if(d)e.insertAfter(d);else for(d=g.length-1;0<=d;d--)e.insertAfter(g[d]);g=l.$getPreviousSelection();l.$isRangeSelection(g)&&g.anchor.getNode().isAttached()&&g.focus.getNode().isAttached()?l.$setSelection(g.clone()):a.dirty=!0}}function F(a,b,c,f){a.modify(b?"extend":"move",c,f)}
|
|
12
|
+
function G(a){a=a.anchor.getNode();return"rtl"===(l.$isRootNode(a)?a:a.getParentOrThrow()).getDirection()}
|
|
13
|
+
function H(a,b,c,f,d,e){for(var h=b;null!==a;){for(b=a.getParent();null!==b&&b.excludeFromCopy("clone");)b=b.getParent();if(null===b)break;if(!l.$isElementNode(a)||!a.excludeFromCopy("clone")){let g=a.getKey(),k=e.get(g),n=void 0===k;n&&(k=w(a),e.set(g,k));!l.$isTextNode(k)||k.isSegmented()||k.isToken()?l.$isElementNode(k)&&(k.__children=k.__children.slice(f?h:0,f?void 0:(h||0)+1)):k.__text=k.__text.slice(f?h:0,f?c:h);if(l.$isRootNode(b)){n&&d.push(g);break}}h=e.get(b.getKey());h=l.$isElementNode(h)?
|
|
14
|
+
h.__children.indexOf(a.getKey()):a.getIndexWithinParent();a=b}}function w(a){a=a.getLatest();let b=a.constructor.clone(a);b.__parent=a.__parent;if(l.$isElementNode(a)&&l.$isElementNode(b))return b.__children=Array.from(a.__children),b.__format=a.__format,b.__indent=a.__indent,b.__dir=a.__dir,b;l.$isTextNode(a)&&l.$isTextNode(b)&&(b.__format=a.__format,b.__style=a.__style,b.__mode=a.__mode,b.__detail=a.__detail);return b}
|
|
15
|
+
function I(a,b){var c=A(a.getStyle());b=Object.entries(b).reduce((f,[d,e])=>{null===e?delete f[d]:f[d]=e;return f},{...c});c=B(b);a.setStyle(c);u.set(c,b)}exports.$addNodeStyle=function(a){a=a.getStyle();let b=z(a);u.set(a,b)};
|
|
16
|
+
exports.$cloneContents=function(a){var b={nodeMap:[],range:[]};if(l.$isRangeSelection(a)){{var c=a.anchor,f=a.focus;let [n,q]=a.getCharacterOffsets();b=a.getNodes();if(0===b.length||1===b.length&&l.$isElementNode(b[0])&&b[0].excludeFromCopy("clone"))b={nodeMap:[],range:[]};else{a=b.length;var d=b[0],e=d.getParent();if(null!==e&&(!e.canBeEmpty()||l.$isRootNode(e))){var h=e.__children;if(h.length===a){var g=!0;for(var k=0;k<h.length;k++)if(h[k]!==b[k].__key){g=!1;break}g&&(a++,b.push(e))}}e=b[a-1];
|
|
17
|
+
c=c.isBefore(f);f=new Map;h=[];g=l.$isTextNode(d)&&1===a;H(d,c?n:q,g?c?q:n:void 0,!0,h,f);for(d=0;d<a;d++){k=b[d];let m=k.getKey();if(!(f.has(m)||l.$isElementNode(k)&&k.excludeFromCopy("clone"))){let p=w(k);l.$isRootNode(k.getParent())&&h.push(k.getKey());"root"!==m&&f.set(m,p)}}H(e,g?void 0:c?q:n,void 0,!1,h,f);b={nodeMap:Array.from(f.entries()),range:h}}}}else if(l.DEPRECATED_$isGridSelection(a))b=v(a);else if(l.$isNodeSelection(a))throw Error("Minified Lexical error #1; visit https://lexical.dev/docs/error?code=1 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.");
|
|
18
|
+
return b};exports.$cloneWithProperties=w;exports.$getSelectionStyleValueForProperty=function(a,b,c=""){let f=null,d=a.getNodes();var e=a.anchor,h=a.focus,g=a.isBackward();a=g?h.offset:e.offset;e=g?h.getNode():e.getNode();for(h=0;h<d.length;h++){var k=d[h];if((0===h||0!==a||!k.is(e))&&l.$isTextNode(k)){g=b;var n=c;k=k.getStyle();k=A(k);g=null!==k?k[g]||n:n;if(null===f)f=g;else if(f!==g){f="";break}}}return null===f?c:f};
|
|
19
|
+
exports.$isAtNodeEnd=function(a){return"text"===a.type?a.offset===a.getNode().getTextContentSize():a.offset===a.getNode().getChildrenSize()};exports.$isParentElementRTL=G;exports.$moveCaretSelection=F;exports.$moveCharacter=function(a,b,c){let f=G(a);F(a,b,c?!f:f,"character")};
|
|
20
|
+
exports.$patchStyleText=function(a,b){var c=a.getNodes();let f=c.length-1,d=c[0],e=c[f];if(!a.isCollapsed()){var h=a.anchor,g=a.focus,k=d.getTextContent().length,n=g.offset,q=h.offset,m=h.isBefore(g),p=m?q:n;a=m?n:q;var r=m?h.type:g.type,t=m?g.type:h.type;h=m?g.key:h.key;l.$isTextNode(d)&&p===k&&(g=d.getNextSibling(),l.$isTextNode(g)&&(p=q=0,d=g));if(d.is(e))l.$isTextNode(d)&&(p="element"===r?0:q>n?n:q,a="element"===t?k:q>n?q:n,p!==a&&(0===p&&a===k?(I(d,b),d.select(p,a)):(c=d.splitText(p,a),c=0===
|
|
21
|
+
p?c[0]:c[1],I(c,b),c.select(0,a-p))));else for(l.$isTextNode(d)&&p<d.getTextContentSize()&&(0!==p&&(d=d.splitText(p)[1]),I(d,b)),l.$isTextNode(e)&&(p=e.getTextContent().length,e.__key!==h&&0!==a&&(a=p),a!==p&&([e]=e.splitText(a)),0!==a&&I(e,b)),a=1;a<f;a++)p=c[a],k=p.getKey(),l.$isTextNode(p)&&k!==d.getKey()&&k!==e.getKey()&&!p.isToken()&&I(p,b)}};
|
|
22
|
+
exports.$selectAll=function(a){let b=a.anchor;a=a.focus;var c=b.getNode().getTopLevelElementOrThrow().getParentOrThrow();let f=c.getFirstDescendant();c=c.getLastDescendant();let d="element",e="element",h=0;l.$isTextNode(f)?d="text":l.$isElementNode(f)||null===f||(f=f.getParentOrThrow());l.$isTextNode(c)?(e="text",h=c.getTextContentSize()):l.$isElementNode(c)||null===c||(c=c.getParentOrThrow());f&&c&&(b.set(f.getKey(),0,d),a.set(c.getKey(),h,e))};
|
|
23
23
|
exports.$shouldOverrideDefaultCharacterSelection=function(a,b){a=l.$getDecoratorNode(a.focus,b);return l.$isDecoratorNode(a)&&!a.isIsolated()};
|
|
24
|
-
exports.$sliceSelectedTextNodeContent=function(a,b){if(b.isSelected()&&!b.isSegmented()&&!b.isToken()&&(l.$isRangeSelection(a)||l.DEPRECATED_$isGridSelection(a))){var c=a.anchor.getNode(),
|
|
25
|
-
exports.$wrapNodes=function(a,b,c=null){var
|
|
26
|
-
e)?h.push(k):(
|
|
27
|
-
exports.createDOMRange=function(a,b,c,
|
|
28
|
-
c));return
|
|
29
|
-
exports.trimTextContentFromAnchor=function(a,b,c){let
|
|
30
|
-
d=k.length;
|
|
31
|
-
(e=b.key===
|
|
24
|
+
exports.$sliceSelectedTextNodeContent=function(a,b){if(b.isSelected()&&!b.isSegmented()&&!b.isToken()&&(l.$isRangeSelection(a)||l.DEPRECATED_$isGridSelection(a))){var c=a.anchor.getNode(),f=a.focus.getNode(),d=b.is(c),e=b.is(f);if(d||e){d=a.isBackward();let [h,g]=a.getCharacterOffsets();a=c.is(f);e=b.is(d?f:c);f=b.is(d?c:f);c=0;let k=void 0;a?(c=h>g?g:h,k=h>g?h:g):e?(c=d?g:h,k=void 0):f&&(d=d?h:g,c=0,k=d);b.__text=b.__text.slice(c,k)}}return b};
|
|
25
|
+
exports.$wrapNodes=function(a,b,c=null){var f=a.getNodes();let d=f.length;var e=a.anchor;if(0===d||1===d&&"element"===e.type&&0===e.getNode().getChildrenSize()){a="text"===e.type?e.getNode().getParentOrThrow():e.getNode();f=a.getChildren();let g=b();g.setFormat(a.getFormatType());g.setIndent(a.getIndent());f.forEach(k=>g.append(k));c&&(g=c.append(g));a.replace(g)}else{e=null;var h=[];for(let g=0;g<d;g++){let k=f[g];l.$isRootOrShadowRoot(k)?(E(a,h,h.length,b,c),h=[],e=k):null===e||null!==e&&l.$hasAncestor(k,
|
|
26
|
+
e)?h.push(k):(E(a,h,h.length,b,c),h=[k])}E(a,h,h.length,b,c)}};exports.$wrapNodesImpl=E;
|
|
27
|
+
exports.createDOMRange=function(a,b,c,f,d){let e=b.getKey(),h=f.getKey(),g=document.createRange(),k=a.getElementByKey(e);a=a.getElementByKey(h);l.$isTextNode(b)&&(k=x(k));l.$isTextNode(f)&&(a=x(a));if(void 0===b||void 0===f||null===k||null===a)return null;"BR"===k.nodeName&&([k,c]=y(k));"BR"===a.nodeName&&([a,d]=y(a));b=k.firstChild;k===a&&null!=b&&"BR"===b.nodeName&&0===c&&0===d&&(d=1);try{g.setStart(k,c),g.setEnd(a,d)}catch(n){return null}!g.collapsed||c===d&&e===h||(g.setStart(a,d),g.setEnd(k,
|
|
28
|
+
c));return g};exports.createRectsFromDOMRange=function(a,b){var c=a.getRootElement();if(null===c)return[];a=c.getBoundingClientRect();c=getComputedStyle(c);c=parseFloat(c.paddingLeft)+parseFloat(c.paddingRight);b=Array.from(b.getClientRects());let f=b.length,d;for(let e=0;e<f;e++){let h=b[e],g=h.width+c===a.width;d&&d.top===h.top&&d.left===h.left&&d.width===h.width&&d.height===h.height||g?(b.splice(e--,1),f--):d=h}return b};exports.getStyleObjectFromCSS=A;
|
|
29
|
+
exports.trimTextContentFromAnchor=function(a,b,c){let f=b.getNode();if(l.$isElementNode(f)){var d=f.getDescendantByIndex(b.offset);null!==d&&(f=d)}for(;0<c&&null!==f;){var e=f.getPreviousSibling(),h=0;if(null===e){d=f.getParentOrThrow();for(var g=d.getPreviousSibling();null===g;){d=d.getParent();if(null===d){e=null;break}g=d.getPreviousSibling()}null!==d&&(h=d.isInline()?0:2,e=l.$isElementNode(g)?g.getLastDescendant():g)}let k=f.getTextContent();""===k&&l.$isElementNode(f)&&!f.isInline()&&(k="\n\n");
|
|
30
|
+
d=k.length;g=d-c;let n=k.slice(0,g);if(!l.$isTextNode(f)||c>=d)g=f.getParent(),f.remove(),null!=g&&0===g.getChildrenSize()&&g.remove(),c-=d+h,f=e;else{let q=f.getKey();e=a.getEditorState().read(()=>{const m=l.$getNodeByKey(q);return l.$isTextNode(m)&&m.isSimpleText()?m.getTextContent():null});null!==e&&e!==k?(c=l.$getPreviousSelection(),d=f,f.isSimpleText()?f.setTextContent(e):(d=l.$createTextNode(e),f.replace(d)),l.$isRangeSelection(c)&&c.isCollapsed()&&(c=c.anchor.offset,d.select(c,c))):f.isSimpleText()?
|
|
31
|
+
(e=b.key===q,h=b.offset,h<c&&(h=d),c=e?h-c:0,d=e?h:g,e&&0===c?([c]=f.splitText(c,d),c.remove()):([,c]=f.splitText(c,d),c.remove())):(c=l.$createTextNode(n),f.replace(c));c=0}}}
|
package/lexical-node.d.ts
CHANGED
|
@@ -16,4 +16,4 @@ export interface ICloneSelectionContent {
|
|
|
16
16
|
}
|
|
17
17
|
export declare function $cloneContents(selection: RangeSelection | NodeSelection | GridSelection): ICloneSelectionContent;
|
|
18
18
|
export declare function $addNodeStyle(node: TextNode): void;
|
|
19
|
-
export declare function $patchStyleText(selection: RangeSelection | GridSelection, patch: Record<string, string>): void;
|
|
19
|
+
export declare function $patchStyleText(selection: RangeSelection | GridSelection, patch: Record<string, string | null>): void;
|
package/package.json
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"selection"
|
|
10
10
|
],
|
|
11
11
|
"license": "MIT",
|
|
12
|
-
"version": "0.5.1-next.
|
|
12
|
+
"version": "0.5.1-next.2",
|
|
13
13
|
"main": "LexicalSelection.js",
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"lexical": "0.5.1-next.
|
|
15
|
+
"lexical": "0.5.1-next.2"
|
|
16
16
|
},
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
package/range-selection.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
import type { ICloneSelectionContent } from './lexical-node';
|
|
9
|
-
import type { ElementNode, LexicalNode, RangeSelection } from 'lexical';
|
|
9
|
+
import type { ElementNode, GridSelection, LexicalNode, RangeSelection } from 'lexical';
|
|
10
10
|
/**
|
|
11
11
|
* Attempts to wrap all nodes in the Selection in ElementNodes returned from createElement.
|
|
12
12
|
* If wrappingElement is provided, all of the wrapped leaves are appended to the wrappingElement.
|
|
@@ -17,8 +17,8 @@ import type { ElementNode, LexicalNode, RangeSelection } from 'lexical';
|
|
|
17
17
|
* @param wrappingElement
|
|
18
18
|
* @returns
|
|
19
19
|
*/
|
|
20
|
-
export declare function $wrapNodes(selection: RangeSelection, createElement: () => ElementNode, wrappingElement?: null | ElementNode): void;
|
|
21
|
-
export declare function $wrapNodesImpl(selection: RangeSelection, nodes: LexicalNode[], nodesLength: number, createElement: () => ElementNode, wrappingElement?: null | ElementNode): void;
|
|
20
|
+
export declare function $wrapNodes(selection: RangeSelection | GridSelection, createElement: () => ElementNode, wrappingElement?: null | ElementNode): void;
|
|
21
|
+
export declare function $wrapNodesImpl(selection: RangeSelection | GridSelection, nodes: LexicalNode[], nodesLength: number, createElement: () => ElementNode, wrappingElement?: null | ElementNode): void;
|
|
22
22
|
export declare function $shouldOverrideDefaultCharacterSelection(selection: RangeSelection, isBackward: boolean): boolean;
|
|
23
23
|
export declare function $moveCaretSelection(selection: RangeSelection, isHoldingShift: boolean, isBackward: boolean, granularity: 'character' | 'word' | 'lineboundary'): void;
|
|
24
24
|
export declare function $isParentElementRTL(selection: RangeSelection): boolean;
|