slate-edit-table
Version:
A Slate plugin to handle keyboard events in tables.
48 lines (35 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
require('slate');
var _utils = require('../utils');
var _clearCell = require('./clearCell');
var _clearCell2 = _interopRequireDefault(_clearCell);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Remove current row in a table. Clear it if last remaining row
*/
function removeRow(opts, change, at) {
var value = change.value;
var startKey = value.startKey;
var pos = _utils.TablePosition.create(opts, value.document, startKey);
var table = pos.table;
if (typeof at === 'undefined') {
at = pos.getRowIndex();
}
var row = table.nodes.get(at);
// Update table by removing the row
if (pos.getHeight() > 1) {
change.removeNodeByKey(row.key);
} else {
// If last remaining row, clear it instead
row.nodes.forEach(function (cell) {
cell.nodes.forEach(function (node) {
return (0, _clearCell2.default)(opts, change, cell);
});
});
}
return change;
}
exports.default = removeRow;