summernote-webpack
Version:
Super simple WYSIWYG editor
60 lines (54 loc) • 1.46 kB
JavaScript
define([
'summernote/base/core/dom',
'summernote/base/core/range',
'summernote/base/core/list'
], function (dom, range, list) {
/**
* @class editing.Table
*
* Table
*
*/
var Table = function () {
/**
* handle tab key
*
* @param {WrappedRange} rng
* @param {Boolean} isShift
*/
this.tab = function (rng, isShift) {
var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
var table = dom.ancestor(cell, dom.isTable);
var cells = dom.listDescendant(table, dom.isCell);
var nextCell = list[isShift ? 'prev' : 'next'](cells, cell);
if (nextCell) {
range.create(nextCell, 0).select();
}
};
/**
* create empty table element
*
* @param {Number} rowCount
* @param {Number} colCount
* @return {Node}
*/
this.createTable = function (colCount, rowCount, options) {
var tds = [], tdHTML;
for (var idxCol = 0; idxCol < colCount; idxCol++) {
tds.push('<td>' + dom.blank + '</td>');
}
tdHTML = tds.join('');
var trs = [], trHTML;
for (var idxRow = 0; idxRow < rowCount; idxRow++) {
trs.push('<tr>' + tdHTML + '</tr>');
}
trHTML = trs.join('');
var $table = $('<table>' + trHTML + '</table>');
if (options && options.tableClassName) {
$table.addClass(options.tableClassName);
}
return $table[0];
};
};
return Table;
});