@lexical/table 0.13.0 → 0.14.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.esm.js +2433 -0
- package/LexicalTable.dev.js +77 -19
- package/LexicalTable.esm.js +45 -0
- package/LexicalTable.js +1 -1
- package/LexicalTable.js.flow +1 -1
- package/LexicalTable.prod.esm.js +7 -0
- package/LexicalTable.prod.js +69 -68
- package/LexicalTableNode.d.ts +0 -1
- package/LexicalTableRowNode.d.ts +3 -3
- package/README.md +2 -0
- package/package.json +6 -4
package/LexicalTable.prod.js
CHANGED
@@ -4,82 +4,83 @@
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
6
6
|
*/
|
7
|
-
'use strict';var h=require("@lexical/utils"),v=require("lexical");let
|
8
|
-
class
|
7
|
+
'use strict';var h=require("@lexical/utils"),v=require("lexical");let aa=/^(\d+(?:\.\d+)?)px$/,w={BOTH:3,COLUMN:2,NO_STATUS:0,ROW:1};
|
8
|
+
class y extends v.ElementNode{static getType(){return"tablecell"}static clone(a){let b=new y(a.__headerState,a.__colSpan,a.__width,a.__key);b.__rowSpan=a.__rowSpan;b.__backgroundColor=a.__backgroundColor;return b}static importDOM(){return{td:()=>({conversion:da,priority:0}),th:()=>({conversion:da,priority:0})}}static importJSON(a){let b=a.rowSpan||1,c=z(a.headerState,a.colSpan||1,a.width||void 0);c.__rowSpan=b;c.__backgroundColor=a.backgroundColor||null;return c}constructor(a=w.NO_STATUS,b=1,c,d){super(d);
|
9
9
|
this.__colSpan=b;this.__rowSpan=1;this.__headerState=a;this.__width=c;this.__backgroundColor=null}createDOM(a){let b=document.createElement(this.getTag());this.__width&&(b.style.width=`${this.__width}px`);1<this.__colSpan&&(b.colSpan=this.__colSpan);1<this.__rowSpan&&(b.rowSpan=this.__rowSpan);null!==this.__backgroundColor&&(b.style.backgroundColor=this.__backgroundColor);h.addClassNamesToElement(b,a.theme.tableCell,this.hasHeader()&&a.theme.tableCellHeader);return b}exportDOM(a){({element:a}=super.exportDOM(a));
|
10
10
|
if(a){var b=this.getParentOrThrow().getChildrenSize();a.style.border="1px solid black";1<this.__colSpan&&(a.colSpan=this.__colSpan);1<this.__rowSpan&&(a.rowSpan=this.__rowSpan);a.style.width=`${this.getWidth()||Math.max(90,700/b)}px`;a.style.verticalAlign="top";a.style.textAlign="start";b=this.getBackgroundColor();null!==b?a.style.backgroundColor=b:this.hasHeader()&&(a.style.backgroundColor="#f2f3f5")}return{element:a}}exportJSON(){return{...super.exportJSON(),backgroundColor:this.getBackgroundColor(),
|
11
11
|
colSpan:this.__colSpan,headerState:this.__headerState,rowSpan:this.__rowSpan,type:"tablecell",width:this.getWidth()}}getColSpan(){return this.__colSpan}setColSpan(a){this.getWritable().__colSpan=a;return this}getRowSpan(){return this.__rowSpan}setRowSpan(a){this.getWritable().__rowSpan=a;return this}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=
|
12
12
|
a;return this.__width}getWidth(){return this.getLatest().__width}getBackgroundColor(){return this.getLatest().__backgroundColor}setBackgroundColor(a){this.getWritable().__backgroundColor=a}toggleHeaderStyle(a){let b=this.getWritable();b.__headerState=(b.__headerState&a)===a?b.__headerState-a:b.__headerState+a;return b}hasHeaderState(a){return(this.getHeaderStyles()&a)===a}hasHeader(){return this.getLatest().__headerState!==w.NO_STATUS}updateDOM(a){return a.__headerState!==this.__headerState||a.__width!==
|
13
13
|
this.__width||a.__colSpan!==this.__colSpan||a.__rowSpan!==this.__rowSpan||a.__backgroundColor!==this.__backgroundColor}isShadowRoot(){return!0}collapseAtStart(){return!0}canBeEmpty(){return!1}canIndent(){return!1}}
|
14
|
-
function
|
15
|
-
function A(a){return a instanceof
|
16
|
-
class B extends v.ElementNode{static getType(){return"tablerow"}static clone(a){return new B(a.__height,a.__key)}static importDOM(){return{tr:()=>({conversion:
|
17
|
-
a;return this.__height}getHeight(){return this.getLatest().__height}updateDOM(a){return a.__height!==this.__height}canBeEmpty(){return!1}canIndent(){return!1}}function
|
18
|
-
function
|
19
|
-
function
|
20
|
-
function
|
21
|
-
function
|
22
|
-
function
|
23
|
-
function na(a){let [b,,c]=
|
24
|
-
class oa{constructor(a,b,c){this.anchor=b;this.focus=c;b._selection=this;c._selection=this;this._cachedNodes=null;this.dirty=!1;this.tableKey=a}getStartEndPoints(){return[this.anchor,this.focus]}isBackward(){return this.focus.isBefore(this.anchor)}getCachedNodes(){return this._cachedNodes}setCachedNodes(a){this._cachedNodes=a}is(a){return
|
25
|
-
this._cachedNodes=null}clone(){return new oa(this.tableKey,this.anchor,this.focus)}isCollapsed(){return!1}extract(){return this.getNodes()}insertRawText(){}insertText(){}insertNodes(a){let b=this.focus.getNode();v.$isElementNode(b)||
|
26
|
-
c.columnIndex);let d=Math.max(a.columnIndex,c.columnIndex),e=Math.min(a.rowIndex,c.rowIndex);a=Math.max(a.rowIndex,c.rowIndex);return{fromX:Math.min(b,d),fromY:Math.min(e,a),toX:Math.max(b,d),toY:Math.max(e,a)}}getNodes(){function a(
|
27
|
-
A);A(d)||
|
28
|
-
f.cell.__rowSpan-1,m.startRow+m.cell.__rowSpan-1);c=q;d=
|
29
|
-
this.getNodes(),b="";for(let c=0;c<a.length;c++)b+=a[c].getTextContent();return b}}function
|
14
|
+
function da(a){var b=a.nodeName.toLowerCase();let c=void 0;aa.test(a.style.width)&&(c=parseFloat(a.style.width));b=z("th"===b?w.ROW:w.NO_STATUS,a.colSpan,c);b.__rowSpan=a.rowSpan;a=a.style.backgroundColor;""!==a&&(b.__backgroundColor=a);return{after:d=>{0===d.length&&d.push(v.$createParagraphNode());return d},forChild:(d,e)=>{if(A(e)&&!v.$isElementNode(d)){e=v.$createParagraphNode();if(v.$isLineBreakNode(d)&&"\n"===d.getTextContent())return null;e.append(d);return e}return d},node:b}}
|
15
|
+
function z(a,b=1,c){return v.$applyNodeReplacement(new y(a,b,c))}function A(a){return a instanceof y}let ea=v.createCommand("INSERT_TABLE_COMMAND");
|
16
|
+
class B extends v.ElementNode{static getType(){return"tablerow"}static clone(a){return new B(a.__height,a.__key)}static importDOM(){return{tr:()=>({conversion:fa,priority:0})}}static importJSON(a){return E(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,
|
17
|
+
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 fa(a){let b=void 0;aa.test(a.style.height)&&(b=parseFloat(a.style.height));return{node:E(b)}}function E(a){return v.$applyNodeReplacement(new B(a))}function F(a){return a instanceof B}
|
18
|
+
function I(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.");}let ha="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement;
|
19
|
+
function ia(a){a=h.$findMatchingParent(a,b=>F(b));if(F(a))return a;throw Error("Expected table cell to be inside of table row.");}function ja(a){a=h.$findMatchingParent(a,b=>K(b));if(K(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)}}
|
20
|
+
let la=(a,b)=>a===w.BOTH||a===b?b:w.NO_STATUS;function L(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)}
|
21
|
+
function M(a,b,c){let d=[],e=null,l=null;a=a.getChildren();for(let g=0;g<a.length;g++){var f=a[g];F(f)||I(146);var m=f.getChildren();f=0;for(let k of m){for(A(k)||I(147);void 0!==d[g]&&void 0!==d[g][f];)f++;m=g;var q=f,u=k;let n={cell:u,startColumn:q,startRow:m},p=u.__rowSpan,r=u.__colSpan;for(let t=0;t<p;t++){void 0===d[m+t]&&(d[m+t]=[]);for(let x=0;x<r;x++)d[m+t][q+x]=n}b.is(u)&&(e=n);c.is(u)&&(l=n);f+=k.__colSpan}}null===e&&I(110);null===l&&I(111);return[d,e,l]}
|
22
|
+
function O(a){a instanceof y||("__type"in a?(a=h.$findMatchingParent(a,A),A(a)||I(148)):(a=h.$findMatchingParent(a.getNode(),A),A(a)||I(148)));let b=a.getParent();F(b)||I(149);let c=b.getParent();K(c)||I(150);return[a,b,c]}
|
23
|
+
function na(a){let [b,,c]=O(a);a=c.getChildren();let d=a.length;var e=a[0].getChildren().length;let l=Array(d);for(var f=0;f<d;f++)l[f]=Array(e);for(e=0;e<d;e++){f=a[e].getChildren();let m=0;for(let q=0;q<f.length;q++){for(;l[e][m];)m++;let u=f[q],g=u.__rowSpan||1,k=u.__colSpan||1;for(let n=0;n<g;n++)for(let p=0;p<k;p++)l[e+n][m+p]=u;if(b===u)return{colSpan:k,columnIndex:m,rowIndex:e,rowSpan:g};m+=k}}return null}
|
24
|
+
class oa{constructor(a,b,c){this.anchor=b;this.focus=c;b._selection=this;c._selection=this;this._cachedNodes=null;this.dirty=!1;this.tableKey=a}getStartEndPoints(){return[this.anchor,this.focus]}isBackward(){return this.focus.isBefore(this.anchor)}getCachedNodes(){return this._cachedNodes}setCachedNodes(a){this._cachedNodes=a}is(a){return P(a)?this.tableKey===a.tableKey&&this.anchor.is(a.anchor)&&this.focus.is(a.focus):!1}set(a,b,c){this.dirty=!0;this.tableKey=a;this.anchor.key=b;this.focus.key=c;
|
25
|
+
this._cachedNodes=null}clone(){return new oa(this.tableKey,this.anchor,this.focus)}isCollapsed(){return!1}extract(){return this.getNodes()}insertRawText(){}insertText(){}insertNodes(a){let b=this.focus.getNode();v.$isElementNode(b)||I(151);v.$normalizeSelection__EXPERIMENTAL(b.select(0,b.getChildrenSize())).insertNodes(a)}getShape(){var a=v.$getNodeByKey(this.anchor.key);A(a)||I(152);a=na(a);null===a&&I(153);var b=v.$getNodeByKey(this.focus.key);A(b)||I(154);let c=na(b);null===c&&I(155);b=Math.min(a.columnIndex,
|
26
|
+
c.columnIndex);let d=Math.max(a.columnIndex,c.columnIndex),e=Math.min(a.rowIndex,c.rowIndex);a=Math.max(a.rowIndex,c.rowIndex);return{fromX:Math.min(b,d),fromY:Math.min(e,a),toX:Math.max(b,d),toY:Math.max(e,a)}}getNodes(){function a(t){let {cell:x,startColumn:D,startRow:C}=t;q=Math.min(q,D);u=Math.min(u,C);g=Math.max(g,D+x.__colSpan-1);k=Math.max(k,C+x.__rowSpan-1)}var b=this._cachedNodes;if(null!==b)return b;var c=this.anchor.getNode();b=this.focus.getNode();var d=h.$findMatchingParent(c,A);c=h.$findMatchingParent(b,
|
27
|
+
A);A(d)||I(152);A(c)||I(154);b=d.getParent();F(b)||I(156);b=b.getParent();K(b)||I(157);var e=c.getParents()[1];if(e!==b)return b.isParentOf(c)?(b=e.getParent(),null==b&&I(159),this.set(this.tableKey,c.getKey(),b.getKey())):(b=b.getParent(),null==b&&I(158),this.set(this.tableKey,b.getKey(),c.getKey())),this.getNodes();let [l,f,m]=M(b,d,c),q=Math.min(f.startColumn,m.startColumn),u=Math.min(f.startRow,m.startRow),g=Math.max(f.startColumn+f.cell.__colSpan-1,m.startColumn+m.cell.__colSpan-1),k=Math.max(f.startRow+
|
28
|
+
f.cell.__rowSpan-1,m.startRow+m.cell.__rowSpan-1);c=q;d=u;e=q;for(var n=u;q<c||u<d||g>e||k>n;){if(q<c){var p=n-d;--c;for(var r=0;r<=p;r++)a(l[d+r][c])}if(u<d)for(p=e-c,--d,r=0;r<=p;r++)a(l[d][c+r]);if(g>e)for(p=n-d,e+=1,r=0;r<=p;r++)a(l[d+r][e]);if(k>n)for(p=e-c,n+=1,r=0;r<=p;r++)a(l[n][c+r])}b=[b];c=null;for(d=u;d<=k;d++)for(e=q;e<=g;e++)({cell:n}=l[d][e]),p=n.getParent(),F(p)||I(160),p!==c&&b.push(p),b.push(n,...pa(n)),c=p;v.isCurrentlyReadOnlyMode()||(this._cachedNodes=b);return b}getTextContent(){let a=
|
29
|
+
this.getNodes(),b="";for(let c=0;c<a.length;c++)b+=a[c].getTextContent();return b}}function P(a){return a instanceof oa}function Q(){let a=v.$createPoint("root",0,"element"),b=v.$createPoint("root",0,"element");return new oa("root",a,b)}function pa(a){let b=[],c=[a];for(;0<c.length;){let d=c.pop();void 0===d&&I(112);v.$isElementNode(d)&&c.unshift(...d.getChildren());d!==a&&b.push(d)}return b}
|
30
30
|
class qa{constructor(a,b){this.isHighlightingCells=!1;this.focusY=this.focusX=this.anchorY=this.anchorX=-1;this.listenersToRemove=new Set;this.tableNodeKey=b;this.editor=a;this.table={columns:0,domRows:[],rows:0};this.focusCell=this.anchorCell=this.focusCellNodeKey=this.anchorCellNodeKey=this.tableSelection=null;this.hasHijackedSelectionStyles=!1;this.trackTable()}getTable(){return this.table}removeListeners(){Array.from(this.listenersToRemove).forEach(a=>a())}trackTable(){let a=new MutationObserver(b=>
|
31
|
-
{this.editor.update(()=>{var c=!1;for(let d=0;d<b.length;d++){const e=b[d].target.nodeName;if("TABLE"===e||"TR"===e){c=!0;break}}if(c){c=this.editor.getElementByKey(this.tableNodeKey);if(!c)throw Error("Expected to find TableElement in DOM");this.table=
|
32
|
-
!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=v.$getNodeByKey(this.tableNodeKey);if(!
|
31
|
+
{this.editor.update(()=>{var c=!1;for(let d=0;d<b.length;d++){const e=b[d].target.nodeName;if("TABLE"===e||"TR"===e){c=!0;break}}if(c){c=this.editor.getElementByKey(this.tableNodeKey);if(!c)throw Error("Expected to find TableElement in DOM");this.table=R(c)}})});this.editor.update(()=>{let b=this.editor.getElementByKey(this.tableNodeKey);if(!b)throw Error("Expected to find TableElement in DOM");this.table=R(b);a.observe(b,{childList:!0,subtree:!0})})}clearHighlight(){let a=this.editor;this.isHighlightingCells=
|
32
|
+
!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=v.$getNodeByKey(this.tableNodeKey);if(!K(b))throw Error("Expected TableNode.");b=a.getElementByKey(this.tableNodeKey);if(!b)throw Error("Expected to find TableElement in DOM");b=R(b);S(a,b,null);v.$setSelection(null);a.dispatchCommand(v.SELECTION_CHANGE_COMMAND,
|
33
33
|
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);
|
34
|
-
this.hasHijackedSelectionStyles=!0})}updateTableTableSelection(a){if(null!==a&&a.tableKey===this.tableNodeKey){let b=this.editor;this.tableSelection=a;this.isHighlightingCells=!0;this.disableHighlightStyle();
|
35
|
-
d=a.x;let e=a.y;this.focusCell=a;if(null!==this.anchorCell){let
|
36
|
-
A(d)&&(d=d.getKey(),this.tableSelection=this.tableSelection.clone()||
|
37
|
-
this.tableSelection=null!=this.tableSelection?this.tableSelection.clone():
|
38
|
-
a.update(()=>{let b=v.$getNodeByKey(this.tableNodeKey);if(!
|
34
|
+
this.hasHijackedSelectionStyles=!0})}updateTableTableSelection(a){if(null!==a&&a.tableKey===this.tableNodeKey){let b=this.editor;this.tableSelection=a;this.isHighlightingCells=!0;this.disableHighlightStyle();S(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=v.$getNodeByKey(this.tableNodeKey);if(!K(d))throw Error("Expected TableNode.");if(!c.getElementByKey(this.tableNodeKey))throw Error("Expected to find TableElement in DOM");
|
35
|
+
d=a.x;let e=a.y;this.focusCell=a;if(null!==this.anchorCell){let l=ha?(c._window||window).getSelection():null;l&&l.setBaseAndExtent(this.anchorCell.elem,0,this.focusCell.elem,0)}if(!this.isHighlightingCells&&(this.anchorX!==d||this.anchorY!==e||b))this.isHighlightingCells=!0,this.disableHighlightStyle();else if(d===this.focusX&&e===this.focusY)return;this.focusX=d;this.focusY=e;this.isHighlightingCells&&(d=v.$getNearestNodeFromDOMNode(a.elem),null!=this.tableSelection&&null!=this.anchorCellNodeKey&&
|
36
|
+
A(d)&&(d=d.getKey(),this.tableSelection=this.tableSelection.clone()||Q(),this.focusCellNodeKey=d,this.tableSelection.set(this.tableNodeKey,this.anchorCellNodeKey,this.focusCellNodeKey),v.$setSelection(this.tableSelection),c.dispatchCommand(v.SELECTION_CHANGE_COMMAND,void 0),S(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=v.$getNearestNodeFromDOMNode(a.elem);A(b)&&(b=b.getKey(),
|
37
|
+
this.tableSelection=null!=this.tableSelection?this.tableSelection.clone():Q(),this.anchorCellNodeKey=b)})}formatCells(a){this.editor.update(()=>{let b=v.$getSelection();P(b)||I(11);let c=v.$createRangeSelection(),d=c.anchor,e=c.focus;b.getNodes().forEach(l=>{A(l)&&0!==l.getTextContentSize()&&(d.set(l.getKey(),0,"element"),e.set(l.getKey(),l.getChildrenSize(),"element"),c.formatText(a))});v.$setSelection(b);this.editor.dispatchCommand(v.SELECTION_CHANGE_COMMAND,void 0)})}clearText(){let a=this.editor;
|
38
|
+
a.update(()=>{let b=v.$getNodeByKey(this.tableNodeKey);if(!K(b))throw Error("Expected TableNode.");var c=v.$getSelection();P(c)||I(11);c=c.getNodes().filter(A);c.length===this.table.columns*this.table.rows?(b.selectPrevious(),b.remove(),v.$getRoot().selectStart()):(c.forEach(d=>{if(v.$isElementNode(d)){let e=v.$createParagraphNode(),l=v.$createTextNode();e.append(l);d.append(e);d.getChildren().forEach(f=>{f!==e&&f.remove()})}}),S(a,this.table,null),v.$setSelection(null),a.dispatchCommand(v.SELECTION_CHANGE_COMMAND,
|
39
39
|
void 0))})}}function ra(a){for(;null!=a;){let b=a.nodeName;if("TD"===b||"TH"===b){a=a._cell;if(void 0===a)break;return a}a=a.parentNode}return null}
|
40
|
-
function
|
41
|
-
function
|
40
|
+
function R(a){let b=[],c={columns:0,domRows:b,rows:0};var d=a.firstChild;let e=a=0;for(b.length=0;null!=d;){var l=d.nodeName;if("TD"===l||"TH"===l){l=d;l={elem:l,hasBackgroundColor:""!==l.style.backgroundColor,highlighted:!1,x:a,y:e};d._cell=l;let f=b[e];void 0===f&&(f=b[e]=[]);f[a]=l}else if(l=d.firstChild,null!=l){d=l;continue}l=d.nextSibling;if(null!=l)a++,d=l;else if(l=d.parentNode,null!=l){d=l.nextSibling;if(null==d)break;e++;a=0}}c.columns=a+1;c.rows=e+1;return c}
|
41
|
+
function S(a,b,c){let d=new Set(c?c.getNodes():[]);sa(b,(e,l)=>{let f=e.elem;d.has(l)?(e.highlighted=!0,ta(a,e)):(e.highlighted=!1,ua(a,e),f.getAttribute("style")||f.removeAttribute("style"))})}function sa(a,b){({domRows:a}=a);for(let c=0;c<a.length;c++){let d=a[c];if(d)for(let e=0;e<d.length;e++){let l=d[e];if(!l)continue;let f=v.$getNearestNodeFromDOMNode(l.elem);null!==f&&b(l,f,{x:e,y:c})}}}function va(a,b){b.disableHighlightStyle();sa(b.table,c=>{c.highlighted=!0;ta(a,c)})}
|
42
42
|
function xa(a,b){b.enableHighlightStyle();sa(b.table,c=>{let d=c.elem;c.highlighted=!1;ua(a,c);d.getAttribute("style")||d.removeAttribute("style")})}
|
43
|
-
let ya=(a,b,c,d,e)=>{const
|
44
|
-
a.table.rows-1?b.getCellNodeFromCordsOrThrow(c,d+1,a.table).selectStart():b.selectNext(),!0;default:return!1}},za=(a,b,c,d,e)=>{const
|
45
|
-
d+1,a.table)),!0):!1;default:return!1}};function
|
46
|
-
function ta(a,b){a=b.elem;b=v.$getNearestNodeFromDOMNode(a);A(b)||
|
47
|
-
function ua(a,b){a=b.elem;b=v.$getNearestNodeFromDOMNode(a);A(b)||
|
48
|
-
function
|
49
|
-
q.getBoundingClientRect();else{m=window.getSelection();if(null===m||0===m.rangeCount)return!1;m=m.getRangeAt(0).getBoundingClientRect()}q="up"===c?f.getFirstChild():f.getLastChild();if(null==q)return!1;a=a.getElementByKey(q.__key);if(null==a)return!1;a=a.getBoundingClientRect();if("up"===c?a.top>m.top-m.height:m.bottom+m.height>a.bottom){
|
50
|
-
!0);else return ya(e,d,a.x,a.y,c);return!0}}else if(
|
51
|
-
function
|
52
|
-
class
|
53
|
-
e=document.createElement("tbody");h.isHTMLElement(b)&&e.append(...b.children);b=this.getFirstChildOrThrow();if(!F(b))throw Error("Expected to find row node.");b=b.getChildrenSize();for(let
|
54
|
-
|
55
|
-
|
56
|
-
exports.$createTableNodeWithDimensions=function(a,b,c=!0){let d=
|
43
|
+
let ya=(a,b,c,d,e)=>{const l="forward"===e;switch(e){case "backward":case "forward":return c!==(l?a.table.columns-1:0)?(a=b.getCellNodeFromCordsOrThrow(c+(l?1:-1),d,a.table),l?a.selectStart():a.selectEnd()):d!==(l?a.table.rows-1:0)?(a=b.getCellNodeFromCordsOrThrow(l?0:a.table.columns-1,d+(l?1:-1),a.table),l?a.selectStart():a.selectEnd()):l?b.selectNext():b.selectPrevious(),!0;case "up":return 0!==d?b.getCellNodeFromCordsOrThrow(c,d-1,a.table).selectEnd():b.selectPrevious(),!0;case "down":return d!==
|
44
|
+
a.table.rows-1?b.getCellNodeFromCordsOrThrow(c,d+1,a.table).selectStart():b.selectNext(),!0;default:return!1}},za=(a,b,c,d,e)=>{const l="forward"===e;switch(e){case "backward":case "forward":return c!==(l?a.table.columns-1:0)&&a.setFocusCellForSelection(b.getDOMCellFromCordsOrThrow(c+(l?1:-1),d,a.table)),!0;case "up":return 0!==d?(a.setFocusCellForSelection(b.getDOMCellFromCordsOrThrow(c,d-1,a.table)),!0):!1;case "down":return d!==a.table.rows-1?(a.setFocusCellForSelection(b.getDOMCellFromCordsOrThrow(c,
|
45
|
+
d+1,a.table)),!0):!1;default:return!1}};function W(a,b){if(v.$isRangeSelection(a)||P(a)){let c=b.isParentOf(a.anchor.getNode());a=b.isParentOf(a.focus.getNode());return c&&a}return!1}
|
46
|
+
function ta(a,b){a=b.elem;b=v.$getNearestNodeFromDOMNode(a);A(b)||I(131);null===b.getBackgroundColor()?a.style.setProperty("background-color","rgb(172,206,247)"):a.style.setProperty("background-image","linear-gradient(to right, rgba(172,206,247,0.85), rgba(172,206,247,0.85))");a.style.setProperty("caret-color","transparent")}
|
47
|
+
function ua(a,b){a=b.elem;b=v.$getNearestNodeFromDOMNode(a);A(b)||I(131);null===b.getBackgroundColor()&&a.style.removeProperty("background-color");a.style.removeProperty("background-image");a.style.removeProperty("caret-color")}function Aa(a){a=h.$findMatchingParent(a,A);return A(a)?a:null}function Ba(a){a=h.$findMatchingParent(a,K);return K(a)?a:null}
|
48
|
+
function X(a,b,c,d,e){let l=v.$getSelection();if(!W(l,d))return!1;if(v.$isRangeSelection(l)&&l.isCollapsed()){if("backward"===c||"forward"===c)return!1;let {anchor:u,focus:g}=l;var f=h.$findMatchingParent(u.getNode(),A),m=h.$findMatchingParent(g.getNode(),A);if(!A(f)||!f.is(m))return!1;m=Ba(f);if(m!==d&&null!=m){var q=a.getElementByKey(m.getKey());if(null!=q)return e.table=R(q),X(a,b,c,m,e)}m=a.getElementByKey(f.__key);q=a.getElementByKey(u.key);if(null==q||null==m)return!1;if("element"===u.type)m=
|
49
|
+
q.getBoundingClientRect();else{m=window.getSelection();if(null===m||0===m.rangeCount)return!1;m=m.getRangeAt(0).getBoundingClientRect()}q="up"===c?f.getFirstChild():f.getLastChild();if(null==q)return!1;a=a.getElementByKey(q.__key);if(null==a)return!1;a=a.getBoundingClientRect();if("up"===c?a.top>m.top-m.height:m.bottom+m.height>a.bottom){Y(b);a=d.getCordsFromCellNode(f,e.table);if(b.shiftKey)c=d.getDOMCellFromCordsOrThrow(a.x,a.y,e.table),e.setAnchorCellForSelection(c),e.setFocusCellForSelection(c,
|
50
|
+
!0);else return ya(e,d,a.x,a.y,c);return!0}}else if(P(l)){let {anchor:u,focus:g}=l;q=h.$findMatchingParent(u.getNode(),A);m=h.$findMatchingParent(g.getNode(),A);[f]=l.getNodes();a=a.getElementByKey(f.getKey());if(!A(q)||!A(m)||!K(f)||null==a)return!1;e.updateTableTableSelection(l);a=R(a);q=d.getCordsFromCellNode(q,a);q=d.getDOMCellFromCordsOrThrow(q.x,q.y,a);e.setAnchorCellForSelection(q);Y(b);if(b.shiftKey)return b=d.getCordsFromCellNode(m,a),za(e,f,b.x,b.y,c);m.selectEnd();return!0}return!1}
|
51
|
+
function Y(a){a.preventDefault();a.stopImmediatePropagation();a.stopPropagation()}
|
52
|
+
class Z extends v.ElementNode{static getType(){return"table"}static clone(a){return new Z(a.__key)}static importDOM(){return{table:()=>({conversion:Ca,priority:1})}}static importJSON(){return Da()}constructor(a){super(a)}exportJSON(){return{...super.exportJSON(),type:"table",version:1}}createDOM(a){let b=document.createElement("table");h.addClassNamesToElement(b,a.theme.table);return b}updateDOM(){return!1}exportDOM(a){return{...super.exportDOM(a),after:b=>{if(b){let c=b.cloneNode(),d=document.createElement("colgroup"),
|
53
|
+
e=document.createElement("tbody");h.isHTMLElement(b)&&e.append(...b.children);b=this.getFirstChildOrThrow();if(!F(b))throw Error("Expected to find row node.");b=b.getChildrenSize();for(let l=0;l<b;l++){let f=document.createElement("col");d.append(f)}c.replaceChildren(d,e);return c}}}}canBeEmpty(){return!1}isShadowRoot(){return!0}getCordsFromCellNode(a,b){let {rows:c,domRows:d}=b;for(b=0;b<c;b++){var e=d[b];if(null!=e&&(e=e.findIndex(l=>{if(l)return{elem:l}=l,v.$getNearestNodeFromDOMNode(l)===a}),
|
54
|
+
-1!==e))return{x:e,y:b}}throw Error("Cell not found in table.");}getDOMCellFromCords(a,b,c){({domRows:c}=c);b=c[b];if(null==b)return null;a=b[a];return null==a?null:a}getDOMCellFromCordsOrThrow(a,b,c){a=this.getDOMCellFromCords(a,b,c);if(!a)throw Error("Cell not found at cords.");return a}getCellNodeFromCords(a,b,c){a=this.getDOMCellFromCords(a,b,c);if(null==a)return null;a=v.$getNearestNodeFromDOMNode(a.elem);return A(a)?a:null}getCellNodeFromCordsOrThrow(a,b,c){a=this.getCellNodeFromCords(a,b,c);
|
55
|
+
if(!a)throw Error("Node at cords not TableCellNode.");return a}canSelectBefore(){return!0}canIndent(){return!1}}function Ca(){return{node:Da()}}function Da(){return v.$applyNodeReplacement(new Z)}function K(a){return a instanceof Z}exports.$computeTableMap=M;exports.$createTableCellNode=z;exports.$createTableNode=Da;
|
56
|
+
exports.$createTableNodeWithDimensions=function(a,b,c=!0){let d=Da();for(let l=0;l<a;l++){let f=E();for(let m=0;m<b;m++){var e=w.NO_STATUS;"object"===typeof c?(0===l&&c.rows&&(e|=w.ROW),0===m&&c.columns&&(e|=w.COLUMN)):c&&(0===l&&(e|=w.ROW),0===m&&(e|=w.COLUMN));e=z(e);let q=v.$createParagraphNode();q.append(v.$createTextNode());e.append(q);f.append(e)}d.append(f)}return d};exports.$createTableRowNode=E;exports.$createTableSelection=Q;
|
57
57
|
exports.$deleteTableColumn=function(a,b){let c=a.getChildren();for(let e=0;e<c.length;e++){var d=c[e];if(F(d)){d=d.getChildren();if(b>=d.length||0>b)throw Error("Table column target index out of range");d[b].remove()}}return a};
|
58
|
-
exports.$deleteTableColumn__EXPERIMENTAL=function(){var a=v.$getSelection();v.$isRangeSelection(a)||
|
59
|
-
Math.min(g,
|
60
|
-
exports.$deleteTableRow__EXPERIMENTAL=function(){var a=v.$getSelection();v.$isRangeSelection(a)||
|
61
|
-
1>a))if(n.setRowSpan(n.__rowSpan-(a-p+1)),null===
|
62
|
-
exports.$getTableCellNodeFromLexicalNode=function(a){a=h.$findMatchingParent(a,b=>A(b));return A(a)?a:null};exports.$getTableCellNodeRect=na;exports.$getTableColumnIndexFromTableCellNode=function(a){return
|
63
|
-
exports.$insertTableColumn=function(a,b,c=!0,d,e){let
|
64
|
-
g.insertAfter(
|
65
|
-
exports.$insertTableColumn__EXPERIMENTAL=function(a=!0){function b(){
|
66
|
-
F(g)||
|
67
|
-
exports.$insertTableRow=function(a,b,c=!0,d,e){var
|
58
|
+
exports.$deleteTableColumn__EXPERIMENTAL=function(){var a=v.$getSelection();v.$isRangeSelection(a)||P(a)||I(118);var b=a.anchor.getNode();a=a.focus.getNode();let [c,,d]=O(b);[b]=O(a);let [e,l,f]=M(d,c,b);var {startColumn:m}=l;let {startRow:q,startColumn:u}=f;a=Math.min(m,u);m=Math.max(m+c.__colSpan-1,u+b.__colSpan-1);let g=m-a+1;if(e[0].length===m-a+1)d.selectPrevious(),d.remove();else{var k=e.length;for(let n=0;n<k;n++)for(let p=a;p<=m;p++){let {cell:r,startColumn:t}=e[n][p];t<a?p===a&&r.setColSpan(r.__colSpan-
|
59
|
+
Math.min(g,r.__colSpan-(a-t))):t+r.__colSpan-1>m?p===m&&r.setColSpan(r.__colSpan-(m-t+1)):r.remove()}a=e[q];b=a[u+b.__colSpan];void 0!==b?({cell:b}=b,L(b)):({cell:b}=a[u-1],L(b))}};
|
60
|
+
exports.$deleteTableRow__EXPERIMENTAL=function(){var a=v.$getSelection();v.$isRangeSelection(a)||P(a)||I(118);var b=a.anchor.getNode();a=a.focus.getNode();let [c,,d]=O(b);[a]=O(a);let [e,l,f]=M(d,c,a);({startRow:b}=l);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],u=d.getChildAtIndex(a+1);for(let k=a;k>=b;k--){for(var g=m-1;0<=g;g--){let {cell:n,startRow:p,startColumn:r}=e[k][g];if(r===g&&(k===b&&p<b&&n.setRowSpan(n.__rowSpan-(p-b)),p>=b&&p+n.__rowSpan-
|
61
|
+
1>a))if(n.setRowSpan(n.__rowSpan-(a-p+1)),null===u&&I(122),0===g)ma(u,n);else{let {cell:t}=q[g-1];t.insertAfter(n)}}g=d.getChildAtIndex(k);F(g)||I(123,String(k));g.remove()}void 0!==q?({cell:b}=q[0],L(b)):({cell:b}=e[b-1][0],L(b))}};exports.$getElementForTableNode=function(a,b){a=a.getElementByKey(b.getKey());if(null==a)throw Error("Table Element Not Found");return R(a)};exports.$getNodeTriplet=O;
|
62
|
+
exports.$getTableCellNodeFromLexicalNode=function(a){a=h.$findMatchingParent(a,b=>A(b));return A(a)?a:null};exports.$getTableCellNodeRect=na;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;
|
63
|
+
exports.$insertTableColumn=function(a,b,c=!0,d,e){let l=a.getChildren(),f=[];for(let u=0;u<l.length;u++){let g=l[u];if(F(g))for(let k=0;k<d;k++){var m=g.getChildren();if(b>=m.length||0>b)throw Error("Table column target index out of range");m=m[b];A(m)||I(12);let {left:n,right:p}=ka(m,e);var q=w.NO_STATUS;if(n&&n.hasHeaderState(w.ROW)||p&&p.hasHeaderState(w.ROW))q|=w.ROW;q=z(q);q.append(v.$createParagraphNode());f.push({newTableCell:q,targetCell:m})}}f.forEach(({newTableCell:u,targetCell:g})=>{c?
|
64
|
+
g.insertAfter(u):g.insertBefore(u)});return a};
|
65
|
+
exports.$insertTableColumn__EXPERIMENTAL=function(a=!0){function b(k=w.NO_STATUS){k=z(k).append(v.$createParagraphNode());null===u&&(u=k);return k}var c=v.$getSelection();v.$isRangeSelection(c)||P(c)||I(118);var d=c.anchor.getNode();c=c.focus.getNode();[d]=O(d);let [e,,l]=O(c),[f,m,q]=M(l,e,d);d=f.length;c=a?Math.max(m.startColumn,q.startColumn):Math.min(m.startColumn,q.startColumn);a=a?c+e.__colSpan-1:c-1;c=l.getFirstChild();F(c)||I(120);let u=null;var g=c;a:for(c=0;c<d;c++){0!==c&&(g=g.getNextSibling(),
|
66
|
+
F(g)||I(121));let k=f[c],n=la(k[0>a?0:a].cell.__headerState,w.ROW);if(0>a){ma(g,b(n));continue}let {cell:p,startColumn:r,startRow:t}=k[a];if(r+p.__colSpan-1<=a){let x=p,D=t,C=a;for(;D!==c&&1<x.__rowSpan;)if(C-=p.__colSpan,0<=C){let {cell:H,startRow:J}=k[C];x=H;D=J}else{g.append(b(n));continue a}x.insertAfter(b(n))}else p.setColSpan(p.__colSpan+1)}null!==u&&L(u)};
|
67
|
+
exports.$insertTableRow=function(a,b,c=!0,d,e){var l=a.getChildren();if(b>=l.length||0>b)throw Error("Table row target index out of range");b=l[b];if(F(b))for(l=0;l<d;l++){let m=b.getChildren(),q=m.length,u=E();for(let g=0;g<q;g++){var f=m[g];A(f)||I(12);let {above:k,below:n}=ka(f,e);f=w.NO_STATUS;let p=k&&k.getWidth()||n&&n.getWidth()||void 0;if(k&&k.hasHeaderState(w.COLUMN)||n&&n.hasHeaderState(w.COLUMN))f|=w.COLUMN;f=z(f,1,p);f.append(v.$createParagraphNode());u.append(f)}c?b.insertAfter(u):b.insertBefore(u)}else throw Error("Row before insertion index does not exist.");
|
68
68
|
return a};
|
69
|
-
exports.$insertTableRow__EXPERIMENTAL=function(a=!0){var b=v.$getSelection();v.$isRangeSelection(b)||
|
70
|
-
m[q];
|
71
|
-
exports.$unmergeCell=function(){var a=v.$getSelection();v.$isRangeSelection(a)||
|
72
|
-
a;m++)
|
73
|
-
exports.applyTableHandlers=function(a,b,c,d){function e(g){g=a.getCordsFromCellNode(g,f.table);return a.getDOMCellFromCordsOrThrow(g.x,g.y,f.table)}let
|
74
|
-
p)},p=
|
75
|
-
g=>
|
76
|
-
A),A(
|
77
|
-
if(!v.$isElementNode(n)||!v.$isElementNode(p))return!1;if(g===v.DELETE_LINE_COMMAND&&null===n.getPreviousSibling())return!0;if((g===v.DELETE_CHARACTER_COMMAND||g===v.DELETE_WORD_COMMAND)&&
|
78
|
-
|
79
|
-
g=>{let
|
80
|
-
|
81
|
-
var
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
69
|
+
exports.$insertTableRow__EXPERIMENTAL=function(a=!0){var b=v.$getSelection();v.$isRangeSelection(b)||P(b)||I(118);b=b.focus.getNode();let [c,,d]=O(b),[e,l]=M(d,c,c);b=e[0].length;var {startRow:f}=l;if(a){a=f+c.__rowSpan-1;var m=e[a];f=E();for(var q=0;q<b;q++){let {cell:g,startRow:k}=m[q];if(k+g.__rowSpan-1<=a){var u=la(m[q].cell.__headerState,w.COLUMN);f.append(z(u).append(v.$createParagraphNode()))}else g.setRowSpan(g.__rowSpan+1)}b=d.getChildAtIndex(a);F(b)||I(145);b.insertAfter(f)}else{m=e[f];
|
70
|
+
a=E();for(q=0;q<b;q++){let {cell:g,startRow:k}=m[q];k===f?(u=la(m[q].cell.__headerState,w.COLUMN),a.append(z(u).append(v.$createParagraphNode()))):g.setRowSpan(g.__rowSpan+1)}b=d.getChildAtIndex(f);F(b)||I(145);b.insertBefore(a)}};exports.$isTableCellNode=A;exports.$isTableNode=K;exports.$isTableRowNode=F;exports.$isTableSelection=P;exports.$removeTableRowAtIndex=function(a,b){let c=a.getChildren();if(b>=c.length||0>b)throw Error("Expected table cell to be inside of table row.");c[b].remove();return a};
|
71
|
+
exports.$unmergeCell=function(){var a=v.$getSelection();v.$isRangeSelection(a)||P(a)||I(118);a=a.anchor.getNode();let [b,c,d]=O(a);a=b.__colSpan;let e=b.__rowSpan;if(1<a){for(var l=1;l<a;l++)b.insertAfter(z(w.NO_STATUS));b.setColSpan(1)}if(1<e){let [q,u]=M(d,b,b),{startColumn:g,startRow:k}=u,n;for(l=1;l<e;l++){var f=k+l;let p=q[f];n=(n||c).getNextSibling();F(n)||I(125);var m=null;for(let r=0;r<g;r++){let t=p[r],x=t.cell;t.startRow===f&&(m=x);1<x.__colSpan&&(r+=x.__colSpan-1)}if(null===m)for(m=0;m<
|
72
|
+
a;m++)ma(n,z(w.NO_STATUS));else for(f=0;f<a;f++)m.insertAfter(z(w.NO_STATUS))}b.setRowSpan(1)}};exports.INSERT_TABLE_COMMAND=ea;exports.TableCellHeaderStates=w;exports.TableCellNode=y;exports.TableNode=Z;exports.TableObserver=qa;exports.TableRowNode=B;
|
73
|
+
exports.applyTableHandlers=function(a,b,c,d){function e(g){g=a.getCordsFromCellNode(g,f.table);return a.getDOMCellFromCordsOrThrow(g.x,g.y,f.table)}let l=c.getRootElement();if(null===l)throw Error("No root element.");let f=new qa(c,a.getKey()),m=c._window||window;b.__lexicalTableSelection=f;b.addEventListener("mousedown",g=>{setTimeout(()=>{if(0===g.button&&m){var k=ra(g.target);null!==k&&(Y(g),f.setAnchorCellForSelection(k));var n=()=>{m.removeEventListener("mouseup",n);m.removeEventListener("mousemove",
|
74
|
+
p)},p=r=>{const t=ra(r.target);null===t||f.anchorX===t.x&&f.anchorY===t.y||(r.preventDefault(),f.setFocusCellForSelection(t))};m.addEventListener("mouseup",n);m.addEventListener("mousemove",p)}},0)});let q=g=>{0===g.button&&c.update(()=>{const k=v.$getSelection(),n=g.target;P(k)&&k.tableKey===f.tableNodeKey&&l.contains(n)&&f.clearHighlight()})};m.addEventListener("mousedown",q);f.listenersToRemove.add(()=>m.removeEventListener("mousedown",q));f.listenersToRemove.add(c.registerCommand(v.KEY_ARROW_DOWN_COMMAND,
|
75
|
+
g=>X(c,g,"down",a,f),v.COMMAND_PRIORITY_HIGH));f.listenersToRemove.add(c.registerCommand(v.KEY_ARROW_UP_COMMAND,g=>X(c,g,"up",a,f),v.COMMAND_PRIORITY_HIGH));f.listenersToRemove.add(c.registerCommand(v.KEY_ARROW_LEFT_COMMAND,g=>X(c,g,"backward",a,f),v.COMMAND_PRIORITY_HIGH));f.listenersToRemove.add(c.registerCommand(v.KEY_ARROW_RIGHT_COMMAND,g=>X(c,g,"forward",a,f),v.COMMAND_PRIORITY_HIGH));f.listenersToRemove.add(c.registerCommand(v.KEY_ESCAPE_COMMAND,g=>{var k=v.$getSelection();return P(k)&&(k=h.$findMatchingParent(k.focus.getNode(),
|
76
|
+
A),A(k))?(Y(g),k.selectEnd(),!0):!1},v.COMMAND_PRIORITY_HIGH));let u=g=>()=>{var k=v.$getSelection();if(!W(k,a))return!1;if(P(k))return f.clearText(),!0;if(v.$isRangeSelection(k)){const r=h.$findMatchingParent(k.anchor.getNode(),t=>A(t));if(!A(r))return!1;var n=k.anchor.getNode(),p=k.focus.getNode();n=a.isParentOf(n);p=a.isParentOf(p);if(n&&!p||p&&!n)return f.clearText(),!0;n=(p=h.$findMatchingParent(k.anchor.getNode(),t=>v.$isElementNode(t)))&&h.$findMatchingParent(p,t=>v.$isElementNode(t)&&A(t.getParent()));
|
77
|
+
if(!v.$isElementNode(n)||!v.$isElementNode(p))return!1;if(g===v.DELETE_LINE_COMMAND&&null===n.getPreviousSibling())return!0;if((g===v.DELETE_CHARACTER_COMMAND||g===v.DELETE_WORD_COMMAND)&&k.isCollapsed()&&0===k.anchor.offset&&p!==n){k=p.getChildren();const t=v.$createParagraphNode();k.forEach(x=>t.append(x));p.replace(t);p.getWritable().__parent=r.getKey();return!0}}return!1};[v.DELETE_WORD_COMMAND,v.DELETE_LINE_COMMAND,v.DELETE_CHARACTER_COMMAND].forEach(g=>{f.listenersToRemove.add(c.registerCommand(g,
|
78
|
+
u(g),v.COMMAND_PRIORITY_CRITICAL))});b=g=>{const k=v.$getSelection();if(!W(k,a))return!1;if(P(k))return g.preventDefault(),g.stopPropagation(),f.clearText(),!0;v.$isRangeSelection(k)&&(g=h.$findMatchingParent(k.anchor.getNode(),n=>A(n)),A(g));return!1};f.listenersToRemove.add(c.registerCommand(v.KEY_BACKSPACE_COMMAND,b,v.COMMAND_PRIORITY_CRITICAL));f.listenersToRemove.add(c.registerCommand(v.KEY_DELETE_COMMAND,b,v.COMMAND_PRIORITY_CRITICAL));f.listenersToRemove.add(c.registerCommand(v.FORMAT_TEXT_COMMAND,
|
79
|
+
g=>{let k=v.$getSelection();if(!W(k,a))return!1;if(P(k))return f.formatCells(g),!0;v.$isRangeSelection(k)&&(g=h.$findMatchingParent(k.anchor.getNode(),n=>A(n)),A(g));return!1},v.COMMAND_PRIORITY_CRITICAL));f.listenersToRemove.add(c.registerCommand(v.FORMAT_ELEMENT_COMMAND,g=>{var k=v.$getSelection();if(!P(k)||!W(k,a))return!1;var n=k.anchor.getNode();k=k.focus.getNode();if(!A(n)||!A(k))return!1;let [p,r,t]=M(a,n,k);n=Math.max(r.startRow,t.startRow);k=Math.max(r.startColumn,t.startColumn);var x=Math.min(r.startRow,
|
80
|
+
t.startRow);let D=Math.min(r.startColumn,t.startColumn);for(;x<=n;x++)for(let H=D;H<=k;H++){var C=p[x][H].cell;C.setFormat(g);C=C.getChildren();for(let J=0;J<C.length;J++){let N=C[J];v.$isElementNode(N)&&!N.isInline()&&N.setFormat(g)}}return!0},v.COMMAND_PRIORITY_CRITICAL));f.listenersToRemove.add(c.registerCommand(v.CONTROLLED_TEXT_INSERTION_COMMAND,()=>{var g=v.$getSelection();if(!W(g,a))return!1;P(g)?f.clearHighlight():v.$isRangeSelection(g)&&(g=h.$findMatchingParent(g.anchor.getNode(),k=>A(k)),
|
81
|
+
A(g));return!1},v.COMMAND_PRIORITY_CRITICAL));d&&f.listenersToRemove.add(c.registerCommand(v.KEY_TAB_COMMAND,g=>{var k=v.$getSelection();if(!v.$isRangeSelection(k)||!k.isCollapsed()||!W(k,a))return!1;k=Aa(k.anchor.getNode());if(null===k)return!1;Y(g);k=a.getCordsFromCellNode(k,f.table);ya(f,a,k.x,k.y,g.shiftKey?"backward":"forward");return!0},v.COMMAND_PRIORITY_CRITICAL));f.listenersToRemove.add(c.registerCommand(v.FOCUS_COMMAND,()=>a.isSelected(),v.COMMAND_PRIORITY_HIGH));f.listenersToRemove.add(c.registerCommand(v.SELECTION_INSERT_CLIPBOARD_NODES_COMMAND,
|
82
|
+
g=>{let {nodes:k,selection:n}=g;g=n.getStartEndPoints();var p=P(n);p=v.$isRangeSelection(n)&&null!==h.$findMatchingParent(n.anchor.getNode(),G=>A(G))&&null!==h.$findMatchingParent(n.focus.getNode(),G=>A(G))||p;if(1!==k.length||!K(k[0])||!p||null===g)return!1;var [r]=g,t=k[0];g=t.getChildren();p=t.getFirstChildOrThrow().getChildrenSize();t=t.getChildrenSize();var x=h.$findMatchingParent(r.getNode(),G=>A(G)),D=(r=x&&h.$findMatchingParent(x,G=>F(G)))&&h.$findMatchingParent(r,G=>K(G));if(!A(x)||!F(r)||
|
83
|
+
!K(D))return!1;var C=r.getIndexWithinParent(),H=Math.min(D.getChildrenSize()-1,C+t-1);t=x.getIndexWithinParent();x=Math.min(r.getChildrenSize()-1,t+p-1);p=Math.min(t,x);r=Math.min(C,H);t=Math.max(t,x);C=Math.max(C,H);D=D.getChildren();H=0;let J,N;for(x=r;x<=C;x++){var ba=D[x];if(!F(ba))return!1;var ca=g[H];if(!F(ca))return!1;ba=ba.getChildren();ca=ca.getChildren();let G=0;for(let T=p;T<=t;T++){let U=ba[T];if(!A(U))return!1;let wa=ca[G];if(!A(wa))return!1;x===r&&T===p?J=U.getKey():x===C&&T===t&&(N=
|
84
|
+
U.getKey());let Ea=U.getChildren();wa.getChildren().forEach(V=>{v.$isTextNode(V)&&v.$createParagraphNode().append(V);U.append(V)});Ea.forEach(V=>V.remove());G++}H++}J&&N&&(g=Q(),g.set(k[0].getKey(),J,N),v.$setSelection(g));return!0},v.COMMAND_PRIORITY_CRITICAL));f.listenersToRemove.add(c.registerCommand(v.SELECTION_CHANGE_COMMAND,()=>{let g=v.$getSelection(),k=v.$getPreviousSelection();if(v.$isRangeSelection(g)){let {anchor:x,focus:D}=g;var n=x.getNode(),p=D.getNode();n=Aa(n);p=Aa(p);var r=!(!n||
|
85
|
+
!a.is(Ba(n))),t=!(!p||!a.is(Ba(p)));let C=r!==t;t=r&&t;r=g.isBackward();C?(n=g.clone(),n.focus.set(a.getKey(),r?0:a.getChildrenSize(),"element"),v.$setSelection(n),va(c,f)):t&&!n.is(p)&&(f.setAnchorCellForSelection(e(n)),f.setFocusCellForSelection(e(p),!0))}if(g&&!g.is(k)&&(P(g)||P(k))&&f.tableSelection&&!f.tableSelection.is(k))return P(g)&&g.tableKey===f.tableNodeKey?f.updateTableTableSelection(g):!P(g)&&P(k)&&k.tableKey===f.tableNodeKey&&f.updateTableTableSelection(null),!1;f.hasHijackedSelectionStyles&&
|
86
|
+
!a.isSelected()?xa(c,f):!f.hasHijackedSelectionStyles&&a.isSelected()&&va(c,f);return!1},v.COMMAND_PRIORITY_CRITICAL));return f};exports.getDOMCellFromTarget=ra;exports.getTableObserverFromTableElement=function(a){return a.__lexicalTableSelection}
|
package/LexicalTableNode.d.ts
CHANGED
@@ -21,7 +21,6 @@ export declare class TableNode extends ElementNode {
|
|
21
21
|
createDOM(config: EditorConfig, editor?: LexicalEditor): HTMLElement;
|
22
22
|
updateDOM(): boolean;
|
23
23
|
exportDOM(editor: LexicalEditor): DOMExportOutput;
|
24
|
-
canExtractContents(): false;
|
25
24
|
canBeEmpty(): false;
|
26
25
|
isShadowRoot(): boolean;
|
27
26
|
getCordsFromCellNode(tableCellNode: TableCellNode, table: TableDOMTable): {
|
package/LexicalTableRowNode.d.ts
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
import type { Spread } from 'lexical';
|
9
9
|
import { DOMConversionMap, DOMConversionOutput, EditorConfig, ElementNode, LexicalNode, NodeKey, SerializedElementNode } from 'lexical';
|
10
10
|
export type SerializedTableRowNode = Spread<{
|
11
|
-
height
|
11
|
+
height?: number;
|
12
12
|
}, SerializedElementNode>;
|
13
13
|
/** @noInheritDoc */
|
14
14
|
export declare class TableRowNode extends ElementNode {
|
@@ -19,11 +19,11 @@ export declare class TableRowNode extends ElementNode {
|
|
19
19
|
static importDOM(): DOMConversionMap | null;
|
20
20
|
static importJSON(serializedNode: SerializedTableRowNode): TableRowNode;
|
21
21
|
constructor(height?: number, key?: NodeKey);
|
22
|
-
exportJSON():
|
22
|
+
exportJSON(): SerializedTableRowNode;
|
23
23
|
createDOM(config: EditorConfig): HTMLElement;
|
24
24
|
isShadowRoot(): boolean;
|
25
25
|
setHeight(height: number): number | null | undefined;
|
26
|
-
getHeight(): number |
|
26
|
+
getHeight(): number | undefined;
|
27
27
|
updateDOM(prevNode: TableRowNode): boolean;
|
28
28
|
canBeEmpty(): false;
|
29
29
|
canIndent(): false;
|
package/README.md
CHANGED
package/package.json
CHANGED
@@ -8,17 +8,19 @@
|
|
8
8
|
"table"
|
9
9
|
],
|
10
10
|
"license": "MIT",
|
11
|
-
"version": "0.
|
11
|
+
"version": "0.14.0",
|
12
12
|
"main": "LexicalTable.js",
|
13
13
|
"peerDependencies": {
|
14
|
-
"lexical": "0.
|
14
|
+
"lexical": "0.14.0"
|
15
15
|
},
|
16
16
|
"dependencies": {
|
17
|
-
"@lexical/utils": "0.
|
17
|
+
"@lexical/utils": "0.14.0"
|
18
18
|
},
|
19
19
|
"repository": {
|
20
20
|
"type": "git",
|
21
21
|
"url": "https://github.com/facebook/lexical",
|
22
22
|
"directory": "packages/lexical-table"
|
23
|
-
}
|
23
|
+
},
|
24
|
+
"module": "LexicalTable.esm.js",
|
25
|
+
"sideEffects": false
|
24
26
|
}
|