slate-edit-table
Version:
A Slate plugin to handle keyboard events in tables.
55 lines (41 loc) • 1.34 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 }; }
/**
* Delete current column in a table
*/
function removeColumn(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.getColumnIndex();
}
var rows = table.nodes;
// Remove the cell from every row
if (pos.getWidth() > 1) {
rows.forEach(function (row) {
var cell = row.nodes.get(at);
change.removeNodeByKey(cell.key, { normalize: false });
});
} else {
// If last column, clear text in cells instead
rows.forEach(function (row) {
row.nodes.forEach(function (cell) {
cell.nodes.forEach(function (node) {
return (0, _clearCell2.default)(opts, change, cell);
});
});
});
}
// Replace the table
return change;
}
exports.default = removeColumn;