@lexical/selection 0.6.2 → 0.6.4
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 +8 -2
- package/LexicalSelection.prod.js +20 -20
- package/package.json +2 -2
package/LexicalSelection.dev.js
CHANGED
|
@@ -378,9 +378,10 @@ function $wrapNodesImpl(selection, nodes, nodesLength, createElement, wrappingEl
|
|
|
378
378
|
const element = elements[i];
|
|
379
379
|
wrappingElement.append(element);
|
|
380
380
|
}
|
|
381
|
-
}
|
|
382
|
-
// so that the target is the first child instead.
|
|
381
|
+
}
|
|
383
382
|
|
|
383
|
+
let lastElement = null; // If our target is Root-like, let's see if we can re-adjust
|
|
384
|
+
// so that the target is the first child instead.
|
|
384
385
|
|
|
385
386
|
if (lexical.$isRootOrShadowRoot(target)) {
|
|
386
387
|
if (targetIsPrevSibling) {
|
|
@@ -406,6 +407,7 @@ function $wrapNodesImpl(selection, nodes, nodesLength, createElement, wrappingEl
|
|
|
406
407
|
for (let i = 0; i < elements.length; i++) {
|
|
407
408
|
const element = elements[i];
|
|
408
409
|
target.append(element);
|
|
410
|
+
lastElement = element;
|
|
409
411
|
}
|
|
410
412
|
}
|
|
411
413
|
} else {
|
|
@@ -415,6 +417,7 @@ function $wrapNodesImpl(selection, nodes, nodesLength, createElement, wrappingEl
|
|
|
415
417
|
for (let i = 0; i < elements.length; i++) {
|
|
416
418
|
const element = elements[i];
|
|
417
419
|
firstChild.insertBefore(element);
|
|
420
|
+
lastElement = element;
|
|
418
421
|
}
|
|
419
422
|
}
|
|
420
423
|
}
|
|
@@ -426,6 +429,7 @@ function $wrapNodesImpl(selection, nodes, nodesLength, createElement, wrappingEl
|
|
|
426
429
|
for (let i = elements.length - 1; i >= 0; i--) {
|
|
427
430
|
const element = elements[i];
|
|
428
431
|
target.insertAfter(element);
|
|
432
|
+
lastElement = element;
|
|
429
433
|
}
|
|
430
434
|
}
|
|
431
435
|
}
|
|
@@ -434,6 +438,8 @@ function $wrapNodesImpl(selection, nodes, nodesLength, createElement, wrappingEl
|
|
|
434
438
|
|
|
435
439
|
if (lexical.$isRangeSelection(prevSelection) && isPointAttached(prevSelection.anchor) && isPointAttached(prevSelection.focus)) {
|
|
436
440
|
lexical.$setSelection(prevSelection.clone());
|
|
441
|
+
} else if (lastElement !== null) {
|
|
442
|
+
lastElement.selectEnd();
|
|
437
443
|
} else {
|
|
438
444
|
selection.dirty = true;
|
|
439
445
|
}
|
package/LexicalSelection.prod.js
CHANGED
|
@@ -6,26 +6,26 @@
|
|
|
6
6
|
*/
|
|
7
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 z(a){let b=a.parentNode;if(null==b)throw Error("Should never happen");return[b,Array.from(b.childNodes).indexOf(a)]}
|
|
8
8
|
function A(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 B(a){let b=u.get(a);void 0===b&&(b=A(a),u.set(a,b));return b}function C(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],
|
|
10
|
-
r&&l.$isLeafNode(m)&&!n.has(m.getKey())){if(m=r.getKey(),void 0===
|
|
11
|
-
else for(d=g.length-1;0<=d;d--)e.insertAfter(g[d]);else if(
|
|
12
|
-
function F(a,b,c,f){a.modify(b?"extend":"move",c,f)}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
|
|
14
|
-
|
|
9
|
+
function E(a,b,c,f,d=null){if(0!==b.length){var e=b[0],k=new Map,g=[];e=l.$isElementNode(e)?e:e.getParentOrThrow();e.isInline()&&(e=e.getParentOrThrow());for(var h=!1;null!==e;){var p=e.getPreviousSibling();if(null!==p){e=p;h=!0;break}e=e.getParentOrThrow();if(l.$isRootOrShadowRoot(e))break}p=new Set;for(var q=0;q<c;q++){var m=b[q];l.$isElementNode(m)&&0===m.getChildrenSize()&&p.add(m.getKey())}var n=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)&&!n.has(m.getKey())){if(m=r.getKey(),void 0===k.get(m)){let t=f();t.setFormat(r.getFormatType());t.setIndent(r.getIndent());g.push(t);k.set(m,t);r.getChildren().forEach(y=>{t.append(y);n.add(y.getKey());l.$isElementNode(y)&&y.getChildrenKeys().forEach(J=>n.add(J))});D(r)}}else p.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]);b=null;if(l.$isRootOrShadowRoot(e))if(h)if(null!==
|
|
11
|
+
d)e.insertAfter(d);else for(d=g.length-1;0<=d;d--)e.insertAfter(g[d]);else if(h=e.getFirstChild(),l.$isElementNode(h)&&(e=h),null===h)if(d)e.append(d);else for(d=0;d<g.length;d++)h=g[d],e.append(h),b=h;else if(null!==d)h.insertBefore(d);else for(e=0;e<g.length;e++)d=g[e],h.insertBefore(d),b=d;else if(d)e.insertAfter(d);else for(d=g.length-1;0<=d;d--)h=g[d],e.insertAfter(h),b=h;g=l.$getPreviousSelection();l.$isRangeSelection(g)&&g.anchor.getNode().isAttached()&&g.focus.getNode().isAttached()?l.$setSelection(g.clone()):
|
|
12
|
+
null!==b?b.selectEnd():a.dirty=!0}}function F(a,b,c,f){a.modify(b?"extend":"move",c,f)}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 k=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(),h=e.get(g),p=void 0===h;p&&(h=w(a),e.set(g,h));!l.$isTextNode(h)||h.isSegmented()||h.isToken()?l.$isElementNode(h)&&(h.__children=h.__children.slice(f?k:0,f?void 0:(k||0)+1)):h.__text=h.__text.slice(f?k:0,f?c:k);if(l.$isRootNode(b)){p&&d.push(g);break}}k=e.get(b.getKey());k=l.$isElementNode(k)?
|
|
14
|
+
k.__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
15
|
function I(a,b){var c=B(a.getStyle());b=Object.entries(b).reduce((f,[d,e])=>{null===e?delete f[d]:f[d]=e;return f},{...c});c=C(b);a.setStyle(c);u.set(c,b)}exports.$addNodeStyle=function(a){a=a.getStyle();let b=A(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 [p,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
|
|
17
|
-
c=c.isBefore(f);f=new Map;
|
|
18
|
-
return b};exports.$cloneWithProperties=w;exports.$getSelectionStyleValueForProperty=function(a,b,c=""){let f=null,d=a.getNodes();var e=a.anchor,
|
|
16
|
+
exports.$cloneContents=function(a){var b={nodeMap:[],range:[]};if(l.$isRangeSelection(a)){{var c=a.anchor,f=a.focus;let [p,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 k=e.__children;if(k.length===a){var g=!0;for(var h=0;h<k.length;h++)if(k[h]!==b[h].__key){g=!1;break}g&&(a++,b.push(e))}}e=b[a-1];
|
|
17
|
+
c=c.isBefore(f);f=new Map;k=[];g=l.$isTextNode(d)&&1===a;H(d,c?p:q,g?c?q:p:void 0,!0,k,f);for(d=0;d<a;d++){h=b[d];let m=h.getKey();if(!(f.has(m)||l.$isElementNode(h)&&h.excludeFromCopy("clone"))){let n=w(h);l.$isRootNode(h.getParent())&&k.push(h.getKey());"root"!==m&&f.set(m,n)}}H(e,g?void 0:c?q:p,void 0,!1,k,f);b={nodeMap:Array.from(f.entries()),range:k}}}}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,k=a.focus,g=a.isBackward();a=g?k.offset:e.offset;e=g?k.getNode():e.getNode();for(k=0;k<d.length;k++){var h=d[k];if((0===k||0!==a||!h.is(e))&&l.$isTextNode(h)){g=b;var p=c;h=h.getStyle();h=B(h);g=null!==h?h[g]||p:p;if(null===f)f=g;else if(f!==g){f="";break}}}return null===f?c:f};
|
|
19
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
|
|
21
|
-
n?c[0]:c[1],I(c,b),c.select(0,a-n))));else for(l.$isTextNode(d)&&n<d.getTextContentSize()&&(0!==n&&(d=d.splitText(n)[1]),I(d,b)),l.$isTextNode(e)&&(n=e.getTextContent().length,e.__key!==
|
|
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",
|
|
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 k=a.anchor,g=a.focus,h=d.getTextContent().length,p=g.offset,q=k.offset,m=k.isBefore(g),n=m?q:p;a=m?p:q;var r=m?k.type:g.type,t=m?g.type:k.type;k=m?g.key:k.key;l.$isTextNode(d)&&n===h&&(g=d.getNextSibling(),l.$isTextNode(g)&&(n=q=0,d=g));if(d.is(e))l.$isTextNode(d)&&(n="element"===r?0:q>p?p:q,a="element"===t?h:q>p?q:p,n!==a&&(0===n&&a===h?(I(d,b),d.select(n,a)):(c=d.splitText(n,a),c=0===
|
|
21
|
+
n?c[0]:c[1],I(c,b),c.select(0,a-n))));else for(l.$isTextNode(d)&&n<d.getTextContentSize()&&(0!==n&&(d=d.splitText(n)[1]),I(d,b)),l.$isTextNode(e)&&(n=e.getTextContent().length,e.__key!==k&&0!==a&&(a=n),a!==n&&([e]=e.splitText(a)),0!==a&&I(e,b)),a=1;a<f;a++)n=c[a],h=n.getKey(),l.$isTextNode(n)&&h!==d.getKey()&&h!==e.getKey()&&!n.isToken()&&I(n,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",k=0;l.$isTextNode(f)?d="text":l.$isElementNode(f)||null===f||(f=f.getParentOrThrow());l.$isTextNode(c)?(e="text",k=c.getTextContentSize()):l.$isElementNode(c)||null===c||(c=c.getParentOrThrow());f&&c&&(b.set(f.getKey(),0,d),a.set(c.getKey(),k,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(),f=a.focus.getNode(),d=b.is(c),e=b.is(f);if(d||e){d=a.isBackward();let [
|
|
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(
|
|
26
|
-
e)?
|
|
27
|
-
exports.createDOMRange=function(a,b,c,f,d){let e=b.getKey(),
|
|
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
|
|
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(),
|
|
30
|
-
d=
|
|
31
|
-
(e=b.key===q,
|
|
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 [k,g]=a.getCharacterOffsets();a=c.is(f);e=b.is(d?f:c);f=b.is(d?c:f);c=0;let h=void 0;a?(c=k>g?g:k,h=k>g?k:g):e?(c=d?g:k,h=void 0):f&&(d=d?k:g,c=0,h=d);b.__text=b.__text.slice(c,h)}}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(h=>g.append(h));c&&(g=c.append(g));a.replace(g)}else{e=null;var k=[];for(let g=0;g<d;g++){let h=f[g];l.$isRootOrShadowRoot(h)?(E(a,k,k.length,b,c),k=[],e=h):null===e||null!==e&&l.$hasAncestor(h,
|
|
26
|
+
e)?k.push(h):(E(a,k,k.length,b,c),k=[h])}E(a,k,k.length,b,c)}};exports.$wrapNodesImpl=E;
|
|
27
|
+
exports.createDOMRange=function(a,b,c,f,d){let e=b.getKey(),k=f.getKey(),g=document.createRange(),h=a.getElementByKey(e);a=a.getElementByKey(k);l.$isTextNode(b)&&(h=x(h));l.$isTextNode(f)&&(a=x(a));if(void 0===b||void 0===f||null===h||null===a)return null;"BR"===h.nodeName&&([h,c]=z(h));"BR"===a.nodeName&&([a,d]=z(a));b=h.firstChild;h===a&&null!=b&&"BR"===b.nodeName&&0===c&&0===d&&(d=1);try{g.setStart(h,c),g.setEnd(a,d)}catch(p){return null}!g.collapsed||c===d&&e===k||(g.setStart(a,d),g.setEnd(h,
|
|
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 k=b[e],g=k.width+c===a.width;d&&d.top===k.top&&d.left===k.left&&d.width===k.width&&d.height===k.height||g?(b.splice(e--,1),f--):d=k}return b};exports.getStyleObjectFromCSS=B;
|
|
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(),k=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&&(k=d.isInline()?0:2,e=l.$isElementNode(g)?g.getLastDescendant():g)}let h=f.getTextContent();""===h&&l.$isElementNode(f)&&!f.isInline()&&(h="\n\n");
|
|
30
|
+
d=h.length;g=d-c;let p=h.slice(0,g);if(!l.$isTextNode(f)||c>=d)g=f.getParent(),f.remove(),null!=g&&0===g.getChildrenSize()&&g.remove(),c-=d+k,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!==h?(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,k=b.offset,k<c&&(k=d),c=e?k-c:0,d=e?k:g,e&&0===c?([c]=f.splitText(c,d),c.remove()):([,c]=f.splitText(c,d),c.remove())):(c=l.$createTextNode(p),f.replace(c));c=0}}}
|
package/package.json
CHANGED