vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
1,385 lines (1,330 loc) • 47.9 kB
JavaScript
;
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.cancelColumnFixed = cancelColumnFixed;
exports.cellAutofill = cellAutofill;
exports.clsName = clsName;
exports.getBodyContextmenuOptionCollection = getBodyContextmenuOptionCollection;
exports.getColKeysByFixedType = getColKeysByFixedType;
exports.getColKeysByFixedTypeWithinColKeys = getColKeysByFixedTypeWithinColKeys;
exports.getColKeysByHeaderColumn = getColKeysByHeaderColumn;
exports.getColKeysByRangeColKeys = getColKeysByRangeColKeys;
exports.getColumnByColkey = getColumnByColkey;
exports.getDomResizeObserverCompKey = getDomResizeObserverCompKey;
exports.getFixedTotalWidthByColumnKey = getFixedTotalWidthByColumnKey;
exports.getHeaderContextmenuOptionCollection = getHeaderContextmenuOptionCollection;
exports.getLeftmostColKey = getLeftmostColKey;
exports.getNextColKey = getNextColKey;
exports.getNotFixedTotalWidthByColumnKey = getNotFixedTotalWidthByColumnKey;
exports.getPreviewColKey = getPreviewColKey;
exports.getRightmostColKey = getRightmostColKey;
exports.getRowKey = getRowKey;
exports.getRowKeysByRangeRowKeys = getRowKeysByRangeRowKeys;
exports.getSelectionRangeData = getSelectionRangeData;
exports.getSelectionRangeIndexes = getSelectionRangeIndexes;
exports.getSelectionRangeKeys = getSelectionRangeKeys;
exports.getTotalWidthByColKeys = getTotalWidthByColKeys;
exports.initGroupColumns = initGroupColumns;
exports.isCellInSelectionRange = isCellInSelectionRange;
exports.isClearSelectionByBodyCellRightClick = isClearSelectionByBodyCellRightClick;
exports.isContextmenuPanelClicked = isContextmenuPanelClicked;
exports.isExistGivenFixedColKey = isExistGivenFixedColKey;
exports.isExistNotFixedColKey = isExistNotFixedColKey;
exports.isLastColumnByColKey = isLastColumnByColKey;
exports.isLastRowByRowKey = isLastRowByRowKey;
exports.isOperationColumn = isOperationColumn;
exports.recursiveRemoveColumnByKey = recursiveRemoveColumnByKey;
exports.setBodyContextmenuOptions = setBodyContextmenuOptions;
exports.setColumnFixed = setColumnFixed;
exports.setHeaderContextmenuOptions = setHeaderContextmenuOptions;
var _constant = require("./constant");
var _constant2 = require("../utils/constant");
var _index = require("../utils/index");
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* eslint-disable brace-style */
// import { getRandomId } from "../../../src/utils/random";
/**
* @clsName
* @desc get class name
* @param {string} cls - class
*/
function clsName(cls) {
return _constant.PREFIX_CLS + cls;
}
/**
* @getRowKey
* @desc get row key
* @param {Object} rowData - rowData
* @param {string} rowKeyFieldName - row key field name
*/
function getRowKey(rowData, rowKeyFieldName) {
var result = null;
if (rowData && rowKeyFieldName) {
result = rowData[rowKeyFieldName];
}
return result;
}
/**
* @getColumnByColkey
* @desc get column by col key
* @param {string} colKey - column key
*/
function getColumnByColkey(colKey, colgroups) {
if (colKey) {
return colgroups.find(function (x) {
return x.key === colKey;
});
}
return null;
}
/**
* @isLastColumnByColKey
* @desc is last column by column key
* @param {string} colKey - column key
*/
function isLastColumnByColKey(colKey, colgroups) {
if (!(0, _index.isEmptyValue)(colKey) && !(0, _index.isEmptyArray)(colgroups)) {
return colgroups[colgroups.length - 1].key === colKey;
}
return false;
}
/**
* @isOperationColumn
* @desc is operation column
* @param {string} colKey - column key
* @param {arrat<object>} colgroups - column key
*/
function isOperationColumn(colKey, colgroups) {
if (!(0, _index.isEmptyValue)(colKey) && !(0, _index.isEmptyArray)(colgroups)) {
var firstCol = colgroups[0];
// console.log(72,firstCol)
if (firstCol.key === colKey && firstCol.operationColumn) {
return true;
}
}
return false;
}
/**
* @isLastRowByRowKey
* @desc is last row by row key
* @param {string} rowKey - row key
*/
function isLastRowByRowKey(rowKey, allRowKeys) {
if (!(0, _index.isEmptyValue)(rowKey) && !(0, _index.isEmptyArray)(allRowKeys)) {
return allRowKeys[allRowKeys.length - 1] === rowKey;
}
return false;
}
/**
* @getDomResizeObserverCompKey
* @desc get dom resize observer comp key
* @param {Any} originalKey - original key
* @param {Number} columnsOptionResetTime - columns option change time
*/
function getDomResizeObserverCompKey(originalKey, columnsOptionResetTime) {
var result = originalKey;
if (result || result === 0) {
result = originalKey + '@' + columnsOptionResetTime;
}
return result;
}
/**
* @recursiveRemoveColumnByKey
* @desc recursive remove column key
* @param {object} columns - deep clone column
* @param {any} key - column key
*/
function recursiveRemoveColumnByKey(columns, key) {
return columns.filter(function (item) {
if ('children' in item) {
item.children = recursiveRemoveColumnByKey(item.children, key);
}
return item.key !== key;
});
}
/**
* @getFixedTotalWidthByColumnKey
* @desc get fixed total width by column key
* @param {object} colgroups - columns info
* @param {any} colKey - column key
* @param {string} fixed - left|right
*/
function getFixedTotalWidthByColumnKey(_ref) {
var colgroups = _ref.colgroups,
colKey = _ref.colKey,
fixed = _ref.fixed;
var currentIndex = colgroups.findIndex(function (x) {
return x.key === colKey;
});
var result = 0;
if (fixed === _constant.COLUMN_FIXED_TYPE.LEFT) {
// 只计算左列固定的
result = colgroups.reduce(function (total, currentVal, index) {
return index < currentIndex &&
// eslint-disable-next-line eqeqeq
currentVal.fixed == _constant.COLUMN_FIXED_TYPE.LEFT ? currentVal._realTimeWidth + total : total;
}, 0);
} else if (fixed === _constant.COLUMN_FIXED_TYPE.RIGHT) {
// 只计算右列固定的
result = colgroups.reduce(function (total, currentVal, index) {
return index > currentIndex && currentVal.fixed === _constant.COLUMN_FIXED_TYPE.RIGHT ? currentVal._realTimeWidth + total : total;
}, 0);
}
return result;
}
/**
* @getNotFixedTotalWidthByColumnKey
* @desc get not fixed total width by column key
* @param {object} colgroups - 列信息
* @param {any} colKey - column key
* @param {string} direction - left|right
*/
function getNotFixedTotalWidthByColumnKey(_ref2) {
var colgroups = _ref2.colgroups,
colKey = _ref2.colKey,
fixed = _ref2.fixed;
var currentIndex = colgroups.findIndex(function (x) {
return x.key === colKey;
});
var result = 0;
if (fixed === _constant.COLUMN_FIXED_TYPE.LEFT) {
// 只计算左侧非固定列
result = colgroups.reduce(function (total, currentVal, index) {
return index < currentIndex && !currentVal.fixed ? currentVal._realTimeWidth + total : total;
}, 0);
} else if (fixed === _constant.COLUMN_FIXED_TYPE.RIGHT) {
// 只计算右侧非固定列
result = colgroups.reduce(function (total, currentVal, index) {
return index > currentIndex && !currentVal.fixed ? currentVal._realTimeWidth + total : total;
}, 0);
}
return result;
}
/**
* @getTotalWidthByColKeys
* @desc get total width by collumn keys
* @param {array<T>} colKeys
* @param {array<object>} colgroups
* @return {number} width
*/
function getTotalWidthByColKeys(_ref3) {
var colKeys = _ref3.colKeys,
colgroups = _ref3.colgroups;
var result = colgroups.reduce(function (total, currentVal, index) {
return colKeys.indexOf(currentVal.key) > -1 ? currentVal._realTimeWidth + total : total;
}, 0);
return result;
}
/**
* @initGroupColumns
* @desc int group columns
* @param {array} cloneColumns - clone columns
* @return {
isGroupHeader,
colgroups,
groupColumns
}
*/
function initGroupColumns(cloneColumns) {
var colgroups = [];
var groupColumns = [];
// set column level
var maxLevel = 1;
var setColumnLevel = function setColumnLevel(column, parent) {
if (parent) {
column._level = parent._level + 1;
if (maxLevel < column._level) {
maxLevel = column._level;
}
}
if (column.children) {
column.children.forEach(function (item) {
item.fixed = column.fixed;
setColumnLevel(item, column);
});
}
};
cloneColumns.forEach(function (column) {
column._level = 1;
setColumnLevel(column);
});
// set colspan and rowspan and keys
var setColspanAndRowspanAndKeys = function setColspanAndRowspanAndKeys(column) {
if (column.children) {
var keys = '';
var colspan = 0;
column.children.forEach(function (item) {
setColspanAndRowspanAndKeys(item);
colspan += item._colspan;
keys += item._keys.endsWith('|') ? item._keys : item._keys + '|';
});
column._keys = keys;
column._colspan = colspan;
column._rowspan = 1;
} else {
column._keys = column.key;
column._colspan = 1;
column._rowspan = maxLevel - column._level + 1;
}
};
cloneColumns.forEach(function (column) {
setColspanAndRowspanAndKeys(column);
});
// init groupColumns
for (var i = 0; i < maxLevel; i++) {
groupColumns.push([]);
}
// set colgroups and groupColumns
var setColgroupsAndGroupColumns = function setColgroupsAndGroupColumns(column) {
// column has children || column key is not empty
if (!(0, _index.isEmptyArray)(column.children) || !(0, _index.isEmptyValue)(column.key)) {
// set groupColumns
var groupColumn = _extends({}, (_objectDestructuringEmpty(column), column));
groupColumns[column._level - 1].push(groupColumn);
if (column.children) {
column.children.forEach(function (item) {
setColgroupsAndGroupColumns(item);
});
} else {
// set colgroups
var colgroup = _extends({}, (_objectDestructuringEmpty(column), column));
colgroup._realTimeWidth = colgroup.width;
colgroups.push(colgroup);
}
}
};
cloneColumns.forEach(function (column) {
setColgroupsAndGroupColumns(column);
});
return {
// set is group header
isGroupHeader: maxLevel > 1,
// set colgroups
colgroups: colgroups,
// set groupColumns
groupColumns: groupColumns
};
}
// get header contextmenu option collection
function getHeaderContextmenuOptionCollection(t) {
return [{
type: _constant.CONTEXTMENU_NODE_TYPES.SEPARATOR
}, {
label: t('cut'),
type: _constant.CONTEXTMENU_NODE_TYPES.CUT
}, {
label: t('copy'),
type: _constant.CONTEXTMENU_NODE_TYPES.COPY
},
// {
// label: t("paste"),
// type: CONTEXTMENU_NODE_TYPES.PASTE,
// },
{
label: t('removeColumn'),
type: _constant.CONTEXTMENU_NODE_TYPES.REMOVE_COLUMN
}, {
label: t('emptyColumn'),
type: _constant.CONTEXTMENU_NODE_TYPES.EMPTY_COLUMN
}, {
label: t('hideColumn'),
type: _constant.CONTEXTMENU_NODE_TYPES.HIDE_COLUMN
}, {
label: t('leftFixedColumnTo'),
type: _constant.CONTEXTMENU_NODE_TYPES.LEFT_FIXED_COLUMN_TO
}, {
label: t('cancelLeftFixedColumnTo'),
type: _constant.CONTEXTMENU_NODE_TYPES.CANCEL_LEFT_FIXED_COLUMN_TO
}, {
label: t('rightFixedColumnTo'),
type: _constant.CONTEXTMENU_NODE_TYPES.RIGHT_FIXED_COLUMN_TO
}, {
label: t('cancelRightFixedColumnTo'),
type: _constant.CONTEXTMENU_NODE_TYPES.CANCEL_RIGHT_FIXED_COLUMN_TO
}];
}
// get body contextmenu option collection
function getBodyContextmenuOptionCollection(t) {
return [{
type: _constant.CONTEXTMENU_NODE_TYPES.SEPARATOR
}, {
label: t('cut'),
type: _constant.CONTEXTMENU_NODE_TYPES.CUT
}, {
label: t('copy'),
type: _constant.CONTEXTMENU_NODE_TYPES.COPY
},
// {
// label: t("paste"),
// type: CONTEXTMENU_NODE_TYPES.PASTE,
// },
{
label: t('insertRowAbove'),
type: _constant.CONTEXTMENU_NODE_TYPES.INSERT_ROW_ABOVE
}, {
label: t('insertRowBelow'),
type: _constant.CONTEXTMENU_NODE_TYPES.INSERT_ROW_BELOW
}, {
label: t('removeRow'),
type: _constant.CONTEXTMENU_NODE_TYPES.REMOVE_ROW
}, {
label: t('emptyRow'),
type: _constant.CONTEXTMENU_NODE_TYPES.EMPTY_ROW
}, {
label: t('removeColumn'),
type: _constant.CONTEXTMENU_NODE_TYPES.REMOVE_COLUMN
}, {
label: t('emptyCell'),
type: _constant.CONTEXTMENU_NODE_TYPES.EMPTY_CELL
}];
}
/***
* @setHeaderContextmenuOptions
* @desc set header contextmenu options
* @param {array<object>} column
* @param {array<object>} contextmenuHeaderOption
* @param {object} cellSelectionRangeData
* @param {array<object>} colgroups
* @param {object} headerIndicatorColKeys
* @param {boolean} enableHeaderContextmenu
* @param {boolean} t locale
* @return headerContextmenuOptions
*/
function setHeaderContextmenuOptions(_ref4) {
var column = _ref4.column,
contextmenuHeaderOption = _ref4.contextmenuHeaderOption,
cellSelectionRangeData = _ref4.cellSelectionRangeData,
colgroups = _ref4.colgroups,
allRowKeys = _ref4.allRowKeys,
headerIndicatorColKeys = _ref4.headerIndicatorColKeys,
enableHeaderContextmenu = _ref4.enableHeaderContextmenu,
t = _ref4.t;
var result = [];
if (enableHeaderContextmenu) {
var selectionRangeKeys = getSelectionRangeKeys({
cellSelectionRangeData: cellSelectionRangeData
});
var selectionRangeIndexes = getSelectionRangeIndexes({
cellSelectionRangeData: cellSelectionRangeData,
colgroups: colgroups,
allRowKeys: allRowKeys
});
var isOperationCol = isOperationColumn(column.key, colgroups);
var colCount = selectionRangeIndexes.endColIndex - selectionRangeIndexes.startColIndex + 1;
var contextmenus = contextmenuHeaderOption.contextmenus,
beforeShow = contextmenuHeaderOption.beforeShow;
var isWholeColSelection = !(0, _index.isEmptyValue)(headerIndicatorColKeys.startColKey);
var leftFixedColKeys = getColKeysByFixedType({
fixedType: _constant.COLUMN_FIXED_TYPE.LEFT,
colgroups: colgroups,
isExcludeOperationColumn: true
});
var rightFixedColKeys = getColKeysByFixedType({
fixedType: _constant.COLUMN_FIXED_TYPE.RIGHT,
colgroups: colgroups,
isExcludeOperationColumn: true
});
if ((0, _index.isFunction)(beforeShow)) {
beforeShow({
isWholeColSelection: isWholeColSelection,
selectionRangeKeys: selectionRangeKeys,
selectionRangeIndexes: selectionRangeIndexes
});
}
var headerContextmenuOptionCollection = getHeaderContextmenuOptionCollection(t);
contextmenus.forEach(function (contextmenu) {
var contentmenuCollectionItem = headerContextmenuOptionCollection.find(function (x) {
return x.type === contextmenu.type;
});
if (contentmenuCollectionItem) {
var isContinue = true;
// empty column. 选中整列时支持
if (contentmenuCollectionItem.type === _constant.CONTEXTMENU_NODE_TYPES.EMPTY_COLUMN) {
if (isWholeColSelection) {
contentmenuCollectionItem.label = contentmenuCollectionItem.label.replace('$1', colCount);
} else {
isContinue = false;
}
// eslint-disable-next-line brace-style
}
// left fixed column to
else if (contentmenuCollectionItem.type === _constant.CONTEXTMENU_NODE_TYPES.LEFT_FIXED_COLUMN_TO) {
//
if (isOperationCol) {
contentmenuCollectionItem.disabled = true;
}
}
// calcel left fixed column to
else if (contentmenuCollectionItem.type === _constant.CONTEXTMENU_NODE_TYPES.CANCEL_LEFT_FIXED_COLUMN_TO) {
if (leftFixedColKeys.length < 1) {
contentmenuCollectionItem.disabled = true;
}
}
// right fixed column to
else if (contentmenuCollectionItem.type === _constant.CONTEXTMENU_NODE_TYPES.RIGHT_FIXED_COLUMN_TO) {
//
if (isOperationCol) {
contentmenuCollectionItem.disabled = true;
}
}
// calcel right fixed column to
else if (contentmenuCollectionItem.type === _constant.CONTEXTMENU_NODE_TYPES.CANCEL_RIGHT_FIXED_COLUMN_TO) {
if (rightFixedColKeys.length < 1) {
contentmenuCollectionItem.disabled = true;
}
}
if (isContinue) {
result.push(contentmenuCollectionItem);
}
} else {
result.push(contextmenu);
}
});
}
return result;
}
/***
* @setHeaderContextmenuOptions
* @desc set header contextmenu options
* @param {array<object>} column
* @param {array<object>} contextmenuBodyOption
* @param {object} cellSelectionRangeData
* @param {array<object>} colgroups
* @param {object} bodyIndicatorRowKeys
* @param {boolean} enableHeaderContextmenu
* @param {boolean} t locale
* @return headerContextmenuOptions
*/
function setBodyContextmenuOptions(_ref5) {
var enableBodyContextmenu = _ref5.enableBodyContextmenu,
contextmenuBodyOption = _ref5.contextmenuBodyOption,
cellSelectionRangeData = _ref5.cellSelectionRangeData,
colgroups = _ref5.colgroups,
allRowKeys = _ref5.allRowKeys,
bodyIndicatorRowKeys = _ref5.bodyIndicatorRowKeys,
t = _ref5.t;
var result = [];
if (enableBodyContextmenu) {
var selectionRangeKeys = getSelectionRangeKeys({
cellSelectionRangeData: cellSelectionRangeData
});
var selectionRangeIndexes = getSelectionRangeIndexes({
cellSelectionRangeData: cellSelectionRangeData,
colgroups: colgroups,
allRowKeys: allRowKeys
});
var rowCount = selectionRangeIndexes.endRowIndex - selectionRangeIndexes.startRowIndex + 1;
var colCount = selectionRangeIndexes.endColIndex - selectionRangeIndexes.startColIndex + 1;
var contextmenus = contextmenuBodyOption.contextmenus,
beforeShow = contextmenuBodyOption.beforeShow;
var isWholeRowSelection = !(0, _index.isEmptyValue)(bodyIndicatorRowKeys.startRowKey);
if ((0, _index.isFunction)(beforeShow)) {
beforeShow({
isWholeRowSelection: isWholeRowSelection,
selectionRangeKeys: selectionRangeKeys,
selectionRangeIndexes: selectionRangeIndexes
});
}
var bodyContextmenuOptionCollection = getBodyContextmenuOptionCollection(t);
contextmenus.forEach(function (contextmenu) {
var contentmenuCollectionItem = bodyContextmenuOptionCollection.find(function (x) {
return x.type === contextmenu.type;
});
if (contentmenuCollectionItem) {
var isContinue = true;
// remove row
if (contentmenuCollectionItem.type === _constant.CONTEXTMENU_NODE_TYPES.REMOVE_ROW) {
contentmenuCollectionItem.label = contentmenuCollectionItem.label.replace('$1', rowCount);
}
// empty row. 选中整行时支持
else if (contentmenuCollectionItem.type === _constant.CONTEXTMENU_NODE_TYPES.EMPTY_ROW) {
if (isWholeRowSelection) {
contentmenuCollectionItem.label = contentmenuCollectionItem.label.replace('$1', rowCount);
} else {
isContinue = false;
}
}
// empty cell.没选中整行时支持
else if (contentmenuCollectionItem.type === _constant.CONTEXTMENU_NODE_TYPES.EMPTY_CELL) {
isContinue = !isWholeRowSelection;
}
// remove column.没选中整行时支持
else if (contentmenuCollectionItem.type === _constant.CONTEXTMENU_NODE_TYPES.REMOVE_COLUMN) {
if (isWholeRowSelection) {
isContinue = false;
} else {
contentmenuCollectionItem.label = contentmenuCollectionItem.label.replace('$1', colCount);
}
}
if (isContinue) {
result.push(contentmenuCollectionItem);
}
} else {
result.push(contextmenu);
}
});
}
return result;
}
// create empty row data
// export function createEmptyRowData({ colgroups, rowKeyFieldName }) {
// let rowData = {
// [rowKeyFieldName]: getRandomId(),
// };
// colgroups.forEach((column) => {
// if (column.field) {
// rowData[column.field] = "";
// }
// });
// return rowData;
// }
// empty row data
// export function emptyRowData({ rowData, rowKeyFieldName }) {
// Object.keys(rowData).forEach((key) => {
// if (key !== rowKeyFieldName) {
// rowData[key] = "";
// }
// });
// return rowData;
// }
// is contextmenu panel clicked
function isContextmenuPanelClicked(event) {
var result = false;
var contextmenuPanelEls = document.querySelectorAll('.ve-contextmenu-popper');
[].forEach.call(contextmenuPanelEls, function (el) {
if (el.contains(event.target)) {
result = true;
}
});
return result;
}
/**
* @getColKeysByHeaderColumn
* @desc
* @param {object} headerColumnItem
* @param {any} colKey2
* @return Array<colKeys>
*/
function getColKeysByHeaderColumn(_ref6) {
var headerColumnItem = _ref6.headerColumnItem;
var result = null;
var _keys = headerColumnItem._keys;
result = _keys.split('|');
if (result.length > 1) {
result = result.slice(0, result.length - 1);
}
return result;
}
/**
* @getColKeysByRangeColKeys
* @desc get col keys by range col keys
* @param {any} colKey1
* @param {any} colKey2
* @return Array<colKeys>
*/
function getColKeysByRangeColKeys(_ref7) {
var colKey1 = _ref7.colKey1,
colKey2 = _ref7.colKey2,
colgroups = _ref7.colgroups;
var result = null;
var index1 = colgroups.findIndex(function (x) {
return x.key === colKey1;
});
var index2 = colgroups.findIndex(function (x) {
return x.key === colKey2;
});
if (index1 !== -1 && index1 !== -1) {
var beginIndex = index1 < index2 ? index1 : index2;
var endIndex = index1 < index2 ? index2 : index1;
result = colgroups.slice(beginIndex, endIndex + 1).map(function (x) {
return x.key;
});
}
return result;
}
/**
* @getColKeysByFixedTypeWithinColKeys
* @desc get col keys by fixed type
* @param {array<T>} colKeys
* @param {string} fixedType - fixed type
* @param {array<object>} colgroups
* @return {array} colKeys
*/
function getColKeysByFixedTypeWithinColKeys(_ref8) {
var colKeys = _ref8.colKeys,
fixedType = _ref8.fixedType,
colgroups = _ref8.colgroups;
var result = null;
if (Array.isArray(colKeys)) {
result = colgroups.filter(function (x) {
return colKeys.indexOf(x.key) > -1 && x.fixed === fixedType;
}).map(function (x) {
return x.key;
});
}
return result;
}
/**
* @getColKeysByFixedType
* @desc get col keys by fixed type
* @param {string} fixedType - fixed type
* @param {array<object>} colgroups
* * @param {boolean} isExcludeOperationColumn
* @return colKey
*/
function getColKeysByFixedType(_ref9) {
var fixedType = _ref9.fixedType,
colgroups = _ref9.colgroups,
isExcludeOperationColumn = _ref9.isExcludeOperationColumn;
var result = null;
result = colgroups.filter(function (x) {
var condition = x.fixed === fixedType;
// 排除操作列
if (isExcludeOperationColumn) {
return condition && !x.operationColumn;
}
return condition;
}).map(function (x) {
return x.key;
});
return result;
}
/**
* @getRowKeysByRangeRowKeys
* @desc get row keys by range row keys
* @param {any} topRowKey - top row key
* @param {any} bottomRowKey - bottom row key
* @return Array<colKeys>
*/
function getRowKeysByRangeRowKeys(_ref10) {
var topRowKey = _ref10.topRowKey,
bottomRowKey = _ref10.bottomRowKey,
allRowKeys = _ref10.allRowKeys;
var result = null;
var beginIndex = allRowKeys.findIndex(function (x) {
return x === topRowKey;
});
var endIndex = allRowKeys.findIndex(function (x) {
return x === bottomRowKey;
});
if (beginIndex !== -1 && endIndex !== -1) {
result = allRowKeys.slice(beginIndex, endIndex + 1);
}
return result;
}
/**
* @isCellInSelectionRange
* @desc is cell in selection range
* @param {object} cellData - cell data
* @param {object} cellSelectionRangeData
* @param {array<object>} colgroups
* @param {array<object>} allRowKeys
* @return {Array<colKeys>}
*/
function isCellInSelectionRange(_ref11) {
var cellData = _ref11.cellData,
cellSelectionRangeData = _ref11.cellSelectionRangeData,
colgroups = _ref11.colgroups,
allRowKeys = _ref11.allRowKeys;
var leftColKey = cellSelectionRangeData.leftColKey,
rightColKey = cellSelectionRangeData.rightColKey,
topRowKey = cellSelectionRangeData.topRowKey,
bottomRowKey = cellSelectionRangeData.bottomRowKey;
var colKeys = getColKeysByRangeColKeys({
colKey1: leftColKey,
colKey2: rightColKey,
colgroups: colgroups
});
var rowKeys = getRowKeysByRangeRowKeys({
topRowKey: topRowKey,
bottomRowKey: bottomRowKey,
allRowKeys: allRowKeys
});
if (colKeys.indexOf(cellData.colKey) > -1 && rowKeys.indexOf(cellData.rowKey) > -1) {
return true;
}
return false;
}
/**
* @isClearSelectionByBodyCellRightClick
* @desc is clear selection by body cell click
* @param {number} mouseEventClickType
* @param {object} cellData - cell data
* @param {object} cellSelectionRangeData
* @param {array<object>} colgroups
* @param {array<object>} allRowKeys
* @return {bool}
*/
function isClearSelectionByBodyCellRightClick(_ref12) {
var mouseEventClickType = _ref12.mouseEventClickType,
cellData = _ref12.cellData,
cellSelectionData = _ref12.cellSelectionData,
cellSelectionRangeData = _ref12.cellSelectionRangeData,
colgroups = _ref12.colgroups,
allRowKeys = _ref12.allRowKeys;
var result = true;
if (mouseEventClickType === _constant2.MOUSE_EVENT_CLICK_TYPE.RIGHT_MOUSE) {
var normalEndCell = cellSelectionData.normalEndCell;
if (normalEndCell.rowIndex > -1) {
result = !isCellInSelectionRange({
cellData: cellData,
cellSelectionRangeData: cellSelectionRangeData,
colgroups: colgroups,
allRowKeys: allRowKeys
});
}
}
return result;
}
/**
* @getSelectionRangeKeys
* @desc get selection range keys
* @param {object} cellSelectionRangeData
* @return Array<colKeys>
*/
function getSelectionRangeKeys(_ref13) {
var cellSelectionRangeData = _ref13.cellSelectionRangeData;
var leftColKey = cellSelectionRangeData.leftColKey,
rightColKey = cellSelectionRangeData.rightColKey,
topRowKey = cellSelectionRangeData.topRowKey,
bottomRowKey = cellSelectionRangeData.bottomRowKey;
return {
startColKey: leftColKey,
endColKey: rightColKey,
startRowKey: topRowKey,
endRowKey: bottomRowKey
};
}
/**
* @getSelectionRangeIndexes
* @desc get selection range indexes
* @param {object} cellSelectionRangeData
* @param {array<object>} colgroups
* @param {array<object>} allRowKeys
* @return Array<colKeys>
*/
function getSelectionRangeIndexes(_ref14) {
var cellSelectionRangeData = _ref14.cellSelectionRangeData,
colgroups = _ref14.colgroups,
allRowKeys = _ref14.allRowKeys;
var leftColKey = cellSelectionRangeData.leftColKey,
rightColKey = cellSelectionRangeData.rightColKey,
topRowKey = cellSelectionRangeData.topRowKey,
bottomRowKey = cellSelectionRangeData.bottomRowKey;
return {
startColIndex: colgroups.findIndex(function (x) {
return x.key === leftColKey;
}),
endColIndex: colgroups.findIndex(function (x) {
return x.key === rightColKey;
}),
startRowIndex: allRowKeys.indexOf(topRowKey),
endRowIndex: allRowKeys.indexOf(bottomRowKey)
};
}
/**
* @getSelectionRangeData
* @desc get selection range data
* @param {object} cellSelectionRangeData
* @param {string} resultType "normal": contains key/value ; "flat":only contains value
* @param {array<object>} tableData
* @param {array<object>} colgroups
* @param {array<object>} allRowKeys
* @return Array<colKeys>
*/
function getSelectionRangeData(_ref15) {
var cellSelectionRangeData = _ref15.cellSelectionRangeData,
_ref15$resultType = _ref15.resultType,
resultType = _ref15$resultType === void 0 ? 'normal' : _ref15$resultType,
tableData = _ref15.tableData,
colgroups = _ref15.colgroups,
allRowKeys = _ref15.allRowKeys;
var result = null;
var leftColKey = cellSelectionRangeData.leftColKey,
rightColKey = cellSelectionRangeData.rightColKey,
topRowKey = cellSelectionRangeData.topRowKey,
bottomRowKey = cellSelectionRangeData.bottomRowKey;
var startColIndex = colgroups.findIndex(function (x) {
return x.key === leftColKey;
});
var endColIndex = colgroups.findIndex(function (x) {
return x.key === rightColKey;
});
var startRowIndex = allRowKeys.indexOf(topRowKey);
var endRowIndex = allRowKeys.indexOf(bottomRowKey);
var fieldNames = colgroups.slice(startColIndex, endColIndex + 1).map(function (x) {
return x.field;
});
if (resultType === 'normal') {
result = tableData.slice(startRowIndex, endRowIndex + 1).map(function (rowData) {
var newRow = {};
fieldNames.forEach(function (fieldName) {
newRow[fieldName] = rowData[fieldName] || '';
});
return newRow;
});
} else {
result = tableData.slice(startRowIndex, endRowIndex + 1).map(function (rowData) {
var newRow = [];
fieldNames.forEach(function (fieldName) {
newRow.push(rowData[fieldName] || '');
});
return newRow;
});
}
return result;
}
/**
* @isExistFixedColKey
* @desc is exist given fixed col key
* @param {string} fixedType - fixed type
* @param {array<T>} colKeys
* @param {array<object>} colgroups
* @return bool
*/
function isExistGivenFixedColKey(_ref16) {
var fixedType = _ref16.fixedType,
colKeys = _ref16.colKeys,
colgroups = _ref16.colgroups;
var result = false;
if (Array.isArray(colKeys)) {
result = colgroups.some(function (x) {
return colKeys.indexOf(x.key) > -1 && x.fixed === fixedType;
});
}
return result;
}
/**
* @isExistNotFixedColKey
* @desc is exist not fixed col key
* @param {array<T>} colKeys
* @param {array<object>} colgroups
* @return bool
*/
function isExistNotFixedColKey(_ref17) {
var colKeys = _ref17.colKeys,
colgroups = _ref17.colgroups;
var result = false;
if (Array.isArray(colKeys)) {
result = colgroups.filter(function (x) {
return !x.fixed && colKeys.indexOf(x.key) > -1;
}).length;
}
return result;
}
/**
* @getLeftmostOrRightmostColKey
* @desc get leftmost or rightmost column key
* @param {string} type
* @param {array<object>} colgroups
* @param {array<any>} colKeys
* @return colKey
*/
function getLeftmostOrRightmostColKey(_ref18) {
var type = _ref18.type,
colgroups = _ref18.colgroups,
colKeys = _ref18.colKeys;
var result = null;
if (Array.isArray(colKeys) && colKeys.length) {
var mostObj = {
colKey: null,
colIndex: null
};
colKeys.forEach(function (colKey) {
var colIndex = colgroups.findIndex(function (x) {
return x.key === colKey;
});
if (colIndex === -1) {
console.warn("getLeftmostOrRightmostColKey error:: can't find colKey:".concat(colKey));
return false;
}
if ((0, _index.isEmptyValue)(mostObj.colKey)) {
mostObj = {
colKey: colKey,
colIndex: colIndex
};
} else {
if (type === 'leftmost') {
if (colIndex < mostObj.colIndex) {
mostObj = {
colKey: colKey,
colIndex: colIndex
};
}
} else if (type === 'rightmost') {
if (colIndex > mostObj.colIndex) {
mostObj = {
colKey: colKey,
colIndex: colIndex
};
}
}
}
});
result = mostObj.colKey;
}
return result;
}
/**
* @getLeftmostColKey
* @desc get leftmost column key
* @param {array<object>} colgroups
* @param {array<any>} colKeys
* @return colKey
*/
function getLeftmostColKey(_ref19) {
var colgroups = _ref19.colgroups,
colKeys = _ref19.colKeys;
return getLeftmostOrRightmostColKey({
type: 'leftmost',
colgroups: colgroups,
colKeys: colKeys
});
}
/**
* @getRightmostColKey
* @desc get rightmost column key
* @param {array<object>} colgroups
* @param {array<any>} colKeys
* @return colKey
*/
function getRightmostColKey(_ref20) {
var colgroups = _ref20.colgroups,
colKeys = _ref20.colKeys;
return getLeftmostOrRightmostColKey({
type: 'rightmost',
colgroups: colgroups,
colKeys: colKeys
});
}
/**
* @getPreviewColKey
* @desc get preview column key
* @param {array<object>} colgroups
* @param {any} currentColKey
* @return colKey
*/
function getPreviewColKey(_ref21) {
var colgroups = _ref21.colgroups,
currentColKey = _ref21.currentColKey;
var result = null;
if (!(0, _index.isEmptyValue)(currentColKey)) {
var index = colgroups.findIndex(function (x) {
return x.key === currentColKey;
});
if (index === 0) {
result = currentColKey;
} else if (index > 0) {
result = colgroups[index - 1].key;
}
}
return result;
}
/**
* @getNextColKey
* @desc get next column key
* @param {array<object>} colgroups
* @param {any} currentColKey
* @return colKey
*/
function getNextColKey(_ref22) {
var colgroups = _ref22.colgroups,
currentColKey = _ref22.currentColKey;
var result = null;
if (!(0, _index.isEmptyValue)(currentColKey)) {
var index = colgroups.findIndex(function (x) {
return x.key === currentColKey;
});
if (index === colgroups.length - 1) {
result = currentColKey;
} else if (index < colgroups.length - 1) {
result = colgroups[index + 1].key;
}
}
return result;
}
/***
* @cellAutofill
* @desc cell auto fill
* @param {bool} isReplaceData
* @param {array<object>} tableData
* @param {array<any>} allRowKeys
* @param {array<object>} colgroups
* @param {string} direction
* @param {string} rowKeyFieldName
* @param {object} nextCurrentCell next current cell
* @param {object} nextNormalEndCell next normal end cell
* @return autofillChangeDatas
*/
function cellAutofill(_ref23) {
var isReplaceData = _ref23.isReplaceData,
tableData = _ref23.tableData,
allRowKeys = _ref23.allRowKeys,
colgroups = _ref23.colgroups,
direction = _ref23.direction,
rowKeyFieldName = _ref23.rowKeyFieldName,
cellSelectionRangeData = _ref23.cellSelectionRangeData,
nextCurrentCell = _ref23.nextCurrentCell,
nextNormalEndCell = _ref23.nextNormalEndCell;
var cellSelectionTableData = [];
var leftColKey = cellSelectionRangeData.leftColKey,
rightColKey = cellSelectionRangeData.rightColKey,
topRowKey = cellSelectionRangeData.topRowKey,
bottomRowKey = cellSelectionRangeData.bottomRowKey;
// source selection range
var sourceSelectionRangeIndexes = {
startRowIndex: -1,
endRowIndex: -1,
startColIndex: -1,
endColIndex: -1
};
// target selection range
var targetSelectionRangeIndexes = {
startRowIndex: -1,
endRowIndex: -1,
startColIndex: -1,
endColIndex: -1
};
sourceSelectionRangeIndexes.startRowIndex = allRowKeys.indexOf(topRowKey);
sourceSelectionRangeIndexes.endRowIndex = allRowKeys.indexOf(bottomRowKey);
sourceSelectionRangeIndexes.startColIndex = colgroups.findIndex(function (x) {
return x.key === leftColKey;
});
sourceSelectionRangeIndexes.endColIndex = colgroups.findIndex(function (x) {
return x.key === rightColKey;
});
cellSelectionTableData = tableData.slice(sourceSelectionRangeIndexes.startRowIndex, sourceSelectionRangeIndexes.endRowIndex + 1);
if (direction === _constant.AUTOFILLING_DIRECTION.UP) {
//
targetSelectionRangeIndexes.startRowIndex = allRowKeys.indexOf(nextCurrentCell.rowKey);
targetSelectionRangeIndexes.endRowIndex = sourceSelectionRangeIndexes.startRowIndex - 1;
targetSelectionRangeIndexes.startColIndex = sourceSelectionRangeIndexes.startColIndex;
targetSelectionRangeIndexes.endColIndex = sourceSelectionRangeIndexes.endColIndex;
if (isReplaceData) {
var cellSelectionTableDataRowIndex = cellSelectionTableData.length - 1;
for (var rowIndex = targetSelectionRangeIndexes.endRowIndex; rowIndex >= targetSelectionRangeIndexes.startRowIndex; rowIndex--) {
for (var colIndex = targetSelectionRangeIndexes.startColIndex; colIndex <= targetSelectionRangeIndexes.endColIndex; colIndex++) {
var fieldName = colgroups[colIndex].field;
// repeat autofill cell selection data
if (cellSelectionTableDataRowIndex < 0) {
cellSelectionTableDataRowIndex = cellSelectionTableData.length - 1;
}
tableData[rowIndex][fieldName] = cellSelectionTableData[cellSelectionTableDataRowIndex][fieldName];
}
--cellSelectionTableDataRowIndex;
}
}
} else if (direction === _constant.AUTOFILLING_DIRECTION.DOWN) {
//
targetSelectionRangeIndexes.startRowIndex = sourceSelectionRangeIndexes.endRowIndex + 1;
targetSelectionRangeIndexes.endRowIndex = allRowKeys.indexOf(nextNormalEndCell.rowKey);
targetSelectionRangeIndexes.startColIndex = sourceSelectionRangeIndexes.startColIndex;
targetSelectionRangeIndexes.endColIndex = sourceSelectionRangeIndexes.endColIndex;
if (isReplaceData) {
var _cellSelectionTableDataRowIndex = 0;
for (var _rowIndex = targetSelectionRangeIndexes.startRowIndex; _rowIndex <= targetSelectionRangeIndexes.endRowIndex; _rowIndex++) {
for (var _colIndex = targetSelectionRangeIndexes.startColIndex; _colIndex <= targetSelectionRangeIndexes.endColIndex; _colIndex++) {
var _fieldName = colgroups[_colIndex].field;
// repeat autofill cell selection data
if (_cellSelectionTableDataRowIndex > cellSelectionTableData.length - 1) {
_cellSelectionTableDataRowIndex = 0;
}
tableData[_rowIndex][_fieldName] = cellSelectionTableData[_cellSelectionTableDataRowIndex][_fieldName];
}
++_cellSelectionTableDataRowIndex;
}
}
} else if (direction === _constant.AUTOFILLING_DIRECTION.LEFT) {
//
targetSelectionRangeIndexes.startRowIndex = sourceSelectionRangeIndexes.startRowIndex;
targetSelectionRangeIndexes.endRowIndex = sourceSelectionRangeIndexes.endRowIndex;
targetSelectionRangeIndexes.startColIndex = colgroups.findIndex(function (x) {
return x.key === nextCurrentCell.colKey;
});
targetSelectionRangeIndexes.endColIndex = sourceSelectionRangeIndexes.startColIndex - 1;
if (isReplaceData) {
var _cellSelectionTableDataRowIndex2 = 0;
for (var _rowIndex2 = targetSelectionRangeIndexes.startRowIndex; _rowIndex2 <= targetSelectionRangeIndexes.endRowIndex; _rowIndex2++) {
var cellSelectionTableDataColIndex = sourceSelectionRangeIndexes.endColIndex;
for (var _colIndex2 = targetSelectionRangeIndexes.endColIndex; _colIndex2 >= targetSelectionRangeIndexes.startColIndex; _colIndex2--) {
var _fieldName2 = colgroups[_colIndex2].field;
// repeat autofill cell selection data
if (cellSelectionTableDataColIndex < sourceSelectionRangeIndexes.startColIndex) {
cellSelectionTableDataColIndex = sourceSelectionRangeIndexes.endColIndex;
}
tableData[_rowIndex2][_fieldName2] = cellSelectionTableData[_cellSelectionTableDataRowIndex2][colgroups[cellSelectionTableDataColIndex].field];
--cellSelectionTableDataColIndex;
}
++_cellSelectionTableDataRowIndex2;
}
}
} else if (direction === _constant.AUTOFILLING_DIRECTION.RIGHT) {
//
targetSelectionRangeIndexes.startRowIndex = sourceSelectionRangeIndexes.startRowIndex;
targetSelectionRangeIndexes.endRowIndex = sourceSelectionRangeIndexes.endRowIndex;
targetSelectionRangeIndexes.startColIndex = sourceSelectionRangeIndexes.endColIndex + 1;
targetSelectionRangeIndexes.endColIndex = colgroups.findIndex(function (x) {
return x.key === nextNormalEndCell.colKey;
});
if (isReplaceData) {
var _cellSelectionTableDataRowIndex3 = 0;
for (var _rowIndex3 = targetSelectionRangeIndexes.startRowIndex; _rowIndex3 <= targetSelectionRangeIndexes.endRowIndex; _rowIndex3++) {
var _cellSelectionTableDataColIndex = sourceSelectionRangeIndexes.startColIndex;
for (var _colIndex3 = targetSelectionRangeIndexes.startColIndex; _colIndex3 <= targetSelectionRangeIndexes.endColIndex; _colIndex3++) {
var _fieldName3 = colgroups[_colIndex3].field;
// repeat autofill cell selection data
if (_cellSelectionTableDataColIndex > sourceSelectionRangeIndexes.startColIndex + (sourceSelectionRangeIndexes.endColIndex - sourceSelectionRangeIndexes.startColIndex)) {
_cellSelectionTableDataColIndex = sourceSelectionRangeIndexes.startColIndex;
}
tableData[_rowIndex3][_fieldName3] = cellSelectionTableData[_cellSelectionTableDataRowIndex3][colgroups[_cellSelectionTableDataColIndex].field];
++_cellSelectionTableDataColIndex;
}
++_cellSelectionTableDataRowIndex3;
}
}
}
var response = {
direction: direction,
sourceSelectionRangeIndexes: sourceSelectionRangeIndexes,
targetSelectionRangeIndexes: targetSelectionRangeIndexes,
sourceSelectionData: [],
targetSelectionData: []
};
var sourceFieldNames = colgroups.slice(sourceSelectionRangeIndexes.startColIndex, sourceSelectionRangeIndexes.endColIndex + 1).map(function (x) {
return x.field;
});
response.sourceSelectionData = tableData.slice(sourceSelectionRangeIndexes.startRowIndex, sourceSelectionRangeIndexes.endRowIndex + 1).map(function (rowData) {
var newData = _defineProperty({}, rowKeyFieldName, rowData[rowKeyFieldName]);
sourceFieldNames.forEach(function (fieldName) {
newData[fieldName] = rowData[fieldName];
});
return newData;
});
var targetFieldNames = colgroups.slice(targetSelectionRangeIndexes.startColIndex, targetSelectionRangeIndexes.endColIndex + 1).map(function (x) {
return x.field;
});
response.targetSelectionData = tableData.slice(targetSelectionRangeIndexes.startRowIndex, targetSelectionRangeIndexes.endRowIndex + 1).map(function (rowData) {
var newData = _defineProperty({}, rowKeyFieldName, rowData[rowKeyFieldName]);
targetFieldNames.forEach(function (fieldName) {
newData[fieldName] = rowData[fieldName];
});
return newData;
});
return response;
}
/***
* @setColumnFixed
* @desc set column fixed
* @param {array<object>} cloneColumns
* @param {object} cellSelectionRangeData
* @param {string} fixedType COLUMN_FIXED_TYPE
* @param {array<object>} colgroups
* @param {bool} enableColumnResize
* @return cloneColumns
*/
function setColumnFixed(_ref24) {
var cloneColumns = _ref24.cloneColumns,
cellSelectionRangeData = _ref24.cellSelectionRangeData,
fixedType = _ref24.fixedType,
colgroups = _ref24.colgroups,
enableColumnResize = _ref24.enableColumnResize;
var result = cloneColumns;
var leftColKey = cellSelectionRangeData.leftColKey,
rightColKey = cellSelectionRangeData.rightColKey;
var colKey;
if (_constant.COLUMN_FIXED_TYPE.LEFT === fixedType) {
colKey = rightColKey;
} else if (_constant.COLUMN_FIXED_TYPE.RIGHT === fixedType) {
colKey = leftColKey;
}
// find col index from cloneColumns
// eslint-disable-next-line array-callback-return
var fixedColIndex = cloneColumns.findIndex(function (colItem) {
if (colItem._level === 1 && colItem.key === colKey) {
return true;
} else {
var colKeys = getColKeysByHeaderColumn({
headerColumnItem: colItem
});
if (colKeys.indexOf(colKey) > -1) {
return true;
}
}
});
if (fixedColIndex > -1) {
// 不允许改变原有固定列方向
var oldFixedType = cloneColumns[fixedColIndex].fixed;
if (!(0, _index.isEmptyValue)(oldFixedType) && oldFixedType !== fixedType) {
return false;
}
result = cloneColumns.map(function (colItem, index) {
// 清除所有固定
if (colItem.fixed === fixedType) {
colItem.fixed = '';
}
// 允许列自适应 && 不是多列表头
if (enableColumnResize && !(Array.isArray(colItem.children) && colItem.children.length)) {
var _colItem = colgroups.find(function (x) {
return x.key === colItem.key && !(0, _index.isEmptyValue)(x.key);
});
if (_colItem) {
colItem.width = _colItem._columnResizeWidth;
}
}
if (_constant.COLUMN_FIXED_TYPE.LEFT === fixedType) {
// 不允许左冻结最后一列
if (index <= fixedColIndex && index < cloneColumns.length) {
colItem.fixed = fixedType;
}
} else {
// 不允许右冻结第一列
if (index >= fixedColIndex && index > 0) {
colItem.fixed = fixedType;
}
}
return colItem;
});
}
return result;
}
/***
* @cancelColumnFixed
* @desc cancel column fixed
* @param {array<object>} cloneColumns
* @param {array<object>} colgroups
* @param {string} fixedType COLUMN_FIXED_TYPE
* @param {bool} enableColumnResize
* @return cloneColumns
*/
function cancelColumnFixed(_ref25) {
var cloneColumns = _ref25.cloneColumns,
colgroups = _ref25.colgroups,
fixedType = _ref25.fixedType,
enableColumnResize = _ref25.enableColumnResize;
return cloneColumns.map(function (colItem) {
// 允许列自适应 && 不是多列表头
if (enableColumnResize && !(Array.isArray(colItem.children) && colItem.children.length)) {
var _colItem = colgroups.find(function (x) {
return x.key === colItem.key && !(0, _index.isEmptyValue)(x.key);
});
if (_colItem) {
colItem.width = _colItem._columnResizeWidth;
}
}
if (_constant.COLUMN_FIXED_TYPE.LEFT === fixedType) {
if (colItem.fixed === fixedType && !isOperationColumn(colItem.key, colgroups)) {
colItem.fixed = '';
}
} else {
if (colItem.fixed === fixedType) {
colItem.fixed = '';
}
}
return colItem;
});
}