@lexical/table 0.16.1-nightly.20240618.0 → 0.16.1-nightly.20240620.0
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/LexicalTable.dev.js +2 -0
- package/LexicalTable.dev.mjs +1 -1
- package/LexicalTable.js.flow +4 -0
- package/LexicalTable.mjs +2 -0
- package/LexicalTable.node.mjs +2 -0
- package/LexicalTable.prod.js +6 -6
- package/LexicalTable.prod.mjs +1 -1
- package/LexicalTableSelectionHelpers.d.ts +2 -0
- package/index.d.ts +1 -1
- package/package.json +3 -3
package/LexicalTable.dev.js
CHANGED
@@ -2689,6 +2689,8 @@ exports.$createTableSelection = $createTableSelection;
|
|
2689
2689
|
exports.$deleteTableColumn = $deleteTableColumn;
|
2690
2690
|
exports.$deleteTableColumn__EXPERIMENTAL = $deleteTableColumn__EXPERIMENTAL;
|
2691
2691
|
exports.$deleteTableRow__EXPERIMENTAL = $deleteTableRow__EXPERIMENTAL;
|
2692
|
+
exports.$findCellNode = $findCellNode;
|
2693
|
+
exports.$findTableNode = $findTableNode;
|
2692
2694
|
exports.$getElementForTableNode = $getElementForTableNode;
|
2693
2695
|
exports.$getNodeTriplet = $getNodeTriplet;
|
2694
2696
|
exports.$getTableCellNodeFromLexicalNode = $getTableCellNodeFromLexicalNode;
|
package/LexicalTable.dev.mjs
CHANGED
@@ -2677,4 +2677,4 @@ function $isTableNode(node) {
|
|
2677
2677
|
return node instanceof TableNode;
|
2678
2678
|
}
|
2679
2679
|
|
2680
|
-
export { $computeTableMap, $computeTableMapSkipCellCheck, $createTableCellNode, $createTableNode, $createTableNodeWithDimensions, $createTableRowNode, $createTableSelection, $deleteTableColumn, $deleteTableColumn__EXPERIMENTAL, $deleteTableRow__EXPERIMENTAL, $getElementForTableNode, $getNodeTriplet, $getTableCellNodeFromLexicalNode, $getTableCellNodeRect, $getTableColumnIndexFromTableCellNode, $getTableNodeFromLexicalNodeOrThrow, $getTableRowIndexFromTableCellNode, $getTableRowNodeFromTableCellNodeOrThrow, $insertTableColumn, $insertTableColumn__EXPERIMENTAL, $insertTableRow, $insertTableRow__EXPERIMENTAL, $isTableCellNode, $isTableNode, $isTableRowNode, $isTableSelection, $removeTableRowAtIndex, $unmergeCell, INSERT_TABLE_COMMAND, TableCellHeaderStates, TableCellNode, TableNode, TableObserver, TableRowNode, applyTableHandlers, getDOMCellFromTarget, getTableObserverFromTableElement };
|
2680
|
+
export { $computeTableMap, $computeTableMapSkipCellCheck, $createTableCellNode, $createTableNode, $createTableNodeWithDimensions, $createTableRowNode, $createTableSelection, $deleteTableColumn, $deleteTableColumn__EXPERIMENTAL, $deleteTableRow__EXPERIMENTAL, $findCellNode, $findTableNode, $getElementForTableNode, $getNodeTriplet, $getTableCellNodeFromLexicalNode, $getTableCellNodeRect, $getTableColumnIndexFromTableCellNode, $getTableNodeFromLexicalNodeOrThrow, $getTableRowIndexFromTableCellNode, $getTableRowNodeFromTableCellNodeOrThrow, $insertTableColumn, $insertTableColumn__EXPERIMENTAL, $insertTableRow, $insertTableRow__EXPERIMENTAL, $isTableCellNode, $isTableNode, $isTableRowNode, $isTableSelection, $removeTableRowAtIndex, $unmergeCell, INSERT_TABLE_COMMAND, TableCellHeaderStates, TableCellNode, TableNode, TableObserver, TableRowNode, applyTableHandlers, getDOMCellFromTarget, getTableObserverFromTableElement };
|
package/LexicalTable.js.flow
CHANGED
@@ -175,6 +175,10 @@ declare export function getTableObserverFromTableElement(
|
|
175
175
|
|
176
176
|
declare export function getDOMCellFromTarget(node: Node): null | TableDOMCell;
|
177
177
|
|
178
|
+
declare export function $findTableNode(node: LexicalNode): null | TableNode;
|
179
|
+
|
180
|
+
declare export function $findCellNode(node: LexicalNode): null | TableCellNode;
|
181
|
+
|
178
182
|
/**
|
179
183
|
* LexicalTableUtils
|
180
184
|
*/
|
package/LexicalTable.mjs
CHANGED
@@ -19,6 +19,8 @@ export const $createTableSelection = mod.$createTableSelection;
|
|
19
19
|
export const $deleteTableColumn = mod.$deleteTableColumn;
|
20
20
|
export const $deleteTableColumn__EXPERIMENTAL = mod.$deleteTableColumn__EXPERIMENTAL;
|
21
21
|
export const $deleteTableRow__EXPERIMENTAL = mod.$deleteTableRow__EXPERIMENTAL;
|
22
|
+
export const $findCellNode = mod.$findCellNode;
|
23
|
+
export const $findTableNode = mod.$findTableNode;
|
22
24
|
export const $getElementForTableNode = mod.$getElementForTableNode;
|
23
25
|
export const $getNodeTriplet = mod.$getNodeTriplet;
|
24
26
|
export const $getTableCellNodeFromLexicalNode = mod.$getTableCellNodeFromLexicalNode;
|
package/LexicalTable.node.mjs
CHANGED
@@ -17,6 +17,8 @@ export const $createTableSelection = mod.$createTableSelection;
|
|
17
17
|
export const $deleteTableColumn = mod.$deleteTableColumn;
|
18
18
|
export const $deleteTableColumn__EXPERIMENTAL = mod.$deleteTableColumn__EXPERIMENTAL;
|
19
19
|
export const $deleteTableRow__EXPERIMENTAL = mod.$deleteTableRow__EXPERIMENTAL;
|
20
|
+
export const $findCellNode = mod.$findCellNode;
|
21
|
+
export const $findTableNode = mod.$findTableNode;
|
20
22
|
export const $getElementForTableNode = mod.$getElementForTableNode;
|
21
23
|
export const $getNodeTriplet = mod.$getNodeTriplet;
|
22
24
|
export const $getTableCellNodeFromLexicalNode = mod.$getTableCellNodeFromLexicalNode;
|
package/LexicalTable.prod.js
CHANGED
@@ -16,7 +16,7 @@ function ba(a){var b=a.nodeName.toLowerCase(),c=void 0;aa.test(a.style.width)&&(
|
|
16
16
|
!u.$isElementNode(m)){q=u.$createParagraphNode();if(u.$isLineBreakNode(m)&&"\n"===m.getTextContent())return null;u.$isTextNode(m)&&(d&&m.toggleFormat("bold"),e&&m.toggleFormat("strikethrough"),g&&m.toggleFormat("italic"),f&&m.toggleFormat("underline"));q.append(m);return q}return m},node:b}}function z(a,b=1,c){return u.$applyNodeReplacement(new y(a,b,c))}function A(a){return a instanceof y}let ca=u.createCommand("INSERT_TABLE_COMMAND");
|
17
17
|
class C extends u.ElementNode{static getType(){return"tablerow"}static clone(a){return new C(a.__height,a.__key)}static importDOM(){return{tr:()=>({conversion:da,priority:0})}}static importJSON(a){return D(a.height)}constructor(a,b){super(b);this.__height=a}exportJSON(){return{...super.exportJSON(),...(this.getHeight()&&{height:this.getHeight()}),type:"tablerow",version:1}}createDOM(a){let b=document.createElement("tr");this.__height&&(b.style.height=`${this.__height}px`);h.addClassNamesToElement(b,
|
18
18
|
a.theme.tableRow);return b}isShadowRoot(){return!0}setHeight(a){this.getWritable().__height=a;return this.__height}getHeight(){return this.getLatest().__height}updateDOM(a){return a.__height!==this.__height}canBeEmpty(){return!1}canIndent(){return!1}}function da(a){let b=void 0;aa.test(a.style.height)&&(b=parseFloat(a.style.height));return{node:D(b)}}function D(a){return u.$applyNodeReplacement(new C(a))}function H(a){return a instanceof C}var J;
|
19
|
-
function K(a){let b=new URLSearchParams;b.append("code",a);for(let c=1;c<arguments.length;c++)b.append("v",arguments[c]);throw Error(`Minified Lexical error #${a}; visit https://lexical.dev/docs/error?${b} for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}J=K&&K.__esModule&&Object.prototype.hasOwnProperty.call(K,"default")?K["default"]:K;let
|
19
|
+
function K(a){let b=new URLSearchParams;b.append("code",a);for(let c=1;c<arguments.length;c++)b.append("v",arguments[c]);throw Error(`Minified Lexical error #${a}; visit https://lexical.dev/docs/error?${b} for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}J=K&&K.__esModule&&Object.prototype.hasOwnProperty.call(K,"default")?K["default"]:K;let ea="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement;
|
20
20
|
function ia(a){a=h.$findMatchingParent(a,b=>H(b));if(H(a))return a;throw Error("Expected table cell to be inside of table row.");}function ja(a){a=h.$findMatchingParent(a,b=>N(b));if(N(a))return a;throw Error("Expected table cell to be inside of table.");}function ka(a,b){let c=ja(a),{x:d,y:e}=c.getCordsFromCellNode(a,b);return{above:c.getCellNodeFromCords(d,e-1,b),below:c.getCellNodeFromCords(d,e+1,b),left:c.getCellNodeFromCords(d-1,e,b),right:c.getCellNodeFromCords(d+1,e,b)}}
|
21
21
|
let la=(a,b)=>a===x.BOTH||a===b?b:x.NO_STATUS;function O(a){let b=a.getFirstDescendant();null==b?a.selectStart():b.getParentOrThrow().selectStart()}function ma(a,b){let c=a.getFirstChild();null!==c?c.insertBefore(b):a.append(b)}function P(a,b,c){let [d,e,g]=na(a,b,c);null===e&&J(110);null===g&&J(111);return[d,e,g]}
|
22
22
|
function na(a,b,c){let d=[],e=null,g=null;a=a.getChildren();for(let t=0;t<a.length;t++){var f=a[t];H(f)||J(146);var m=f.getChildren();f=0;for(let k of m){for(A(k)||J(147);void 0!==d[t]&&void 0!==d[t][f];)f++;m=t;var q=f,p=k;let l={cell:p,startColumn:q,startRow:m},n=p.__rowSpan,r=p.__colSpan;for(let v=0;v<n;v++){void 0===d[m+v]&&(d[m+v]=[]);for(let w=0;w<r;w++)d[m+v][q+w]=l}null!==b&&b.is(p)&&(e=l);null!==c&&c.is(p)&&(g=l);f+=k.__colSpan}}return[d,e,g]}
|
@@ -33,7 +33,7 @@ new MutationObserver(b=>{this.editor.update(()=>{var c=!1;for(let d=0;d<b.length
|
|
33
33
|
this.editor;this.isHighlightingCells=!1;this.focusY=this.focusX=this.anchorY=this.anchorX=-1;this.focusCell=this.anchorCell=this.focusCellNodeKey=this.anchorCellNodeKey=this.tableSelection=null;this.hasHijackedSelectionStyles=!1;this.enableHighlightStyle();a.update(()=>{var b=u.$getNodeByKey(this.tableNodeKey);if(!N(b))throw Error("Expected TableNode.");b=a.getElementByKey(this.tableNodeKey);if(!b)throw Error("Expected to find TableElement in DOM");b=S(b);ta(a,b,null);u.$setSelection(null);a.dispatchCommand(u.SELECTION_CHANGE_COMMAND,
|
34
34
|
void 0)})}enableHighlightStyle(){let a=this.editor;a.update(()=>{let b=a.getElementByKey(this.tableNodeKey);if(!b)throw Error("Expected to find TableElement in DOM");h.removeClassNamesFromElement(b,a._config.theme.tableSelection);b.classList.remove("disable-selection");this.hasHijackedSelectionStyles=!1})}disableHighlightStyle(){let a=this.editor;a.update(()=>{let b=a.getElementByKey(this.tableNodeKey);if(!b)throw Error("Expected to find TableElement in DOM");h.addClassNamesToElement(b,a._config.theme.tableSelection);
|
35
35
|
this.hasHijackedSelectionStyles=!0})}updateTableTableSelection(a){if(null!==a&&a.tableKey===this.tableNodeKey){let b=this.editor;this.tableSelection=a;this.isHighlightingCells=!0;this.disableHighlightStyle();ta(b,this.table,this.tableSelection)}else null==a?this.clearHighlight():(this.tableNodeKey=a.tableKey,this.updateTableTableSelection(a))}setFocusCellForSelection(a,b=!1){let c=this.editor;c.update(()=>{var d=u.$getNodeByKey(this.tableNodeKey);if(!N(d))throw Error("Expected TableNode.");if(!c.getElementByKey(this.tableNodeKey))throw Error("Expected to find TableElement in DOM");
|
36
|
-
var e=a.x;let g=a.y;this.focusCell=a;if(null!==this.anchorCell){let f=
|
36
|
+
var e=a.x;let g=a.y;this.focusCell=a;if(null!==this.anchorCell){let f=ea?(c._window||window).getSelection():null;f&&f.setBaseAndExtent(this.anchorCell.elem,0,this.focusCell.elem,0)}if(!this.isHighlightingCells&&(this.anchorX!==e||this.anchorY!==g||b))this.isHighlightingCells=!0,this.disableHighlightStyle();else if(e===this.focusX&&g===this.focusY)return;this.focusX=e;this.focusY=g;this.isHighlightingCells&&(e=u.$getNearestNodeFromDOMNode(a.elem),null!=this.tableSelection&&null!=this.anchorCellNodeKey&&
|
37
37
|
A(e)&&d.is(T(e))&&(d=e.getKey(),this.tableSelection=this.tableSelection.clone()||ra(),this.focusCellNodeKey=d,this.tableSelection.set(this.tableNodeKey,this.anchorCellNodeKey,this.focusCellNodeKey),u.$setSelection(this.tableSelection),c.dispatchCommand(u.SELECTION_CHANGE_COMMAND,void 0),ta(c,this.table,this.tableSelection)))})}setAnchorCellForSelection(a){this.isHighlightingCells=!1;this.anchorCell=a;this.anchorX=a.x;this.anchorY=a.y;this.editor.update(()=>{var b=u.$getNearestNodeFromDOMNode(a.elem);
|
38
38
|
A(b)&&(b=b.getKey(),this.tableSelection=null!=this.tableSelection?this.tableSelection.clone():ra(),this.anchorCellNodeKey=b)})}formatCells(a){this.editor.update(()=>{let b=u.$getSelection();R(b)||J(11);let c=u.$createRangeSelection(),d=c.anchor,e=c.focus;b.getNodes().forEach(g=>{A(g)&&0!==g.getTextContentSize()&&(d.set(g.getKey(),0,"element"),e.set(g.getKey(),g.getChildrenSize(),"element"),c.formatText(a))});u.$setSelection(b);this.editor.dispatchCommand(u.SELECTION_CHANGE_COMMAND,void 0)})}clearText(){let a=
|
39
39
|
this.editor;a.update(()=>{let b=u.$getNodeByKey(this.tableNodeKey);if(!N(b))throw Error("Expected TableNode.");var c=u.$getSelection();R(c)||J(11);c=c.getNodes().filter(A);c.length===this.table.columns*this.table.rows?(b.selectPrevious(),b.remove(),u.$getRoot().selectStart()):(c.forEach(d=>{if(u.$isElementNode(d)){let e=u.$createParagraphNode(),g=u.$createTextNode();e.append(g);d.append(e);d.getChildren().forEach(f=>{f!==e&&f.remove()})}}),ta(a,this.table,null),u.$setSelection(null),a.dispatchCommand(u.SELECTION_CHANGE_COMMAND,
|
@@ -64,7 +64,7 @@ exports.$deleteTableColumn=function(a,b){let c=a.getChildren();for(let e=0;e<c.l
|
|
64
64
|
exports.$deleteTableColumn__EXPERIMENTAL=function(){var a=u.$getSelection();u.$isRangeSelection(a)||R(a)||J(118);var b=a.anchor.getNode();a=a.focus.getNode();let [c,,d]=Q(b);[a]=Q(a);let [e,g,f]=P(d,c,a);({startColumn:b}=g);let {startRow:m,startColumn:q}=f;var p=Math.min(b,q);let t=Math.max(b+c.__colSpan-1,q+a.__colSpan-1),k=t-p+1;if(e[0].length===t-p+1)d.selectPrevious(),d.remove();else{var l=e.length;for(let n=0;n<l;n++)for(let r=p;r<=t;r++){let {cell:v,startColumn:w}=e[n][r];w<p?r===p&&v.setColSpan(v.__colSpan-
|
65
65
|
Math.min(k,v.__colSpan-(p-w))):w+v.__colSpan-1>t?r===t&&v.setColSpan(v.__colSpan-(t-w+1)):v.remove()}p=e[m];a=b>q?p[b+c.__colSpan]:p[q+a.__colSpan];void 0!==a?({cell:b}=a,O(b)):({cell:b}=q<b?p[q-1]:p[b-1],O(b))}};
|
66
66
|
exports.$deleteTableRow__EXPERIMENTAL=function(){var a=u.$getSelection();u.$isRangeSelection(a)||R(a)||J(118);var b=a.anchor.getNode();a=a.focus.getNode();let [c,,d]=Q(b);[a]=Q(a);let [e,g,f]=P(d,c,a);({startRow:b}=g);var {startRow:m}=f;a=m+a.__rowSpan-1;if(e.length===a-b+1)d.remove();else{m=e[0].length;var q=e[a+1],p=d.getChildAtIndex(a+1);for(let k=a;k>=b;k--){for(var t=m-1;0<=t;t--){let {cell:l,startRow:n,startColumn:r}=e[k][t];if(r===t&&(k===b&&n<b&&l.setRowSpan(l.__rowSpan-(n-b)),n>=b&&n+l.__rowSpan-
|
67
|
-
1>a))if(l.setRowSpan(l.__rowSpan-(a-n+1)),null===p&&J(122),0===t)ma(p,l);else{let {cell:v}=q[t-1];v.insertAfter(l)}}t=d.getChildAtIndex(k);H(t)||J(123,String(k));t.remove()}void 0!==q?({cell:b}=q[0],O(b)):({cell:b}=e[b-1][0],O(b))}};exports.$getElementForTableNode=function(a,b){a=a.getElementByKey(b.getKey());if(null==a)throw Error("Table Element Not Found");return S(a)};exports.$getNodeTriplet=Q;
|
67
|
+
1>a))if(l.setRowSpan(l.__rowSpan-(a-n+1)),null===p&&J(122),0===t)ma(p,l);else{let {cell:v}=q[t-1];v.insertAfter(l)}}t=d.getChildAtIndex(k);H(t)||J(123,String(k));t.remove()}void 0!==q?({cell:b}=q[0],O(b)):({cell:b}=e[b-1][0],O(b))}};exports.$findCellNode=Da;exports.$findTableNode=T;exports.$getElementForTableNode=function(a,b){a=a.getElementByKey(b.getKey());if(null==a)throw Error("Table Element Not Found");return S(a)};exports.$getNodeTriplet=Q;
|
68
68
|
exports.$getTableCellNodeFromLexicalNode=function(a){a=h.$findMatchingParent(a,b=>A(b));return A(a)?a:null};exports.$getTableCellNodeRect=oa;exports.$getTableColumnIndexFromTableCellNode=function(a){return ia(a).getChildren().findIndex(b=>b.is(a))};exports.$getTableNodeFromLexicalNodeOrThrow=ja;exports.$getTableRowIndexFromTableCellNode=function(a){let b=ia(a);return ja(b).getChildren().findIndex(c=>c.is(b))};exports.$getTableRowNodeFromTableCellNodeOrThrow=ia;
|
69
69
|
exports.$insertTableColumn=function(a,b,c=!0,d,e){let g=a.getChildren(),f=[];for(let p=0;p<g.length;p++){let t=g[p];if(H(t))for(let k=0;k<d;k++){var m=t.getChildren();if(b>=m.length||0>b)throw Error("Table column target index out of range");m=m[b];A(m)||J(12);let {left:l,right:n}=ka(m,e);var q=x.NO_STATUS;if(l&&l.hasHeaderState(x.ROW)||n&&n.hasHeaderState(x.ROW))q|=x.ROW;q=z(q);q.append(u.$createParagraphNode());f.push({newTableCell:q,targetCell:m})}}f.forEach(({newTableCell:p,targetCell:t})=>{c?
|
70
70
|
t.insertAfter(p):t.insertBefore(p)});return a};
|
@@ -86,9 +86,9 @@ f.listenersToRemove.add(c.registerCommand(u.FORMAT_TEXT_COMMAND,k=>{let l=u.$get
|
|
86
86
|
w.startRow);l=Math.max(v.startColumn,w.startColumn);var B=Math.min(v.startRow,w.startRow);let E=Math.min(v.startColumn,w.startColumn);for(;B<=n;B++)for(let G=E;G<=l;G++){var F=r[B][G].cell;F.setFormat(k);F=F.getChildren();for(let L=0;L<F.length;L++){let M=F[L];u.$isElementNode(M)&&!M.isInline()&&M.setFormat(k)}}return!0},u.COMMAND_PRIORITY_CRITICAL));f.listenersToRemove.add(c.registerCommand(u.CONTROLLED_TEXT_INSERTION_COMMAND,k=>{var l=u.$getSelection();if(!U(l,a))return!1;if(R(l))f.clearHighlight();
|
87
87
|
else if(u.$isRangeSelection(l)){let n=h.$findMatchingParent(l.anchor.getNode(),r=>A(r));if(!A(n))return!1;if("string"===typeof k&&(l=Ka(c,l,a)))return Ja(l,a,[u.$createTextNode(k)]),!0}return!1},u.COMMAND_PRIORITY_CRITICAL));d&&f.listenersToRemove.add(c.registerCommand(u.KEY_TAB_COMMAND,k=>{var l=u.$getSelection();if(!u.$isRangeSelection(l)||!l.isCollapsed()||!U(l,a))return!1;l=Da(l.anchor.getNode());if(null===l)return!1;Z(k);l=a.getCordsFromCellNode(l,f.table);Aa(f,a,l.x,l.y,k.shiftKey?"backward":
|
88
88
|
"forward");return!0},u.COMMAND_PRIORITY_CRITICAL));f.listenersToRemove.add(c.registerCommand(u.FOCUS_COMMAND,()=>a.isSelected(),u.COMMAND_PRIORITY_HIGH));f.listenersToRemove.add(c.registerCommand(u.SELECTION_INSERT_CLIPBOARD_NODES_COMMAND,k=>{let {nodes:l,selection:n}=k;k=n.getStartEndPoints();var r=R(n);r=u.$isRangeSelection(n)&&null!==h.$findMatchingParent(n.anchor.getNode(),I=>A(I))&&null!==h.$findMatchingParent(n.focus.getNode(),I=>A(I))||r;if(1!==l.length||!N(l[0])||!r||null===k)return!1;var [v]=
|
89
|
-
k,w=l[0];k=w.getChildren();r=w.getFirstChildOrThrow().getChildrenSize();w=w.getChildrenSize();var B=h.$findMatchingParent(v.getNode(),I=>A(I)),E=(v=B&&h.$findMatchingParent(B,I=>H(I)))&&h.$findMatchingParent(v,I=>N(I));if(!A(B)||!H(v)||!N(E))return!1;var F=v.getIndexWithinParent(),G=Math.min(E.getChildrenSize()-1,F+w-1);w=B.getIndexWithinParent();B=Math.min(v.getChildrenSize()-1,w+r-1);r=Math.min(w,B);v=Math.min(F,G);w=Math.max(w,B);F=Math.max(F,G);E=E.getChildren();G=0;let L,M;for(B=v;B<=F;B++){var
|
90
|
-
E[B];if(!H(
|
89
|
+
k,w=l[0];k=w.getChildren();r=w.getFirstChildOrThrow().getChildrenSize();w=w.getChildrenSize();var B=h.$findMatchingParent(v.getNode(),I=>A(I)),E=(v=B&&h.$findMatchingParent(B,I=>H(I)))&&h.$findMatchingParent(v,I=>N(I));if(!A(B)||!H(v)||!N(E))return!1;var F=v.getIndexWithinParent(),G=Math.min(E.getChildrenSize()-1,F+w-1);w=B.getIndexWithinParent();B=Math.min(v.getChildrenSize()-1,w+r-1);r=Math.min(w,B);v=Math.min(F,G);w=Math.max(w,B);F=Math.max(F,G);E=E.getChildren();G=0;let L,M;for(B=v;B<=F;B++){var fa=
|
90
|
+
E[B];if(!H(fa))return!1;var ha=k[G];if(!H(ha))return!1;fa=fa.getChildren();ha=ha.getChildren();let I=0;for(let W=r;W<=w;W++){let X=fa[W];if(!A(X))return!1;let Ca=ha[I];if(!A(Ca))return!1;B===v&&W===r?L=X.getKey():B===F&&W===w&&(M=X.getKey());let Oa=X.getChildren();Ca.getChildren().forEach(Y=>{u.$isTextNode(Y)&&u.$createParagraphNode().append(Y);X.append(Y)});Oa.forEach(Y=>Y.remove());I++}G++}L&&M&&(k=ra(),k.set(l[0].getKey(),L,M),u.$setSelection(k));return!0},u.COMMAND_PRIORITY_CRITICAL));f.listenersToRemove.add(c.registerCommand(u.SELECTION_CHANGE_COMMAND,
|
91
91
|
()=>{let k=u.$getSelection(),l=u.$getPreviousSelection();if(u.$isRangeSelection(k)){let {anchor:B,focus:E}=k;var n=B.getNode(),r=E.getNode();n=Da(n);var v=Da(r),w=!(!n||!a.is(T(n)));r=!(!v||!a.is(T(v)));let F=w!==r,G=w&&r;w=k.isBackward();F?(n=k.clone(),r?n.focus.set(a.getParentOrThrow().getKey(),a.getIndexWithinParent(),"element"):n.anchor.set(a.getParentOrThrow().getKey(),w?a.getIndexWithinParent()+1:a.getIndexWithinParent(),"element"),u.$setSelection(n),ya(c,f)):G&&!n.is(v)&&(f.setAnchorCellForSelection(e(n)),
|
92
|
-
f.setFocusCellForSelection(e(v),!0),f.isSelecting||setTimeout(()=>{let {onMouseUp:L,onMouseMove:M}=q();f.isSelecting=!0;m.addEventListener("mouseup",L);m.addEventListener("mousemove",M)},0))}else k&&R(k)&&k.is(l)&&k.tableKey===a.getKey()&&(n=
|
92
|
+
f.setFocusCellForSelection(e(v),!0),f.isSelecting||setTimeout(()=>{let {onMouseUp:L,onMouseMove:M}=q();f.isSelecting=!0;m.addEventListener("mouseup",L);m.addEventListener("mousemove",M)},0))}else k&&R(k)&&k.is(l)&&k.tableKey===a.getKey()&&(n=ea?(c._window||window).getSelection():null)&&n.anchorNode&&n.focusNode&&(r=(r=u.$getNearestNodeFromDOMNode(n.focusNode))&&!a.is(T(r)),v=(v=u.$getNearestNodeFromDOMNode(n.anchorNode))&&a.is(T(v)),r&&v&&0<n.rangeCount&&(r=u.$createRangeSelectionFromDom(n,c)))&&
|
93
93
|
(r.anchor.set(a.getKey(),k.isBackward()?a.getChildrenSize():0,"element"),n.removeAllRanges(),u.$setSelection(r));if(k&&!k.is(l)&&(R(k)||R(l))&&f.tableSelection&&!f.tableSelection.is(l))return R(k)&&k.tableKey===f.tableNodeKey?f.updateTableTableSelection(k):!R(k)&&R(l)&&l.tableKey===f.tableNodeKey&&f.updateTableTableSelection(null),!1;f.hasHijackedSelectionStyles&&!a.isSelected()?za(c,f):!f.hasHijackedSelectionStyles&&a.isSelected()&&ya(c,f);return!1},u.COMMAND_PRIORITY_CRITICAL));f.listenersToRemove.add(c.registerCommand(u.INSERT_PARAGRAPH_COMMAND,
|
94
94
|
()=>{var k=u.$getSelection();return u.$isRangeSelection(k)&&k.isCollapsed()&&U(k,a)?(k=Ka(c,k,a))?(Ja(k,a),!0):!1:!1},u.COMMAND_PRIORITY_CRITICAL));return f};exports.getDOMCellFromTarget=ua;exports.getTableObserverFromTableElement=function(a){return a.__lexicalTableSelection}
|
package/LexicalTable.prod.mjs
CHANGED
@@ -6,4 +6,4 @@
|
|
6
6
|
*
|
7
7
|
*/
|
8
8
|
|
9
|
-
import{addClassNamesToElement as e,$findMatchingParent as t,removeClassNamesFromElement as n,isHTMLElement as o}from"@lexical/utils";import{ElementNode as r,$createParagraphNode as l,$isElementNode as s,$isLineBreakNode as i,$isTextNode as c,$applyNodeReplacement as a,createCommand as h,$createTextNode as u,$getSelection as d,$isRangeSelection as g,$createPoint as f,$normalizeSelection__EXPERIMENTAL as m,$getNodeByKey as p,isCurrentlyReadOnlyMode as S,$setSelection as _,SELECTION_CHANGE_COMMAND as C,$getNearestNodeFromDOMNode as w,$createRangeSelection as b,$getRoot as y,KEY_ARROW_DOWN_COMMAND as N,COMMAND_PRIORITY_HIGH as T,KEY_ARROW_UP_COMMAND as x,KEY_ARROW_LEFT_COMMAND as v,KEY_ARROW_RIGHT_COMMAND as E,KEY_ESCAPE_COMMAND as O,DELETE_WORD_COMMAND as M,DELETE_LINE_COMMAND as R,DELETE_CHARACTER_COMMAND as K,COMMAND_PRIORITY_CRITICAL as k,KEY_BACKSPACE_COMMAND as F,KEY_DELETE_COMMAND as A,FORMAT_TEXT_COMMAND as H,FORMAT_ELEMENT_COMMAND as P,CONTROLLED_TEXT_INSERTION_COMMAND as B,KEY_TAB_COMMAND as D,FOCUS_COMMAND as L,SELECTION_INSERT_CLIPBOARD_NODES_COMMAND as I,$getPreviousSelection as W,$createRangeSelectionFromDom as U,INSERT_PARAGRAPH_COMMAND as Y,$isDecoratorNode as X}from"lexical";const z=/^(\d+(?:\.\d+)?)px$/,J={BOTH:3,COLUMN:2,NO_STATUS:0,ROW:1};class $ extends r{static getType(){return"tablecell"}static clone(e){const t=new $(e.__headerState,e.__colSpan,e.__width,e.__key);return t.__rowSpan=e.__rowSpan,t.__backgroundColor=e.__backgroundColor,t}static importDOM(){return{td:e=>({conversion:j,priority:0}),th:e=>({conversion:j,priority:0})}}static importJSON(e){const t=e.colSpan||1,n=e.rowSpan||1,o=q(e.headerState,t,e.width||void 0);return o.__rowSpan=n,o.__backgroundColor=e.backgroundColor||null,o}constructor(e=J.NO_STATUS,t=1,n,o){super(o),this.__colSpan=t,this.__rowSpan=1,this.__headerState=e,this.__width=n,this.__backgroundColor=null}createDOM(t){const n=document.createElement(this.getTag());return this.__width&&(n.style.width=`${this.__width}px`),this.__colSpan>1&&(n.colSpan=this.__colSpan),this.__rowSpan>1&&(n.rowSpan=this.__rowSpan),null!==this.__backgroundColor&&(n.style.backgroundColor=this.__backgroundColor),e(n,t.theme.tableCell,this.hasHeader()&&t.theme.tableCellHeader),n}exportDOM(e){const{element:t}=super.exportDOM(e);if(t){const e=t;e.style.border="1px solid black",this.__colSpan>1&&(e.colSpan=this.__colSpan),this.__rowSpan>1&&(e.rowSpan=this.__rowSpan),e.style.width=`${this.getWidth()||75}px`,e.style.verticalAlign="top",e.style.textAlign="start";const n=this.getBackgroundColor();null!==n?e.style.backgroundColor=n:this.hasHeader()&&(e.style.backgroundColor="#f2f3f5")}return{element:t}}exportJSON(){return{...super.exportJSON(),backgroundColor:this.getBackgroundColor(),colSpan:this.__colSpan,headerState:this.__headerState,rowSpan:this.__rowSpan,type:"tablecell",width:this.getWidth()}}getColSpan(){return this.__colSpan}setColSpan(e){return this.getWritable().__colSpan=e,this}getRowSpan(){return this.__rowSpan}setRowSpan(e){return this.getWritable().__rowSpan=e,this}getTag(){return this.hasHeader()?"th":"td"}setHeaderStyles(e){return this.getWritable().__headerState=e,this.__headerState}getHeaderStyles(){return this.getLatest().__headerState}setWidth(e){return this.getWritable().__width=e,this.__width}getWidth(){return this.getLatest().__width}getBackgroundColor(){return this.getLatest().__backgroundColor}setBackgroundColor(e){this.getWritable().__backgroundColor=e}toggleHeaderStyle(e){const t=this.getWritable();return(t.__headerState&e)===e?t.__headerState-=e:t.__headerState+=e,t}hasHeaderState(e){return(this.getHeaderStyles()&e)===e}hasHeader(){return this.getLatest().__headerState!==J.NO_STATUS}updateDOM(e){return e.__headerState!==this.__headerState||e.__width!==this.__width||e.__colSpan!==this.__colSpan||e.__rowSpan!==this.__rowSpan||e.__backgroundColor!==this.__backgroundColor}isShadowRoot(){return!0}collapseAtStart(){return!0}canBeEmpty(){return!1}canIndent(){return!1}}function j(e){const t=e,n=e.nodeName.toLowerCase();let o;z.test(t.style.width)&&(o=parseFloat(t.style.width));const r=q("th"===n?J.ROW:J.NO_STATUS,t.colSpan,o);r.__rowSpan=t.rowSpan;const a=t.style.backgroundColor;""!==a&&(r.__backgroundColor=a);const h=t.style,u=h.textDecoration.split(" "),d="700"===h.fontWeight||"bold"===h.fontWeight,g=u.includes("line-through"),f="italic"===h.fontStyle,m=u.includes("underline");return{after:e=>(0===e.length&&e.push(l()),e),forChild:(e,t)=>{if(G(t)&&!s(e)){const t=l();return i(e)&&"\n"===e.getTextContent()?null:(c(e)&&(d&&e.toggleFormat("bold"),g&&e.toggleFormat("strikethrough"),f&&e.toggleFormat("italic"),m&&e.toggleFormat("underline")),t.append(e),t)}return e},node:r}}function q(e,t=1,n){return a(new $(e,t,n))}function G(e){return e instanceof $}const Q=h("INSERT_TABLE_COMMAND");class V extends r{static getType(){return"tablerow"}static clone(e){return new V(e.__height,e.__key)}static importDOM(){return{tr:e=>({conversion:Z,priority:0})}}static importJSON(e){return ee(e.height)}constructor(e,t){super(t),this.__height=e}exportJSON(){return{...super.exportJSON(),...this.getHeight()&&{height:this.getHeight()},type:"tablerow",version:1}}createDOM(t){const n=document.createElement("tr");return this.__height&&(n.style.height=`${this.__height}px`),e(n,t.theme.tableRow),n}isShadowRoot(){return!0}setHeight(e){return this.getWritable().__height=e,this.__height}getHeight(){return this.getLatest().__height}updateDOM(e){return e.__height!==this.__height}canBeEmpty(){return!1}canIndent(){return!1}}function Z(e){const t=e;let n;return z.test(t.style.height)&&(n=parseFloat(t.style.height)),{node:ee(n)}}function ee(e){return a(new V(e))}function te(e){return e instanceof V}function ne(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var oe=ne((function(e){const t=new URLSearchParams;t.append("code",e);for(let e=1;e<arguments.length;e++)t.append("v",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));const re="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function le(e,t,n=!0){const o=rt();for(let r=0;r<e;r++){const e=ee();for(let o=0;o<t;o++){let t=J.NO_STATUS;"object"==typeof n?(0===r&&n.rows&&(t|=J.ROW),0===o&&n.columns&&(t|=J.COLUMN)):n&&(0===r&&(t|=J.ROW),0===o&&(t|=J.COLUMN));const s=q(t),i=l();i.append(u()),s.append(i),e.append(s)}o.append(e)}return o}function se(e){const n=t(e,(e=>G(e)));return G(n)?n:null}function ie(e){const n=t(e,(e=>te(e)));if(te(n))return n;throw new Error("Expected table cell to be inside of table row.")}function ce(e){const n=t(e,(e=>lt(e)));if(lt(n))return n;throw new Error("Expected table cell to be inside of table.")}function ae(e){const t=ie(e);return ce(t).getChildren().findIndex((e=>e.is(t)))}function he(e){return ie(e).getChildren().findIndex((t=>t.is(e)))}function ue(e,t){const n=ce(e),{x:o,y:r}=n.getCordsFromCellNode(e,t);return{above:n.getCellNodeFromCords(o,r-1,t),below:n.getCellNodeFromCords(o,r+1,t),left:n.getCellNodeFromCords(o-1,r,t),right:n.getCellNodeFromCords(o+1,r,t)}}function de(e,t){const n=e.getChildren();if(t>=n.length||t<0)throw new Error("Expected table cell to be inside of table row.");return n[t].remove(),e}function ge(e,t,n=!0,o,r){const s=e.getChildren();if(t>=s.length||t<0)throw new Error("Table row target index out of range");const i=s[t];if(!te(i))throw new Error("Row before insertion index does not exist.");for(let e=0;e<o;e++){const e=i.getChildren(),t=e.length,o=ee();for(let n=0;n<t;n++){const t=e[n];G(t)||oe(12);const{above:s,below:i}=ue(t,r);let c=J.NO_STATUS;const a=s&&s.getWidth()||i&&i.getWidth()||void 0;(s&&s.hasHeaderState(J.COLUMN)||i&&i.hasHeaderState(J.COLUMN))&&(c|=J.COLUMN);const h=q(c,1,a);h.append(l()),o.append(h)}n?i.insertAfter(o):i.insertBefore(o)}return e}const fe=(e,t)=>e===J.BOTH||e===t?t:J.NO_STATUS;function me(e=!0){const t=d();g(t)||Me(t)||oe(118);const n=t.focus.getNode(),[o,,r]=ve(n),[s,i]=Te(r,o,o),c=s[0].length,{startRow:a}=i;if(e){const e=a+o.__rowSpan-1,t=s[e],n=ee();for(let o=0;o<c;o++){const{cell:r,startRow:s}=t[o];if(s+r.__rowSpan-1<=e){const e=t[o].cell.__headerState,r=fe(e,J.COLUMN);n.append(q(r).append(l()))}else r.setRowSpan(r.__rowSpan+1)}const i=r.getChildAtIndex(e);te(i)||oe(145),i.insertAfter(n)}else{const e=s[a],t=ee();for(let n=0;n<c;n++){const{cell:o,startRow:r}=e[n];if(r===a){const o=e[n].cell.__headerState,r=fe(o,J.COLUMN);t.append(q(r).append(l()))}else o.setRowSpan(o.__rowSpan+1)}const n=r.getChildAtIndex(a);te(n)||oe(145),n.insertBefore(t)}}function pe(e,t,n=!0,o,r){const s=e.getChildren(),i=[];for(let e=0;e<s.length;e++){const n=s[e];if(te(n))for(let e=0;e<o;e++){const e=n.getChildren();if(t>=e.length||t<0)throw new Error("Table column target index out of range");const o=e[t];G(o)||oe(12);const{left:s,right:c}=ue(o,r);let a=J.NO_STATUS;(s&&s.hasHeaderState(J.ROW)||c&&c.hasHeaderState(J.ROW))&&(a|=J.ROW);const h=q(a);h.append(l()),i.push({newTableCell:h,targetCell:o})}}return i.forEach((({newTableCell:e,targetCell:t})=>{n?t.insertAfter(e):t.insertBefore(e)})),e}function Se(e=!0){const t=d();g(t)||Me(t)||oe(118);const n=t.anchor.getNode(),o=t.focus.getNode(),[r]=ve(n),[s,,i]=ve(o),[c,a,h]=Te(i,s,r),u=c.length,f=e?Math.max(a.startColumn,h.startColumn):Math.min(a.startColumn,h.startColumn),m=e?f+s.__colSpan-1:f-1,p=i.getFirstChild();te(p)||oe(120);let S=null;function _(e=J.NO_STATUS){const t=q(e).append(l());return null===S&&(S=t),t}let C=p;e:for(let e=0;e<u;e++){if(0!==e){const e=C.getNextSibling();te(e)||oe(121),C=e}const t=c[e],n=t[m<0?0:m].cell.__headerState,o=fe(n,J.ROW);if(m<0){ye(C,_(o));continue}const{cell:r,startColumn:l,startRow:s}=t[m];if(l+r.__colSpan-1<=m){let n=r,l=s,i=m;for(;l!==e&&n.__rowSpan>1;){if(i-=r.__colSpan,!(i>=0)){C.append(_(o));continue e}{const{cell:e,startRow:o}=t[i];n=e,l=o}}n.insertAfter(_(o))}else r.setColSpan(r.__colSpan+1)}null!==S&&be(S)}function _e(e,t){const n=e.getChildren();for(let e=0;e<n.length;e++){const o=n[e];if(te(o)){const e=o.getChildren();if(t>=e.length||t<0)throw new Error("Table column target index out of range");e[t].remove()}}return e}function Ce(){const e=d();g(e)||Me(e)||oe(118);const t=e.anchor.getNode(),n=e.focus.getNode(),[o,,r]=ve(t),[l]=ve(n),[s,i,c]=Te(r,o,l),{startRow:a}=i,{startRow:h}=c,u=h+l.__rowSpan-1;if(s.length===u-a+1)return void r.remove();const f=s[0].length,m=s[u+1],p=r.getChildAtIndex(u+1);for(let e=u;e>=a;e--){for(let t=f-1;t>=0;t--){const{cell:n,startRow:o,startColumn:r}=s[e][t];if(r===t&&(e===a&&o<a&&n.setRowSpan(n.__rowSpan-(o-a)),o>=a&&o+n.__rowSpan-1>u))if(n.setRowSpan(n.__rowSpan-(u-o+1)),null===p&&oe(122),0===t)ye(p,n);else{const{cell:e}=m[t-1];e.insertAfter(n)}}const t=r.getChildAtIndex(e);te(t)||oe(123,String(e)),t.remove()}if(void 0!==m){const{cell:e}=m[0];be(e)}else{const e=s[a-1],{cell:t}=e[0];be(t)}}function we(){const e=d();g(e)||Me(e)||oe(118);const t=e.anchor.getNode(),n=e.focus.getNode(),[o,,r]=ve(t),[l]=ve(n),[s,i,c]=Te(r,o,l),{startColumn:a}=i,{startRow:h,startColumn:u}=c,f=Math.min(a,u),m=Math.max(a+o.__colSpan-1,u+l.__colSpan-1),p=m-f+1;if(s[0].length===m-f+1)return r.selectPrevious(),void r.remove();const S=s.length;for(let e=0;e<S;e++)for(let t=f;t<=m;t++){const{cell:n,startColumn:o}=s[e][t];if(o<f){if(t===f){const e=f-o;n.setColSpan(n.__colSpan-Math.min(p,n.__colSpan-e))}}else if(o+n.__colSpan-1>m){if(t===m){const e=m-o+1;n.setColSpan(n.__colSpan-e)}}else n.remove()}const _=s[h],C=a>u?_[a+o.__colSpan]:_[u+l.__colSpan];if(void 0!==C){const{cell:e}=C;be(e)}else{const e=u<a?_[u-1]:_[a-1],{cell:t}=e;be(t)}}function be(e){const t=e.getFirstDescendant();null==t?e.selectStart():t.getParentOrThrow().selectStart()}function ye(e,t){const n=e.getFirstChild();null!==n?n.insertBefore(t):e.append(t)}function Ne(){const e=d();g(e)||Me(e)||oe(118);const t=e.anchor.getNode(),[n,o,r]=ve(t),l=n.__colSpan,s=n.__rowSpan;if(l>1){for(let e=1;e<l;e++)n.insertAfter(q(J.NO_STATUS));n.setColSpan(1)}if(s>1){const[e,t]=Te(r,n,n),{startColumn:i,startRow:c}=t;let a;for(let t=1;t<s;t++){const n=c+t,r=e[n];a=(a||o).getNextSibling(),te(a)||oe(125);let s=null;for(let e=0;e<i;e++){const t=r[e],o=t.cell;t.startRow===n&&(s=o),o.__colSpan>1&&(e+=o.__colSpan-1)}if(null===s)for(let e=0;e<l;e++)ye(a,q(J.NO_STATUS));else for(let e=0;e<l;e++)s.insertAfter(q(J.NO_STATUS))}n.setRowSpan(1)}}function Te(e,t,n){const[o,r,l]=xe(e,t,n);return null===r&&oe(110),null===l&&oe(111),[o,r,l]}function xe(e,t,n){const o=[];let r=null,l=null;function s(e,s,i){const c={cell:i,startColumn:s,startRow:e},a=i.__rowSpan,h=i.__colSpan;for(let t=0;t<a;t++){void 0===o[e+t]&&(o[e+t]=[]);for(let n=0;n<h;n++)o[e+t][s+n]=c}null!==t&&t.is(i)&&(r=c),null!==n&&n.is(i)&&(l=c)}function i(e,t){return void 0===o[e]||void 0===o[e][t]}const c=e.getChildren();for(let e=0;e<c.length;e++){const t=c[e];te(t)||oe(146);const n=t.getChildren();let o=0;for(const t of n){for(G(t)||oe(147);!i(e,o);)o++;s(e,o,t),o+=t.__colSpan}}return[o,r,l]}function ve(e){let n;if(e instanceof $)n=e;else if("__type"in e){const o=t(e,G);G(o)||oe(148),n=o}else{const o=t(e.getNode(),G);G(o)||oe(148),n=o}const o=n.getParent();te(o)||oe(149);const r=o.getParent();return lt(r)||oe(150),[n,o,r]}function Ee(e){const[t,,n]=ve(e),o=n.getChildren(),r=o.length,l=o[0].getChildren().length,s=new Array(r);for(let e=0;e<r;e++)s[e]=new Array(l);for(let e=0;e<r;e++){const n=o[e].getChildren();let r=0;for(let o=0;o<n.length;o++){for(;s[e][r];)r++;const l=n[o],i=l.__rowSpan||1,c=l.__colSpan||1;for(let t=0;t<i;t++)for(let n=0;n<c;n++)s[e+t][r+n]=l;if(t===l)return{colSpan:c,columnIndex:r,rowIndex:e,rowSpan:i};r+=c}}return null}class Oe{constructor(e,t,n){this.anchor=t,this.focus=n,t._selection=this,n._selection=this,this._cachedNodes=null,this.dirty=!1,this.tableKey=e}getStartEndPoints(){return[this.anchor,this.focus]}isBackward(){return this.focus.isBefore(this.anchor)}getCachedNodes(){return this._cachedNodes}setCachedNodes(e){this._cachedNodes=e}is(e){return!!Me(e)&&(this.tableKey===e.tableKey&&this.anchor.is(e.anchor)&&this.focus.is(e.focus))}set(e,t,n){this.dirty=!0,this.tableKey=e,this.anchor.key=t,this.focus.key=n,this._cachedNodes=null}clone(){return new Oe(this.tableKey,this.anchor,this.focus)}isCollapsed(){return!1}extract(){return this.getNodes()}insertRawText(e){}insertText(){}insertNodes(e){const t=this.focus.getNode();s(t)||oe(151);m(t.select(0,t.getChildrenSize())).insertNodes(e)}getShape(){const e=p(this.anchor.key);G(e)||oe(152);const t=Ee(e);null===t&&oe(153);const n=p(this.focus.key);G(n)||oe(154);const o=Ee(n);null===o&&oe(155);const r=Math.min(t.columnIndex,o.columnIndex),l=Math.max(t.columnIndex,o.columnIndex),s=Math.min(t.rowIndex,o.rowIndex),i=Math.max(t.rowIndex,o.rowIndex);return{fromX:Math.min(r,l),fromY:Math.min(s,i),toX:Math.max(r,l),toY:Math.max(s,i)}}getNodes(){const e=this._cachedNodes;if(null!==e)return e;const n=this.anchor.getNode(),o=this.focus.getNode(),r=t(n,G),l=t(o,G);G(r)||oe(152),G(l)||oe(154);const s=r.getParent();te(s)||oe(156);const i=s.getParent();lt(i)||oe(157);const c=l.getParents()[1];if(c!==i){if(i.isParentOf(l)){const e=c.getParent();null==e&&oe(159),this.set(this.tableKey,l.getKey(),e.getKey())}else{const e=i.getParent();null==e&&oe(158),this.set(this.tableKey,e.getKey(),l.getKey())}return this.getNodes()}const[a,h,u]=Te(i,r,l);let d=Math.min(h.startColumn,u.startColumn),g=Math.min(h.startRow,u.startRow),f=Math.max(h.startColumn+h.cell.__colSpan-1,u.startColumn+u.cell.__colSpan-1),m=Math.max(h.startRow+h.cell.__rowSpan-1,u.startRow+u.cell.__rowSpan-1),p=d,_=g,C=d,w=g;function b(e){const{cell:t,startColumn:n,startRow:o}=e;d=Math.min(d,n),g=Math.min(g,o),f=Math.max(f,n+t.__colSpan-1),m=Math.max(m,o+t.__rowSpan-1)}for(;d<p||g<_||f>C||m>w;){if(d<p){const e=w-_,t=p-1;for(let n=0;n<=e;n++)b(a[_+n][t]);p=t}if(g<_){const e=C-p,t=_-1;for(let n=0;n<=e;n++)b(a[t][p+n]);_=t}if(f>C){const e=w-_,t=C+1;for(let n=0;n<=e;n++)b(a[_+n][t]);C=t}if(m>w){const e=C-p,t=w+1;for(let n=0;n<=e;n++)b(a[t][p+n]);w=t}}const y=[i];let N=null;for(let e=g;e<=m;e++)for(let t=d;t<=f;t++){const{cell:n}=a[e][t],o=n.getParent();te(o)||oe(160),o!==N&&y.push(o),y.push(n,...Ke(n)),N=o}return S()||(this._cachedNodes=y),y}getTextContent(){const e=this.getNodes();let t="";for(let n=0;n<e.length;n++)t+=e[n].getTextContent();return t}}function Me(e){return e instanceof Oe}function Re(){const e=f("root",0,"element"),t=f("root",0,"element");return new Oe("root",e,t)}function Ke(e){const t=[],n=[e];for(;n.length>0;){const o=n.pop();void 0===o&&oe(112),s(o)&&n.unshift(...o.getChildren()),o!==e&&t.push(o)}return t}class ke{constructor(e,t){this.isHighlightingCells=!1,this.anchorX=-1,this.anchorY=-1,this.focusX=-1,this.focusY=-1,this.listenersToRemove=new Set,this.tableNodeKey=t,this.editor=e,this.table={columns:0,domRows:[],rows:0},this.tableSelection=null,this.anchorCellNodeKey=null,this.focusCellNodeKey=null,this.anchorCell=null,this.focusCell=null,this.hasHijackedSelectionStyles=!1,this.trackTable(),this.isSelecting=!1}getTable(){return this.table}removeListeners(){Array.from(this.listenersToRemove).forEach((e=>e()))}trackTable(){const e=new MutationObserver((e=>{this.editor.update((()=>{let t=!1;for(let n=0;n<e.length;n++){const o=e[n].target.nodeName;if("TABLE"===o||"TBODY"===o||"THEAD"===o||"TR"===o){t=!0;break}}if(!t)return;const n=this.editor.getElementByKey(this.tableNodeKey);if(!n)throw new Error("Expected to find TableElement in DOM");this.table=De(n)}))}));this.editor.update((()=>{const t=this.editor.getElementByKey(this.tableNodeKey);if(!t)throw new Error("Expected to find TableElement in DOM");this.table=De(t),e.observe(t,{childList:!0,subtree:!0})}))}clearHighlight(){const e=this.editor;this.isHighlightingCells=!1,this.anchorX=-1,this.anchorY=-1,this.focusX=-1,this.focusY=-1,this.tableSelection=null,this.anchorCellNodeKey=null,this.focusCellNodeKey=null,this.anchorCell=null,this.focusCell=null,this.hasHijackedSelectionStyles=!1,this.enableHighlightStyle(),e.update((()=>{if(!lt(p(this.tableNodeKey)))throw new Error("Expected TableNode.");const t=e.getElementByKey(this.tableNodeKey);if(!t)throw new Error("Expected to find TableElement in DOM");const n=De(t);Le(e,n,null),_(null),e.dispatchCommand(C,void 0)}))}enableHighlightStyle(){const e=this.editor;e.update((()=>{const t=e.getElementByKey(this.tableNodeKey);if(!t)throw new Error("Expected to find TableElement in DOM");n(t,e._config.theme.tableSelection),t.classList.remove("disable-selection"),this.hasHijackedSelectionStyles=!1}))}disableHighlightStyle(){const t=this.editor;t.update((()=>{const n=t.getElementByKey(this.tableNodeKey);if(!n)throw new Error("Expected to find TableElement in DOM");e(n,t._config.theme.tableSelection),this.hasHijackedSelectionStyles=!0}))}updateTableTableSelection(e){if(null!==e&&e.tableKey===this.tableNodeKey){const t=this.editor;this.tableSelection=e,this.isHighlightingCells=!0,this.disableHighlightStyle(),Le(t,this.table,this.tableSelection)}else null==e?this.clearHighlight():(this.tableNodeKey=e.tableKey,this.updateTableTableSelection(e))}setFocusCellForSelection(e,t=!1){const n=this.editor;n.update((()=>{const o=p(this.tableNodeKey);if(!lt(o))throw new Error("Expected TableNode.");if(!n.getElementByKey(this.tableNodeKey))throw new Error("Expected to find TableElement in DOM");const r=e.x,l=e.y;if(this.focusCell=e,null!==this.anchorCell){const e=Ae(n._window);e&&e.setBaseAndExtent(this.anchorCell.elem,0,this.focusCell.elem,0)}if(this.isHighlightingCells||this.anchorX===r&&this.anchorY===l&&!t){if(r===this.focusX&&l===this.focusY)return}else this.isHighlightingCells=!0,this.disableHighlightStyle();if(this.focusX=r,this.focusY=l,this.isHighlightingCells){const t=w(e.elem);if(null!=this.tableSelection&&null!=this.anchorCellNodeKey&&G(t)&&o.is(Ge(t))){const e=t.getKey();this.tableSelection=this.tableSelection.clone()||Re(),this.focusCellNodeKey=e,this.tableSelection.set(this.tableNodeKey,this.anchorCellNodeKey,this.focusCellNodeKey),_(this.tableSelection),n.dispatchCommand(C,void 0),Le(n,this.table,this.tableSelection)}}}))}setAnchorCellForSelection(e){this.isHighlightingCells=!1,this.anchorCell=e,this.anchorX=e.x,this.anchorY=e.y,this.editor.update((()=>{const t=w(e.elem);if(G(t)){const e=t.getKey();this.tableSelection=null!=this.tableSelection?this.tableSelection.clone():Re(),this.anchorCellNodeKey=e}}))}formatCells(e){this.editor.update((()=>{const t=d();Me(t)||oe(11);const n=b(),o=n.anchor,r=n.focus;t.getNodes().forEach((t=>{G(t)&&0!==t.getTextContentSize()&&(o.set(t.getKey(),0,"element"),r.set(t.getKey(),t.getChildrenSize(),"element"),n.formatText(e))})),_(t),this.editor.dispatchCommand(C,void 0)}))}clearText(){const e=this.editor;e.update((()=>{const t=p(this.tableNodeKey);if(!lt(t))throw new Error("Expected TableNode.");const n=d();Me(n)||oe(11);const o=n.getNodes().filter(G);if(o.length!==this.table.columns*this.table.rows)o.forEach((e=>{if(s(e)){const t=l(),n=u();t.append(n),e.append(t),e.getChildren().forEach((e=>{e!==t&&e.remove()}))}})),Le(e,this.table,null),_(null),e.dispatchCommand(C,void 0);else{t.selectPrevious(),t.remove();y().selectStart()}}))}}const Fe="__lexicalTableSelection",Ae=e=>re?(e||window).getSelection():null;function He(e,n,o,r){const i=o.getRootElement();if(null===i)throw new Error("No root element.");const a=new ke(o,e.getKey()),h=o._window||window;!function(e,t){e[Fe]=t}(n,a);const f=()=>{const e=()=>{a.isSelecting=!1,h.removeEventListener("mouseup",e),h.removeEventListener("mousemove",t)},t=n=>{setTimeout((()=>{if(1&~n.buttons&&a.isSelecting)return a.isSelecting=!1,h.removeEventListener("mouseup",e),void h.removeEventListener("mousemove",t);const o=Be(n.target);null===o||a.anchorX===o.x&&a.anchorY===o.y||(n.preventDefault(),a.setFocusCellForSelection(o))}),0)};return{onMouseMove:t,onMouseUp:e}};n.addEventListener("mousedown",(e=>{setTimeout((()=>{if(0!==e.button)return;if(!h)return;const t=Be(e.target);null!==t&&(Ve(e),a.setAnchorCellForSelection(t));const{onMouseUp:n,onMouseMove:o}=f();a.isSelecting=!0,h.addEventListener("mouseup",n),h.addEventListener("mousemove",o)}),0)}));const m=e=>{0===e.button&&o.update((()=>{const t=d(),n=e.target;Me(t)&&t.tableKey===a.tableNodeKey&&i.contains(n)&&a.clearHighlight()}))};h.addEventListener("mousedown",m),a.listenersToRemove.add((()=>h.removeEventListener("mousedown",m))),a.listenersToRemove.add(o.registerCommand(N,(t=>Qe(o,t,"down",e,a)),T)),a.listenersToRemove.add(o.registerCommand(x,(t=>Qe(o,t,"up",e,a)),T)),a.listenersToRemove.add(o.registerCommand(v,(t=>Qe(o,t,"backward",e,a)),T)),a.listenersToRemove.add(o.registerCommand(E,(t=>Qe(o,t,"forward",e,a)),T)),a.listenersToRemove.add(o.registerCommand(O,(e=>{const n=d();if(Me(n)){const o=t(n.focus.getNode(),G);if(G(o))return Ve(e),o.selectEnd(),!0}return!1}),T));[M,R,K].forEach((n=>{a.listenersToRemove.add(o.registerCommand(n,(n=>()=>{const o=d();if(!Xe(o,e))return!1;if(Me(o))return a.clearText(),!0;if(g(o)){const r=t(o.anchor.getNode(),(e=>G(e)));if(!G(r))return!1;const l=o.anchor.getNode(),i=o.focus.getNode(),c=e.isParentOf(l),h=e.isParentOf(i);if(c&&!h||h&&!c)return a.clearText(),!0;const u=t(o.anchor.getNode(),(e=>s(e))),d=u&&t(u,(e=>s(e)&&G(e.getParent())));if(!s(d)||!s(u))return!1;if(n===R&&null===d.getPreviousSibling())return!0}return!1})(n),k))}));const p=n=>{const o=d();if(!Xe(o,e))return!1;if(Me(o))return n.preventDefault(),n.stopPropagation(),a.clearText(),!0;if(g(o)){const e=t(o.anchor.getNode(),(e=>G(e)));if(!G(e))return!1}return!1};function S(t){const n=e.getCordsFromCellNode(t,a.table);return e.getDOMCellFromCordsOrThrow(n.x,n.y,a.table)}return a.listenersToRemove.add(o.registerCommand(F,p,k)),a.listenersToRemove.add(o.registerCommand(A,p,k)),a.listenersToRemove.add(o.registerCommand(H,(n=>{const o=d();if(!Xe(o,e))return!1;if(Me(o))return a.formatCells(n),!0;if(g(o)){const e=t(o.anchor.getNode(),(e=>G(e)));if(!G(e))return!1}return!1}),k)),a.listenersToRemove.add(o.registerCommand(P,(t=>{const n=d();if(!Me(n)||!Xe(n,e))return!1;const o=n.anchor.getNode(),r=n.focus.getNode();if(!G(o)||!G(r))return!1;const[l,i,c]=Te(e,o,r),a=Math.max(i.startRow,c.startRow),h=Math.max(i.startColumn,c.startColumn),u=Math.min(i.startRow,c.startRow),g=Math.min(i.startColumn,c.startColumn);for(let e=u;e<=a;e++)for(let n=g;n<=h;n++){const o=l[e][n].cell;o.setFormat(t);const r=o.getChildren();for(let e=0;e<r.length;e++){const n=r[e];s(n)&&!n.isInline()&&n.setFormat(t)}}return!0}),k)),a.listenersToRemove.add(o.registerCommand(B,(n=>{const r=d();if(!Xe(r,e))return!1;if(Me(r))return a.clearHighlight(),!1;if(g(r)){const l=t(r.anchor.getNode(),(e=>G(e)));if(!G(l))return!1;if("string"==typeof n){const t=et(o,r,e);if(t)return Ze(t,e,[u(n)]),!0}}return!1}),k)),r&&a.listenersToRemove.add(o.registerCommand(D,(t=>{const n=d();if(!g(n)||!n.isCollapsed()||!Xe(n,e))return!1;const o=qe(n.anchor.getNode());if(null===o)return!1;Ve(t);const r=e.getCordsFromCellNode(o,a.table);return Ue(a,e,r.x,r.y,t.shiftKey?"backward":"forward"),!0}),k)),a.listenersToRemove.add(o.registerCommand(L,(t=>e.isSelected()),T)),a.listenersToRemove.add(o.registerCommand(I,(e=>{const{nodes:n,selection:o}=e,r=o.getStartEndPoints(),s=Me(o),i=g(o)&&null!==t(o.anchor.getNode(),(e=>G(e)))&&null!==t(o.focus.getNode(),(e=>G(e)))||s;if(1!==n.length||!lt(n[0])||!i||null===r)return!1;const[a]=r,h=n[0],u=h.getChildren(),d=h.getFirstChildOrThrow().getChildrenSize(),f=h.getChildrenSize(),m=t(a.getNode(),(e=>G(e))),p=m&&t(m,(e=>te(e))),S=p&&t(p,(e=>lt(e)));if(!G(m)||!te(p)||!lt(S))return!1;const C=p.getIndexWithinParent(),w=Math.min(S.getChildrenSize()-1,C+f-1),b=m.getIndexWithinParent(),y=Math.min(p.getChildrenSize()-1,b+d-1),N=Math.min(b,y),T=Math.min(C,w),x=Math.max(b,y),v=Math.max(C,w),E=S.getChildren();let O,M,R=0;for(let e=T;e<=v;e++){const t=E[e];if(!te(t))return!1;const n=u[R];if(!te(n))return!1;const o=t.getChildren(),r=n.getChildren();let s=0;for(let t=N;t<=x;t++){const n=o[t];if(!G(n))return!1;const i=r[s];if(!G(i))return!1;e===T&&t===N?O=n.getKey():e===v&&t===x&&(M=n.getKey());const a=n.getChildren();i.getChildren().forEach((e=>{if(c(e)){l().append(e),n.append(e)}else n.append(e)})),a.forEach((e=>e.remove())),s++}R++}if(O&&M){const e=Re();e.set(n[0].getKey(),O,M),_(e)}return!0}),k)),a.listenersToRemove.add(o.registerCommand(C,(()=>{const t=d(),n=W();if(g(t)){const{anchor:n,focus:r}=t,l=n.getNode(),s=r.getNode(),i=qe(l),c=qe(s),u=!(!i||!e.is(Ge(i))),d=!(!c||!e.is(Ge(c))),g=u!==d,m=u&&d,p=t.isBackward();if(g){const n=t.clone();d?n.focus.set(e.getParentOrThrow().getKey(),e.getIndexWithinParent(),"element"):n.anchor.set(e.getParentOrThrow().getKey(),p?e.getIndexWithinParent()+1:e.getIndexWithinParent(),"element"),_(n),We(o,a)}else m&&(i.is(c)||(a.setAnchorCellForSelection(S(i)),a.setFocusCellForSelection(S(c),!0),a.isSelecting||setTimeout((()=>{const{onMouseUp:e,onMouseMove:t}=f();a.isSelecting=!0,h.addEventListener("mouseup",e),h.addEventListener("mousemove",t)}),0)))}else if(t&&Me(t)&&t.is(n)&&t.tableKey===e.getKey()){const n=Ae(o._window);if(n&&n.anchorNode&&n.focusNode){const r=w(n.focusNode),l=r&&!e.is(Ge(r)),s=w(n.anchorNode),i=s&&e.is(Ge(s));if(l&&i&&n.rangeCount>0){const r=U(n,o);r&&(r.anchor.set(e.getKey(),t.isBackward()?e.getChildrenSize():0,"element"),n.removeAllRanges(),_(r))}}}return t&&!t.is(n)&&(Me(t)||Me(n))&&a.tableSelection&&!a.tableSelection.is(n)?(Me(t)&&t.tableKey===a.tableNodeKey?a.updateTableTableSelection(t):!Me(t)&&Me(n)&&n.tableKey===a.tableNodeKey&&a.updateTableTableSelection(null),!1):(a.hasHijackedSelectionStyles&&!e.isSelected()?function(e,t){t.enableHighlightStyle(),Ie(t.table,(t=>{const n=t.elem;t.highlighted=!1,je(e,t),n.getAttribute("style")||n.removeAttribute("style")}))}(o,a):!a.hasHijackedSelectionStyles&&e.isSelected()&&We(o,a),!1)}),k)),a.listenersToRemove.add(o.registerCommand(Y,(()=>{const t=d();if(!g(t)||!t.isCollapsed()||!Xe(t,e))return!1;const n=et(o,t,e);return!!n&&(Ze(n,e),!0)}),k)),a}function Pe(e){return e[Fe]}function Be(e){let t=e;for(;null!=t;){const e=t.nodeName;if("TD"===e||"TH"===e){const e=t._cell;return void 0===e?null:e}t=t.parentNode}return null}function De(e){const t=[],n={columns:0,domRows:t,rows:0};let o=e.firstChild,r=0,l=0;for(t.length=0;null!=o;){const e=o.nodeName;if("TD"===e||"TH"===e){const e={elem:o,hasBackgroundColor:""!==o.style.backgroundColor,highlighted:!1,x:r,y:l};o._cell=e;let n=t[l];void 0===n&&(n=t[l]=[]),n[r]=e}else{const e=o.firstChild;if(null!=e){o=e;continue}}const n=o.nextSibling;if(null!=n){r++,o=n;continue}const s=o.parentNode;if(null!=s){const e=s.nextSibling;if(null==e)break;l++,r=0,o=e}}return n.columns=r+1,n.rows=l+1,n}function Le(e,t,n){const o=new Set(n?n.getNodes():[]);Ie(t,((t,n)=>{const r=t.elem;o.has(n)?(t.highlighted=!0,$e(e,t)):(t.highlighted=!1,je(e,t),r.getAttribute("style")||r.removeAttribute("style"))}))}function Ie(e,t){const{domRows:n}=e;for(let e=0;e<n.length;e++){const o=n[e];if(o)for(let n=0;n<o.length;n++){const r=o[n];if(!r)continue;const l=w(r.elem);null!==l&&t(r,l,{x:n,y:e})}}}function We(e,t){t.disableHighlightStyle(),Ie(t.table,(t=>{t.highlighted=!0,$e(e,t)}))}const Ue=(e,t,n,o,r)=>{const l="forward"===r;switch(r){case"backward":case"forward":return n!==(l?e.table.columns-1:0)?ze(t.getCellNodeFromCordsOrThrow(n+(l?1:-1),o,e.table),l):o!==(l?e.table.rows-1:0)?ze(t.getCellNodeFromCordsOrThrow(l?0:e.table.columns-1,o+(l?1:-1),e.table),l):l?t.selectNext():t.selectPrevious(),!0;case"up":return 0!==o?ze(t.getCellNodeFromCordsOrThrow(n,o-1,e.table),!1):t.selectPrevious(),!0;case"down":return o!==e.table.rows-1?ze(t.getCellNodeFromCordsOrThrow(n,o+1,e.table),!0):t.selectNext(),!0;default:return!1}},Ye=(e,t,n,o,r)=>{const l="forward"===r;switch(r){case"backward":case"forward":return n!==(l?e.table.columns-1:0)&&e.setFocusCellForSelection(t.getDOMCellFromCordsOrThrow(n+(l?1:-1),o,e.table)),!0;case"up":return 0!==o&&(e.setFocusCellForSelection(t.getDOMCellFromCordsOrThrow(n,o-1,e.table)),!0);case"down":return o!==e.table.rows-1&&(e.setFocusCellForSelection(t.getDOMCellFromCordsOrThrow(n,o+1,e.table)),!0);default:return!1}};function Xe(e,t){if(g(e)||Me(e)){const n=t.isParentOf(e.anchor.getNode()),o=t.isParentOf(e.focus.getNode());return n&&o}return!1}function ze(e,t){t?e.selectStart():e.selectEnd()}const Je="172,206,247";function $e(e,t){const n=t.elem,o=w(n);G(o)||oe(131);null===o.getBackgroundColor()?n.style.setProperty("background-color",`rgb(${Je})`):n.style.setProperty("background-image",`linear-gradient(to right, rgba(${Je},0.85), rgba(${Je},0.85))`),n.style.setProperty("caret-color","transparent")}function je(e,t){const n=t.elem,o=w(n);G(o)||oe(131);null===o.getBackgroundColor()&&n.style.removeProperty("background-color"),n.style.removeProperty("background-image"),n.style.removeProperty("caret-color")}function qe(e){const n=t(e,G);return G(n)?n:null}function Ge(e){const n=t(e,lt);return lt(n)?n:null}function Qe(e,n,o,r,l){if(("up"===o||"down"===o)&&function(e){const t=e.getRootElement();if(!t)return!1;return t.hasAttribute("aria-controls")&&"typeahead-menu"===t.getAttribute("aria-controls")}(e))return!1;const i=d();if(!Xe(i,r)){if("backward"===o&&g(i)&&i.isCollapsed()){const e=i.anchor.type,o=i.anchor.offset;if("element"!==e&&("text"!==e||0!==o))return!1;const r=i.anchor.getNode();if(!r)return!1;const l=t(r,(e=>s(e)&&!e.isInline()));if(!l)return!1;const c=l.getPreviousSibling();return!(!c||!lt(c))&&(Ve(n),c.selectEnd(),!0)}return!1}if(g(i)&&i.isCollapsed()){const{anchor:c,focus:a}=i,h=t(c.getNode(),G),u=t(a.getNode(),G);if(!G(h)||!h.is(u))return!1;const d=Ge(h);if(d!==r&&null!=d){const t=e.getElementByKey(d.getKey());if(null!=t)return l.table=De(t),Qe(e,n,o,d,l)}if("backward"===o||"forward"===o){const e=c.type,l=c.offset,a=c.getNode();if(!a)return!1;const h=i.getNodes();return(1!==h.length||!X(h[0]))&&(!!function(e,n,o,r){return function(e,t,n){return"element"===e&&("backward"===n?null===t.getPreviousSibling():null===t.getNextSibling())}(e,o,r)||function(e,n,o,r){const l=t(o,(e=>s(e)&&!e.isInline()));if(!l)return!1;const i="backward"===r?0===n:n===o.getTextContentSize();return"text"===e&&i&&("backward"===r?null===l.getPreviousSibling():null===l.getNextSibling())}(e,n,o,r)}(e,l,a,o)&&function(e,n,o,r){const l=t(n,G);if(!G(l))return!1;const[i,c]=Te(o,l,l);if(!function(e,t,n){const o=e[0][0],r=e[e.length-1][e[0].length-1],{startColumn:l,startRow:s}=t;return"backward"===n?l===o.startColumn&&s===o.startRow:l===r.startColumn&&s===r.startRow}(i,c,r))return!1;const a=function(e,n,o){const r=t(e,(e=>s(e)&&!e.isInline()));if(!r)return;const l="backward"===n?r.getPreviousSibling():r.getNextSibling();return l&<(l)?l:"backward"===n?o.getPreviousSibling():o.getNextSibling()}(n,r,o);if(!a||lt(a))return!1;Ve(e),"backward"===r?a.selectEnd():a.selectStart();return!0}(n,a,r,o))}const g=e.getElementByKey(h.__key),f=e.getElementByKey(c.key);if(null==f||null==g)return!1;let m;if("element"===c.type)m=f.getBoundingClientRect();else{const e=window.getSelection();if(null===e||0===e.rangeCount)return!1;m=e.getRangeAt(0).getBoundingClientRect()}const p="up"===o?h.getFirstChild():h.getLastChild();if(null==p)return!1;const S=e.getElementByKey(p.__key);if(null==S)return!1;const _=S.getBoundingClientRect();if("up"===o?_.top>m.top-m.height:m.bottom+m.height>_.bottom){Ve(n);const e=r.getCordsFromCellNode(h,l.table);if(!n.shiftKey)return Ue(l,r,e.x,e.y,o);{const t=r.getDOMCellFromCordsOrThrow(e.x,e.y,l.table);l.setAnchorCellForSelection(t),l.setFocusCellForSelection(t,!0)}return!0}}else if(Me(i)){const{anchor:s,focus:c}=i,a=t(s.getNode(),G),h=t(c.getNode(),G),[u]=i.getNodes(),d=e.getElementByKey(u.getKey());if(!G(a)||!G(h)||!lt(u)||null==d)return!1;l.updateTableTableSelection(i);const g=De(d),f=r.getCordsFromCellNode(a,g),m=r.getDOMCellFromCordsOrThrow(f.x,f.y,g);if(l.setAnchorCellForSelection(m),Ve(n),n.shiftKey){const e=r.getCordsFromCellNode(h,g);return Ye(l,u,e.x,e.y,o)}return h.selectEnd(),!0}return!1}function Ve(e){e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation()}function Ze(e,t,n){const o=l();"first"===e?t.insertBefore(o):t.insertAfter(o),o.append(...n||[]),o.selectEnd()}function et(e,n,o){const r=o.getParent();if(!r)return;const l=e.getElementByKey(r.getKey());if(!l)return;const s=window.getSelection();if(!s||s.anchorNode!==l)return;const i=t(n.anchor.getNode(),(e=>G(e)));if(!i)return;const c=t(i,(e=>lt(e)));if(!lt(c)||!c.is(o))return;const[a,h]=Te(o,i,i),u=a[0][0],d=a[a.length-1][a[0].length-1],{startRow:g,startColumn:f}=h,m=g===u.startRow&&f===u.startColumn,p=g===d.startRow&&f===d.startColumn;return m?"first":p?"last":void 0}class tt extends r{static getType(){return"table"}static clone(e){return new tt(e.__key)}static importDOM(){return{table:e=>({conversion:ot,priority:1})}}static importJSON(e){return rt()}constructor(e){super(e)}exportJSON(){return{...super.exportJSON(),type:"table",version:1}}createDOM(t,n){const o=document.createElement("table");return e(o,t.theme.table),o}updateDOM(){return!1}exportDOM(e){return{...super.exportDOM(e),after:e=>{if(e){const t=e.cloneNode(),n=document.createElement("colgroup"),r=document.createElement("tbody");o(e)&&r.append(...e.children);const l=this.getFirstChildOrThrow();if(!te(l))throw new Error("Expected to find row node.");const s=l.getChildrenSize();for(let e=0;e<s;e++){const e=document.createElement("col");n.append(e)}return t.replaceChildren(n,r),t}}}}canBeEmpty(){return!1}isShadowRoot(){return!0}getCordsFromCellNode(e,t){const{rows:n,domRows:o}=t;for(let t=0;t<n;t++){const n=o[t];if(null==n)continue;const r=n.findIndex((t=>{if(!t)return;const{elem:n}=t;return w(n)===e}));if(-1!==r)return{x:r,y:t}}throw new Error("Cell not found in table.")}getDOMCellFromCords(e,t,n){const{domRows:o}=n,r=o[t];if(null==r)return null;const l=r[e];return null==l?null:l}getDOMCellFromCordsOrThrow(e,t,n){const o=this.getDOMCellFromCords(e,t,n);if(!o)throw new Error("Cell not found at cords.");return o}getCellNodeFromCords(e,t,n){const o=this.getDOMCellFromCords(e,t,n);if(null==o)return null;const r=w(o.elem);return G(r)?r:null}getCellNodeFromCordsOrThrow(e,t,n){const o=this.getCellNodeFromCords(e,t,n);if(!o)throw new Error("Node at cords not TableCellNode.");return o}canSelectBefore(){return!0}canIndent(){return!1}}function nt(e,t){const n=e.getElementByKey(t.getKey());if(null==n)throw new Error("Table Element Not Found");return De(n)}function ot(e){return{node:rt()}}function rt(){return a(new tt)}function lt(e){return e instanceof tt}export{Te as $computeTableMap,xe as $computeTableMapSkipCellCheck,q as $createTableCellNode,rt as $createTableNode,le as $createTableNodeWithDimensions,ee as $createTableRowNode,Re as $createTableSelection,_e as $deleteTableColumn,we as $deleteTableColumn__EXPERIMENTAL,Ce as $deleteTableRow__EXPERIMENTAL,nt as $getElementForTableNode,ve as $getNodeTriplet,se as $getTableCellNodeFromLexicalNode,Ee as $getTableCellNodeRect,he as $getTableColumnIndexFromTableCellNode,ce as $getTableNodeFromLexicalNodeOrThrow,ae as $getTableRowIndexFromTableCellNode,ie as $getTableRowNodeFromTableCellNodeOrThrow,pe as $insertTableColumn,Se as $insertTableColumn__EXPERIMENTAL,ge as $insertTableRow,me as $insertTableRow__EXPERIMENTAL,G as $isTableCellNode,lt as $isTableNode,te as $isTableRowNode,Me as $isTableSelection,de as $removeTableRowAtIndex,Ne as $unmergeCell,Q as INSERT_TABLE_COMMAND,J as TableCellHeaderStates,$ as TableCellNode,tt as TableNode,ke as TableObserver,V as TableRowNode,He as applyTableHandlers,Be as getDOMCellFromTarget,Pe as getTableObserverFromTableElement};
|
9
|
+
import{addClassNamesToElement as e,$findMatchingParent as t,removeClassNamesFromElement as n,isHTMLElement as o}from"@lexical/utils";import{ElementNode as r,$createParagraphNode as l,$isElementNode as s,$isLineBreakNode as i,$isTextNode as c,$applyNodeReplacement as a,createCommand as h,$createTextNode as u,$getSelection as d,$isRangeSelection as g,$createPoint as f,$normalizeSelection__EXPERIMENTAL as m,$getNodeByKey as p,isCurrentlyReadOnlyMode as S,$setSelection as _,SELECTION_CHANGE_COMMAND as C,$getNearestNodeFromDOMNode as w,$createRangeSelection as b,$getRoot as y,KEY_ARROW_DOWN_COMMAND as N,COMMAND_PRIORITY_HIGH as T,KEY_ARROW_UP_COMMAND as x,KEY_ARROW_LEFT_COMMAND as v,KEY_ARROW_RIGHT_COMMAND as E,KEY_ESCAPE_COMMAND as O,DELETE_WORD_COMMAND as M,DELETE_LINE_COMMAND as R,DELETE_CHARACTER_COMMAND as K,COMMAND_PRIORITY_CRITICAL as k,KEY_BACKSPACE_COMMAND as F,KEY_DELETE_COMMAND as A,FORMAT_TEXT_COMMAND as H,FORMAT_ELEMENT_COMMAND as P,CONTROLLED_TEXT_INSERTION_COMMAND as B,KEY_TAB_COMMAND as D,FOCUS_COMMAND as L,SELECTION_INSERT_CLIPBOARD_NODES_COMMAND as I,$getPreviousSelection as W,$createRangeSelectionFromDom as U,INSERT_PARAGRAPH_COMMAND as Y,$isDecoratorNode as X}from"lexical";const z=/^(\d+(?:\.\d+)?)px$/,J={BOTH:3,COLUMN:2,NO_STATUS:0,ROW:1};class $ extends r{static getType(){return"tablecell"}static clone(e){const t=new $(e.__headerState,e.__colSpan,e.__width,e.__key);return t.__rowSpan=e.__rowSpan,t.__backgroundColor=e.__backgroundColor,t}static importDOM(){return{td:e=>({conversion:j,priority:0}),th:e=>({conversion:j,priority:0})}}static importJSON(e){const t=e.colSpan||1,n=e.rowSpan||1,o=q(e.headerState,t,e.width||void 0);return o.__rowSpan=n,o.__backgroundColor=e.backgroundColor||null,o}constructor(e=J.NO_STATUS,t=1,n,o){super(o),this.__colSpan=t,this.__rowSpan=1,this.__headerState=e,this.__width=n,this.__backgroundColor=null}createDOM(t){const n=document.createElement(this.getTag());return this.__width&&(n.style.width=`${this.__width}px`),this.__colSpan>1&&(n.colSpan=this.__colSpan),this.__rowSpan>1&&(n.rowSpan=this.__rowSpan),null!==this.__backgroundColor&&(n.style.backgroundColor=this.__backgroundColor),e(n,t.theme.tableCell,this.hasHeader()&&t.theme.tableCellHeader),n}exportDOM(e){const{element:t}=super.exportDOM(e);if(t){const e=t;e.style.border="1px solid black",this.__colSpan>1&&(e.colSpan=this.__colSpan),this.__rowSpan>1&&(e.rowSpan=this.__rowSpan),e.style.width=`${this.getWidth()||75}px`,e.style.verticalAlign="top",e.style.textAlign="start";const n=this.getBackgroundColor();null!==n?e.style.backgroundColor=n:this.hasHeader()&&(e.style.backgroundColor="#f2f3f5")}return{element:t}}exportJSON(){return{...super.exportJSON(),backgroundColor:this.getBackgroundColor(),colSpan:this.__colSpan,headerState:this.__headerState,rowSpan:this.__rowSpan,type:"tablecell",width:this.getWidth()}}getColSpan(){return this.__colSpan}setColSpan(e){return this.getWritable().__colSpan=e,this}getRowSpan(){return this.__rowSpan}setRowSpan(e){return this.getWritable().__rowSpan=e,this}getTag(){return this.hasHeader()?"th":"td"}setHeaderStyles(e){return this.getWritable().__headerState=e,this.__headerState}getHeaderStyles(){return this.getLatest().__headerState}setWidth(e){return this.getWritable().__width=e,this.__width}getWidth(){return this.getLatest().__width}getBackgroundColor(){return this.getLatest().__backgroundColor}setBackgroundColor(e){this.getWritable().__backgroundColor=e}toggleHeaderStyle(e){const t=this.getWritable();return(t.__headerState&e)===e?t.__headerState-=e:t.__headerState+=e,t}hasHeaderState(e){return(this.getHeaderStyles()&e)===e}hasHeader(){return this.getLatest().__headerState!==J.NO_STATUS}updateDOM(e){return e.__headerState!==this.__headerState||e.__width!==this.__width||e.__colSpan!==this.__colSpan||e.__rowSpan!==this.__rowSpan||e.__backgroundColor!==this.__backgroundColor}isShadowRoot(){return!0}collapseAtStart(){return!0}canBeEmpty(){return!1}canIndent(){return!1}}function j(e){const t=e,n=e.nodeName.toLowerCase();let o;z.test(t.style.width)&&(o=parseFloat(t.style.width));const r=q("th"===n?J.ROW:J.NO_STATUS,t.colSpan,o);r.__rowSpan=t.rowSpan;const a=t.style.backgroundColor;""!==a&&(r.__backgroundColor=a);const h=t.style,u=h.textDecoration.split(" "),d="700"===h.fontWeight||"bold"===h.fontWeight,g=u.includes("line-through"),f="italic"===h.fontStyle,m=u.includes("underline");return{after:e=>(0===e.length&&e.push(l()),e),forChild:(e,t)=>{if(G(t)&&!s(e)){const t=l();return i(e)&&"\n"===e.getTextContent()?null:(c(e)&&(d&&e.toggleFormat("bold"),g&&e.toggleFormat("strikethrough"),f&&e.toggleFormat("italic"),m&&e.toggleFormat("underline")),t.append(e),t)}return e},node:r}}function q(e,t=1,n){return a(new $(e,t,n))}function G(e){return e instanceof $}const Q=h("INSERT_TABLE_COMMAND");class V extends r{static getType(){return"tablerow"}static clone(e){return new V(e.__height,e.__key)}static importDOM(){return{tr:e=>({conversion:Z,priority:0})}}static importJSON(e){return ee(e.height)}constructor(e,t){super(t),this.__height=e}exportJSON(){return{...super.exportJSON(),...this.getHeight()&&{height:this.getHeight()},type:"tablerow",version:1}}createDOM(t){const n=document.createElement("tr");return this.__height&&(n.style.height=`${this.__height}px`),e(n,t.theme.tableRow),n}isShadowRoot(){return!0}setHeight(e){return this.getWritable().__height=e,this.__height}getHeight(){return this.getLatest().__height}updateDOM(e){return e.__height!==this.__height}canBeEmpty(){return!1}canIndent(){return!1}}function Z(e){const t=e;let n;return z.test(t.style.height)&&(n=parseFloat(t.style.height)),{node:ee(n)}}function ee(e){return a(new V(e))}function te(e){return e instanceof V}function ne(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var oe=ne((function(e){const t=new URLSearchParams;t.append("code",e);for(let e=1;e<arguments.length;e++)t.append("v",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));const re="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function le(e,t,n=!0){const o=rt();for(let r=0;r<e;r++){const e=ee();for(let o=0;o<t;o++){let t=J.NO_STATUS;"object"==typeof n?(0===r&&n.rows&&(t|=J.ROW),0===o&&n.columns&&(t|=J.COLUMN)):n&&(0===r&&(t|=J.ROW),0===o&&(t|=J.COLUMN));const s=q(t),i=l();i.append(u()),s.append(i),e.append(s)}o.append(e)}return o}function se(e){const n=t(e,(e=>G(e)));return G(n)?n:null}function ie(e){const n=t(e,(e=>te(e)));if(te(n))return n;throw new Error("Expected table cell to be inside of table row.")}function ce(e){const n=t(e,(e=>lt(e)));if(lt(n))return n;throw new Error("Expected table cell to be inside of table.")}function ae(e){const t=ie(e);return ce(t).getChildren().findIndex((e=>e.is(t)))}function he(e){return ie(e).getChildren().findIndex((t=>t.is(e)))}function ue(e,t){const n=ce(e),{x:o,y:r}=n.getCordsFromCellNode(e,t);return{above:n.getCellNodeFromCords(o,r-1,t),below:n.getCellNodeFromCords(o,r+1,t),left:n.getCellNodeFromCords(o-1,r,t),right:n.getCellNodeFromCords(o+1,r,t)}}function de(e,t){const n=e.getChildren();if(t>=n.length||t<0)throw new Error("Expected table cell to be inside of table row.");return n[t].remove(),e}function ge(e,t,n=!0,o,r){const s=e.getChildren();if(t>=s.length||t<0)throw new Error("Table row target index out of range");const i=s[t];if(!te(i))throw new Error("Row before insertion index does not exist.");for(let e=0;e<o;e++){const e=i.getChildren(),t=e.length,o=ee();for(let n=0;n<t;n++){const t=e[n];G(t)||oe(12);const{above:s,below:i}=ue(t,r);let c=J.NO_STATUS;const a=s&&s.getWidth()||i&&i.getWidth()||void 0;(s&&s.hasHeaderState(J.COLUMN)||i&&i.hasHeaderState(J.COLUMN))&&(c|=J.COLUMN);const h=q(c,1,a);h.append(l()),o.append(h)}n?i.insertAfter(o):i.insertBefore(o)}return e}const fe=(e,t)=>e===J.BOTH||e===t?t:J.NO_STATUS;function me(e=!0){const t=d();g(t)||Me(t)||oe(118);const n=t.focus.getNode(),[o,,r]=ve(n),[s,i]=Te(r,o,o),c=s[0].length,{startRow:a}=i;if(e){const e=a+o.__rowSpan-1,t=s[e],n=ee();for(let o=0;o<c;o++){const{cell:r,startRow:s}=t[o];if(s+r.__rowSpan-1<=e){const e=t[o].cell.__headerState,r=fe(e,J.COLUMN);n.append(q(r).append(l()))}else r.setRowSpan(r.__rowSpan+1)}const i=r.getChildAtIndex(e);te(i)||oe(145),i.insertAfter(n)}else{const e=s[a],t=ee();for(let n=0;n<c;n++){const{cell:o,startRow:r}=e[n];if(r===a){const o=e[n].cell.__headerState,r=fe(o,J.COLUMN);t.append(q(r).append(l()))}else o.setRowSpan(o.__rowSpan+1)}const n=r.getChildAtIndex(a);te(n)||oe(145),n.insertBefore(t)}}function pe(e,t,n=!0,o,r){const s=e.getChildren(),i=[];for(let e=0;e<s.length;e++){const n=s[e];if(te(n))for(let e=0;e<o;e++){const e=n.getChildren();if(t>=e.length||t<0)throw new Error("Table column target index out of range");const o=e[t];G(o)||oe(12);const{left:s,right:c}=ue(o,r);let a=J.NO_STATUS;(s&&s.hasHeaderState(J.ROW)||c&&c.hasHeaderState(J.ROW))&&(a|=J.ROW);const h=q(a);h.append(l()),i.push({newTableCell:h,targetCell:o})}}return i.forEach((({newTableCell:e,targetCell:t})=>{n?t.insertAfter(e):t.insertBefore(e)})),e}function Se(e=!0){const t=d();g(t)||Me(t)||oe(118);const n=t.anchor.getNode(),o=t.focus.getNode(),[r]=ve(n),[s,,i]=ve(o),[c,a,h]=Te(i,s,r),u=c.length,f=e?Math.max(a.startColumn,h.startColumn):Math.min(a.startColumn,h.startColumn),m=e?f+s.__colSpan-1:f-1,p=i.getFirstChild();te(p)||oe(120);let S=null;function _(e=J.NO_STATUS){const t=q(e).append(l());return null===S&&(S=t),t}let C=p;e:for(let e=0;e<u;e++){if(0!==e){const e=C.getNextSibling();te(e)||oe(121),C=e}const t=c[e],n=t[m<0?0:m].cell.__headerState,o=fe(n,J.ROW);if(m<0){ye(C,_(o));continue}const{cell:r,startColumn:l,startRow:s}=t[m];if(l+r.__colSpan-1<=m){let n=r,l=s,i=m;for(;l!==e&&n.__rowSpan>1;){if(i-=r.__colSpan,!(i>=0)){C.append(_(o));continue e}{const{cell:e,startRow:o}=t[i];n=e,l=o}}n.insertAfter(_(o))}else r.setColSpan(r.__colSpan+1)}null!==S&&be(S)}function _e(e,t){const n=e.getChildren();for(let e=0;e<n.length;e++){const o=n[e];if(te(o)){const e=o.getChildren();if(t>=e.length||t<0)throw new Error("Table column target index out of range");e[t].remove()}}return e}function Ce(){const e=d();g(e)||Me(e)||oe(118);const t=e.anchor.getNode(),n=e.focus.getNode(),[o,,r]=ve(t),[l]=ve(n),[s,i,c]=Te(r,o,l),{startRow:a}=i,{startRow:h}=c,u=h+l.__rowSpan-1;if(s.length===u-a+1)return void r.remove();const f=s[0].length,m=s[u+1],p=r.getChildAtIndex(u+1);for(let e=u;e>=a;e--){for(let t=f-1;t>=0;t--){const{cell:n,startRow:o,startColumn:r}=s[e][t];if(r===t&&(e===a&&o<a&&n.setRowSpan(n.__rowSpan-(o-a)),o>=a&&o+n.__rowSpan-1>u))if(n.setRowSpan(n.__rowSpan-(u-o+1)),null===p&&oe(122),0===t)ye(p,n);else{const{cell:e}=m[t-1];e.insertAfter(n)}}const t=r.getChildAtIndex(e);te(t)||oe(123,String(e)),t.remove()}if(void 0!==m){const{cell:e}=m[0];be(e)}else{const e=s[a-1],{cell:t}=e[0];be(t)}}function we(){const e=d();g(e)||Me(e)||oe(118);const t=e.anchor.getNode(),n=e.focus.getNode(),[o,,r]=ve(t),[l]=ve(n),[s,i,c]=Te(r,o,l),{startColumn:a}=i,{startRow:h,startColumn:u}=c,f=Math.min(a,u),m=Math.max(a+o.__colSpan-1,u+l.__colSpan-1),p=m-f+1;if(s[0].length===m-f+1)return r.selectPrevious(),void r.remove();const S=s.length;for(let e=0;e<S;e++)for(let t=f;t<=m;t++){const{cell:n,startColumn:o}=s[e][t];if(o<f){if(t===f){const e=f-o;n.setColSpan(n.__colSpan-Math.min(p,n.__colSpan-e))}}else if(o+n.__colSpan-1>m){if(t===m){const e=m-o+1;n.setColSpan(n.__colSpan-e)}}else n.remove()}const _=s[h],C=a>u?_[a+o.__colSpan]:_[u+l.__colSpan];if(void 0!==C){const{cell:e}=C;be(e)}else{const e=u<a?_[u-1]:_[a-1],{cell:t}=e;be(t)}}function be(e){const t=e.getFirstDescendant();null==t?e.selectStart():t.getParentOrThrow().selectStart()}function ye(e,t){const n=e.getFirstChild();null!==n?n.insertBefore(t):e.append(t)}function Ne(){const e=d();g(e)||Me(e)||oe(118);const t=e.anchor.getNode(),[n,o,r]=ve(t),l=n.__colSpan,s=n.__rowSpan;if(l>1){for(let e=1;e<l;e++)n.insertAfter(q(J.NO_STATUS));n.setColSpan(1)}if(s>1){const[e,t]=Te(r,n,n),{startColumn:i,startRow:c}=t;let a;for(let t=1;t<s;t++){const n=c+t,r=e[n];a=(a||o).getNextSibling(),te(a)||oe(125);let s=null;for(let e=0;e<i;e++){const t=r[e],o=t.cell;t.startRow===n&&(s=o),o.__colSpan>1&&(e+=o.__colSpan-1)}if(null===s)for(let e=0;e<l;e++)ye(a,q(J.NO_STATUS));else for(let e=0;e<l;e++)s.insertAfter(q(J.NO_STATUS))}n.setRowSpan(1)}}function Te(e,t,n){const[o,r,l]=xe(e,t,n);return null===r&&oe(110),null===l&&oe(111),[o,r,l]}function xe(e,t,n){const o=[];let r=null,l=null;function s(e,s,i){const c={cell:i,startColumn:s,startRow:e},a=i.__rowSpan,h=i.__colSpan;for(let t=0;t<a;t++){void 0===o[e+t]&&(o[e+t]=[]);for(let n=0;n<h;n++)o[e+t][s+n]=c}null!==t&&t.is(i)&&(r=c),null!==n&&n.is(i)&&(l=c)}function i(e,t){return void 0===o[e]||void 0===o[e][t]}const c=e.getChildren();for(let e=0;e<c.length;e++){const t=c[e];te(t)||oe(146);const n=t.getChildren();let o=0;for(const t of n){for(G(t)||oe(147);!i(e,o);)o++;s(e,o,t),o+=t.__colSpan}}return[o,r,l]}function ve(e){let n;if(e instanceof $)n=e;else if("__type"in e){const o=t(e,G);G(o)||oe(148),n=o}else{const o=t(e.getNode(),G);G(o)||oe(148),n=o}const o=n.getParent();te(o)||oe(149);const r=o.getParent();return lt(r)||oe(150),[n,o,r]}function Ee(e){const[t,,n]=ve(e),o=n.getChildren(),r=o.length,l=o[0].getChildren().length,s=new Array(r);for(let e=0;e<r;e++)s[e]=new Array(l);for(let e=0;e<r;e++){const n=o[e].getChildren();let r=0;for(let o=0;o<n.length;o++){for(;s[e][r];)r++;const l=n[o],i=l.__rowSpan||1,c=l.__colSpan||1;for(let t=0;t<i;t++)for(let n=0;n<c;n++)s[e+t][r+n]=l;if(t===l)return{colSpan:c,columnIndex:r,rowIndex:e,rowSpan:i};r+=c}}return null}class Oe{constructor(e,t,n){this.anchor=t,this.focus=n,t._selection=this,n._selection=this,this._cachedNodes=null,this.dirty=!1,this.tableKey=e}getStartEndPoints(){return[this.anchor,this.focus]}isBackward(){return this.focus.isBefore(this.anchor)}getCachedNodes(){return this._cachedNodes}setCachedNodes(e){this._cachedNodes=e}is(e){return!!Me(e)&&(this.tableKey===e.tableKey&&this.anchor.is(e.anchor)&&this.focus.is(e.focus))}set(e,t,n){this.dirty=!0,this.tableKey=e,this.anchor.key=t,this.focus.key=n,this._cachedNodes=null}clone(){return new Oe(this.tableKey,this.anchor,this.focus)}isCollapsed(){return!1}extract(){return this.getNodes()}insertRawText(e){}insertText(){}insertNodes(e){const t=this.focus.getNode();s(t)||oe(151);m(t.select(0,t.getChildrenSize())).insertNodes(e)}getShape(){const e=p(this.anchor.key);G(e)||oe(152);const t=Ee(e);null===t&&oe(153);const n=p(this.focus.key);G(n)||oe(154);const o=Ee(n);null===o&&oe(155);const r=Math.min(t.columnIndex,o.columnIndex),l=Math.max(t.columnIndex,o.columnIndex),s=Math.min(t.rowIndex,o.rowIndex),i=Math.max(t.rowIndex,o.rowIndex);return{fromX:Math.min(r,l),fromY:Math.min(s,i),toX:Math.max(r,l),toY:Math.max(s,i)}}getNodes(){const e=this._cachedNodes;if(null!==e)return e;const n=this.anchor.getNode(),o=this.focus.getNode(),r=t(n,G),l=t(o,G);G(r)||oe(152),G(l)||oe(154);const s=r.getParent();te(s)||oe(156);const i=s.getParent();lt(i)||oe(157);const c=l.getParents()[1];if(c!==i){if(i.isParentOf(l)){const e=c.getParent();null==e&&oe(159),this.set(this.tableKey,l.getKey(),e.getKey())}else{const e=i.getParent();null==e&&oe(158),this.set(this.tableKey,e.getKey(),l.getKey())}return this.getNodes()}const[a,h,u]=Te(i,r,l);let d=Math.min(h.startColumn,u.startColumn),g=Math.min(h.startRow,u.startRow),f=Math.max(h.startColumn+h.cell.__colSpan-1,u.startColumn+u.cell.__colSpan-1),m=Math.max(h.startRow+h.cell.__rowSpan-1,u.startRow+u.cell.__rowSpan-1),p=d,_=g,C=d,w=g;function b(e){const{cell:t,startColumn:n,startRow:o}=e;d=Math.min(d,n),g=Math.min(g,o),f=Math.max(f,n+t.__colSpan-1),m=Math.max(m,o+t.__rowSpan-1)}for(;d<p||g<_||f>C||m>w;){if(d<p){const e=w-_,t=p-1;for(let n=0;n<=e;n++)b(a[_+n][t]);p=t}if(g<_){const e=C-p,t=_-1;for(let n=0;n<=e;n++)b(a[t][p+n]);_=t}if(f>C){const e=w-_,t=C+1;for(let n=0;n<=e;n++)b(a[_+n][t]);C=t}if(m>w){const e=C-p,t=w+1;for(let n=0;n<=e;n++)b(a[t][p+n]);w=t}}const y=[i];let N=null;for(let e=g;e<=m;e++)for(let t=d;t<=f;t++){const{cell:n}=a[e][t],o=n.getParent();te(o)||oe(160),o!==N&&y.push(o),y.push(n,...Ke(n)),N=o}return S()||(this._cachedNodes=y),y}getTextContent(){const e=this.getNodes();let t="";for(let n=0;n<e.length;n++)t+=e[n].getTextContent();return t}}function Me(e){return e instanceof Oe}function Re(){const e=f("root",0,"element"),t=f("root",0,"element");return new Oe("root",e,t)}function Ke(e){const t=[],n=[e];for(;n.length>0;){const o=n.pop();void 0===o&&oe(112),s(o)&&n.unshift(...o.getChildren()),o!==e&&t.push(o)}return t}class ke{constructor(e,t){this.isHighlightingCells=!1,this.anchorX=-1,this.anchorY=-1,this.focusX=-1,this.focusY=-1,this.listenersToRemove=new Set,this.tableNodeKey=t,this.editor=e,this.table={columns:0,domRows:[],rows:0},this.tableSelection=null,this.anchorCellNodeKey=null,this.focusCellNodeKey=null,this.anchorCell=null,this.focusCell=null,this.hasHijackedSelectionStyles=!1,this.trackTable(),this.isSelecting=!1}getTable(){return this.table}removeListeners(){Array.from(this.listenersToRemove).forEach((e=>e()))}trackTable(){const e=new MutationObserver((e=>{this.editor.update((()=>{let t=!1;for(let n=0;n<e.length;n++){const o=e[n].target.nodeName;if("TABLE"===o||"TBODY"===o||"THEAD"===o||"TR"===o){t=!0;break}}if(!t)return;const n=this.editor.getElementByKey(this.tableNodeKey);if(!n)throw new Error("Expected to find TableElement in DOM");this.table=De(n)}))}));this.editor.update((()=>{const t=this.editor.getElementByKey(this.tableNodeKey);if(!t)throw new Error("Expected to find TableElement in DOM");this.table=De(t),e.observe(t,{childList:!0,subtree:!0})}))}clearHighlight(){const e=this.editor;this.isHighlightingCells=!1,this.anchorX=-1,this.anchorY=-1,this.focusX=-1,this.focusY=-1,this.tableSelection=null,this.anchorCellNodeKey=null,this.focusCellNodeKey=null,this.anchorCell=null,this.focusCell=null,this.hasHijackedSelectionStyles=!1,this.enableHighlightStyle(),e.update((()=>{if(!lt(p(this.tableNodeKey)))throw new Error("Expected TableNode.");const t=e.getElementByKey(this.tableNodeKey);if(!t)throw new Error("Expected to find TableElement in DOM");const n=De(t);Le(e,n,null),_(null),e.dispatchCommand(C,void 0)}))}enableHighlightStyle(){const e=this.editor;e.update((()=>{const t=e.getElementByKey(this.tableNodeKey);if(!t)throw new Error("Expected to find TableElement in DOM");n(t,e._config.theme.tableSelection),t.classList.remove("disable-selection"),this.hasHijackedSelectionStyles=!1}))}disableHighlightStyle(){const t=this.editor;t.update((()=>{const n=t.getElementByKey(this.tableNodeKey);if(!n)throw new Error("Expected to find TableElement in DOM");e(n,t._config.theme.tableSelection),this.hasHijackedSelectionStyles=!0}))}updateTableTableSelection(e){if(null!==e&&e.tableKey===this.tableNodeKey){const t=this.editor;this.tableSelection=e,this.isHighlightingCells=!0,this.disableHighlightStyle(),Le(t,this.table,this.tableSelection)}else null==e?this.clearHighlight():(this.tableNodeKey=e.tableKey,this.updateTableTableSelection(e))}setFocusCellForSelection(e,t=!1){const n=this.editor;n.update((()=>{const o=p(this.tableNodeKey);if(!lt(o))throw new Error("Expected TableNode.");if(!n.getElementByKey(this.tableNodeKey))throw new Error("Expected to find TableElement in DOM");const r=e.x,l=e.y;if(this.focusCell=e,null!==this.anchorCell){const e=Ae(n._window);e&&e.setBaseAndExtent(this.anchorCell.elem,0,this.focusCell.elem,0)}if(this.isHighlightingCells||this.anchorX===r&&this.anchorY===l&&!t){if(r===this.focusX&&l===this.focusY)return}else this.isHighlightingCells=!0,this.disableHighlightStyle();if(this.focusX=r,this.focusY=l,this.isHighlightingCells){const t=w(e.elem);if(null!=this.tableSelection&&null!=this.anchorCellNodeKey&&G(t)&&o.is(Ge(t))){const e=t.getKey();this.tableSelection=this.tableSelection.clone()||Re(),this.focusCellNodeKey=e,this.tableSelection.set(this.tableNodeKey,this.anchorCellNodeKey,this.focusCellNodeKey),_(this.tableSelection),n.dispatchCommand(C,void 0),Le(n,this.table,this.tableSelection)}}}))}setAnchorCellForSelection(e){this.isHighlightingCells=!1,this.anchorCell=e,this.anchorX=e.x,this.anchorY=e.y,this.editor.update((()=>{const t=w(e.elem);if(G(t)){const e=t.getKey();this.tableSelection=null!=this.tableSelection?this.tableSelection.clone():Re(),this.anchorCellNodeKey=e}}))}formatCells(e){this.editor.update((()=>{const t=d();Me(t)||oe(11);const n=b(),o=n.anchor,r=n.focus;t.getNodes().forEach((t=>{G(t)&&0!==t.getTextContentSize()&&(o.set(t.getKey(),0,"element"),r.set(t.getKey(),t.getChildrenSize(),"element"),n.formatText(e))})),_(t),this.editor.dispatchCommand(C,void 0)}))}clearText(){const e=this.editor;e.update((()=>{const t=p(this.tableNodeKey);if(!lt(t))throw new Error("Expected TableNode.");const n=d();Me(n)||oe(11);const o=n.getNodes().filter(G);if(o.length!==this.table.columns*this.table.rows)o.forEach((e=>{if(s(e)){const t=l(),n=u();t.append(n),e.append(t),e.getChildren().forEach((e=>{e!==t&&e.remove()}))}})),Le(e,this.table,null),_(null),e.dispatchCommand(C,void 0);else{t.selectPrevious(),t.remove();y().selectStart()}}))}}const Fe="__lexicalTableSelection",Ae=e=>re?(e||window).getSelection():null;function He(e,n,o,r){const i=o.getRootElement();if(null===i)throw new Error("No root element.");const a=new ke(o,e.getKey()),h=o._window||window;!function(e,t){e[Fe]=t}(n,a);const f=()=>{const e=()=>{a.isSelecting=!1,h.removeEventListener("mouseup",e),h.removeEventListener("mousemove",t)},t=n=>{setTimeout((()=>{if(1&~n.buttons&&a.isSelecting)return a.isSelecting=!1,h.removeEventListener("mouseup",e),void h.removeEventListener("mousemove",t);const o=Be(n.target);null===o||a.anchorX===o.x&&a.anchorY===o.y||(n.preventDefault(),a.setFocusCellForSelection(o))}),0)};return{onMouseMove:t,onMouseUp:e}};n.addEventListener("mousedown",(e=>{setTimeout((()=>{if(0!==e.button)return;if(!h)return;const t=Be(e.target);null!==t&&(Ve(e),a.setAnchorCellForSelection(t));const{onMouseUp:n,onMouseMove:o}=f();a.isSelecting=!0,h.addEventListener("mouseup",n),h.addEventListener("mousemove",o)}),0)}));const m=e=>{0===e.button&&o.update((()=>{const t=d(),n=e.target;Me(t)&&t.tableKey===a.tableNodeKey&&i.contains(n)&&a.clearHighlight()}))};h.addEventListener("mousedown",m),a.listenersToRemove.add((()=>h.removeEventListener("mousedown",m))),a.listenersToRemove.add(o.registerCommand(N,(t=>Qe(o,t,"down",e,a)),T)),a.listenersToRemove.add(o.registerCommand(x,(t=>Qe(o,t,"up",e,a)),T)),a.listenersToRemove.add(o.registerCommand(v,(t=>Qe(o,t,"backward",e,a)),T)),a.listenersToRemove.add(o.registerCommand(E,(t=>Qe(o,t,"forward",e,a)),T)),a.listenersToRemove.add(o.registerCommand(O,(e=>{const n=d();if(Me(n)){const o=t(n.focus.getNode(),G);if(G(o))return Ve(e),o.selectEnd(),!0}return!1}),T));[M,R,K].forEach((n=>{a.listenersToRemove.add(o.registerCommand(n,(n=>()=>{const o=d();if(!Xe(o,e))return!1;if(Me(o))return a.clearText(),!0;if(g(o)){const r=t(o.anchor.getNode(),(e=>G(e)));if(!G(r))return!1;const l=o.anchor.getNode(),i=o.focus.getNode(),c=e.isParentOf(l),h=e.isParentOf(i);if(c&&!h||h&&!c)return a.clearText(),!0;const u=t(o.anchor.getNode(),(e=>s(e))),d=u&&t(u,(e=>s(e)&&G(e.getParent())));if(!s(d)||!s(u))return!1;if(n===R&&null===d.getPreviousSibling())return!0}return!1})(n),k))}));const p=n=>{const o=d();if(!Xe(o,e))return!1;if(Me(o))return n.preventDefault(),n.stopPropagation(),a.clearText(),!0;if(g(o)){const e=t(o.anchor.getNode(),(e=>G(e)));if(!G(e))return!1}return!1};function S(t){const n=e.getCordsFromCellNode(t,a.table);return e.getDOMCellFromCordsOrThrow(n.x,n.y,a.table)}return a.listenersToRemove.add(o.registerCommand(F,p,k)),a.listenersToRemove.add(o.registerCommand(A,p,k)),a.listenersToRemove.add(o.registerCommand(H,(n=>{const o=d();if(!Xe(o,e))return!1;if(Me(o))return a.formatCells(n),!0;if(g(o)){const e=t(o.anchor.getNode(),(e=>G(e)));if(!G(e))return!1}return!1}),k)),a.listenersToRemove.add(o.registerCommand(P,(t=>{const n=d();if(!Me(n)||!Xe(n,e))return!1;const o=n.anchor.getNode(),r=n.focus.getNode();if(!G(o)||!G(r))return!1;const[l,i,c]=Te(e,o,r),a=Math.max(i.startRow,c.startRow),h=Math.max(i.startColumn,c.startColumn),u=Math.min(i.startRow,c.startRow),g=Math.min(i.startColumn,c.startColumn);for(let e=u;e<=a;e++)for(let n=g;n<=h;n++){const o=l[e][n].cell;o.setFormat(t);const r=o.getChildren();for(let e=0;e<r.length;e++){const n=r[e];s(n)&&!n.isInline()&&n.setFormat(t)}}return!0}),k)),a.listenersToRemove.add(o.registerCommand(B,(n=>{const r=d();if(!Xe(r,e))return!1;if(Me(r))return a.clearHighlight(),!1;if(g(r)){const l=t(r.anchor.getNode(),(e=>G(e)));if(!G(l))return!1;if("string"==typeof n){const t=et(o,r,e);if(t)return Ze(t,e,[u(n)]),!0}}return!1}),k)),r&&a.listenersToRemove.add(o.registerCommand(D,(t=>{const n=d();if(!g(n)||!n.isCollapsed()||!Xe(n,e))return!1;const o=qe(n.anchor.getNode());if(null===o)return!1;Ve(t);const r=e.getCordsFromCellNode(o,a.table);return Ue(a,e,r.x,r.y,t.shiftKey?"backward":"forward"),!0}),k)),a.listenersToRemove.add(o.registerCommand(L,(t=>e.isSelected()),T)),a.listenersToRemove.add(o.registerCommand(I,(e=>{const{nodes:n,selection:o}=e,r=o.getStartEndPoints(),s=Me(o),i=g(o)&&null!==t(o.anchor.getNode(),(e=>G(e)))&&null!==t(o.focus.getNode(),(e=>G(e)))||s;if(1!==n.length||!lt(n[0])||!i||null===r)return!1;const[a]=r,h=n[0],u=h.getChildren(),d=h.getFirstChildOrThrow().getChildrenSize(),f=h.getChildrenSize(),m=t(a.getNode(),(e=>G(e))),p=m&&t(m,(e=>te(e))),S=p&&t(p,(e=>lt(e)));if(!G(m)||!te(p)||!lt(S))return!1;const C=p.getIndexWithinParent(),w=Math.min(S.getChildrenSize()-1,C+f-1),b=m.getIndexWithinParent(),y=Math.min(p.getChildrenSize()-1,b+d-1),N=Math.min(b,y),T=Math.min(C,w),x=Math.max(b,y),v=Math.max(C,w),E=S.getChildren();let O,M,R=0;for(let e=T;e<=v;e++){const t=E[e];if(!te(t))return!1;const n=u[R];if(!te(n))return!1;const o=t.getChildren(),r=n.getChildren();let s=0;for(let t=N;t<=x;t++){const n=o[t];if(!G(n))return!1;const i=r[s];if(!G(i))return!1;e===T&&t===N?O=n.getKey():e===v&&t===x&&(M=n.getKey());const a=n.getChildren();i.getChildren().forEach((e=>{if(c(e)){l().append(e),n.append(e)}else n.append(e)})),a.forEach((e=>e.remove())),s++}R++}if(O&&M){const e=Re();e.set(n[0].getKey(),O,M),_(e)}return!0}),k)),a.listenersToRemove.add(o.registerCommand(C,(()=>{const t=d(),n=W();if(g(t)){const{anchor:n,focus:r}=t,l=n.getNode(),s=r.getNode(),i=qe(l),c=qe(s),u=!(!i||!e.is(Ge(i))),d=!(!c||!e.is(Ge(c))),g=u!==d,m=u&&d,p=t.isBackward();if(g){const n=t.clone();d?n.focus.set(e.getParentOrThrow().getKey(),e.getIndexWithinParent(),"element"):n.anchor.set(e.getParentOrThrow().getKey(),p?e.getIndexWithinParent()+1:e.getIndexWithinParent(),"element"),_(n),We(o,a)}else m&&(i.is(c)||(a.setAnchorCellForSelection(S(i)),a.setFocusCellForSelection(S(c),!0),a.isSelecting||setTimeout((()=>{const{onMouseUp:e,onMouseMove:t}=f();a.isSelecting=!0,h.addEventListener("mouseup",e),h.addEventListener("mousemove",t)}),0)))}else if(t&&Me(t)&&t.is(n)&&t.tableKey===e.getKey()){const n=Ae(o._window);if(n&&n.anchorNode&&n.focusNode){const r=w(n.focusNode),l=r&&!e.is(Ge(r)),s=w(n.anchorNode),i=s&&e.is(Ge(s));if(l&&i&&n.rangeCount>0){const r=U(n,o);r&&(r.anchor.set(e.getKey(),t.isBackward()?e.getChildrenSize():0,"element"),n.removeAllRanges(),_(r))}}}return t&&!t.is(n)&&(Me(t)||Me(n))&&a.tableSelection&&!a.tableSelection.is(n)?(Me(t)&&t.tableKey===a.tableNodeKey?a.updateTableTableSelection(t):!Me(t)&&Me(n)&&n.tableKey===a.tableNodeKey&&a.updateTableTableSelection(null),!1):(a.hasHijackedSelectionStyles&&!e.isSelected()?function(e,t){t.enableHighlightStyle(),Ie(t.table,(t=>{const n=t.elem;t.highlighted=!1,je(e,t),n.getAttribute("style")||n.removeAttribute("style")}))}(o,a):!a.hasHijackedSelectionStyles&&e.isSelected()&&We(o,a),!1)}),k)),a.listenersToRemove.add(o.registerCommand(Y,(()=>{const t=d();if(!g(t)||!t.isCollapsed()||!Xe(t,e))return!1;const n=et(o,t,e);return!!n&&(Ze(n,e),!0)}),k)),a}function Pe(e){return e[Fe]}function Be(e){let t=e;for(;null!=t;){const e=t.nodeName;if("TD"===e||"TH"===e){const e=t._cell;return void 0===e?null:e}t=t.parentNode}return null}function De(e){const t=[],n={columns:0,domRows:t,rows:0};let o=e.firstChild,r=0,l=0;for(t.length=0;null!=o;){const e=o.nodeName;if("TD"===e||"TH"===e){const e={elem:o,hasBackgroundColor:""!==o.style.backgroundColor,highlighted:!1,x:r,y:l};o._cell=e;let n=t[l];void 0===n&&(n=t[l]=[]),n[r]=e}else{const e=o.firstChild;if(null!=e){o=e;continue}}const n=o.nextSibling;if(null!=n){r++,o=n;continue}const s=o.parentNode;if(null!=s){const e=s.nextSibling;if(null==e)break;l++,r=0,o=e}}return n.columns=r+1,n.rows=l+1,n}function Le(e,t,n){const o=new Set(n?n.getNodes():[]);Ie(t,((t,n)=>{const r=t.elem;o.has(n)?(t.highlighted=!0,$e(e,t)):(t.highlighted=!1,je(e,t),r.getAttribute("style")||r.removeAttribute("style"))}))}function Ie(e,t){const{domRows:n}=e;for(let e=0;e<n.length;e++){const o=n[e];if(o)for(let n=0;n<o.length;n++){const r=o[n];if(!r)continue;const l=w(r.elem);null!==l&&t(r,l,{x:n,y:e})}}}function We(e,t){t.disableHighlightStyle(),Ie(t.table,(t=>{t.highlighted=!0,$e(e,t)}))}const Ue=(e,t,n,o,r)=>{const l="forward"===r;switch(r){case"backward":case"forward":return n!==(l?e.table.columns-1:0)?ze(t.getCellNodeFromCordsOrThrow(n+(l?1:-1),o,e.table),l):o!==(l?e.table.rows-1:0)?ze(t.getCellNodeFromCordsOrThrow(l?0:e.table.columns-1,o+(l?1:-1),e.table),l):l?t.selectNext():t.selectPrevious(),!0;case"up":return 0!==o?ze(t.getCellNodeFromCordsOrThrow(n,o-1,e.table),!1):t.selectPrevious(),!0;case"down":return o!==e.table.rows-1?ze(t.getCellNodeFromCordsOrThrow(n,o+1,e.table),!0):t.selectNext(),!0;default:return!1}},Ye=(e,t,n,o,r)=>{const l="forward"===r;switch(r){case"backward":case"forward":return n!==(l?e.table.columns-1:0)&&e.setFocusCellForSelection(t.getDOMCellFromCordsOrThrow(n+(l?1:-1),o,e.table)),!0;case"up":return 0!==o&&(e.setFocusCellForSelection(t.getDOMCellFromCordsOrThrow(n,o-1,e.table)),!0);case"down":return o!==e.table.rows-1&&(e.setFocusCellForSelection(t.getDOMCellFromCordsOrThrow(n,o+1,e.table)),!0);default:return!1}};function Xe(e,t){if(g(e)||Me(e)){const n=t.isParentOf(e.anchor.getNode()),o=t.isParentOf(e.focus.getNode());return n&&o}return!1}function ze(e,t){t?e.selectStart():e.selectEnd()}const Je="172,206,247";function $e(e,t){const n=t.elem,o=w(n);G(o)||oe(131);null===o.getBackgroundColor()?n.style.setProperty("background-color",`rgb(${Je})`):n.style.setProperty("background-image",`linear-gradient(to right, rgba(${Je},0.85), rgba(${Je},0.85))`),n.style.setProperty("caret-color","transparent")}function je(e,t){const n=t.elem,o=w(n);G(o)||oe(131);null===o.getBackgroundColor()&&n.style.removeProperty("background-color"),n.style.removeProperty("background-image"),n.style.removeProperty("caret-color")}function qe(e){const n=t(e,G);return G(n)?n:null}function Ge(e){const n=t(e,lt);return lt(n)?n:null}function Qe(e,n,o,r,l){if(("up"===o||"down"===o)&&function(e){const t=e.getRootElement();if(!t)return!1;return t.hasAttribute("aria-controls")&&"typeahead-menu"===t.getAttribute("aria-controls")}(e))return!1;const i=d();if(!Xe(i,r)){if("backward"===o&&g(i)&&i.isCollapsed()){const e=i.anchor.type,o=i.anchor.offset;if("element"!==e&&("text"!==e||0!==o))return!1;const r=i.anchor.getNode();if(!r)return!1;const l=t(r,(e=>s(e)&&!e.isInline()));if(!l)return!1;const c=l.getPreviousSibling();return!(!c||!lt(c))&&(Ve(n),c.selectEnd(),!0)}return!1}if(g(i)&&i.isCollapsed()){const{anchor:c,focus:a}=i,h=t(c.getNode(),G),u=t(a.getNode(),G);if(!G(h)||!h.is(u))return!1;const d=Ge(h);if(d!==r&&null!=d){const t=e.getElementByKey(d.getKey());if(null!=t)return l.table=De(t),Qe(e,n,o,d,l)}if("backward"===o||"forward"===o){const e=c.type,l=c.offset,a=c.getNode();if(!a)return!1;const h=i.getNodes();return(1!==h.length||!X(h[0]))&&(!!function(e,n,o,r){return function(e,t,n){return"element"===e&&("backward"===n?null===t.getPreviousSibling():null===t.getNextSibling())}(e,o,r)||function(e,n,o,r){const l=t(o,(e=>s(e)&&!e.isInline()));if(!l)return!1;const i="backward"===r?0===n:n===o.getTextContentSize();return"text"===e&&i&&("backward"===r?null===l.getPreviousSibling():null===l.getNextSibling())}(e,n,o,r)}(e,l,a,o)&&function(e,n,o,r){const l=t(n,G);if(!G(l))return!1;const[i,c]=Te(o,l,l);if(!function(e,t,n){const o=e[0][0],r=e[e.length-1][e[0].length-1],{startColumn:l,startRow:s}=t;return"backward"===n?l===o.startColumn&&s===o.startRow:l===r.startColumn&&s===r.startRow}(i,c,r))return!1;const a=function(e,n,o){const r=t(e,(e=>s(e)&&!e.isInline()));if(!r)return;const l="backward"===n?r.getPreviousSibling():r.getNextSibling();return l&<(l)?l:"backward"===n?o.getPreviousSibling():o.getNextSibling()}(n,r,o);if(!a||lt(a))return!1;Ve(e),"backward"===r?a.selectEnd():a.selectStart();return!0}(n,a,r,o))}const g=e.getElementByKey(h.__key),f=e.getElementByKey(c.key);if(null==f||null==g)return!1;let m;if("element"===c.type)m=f.getBoundingClientRect();else{const e=window.getSelection();if(null===e||0===e.rangeCount)return!1;m=e.getRangeAt(0).getBoundingClientRect()}const p="up"===o?h.getFirstChild():h.getLastChild();if(null==p)return!1;const S=e.getElementByKey(p.__key);if(null==S)return!1;const _=S.getBoundingClientRect();if("up"===o?_.top>m.top-m.height:m.bottom+m.height>_.bottom){Ve(n);const e=r.getCordsFromCellNode(h,l.table);if(!n.shiftKey)return Ue(l,r,e.x,e.y,o);{const t=r.getDOMCellFromCordsOrThrow(e.x,e.y,l.table);l.setAnchorCellForSelection(t),l.setFocusCellForSelection(t,!0)}return!0}}else if(Me(i)){const{anchor:s,focus:c}=i,a=t(s.getNode(),G),h=t(c.getNode(),G),[u]=i.getNodes(),d=e.getElementByKey(u.getKey());if(!G(a)||!G(h)||!lt(u)||null==d)return!1;l.updateTableTableSelection(i);const g=De(d),f=r.getCordsFromCellNode(a,g),m=r.getDOMCellFromCordsOrThrow(f.x,f.y,g);if(l.setAnchorCellForSelection(m),Ve(n),n.shiftKey){const e=r.getCordsFromCellNode(h,g);return Ye(l,u,e.x,e.y,o)}return h.selectEnd(),!0}return!1}function Ve(e){e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation()}function Ze(e,t,n){const o=l();"first"===e?t.insertBefore(o):t.insertAfter(o),o.append(...n||[]),o.selectEnd()}function et(e,n,o){const r=o.getParent();if(!r)return;const l=e.getElementByKey(r.getKey());if(!l)return;const s=window.getSelection();if(!s||s.anchorNode!==l)return;const i=t(n.anchor.getNode(),(e=>G(e)));if(!i)return;const c=t(i,(e=>lt(e)));if(!lt(c)||!c.is(o))return;const[a,h]=Te(o,i,i),u=a[0][0],d=a[a.length-1][a[0].length-1],{startRow:g,startColumn:f}=h,m=g===u.startRow&&f===u.startColumn,p=g===d.startRow&&f===d.startColumn;return m?"first":p?"last":void 0}class tt extends r{static getType(){return"table"}static clone(e){return new tt(e.__key)}static importDOM(){return{table:e=>({conversion:ot,priority:1})}}static importJSON(e){return rt()}constructor(e){super(e)}exportJSON(){return{...super.exportJSON(),type:"table",version:1}}createDOM(t,n){const o=document.createElement("table");return e(o,t.theme.table),o}updateDOM(){return!1}exportDOM(e){return{...super.exportDOM(e),after:e=>{if(e){const t=e.cloneNode(),n=document.createElement("colgroup"),r=document.createElement("tbody");o(e)&&r.append(...e.children);const l=this.getFirstChildOrThrow();if(!te(l))throw new Error("Expected to find row node.");const s=l.getChildrenSize();for(let e=0;e<s;e++){const e=document.createElement("col");n.append(e)}return t.replaceChildren(n,r),t}}}}canBeEmpty(){return!1}isShadowRoot(){return!0}getCordsFromCellNode(e,t){const{rows:n,domRows:o}=t;for(let t=0;t<n;t++){const n=o[t];if(null==n)continue;const r=n.findIndex((t=>{if(!t)return;const{elem:n}=t;return w(n)===e}));if(-1!==r)return{x:r,y:t}}throw new Error("Cell not found in table.")}getDOMCellFromCords(e,t,n){const{domRows:o}=n,r=o[t];if(null==r)return null;const l=r[e];return null==l?null:l}getDOMCellFromCordsOrThrow(e,t,n){const o=this.getDOMCellFromCords(e,t,n);if(!o)throw new Error("Cell not found at cords.");return o}getCellNodeFromCords(e,t,n){const o=this.getDOMCellFromCords(e,t,n);if(null==o)return null;const r=w(o.elem);return G(r)?r:null}getCellNodeFromCordsOrThrow(e,t,n){const o=this.getCellNodeFromCords(e,t,n);if(!o)throw new Error("Node at cords not TableCellNode.");return o}canSelectBefore(){return!0}canIndent(){return!1}}function nt(e,t){const n=e.getElementByKey(t.getKey());if(null==n)throw new Error("Table Element Not Found");return De(n)}function ot(e){return{node:rt()}}function rt(){return a(new tt)}function lt(e){return e instanceof tt}export{Te as $computeTableMap,xe as $computeTableMapSkipCellCheck,q as $createTableCellNode,rt as $createTableNode,le as $createTableNodeWithDimensions,ee as $createTableRowNode,Re as $createTableSelection,_e as $deleteTableColumn,we as $deleteTableColumn__EXPERIMENTAL,Ce as $deleteTableRow__EXPERIMENTAL,qe as $findCellNode,Ge as $findTableNode,nt as $getElementForTableNode,ve as $getNodeTriplet,se as $getTableCellNodeFromLexicalNode,Ee as $getTableCellNodeRect,he as $getTableColumnIndexFromTableCellNode,ce as $getTableNodeFromLexicalNodeOrThrow,ae as $getTableRowIndexFromTableCellNode,ie as $getTableRowNodeFromTableCellNodeOrThrow,pe as $insertTableColumn,Se as $insertTableColumn__EXPERIMENTAL,ge as $insertTableRow,me as $insertTableRow__EXPERIMENTAL,G as $isTableCellNode,lt as $isTableNode,te as $isTableRowNode,Me as $isTableSelection,de as $removeTableRowAtIndex,Ne as $unmergeCell,Q as INSERT_TABLE_COMMAND,J as TableCellHeaderStates,$ as TableCellNode,tt as TableNode,ke as TableObserver,V as TableRowNode,He as applyTableHandlers,Be as getDOMCellFromTarget,Pe as getTableObserverFromTableElement};
|
@@ -5,6 +5,7 @@
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
6
6
|
*
|
7
7
|
*/
|
8
|
+
import type { TableCellNode } from './LexicalTableCellNode';
|
8
9
|
import type { TableNode } from './LexicalTableNode';
|
9
10
|
import type { TableDOMCell } from './LexicalTableObserver';
|
10
11
|
import type { TableSelection } from './LexicalTableSelection';
|
@@ -26,5 +27,6 @@ export declare function $forEachTableCell(grid: TableDOMTable, cb: (cell: TableD
|
|
26
27
|
}) => void): void;
|
27
28
|
export declare function $addHighlightStyleToTable(editor: LexicalEditor, tableSelection: TableObserver): void;
|
28
29
|
export declare function $removeHighlightStyleToTable(editor: LexicalEditor, tableObserver: TableObserver): void;
|
30
|
+
export declare function $findCellNode(node: LexicalNode): null | TableCellNode;
|
29
31
|
export declare function $findTableNode(node: LexicalNode): null | TableNode;
|
30
32
|
export {};
|
package/index.d.ts
CHANGED
@@ -18,5 +18,5 @@ export { $createTableRowNode, $isTableRowNode, TableRowNode, } from './LexicalTa
|
|
18
18
|
export type { TableMapType, TableMapValueType, TableSelection, TableSelectionShape, } from './LexicalTableSelection';
|
19
19
|
export { $createTableSelection, $isTableSelection, } from './LexicalTableSelection';
|
20
20
|
export type { HTMLTableElementWithWithTableSelectionState } from './LexicalTableSelectionHelpers';
|
21
|
-
export { applyTableHandlers, getDOMCellFromTarget, getTableObserverFromTableElement, } from './LexicalTableSelectionHelpers';
|
21
|
+
export { $findCellNode, $findTableNode, applyTableHandlers, getDOMCellFromTarget, getTableObserverFromTableElement, } from './LexicalTableSelectionHelpers';
|
22
22
|
export { $computeTableMap, $computeTableMapSkipCellCheck, $createTableNodeWithDimensions, $deleteTableColumn, $deleteTableColumn__EXPERIMENTAL, $deleteTableRow__EXPERIMENTAL, $getNodeTriplet, $getTableCellNodeFromLexicalNode, $getTableCellNodeRect, $getTableColumnIndexFromTableCellNode, $getTableNodeFromLexicalNodeOrThrow, $getTableRowIndexFromTableCellNode, $getTableRowNodeFromTableCellNodeOrThrow, $insertTableColumn, $insertTableColumn__EXPERIMENTAL, $insertTableRow, $insertTableRow__EXPERIMENTAL, $removeTableRowAtIndex, $unmergeCell, } from './LexicalTableUtils';
|
package/package.json
CHANGED
@@ -8,12 +8,12 @@
|
|
8
8
|
"table"
|
9
9
|
],
|
10
10
|
"license": "MIT",
|
11
|
-
"version": "0.16.1-nightly.
|
11
|
+
"version": "0.16.1-nightly.20240620.0",
|
12
12
|
"main": "LexicalTable.js",
|
13
13
|
"types": "index.d.ts",
|
14
14
|
"dependencies": {
|
15
|
-
"@lexical/utils": "0.16.1-nightly.
|
16
|
-
"lexical": "0.16.1-nightly.
|
15
|
+
"@lexical/utils": "0.16.1-nightly.20240620.0",
|
16
|
+
"lexical": "0.16.1-nightly.20240620.0"
|
17
17
|
},
|
18
18
|
"repository": {
|
19
19
|
"type": "git",
|