UNPKG

slate-edit-table

Version:

A Slate plugin to handle keyboard events in tables.

48 lines (35 loc) 1.15 kB
'use strict'; 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;