Socket
Socket
Sign inDemoInstall

@lexical/table

Package Overview
Dependencies
Maintainers
3
Versions
152
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lexical/table - npm Package Compare versions

Comparing version 0.2.0 to 0.2.1

52

LexicalTable.dev.js

@@ -316,2 +316,3 @@ /**

this.focusCell = null;
this.hasHijackedSelectionStyles = false;
this.trackTableGrid();

@@ -397,2 +398,3 @@ }

this.focusCell = null;
this.hasHijackedSelectionStyles = false;
$updateDOMForSelection(grid, null);

@@ -414,2 +416,3 @@ lexical.$setSelection(null);

tableElement.classList.remove('disable-selection');
this.hasHijackedSelectionStyles = false;
});

@@ -427,2 +430,3 @@ }

tableElement.classList.add('disable-selection');
this.hasHijackedSelectionStyles = true;
});

@@ -1000,12 +1004,6 @@ }

isRangeSelectionHijacked = true;
tableSelection.disableHighlightStyle();
(isBackward ? modifiedSelection.focus : modifiedSelection.anchor).set(startNode.getKey(), (isBackward ? selection.focus : selection.anchor).offset, lexical.$isTextNode(startNode) ? 'text' : 'element');
(isBackward ? modifiedSelection.anchor : modifiedSelection.focus).set(parentKey, isBackward ? tableIndex - 1 : tableIndex + 1, 'element');
lexical.$setSelection(modifiedSelection);
$forEachGridCell(tableSelection.grid, cell => {
const elem = cell.elem;
cell.highlighted = true;
elem.style.setProperty('background-color', 'rgb(172, 206, 247)');
elem.style.setProperty('caret-color', 'transparent');
});
$addHighlightStyleToTable(tableSelection);
return true;

@@ -1015,16 +1013,7 @@ }

if (isRangeSelectionHijacked && !tableNode.isSelected()) {
tableSelection.enableHighlightStyle();
$forEachGridCell(tableSelection.grid, cell => {
const elem = cell.elem;
cell.highlighted = false;
elem.style.removeProperty('background-color');
elem.style.removeProperty('caret-color');
if (!elem.getAttribute('style')) {
elem.removeAttribute('style');
}
});
if (tableSelection.hasHijackedSelectionStyles && !tableNode.isSelected()) {
$removeHighlightStyleToTable(tableSelection);
isRangeSelectionHijacked = false;
return true;
} else if (!tableSelection.hasHijackedSelectionStyles && tableNode.isSelected()) {
$addHighlightStyleToTable(tableSelection);
}

@@ -1158,3 +1147,2 @@

function $forEachGridCell(grid, cb) {
const highlightedCells = [];
const {

@@ -1179,4 +1167,24 @@ cells

}
}
function $addHighlightStyleToTable(tableSelection) {
tableSelection.disableHighlightStyle();
$forEachGridCell(tableSelection.grid, cell => {
const elem = cell.elem;
cell.highlighted = true;
elem.style.setProperty('background-color', 'rgb(172, 206, 247)');
elem.style.setProperty('caret-color', 'transparent');
});
}
function $removeHighlightStyleToTable(tableSelection) {
tableSelection.enableHighlightStyle();
$forEachGridCell(tableSelection.grid, cell => {
const elem = cell.elem;
cell.highlighted = false;
elem.style.removeProperty('background-color');
elem.style.removeProperty('caret-color');
return highlightedCells;
if (!elem.getAttribute('style')) {
elem.removeAttribute('style');
}
});
}

@@ -1183,0 +1191,0 @@

@@ -8,51 +8,51 @@ /**

var g=require("lexical"),p=require("@lexical/utils");const q={NO_STATUS:0,ROW:1,COLUMN:2,BOTH:3};
class u extends g.GridCellNode{static getType(){return"tablecell"}static clone(a){return new u(a.__headerState,a.__colSpan,a.__width,a.__key)}static importDOM(){return{td:()=>({conversion:y,priority:0}),th:()=>({conversion:y,priority:0})}}constructor(a=q.NO_STATUS,b=1,d,h){super(b,h);this.__headerState=a;this.__width=d}createDOM(a){const b=document.createElement(this.getTag());this.__width&&(b.style.width=`${this.__width}px`);p.addClassNamesToElement(b,a.theme.tableCell,this.hasHeader()&&a.theme.tableCellHeader);
class u extends g.GridCellNode{static getType(){return"tablecell"}static clone(a){return new u(a.__headerState,a.__colSpan,a.__width,a.__key)}static importDOM(){return{td:()=>({conversion:w,priority:0}),th:()=>({conversion:w,priority:0})}}constructor(a=q.NO_STATUS,b=1,d,h){super(b,h);this.__headerState=a;this.__width=d}createDOM(a){const b=document.createElement(this.getTag());this.__width&&(b.style.width=`${this.__width}px`);p.addClassNamesToElement(b,a.theme.tableCell,this.hasHeader()&&a.theme.tableCellHeader);
return b}exportDOM(a){({element:a}=super.exportDOM(a));if(a){const b=this.getParentOrThrow().getChildrenSize();a.style.border="1px solid black";a.style.width=`${this.getWidth()||Math.max(90,700/b)}px`;a.style.verticalAlign="top";a.style.textAlign="start";this.hasHeader()&&(a.style.backgroundColor="#f2f3f5")}return{element:a}}getTag(){return this.hasHeader()?"th":"td"}setHeaderStyles(a){this.getWritable().__headerState=a;return this.__headerState}getHeaderStyles(){return this.getLatest().__headerState}setWidth(a){this.getWritable().__width=
a;return this.__width}getWidth(){return this.getLatest().__width}toggleHeaderStyle(a){const b=this.getWritable();b.__headerState=(b.__headerState&a)===a?b.__headerState-a:b.__headerState+a;b.__headerState=b.__headerState;return b}hasHeaderState(a){return(this.getHeaderStyles()&a)===a}hasHeader(){return this.getLatest().__headerState!==q.NO_STATUS}updateDOM(a){return a.__headerState!==this.__headerState||a.__width!==this.__width}collapseAtStart(){return!0}canBeEmpty(){return!1}}
function y(a){a=a.nodeName.toLowerCase();return{node:z("th"===a?q.ROW:q.NO_STATUS),forChild:(b,d)=>{if(B(d)&&!g.$isElementNode(b)){d=g.$createParagraphNode();if(g.$isLineBreakNode(b)&&"\n"===b.getTextContent())return null;d.append(b);return d}return b}}}function z(a,b=1,d){return new u(a,b,d)}function B(a){return a instanceof u}
function C(a){throw Error(`Minified Lexical error #${a}; see codes.json for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}
class D extends g.GridRowNode{static getType(){return"tablerow"}static clone(a){return new D(a.__height,a.__key)}static importDOM(){return{tr:()=>({conversion:E,priority:0})}}constructor(a,b){super(b);this.__height=a}createDOM(a){const b=document.createElement("tr");this.__height&&(b.style.height=`${this.__height}px`);p.addClassNamesToElement(b,a.theme.tableRow);return b}setHeight(a){this.getWritable().__height=a;return this.__height}getHeight(){return this.getLatest().__height}updateDOM(a){return a.__height!==
this.__height}canBeEmpty(){return!1}}function E(){return{node:F()}}function F(a){return new D(a)}function G(a){return a instanceof D}
function w(a){a=a.nodeName.toLowerCase();return{node:x("th"===a?q.ROW:q.NO_STATUS),forChild:(b,d)=>{if(y(d)&&!g.$isElementNode(b)){d=g.$createParagraphNode();if(g.$isLineBreakNode(b)&&"\n"===b.getTextContent())return null;d.append(b);return d}return b}}}function x(a,b=1,d){return new u(a,b,d)}function y(a){return a instanceof u}
function A(a){throw Error(`Minified Lexical error #${a}; see codes.json for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}
class B extends g.GridRowNode{static getType(){return"tablerow"}static clone(a){return new B(a.__height,a.__key)}static importDOM(){return{tr:()=>({conversion:C,priority:0})}}constructor(a,b){super(b);this.__height=a}createDOM(a){const b=document.createElement("tr");this.__height&&(b.style.height=`${this.__height}px`);p.addClassNamesToElement(b,a.theme.tableRow);return b}setHeight(a){this.getWritable().__height=a;return this.__height}getHeight(){return this.getLatest().__height}updateDOM(a){return a.__height!==
this.__height}canBeEmpty(){return!1}}function C(){return{node:D()}}function D(a){return new B(a)}function E(a){return a instanceof B}
if("undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement){const a=document.createElement("style");a.innerHTML="\n table.disable-selection {\n -webkit-touch-callout: none;\n -webkit-user-select: none; \n -khtml-user-select: none; \n -moz-user-select: none; \n -ms-user-select: none; \n user-select: none;\n }\n \n .disable-selection span::selection{\n background-color: transparent;\n }\n .disable-selection br::selection{\n background-color: transparent;\n }\n ";document.body&&
document.body.append(a)}
class H{constructor(a,b){this.isHighlightingCells=!1;this.currentY=this.currentX=this.startY=this.startX=-1;this.listenersToRemove=new Set;this.tableNodeKey=b;this.editor=a;this.grid={cells:[],columns:0,rows:0};this.focusCell=this.anchorCell=this.focusCellNodeKey=this.anchorCellNodeKey=this.gridSelection=null;this.trackTableGrid()}getGrid(){return this.grid}removeListeners(){Array.from(this.listenersToRemove).forEach(a=>a())}trackTableGrid(){const a=new MutationObserver(b=>{this.editor.update(()=>
{var d=!1;for(let h=0;h<b.length;h++){const c=b[h].target.nodeName;if("TABLE"===c||"TR"===c){d=!0;break}}if(d){d=this.editor.getElementByKey(this.tableNodeKey);if(!d)throw Error("Expected to find TableElement in DOM");this.grid=I(d)}})});this.editor.update(()=>{const b=this.editor.getElementByKey(this.tableNodeKey);if(!b)throw Error("Expected to find TableElement in DOM");this.grid=I(b);a.observe(b,{childList:!0,subtree:!0})})}clearHighlight(){this.editor.update(()=>{var a=g.$getNodeByKey(this.tableNodeKey);
if(!J(a))throw Error("Expected TableNode.");a=this.editor.getElementByKey(this.tableNodeKey);if(!a)throw Error("Expected to find TableElement in DOM");a=I(a);this.isHighlightingCells=!1;this.currentY=this.currentX=this.startY=this.startX=-1;this.focusCell=this.anchorCell=this.focusCellNodeKey=this.anchorCellNodeKey=this.gridSelection=null;K(a,null);g.$setSelection(null);this.editor.dispatchCommand(g.SELECTION_CHANGE_COMMAND);this.enableHighlightStyle()})}enableHighlightStyle(){this.editor.update(()=>
{const a=this.editor.getElementByKey(this.tableNodeKey);if(!a)throw Error("Expected to find TableElement in DOM");a.classList.remove("disable-selection")})}disableHighlightStyle(){this.editor.update(()=>{const a=this.editor.getElementByKey(this.tableNodeKey);if(!a)throw Error("Expected to find TableElement in DOM");a.classList.add("disable-selection")})}adjustFocusCellForSelection(a,b=!1){this.editor.update(()=>{var d=g.$getNodeByKey(this.tableNodeKey);if(!J(d))throw Error("Expected TableNode.");
if(!this.editor.getElementByKey(this.tableNodeKey))throw Error("Expected to find TableElement in DOM");d=a.x;const h=a.y;this.focusCell=a;const c=window.getSelection();null!==this.anchorCell&&c.setBaseAndExtent(this.anchorCell.elem,0,a.elem,0);if(!this.isHighlightingCells&&(this.startX!==d||this.startY!==h||b))this.isHighlightingCells=!0,this.disableHighlightStyle();else if(d===this.currentX&&h===this.currentY)return;this.currentX=d;this.currentY=h;this.isHighlightingCells&&(d=g.$getNearestNodeFromDOMNode(a.elem),
null!=this.gridSelection&&null!=this.anchorCellNodeKey&&B(d)&&(d=d.getKey(),this.gridSelection=g.$createGridSelection(),this.focusCellNodeKey=d,this.gridSelection.set(this.tableNodeKey,this.anchorCellNodeKey,this.focusCellNodeKey),g.$setSelection(this.gridSelection),this.editor.dispatchCommand(g.SELECTION_CHANGE_COMMAND),K(this.grid,this.gridSelection)))})}setAnchorCellForSelection(a){this.editor.update(()=>{this.anchorCell=a;this.startX=a.x;this.startY=a.y;window.getSelection().setBaseAndExtent(a.elem,
0,a.elem,0);var b=g.$getNearestNodeFromDOMNode(a.elem);B(b)&&(b=b.getKey(),this.gridSelection=g.$createGridSelection(),this.anchorCellNodeKey=b)})}formatCells(a){this.editor.update(()=>{const b=g.$getSelection();g.$isGridSelection(b)||C(79);const d=g.$createRangeSelection(),h=d.anchor,c=d.focus;b.getNodes().forEach(k=>{B(k)&&0!==k.getTextContentSize()&&(h.set(k.getKey(),0,"element"),c.set(k.getKey(),k.getChildrenSize(),"element"),d.formatText(a))});g.$setSelection(b);this.editor.dispatchCommand(g.SELECTION_CHANGE_COMMAND)})}clearText(){this.editor.update(()=>
{const a=g.$getNodeByKey(this.tableNodeKey);if(!J(a))throw Error("Expected TableNode.");var b=g.$getSelection();g.$isGridSelection(b)||C(79);b=b.getNodes().filter(B);b.length===this.grid.columns*this.grid.rows?(a.selectPrevious(),a.remove(),this.clearHighlight()):(b.forEach(d=>{if(g.$isElementNode(d)){const h=g.$createParagraphNode(),c=g.$createTextNode();h.append(c);d.append(h);d.getChildren().forEach(k=>{k!==h&&k.remove()})}}),K(this.grid,null),g.$setSelection(null),this.editor.dispatchCommand(g.SELECTION_CHANGE_COMMAND))})}}
function L(a){for(;null!=a;){const b=a.nodeName;if("TD"===b||"TH"===b){a=a._cell;if(void 0===a)break;return a}a=a.parentNode}return null}
function I(a){const b=[],d={cells:b,columns:0,rows:0};var h=a.firstChild;let c=a=0;for(b.length=0;null!=h;){var k=h.nodeName;if("TD"===k||"TH"===k)k={elem:h,highlighted:!1,x:a,y:c},h._cell=k,void 0===b[c]&&(b[c]=[]),b[c][a]=k;else if(k=h.firstChild,null!=k){h=k;continue}k=h.nextSibling;if(null!=k)a++,h=k;else if(k=h.parentNode,null!=k){h=k.nextSibling;if(null==h)break;c++;a=0}}d.columns=a+1;d.rows=c+1;return d}
function K(a,b){const d=[],h=new Set(b?b.getNodes():[]);M(a,(c,k)=>{const n=c.elem;h.has(k)?(c.highlighted=!0,n.style.setProperty("background-color","rgb(172, 206, 247)"),n.style.setProperty("caret-color","transparent"),d.push(c)):(c.highlighted=!1,n.style.removeProperty("background-color"),n.style.removeProperty("caret-color"),n.getAttribute("style")||n.removeAttribute("style"))});return d}
function M(a,b){({cells:a}=a);for(let d=0;d<a.length;d++){const h=a[d];for(let c=0;c<h.length;c++){const k=h[c],n=g.$getNearestNodeFromDOMNode(k.elem);null!==n&&b(k,n,{x:c,y:d})}}return[]}
const O=(a,b,d,h,c)=>{switch(c){case "backward":case "forward":return c="forward"===c,d!==(c?a.grid.columns-1:0)?N(b.getCellNodeFromCordsOrThrow(d+(c?1:-1),h,a.grid)):h!==(c?a.grid.rows-1:0)?N(b.getCellNodeFromCordsOrThrow(c?0:a.grid.columns-1,h+(c?1:-1),a.grid)):c?b.selectNext():b.selectPrevious(),!0;case "up":return 0!==h?N(b.getCellNodeFromCordsOrThrow(d,h-1,a.grid)):b.selectPrevious(),!0;case "down":return h!==a.grid.rows-1?N(b.getCellNodeFromCordsOrThrow(d,h+1,a.grid)):b.selectNext(),!0}return!1},
P=(a,b,d,h,c)=>{switch(c){case "backward":case "forward":return c="forward"===c,d!==(c?a.grid.columns-1:0)&&a.adjustFocusCellForSelection(b.getCellFromCordsOrThrow(d+(c?1:-1),h,a.grid)),!0;case "up":if(0!==h)return a.adjustFocusCellForSelection(b.getCellFromCordsOrThrow(d,h-1,a.grid)),!0;break;case "down":if(h!==a.grid.rows-1)return a.adjustFocusCellForSelection(b.getCellFromCordsOrThrow(d,h+1,a.grid)),!0}return!1};
function N(a){const b=a.getChildren().find(d=>g.$isParagraphNode(d));g.$isParagraphNode(b)?b.selectEnd():a.selectEnd()}
class Q extends g.GridNode{static getType(){return"table"}static clone(a){return new Q(a.__key)}static importDOM(){return{table:()=>({conversion:R,priority:0})}}constructor(a){super(a)}createDOM(a){const b=document.createElement("table");p.addClassNamesToElement(b,a.theme.table);return b}updateDOM(){return!1}exportDOM(a){return{...super.exportDOM(a),after:b=>{if(b){const d=b.cloneNode(),h=document.createElement("colgroup"),c=document.createElement("tbody");c.append(...b.children);b=this.getFirstChildOrThrow();
if(!G(b))throw Error("Expected to find row node.");b=b.getChildrenSize();for(let k=0;k<b;k++){const n=document.createElement("col");h.append(n)}d.replaceChildren(h,c);return d}}}}canExtractContents(){return!1}canBeEmpty(){return!1}getCordsFromCellNode(a,b){b||C(55);const {rows:d,cells:h}=b;for(b=0;b<d;b++){var c=h[b];if(null==c)throw Error(`Row not found at y:${b}`);c=c.findIndex(({elem:k})=>g.$getNearestNodeFromDOMNode(k)===a);if(-1!==c)return{x:c,y:b}}throw Error("Cell not found in table.");}getCellFromCords(a,
b,d){d||C(55);({cells:d}=d);b=d[b];if(null==b)return null;a=b[a];return null==a?null:a}getCellFromCordsOrThrow(a,b,d){a=this.getCellFromCords(a,b,d);if(!a)throw Error("Cell not found at cords.");return a}getCellNodeFromCords(a,b,d){a=this.getCellFromCords(a,b,d);if(null==a)return null;a=g.$getNearestNodeFromDOMNode(a.elem);return B(a)?a:null}getCellNodeFromCordsOrThrow(a,b,d){a=this.getCellNodeFromCords(a,b,d);if(!a)throw Error("Node at cords not TableCellNode.");return a}canSelectBefore(){return!0}}
function R(){return{node:S()}}function S(){return new Q}function J(a){return a instanceof Q}function T(a){a=p.$findMatchingParent(a,b=>G(b));if(G(a))return a;throw Error("Expected table cell to be inside of table row.");}function U(a){a=p.$findMatchingParent(a,b=>J(b));if(J(a))return a;throw Error("Expected table cell to be inside of table.");}const V=g.createCommand();exports.$createTableCellNode=z;exports.$createTableNode=S;
exports.$createTableNodeWithDimensions=function(a,b,d=!0){const h=S();for(let k=0;k<a;k++){const n=F();for(let r=0;r<b;r++){var c=q.NO_STATUS;d&&(0===k&&(c|=q.ROW),0===r&&(c|=q.COLUMN));c=z(c);const w=g.$createParagraphNode();w.append(g.$createTextNode());c.append(w);n.append(c)}h.append(n)}return h};exports.$createTableRowNode=F;
exports.$deleteTableColumn=function(a,b){const d=a.getChildren();for(let c=0;c<d.length;c++){var h=d[c];if(G(h)){h=h.getChildren();if(b>=h.length||0>b)throw Error("Table column target index out of range");h[b].remove()}}return a};exports.$getElementGridForTableNode=function(a,b){a=a.getElementByKey(b.getKey());if(null==a)throw Error("Table Element Not Found");return I(a)};exports.$getTableCellNodeFromLexicalNode=function(a){a=p.$findMatchingParent(a,b=>B(b));return B(a)?a:null};
exports.$getTableColumnIndexFromTableCellNode=function(a){return T(a).getChildren().findIndex(b=>b.is(a))};exports.$getTableNodeFromLexicalNodeOrThrow=U;exports.$getTableRowIndexFromTableCellNode=function(a){const b=T(a);return U(b).getChildren().findIndex(d=>d.is(b))};exports.$getTableRowNodeFromTableCellNodeOrThrow=T;
exports.$insertTableColumn=function(a,b,d=!0,h){const c=a.getChildren();for(let r=0;r<c.length;r++){const w=c[r];if(G(w))for(let e=0;e<h;e++){var k=q.NO_STATUS;0===r&&(k|=q.ROW);k=z(k);k.append(g.$createParagraphNode());var n=w.getChildren();if(b>=n.length||0>b)throw Error("Table column target index out of range");n=n[b];d?n.insertAfter(k):n.insertBefore(k)}}return a};
exports.$insertTableRow=function(a,b,d=!0,h,c){var k=a.getChildren();if(b>=k.length||0>b)throw Error("Table row target index out of range");b=k[b];if(G(b))for(k=0;k<h;k++){const w=b.getChildren(),e=w.length,f=F();for(let l=0;l<e;l++){var n=w[l];B(n)||C(73);var r=c;const m=U(n),{x:t,y:x}=m.getCordsFromCellNode(n,r);n={above:m.getCellNodeFromCords(t,x-1,r),below:m.getCellNodeFromCords(t,x+1,r),left:m.getCellNodeFromCords(t-1,x,r),right:m.getCellNodeFromCords(t+1,x,r)};const {above:v,below:A}=n;n=q.NO_STATUS;
r=v&&v.getWidth()||A&&A.getWidth()||null;if(v&&v.hasHeaderState(q.COLUMN)||A&&A.hasHeaderState(q.COLUMN))n|=q.COLUMN;n=z(n,1,r);n.append(g.$createParagraphNode());f.append(n)}d?b.insertAfter(f):b.insertBefore(f)}else throw Error("Row before insertion index does not exist.");return a};exports.$isTableCellNode=B;exports.$isTableNode=J;exports.$isTableRowNode=G;
exports.$removeTableRowAtIndex=function(a,b){const d=a.getChildren();if(b>=d.length||0>b)throw Error("Expected table cell to be inside of table row.");d[b].remove();return a};exports.INSERT_TABLE_COMMAND=V;exports.TableCellHeaderStates=q;exports.TableCellNode=u;exports.TableNode=Q;exports.TableRowNode=D;exports.TableSelection=H;
exports.applyTableHandlers=function(a,b,d){const h=d.getRootElement();if(null===h)throw Error("No root element.");const c=new H(d,a.getKey());b.__lexicalTableSelection=c;let k=!1,n=!1;b.addEventListener("dblclick",e=>{const f=L(e.target);null!==f&&(e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),c.setAnchorCellForSelection(f),c.adjustFocusCellForSelection(f,!0),k=!1)});b.addEventListener("mousedown",e=>{setTimeout(()=>{if(0===e.button){var f=L(e.target);null!==f&&(c.setAnchorCellForSelection(f),
document.addEventListener("mouseup",()=>{k=!1},{capture:!0,once:!0}))}},0)});b.addEventListener("mousemove",e=>{n&&(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation());if(k){const f=L(e.target);if(null!==f){const l=f.x,m=f.y;k&&(c.startX!==l||c.startY!==m||c.isHighlightingCells)&&(e.preventDefault(),k=!0,c.adjustFocusCellForSelection(f))}}});b.addEventListener("mouseup",()=>{k&&(k=!1)});b.addEventListener("mouseleave",()=>{});const r=e=>{k=!0;0===e.button&&d.update(()=>{const f=g.$getSelection();
if(g.$isGridSelection(f)&&f.gridKey===c.tableNodeKey&&h.contains(e.target))return c.clearHighlight()})};window.addEventListener("mousedown",r);c.listenersToRemove.add(()=>window.removeEventListener("mousedown",r));const w=()=>{k=!1};window.addEventListener("mouseup",w);c.listenersToRemove.add(()=>window.removeEventListener("mouseup",w));c.listenersToRemove.add(d.registerCommand(g.KEY_ARROW_DOWN_COMMAND,e=>{var f=g.$getSelection();if(g.$isRangeSelection(f)){if(f.isCollapsed()){var l=p.$findMatchingParent(f.anchor.getNode(),
t=>B(t));if(!B(l))return!1;var m=a.getCordsFromCellNode(l,c.grid);f=p.$findMatchingParent(f.anchor.getNode(),t=>g.$isElementNode(t));if(null==f)throw Error("Expected BlockNode Parent");if((l=l.getLastChild())&&f.isParentOf(l)||f===l||e.shiftKey)return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),e.shiftKey?(c.setAnchorCellForSelection(a.getCellFromCordsOrThrow(m.x,m.y,c.grid)),P(c,a,m.x,m.y,"down")):O(c,a,m.x,m.y,"down")}}else if(g.$isGridSelection(f)&&e.shiftKey){m=f.focus.getNode();
if(!B(m))return!1;m=a.getCordsFromCellNode(m,c.grid);e.preventDefault();e.stopImmediatePropagation();e.stopPropagation();return P(c,a,m.x,m.y,"down")}return!1},4));c.listenersToRemove.add(d.registerCommand(g.KEY_ARROW_UP_COMMAND,e=>{var f=g.$getSelection();if(g.$isRangeSelection(f)){if(f.isCollapsed()){var l=p.$findMatchingParent(f.anchor.getNode(),t=>B(t));if(!B(l))return!1;var m=a.getCordsFromCellNode(l,c.grid);f=p.$findMatchingParent(f.anchor.getNode(),t=>g.$isElementNode(t));if(null==f)throw Error("Expected BlockNode Parent");
if((l=l.getLastChild())&&f.isParentOf(l)||f===l||e.shiftKey)return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),e.shiftKey?(c.setAnchorCellForSelection(a.getCellFromCordsOrThrow(m.x,m.y,c.grid)),P(c,a,m.x,m.y,"up")):O(c,a,m.x,m.y,"up")}}else if(g.$isGridSelection(f)&&e.shiftKey){m=f.focus.getNode();if(!B(m))return!1;m=a.getCordsFromCellNode(m,c.grid);e.preventDefault();e.stopImmediatePropagation();e.stopPropagation();return P(c,a,m.x,m.y,"up")}return!1},4));c.listenersToRemove.add(d.registerCommand(g.KEY_ARROW_LEFT_COMMAND,
e=>{var f=g.$getSelection();if(g.$isRangeSelection(f)){if(f.isCollapsed()){var l=p.$findMatchingParent(f.anchor.getNode(),m=>B(m));if(!B(l))return!1;l=a.getCordsFromCellNode(l,c.grid);if(null==p.$findMatchingParent(f.anchor.getNode(),m=>g.$isElementNode(m)))throw Error("Expected BlockNode Parent");if(0===f.anchor.offset||e.shiftKey)return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),e.shiftKey?(c.setAnchorCellForSelection(a.getCellFromCordsOrThrow(l.x,l.y,c.grid)),P(c,a,l.x,
l.y,"backward")):O(c,a,l.x,l.y,"backward")}}else if(g.$isGridSelection(f)&&e.shiftKey){f=f.focus.getNode();if(!B(f))return!1;f=a.getCordsFromCellNode(f,c.grid);e.preventDefault();e.stopImmediatePropagation();e.stopPropagation();return P(c,a,f.x,f.y,"backward")}return!1},4));c.listenersToRemove.add(d.registerCommand(g.KEY_ARROW_RIGHT_COMMAND,e=>{var f=g.$getSelection();if(g.$isRangeSelection(f)){if(f.isCollapsed()){var l=p.$findMatchingParent(f.anchor.getNode(),m=>B(m));if(!B(l))return!1;l=a.getCordsFromCellNode(l,
c.grid);if(null==p.$findMatchingParent(f.anchor.getNode(),m=>g.$isElementNode(m)))throw Error("Expected BlockNode Parent");if(f.anchor.offset===f.anchor.getNode().getTextContentSize()||e.shiftKey)return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),e.shiftKey?(c.setAnchorCellForSelection(a.getCellFromCordsOrThrow(l.x,l.y,c.grid)),P(c,a,l.x,l.y,"forward")):O(c,a,l.x,l.y,"forward")}}else if(g.$isGridSelection(f)&&e.shiftKey){f=f.focus.getNode();if(!B(f))return!1;f=a.getCordsFromCellNode(f,
c.grid);e.preventDefault();e.stopImmediatePropagation();e.stopPropagation();return P(c,a,f.x,f.y,"forward")}return!1},4));c.listenersToRemove.add(d.registerCommand(g.DELETE_CHARACTER_COMMAND,()=>{const e=g.$getSelection();if(g.$isGridSelection(e))return c.clearText(),!0;if(g.$isRangeSelection(e)){const f=p.$findMatchingParent(e.anchor.getNode(),l=>B(l));if(!B(f))return!1;if(e.isCollapsed()&&0===e.anchor.offset&&0===e.anchor.getNode().getPreviousSiblings().length)return!0}return!1},4));c.listenersToRemove.add(d.registerCommand(g.KEY_BACKSPACE_COMMAND,
e=>{const f=g.$getSelection();if(g.$isGridSelection(f))return e.preventDefault(),e.stopPropagation(),c.clearText(),!0;g.$isRangeSelection(f)&&(e=p.$findMatchingParent(f.anchor.getNode(),l=>B(l)),B(e));return!1},4));c.listenersToRemove.add(d.registerCommand(g.FORMAT_TEXT_COMMAND,e=>{const f=g.$getSelection();if(g.$isGridSelection(f))return c.formatCells(e),!0;g.$isRangeSelection(f)&&(e=p.$findMatchingParent(f.anchor.getNode(),l=>B(l)),B(e));return!1},4));c.listenersToRemove.add(d.registerCommand(g.INSERT_TEXT_COMMAND,
()=>{var e=g.$getSelection();g.$isGridSelection(e)?c.clearHighlight():g.$isRangeSelection(e)&&(e=p.$findMatchingParent(e.anchor.getNode(),f=>B(f)),B(e));return!1},4));c.listenersToRemove.add(d.registerCommand(g.KEY_TAB_COMMAND,e=>{var f=g.$getSelection();if(g.$isRangeSelection(f)){const l=p.$findMatchingParent(f.anchor.getNode(),m=>B(m));if(!B(l))return!1;if(f.isCollapsed())return f=a.getCordsFromCellNode(l,c.grid),e.preventDefault(),O(c,a,f.x,f.y,e.shiftKey?"backward":"forward"),!0}return!1},4));
c.listenersToRemove.add(d.registerCommand(g.SELECTION_CHANGE_COMMAND,()=>{const e=g.$getSelection();if(e&&g.$isRangeSelection(e)&&!e.isCollapsed()){var f=e.anchor.getNode(),l=e.focus.getNode(),m=a.isParentOf(f),t=a.isParentOf(l);if(m&&!t||t&&!m){f=(m=e.isBackward())?l:f;l=g.$createRangeSelection();t=a.getIndexWithinParent();const x=a.getParentOrThrow().getKey();n=!0;c.disableHighlightStyle();(m?l.focus:l.anchor).set(f.getKey(),(m?e.focus:e.anchor).offset,g.$isTextNode(f)?"text":"element");(m?l.anchor:
l.focus).set(x,m?t-1:t+1,"element");g.$setSelection(l);M(c.grid,v=>{const A=v.elem;v.highlighted=!0;A.style.setProperty("background-color","rgb(172, 206, 247)");A.style.setProperty("caret-color","transparent")});return!0}}return n&&!a.isSelected()?(c.enableHighlightStyle(),M(c.grid,x=>{const v=x.elem;x.highlighted=!1;v.style.removeProperty("background-color");v.style.removeProperty("caret-color");v.getAttribute("style")||v.removeAttribute("style")}),n=!1,!0):!1},4));return c};
exports.getCellFromTarget=L;exports.getTableSelectionFromTableElement=function(a){return a.__lexicalTableSelection};
class F{constructor(a,b){this.isHighlightingCells=!1;this.currentY=this.currentX=this.startY=this.startX=-1;this.listenersToRemove=new Set;this.tableNodeKey=b;this.editor=a;this.grid={cells:[],columns:0,rows:0};this.focusCell=this.anchorCell=this.focusCellNodeKey=this.anchorCellNodeKey=this.gridSelection=null;this.hasHijackedSelectionStyles=!1;this.trackTableGrid()}getGrid(){return this.grid}removeListeners(){Array.from(this.listenersToRemove).forEach(a=>a())}trackTableGrid(){const a=new MutationObserver(b=>
{this.editor.update(()=>{var d=!1;for(let h=0;h<b.length;h++){const c=b[h].target.nodeName;if("TABLE"===c||"TR"===c){d=!0;break}}if(d){d=this.editor.getElementByKey(this.tableNodeKey);if(!d)throw Error("Expected to find TableElement in DOM");this.grid=G(d)}})});this.editor.update(()=>{const b=this.editor.getElementByKey(this.tableNodeKey);if(!b)throw Error("Expected to find TableElement in DOM");this.grid=G(b);a.observe(b,{childList:!0,subtree:!0})})}clearHighlight(){this.editor.update(()=>{var a=
g.$getNodeByKey(this.tableNodeKey);if(!H(a))throw Error("Expected TableNode.");a=this.editor.getElementByKey(this.tableNodeKey);if(!a)throw Error("Expected to find TableElement in DOM");a=G(a);this.isHighlightingCells=!1;this.currentY=this.currentX=this.startY=this.startX=-1;this.focusCell=this.anchorCell=this.focusCellNodeKey=this.anchorCellNodeKey=this.gridSelection=null;this.hasHijackedSelectionStyles=!1;I(a,null);g.$setSelection(null);this.editor.dispatchCommand(g.SELECTION_CHANGE_COMMAND);this.enableHighlightStyle()})}enableHighlightStyle(){this.editor.update(()=>
{const a=this.editor.getElementByKey(this.tableNodeKey);if(!a)throw Error("Expected to find TableElement in DOM");a.classList.remove("disable-selection");this.hasHijackedSelectionStyles=!1})}disableHighlightStyle(){this.editor.update(()=>{const a=this.editor.getElementByKey(this.tableNodeKey);if(!a)throw Error("Expected to find TableElement in DOM");a.classList.add("disable-selection");this.hasHijackedSelectionStyles=!0})}adjustFocusCellForSelection(a,b=!1){this.editor.update(()=>{var d=g.$getNodeByKey(this.tableNodeKey);
if(!H(d))throw Error("Expected TableNode.");if(!this.editor.getElementByKey(this.tableNodeKey))throw Error("Expected to find TableElement in DOM");d=a.x;const h=a.y;this.focusCell=a;const c=window.getSelection();null!==this.anchorCell&&c.setBaseAndExtent(this.anchorCell.elem,0,a.elem,0);if(!this.isHighlightingCells&&(this.startX!==d||this.startY!==h||b))this.isHighlightingCells=!0,this.disableHighlightStyle();else if(d===this.currentX&&h===this.currentY)return;this.currentX=d;this.currentY=h;this.isHighlightingCells&&
(d=g.$getNearestNodeFromDOMNode(a.elem),null!=this.gridSelection&&null!=this.anchorCellNodeKey&&y(d)&&(d=d.getKey(),this.gridSelection=g.$createGridSelection(),this.focusCellNodeKey=d,this.gridSelection.set(this.tableNodeKey,this.anchorCellNodeKey,this.focusCellNodeKey),g.$setSelection(this.gridSelection),this.editor.dispatchCommand(g.SELECTION_CHANGE_COMMAND),I(this.grid,this.gridSelection)))})}setAnchorCellForSelection(a){this.editor.update(()=>{this.anchorCell=a;this.startX=a.x;this.startY=a.y;
window.getSelection().setBaseAndExtent(a.elem,0,a.elem,0);var b=g.$getNearestNodeFromDOMNode(a.elem);y(b)&&(b=b.getKey(),this.gridSelection=g.$createGridSelection(),this.anchorCellNodeKey=b)})}formatCells(a){this.editor.update(()=>{const b=g.$getSelection();g.$isGridSelection(b)||A(79);const d=g.$createRangeSelection(),h=d.anchor,c=d.focus;b.getNodes().forEach(k=>{y(k)&&0!==k.getTextContentSize()&&(h.set(k.getKey(),0,"element"),c.set(k.getKey(),k.getChildrenSize(),"element"),d.formatText(a))});g.$setSelection(b);
this.editor.dispatchCommand(g.SELECTION_CHANGE_COMMAND)})}clearText(){this.editor.update(()=>{const a=g.$getNodeByKey(this.tableNodeKey);if(!H(a))throw Error("Expected TableNode.");var b=g.$getSelection();g.$isGridSelection(b)||A(79);b=b.getNodes().filter(y);b.length===this.grid.columns*this.grid.rows?(a.selectPrevious(),a.remove(),this.clearHighlight()):(b.forEach(d=>{if(g.$isElementNode(d)){const h=g.$createParagraphNode(),c=g.$createTextNode();h.append(c);d.append(h);d.getChildren().forEach(k=>
{k!==h&&k.remove()})}}),I(this.grid,null),g.$setSelection(null),this.editor.dispatchCommand(g.SELECTION_CHANGE_COMMAND))})}}function J(a){for(;null!=a;){const b=a.nodeName;if("TD"===b||"TH"===b){a=a._cell;if(void 0===a)break;return a}a=a.parentNode}return null}
function G(a){const b=[],d={cells:b,columns:0,rows:0};var h=a.firstChild;let c=a=0;for(b.length=0;null!=h;){var k=h.nodeName;if("TD"===k||"TH"===k)k={elem:h,highlighted:!1,x:a,y:c},h._cell=k,void 0===b[c]&&(b[c]=[]),b[c][a]=k;else if(k=h.firstChild,null!=k){h=k;continue}k=h.nextSibling;if(null!=k)a++,h=k;else if(k=h.parentNode,null!=k){h=k.nextSibling;if(null==h)break;c++;a=0}}d.columns=a+1;d.rows=c+1;return d}
function I(a,b){const d=[],h=new Set(b?b.getNodes():[]);M(a,(c,k)=>{const n=c.elem;h.has(k)?(c.highlighted=!0,n.style.setProperty("background-color","rgb(172, 206, 247)"),n.style.setProperty("caret-color","transparent"),d.push(c)):(c.highlighted=!1,n.style.removeProperty("background-color"),n.style.removeProperty("caret-color"),n.getAttribute("style")||n.removeAttribute("style"))});return d}
function M(a,b){({cells:a}=a);for(let d=0;d<a.length;d++){const h=a[d];for(let c=0;c<h.length;c++){const k=h[c],n=g.$getNearestNodeFromDOMNode(k.elem);null!==n&&b(k,n,{x:c,y:d})}}}function N(a){a.disableHighlightStyle();M(a.grid,b=>{const d=b.elem;b.highlighted=!0;d.style.setProperty("background-color","rgb(172, 206, 247)");d.style.setProperty("caret-color","transparent")})}
function O(a){a.enableHighlightStyle();M(a.grid,b=>{const d=b.elem;b.highlighted=!1;d.style.removeProperty("background-color");d.style.removeProperty("caret-color");d.getAttribute("style")||d.removeAttribute("style")})}
const Q=(a,b,d,h,c)=>{switch(c){case "backward":case "forward":return c="forward"===c,d!==(c?a.grid.columns-1:0)?P(b.getCellNodeFromCordsOrThrow(d+(c?1:-1),h,a.grid)):h!==(c?a.grid.rows-1:0)?P(b.getCellNodeFromCordsOrThrow(c?0:a.grid.columns-1,h+(c?1:-1),a.grid)):c?b.selectNext():b.selectPrevious(),!0;case "up":return 0!==h?P(b.getCellNodeFromCordsOrThrow(d,h-1,a.grid)):b.selectPrevious(),!0;case "down":return h!==a.grid.rows-1?P(b.getCellNodeFromCordsOrThrow(d,h+1,a.grid)):b.selectNext(),!0}return!1},
R=(a,b,d,h,c)=>{switch(c){case "backward":case "forward":return c="forward"===c,d!==(c?a.grid.columns-1:0)&&a.adjustFocusCellForSelection(b.getCellFromCordsOrThrow(d+(c?1:-1),h,a.grid)),!0;case "up":if(0!==h)return a.adjustFocusCellForSelection(b.getCellFromCordsOrThrow(d,h-1,a.grid)),!0;break;case "down":if(h!==a.grid.rows-1)return a.adjustFocusCellForSelection(b.getCellFromCordsOrThrow(d,h+1,a.grid)),!0}return!1};
function P(a){const b=a.getChildren().find(d=>g.$isParagraphNode(d));g.$isParagraphNode(b)?b.selectEnd():a.selectEnd()}
class S extends g.GridNode{static getType(){return"table"}static clone(a){return new S(a.__key)}static importDOM(){return{table:()=>({conversion:T,priority:0})}}constructor(a){super(a)}createDOM(a){const b=document.createElement("table");p.addClassNamesToElement(b,a.theme.table);return b}updateDOM(){return!1}exportDOM(a){return{...super.exportDOM(a),after:b=>{if(b){const d=b.cloneNode(),h=document.createElement("colgroup"),c=document.createElement("tbody");c.append(...b.children);b=this.getFirstChildOrThrow();
if(!E(b))throw Error("Expected to find row node.");b=b.getChildrenSize();for(let k=0;k<b;k++){const n=document.createElement("col");h.append(n)}d.replaceChildren(h,c);return d}}}}canExtractContents(){return!1}canBeEmpty(){return!1}getCordsFromCellNode(a,b){b||A(55);const {rows:d,cells:h}=b;for(b=0;b<d;b++){var c=h[b];if(null==c)throw Error(`Row not found at y:${b}`);c=c.findIndex(({elem:k})=>g.$getNearestNodeFromDOMNode(k)===a);if(-1!==c)return{x:c,y:b}}throw Error("Cell not found in table.");}getCellFromCords(a,
b,d){d||A(55);({cells:d}=d);b=d[b];if(null==b)return null;a=b[a];return null==a?null:a}getCellFromCordsOrThrow(a,b,d){a=this.getCellFromCords(a,b,d);if(!a)throw Error("Cell not found at cords.");return a}getCellNodeFromCords(a,b,d){a=this.getCellFromCords(a,b,d);if(null==a)return null;a=g.$getNearestNodeFromDOMNode(a.elem);return y(a)?a:null}getCellNodeFromCordsOrThrow(a,b,d){a=this.getCellNodeFromCords(a,b,d);if(!a)throw Error("Node at cords not TableCellNode.");return a}canSelectBefore(){return!0}}
function T(){return{node:U()}}function U(){return new S}function H(a){return a instanceof S}function V(a){a=p.$findMatchingParent(a,b=>E(b));if(E(a))return a;throw Error("Expected table cell to be inside of table row.");}function W(a){a=p.$findMatchingParent(a,b=>H(b));if(H(a))return a;throw Error("Expected table cell to be inside of table.");}const X=g.createCommand();exports.$createTableCellNode=x;exports.$createTableNode=U;
exports.$createTableNodeWithDimensions=function(a,b,d=!0){const h=U();for(let k=0;k<a;k++){const n=D();for(let r=0;r<b;r++){var c=q.NO_STATUS;d&&(0===k&&(c|=q.ROW),0===r&&(c|=q.COLUMN));c=x(c);const v=g.$createParagraphNode();v.append(g.$createTextNode());c.append(v);n.append(c)}h.append(n)}return h};exports.$createTableRowNode=D;
exports.$deleteTableColumn=function(a,b){const d=a.getChildren();for(let c=0;c<d.length;c++){var h=d[c];if(E(h)){h=h.getChildren();if(b>=h.length||0>b)throw Error("Table column target index out of range");h[b].remove()}}return a};exports.$getElementGridForTableNode=function(a,b){a=a.getElementByKey(b.getKey());if(null==a)throw Error("Table Element Not Found");return G(a)};exports.$getTableCellNodeFromLexicalNode=function(a){a=p.$findMatchingParent(a,b=>y(b));return y(a)?a:null};
exports.$getTableColumnIndexFromTableCellNode=function(a){return V(a).getChildren().findIndex(b=>b.is(a))};exports.$getTableNodeFromLexicalNodeOrThrow=W;exports.$getTableRowIndexFromTableCellNode=function(a){const b=V(a);return W(b).getChildren().findIndex(d=>d.is(b))};exports.$getTableRowNodeFromTableCellNodeOrThrow=V;
exports.$insertTableColumn=function(a,b,d=!0,h){const c=a.getChildren();for(let r=0;r<c.length;r++){const v=c[r];if(E(v))for(let e=0;e<h;e++){var k=q.NO_STATUS;0===r&&(k|=q.ROW);k=x(k);k.append(g.$createParagraphNode());var n=v.getChildren();if(b>=n.length||0>b)throw Error("Table column target index out of range");n=n[b];d?n.insertAfter(k):n.insertBefore(k)}}return a};
exports.$insertTableRow=function(a,b,d=!0,h,c){var k=a.getChildren();if(b>=k.length||0>b)throw Error("Table row target index out of range");b=k[b];if(E(b))for(k=0;k<h;k++){const v=b.getChildren(),e=v.length,f=D();for(let l=0;l<e;l++){var n=v[l];y(n)||A(73);var r=c;const m=W(n),{x:t,y:z}=m.getCordsFromCellNode(n,r);n={above:m.getCellNodeFromCords(t,z-1,r),below:m.getCellNodeFromCords(t,z+1,r),left:m.getCellNodeFromCords(t-1,z,r),right:m.getCellNodeFromCords(t+1,z,r)};const {above:K,below:L}=n;n=q.NO_STATUS;
r=K&&K.getWidth()||L&&L.getWidth()||null;if(K&&K.hasHeaderState(q.COLUMN)||L&&L.hasHeaderState(q.COLUMN))n|=q.COLUMN;n=x(n,1,r);n.append(g.$createParagraphNode());f.append(n)}d?b.insertAfter(f):b.insertBefore(f)}else throw Error("Row before insertion index does not exist.");return a};exports.$isTableCellNode=y;exports.$isTableNode=H;exports.$isTableRowNode=E;
exports.$removeTableRowAtIndex=function(a,b){const d=a.getChildren();if(b>=d.length||0>b)throw Error("Expected table cell to be inside of table row.");d[b].remove();return a};exports.INSERT_TABLE_COMMAND=X;exports.TableCellHeaderStates=q;exports.TableCellNode=u;exports.TableNode=S;exports.TableRowNode=B;exports.TableSelection=F;
exports.applyTableHandlers=function(a,b,d){const h=d.getRootElement();if(null===h)throw Error("No root element.");const c=new F(d,a.getKey());b.__lexicalTableSelection=c;let k=!1,n=!1;b.addEventListener("dblclick",e=>{const f=J(e.target);null!==f&&(e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),c.setAnchorCellForSelection(f),c.adjustFocusCellForSelection(f,!0),k=!1)});b.addEventListener("mousedown",e=>{setTimeout(()=>{if(0===e.button){var f=J(e.target);null!==f&&(c.setAnchorCellForSelection(f),
document.addEventListener("mouseup",()=>{k=!1},{capture:!0,once:!0}))}},0)});b.addEventListener("mousemove",e=>{n&&(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation());if(k){const f=J(e.target);if(null!==f){const l=f.x,m=f.y;k&&(c.startX!==l||c.startY!==m||c.isHighlightingCells)&&(e.preventDefault(),k=!0,c.adjustFocusCellForSelection(f))}}});b.addEventListener("mouseup",()=>{k&&(k=!1)});b.addEventListener("mouseleave",()=>{});const r=e=>{k=!0;0===e.button&&d.update(()=>{const f=g.$getSelection();
if(g.$isGridSelection(f)&&f.gridKey===c.tableNodeKey&&h.contains(e.target))return c.clearHighlight()})};window.addEventListener("mousedown",r);c.listenersToRemove.add(()=>window.removeEventListener("mousedown",r));const v=()=>{k=!1};window.addEventListener("mouseup",v);c.listenersToRemove.add(()=>window.removeEventListener("mouseup",v));c.listenersToRemove.add(d.registerCommand(g.KEY_ARROW_DOWN_COMMAND,e=>{var f=g.$getSelection();if(g.$isRangeSelection(f)){if(f.isCollapsed()){var l=p.$findMatchingParent(f.anchor.getNode(),
t=>y(t));if(!y(l))return!1;var m=a.getCordsFromCellNode(l,c.grid);f=p.$findMatchingParent(f.anchor.getNode(),t=>g.$isElementNode(t));if(null==f)throw Error("Expected BlockNode Parent");if((l=l.getLastChild())&&f.isParentOf(l)||f===l||e.shiftKey)return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),e.shiftKey?(c.setAnchorCellForSelection(a.getCellFromCordsOrThrow(m.x,m.y,c.grid)),R(c,a,m.x,m.y,"down")):Q(c,a,m.x,m.y,"down")}}else if(g.$isGridSelection(f)&&e.shiftKey){m=f.focus.getNode();
if(!y(m))return!1;m=a.getCordsFromCellNode(m,c.grid);e.preventDefault();e.stopImmediatePropagation();e.stopPropagation();return R(c,a,m.x,m.y,"down")}return!1},4));c.listenersToRemove.add(d.registerCommand(g.KEY_ARROW_UP_COMMAND,e=>{var f=g.$getSelection();if(g.$isRangeSelection(f)){if(f.isCollapsed()){var l=p.$findMatchingParent(f.anchor.getNode(),t=>y(t));if(!y(l))return!1;var m=a.getCordsFromCellNode(l,c.grid);f=p.$findMatchingParent(f.anchor.getNode(),t=>g.$isElementNode(t));if(null==f)throw Error("Expected BlockNode Parent");
if((l=l.getLastChild())&&f.isParentOf(l)||f===l||e.shiftKey)return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),e.shiftKey?(c.setAnchorCellForSelection(a.getCellFromCordsOrThrow(m.x,m.y,c.grid)),R(c,a,m.x,m.y,"up")):Q(c,a,m.x,m.y,"up")}}else if(g.$isGridSelection(f)&&e.shiftKey){m=f.focus.getNode();if(!y(m))return!1;m=a.getCordsFromCellNode(m,c.grid);e.preventDefault();e.stopImmediatePropagation();e.stopPropagation();return R(c,a,m.x,m.y,"up")}return!1},4));c.listenersToRemove.add(d.registerCommand(g.KEY_ARROW_LEFT_COMMAND,
e=>{var f=g.$getSelection();if(g.$isRangeSelection(f)){if(f.isCollapsed()){var l=p.$findMatchingParent(f.anchor.getNode(),m=>y(m));if(!y(l))return!1;l=a.getCordsFromCellNode(l,c.grid);if(null==p.$findMatchingParent(f.anchor.getNode(),m=>g.$isElementNode(m)))throw Error("Expected BlockNode Parent");if(0===f.anchor.offset||e.shiftKey)return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),e.shiftKey?(c.setAnchorCellForSelection(a.getCellFromCordsOrThrow(l.x,l.y,c.grid)),R(c,a,l.x,
l.y,"backward")):Q(c,a,l.x,l.y,"backward")}}else if(g.$isGridSelection(f)&&e.shiftKey){f=f.focus.getNode();if(!y(f))return!1;f=a.getCordsFromCellNode(f,c.grid);e.preventDefault();e.stopImmediatePropagation();e.stopPropagation();return R(c,a,f.x,f.y,"backward")}return!1},4));c.listenersToRemove.add(d.registerCommand(g.KEY_ARROW_RIGHT_COMMAND,e=>{var f=g.$getSelection();if(g.$isRangeSelection(f)){if(f.isCollapsed()){var l=p.$findMatchingParent(f.anchor.getNode(),m=>y(m));if(!y(l))return!1;l=a.getCordsFromCellNode(l,
c.grid);if(null==p.$findMatchingParent(f.anchor.getNode(),m=>g.$isElementNode(m)))throw Error("Expected BlockNode Parent");if(f.anchor.offset===f.anchor.getNode().getTextContentSize()||e.shiftKey)return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),e.shiftKey?(c.setAnchorCellForSelection(a.getCellFromCordsOrThrow(l.x,l.y,c.grid)),R(c,a,l.x,l.y,"forward")):Q(c,a,l.x,l.y,"forward")}}else if(g.$isGridSelection(f)&&e.shiftKey){f=f.focus.getNode();if(!y(f))return!1;f=a.getCordsFromCellNode(f,
c.grid);e.preventDefault();e.stopImmediatePropagation();e.stopPropagation();return R(c,a,f.x,f.y,"forward")}return!1},4));c.listenersToRemove.add(d.registerCommand(g.DELETE_CHARACTER_COMMAND,()=>{const e=g.$getSelection();if(g.$isGridSelection(e))return c.clearText(),!0;if(g.$isRangeSelection(e)){const f=p.$findMatchingParent(e.anchor.getNode(),l=>y(l));if(!y(f))return!1;if(e.isCollapsed()&&0===e.anchor.offset&&0===e.anchor.getNode().getPreviousSiblings().length)return!0}return!1},4));c.listenersToRemove.add(d.registerCommand(g.KEY_BACKSPACE_COMMAND,
e=>{const f=g.$getSelection();if(g.$isGridSelection(f))return e.preventDefault(),e.stopPropagation(),c.clearText(),!0;g.$isRangeSelection(f)&&(e=p.$findMatchingParent(f.anchor.getNode(),l=>y(l)),y(e));return!1},4));c.listenersToRemove.add(d.registerCommand(g.FORMAT_TEXT_COMMAND,e=>{const f=g.$getSelection();if(g.$isGridSelection(f))return c.formatCells(e),!0;g.$isRangeSelection(f)&&(e=p.$findMatchingParent(f.anchor.getNode(),l=>y(l)),y(e));return!1},4));c.listenersToRemove.add(d.registerCommand(g.INSERT_TEXT_COMMAND,
()=>{var e=g.$getSelection();g.$isGridSelection(e)?c.clearHighlight():g.$isRangeSelection(e)&&(e=p.$findMatchingParent(e.anchor.getNode(),f=>y(f)),y(e));return!1},4));c.listenersToRemove.add(d.registerCommand(g.KEY_TAB_COMMAND,e=>{var f=g.$getSelection();if(g.$isRangeSelection(f)){const l=p.$findMatchingParent(f.anchor.getNode(),m=>y(m));if(!y(l))return!1;if(f.isCollapsed())return f=a.getCordsFromCellNode(l,c.grid),e.preventDefault(),Q(c,a,f.x,f.y,e.shiftKey?"backward":"forward"),!0}return!1},4));
c.listenersToRemove.add(d.registerCommand(g.SELECTION_CHANGE_COMMAND,()=>{const e=g.$getSelection();if(e&&g.$isRangeSelection(e)&&!e.isCollapsed()){var f=e.anchor.getNode(),l=e.focus.getNode(),m=a.isParentOf(f),t=a.isParentOf(l);if(m&&!t||t&&!m){f=(m=e.isBackward())?l:f;l=g.$createRangeSelection();t=a.getIndexWithinParent();const z=a.getParentOrThrow().getKey();n=!0;(m?l.focus:l.anchor).set(f.getKey(),(m?e.focus:e.anchor).offset,g.$isTextNode(f)?"text":"element");(m?l.anchor:l.focus).set(z,m?t-1:
t+1,"element");g.$setSelection(l);N(c);return!0}}c.hasHijackedSelectionStyles&&!a.isSelected()?(O(c),n=!1):!c.hasHijackedSelectionStyles&&a.isSelected()&&N(c);return!1},4));return c};exports.getCellFromTarget=J;exports.getTableSelectionFromTableElement=function(a){return a.__lexicalTableSelection};

@@ -11,9 +11,9 @@ {

"license": "MIT",
"version": "0.2.0",
"version": "0.2.1",
"main": "LexicalTable.js",
"peerDependencies": {
"lexical": "0.2.0"
"lexical": "0.2.1"
},
"dependencies": {
"@lexical/utils": "0.2.0"
"@lexical/utils": "0.2.1"
},

@@ -20,0 +20,0 @@ "repository": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc