UNPKG

braft-extensions

Version:

Extensions for Braft Editor

1,169 lines (994 loc) 126 kB
(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