UNPKG

slate-edit-table

Version:

A Slate plugin to handle keyboard events in tables.

55 lines (41 loc) 1.34 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 }; } /** * 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;