Merge branch 'master' of http://git.roojs.com/roojs1
[roojs1] / docs / src / Roo_htmleditor_BlockTd.js.html
1 <html><head><title>Roo/htmleditor/BlockTd.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/**
2  *
3  * editing a TD?
4  *
5  * since selections really work on the table cell, then editing really should work from there
6  *
7  * The original plan was to support merging etc... - but that may not be needed yet..
8  *
9  * So this simple version will support:
10  *   add/remove cols
11  *   adjust the width +/-
12  *   reset the width...
13  *   
14  *
15  */
16
17
18
19
20 /**
21  * @class Roo.htmleditor.BlockTable
22  * Block that manages a table
23  * 
24  * @constructor
25  * Create a new Filter.
26  * @param {Object} config Configuration options
27  */
28
29 </span><span class="jsdoc-var">Roo.htmleditor.BlockTd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">)
30 {
31     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg.node</span><span class="jsdoc-syntax">) {
32         </span><span class="jsdoc-var">this.readElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg.node</span><span class="jsdoc-syntax">);
33         </span><span class="jsdoc-var">this.updateElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg.node</span><span class="jsdoc-syntax">);
34     }
35     </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">);
36
37
38
39 }
40 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.htmleditor.BlockTd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.htmleditor.Block</span><span class="jsdoc-syntax">, {
41
42     </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
43
44     </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
45     </span><span class="jsdoc-var">textAlign </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'left'</span><span class="jsdoc-syntax">,
46     </span><span class="jsdoc-var">valign </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">,
47
48     </span><span class="jsdoc-var">colspan </span><span class="jsdoc-syntax">: 1,
49     </span><span class="jsdoc-var">rowspan </span><span class="jsdoc-syntax">: 1,
50
51
52     </span><span class="jsdoc-comment">// used by context menu
53     </span><span class="jsdoc-var">friendly_name </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Table Cell'</span><span class="jsdoc-syntax">,
54     </span><span class="jsdoc-var">deleteTitle </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// use our customer delete
55
56     // context menu is drawn once..
57
58     </span><span class="jsdoc-var">contextMenu </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">toolbar</span><span class="jsdoc-syntax">)
59     {
60
61         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
62             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.htmleditor.Block.factory</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">toolbar.tb.selectedNode</span><span class="jsdoc-syntax">);
63         };
64
65         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">table </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
66             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.htmleditor.Block.factory</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">toolbar.tb.selectedNode.closest</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">));
67         };
68
69         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
70         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">saveSel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
71         {
72             </span><span class="jsdoc-var">lr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">toolbar.editorcore.getSelection</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getRangeAt</span><span class="jsdoc-syntax">(0);
73         }
74         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">restoreSel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
75         {
76             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lr</span><span class="jsdoc-syntax">) {
77                 (</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
78                     </span><span class="jsdoc-var">toolbar.editorcore.focus</span><span class="jsdoc-syntax">();
79                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">toolbar.editorcore.getSelection</span><span class="jsdoc-syntax">();
80                     </span><span class="jsdoc-var">cr.removeAllRanges</span><span class="jsdoc-syntax">();
81                     </span><span class="jsdoc-var">cr.addRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lr</span><span class="jsdoc-syntax">);
82                     </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
83                 })</span><span class="jsdoc-var">.defer</span><span class="jsdoc-syntax">(10, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
84
85
86             }
87         }
88
89         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rooui </span><span class="jsdoc-syntax">=  </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">Roo </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.bootstrap</span><span class="jsdoc-syntax">;
90
91         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">syncValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">toolbar.editorcore.syncValue</span><span class="jsdoc-syntax">;
92
93         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fields </span><span class="jsdoc-syntax">= {};
94
95         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[
96             {
97                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Button'</span><span class="jsdoc-syntax">,
98                 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Edit Table'</span><span class="jsdoc-syntax">,
99                 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
100                     </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
101                         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">toolbar.tb.selectedNode.closest</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">);
102                         </span><span class="jsdoc-var">toolbar.editorcore.selectNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
103                         </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
104                     }
105                 }
106
107             },
108
109
110
111             {
112                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'TextItem'</span><span class="jsdoc-syntax">,
113                 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Column Width: &quot;</span><span class="jsdoc-syntax">,
114                  </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar
115
116             </span><span class="jsdoc-syntax">},
117             {
118                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Button'</span><span class="jsdoc-syntax">,
119                 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">,
120                 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
121                     </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
122                     {
123                         </span><span class="jsdoc-var">toolbar.editorcore.selectNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">toolbar.tb.selectedNode</span><span class="jsdoc-syntax">);
124                         </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.shrinkColumn</span><span class="jsdoc-syntax">();
125                         </span><span class="jsdoc-var">syncValue</span><span class="jsdoc-syntax">();
126                          </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
127                     }
128                 },
129                 </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar
130             </span><span class="jsdoc-syntax">},
131             {
132                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Button'</span><span class="jsdoc-syntax">,
133                 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'+'</span><span class="jsdoc-syntax">,
134                 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
135                     </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
136                     {
137                         </span><span class="jsdoc-var">toolbar.editorcore.selectNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">toolbar.tb.selectedNode</span><span class="jsdoc-syntax">);
138                         </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.growColumn</span><span class="jsdoc-syntax">();
139                         </span><span class="jsdoc-var">syncValue</span><span class="jsdoc-syntax">();
140                         </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
141                     }
142                 },
143                 </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar
144             </span><span class="jsdoc-syntax">},
145
146             {
147                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'TextItem'</span><span class="jsdoc-syntax">,
148                 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Vertical Align: &quot;</span><span class="jsdoc-syntax">,
149                 </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar  </span><span class="jsdoc-comment">//Boostrap?
150             </span><span class="jsdoc-syntax">},
151             {
152                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ComboBox'</span><span class="jsdoc-syntax">,
153                 </span><span class="jsdoc-var">allowBlank </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
154                 </span><span class="jsdoc-var">displayField </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">,
155                 </span><span class="jsdoc-var">editable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
156                 </span><span class="jsdoc-var">listWidth </span><span class="jsdoc-syntax">: 100,
157                 </span><span class="jsdoc-var">triggerAction </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'all'</span><span class="jsdoc-syntax">,
158                 </span><span class="jsdoc-var">typeAhead </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
159                 </span><span class="jsdoc-var">valueField </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">,
160                 </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">: 100,
161                 </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'valign'</span><span class="jsdoc-syntax">,
162                 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
163                     </span><span class="jsdoc-var">select </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">combo</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">)
164                     {
165                         </span><span class="jsdoc-var">toolbar.editorcore.selectNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">toolbar.tb.selectedNode</span><span class="jsdoc-syntax">);
166                         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">();
167                         </span><span class="jsdoc-var">b.valign </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">r.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">);
168                         </span><span class="jsdoc-var">b.updateElement</span><span class="jsdoc-syntax">();
169                         </span><span class="jsdoc-var">syncValue</span><span class="jsdoc-syntax">();
170                         </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
171                     }
172                 },
173                 </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.form</span><span class="jsdoc-syntax">,
174                 </span><span class="jsdoc-var">store </span><span class="jsdoc-syntax">: {
175                     </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'SimpleStore'</span><span class="jsdoc-syntax">,
176                     </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">: [
177                         [</span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">],
178                         [</span><span class="jsdoc-string">'middle'</span><span class="jsdoc-syntax">],
179                         [</span><span class="jsdoc-string">'bottom'</span><span class="jsdoc-syntax">] </span><span class="jsdoc-comment">// there are afew more... 
180                     </span><span class="jsdoc-syntax">],
181                     </span><span class="jsdoc-var">fields </span><span class="jsdoc-syntax">: [ </span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">],
182                     </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.data
183                 </span><span class="jsdoc-syntax">}
184             },
185
186             {
187                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'TextItem'</span><span class="jsdoc-syntax">,
188                 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Merge Cells: &quot;</span><span class="jsdoc-syntax">,
189                  </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar
190
191             </span><span class="jsdoc-syntax">},
192
193
194             {
195                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Button'</span><span class="jsdoc-syntax">,
196                 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Right'</span><span class="jsdoc-syntax">,
197                 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
198                     </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
199                     {
200                         </span><span class="jsdoc-var">toolbar.editorcore.selectNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">toolbar.tb.selectedNode</span><span class="jsdoc-syntax">);
201                         </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.mergeRight</span><span class="jsdoc-syntax">();
202                         </span><span class="jsdoc-comment">//block().growColumn();
203                         </span><span class="jsdoc-var">syncValue</span><span class="jsdoc-syntax">();
204                         </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
205                     }
206                 },
207                 </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar
208             </span><span class="jsdoc-syntax">},
209
210             {
211                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Button'</span><span class="jsdoc-syntax">,
212                 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Below'</span><span class="jsdoc-syntax">,
213                 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
214                     </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
215                     {
216                         </span><span class="jsdoc-var">toolbar.editorcore.selectNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">toolbar.tb.selectedNode</span><span class="jsdoc-syntax">);
217                         </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.mergeBelow</span><span class="jsdoc-syntax">();
218                         </span><span class="jsdoc-comment">//block().growColumn();
219                         </span><span class="jsdoc-var">syncValue</span><span class="jsdoc-syntax">();
220                         </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
221                     }
222                 },
223                 </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar
224             </span><span class="jsdoc-syntax">},
225             {
226                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'TextItem'</span><span class="jsdoc-syntax">,
227                 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;| &quot;</span><span class="jsdoc-syntax">,
228                  </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar
229
230             </span><span class="jsdoc-syntax">},
231
232             {
233                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Button'</span><span class="jsdoc-syntax">,
234                 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Split'</span><span class="jsdoc-syntax">,
235                 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
236                     </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
237                     {
238                         </span><span class="jsdoc-comment">//toolbar.editorcore.selectNode(toolbar.tb.selectedNode);
239                         </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">();
240                         </span><span class="jsdoc-var">syncValue</span><span class="jsdoc-syntax">();
241                         </span><span class="jsdoc-var">toolbar.editorcore.selectNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">toolbar.tb.selectedNode</span><span class="jsdoc-syntax">);
242                         </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
243
244                     }
245                 },
246                 </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar
247             </span><span class="jsdoc-syntax">},
248             {
249                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Fill'</span><span class="jsdoc-syntax">,
250                 </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar
251
252             </span><span class="jsdoc-syntax">},
253
254
255             {
256                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Button'</span><span class="jsdoc-syntax">,
257                 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Delete'</span><span class="jsdoc-syntax">,
258
259                 </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.Toolbar</span><span class="jsdoc-syntax">,
260                 </span><span class="jsdoc-var">menu </span><span class="jsdoc-syntax">: {
261                     </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Menu'</span><span class="jsdoc-syntax">,
262                     </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.menu</span><span class="jsdoc-syntax">,
263                     </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">: [
264                         {
265                             </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Item'</span><span class="jsdoc-syntax">,
266                             </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Column'</span><span class="jsdoc-syntax">,
267                             </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
268                                 </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
269                                 {
270                                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">();
271
272                                     </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.deleteColumn</span><span class="jsdoc-syntax">();
273                                     </span><span class="jsdoc-var">syncValue</span><span class="jsdoc-syntax">();
274                                     </span><span class="jsdoc-var">toolbar.editorcore.selectNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.node</span><span class="jsdoc-syntax">);
275                                     </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
276                                 }
277                             },
278                             </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.menu
279                         </span><span class="jsdoc-syntax">},
280                         {
281                             </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Item'</span><span class="jsdoc-syntax">,
282                             </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Row'</span><span class="jsdoc-syntax">,
283                             </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
284                                 </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
285                                 {
286                                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">();
287                                     </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.deleteRow</span><span class="jsdoc-syntax">();
288                                     </span><span class="jsdoc-var">syncValue</span><span class="jsdoc-syntax">();
289
290                                     </span><span class="jsdoc-var">toolbar.editorcore.selectNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.node</span><span class="jsdoc-syntax">);
291                                     </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
292
293                                 }
294                             },
295                             </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.menu
296                         </span><span class="jsdoc-syntax">},
297                        {
298                             </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Separator'</span><span class="jsdoc-syntax">,
299                             </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.menu
300                         </span><span class="jsdoc-syntax">},
301                         {
302                             </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Item'</span><span class="jsdoc-syntax">,
303                             </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Table'</span><span class="jsdoc-syntax">,
304                             </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
305                                 </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
306                                 {
307                                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">();
308                                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t.node.nextSibling </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">t.node.previousSibling</span><span class="jsdoc-syntax">;
309                                     </span><span class="jsdoc-var">t.node.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.node</span><span class="jsdoc-syntax">);
310                                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nn</span><span class="jsdoc-syntax">) {
311                                         </span><span class="jsdoc-var">toolbar.editorcore.selectNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
312                                     }
313                                     </span><span class="jsdoc-var">toolbar.editorcore.onEditorEvent</span><span class="jsdoc-syntax">();
314
315                                 }
316                             },
317                             </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rooui.menu
318                         </span><span class="jsdoc-syntax">}
319                     ]
320                 }
321             }
322
323             </span><span class="jsdoc-comment">// align... &lt;&lt; fixme
324
325         </span><span class="jsdoc-syntax">];
326
327     },
328
329
330   </span><span class="jsdoc-comment">/**
331      * create a DomHelper friendly object - for use with
332      * Roo.DomHelper.markup / overwrite / etc..
333      * ?? should it be called with option to hide all editing features?
334      */
335  /**
336      * create a DomHelper friendly object - for use with
337      * Roo.DomHelper.markup / overwrite / etc..
338      * ?? should it be called with option to hide all editing features?
339      */
340     </span><span class="jsdoc-var">toObject </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
341     {
342         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= {
343             </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">,
344             </span><span class="jsdoc-var">contenteditable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'true'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// this stops cell selection from picking the table.
345             </span><span class="jsdoc-string">'data-block' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Td'</span><span class="jsdoc-syntax">,
346             </span><span class="jsdoc-var">valign </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.valign</span><span class="jsdoc-syntax">,
347             </span><span class="jsdoc-var">style </span><span class="jsdoc-syntax">: {
348                 </span><span class="jsdoc-string">'text-align' </span><span class="jsdoc-syntax">:  </span><span class="jsdoc-var">this.textAlign</span><span class="jsdoc-syntax">,
349                 </span><span class="jsdoc-var">border </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'solid 1px rgb(0, 0, 0)'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// ??? hard coded?
350                 </span><span class="jsdoc-string">'border-collapse' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'collapse'</span><span class="jsdoc-syntax">,
351                 </span><span class="jsdoc-var">padding </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'6px'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// 8 for desktop / 4 for mobile
352                 </span><span class="jsdoc-string">'vertical-align'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.valign
353             </span><span class="jsdoc-syntax">},
354             </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.html
355         </span><span class="jsdoc-syntax">};
356         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) {
357             </span><span class="jsdoc-var">ret.width </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">;
358             </span><span class="jsdoc-var">ret.style.width </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">;
359         }
360
361
362         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colspan </span><span class="jsdoc-syntax">&gt; 1) {
363             </span><span class="jsdoc-var">ret.colspan </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.colspan </span><span class="jsdoc-syntax">;
364         }
365         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rowspan </span><span class="jsdoc-syntax">&gt; 1) {
366             </span><span class="jsdoc-var">ret.rowspan </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rowspan </span><span class="jsdoc-syntax">;
367         }
368
369
370
371         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
372
373     },
374
375     </span><span class="jsdoc-var">readElement </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">)
376     {
377         </span><span class="jsdoc-var">node  </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.node </span><span class="jsdoc-syntax">;
378         </span><span class="jsdoc-var">this.width </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.style.width</span><span class="jsdoc-syntax">;
379         </span><span class="jsdoc-var">this.colspan </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(1,1*</span><span class="jsdoc-var">node.getAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'colspan'</span><span class="jsdoc-syntax">));
380         </span><span class="jsdoc-var">this.rowspan </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(1,1*</span><span class="jsdoc-var">node.getAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'rowspan'</span><span class="jsdoc-syntax">));
381         </span><span class="jsdoc-var">this.html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.innerHTML</span><span class="jsdoc-syntax">;
382         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.style.textAlign </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) {
383             </span><span class="jsdoc-var">this.textAlign </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.style.textAlign</span><span class="jsdoc-syntax">;
384         }
385
386
387     },
388
389     </span><span class="jsdoc-comment">// the default cell object... at present...
390     </span><span class="jsdoc-var">emptyCell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
391         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
392             </span><span class="jsdoc-var">colspan </span><span class="jsdoc-syntax">:  1,
393             </span><span class="jsdoc-var">rowspan </span><span class="jsdoc-syntax">:  1,
394             </span><span class="jsdoc-var">textAlign </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'left'</span><span class="jsdoc-syntax">,
395             </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&amp;nbsp;&quot; </span><span class="jsdoc-comment">// is this going to be editable now?
396         </span><span class="jsdoc-syntax">};
397
398     },
399
400     </span><span class="jsdoc-var">removeNode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
401     {
402         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.node.closest</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">);
403
404     },
405
406     </span><span class="jsdoc-var">cellData </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
407
408     </span><span class="jsdoc-var">colWidths </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
409
410     </span><span class="jsdoc-var">toTableArray  </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
411     {
412         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= [];
413         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tab </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.node.closest</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.closest</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">);
414         </span><span class="jsdoc-var">Array.from</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tab.rows</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ri</span><span class="jsdoc-syntax">){
415             </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">ri</span><span class="jsdoc-syntax">] = [];
416         });
417         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rn </span><span class="jsdoc-syntax">= 0;
418         </span><span class="jsdoc-var">this.colWidths </span><span class="jsdoc-syntax">= [];
419         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">all_auto </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
420         </span><span class="jsdoc-var">Array.from</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tab.rows</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ri</span><span class="jsdoc-syntax">){
421
422             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">= 0;
423             </span><span class="jsdoc-var">Array.from</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.cells</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ce</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ci</span><span class="jsdoc-syntax">){
424                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">=  {
425                     </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">ce</span><span class="jsdoc-syntax">,
426                     </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rn</span><span class="jsdoc-syntax">,
427                     </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">,
428                     </span><span class="jsdoc-var">colspan </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">ce.colSpan</span><span class="jsdoc-syntax">,
429                     </span><span class="jsdoc-var">rowspan </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">ce.rowSpan
430                 </span><span class="jsdoc-syntax">};
431                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ce.isEqualNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.node</span><span class="jsdoc-syntax">)) {
432                     </span><span class="jsdoc-var">this.cellData </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">;
433                 }
434                 </span><span class="jsdoc-comment">// if we have been filled up by a row?
435                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">rn</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">]) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
436                     </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">rn</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">]) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
437                         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">++;
438                     }
439                     </span><span class="jsdoc-var">c.col </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">;
440                 }
441
442                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">c.colspan </span><span class="jsdoc-syntax">&lt; 2) {
443                     </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">] =   </span><span class="jsdoc-var">ce.style.width</span><span class="jsdoc-syntax">;
444                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">] != </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) {
445                         </span><span class="jsdoc-var">all_auto </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
446                     }
447                 }
448
449
450                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.colspan </span><span class="jsdoc-syntax">&lt; 2 &amp;&amp; </span><span class="jsdoc-var">c.rowspan </span><span class="jsdoc-syntax">&lt; 2 ) {
451                     </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">rn</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">;
452                     </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">++;
453                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
454                 }
455                 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">c.rowspan</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">++) {
456                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">rn</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
457                         </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// we have a problem..
458                     </span><span class="jsdoc-syntax">}
459                     </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">rn</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">;
460                     </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">c.colspan</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
461                         </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">rn</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">;
462                     }
463                 }
464
465                 </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">c.colspan</span><span class="jsdoc-syntax">;
466             }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
467             </span><span class="jsdoc-var">rn</span><span class="jsdoc-syntax">++;
468         }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
469
470         </span><span class="jsdoc-comment">// initalize widths.?
471         // either all widths or no widths..
472         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">all_auto</span><span class="jsdoc-syntax">) {
473             </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[0] = </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// no widths flag.
474         </span><span class="jsdoc-syntax">}
475
476
477         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
478
479     },
480
481
482
483
484     </span><span class="jsdoc-var">mergeRight</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
485     {
486
487         </span><span class="jsdoc-comment">// get the contents of the next cell along..
488         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.node.closest</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">);
489         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Array.prototype.indexOf.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tr.childNodes</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.node</span><span class="jsdoc-syntax">);
490         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&gt;= </span><span class="jsdoc-var">tr.childNodes.length </span><span class="jsdoc-syntax">- 1) {
491             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// no cells on right to merge with.
492         </span><span class="jsdoc-syntax">}
493         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">table </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toTableArray</span><span class="jsdoc-syntax">();
494
495         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.cellData.row</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.cellData.colspan</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
496             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// nothing right?
497         </span><span class="jsdoc-syntax">}
498         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.cellData.row</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.cellData.colspan</span><span class="jsdoc-syntax">];
499         </span><span class="jsdoc-comment">// right cell - must be same rowspan and on the same row.
500         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rc.rowspan </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">this.cellData.rowspan </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">rc.row </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">this.cellData.row</span><span class="jsdoc-syntax">) {
501             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// right hand side is not same rowspan.
502         </span><span class="jsdoc-syntax">}
503
504
505
506         </span><span class="jsdoc-var">this.node.innerHTML </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">rc.cell.innerHTML</span><span class="jsdoc-syntax">;
507         </span><span class="jsdoc-var">tr.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rc.cell</span><span class="jsdoc-syntax">);
508         </span><span class="jsdoc-var">this.colspan </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">rc.colspan</span><span class="jsdoc-syntax">;
509         </span><span class="jsdoc-var">this.node.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'colspan'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.colspan</span><span class="jsdoc-syntax">);
510
511         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">table </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toTableArray</span><span class="jsdoc-syntax">();
512         </span><span class="jsdoc-var">this.normalizeWidths</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">);
513         </span><span class="jsdoc-var">this.updateWidths</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">);
514     },
515
516
517     </span><span class="jsdoc-var">mergeBelow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
518     {
519         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">table </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toTableArray</span><span class="jsdoc-syntax">();
520         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.cellData.row</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.cellData.rowspan</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
521             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// no row below
522         </span><span class="jsdoc-syntax">}
523         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.cellData.row</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.cellData.rowspan</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
524             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// nothing right?
525         </span><span class="jsdoc-syntax">}
526         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.cellData.row</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.cellData.rowspan</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">];
527
528         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rc.colspan </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">this.cellData.colspan </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">rc.col </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">) {
529             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// right hand side is not same rowspan.
530         </span><span class="jsdoc-syntax">}
531         </span><span class="jsdoc-var">this.node.innerHTML </span><span class="jsdoc-syntax">=  </span><span class="jsdoc-var">this.node.innerHTML </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">rc.cell.innerHTML </span><span class="jsdoc-syntax">;
532         </span><span class="jsdoc-var">rc.cell.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rc.cell</span><span class="jsdoc-syntax">);
533         </span><span class="jsdoc-var">this.rowspan </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">rc.rowspan</span><span class="jsdoc-syntax">;
534         </span><span class="jsdoc-var">this.node.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'rowspan'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.rowspan</span><span class="jsdoc-syntax">);
535     },
536
537     </span><span class="jsdoc-var">split</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
538     {
539         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.node.rowSpan </span><span class="jsdoc-syntax">&lt; 2 &amp;&amp; </span><span class="jsdoc-var">this.node.colSpan </span><span class="jsdoc-syntax">&lt; 2) {
540             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
541         }
542         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">table </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toTableArray</span><span class="jsdoc-syntax">();
543         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cellData</span><span class="jsdoc-syntax">;
544         </span><span class="jsdoc-var">this.rowspan </span><span class="jsdoc-syntax">= 1;
545         </span><span class="jsdoc-var">this.colspan </span><span class="jsdoc-syntax">= 1;
546
547         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cd.row</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">cd.row </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">cd.rowspan</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">++) {
548
549
550             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cd.col</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">cd.col </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">cd.colspan</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">++) {
551                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">cd.row </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">cd.col</span><span class="jsdoc-syntax">) {
552                     </span><span class="jsdoc-var">this.node.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'rowspan'</span><span class="jsdoc-syntax">);
553                     </span><span class="jsdoc-var">this.node.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'colspan'</span><span class="jsdoc-syntax">);
554                 }
555
556                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ntd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.node.cloneNode</span><span class="jsdoc-syntax">(); </span><span class="jsdoc-comment">// which col/row should be 0..
557                 </span><span class="jsdoc-var">ntd.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'id'</span><span class="jsdoc-syntax">);
558                 </span><span class="jsdoc-var">ntd.style.width  </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">];
559                 </span><span class="jsdoc-var">ntd.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
560                 </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">] = { </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">ntd</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colspan </span><span class="jsdoc-syntax">: 1 , </span><span class="jsdoc-var">rowspan </span><span class="jsdoc-syntax">: 1   };
561             }
562
563         }
564         </span><span class="jsdoc-var">this.redrawAllCells</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">);
565
566     },
567
568
569
570     </span><span class="jsdoc-var">redrawAllCells</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">)
571     {
572
573
574         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tab </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.node.closest</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.closest</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">);
575         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ctr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tab.rows</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.parentNode</span><span class="jsdoc-syntax">;
576         </span><span class="jsdoc-var">Array.from</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tab.rows</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ri</span><span class="jsdoc-syntax">){
577
578             </span><span class="jsdoc-var">Array.from</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.cells</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ce</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ci</span><span class="jsdoc-syntax">){
579                 </span><span class="jsdoc-var">ce.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ce</span><span class="jsdoc-syntax">);
580             });
581             </span><span class="jsdoc-var">r.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">);
582         });
583         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= 0 ; </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">table.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">++) {
584             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tab.rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">];
585
586             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tab.ownerDocument.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">);
587             </span><span class="jsdoc-var">ctr.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">re</span><span class="jsdoc-syntax">);
588             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= 0 ; </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">++) {
589                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.cell </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) {
590                     </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
591                 }
592
593                 </span><span class="jsdoc-var">re.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.cell</span><span class="jsdoc-syntax">);
594
595                 </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
596             }
597         }
598
599     },
600     </span><span class="jsdoc-var">updateWidths </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">)
601     {
602         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= 0 ; </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">table.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">++) {
603
604             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= 0 ; </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">++) {
605                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.cell </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) {
606                     </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
607                 }
608
609                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[0] != </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.colspan </span><span class="jsdoc-syntax">&lt; 2) {
610                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.htmleditor.Block.factory</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.cell</span><span class="jsdoc-syntax">);
611                     </span><span class="jsdoc-var">el.width </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">])  +</span><span class="jsdoc-string">'%'</span><span class="jsdoc-syntax">;
612                     </span><span class="jsdoc-var">el.updateElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.node</span><span class="jsdoc-syntax">);
613                 }
614                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[0] != </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.colspan </span><span class="jsdoc-syntax">&gt; 1) {
615                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.htmleditor.Block.factory</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.cell</span><span class="jsdoc-syntax">);
616                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">= 0;
617                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
618                     </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.colspan</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">++) {
619                         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
620                             </span><span class="jsdoc-var">lv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
621                         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
622                             </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">lv</span><span class="jsdoc-syntax">;
623                         }
624                         </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
625                     }
626                     </span><span class="jsdoc-var">el.width </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">width  </span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'%'</span><span class="jsdoc-syntax">;
627                     </span><span class="jsdoc-var">el.updateElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.node</span><span class="jsdoc-syntax">);
628                 }
629                 </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// done
630             </span><span class="jsdoc-syntax">}
631         }
632     },
633     </span><span class="jsdoc-var">normalizeWidths </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">)
634     {
635         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[0] === </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) {
636             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nw </span><span class="jsdoc-syntax">= 100.0 / </span><span class="jsdoc-var">this.colWidths.length</span><span class="jsdoc-syntax">;
637             </span><span class="jsdoc-var">this.colWidths.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
638                 </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">nw</span><span class="jsdoc-syntax">;
639             },</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
640             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
641         }
642
643         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">missing </span><span class="jsdoc-syntax">= [];
644
645         </span><span class="jsdoc-var">this.colWidths.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
646             </span><span class="jsdoc-comment">//if you mix % and
647             </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">? 0 : (</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]+</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/[^0-9]+/g,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)*1;
648             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">add </span><span class="jsdoc-syntax">=  </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
649             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">add </span><span class="jsdoc-syntax">&gt; 0) {
650                 </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">+=</span><span class="jsdoc-var">add</span><span class="jsdoc-syntax">;
651                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
652             }
653             </span><span class="jsdoc-var">missing.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
654
655
656         },</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
657         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.colWidths.length</span><span class="jsdoc-syntax">;
658         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">missing.length</span><span class="jsdoc-syntax">) {
659             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">mult </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">nc </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">missing.length</span><span class="jsdoc-syntax">) / (1.0 * </span><span class="jsdoc-var">nc</span><span class="jsdoc-syntax">);
660             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">mult </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">;
661             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ew </span><span class="jsdoc-syntax">= (100 -</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">) / (1.0 * </span><span class="jsdoc-var">missing.length</span><span class="jsdoc-syntax">);
662             </span><span class="jsdoc-var">this.colWidths.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
663                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">&gt; 0) {
664                     </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">mult</span><span class="jsdoc-syntax">;
665                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
666                 }
667
668                 </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">ew</span><span class="jsdoc-syntax">;
669             }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
670             </span><span class="jsdoc-comment">// have to make up numbers..
671
672         </span><span class="jsdoc-syntax">}
673         </span><span class="jsdoc-comment">// now we should have all the widths..
674
675
676     </span><span class="jsdoc-syntax">},
677
678     </span><span class="jsdoc-var">shrinkColumn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
679     {
680         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">table </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toTableArray</span><span class="jsdoc-syntax">();
681         </span><span class="jsdoc-var">this.normalizeWidths</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">);
682         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">col </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">;
683         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">] * 0.8;
684         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nw </span><span class="jsdoc-syntax">&lt; 5) {
685             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
686         }
687         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">otherAdd </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]  * 0.2) / (</span><span class="jsdoc-var">this.colWidths.length </span><span class="jsdoc-syntax">-1);
688         </span><span class="jsdoc-var">this.colWidths.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
689             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">) {
690                  </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">nw</span><span class="jsdoc-syntax">;
691                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
692             }
693             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
694                 </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">otherAdd</span><span class="jsdoc-syntax">;
695             } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
696                 </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] += </span><span class="jsdoc-var">otherAdd</span><span class="jsdoc-syntax">;
697             }
698         }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
699         </span><span class="jsdoc-var">this.updateWidths</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">);
700
701     },
702     </span><span class="jsdoc-var">growColumn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
703     {
704         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">table </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toTableArray</span><span class="jsdoc-syntax">();
705         </span><span class="jsdoc-var">this.normalizeWidths</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">);
706         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">col </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">;
707         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">] * 1.2;
708         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nw </span><span class="jsdoc-syntax">&gt; 90) {
709             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
710         }
711         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">otherSub </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]  * 0.2) / (</span><span class="jsdoc-var">this.colWidths.length </span><span class="jsdoc-syntax">-1);
712         </span><span class="jsdoc-var">this.colWidths.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
713             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">) {
714                 </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">nw</span><span class="jsdoc-syntax">;
715                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
716             }
717             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
718                 </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">otherSub</span><span class="jsdoc-syntax">;
719             } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
720                 </span><span class="jsdoc-var">this.colWidths</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] -= </span><span class="jsdoc-var">otherSub</span><span class="jsdoc-syntax">;
721             }
722
723         }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
724         </span><span class="jsdoc-var">this.updateWidths</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">);
725
726     },
727     </span><span class="jsdoc-var">deleteRow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
728     {
729         </span><span class="jsdoc-comment">// delete this rows 'tr'
730         // if any of the cells in this row have a rowspan &gt; 1 &amp;&amp; row!= this row..
731         // then reduce the rowspan.
732         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">table </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toTableArray</span><span class="jsdoc-syntax">();
733         </span><span class="jsdoc-comment">// this.cellData.row;
734         </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.cellData.row</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.length </span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
735             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.cellData.row</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
736             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.row </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">this.cellData.row</span><span class="jsdoc-syntax">) {
737
738                 </span><span class="jsdoc-var">c.rowspan</span><span class="jsdoc-syntax">--;
739                 </span><span class="jsdoc-var">c.cell.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'rowspan'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c.rowspan</span><span class="jsdoc-syntax">);
740                 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
741             }
742             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.rowspan </span><span class="jsdoc-syntax">&gt; 1) {
743                 </span><span class="jsdoc-var">c.rowspan</span><span class="jsdoc-syntax">--;
744                 </span><span class="jsdoc-var">c.cell.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'rowspan'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c.rowspan</span><span class="jsdoc-syntax">);
745             }
746         }
747         </span><span class="jsdoc-var">table.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cellData.row</span><span class="jsdoc-syntax">,1);
748         </span><span class="jsdoc-var">this.redrawAllCells</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">);
749
750     },
751     </span><span class="jsdoc-var">deleteColumn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
752     {
753         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">table </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toTableArray</span><span class="jsdoc-syntax">();
754
755         </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">table.length </span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
756             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">];
757             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.col </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">) {
758                 </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.colspan</span><span class="jsdoc-syntax">--;
759             } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.colspan </span><span class="jsdoc-syntax">&gt; 1) {
760                 </span><span class="jsdoc-var">c.colspan</span><span class="jsdoc-syntax">--;
761                 </span><span class="jsdoc-var">c.cell.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'colspan'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c.colspan</span><span class="jsdoc-syntax">);
762             }
763             </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cellData.col</span><span class="jsdoc-syntax">,1);
764         }
765
766         </span><span class="jsdoc-var">this.redrawAllCells</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">);
767     }
768
769
770
771
772 })
773
774 </span></code></body></html>