@lexical/table 0.1.13 → 0.1.14
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 +116 -32
- package/LexicalTable.prod.js +27 -24
- package/package.json +2 -2
package/LexicalTable.dev.js
CHANGED
@@ -38,26 +38,56 @@ class TableCellNode extends lexical.GridCellNode {
|
|
38
38
|
}
|
39
39
|
|
40
40
|
static clone(node) {
|
41
|
-
return new TableCellNode(
|
41
|
+
return new TableCellNode(new Set(node.__headerStyles), node.__colSpan, node.__key);
|
42
42
|
}
|
43
43
|
|
44
|
-
constructor(
|
44
|
+
constructor(headerStyles, colSpan = 1, key) {
|
45
45
|
super(colSpan, key);
|
46
|
-
this.
|
47
|
-
}
|
48
|
-
|
49
|
-
getTag() {
|
50
|
-
return this.__isHeader ? 'th' : 'td';
|
46
|
+
this.__headerStyles = headerStyles || new Set();
|
51
47
|
}
|
52
48
|
|
53
49
|
createDOM(config) {
|
54
50
|
const element = document.createElement(this.getTag());
|
55
|
-
addClassNamesToElement(element, config.theme.tableCell, this.
|
51
|
+
addClassNamesToElement(element, config.theme.tableCell, this.hasHeader() && config.theme.TableCellHeaderStyles);
|
56
52
|
return element;
|
57
53
|
}
|
58
54
|
|
59
|
-
|
60
|
-
return
|
55
|
+
getTag() {
|
56
|
+
return this.hasHeader() ? 'th' : 'td';
|
57
|
+
}
|
58
|
+
|
59
|
+
setHeaderStyles(headerStyles) {
|
60
|
+
const self = this.getWritable();
|
61
|
+
self.__headerStyles = new Set(headerStyles);
|
62
|
+
return this.__headerStyles;
|
63
|
+
}
|
64
|
+
|
65
|
+
getHeaderStyles() {
|
66
|
+
return this.getLatest().__headerStyles;
|
67
|
+
}
|
68
|
+
|
69
|
+
toggleHeaderStyle(key) {
|
70
|
+
const self = this.getWritable();
|
71
|
+
const newHeaderValue = self.getHeaderStyles();
|
72
|
+
|
73
|
+
if (newHeaderValue.has(key)) {
|
74
|
+
newHeaderValue.delete(key);
|
75
|
+
} else {
|
76
|
+
newHeaderValue.add(key);
|
77
|
+
}
|
78
|
+
|
79
|
+
self.__headerStyles = new Set(newHeaderValue);
|
80
|
+
return self;
|
81
|
+
}
|
82
|
+
|
83
|
+
hasHeader() {
|
84
|
+
const headerStyles = this.getLatest().__headerStyles;
|
85
|
+
|
86
|
+
return headerStyles.size > 0;
|
87
|
+
}
|
88
|
+
|
89
|
+
updateDOM(prevNode) {
|
90
|
+
return prevNode.__headerStyles.size !== this.__headerStyles.size;
|
61
91
|
}
|
62
92
|
|
63
93
|
collapseAtStart() {
|
@@ -69,8 +99,8 @@ class TableCellNode extends lexical.GridCellNode {
|
|
69
99
|
}
|
70
100
|
|
71
101
|
}
|
72
|
-
function $createTableCellNode(
|
73
|
-
return new TableCellNode(
|
102
|
+
function $createTableCellNode(headerStyles) {
|
103
|
+
return new TableCellNode(headerStyles);
|
74
104
|
}
|
75
105
|
function $isTableCellNode(node) {
|
76
106
|
return node instanceof TableCellNode;
|
@@ -106,7 +136,8 @@ function $findMatchingParent(startingNode, findFn) {
|
|
106
136
|
*
|
107
137
|
*
|
108
138
|
*/
|
109
|
-
const getSelection = window.getSelection;
|
139
|
+
const getSelection = () => window.getSelection();
|
140
|
+
|
110
141
|
var getDOMSelection = getSelection;
|
111
142
|
|
112
143
|
/**
|
@@ -496,10 +527,10 @@ function $applyCustomTableHandlers(tableNode, tableElement, editor) {
|
|
496
527
|
const isForward = direction === 'forward';
|
497
528
|
|
498
529
|
if (x !== (isForward ? grid.columns - 1 : 0)) {
|
499
|
-
tableNode.
|
530
|
+
tableNode.getCellNodeFromCordsOrThrow(x + (isForward ? 1 : -1), y).select();
|
500
531
|
} else {
|
501
532
|
if (y !== (isForward ? grid.rows - 1 : 0)) {
|
502
|
-
tableNode.
|
533
|
+
tableNode.getCellNodeFromCordsOrThrow(isForward ? 0 : grid.columns - 1, y + (isForward ? 1 : -1)).select();
|
503
534
|
} else if (!isForward) {
|
504
535
|
tableNode.selectPrevious();
|
505
536
|
} else {
|
@@ -513,7 +544,7 @@ function $applyCustomTableHandlers(tableNode, tableElement, editor) {
|
|
513
544
|
case 'up':
|
514
545
|
{
|
515
546
|
if (y !== 0) {
|
516
|
-
tableNode.
|
547
|
+
tableNode.getCellNodeFromCordsOrThrow(x, y - 1).select();
|
517
548
|
} else {
|
518
549
|
tableNode.selectPrevious();
|
519
550
|
}
|
@@ -524,7 +555,7 @@ function $applyCustomTableHandlers(tableNode, tableElement, editor) {
|
|
524
555
|
case 'down':
|
525
556
|
{
|
526
557
|
if (y !== grid.rows - 1) {
|
527
|
-
tableNode.
|
558
|
+
tableNode.getCellNodeFromCordsOrThrow(x, y + 1).select();
|
528
559
|
} else {
|
529
560
|
tableNode.selectNext();
|
530
561
|
}
|
@@ -604,10 +635,10 @@ class TableNode extends lexical.GridNode {
|
|
604
635
|
static clone(node, selectionShape, grid) {
|
605
636
|
// TODO: selectionShape and grid aren't being deeply cloned?
|
606
637
|
// They shouldn't really be on the table node IMO.
|
607
|
-
return new TableNode(node.
|
638
|
+
return new TableNode(node.__selectionShape, node.__grid, node.__key);
|
608
639
|
}
|
609
640
|
|
610
|
-
constructor(
|
641
|
+
constructor(selectionShape, grid, key) {
|
611
642
|
super(key);
|
612
643
|
this.__selectionShape = selectionShape;
|
613
644
|
this.__grid = grid;
|
@@ -698,13 +729,13 @@ class TableNode extends lexical.GridNode {
|
|
698
729
|
const row = cells[y];
|
699
730
|
|
700
731
|
if (row == null) {
|
701
|
-
|
732
|
+
return null;
|
702
733
|
}
|
703
734
|
|
704
735
|
const cell = row[x];
|
705
736
|
|
706
737
|
if (cell == null) {
|
707
|
-
|
738
|
+
return null;
|
708
739
|
}
|
709
740
|
|
710
741
|
const node = lexical.$getNearestNodeFromDOMNode(cell.elem);
|
@@ -713,7 +744,17 @@ class TableNode extends lexical.GridNode {
|
|
713
744
|
return node;
|
714
745
|
}
|
715
746
|
|
716
|
-
|
747
|
+
return null;
|
748
|
+
}
|
749
|
+
|
750
|
+
getCellNodeFromCordsOrThrow(x, y) {
|
751
|
+
const node = this.getCellNodeFromCords(x, y);
|
752
|
+
|
753
|
+
if (!node) {
|
754
|
+
throw new Error('Node at cords not TableCellNode.');
|
755
|
+
}
|
756
|
+
|
757
|
+
return node;
|
717
758
|
}
|
718
759
|
|
719
760
|
setGrid(grid) {
|
@@ -789,14 +830,21 @@ function $isTableRowNode(node) {
|
|
789
830
|
*
|
790
831
|
*
|
791
832
|
*/
|
792
|
-
function $createTableNodeWithDimensions(rowCount, columnCount,
|
833
|
+
function $createTableNodeWithDimensions(rowCount, columnCount, includeHeaders = true) {
|
793
834
|
const tableNode = $createTableNode();
|
794
835
|
|
795
836
|
for (let iRow = 0; iRow < rowCount; iRow++) {
|
796
837
|
const tableRowNode = $createTableRowNode();
|
797
838
|
|
798
839
|
for (let iColumn = 0; iColumn < columnCount; iColumn++) {
|
799
|
-
const
|
840
|
+
const headerStyles = new Set();
|
841
|
+
|
842
|
+
if (includeHeaders) {
|
843
|
+
if (iRow === 0) headerStyles.add('row');
|
844
|
+
if (iColumn === 0) headerStyles.add('column');
|
845
|
+
}
|
846
|
+
|
847
|
+
const tableCellNode = $createTableCellNode(headerStyles);
|
800
848
|
const paragraphNode = lexical.$createParagraphNode();
|
801
849
|
paragraphNode.append(lexical.$createTextNode());
|
802
850
|
tableCellNode.append(paragraphNode);
|
@@ -844,6 +892,19 @@ function $getTableColumnIndexFromTableCellNode(tableCellNode) {
|
|
844
892
|
const tableRowNode = $getTableRowNodeFromTableCellNodeOrThrow(tableCellNode);
|
845
893
|
return tableRowNode.getChildren().findIndex(n => n.is(tableCellNode));
|
846
894
|
}
|
895
|
+
function $getTableCellSiblingsFromTableCellNode(tableCellNode) {
|
896
|
+
const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode);
|
897
|
+
const {
|
898
|
+
x,
|
899
|
+
y
|
900
|
+
} = tableNode.getCordsFromCellNode(tableCellNode);
|
901
|
+
return {
|
902
|
+
above: tableNode.getCellNodeFromCords(x, y - 1),
|
903
|
+
below: tableNode.getCellNodeFromCords(x, y + 1),
|
904
|
+
left: tableNode.getCellNodeFromCords(x - 1, y),
|
905
|
+
right: tableNode.getCellNodeFromCords(x + 1, y)
|
906
|
+
};
|
907
|
+
}
|
847
908
|
function $removeTableRowAtIndex(tableNode, indexToDelete) {
|
848
909
|
const tableRows = tableNode.getChildren();
|
849
910
|
|
@@ -865,12 +926,29 @@ function $insertTableRow(tableNode, targetIndex, shouldInsertAfter = true, rowCo
|
|
865
926
|
const targetRowNode = tableRows[targetIndex];
|
866
927
|
|
867
928
|
if ($isTableRowNode(targetRowNode)) {
|
868
|
-
for (let
|
869
|
-
const
|
929
|
+
for (let r = 0; r < rowCount; r++) {
|
930
|
+
const tableRowCells = targetRowNode.getChildren();
|
931
|
+
const tableColumnCount = tableRowCells.length;
|
870
932
|
const newTableRowNode = $createTableRowNode();
|
871
933
|
|
872
|
-
for (let
|
873
|
-
const
|
934
|
+
for (let c = 0; c < tableColumnCount; c++) {
|
935
|
+
const tableCellFromTargetRow = tableRowCells[c];
|
936
|
+
|
937
|
+
if (!$isTableCellNode(tableCellFromTargetRow)) {
|
938
|
+
throw Error(`Expected table cell`);
|
939
|
+
}
|
940
|
+
|
941
|
+
const {
|
942
|
+
above,
|
943
|
+
below
|
944
|
+
} = $getTableCellSiblingsFromTableCellNode(tableCellFromTargetRow);
|
945
|
+
const headerStyles = new Set();
|
946
|
+
|
947
|
+
if (above && above.getHeaderStyles().has('column') || below && below.getHeaderStyles().has('column')) {
|
948
|
+
headerStyles.add('column');
|
949
|
+
}
|
950
|
+
|
951
|
+
const tableCellNode = $createTableCellNode(headerStyles);
|
874
952
|
tableCellNode.append(lexical.$createParagraphNode());
|
875
953
|
newTableRowNode.append(tableCellNode);
|
876
954
|
}
|
@@ -890,12 +968,18 @@ function $insertTableRow(tableNode, targetIndex, shouldInsertAfter = true, rowCo
|
|
890
968
|
function $insertTableColumn(tableNode, targetIndex, shouldInsertAfter = true, columnCount) {
|
891
969
|
const tableRows = tableNode.getChildren();
|
892
970
|
|
893
|
-
for (let
|
894
|
-
const currentTableRowNode = tableRows[
|
971
|
+
for (let r = 0; r < tableRows.length; r++) {
|
972
|
+
const currentTableRowNode = tableRows[r];
|
895
973
|
|
896
974
|
if ($isTableRowNode(currentTableRowNode)) {
|
897
|
-
for (let
|
898
|
-
const
|
975
|
+
for (let c = 0; c < columnCount; c++) {
|
976
|
+
const headerStyles = new Set();
|
977
|
+
|
978
|
+
if (r === 0) {
|
979
|
+
headerStyles.add('row');
|
980
|
+
}
|
981
|
+
|
982
|
+
const newTableCell = $createTableCellNode(headerStyles);
|
899
983
|
newTableCell.append(lexical.$createParagraphNode());
|
900
984
|
const tableRowChildren = currentTableRowNode.getChildren();
|
901
985
|
|
package/LexicalTable.prod.js
CHANGED
@@ -4,27 +4,30 @@
|
|
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
|
-
var
|
8
|
-
class
|
9
|
-
function D(a,b){for(;a!==
|
10
|
-
function
|
11
|
-
|
12
|
-
|
13
|
-
function
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
function
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
!0;
|
25
|
-
|
26
|
-
|
27
|
-
exports.$
|
28
|
-
exports.$
|
29
|
-
exports.$
|
30
|
-
exports.$
|
7
|
+
var q=require("lexical");function z(a,...b){b.forEach(c=>{null!=c&&"string"===typeof c&&a.classList.add(...c.split(" "))})}
|
8
|
+
class C extends q.GridCellNode{static getType(){return"tablecell"}static clone(a){return new C(new Set(a.__headerStyles),a.__colSpan,a.__key)}constructor(a,b=1,c){super(b,c);this.__headerStyles=a||new Set}createDOM(a){const b=document.createElement(this.getTag());z(b,a.theme.tableCell,this.hasHeader()&&a.theme.TableCellHeaderStyles);return b}getTag(){return this.hasHeader()?"th":"td"}setHeaderStyles(a){this.getWritable().__headerStyles=new Set(a);return this.__headerStyles}getHeaderStyles(){return this.getLatest().__headerStyles}toggleHeaderStyle(a){const b=
|
9
|
+
this.getWritable(),c=b.getHeaderStyles();c.has(a)?c.delete(a):c.add(a);b.__headerStyles=new Set(c);return b}hasHeader(){return 0<this.getLatest().__headerStyles.size}updateDOM(a){return a.__headerStyles.size!==this.__headerStyles.size}collapseAtStart(){return!0}canBeEmpty(){return!1}}function D(a){return new C(a)}function E(a){return a instanceof C}function F(a,b){for(;a!==q.$getRoot()&&null!=a;){if(b(a))return a;a=a.getParent()}return null}const G=document.createElement("style");G.appendChild(document.createTextNode("::selection{background-color: transparent}"));
|
10
|
+
function H(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}
|
11
|
+
function I(a,b,c){const p=[],d={cells:p,columns:0,rows:0},h=()=>{var e=b.firstChild;let n=0,k=0;for(p.length=0;null!=e;){var f=e.nodeName;if("TD"===f||"TH"===f)f={elem:e,highlighted:!1,x:n,y:k},e._cell=f,void 0===p[k]&&(p[k]=[]),p[k][n]=f;else if(f=e.firstChild,null!=f){e=f;continue}f=e.nextSibling;if(null!=f)n++,e=f;else if(f=e.parentNode,null!=f){e=f.nextSibling;if(null==e)break;k++;n=0}}d.columns=n+1;d.rows=k+1;a.setGrid(d)};(new MutationObserver(e=>{c.update(()=>{let n=!1;for(let k=0;k<e.length;k++){const f=
|
12
|
+
e[k].target.nodeName;if("TABLE"===f||"TR"===f){n=!0;break}}n&&h()})})).observe(b,{childList:!0,subtree:!0});h();return d}
|
13
|
+
function J(a,b,c,p,d){const h=[];for(let e=0;e<d.length;e++){const n=d[e];for(let k=0;k<n.length;k++){const f=n[k],r=f.elem.style;k>=a&&k<=b&&e>=c&&e<=p?(f.highlighted||(f.highlighted=!0,r.setProperty("background-color","rgb(163, 187, 255)"),r.setProperty("caret-color","transparent")),h.push(f)):f.highlighted&&(f.highlighted=!1,r.removeProperty("background-color"),r.removeProperty("caret-color"),f.elem.getAttribute("style")||f.elem.removeAttribute("style"))}}return h}
|
14
|
+
function K(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.");}
|
15
|
+
class L extends q.GridNode{static getType(){return"table"}static clone(a){return new L(a.__selectionShape,a.__grid,a.__key)}constructor(a,b,c){super(c);this.__selectionShape=a;this.__grid=b}createDOM(a){const b=document.createElement("table");z(b,a.theme.table);return b}updateDOM(){return!1}canExtractContents(){return!1}canBeEmpty(){return!1}setSelectionState(a){this.getWritable().__selectionShape=a;const b=this.getGrid();return null==b?[]:a?J(a.fromX,a.toX,a.fromY,a.toY,b.cells):J(-1,-1,-1,-1,b.cells)}getSelectionState(){return this.getLatest().__selectionShape}getCordsFromCellNode(a){var b=
|
16
|
+
this.getGrid();b||K(55);const {rows:c,cells:p}=b;for(b=0;b<c;b++){var d=p[b];if(null==d)throw Error(`Row not found at y:${b}`);d=d.findIndex(({elem:h})=>q.$getNearestNodeFromDOMNode(h)===a);if(-1!==d)return{x:d,y:b}}throw Error("Cell not found in table.");}getCellNodeFromCords(a,b){var c=this.getGrid();c||K(55);({cells:c}=c);b=c[b];if(null==b)return null;a=b[a];if(null==a)return null;a=q.$getNearestNodeFromDOMNode(a.elem);return E(a)?a:null}getCellNodeFromCordsOrThrow(a,b){a=this.getCellNodeFromCords(a,
|
17
|
+
b);if(!a)throw Error("Node at cords not TableCellNode.");return a}setGrid(a){const b=this.getWritable();b.__grid=a;return b}getGrid(){return this.getLatest().__grid}canSelectBefore(){return!0}}function M(){return new L}function N(a){return a instanceof L}
|
18
|
+
class P extends q.GridRowNode{static getType(){return"tablerow"}static clone(a){return new P(a.__key)}constructor(a){super(a)}createDOM(a){const b=document.createElement("tr");z(b,a.theme.tableRow);return b}updateDOM(){return!1}canBeEmpty(){return!1}}function Q(){return new P}function R(a){return a instanceof P}function S(a){a=F(a,b=>R(b));if(R(a))return a;throw Error("Expected table cell to be inside of table row.");}
|
19
|
+
function V(a){a=F(a,b=>N(b));if(N(a))return a;throw Error("Expected table cell to be inside of table.");}
|
20
|
+
exports.$applyCustomTableHandlers=function(a,b,c){const p=c.getRootElement();if(null===p)throw Error("No root element.");I(a,b,c);const d=a.getGrid();let h=!1,e=!1,n=-1,k=-1,f=-1,r=-1,u=[];const y=new Set;let x=null;if(null==d)throw Error("Table grid not found.");b.addEventListener("mousemove",l=>{if(h){var g=H(l.target);if(null!==g){const m=g.x;g=g.y;if(!e&&(n!==m||k!==g)){l.preventDefault();l=window.getSelection();const t=l.anchorNode;null!==t&&l.setBaseAndExtent(t,0,t,0);e=!0;document.body&&document.body.appendChild(G);
|
21
|
+
null===x&&(x=c.addListener("command",(w,v)=>{if("deleteCharacter"===w){if(u.length===d.columns*d.rows)return a.selectPrevious(),a.remove(),A(),!0;u.forEach(({elem:B})=>{B=q.$getNearestNodeFromDOMNode(B);if(q.$isElementNode(B)){const O=q.$createParagraphNode(),W=q.$createTextNode();O.append(W);B.append(O);B.getChildren().forEach(T=>{T!==O&&T.remove()})}});a.setSelectionState(null);q.$setSelection(null);return!0}if("formatText"===w)return X(v),!0;"insertText"===w&&A();return!1},1),y.add(x))}else if(m===
|
22
|
+
f&&g===r)return;f=m;r=g;if(e){const t=Math.min(n,f),w=Math.max(n,f),v=Math.min(k,r),B=Math.max(k,r);c.update(()=>{u=a.setSelectionState({fromX:t,fromY:v,toX:w,toY:B})})}}}});const A=()=>{c.update(()=>{h=e=!1;r=f=k=n=-1;c.update(()=>{a.setSelectionState(null)});u=[];null!==x&&(x(),x=null,y.delete(x));const l=G.parentNode;null!=l&&l.removeChild(G)})};b.addEventListener("mouseleave",()=>{});const X=l=>{let g=q.$getSelection();q.$isRangeSelection(g)||(g=q.$createRangeSelection());const m=g,t=m.anchor,
|
23
|
+
w=m.focus;u.forEach(v=>{v=q.$getNearestNodeFromDOMNode(v.elem);q.$isElementNode(v)&&0!==v.getTextContentSize()&&(t.set(v.getKey(),0,"element"),w.set(v.getKey(),v.getChildrenSize(),"element"),m.formatText(l))});g.anchor.set(g.anchor.key,g.anchor.offset,g.anchor.type);g.focus.set(g.anchor.key,g.anchor.offset,g.anchor.type);q.$setSelection(g)};b.addEventListener("mousedown",l=>{h?e&&A():setTimeout(()=>{e&&A();const g=H(l.target);null!==g&&(h=!0,n=g.x,k=g.y,document.addEventListener("mouseup",()=>{h=
|
24
|
+
!1},{capture:!0,once:!0}))},0)});window.addEventListener("click",l=>{0<u.length&&!b.contains(l.target)&&p.contains(l.target)&&c.update(()=>{a.setSelectionState(null)})});const U=(l,g,m)=>{switch(m){case "backward":case "forward":return m="forward"===m,l!==(m?d.columns-1:0)?a.getCellNodeFromCordsOrThrow(l+(m?1:-1),g).select():g!==(m?d.rows-1:0)?a.getCellNodeFromCordsOrThrow(m?0:d.columns-1,g+(m?1:-1)).select():m?a.selectNext():a.selectPrevious(),!0;case "up":return 0!==g?a.getCellNodeFromCordsOrThrow(l,
|
25
|
+
g-1).select():a.selectPrevious(),!0;case "down":return g!==d.rows-1?a.getCellNodeFromCordsOrThrow(l,g+1).select():a.selectNext(),!0}return!1},Y=c.addListener("command",(l,g)=>{var m=q.$getSelection();if(!q.$isRangeSelection(m))return!1;var t=F(m.anchor.getNode(),w=>E(w));if(!E(t))return!1;if("deleteCharacter"===l&&0===u.length&&m.isCollapsed()&&0===m.anchor.offset&&0===m.anchor.getNode().getPreviousSiblings().length)return!0;if("keyTab"===l&&m.isCollapsed()&&0===u.length)return t=a.getCordsFromCellNode(t),
|
26
|
+
g.preventDefault(),U(t.x,t.y,g.shiftKey||"keyTab"!==l?"backward":"forward"),!0;if(("keyArrowDown"===l||"keyArrowUp"===l)&&m.isCollapsed()&&0===u.length){const w=a.getCordsFromCellNode(t);m=F(m.anchor.getNode(),v=>q.$isElementNode(v));if("keyArrowUp"===l&&m===t.getFirstChild()||"keyArrowDown"===l&&m===t.getLastChild())return g.preventDefault(),g.stopImmediatePropagation(),U(w.x,w.y,"keyArrowUp"===l?"up":"down"),!0}return!1},4);y.add(Y);return()=>Array.from(y).forEach(l=>l?l():null)};
|
27
|
+
exports.$createTableCellNode=D;exports.$createTableNode=M;exports.$createTableNodeWithDimensions=function(a,b,c=!0){const p=M();for(let h=0;h<a;h++){const e=Q();for(let n=0;n<b;n++){var d=new Set;c&&(0===h&&d.add("row"),0===n&&d.add("column"));d=D(d);const k=q.$createParagraphNode();k.append(q.$createTextNode());d.append(k);e.append(d)}p.append(e)}return p};exports.$createTableRowNode=Q;
|
28
|
+
exports.$deleteTableColumn=function(a,b){const c=a.getChildren();for(let d=0;d<c.length;d++){var p=c[d];if(R(p)){p=p.getChildren();if(b>=p.length||0>b)throw Error("Table column target index out of range");p[b].remove()}}return a};exports.$getTableCellNodeFromLexicalNode=function(a){a=F(a,b=>E(b));return E(a)?a:null};exports.$getTableColumnIndexFromTableCellNode=function(a){return S(a).getChildren().findIndex(b=>b.is(a))};exports.$getTableNodeFromLexicalNodeOrThrow=V;
|
29
|
+
exports.$getTableRowIndexFromTableCellNode=function(a){const b=S(a);return V(b).getChildren().findIndex(c=>c.is(b))};exports.$getTableRowNodeFromTableCellNodeOrThrow=S;
|
30
|
+
exports.$insertTableColumn=function(a,b,c=!0,p){const d=a.getChildren();for(let n=0;n<d.length;n++){const k=d[n];if(R(k))for(let f=0;f<p;f++){var h=new Set;0===n&&h.add("row");h=D(h);h.append(q.$createParagraphNode());var e=k.getChildren();if(b>=e.length||0>b)throw Error("Table column target index out of range");e=e[b];c?e.insertAfter(h):e.insertBefore(h)}}return a};
|
31
|
+
exports.$insertTableRow=function(a,b,c=!0,p){var d=a.getChildren();if(b>=d.length||0>b)throw Error("Table row target index out of range");b=d[b];if(R(b))for(d=0;d<p;d++){const e=b.getChildren(),n=e.length,k=Q();for(let f=0;f<n;f++){var h=e[f];if(!E(h))throw Error("Expected table cell");const r=V(h),{x:u,y}=r.getCordsFromCellNode(h);h={above:r.getCellNodeFromCords(u,y-1),below:r.getCellNodeFromCords(u,y+1),left:r.getCellNodeFromCords(u-1,y),right:r.getCellNodeFromCords(u+1,y)};const {above:x,below:A}=
|
32
|
+
h;h=new Set;(x&&x.getHeaderStyles().has("column")||A&&A.getHeaderStyles().has("column"))&&h.add("column");h=D(h);h.append(q.$createParagraphNode());k.append(h)}c?b.insertAfter(k):b.insertBefore(k)}else throw Error("Row before insertion index does not exist.");return a};exports.$isTableCellNode=E;exports.$isTableNode=N;exports.$isTableRowNode=R;
|
33
|
+
exports.$removeTableRowAtIndex=function(a,b){const 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};exports.TableCellNode=C;exports.TableNode=L;exports.TableRowNode=P;
|
package/package.json
CHANGED