| | |
| | | }, 'childNodes');
|
| | |
|
| | | cell = cloneNode(cell, false);
|
| | | setSpanVal(cell, 'rowspan', 1);
|
| | | setSpanVal(cell, 'colspan', 1);
|
| | | setSpanVal(cell, 'rowSpan', 1);
|
| | | setSpanVal(cell, 'colSpan', 1);
|
| | |
|
| | | if (formatNode) {
|
| | | cell.appendChild(formatNode);
|
| | |
| | | rowSpan = getSpanVal(cell, 'rowspan');
|
| | |
|
| | | if (colSpan > 1 || rowSpan > 1) {
|
| | | setSpanVal(cell, 'rowspan', 1);
|
| | | setSpanVal(cell, 'colspan', 1);
|
| | | setSpanVal(cell, 'rowSpan', 1);
|
| | | setSpanVal(cell, 'colSpan', 1);
|
| | |
|
| | | // Insert cells right
|
| | | for (i = 0; i < colSpan - 1; i++)
|
| | |
| | |
|
| | | // Set row/col span to start cell
|
| | | startCell = getCell(startX, startY).elm;
|
| | | setSpanVal(startCell, 'colspan', (endX - startX) + 1);
|
| | | setSpanVal(startCell, 'rowspan', (endY - startY) + 1);
|
| | | setSpanVal(startCell, 'colSpan', (endX - startX) + 1);
|
| | | setSpanVal(startCell, 'rowSpan', (endY - startY) + 1);
|
| | |
|
| | | // Remove other cells and add it's contents to the start cell
|
| | | for (y = startY; y <= endY; y++) {
|
| | |
| | | if (!before) {
|
| | | rowSpan = getSpanVal(cell, 'rowspan');
|
| | | if (rowSpan > 1) {
|
| | | setSpanVal(cell, 'rowspan', rowSpan + 1);
|
| | | setSpanVal(cell, 'rowSpan', rowSpan + 1);
|
| | | continue;
|
| | | }
|
| | | } else {
|
| | | // Check if cell above can be expanded
|
| | | if (posY > 0 && grid[posY - 1][x]) {
|
| | | otherCell = grid[posY - 1][x].elm;
|
| | | rowSpan = getSpanVal(otherCell, 'rowspan');
|
| | | rowSpan = getSpanVal(otherCell, 'rowSpan');
|
| | | if (rowSpan > 1) {
|
| | | setSpanVal(otherCell, 'rowspan', rowSpan + 1);
|
| | | setSpanVal(otherCell, 'rowSpan', rowSpan + 1);
|
| | | continue;
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | // Insert new cell into new row
|
| | | newCell = cloneCell(cell);
|
| | | setSpanVal(newCell, 'colspan', cell.colSpan);
|
| | | setSpanVal(newCell, 'colSpan', cell.colSpan);
|
| | |
|
| | | newRow.appendChild(newCell);
|
| | |
|
| | |
| | | fillLeftDown(posX, y, rowSpan - 1, colSpan);
|
| | | }
|
| | | } else
|
| | | setSpanVal(cell, 'colspan', cell.colSpan + 1);
|
| | | setSpanVal(cell, 'colSpan', cell.colSpan + 1);
|
| | |
|
| | | lastCell = cell;
|
| | | }
|
| | |
| | | each(grid, function(row) {
|
| | | var cell = row[x].elm, colSpan;
|
| | |
|
| | | colSpan = getSpanVal(cell, 'colspan');
|
| | | colSpan = getSpanVal(cell, 'colSpan');
|
| | |
|
| | | if (colSpan > 1)
|
| | | setSpanVal(cell, 'colspan', colSpan - 1);
|
| | | setSpanVal(cell, 'colSpan', colSpan - 1);
|
| | | else
|
| | | dom.remove(cell);
|
| | | });
|
| | |
| | |
|
| | | // Move down row spanned cells
|
| | | each(tr.cells, function(cell) {
|
| | | var rowSpan = getSpanVal(cell, 'rowspan');
|
| | | var rowSpan = getSpanVal(cell, 'rowSpan');
|
| | |
|
| | | if (rowSpan > 1) {
|
| | | setSpanVal(cell, 'rowspan', rowSpan - 1);
|
| | | setSpanVal(cell, 'rowSpan', rowSpan - 1);
|
| | | pos = getPos(cell);
|
| | | fillLeftDown(pos.x, pos.y, 1, 1);
|
| | | }
|
| | |
| | | cell = cell.elm;
|
| | |
|
| | | if (cell != lastCell) {
|
| | | rowSpan = getSpanVal(cell, 'rowspan');
|
| | | rowSpan = getSpanVal(cell, 'rowSpan');
|
| | |
|
| | | if (rowSpan <= 1)
|
| | | dom.remove(cell);
|
| | | else
|
| | | setSpanVal(cell, 'rowspan', rowSpan - 1);
|
| | | setSpanVal(cell, 'rowSpan', rowSpan - 1);
|
| | |
|
| | | lastCell = cell;
|
| | | }
|
| | |
| | | // Remove col/rowspans
|
| | | for (i = 0; i < cellCount; i++) {
|
| | | cell = row.cells[i];
|
| | | setSpanVal(cell, 'colspan', 1);
|
| | | setSpanVal(cell, 'rowspan', 1);
|
| | | setSpanVal(cell, 'colSpan', 1);
|
| | | setSpanVal(cell, 'rowSpan', 1);
|
| | | }
|
| | |
|
| | | // Needs more cells
|
| | |
| | | // Remove current selection
|
| | | sel = ed.selection.getSel();
|
| | |
|
| | | if (sel.removeAllRanges)
|
| | | sel.removeAllRanges();
|
| | | else
|
| | | sel.empty();
|
| | | try {
|
| | | if (sel.removeAllRanges)
|
| | | sel.removeAllRanges();
|
| | | else
|
| | | sel.empty();
|
| | | } catch (ex) {
|
| | | // IE9 might throw errors here
|
| | | }
|
| | |
|
| | | e.preventDefault();
|
| | | }
|