braft-extensions
Version:
Extensions for Braft Editor
1,169 lines (994 loc) • 126 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("react"), require("draft-js"), require("immutable"), require("braft-utils"), require("braft-editor"));
else if(typeof define === 'function' && define.amd)
define(["react", "draft-js", "immutable", "braft-utils", "braft-editor"], factory);
else {
var a = typeof exports === 'object' ? factory(require("react"), require("draft-js"), require("immutable"), require("braft-utils"), require("braft-editor")) : factory(root["react"], root["draft-js"], root["immutable"], root["braft-utils"], root["braft-editor"]);
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(window, function(__WEBPACK_EXTERNAL_MODULE__1__, __WEBPACK_EXTERNAL_MODULE__3__, __WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__6__, __WEBPACK_EXTERNAL_MODULE__39__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 83);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
module.exports = _assertThisInitialized;
/***/ }),
/* 1 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE__1__;
/***/ }),
/* 2 */
/***/ (function(module, exports) {
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
module.exports = _defineProperty;
/***/ }),
/* 3 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE__3__;
/***/ }),
/* 4 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE__4__;
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
var defineProperty = __webpack_require__(2);
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? Object(arguments[i]) : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
defineProperty(target, key, source[key]);
});
}
return target;
}
module.exports = _objectSpread;
/***/ }),
/* 6 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE__6__;
/***/ }),
/* 7 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rebuildTableBlocks", function() { return rebuildTableBlocks; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rebuildTableNode", function() { return rebuildTableNode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateAllTableBlocks", function() { return updateAllTableBlocks; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCellCountForInsert", function() { return getCellCountForInsert; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCellsInsideRect", function() { return getCellsInsideRect; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertCell", function() { return insertCell; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertCells", function() { return insertCells; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertTable", function() { return insertTable; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeTable", function() { return removeTable; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertColumn", function() { return insertColumn; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeColumn", function() { return removeColumn; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertRow", function() { return insertRow; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeRow", function() { return removeRow; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeCells", function() { return mergeCells; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "splitCell", function() { return splitCell; });
/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
/* harmony import */ var _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var draft_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
/* harmony import */ var draft_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(draft_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);
/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(immutable__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var braft_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6);
/* harmony import */ var braft_utils__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(braft_utils__WEBPACK_IMPORTED_MODULE_4__);
// 简易的值比较方法
var valueComparison = function valueComparison(value1, value2, operator) {
switch (operator) {
case '==':
return value1 == value2;
case '>=':
return value1 >= value2;
case '<=':
return value1 <= value2;
case '>':
return value1 > value2;
case '<':
return value1 < value2;
}
}; // 创建并返回一个单元格block
var createCellBlock = function createCellBlock(cell) {
cell = _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({
colSpan: 1,
rowSpan: 1,
text: ''
}, cell);
var _cell = cell,
tableKey = _cell.tableKey,
key = _cell.key,
colIndex = _cell.colIndex,
rowIndex = _cell.rowIndex,
colSpan = _cell.colSpan,
rowSpan = _cell.rowSpan,
text = _cell.text,
isHead = _cell.isHead;
return new draft_js__WEBPACK_IMPORTED_MODULE_2__["ContentBlock"]({
key: key || Object(draft_js__WEBPACK_IMPORTED_MODULE_2__["genKey"])(),
type: 'table-cell',
text: text,
data: immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Map({
tableKey: tableKey,
colIndex: colIndex,
rowIndex: rowIndex,
colSpan: colSpan,
rowSpan: rowSpan,
isHead: isHead
}),
characterList: immutable__WEBPACK_IMPORTED_MODULE_3___default.a.List(immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Repeat(draft_js__WEBPACK_IMPORTED_MODULE_2__["CharacterMetadata"].create(), text.length))
});
};
var createUnstyledBlock = function createUnstyledBlock() {
var key = Object(draft_js__WEBPACK_IMPORTED_MODULE_2__["genKey"])();
return [key, new draft_js__WEBPACK_IMPORTED_MODULE_2__["ContentBlock"]({
key: key,
type: 'unstyled',
text: '',
data: immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Map({}),
characterList: immutable__WEBPACK_IMPORTED_MODULE_3___default.a.List([])
})];
}; // 创建并返回一行单元格block
var createRowBlocks = function createRowBlocks(tableKey, rowIndex, rowLength) {
var firstCellText = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
var cells = immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Range(0, rowLength).map(function (index) {
var cellBlock = createCellBlock({
tableKey: tableKey,
colIndex: index,
rowIndex: rowIndex,
text: index === 0 ? firstCellText : ''
});
return [cellBlock.getKey(), cellBlock];
}).toArray();
return immutable__WEBPACK_IMPORTED_MODULE_3___default.a.OrderedMap(cells).toSeq();
}; // 将表格block更新到contentState
var updateTableBlocks = function updateTableBlocks(contentState, selection, focusKey, tableBlocks, tableKey) {
var contentBlocks = contentState.getBlockMap().toSeq();
var blocksBefore = contentBlocks.takeUntil(function (block) {
return block.getData().get('tableKey') === tableKey;
});
var blocksAfter = contentBlocks.skipUntil(function (block, key) {
var nextBlockKey = contentState.getKeyAfter(key);
return block.getData().get('tableKey') === tableKey && nextBlockKey && contentState.getBlockForKey(nextBlockKey).getData().get('tableKey') !== tableKey;
}).rest();
return contentState.merge({
blockMap: blocksBefore.concat(tableBlocks, blocksAfter).toOrderedMap(),
selectionBefore: selection,
selectionAfter: selection.merge({
anchorKey: focusKey,
anchorOffset: 0,
focusKey: focusKey,
focusOffset: 0,
hasFocus: false,
isBackward: false
})
});
}; // 使用简易值比较函数筛选符合条件的block
var findBlocks = function findBlocks(contentBlocks, propName, propValue) {
var operator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '==';
return contentBlocks.filter(function (block) {
return valueComparison(block.getData().get(propName), propValue, operator);
});
}; // 遍历以修正单元格的colIndex属性(表格blocks专用)
var rebuildTableBlocks = function rebuildTableBlocks(tableBlocks) {
var addonBlockData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var skipedCells = {};
var cellCountOfRow = [];
return tableBlocks.map(function (block) {
var blockData = block.getData();
var rowIndex = blockData.get('rowIndex');
var colSpan = blockData.get('colSpan') || 1;
var rowSpan = blockData.get('rowSpan') || 1;
cellCountOfRow[rowIndex] = cellCountOfRow[rowIndex] || 0;
cellCountOfRow[rowIndex]++;
var cellIndex = cellCountOfRow[rowIndex] - 1;
var colIndex = cellIndex;
var xx, yy;
for (; skipedCells[rowIndex] && skipedCells[rowIndex][colIndex]; colIndex++, cellCountOfRow[rowIndex]++) {
;
}
if (rowSpan > 1 || colSpan > 1) {
for (xx = rowIndex; xx < rowIndex + rowSpan; xx++) {
for (yy = colIndex; yy < colIndex + colSpan; yy++) {
skipedCells[xx] = skipedCells[xx] || {};
skipedCells[xx][yy] = true;
}
}
}
return block.merge({
'data': immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Map(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({}, blockData.toJS(), addonBlockData, {
colIndex: colIndex
}))
});
});
}; // 遍历以修正单元格的colSpan和rowSpan属性(表格DOM专用)
var rebuildTableNode = function rebuildTableNode(tableNode) {
var tableKey = Object(draft_js__WEBPACK_IMPORTED_MODULE_2__["genKey"])();
var skipedCells = {};
[].forEach.call(tableNode.rows, function (row, rowIndex) {
[].forEach.call(row.cells, function (cell, cellIndex) {
var colIndex = cellIndex;
var xx, yy;
for (; skipedCells[rowIndex] && skipedCells[rowIndex][colIndex]; colIndex++) {
/*_*/
}
var rowSpan = cell.rowSpan,
colSpan = cell.colSpan;
if (rowSpan > 1 || colSpan > 1) {
for (xx = rowIndex; xx < rowIndex + rowSpan; xx++) {
for (yy = colIndex; yy < colIndex + colSpan; yy++) {
skipedCells[xx] = skipedCells[xx] || {};
skipedCells[xx][yy] = true;
}
}
}
cell.innerHTML = cell.innerHTML.replace(/\n\s*$/, '');
cell.dataset.tableKey = tableKey;
cell.dataset.colIndex = colIndex;
cell.dataset.rowIndex = rowIndex;
});
});
};
var updateAllTableBlocks = function updateAllTableBlocks(editorState, tableKey, blockData) {
var selectionState = editorState.getSelection();
var contentState = editorState.getCurrentContent();
var contentBlocks = contentState.getBlockMap();
var tableBlocks = findBlocks(contentBlocks, 'tableKey', tableKey);
var nextTableBlocks = rebuildTableBlocks(tableBlocks, blockData);
var nextContentState = updateTableBlocks(contentState, editorState.getSelection(), selectionState.focusKey, nextTableBlocks, tableKey);
return draft_js__WEBPACK_IMPORTED_MODULE_2__["EditorState"].push(editorState, nextContentState, 'insert-table-row');
}; // 获取需要插入到某一行的单元格的数量
var getCellCountForInsert = function getCellCountForInsert(tableBlocks, rowIndex) {
return findBlocks(tableBlocks, 'rowIndex', rowIndex).reduce(function (count, block) {
return count + (block.getData().get('colSpan') || 1) * 1;
}, 0);
}; // 获取指定范围内的单元格block
var getCellsInsideRect = function getCellsInsideRect(editorState, tableKey, startLocation, endLocation) {
var _startLocation = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(startLocation, 2),
startColIndex = _startLocation[0],
startRowIndex = _startLocation[1];
var _endLocation = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(endLocation, 2),
endColIndex = _endLocation[0],
endRowIndex = _endLocation[1];
var leftColIndex = Math.min(startColIndex, endColIndex);
var rightColIndex = Math.max(startColIndex, endColIndex);
var upRowIndex = Math.min(startRowIndex, endRowIndex);
var downRowIndex = Math.max(startRowIndex, endRowIndex);
var matchedCellLocations = [];
for (var ii = leftColIndex; ii <= rightColIndex; ii++) {
for (var jj = upRowIndex; jj <= downRowIndex; jj++) {
matchedCellLocations.push([ii, jj]);
}
}
if (matchedCellLocations.length === 0) {
return immutable__WEBPACK_IMPORTED_MODULE_3___default.a.OrderedMap([]);
}
var contentState = editorState.getCurrentContent();
var contentBlocks = contentState.getBlockMap();
var tableBlocks = findBlocks(contentBlocks, 'tableKey', tableKey);
var matchedCellBlockKeys = [];
var spannedCellBlockKeys = [];
var matchedCellBlocks = immutable__WEBPACK_IMPORTED_MODULE_3___default.a.List([]);
var spannedCellBlocks = immutable__WEBPACK_IMPORTED_MODULE_3___default.a.List([]);
tableBlocks.forEach(function (block) {
var blockData = block.getData();
var blockKey = block.getKey();
var colIndex = blockData.get('colIndex');
var rowIndex = blockData.get('rowIndex');
var colSpan = blockData.get('colSpan');
var rowSpan = blockData.get('rowSpan');
matchedCellLocations.forEach(function (_ref) {
var _ref2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_ref, 2),
x = _ref2[0],
y = _ref2[1];
if (colIndex === x && rowIndex === y) {
matchedCellBlockKeys.indexOf(blockKey) === -1 && (matchedCellBlocks = matchedCellBlocks.push(block)) && matchedCellBlockKeys.push(blockKey);
(colSpan > 1 || rowSpan > 1) && spannedCellBlockKeys.indexOf(blockKey) === -1 && (spannedCellBlocks = spannedCellBlocks.push(block)) && spannedCellBlockKeys.push(blockKey);
} else if (colSpan > 1 || rowSpan > 1) {
if (colIndex <= x && colIndex + colSpan > x && rowIndex <= y && rowIndex + rowSpan > y) {
spannedCellBlockKeys.indexOf(blockKey) === -1 && (spannedCellBlocks = spannedCellBlocks.push(block)) && spannedCellBlockKeys.push(blockKey);
}
}
});
});
return {
cellBlocks: matchedCellBlocks.merge(spannedCellBlocks),
cellKeys: matchedCellBlockKeys.concat(spannedCellBlockKeys),
// todo: 去重复
spannedCellBlocks: spannedCellBlocks,
spannedCellBlockKeys: spannedCellBlockKeys
};
}; // 插入一个单元格block到表格的block列表中
var insertCell = function insertCell(tableBlocks, cell) {
var colIndex, rowIndex, cellBlock;
if (cell instanceof draft_js__WEBPACK_IMPORTED_MODULE_2__["ContentBlock"]) {
colIndex = cell.getData().get('colIndex');
rowIndex = cell.getData().get('rowIndex');
cellBlock = cell;
} else {
colIndex = cell.colIndex;
rowIndex = cell.rowIndex;
cellBlock = createCellBlock(cell);
}
var blocksBefore = tableBlocks.takeUntil(function (block) {
var blockRowIndex = block.getData().get('rowIndex');
var blockColIndex = block.getData().get('colIndex');
return blockColIndex >= colIndex && blockRowIndex === rowIndex || blockRowIndex > rowIndex;
});
var blocksAfter = tableBlocks.skipUntil(function (block) {
var blockRowIndex = block.getData().get('rowIndex');
var blockColIndex = block.getData().get('colIndex');
return blockColIndex >= colIndex && blockRowIndex === rowIndex || blockRowIndex > rowIndex;
});
var nextTableBlocks = blocksBefore.concat(immutable__WEBPACK_IMPORTED_MODULE_3___default.a.OrderedMap([[cellBlock.getKey(), cellBlock]]).toSeq(), blocksAfter);
return nextTableBlocks;
}; // 插入多个单元格block到表格的block列表中
var insertCells = function insertCells(tableBlocks) {
var cells = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
return cells.reduce(function (nextTableBlocks, cell) {
return insertCell(nextTableBlocks, cell);
}, tableBlocks);
}; // 插入表格
var insertTable = function insertTable(editorState) {
var columns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
var rows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;
if (braft_utils__WEBPACK_IMPORTED_MODULE_4__["ContentUtils"].selectionContainsStrictBlock(editorState)) {
return editorState;
}
var selectionState = editorState.getSelection();
var contentState = editorState.getCurrentContent();
var contentBlocks = contentState.getBlockMap();
var tableKey = Object(draft_js__WEBPACK_IMPORTED_MODULE_2__["genKey"])();
var cellBlocks = [createUnstyledBlock()];
for (var ii = 0; ii < rows; ii++) {
for (var jj = 0; jj < columns; jj++) {
var cellBlock = createCellBlock({
tableKey: tableKey,
colIndex: jj,
rowIndex: ii
});
cellBlocks.push([cellBlock.getKey(), cellBlock]);
}
}
cellBlocks.push(createUnstyledBlock());
var startKey = selectionState.getStartKey();
var currentBlock = contentState.getBlockForKey(startKey);
var blocksBefore = contentBlocks.toSeq().takeUntil(function (block) {
return block === currentBlock;
});
var blocksAfter = contentBlocks.toSeq().skipUntil(function (block) {
return block === currentBlock;
}).rest();
var tableBlocks = immutable__WEBPACK_IMPORTED_MODULE_3___default.a.OrderedMap(cellBlocks).toSeq();
var firstCellKey = cellBlocks[1][0];
var nextContentBlocks = blocksBefore.concat(immutable__WEBPACK_IMPORTED_MODULE_3___default.a.OrderedMap([[startKey, currentBlock]]).toSeq(), tableBlocks, blocksAfter).toOrderedMap();
var nextContentState = contentState.merge({
blockMap: nextContentBlocks,
selectionBefore: selectionState,
selectionAfter: selectionState.merge({
anchorKey: firstCellKey,
anchorOffset: selectionState.getStartOffset(),
focusKey: firstCellKey,
focusOffset: selectionState.getStartOffset(),
isBackward: false
})
});
return draft_js__WEBPACK_IMPORTED_MODULE_2__["EditorState"].push(editorState, nextContentState, 'insert-table');
}; // 删除整个表格
var removeTable = function removeTable(editorState, tableKey) {
if (!tableKey) {
return editorState;
}
var selectionState = editorState.getSelection();
var contentState = editorState.getCurrentContent();
var contentBlocks = contentState.getBlockMap();
var tableBlocks = findBlocks(contentBlocks, 'tableKey', tableKey);
var nextContentBlocks = contentBlocks.filter(function (block) {
if (block.getType() === 'table-cell' && block.getData().get('tableKey') === tableKey) {
return false;
} else {
return true;
}
});
var focusCellKey = (tableBlocks.first() ? contentState.getBlockBefore(tableBlocks.first().getKey()) || nextContentBlocks.first() : nextContentBlocks.first()).getKey();
var nextContentState = contentState.merge({
blockMap: nextContentBlocks,
selectionBefore: selectionState,
selectionAfter: selectionState.merge({
anchorKey: focusCellKey,
anchorOffset: selectionState.getStartOffset(),
focusKey: focusCellKey,
focusOffset: selectionState.getStartOffset(),
isBackward: false
})
});
return draft_js__WEBPACK_IMPORTED_MODULE_2__["EditorState"].push(editorState, nextContentState, 'remove-table');
}; // 插入一列单元格到表格中
var insertColumn = function insertColumn(editorState, tableKey, cellCounts, colIndex) {
var contentState = editorState.getCurrentContent();
var contentBlocks = contentState.getBlockMap();
var tableBlocks = findBlocks(contentBlocks, 'tableKey', tableKey);
var cellsToBeAdded = [];
if (colIndex === 0) {
for (var ii = 0; ii < cellCounts; ii++) {
cellsToBeAdded.push({
text: '',
colIndex: 0,
rowIndex: ii,
colSpan: 1,
rowSpan: 1,
tableKey: tableKey
});
}
}
var nextTableBlocks = tableBlocks.map(function (block) {
var blockData = block.getData().toJS();
var blockColIndex = blockData.colIndex,
blockRowIndex = blockData.rowIndex,
blockColSpan = blockData.colSpan,
blockRowSpan = blockData.rowSpan;
var nextColIndex = blockColIndex < colIndex ? blockColIndex : blockColIndex + 1;
var nextColSpan = blockColIndex < colIndex && blockColSpan > 1 && blockColIndex + blockColSpan > colIndex ? blockColSpan + 1 : blockColSpan;
var needUpdate = nextColIndex !== blockColIndex || nextColSpan !== blockColSpan;
if (blockColSpan === 1 && blockColIndex === colIndex - 1 || blockColSpan > 1 && blockColIndex + blockColSpan === colIndex) {
for (var jj = blockRowIndex; jj < blockRowIndex + blockRowSpan; jj++) {
cellsToBeAdded.push({
text: '',
colIndex: colIndex,
rowIndex: jj,
colSpan: 1,
rowSpan: 1,
tableKey: tableKey
});
}
}
return needUpdate ? block.merge({
data: immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Map(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({}, blockData, {
colIndex: nextColIndex,
colSpan: nextColSpan
}))
}) : block;
});
if (cellsToBeAdded.length === 0) {
return editorState;
}
var focusCellKey = cellsToBeAdded[0].key = Object(draft_js__WEBPACK_IMPORTED_MODULE_2__["genKey"])();
var nextContentState = updateTableBlocks(contentState, editorState.getSelection(), focusCellKey, insertCells(nextTableBlocks, cellsToBeAdded), tableKey);
return draft_js__WEBPACK_IMPORTED_MODULE_2__["EditorState"].push(editorState, nextContentState, 'insert-table-column');
}; // 从表格中移除指定的某一列单元格
var removeColumn = function removeColumn(editorState, tableKey, colIndex) {
var contentState = editorState.getCurrentContent();
var contentBlocks = contentState.getBlockMap().toSeq();
var tableBlocks = findBlocks(contentBlocks, 'tableKey', tableKey);
var cellsToBeAdded = findBlocks(tableBlocks, 'colIndex', colIndex).reduce(function (cellsToBeAdded, block) {
var _block$getData$toJS = block.getData().toJS(),
colIndex = _block$getData$toJS.colIndex,
rowIndex = _block$getData$toJS.rowIndex,
colSpan = _block$getData$toJS.colSpan,
rowSpan = _block$getData$toJS.rowSpan;
if (colSpan > 1) {
cellsToBeAdded.push({
text: block.getText(),
tableKey: tableKey,
colIndex: colIndex,
rowIndex: rowIndex,
colSpan: colSpan - 1,
rowSpan: rowSpan
});
}
return cellsToBeAdded;
}, []);
var nextTableBlocks = tableBlocks.filter(function (block) {
return block.getData().get('colIndex') * 1 !== colIndex;
}).map(function (block) {
var blockData = block.getData().toJS();
var blockColIndex = blockData.colIndex,
blockColSpan = blockData.colSpan;
var newColIndex = blockColIndex > colIndex ? blockColIndex - 1 : blockColIndex;
var newColSpan = blockColIndex < colIndex && blockColIndex + blockColSpan > colIndex ? blockColSpan - 1 : blockColSpan;
var needUpdate = newColIndex !== blockColIndex || newColSpan !== blockColSpan;
return needUpdate ? block.merge({
'data': _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({}, blockData, {
colIndex: newColIndex,
colSpan: newColSpan
})
}) : block;
});
var focusCellKey = (nextTableBlocks.first() || contentState.getBlockBefore(tableBlocks.first().getKey()) || contentState.getBlockAfter(tableBlocks.first().getKey())).getKey();
var nextContentState = updateTableBlocks(contentState, editorState.getSelection(), focusCellKey, insertCells(nextTableBlocks, cellsToBeAdded), tableKey);
return draft_js__WEBPACK_IMPORTED_MODULE_2__["EditorState"].push(editorState, nextContentState, 'remove-table-column');
}; // 插入一行单元格到表格中
var insertRow = function insertRow(editorState, tableKey, cellCounts, rowIndex, addonBlockData) {
var contentState = editorState.getCurrentContent();
var contentBlocks = contentState.getBlockMap().toSeq();
var tableBlocks = findBlocks(contentBlocks, 'tableKey', tableKey);
var blocksBefore = findBlocks(tableBlocks, 'rowIndex', rowIndex, '<').map(function (block) {
var blockData = block.getData().toJS();
var blockRowIndex = blockData.rowIndex,
blockRowSpan = blockData.rowSpan;
if (blockRowIndex > rowIndex) {
return block;
} else {
var needUpdate = blockRowSpan && blockRowIndex + blockRowSpan > rowIndex;
var newRowSpan = needUpdate ? blockRowSpan * 1 + 1 : blockRowSpan;
return block.merge({
'data': immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Map(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({}, blockData, {
rowSpan: newRowSpan
}))
});
}
});
var blocksAfter = findBlocks(tableBlocks, 'rowIndex', rowIndex, '>=').map(function (block) {
var blockData = block.getData().toJS();
return block.merge({
'data': immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Map(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({}, blockData, {
rowIndex: blockData.rowIndex * 1 + 1
}))
});
});
var colCellLength = getCellCountForInsert(tableBlocks, rowIndex);
var rowBlocks = createRowBlocks(tableKey, rowIndex, colCellLength || cellCounts);
var focusCellKey = rowBlocks.first().getKey();
var nextTableBlocks = rebuildTableBlocks(blocksBefore.concat(rowBlocks, blocksAfter), addonBlockData);
var nextContentState = updateTableBlocks(contentState, editorState.getSelection(), focusCellKey, nextTableBlocks, tableKey);
return draft_js__WEBPACK_IMPORTED_MODULE_2__["EditorState"].push(editorState, nextContentState, 'insert-table-row');
}; // 从表格中移除指定的某一行单元格
var removeRow = function removeRow(editorState, tableKey, rowIndex, addonBlockData) {
var contentState = editorState.getCurrentContent();
var contentBlocks = contentState.getBlockMap().toSeq();
var tableBlocks = findBlocks(contentBlocks, 'tableKey', tableKey);
var blocksBefore = findBlocks(tableBlocks, 'rowIndex', rowIndex, '<').map(function (block) {
var blockData = block.getData().toJS();
var blockRowIndex = blockData.rowIndex,
blockRowSpan = blockData.rowSpan;
if (blockRowIndex > rowIndex) {
return block;
} else {
var needUpdate = blockRowSpan && blockRowIndex + blockRowSpan > rowIndex;
var newRowSpan = needUpdate ? blockRowSpan * 1 - 1 : blockRowSpan;
return block.merge({
'data': immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Map(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({}, blockData, {
rowSpan: newRowSpan
}))
});
}
});
var blocksAfter = findBlocks(tableBlocks, 'rowIndex', rowIndex, '>').map(function (block) {
var blockData = block.getData().toJS();
return block.merge({
'data': immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Map(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({}, blockData, {
rowIndex: blockData.rowIndex * 1 - 1
}))
});
});
var cellsToBeAdded = findBlocks(tableBlocks, 'rowIndex', rowIndex).reduce(function (cellsToBeAdded, block) {
var _block$getData$toJS2 = block.getData().toJS(),
colIndex = _block$getData$toJS2.colIndex,
rowIndex = _block$getData$toJS2.rowIndex,
colSpan = _block$getData$toJS2.colSpan,
rowSpan = _block$getData$toJS2.rowSpan;
if (rowSpan > 1) {
cellsToBeAdded.push({
text: block.getText(),
tableKey: tableKey,
colIndex: colIndex,
rowIndex: rowIndex,
colSpan: colSpan,
rowSpan: rowSpan - 1
});
}
return cellsToBeAdded;
}, []);
var focusCellKey = (blocksAfter.first() || blocksBefore.last() || contentBlocks.first()).getKey();
var nextTableBlocks = rebuildTableBlocks(insertCells(blocksBefore.concat(blocksAfter), cellsToBeAdded), addonBlockData);
var nextContentState = updateTableBlocks(contentState, editorState.getSelection(), focusCellKey, nextTableBlocks, tableKey, true);
return draft_js__WEBPACK_IMPORTED_MODULE_2__["EditorState"].push(editorState, nextContentState, 'remove-table-row');
}; // 合并单元格
var mergeCells = function mergeCells(editorState, tableKey, cellKeys) {
var contentState = editorState.getCurrentContent();
var contentBlocks = contentState.getBlockMap();
var cellBlocksData = [];
var mergedText = '';
var tableBlocks = findBlocks(contentBlocks, 'tableKey', tableKey).filter(function (block) {
if (~cellKeys.indexOf(block.getKey())) {
mergedText += block.getText();
cellBlocksData.push(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({
key: block.getKey()
}, block.getData().toJS()));
return false;
} else {
return true;
}
});
var sortedCellBlocksData = cellBlocksData.sort(function (prev, next) {
return next.colIndex + next.rowIndex - (prev.colIndex + prev.rowIndex);
});
var firstCellData = sortedCellBlocksData.slice(-1)[0];
var lastCellData = sortedCellBlocksData[0];
var mergedCell = contentState.getBlockForKey(firstCellData.key).merge({
'text': mergedText,
'data': immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Map(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({}, firstCellData, {
colSpan: lastCellData.colIndex - firstCellData.colIndex + 1,
rowSpan: lastCellData.rowIndex - firstCellData.rowIndex + 1
})),
characterList: immutable__WEBPACK_IMPORTED_MODULE_3___default.a.List(immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Repeat(draft_js__WEBPACK_IMPORTED_MODULE_2__["CharacterMetadata"].create(), mergedText.length))
});
var nextContentState = updateTableBlocks(contentState, editorState.getSelection(), firstCellData.key, insertCell(tableBlocks, mergedCell), tableKey);
return draft_js__WEBPACK_IMPORTED_MODULE_2__["EditorState"].push(editorState, nextContentState, 'merge-table-cell');
}; // 拆分单元格
var splitCell = function splitCell(editorState, tableKey, cellKey) {
var contentState = editorState.getCurrentContent();
var contentBlocks = contentState.getBlockMap();
var cellsToBeAdded = [];
var tableBlocks = findBlocks(contentBlocks, 'tableKey', tableKey).map(function (block) {
if (block.getKey() === cellKey) {
var blockData = block.getData().toJS();
var colIndex = blockData.colIndex,
rowIndex = blockData.rowIndex,
colSpan = blockData.colSpan,
rowSpan = blockData.rowSpan;
if (colSpan === 1 && rowSpan === 1) {
return block;
}
for (var ii = colIndex; ii < colIndex + colSpan; ii++) {
for (var jj = rowIndex; jj < rowIndex + rowSpan; jj++) {
if (ii !== colIndex || jj !== rowIndex) {
cellsToBeAdded.push({
text: '',
tableKey: tableKey,
colIndex: ii,
rowIndex: jj,
colSpan: 1,
rowSpan: 1
});
}
}
}
return block.merge({
'data': immutable__WEBPACK_IMPORTED_MODULE_3___default.a.Map(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_1___default()({}, blockData, {
colSpan: 1,
rowSpan: 1
}))
});
} else {
return block;
}
});
var nextContentState = updateTableBlocks(contentState, editorState.getSelection(), cellKey, insertCells(tableBlocks, cellsToBeAdded), tableKey);
return draft_js__WEBPACK_IMPORTED_MODULE_2__["EditorState"].push(editorState, nextContentState, 'merge-table-cell');
};
/***/ }),
/* 8 */
/***/ (function(module, exports) {
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
module.exports = _classCallCheck;
/***/ }),
/* 9 */
/***/ (function(module, exports) {
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
module.exports = _createClass;
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
var _typeof = __webpack_require__(17);
var assertThisInitialized = __webpack_require__(0);
function _possibleConstructorReturn(self, call) {
if (call && (_typeof(call) === "object" || typeof call === "function")) {
return call;
}
return assertThisInitialized(self);
}
module.exports = _possibleConstructorReturn;
/***/ }),
/* 11 */
/***/ (function(module, exports) {
function _getPrototypeOf(o) {
module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
module.exports = _getPrototypeOf;
/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
var setPrototypeOf = __webpack_require__(18);
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}
});
if (superClass) setPrototypeOf(subClass, superClass);
}
module.exports = _inherits;
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
var arrayWithHoles = __webpack_require__(23);
var iterableToArrayLimit = __webpack_require__(24);
var nonIterableRest = __webpack_require__(25);
function _slicedToArray(arr, i) {
return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();
}
module.exports = _slicedToArray;
/***/ }),
/* 14 */,
/* 15 */,
/* 16 */
/***/ (function(module, exports, __webpack_require__) {
var arrayWithoutHoles = __webpack_require__(26);
var iterableToArray = __webpack_require__(27);
var nonIterableSpread = __webpack_require__(28);
function _toConsumableArray(arr) {
return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();
}
module.exports = _toConsumableArray;
/***/ }),
/* 17 */
/***/ (function(module, exports) {
function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
module.exports = _typeof = function _typeof(obj) {
return typeof obj;
};
} else {
module.exports = _typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
return _typeof(obj);
}
module.exports = _typeof;
/***/ }),
/* 18 */
/***/ (function(module, exports) {
function _setPrototypeOf(o, p) {
module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
module.exports = _setPrototypeOf;
/***/ }),
/* 19 */
/***/ (function(module, exports) {
var g;
// This works in non-strict mode
g = (function() {
return this;
})();
try {
// This works if eval is allowed (see CSP)
g = g || new Function("return this")();
} catch (e) {
// This works if the window reference is available
if (typeof window === "object") g = window;
}
// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}
module.exports = g;
/***/ }),
/* 20 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(setImmediate) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getLanguage; });
/* unused harmony export Table */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return tableRenderMap; });
/* harmony import */ var _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);
/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);
/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10);
/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11);
/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12);
/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0);
/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2);
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(4);
/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(immutable__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _languages__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(21);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(7);
/* harmony import */ var braft_editor__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(39);
/* harmony import */ var braft_editor__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(braft_editor__WEBPACK_IMPORTED_MODULE_13__);
var getIndexFromEvent = function getIndexFromEvent(event) {
var ignoredTarget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
if (!isNaN(event)) {
return event * 1;
} else if (ignoredTarget && event && event.target && event.target.dataset.role === ignoredTarget) {
return false;
} else if (event && event.currentTarget && event.currentTarget.dataset.index) {
return event.currentTarget.dataset.index * 1;
}
return false;
};
var getLanguage = function getLanguage(editor) {
var lang = editor.editorProps.language;
if (typeof lang === 'function') {
return lang(_languages__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"], 'braft-table');
} else {
return _languages__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"][lang] || _languages__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"]['zh'];
}
};
var Table =
/*#__PURE__*/
function (_React$Component) {
_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6___default()(Table, _React$Component);
function Table(props) {
var _this;
_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, Table);
_this = _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default()(this, _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(Table).call(this, props));
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_this)), "state", {
tableRows: [],
colToolHandlers: [],
rowToolHandlers: [],
defaultColWidth: 0,
colResizing: false,
colResizeOffset: 0,
selectedCells: [],
selectedRowIndex: -1,
selectedColumnIndex: -1,
setFirstRowAsHead: false,
dragSelecting: false,
draggingRectBounding: null,
cellsMergeable: false,
cellSplittable: false,
contextMenuPosition: null
});
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_this)), "__tableRef", null);
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_this)), "__colRefs", {});
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_this)), "__rowRefs", {});
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_this)), "__colResizeIndex", 0);
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_this)), "__colResizeStartAt", 0);
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_this)), "__startCellKey", null);
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_this)), "__endCellKey", null);
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_this)), "__dragSelecting", false);
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7___default()(_babel_runtime_helpers_assertThisInitialized__W